Съвременни микропроцесори. Съвременни микропроцесори от AMD Какво е в основата на съвременните микропроцесори

1. Въведение
2. Процесори с архитектура 80x86 и Pentium, Pentium II, Pentium III

4. Процесори от семейството R4000 на MIPS архитектура от MIPS Technology
5. Процесори с архитектура SPARC от Sun Microsystems
6. Процесори с PA-RISC архитектура от Hewlett-Packard,
7. Списък с литература.

1. Въведение.

И така, в този тест е необходимо да се покрие следният въпрос.

Съвременни микропроцесори

1. Процесори с архитектура 80x86 и Pentium, Pentium II, Pentium III
2. Характеристики на Alpha архитектурата на DEC
3. Характеристики на архитектурата POWER от IBM и PowerPC от Motorola, Apple и IBM.

Обхващайки този въпрос обаче, не можете да пренебрегнете:

Процесори от семейството R4000 на MIPS архитектура от MIPS

Процесори с SPARC архитектура от Sun Microsystems

Процесори с PA-RISC архитектура от Hewlett-Packard, въпреки че тези процесори няма да бъдат разгледани подробно в тази работа.

Тази работа ще предостави аналитична информация за процесорите на тези архитектури.

Тази работа не претендира за абсолютизиране на възгледи и мнения.

2. Процесори с архитектура 80x86 и Pentium, Pentium II, Pentium III.

И така, първо, малко история: Intel 8086 архитектура - 1978 г.

През 1978 г. архитектурата Intel 8086 беше обявена като възходящо съвместимо разширение на успешния тогава 8-битов микропроцесор 8080. 8086 е 16-битова архитектура с всички вътрешни регистри с 16-битова ширина. Микропроцесорът 8080 е просто изграден около акумулатор, но архитектурата 8086 е разширена с допълнителни регистри. Тъй като почти всеки регистър в тази архитектура има конкретна цел, 8086 може да се класифицира отчасти като акумулираща машина и отчасти като регистрираща машина с общо предназначение и може да се нарече разширена акумулираща машина. Микропроцесорът 8086 (по-точно неговата версия 8088 с 8-битова външна шина) стана основата на серията IBM PC компютри, които по-късно завладяха целия свят, работейки с операционната система
MS-DOS.

Копроцесорът 8087 с плаваща запетая беше обявен през 1980 г. Тази архитектура разшири 8086 с близо 60 инструкции с плаваща запетая. Неговите архитекти изоставиха разширените акумулатори, за да създадат един вид хибрид от стекове и регистри, по същество разширена стекова архитектура. Пълният набор от инструкции за стека се допълва от ограничен набор от инструкции за регистър-памет.

През 1982 г. беше обявен микропроцесорът 80286, който допълнително разшири архитектурата 8086 чрез създаване на сложен модел за разпределение на паметта и защита, разширяване на адресното пространство до 24 бита и добавяне на малък брой допълнителни инструкции. Тъй като беше много важно да се гарантира, че програмите, разработени за 8086, работят без модификации,
80286 имаше режим на реален адрес, което позволяваше на машината да изглежда почти като 8086. През 1984 г. IBM обяви използването на този процесор в новата серия персонални компютри IBM PC/AT.

През 1987 г. беше представен микропроцесорът 80386, който разшири архитектурата 80286 до 32 бита. В допълнение към 32-битова архитектура с 32-битови регистри и 32-битово адресно пространство, микропроцесорът
80386 въведе нови режими на адресиране и допълнителни операции. Всички тези разширения превърнаха 80386 в машина, идеологически близка до машините с регистри с общо предназначение. В допълнение към механизмите за сегментиране на паметта, микропроцесорът 80386 също добави поддръжка за пейджинг на паметта. Подобно на 80286, микропроцесорът 80386 има режим за изпълнение на програми, написани за 8086. Въпреки че MS-DOS остава основната операционна система за тези микропроцесори по това време, 32-битовата архитектура и странирането на паметта послужиха като основа за пренасяне на UNIX операционна система към тази платформа. Трябва да се припомни
Виктор Владиленович, че операционната система XENIX е създадена за процесора 80286, но UNIX не е използвана на 286 (поне „по моя памет“).

Тази история илюстрира ефекта от необходимостта да се осигури 80x86 съвместимост, тъй като съществуващата софтуерна база беше твърде критична на всяка стъпка. За щастие следващите процесори (80486 през 1989 г. и Pentium през 1993 г.) се фокусираха върху увеличаване на производителността и добавиха само три нови команди към видимия за потребителя набор от инструкции, за да улеснят многопроцесорната обработка. Каквото и да се говори за неудобствата на архитектурата 80x86, трябва да се има предвид, че тя доминира в света на персоналните компютри. Почти 80% от инсталираните малки системи са базирани на тази архитектура. Дебатът относно предимствата на CISC и RISC архитектурите постепенно затихва, тъй като съвременните микропроцесори се опитват да включат най-добрите свойства и на двата подхода. Отдавна остарялото, но въпреки това активно използвано семейство процесори i486 (468SX, 486DX, 486DX2 и 486DX4), което запази системата за инструкции и методите за адресиране на процесора i386, вече има някои от свойствата на RISC микропроцесорите. Например, най-често срещаните команди се изпълняват в един такт. За да оцени производителността на своите процесори, Intel въведе специална характеристика, наречена iCOMP рейтинг. Компанията се надяваше, че тази характеристика ще се превърне в стандартен еталон и ще се използва от други производители на микропроцесори, но последните бяха разбираемо предпазливи към системата за измерване на производителността на Intel и с добра причина.

Ако сравним i486SX-25 и Pentium-133, тогава тяхната производителност, според рейтинга на iCOMP, е 1:12. Което, разбира се, показва, че увеличението на производителността не е постигнато чрез увеличаване на тактовата честота на процесора и „козметично облизване“ на ядрото. Така че нека ги разгледаме малко по-подробно.

Процесорите i486SX и i486DX са 32-битови процесори с вътрешен 8 KB кеш и 32-битова шина за данни. Основната разлика между тях е, че процесорът i486SX няма интегриран копроцесор с плаваща запетая. Поради това има по-ниска цена и се използва в системи, за които производителността при обработка на реални числа не е много важна. Тези системи обикновено могат да се разширяват с външен i487SX копроцесор. Процесорите Intel OverDrive и i486DX2 са почти идентични. Въпреки това матрицата OverDrive има пакет, който може да бъде инсталиран в гнездото за разширение на копроцесора i487SX, използвано в компютри, базирани на i486SX. Процесорите OverDrive и i486DX2 използват вътрешна технология за удвояване на часовника, за да увеличат производителността на процесора с близо 70%. Процесорът i486DX4/100 използва технология за утрояване на тактовата честота. Той работи с вътрешна тактова честота от 99 MHz, докато външната тактова честота (честотата, на която работи външната шина) е 33 MHz. Този процесор предоставя почти равни възможности на машини от клас 60 MHz
Pentium, като тяхната пълноценна и достъпна алтернатива.

Процесорът Pentium, който се появи през 1993 г., бележи нов етап в развитието на архитектурата x86, свързан с адаптирането на много свойства на процесорите с RISC архитектурата. Произведен е по 0,8 микрона BiCMOS технология, която е нелепа в съвременните времена и съдържа 3,1 милиона транзистора. Първоначалното изпълнение е проектирано да работи на тактова честота 60 и 66 MHz. В момента налични процесори
Pentium, работещ на тактови честоти 75, 90, 100, 120, 133, 150, 200,
233 MHz. Процесорът Pentium има редица подобрени характеристики в сравнение с предшествениците си. Основните му характеристики са: двунишкова суперскаларна организация, позволяваща паралелно изпълнение на двойка прости команди; наличието на два независими двуканални многоасоциативни кеша за инструкции и за данни, осигуряващи семплиране на данни за две операции във всеки цикъл; предвиждане на динамичен преход; тръбопроводна организация на устройство с плаваща запетая с 8 степени; двоична съвместимост със съществуващите процесори от семейството 80x86.

Блоковата схема на процесора Pentium е показана на фигура 1. На първо място, новата микроархитектура на този процесор се основава на идеята за суперскаларна обработка (макар и с някои ограничения). Основните команди се разпределят върху два независими изпълнителни механизма (конвейери U и V). U тръбопроводът може да изпълнява всяко x86 семейство от инструкции, включително цели числа и инструкции с плаваща запетая. V тръбопроводът е проектиран да изпълнява прости цели числа и някои инструкции с плаваща запетая. Командите могат да се изпращат до всяко от тези устройства едновременно и когато управляващото устройство издаде двойка команди в един тактов цикъл, по-сложната команда отива към U конвейера, а по-малко сложната отива към V конвейера.
Такова издаване на команди по двойки е възможно само за ограничено подмножество от целочислени команди. Инструкциите за аритметика с плаваща запетая не могат да се изпълняват заедно с инструкции за цели числа. Едновременното издаване на две команди е възможно само ако няма зависимости в регистъра. Когато команда спре по някаква причина в един конвейер, като правило, вторият конвейер също спира, след което компютърът щастливо виси.

Останалите процесорни устройства са проектирани да доставят на тръбопроводите необходимите команди и данни. За разлика от процесорите i486, процесорът Pentium използва отделни 8 KB инструкции и кеш за данни, което осигурява независим достъп. В един тактов цикъл две думи могат да бъдат прочетени от всяка кеш памет. В този случай кеш паметта за данни е изградена на принципите на двойно наслояване, което осигурява едновременното четене на две думи, принадлежащи към една и съща линия на кеш паметта.
Кешът за команди съхранява три копия на етикети наведнъж, което ви позволява да четете две командни думи в един тактов цикъл, принадлежащи или към един и същи ред, или към съседни редове, за да осигурите по двойки издаване на команди, докато третото копие на таговете се използва за организира протокол за наблюдение на кохерентността на състоянието на кеш паметта. За да подобри ефективността на презареждане на кеша, процесорът използва 64-битова външна шина за данни

Процесорът ВЕЧЕ има механизъм за динамично предсказване посоката на преходите. За тази цел чипът съдържа малка кеш памет, наречена разклонителен целеви буфер (BTB) и две независими двойки буфери за предварително извличане на инструкции (два 32-битови буфера на конвейер). Буферът за целеви адреси на разклонения съхранява адресите на инструкциите, които са в буферите за предварително извличане. Работата на буферите за предварително извличане е организирана по такъв начин, че във всеки даден момент инструкциите се извличат само в един от буферите на съответната двойка. Когато се открие операция на разклоняване в потока от инструкции, изчисленият адрес на разклонение се сравнява с адресите, съхранени в буфера
BTB. Ако има съвпадение, разклонението се предвижда да се осъществи и друг буфер за предварително извличане се активира и започва да издава команди към съответния конвейер за изпълнение. Ако има несъответствие, се приема, че разклонението няма да бъде изпълнено и буферът за предварително извличане не се превключва, като продължава нормалната поръчка за издаване на команда. Това ви позволява да избегнете престой на конвейери с правилното прогнозиране на посоката на прехода. Окончателното решение за посоката на прехода естествено се взема въз основа на анализа на кода на условието. Ако прогнозата е направена неправилно, съдържанието на тръбопроводите се анулира и издаването на команди започва от необходимия адрес. Неправилна прогноза води до спиране на конвейерите за 3-4 цикъла. Трябва да се отбележи, че повишената производителност на процесора Pentium също изисква подходяща организация на системата, базирана на него. Intel разработи и достави всички необходими чипсети за това. На първо място, кеш L2 е необходим, за да съответства на скоростта с динамичната основна памет. Кеш контролерът 82496 и статичните чипове памет 82491 осигуряват такъв кеш от 256 KB и работят с процесора без тактови цикли. За да организира ефективно системите, Intel разработи стандарт за високопроизводителна PCI локална шина.
Произвеждат се набори чипове за изграждане на мощни компютри на негова основа.

Следващият процесор, който продължи линията Pentium, беше P6 или
PentiumPro. Работи на тактови честоти 150: 166: 180 и 200 MHz.
PentiumPro осигурява пълна съвместимост с предишни поколения процесори. Той е проектиран основно да поддържа високопроизводителни 32-битови изчисления в CAD, 3D графики и мултимедия: както и широка гама от търговски приложения за бази данни. Въз основа на резултатите от тестовете на SPEC (8.58 SPECint95 и 6.48
SPECfp95), процесорът PentiumPro в момента е на трето място в световната класификация по отношение на производителността на целочислените операции, на второ място след 180 MHz HP PA-8000 и 400 MHz DEC Alpha (фиг. 2). За да се постигне такава производителност, е необходимо да се използват технически решения, които се използват широко в изграждането на RISC процесори:

Фиг.2. изпълнение на команди не в последователността, предписана от програмата, което елиминира в много случаи спирането на конвейери поради изчакване на операнди на операции; използване на техника за преименуване на регистър, която ви позволява да увеличите ефективния размер на регистърния файл (малкият брой регистри е едно от тесните места на x86 архитектурата); разширяване на суперскаларните възможности по отношение на процесора Pentium, което осигурява едновременно издаване само на две команди с доста строги ограничения върху техните комбинации.

В допълнение, компании, които преди са произвеждали Intel-съвместими процесори, се присъединиха към битката за новото поколение x86 процесори.
Тези компании са Advanced Micro Devices (AMD), Cyrix Corp и NexGen. По отношение на микроархитектурата най-близък до Pentium е процесорът M1 на компанията
Cyrix, който трябва да се появи на пазара в близко бъдеще. Както и
Pentium има два конвейера и може да изпълни до две инструкции в един такт. Въпреки това, в процесора M1 броят на случаите, когато операциите могат да се извършват по двойки, е значително увеличен. В допълнение, той използва техники за байпас и ускоряване на данни, за да елиминира спиранията на тръбопровода в много ситуации, с които не може да се справи.
Pentium. Процесорът съдържа 32 физически регистъра (вместо 8 логически регистъра, предоставени от x86 архитектурата) и използва техника за преименуване на регистър, за да елиминира зависимостите от данни. Като Pentium, процесорът
M1 използва 256-елементен буфер от местоназначения на разклонения, за да предвиди посоката на разклоняване, но също така поддържа специален стек за връщане, който проследява извикванията на процедури и последващите връщания.

Процесорите K5 на AMD и Nx586 на NexGen имат напълно различен подход. Основата на техните процесори е много бързо RISC ядро, което изпълнява много регулярни операции в суперскаларен режим. Вътрешните формати на инструкции (ROP за AMD и RISC86 за NexGen) съответстват на традиционните системи за инструкции на RISC процесорите. Всички команди са с еднаква дължина и са кодирани в нормален формат. Достъпите до паметта се извършват чрез специални команди за зареждане и запис. Както знаете, архитектурата x86 има много сложна система от инструкции за декодиране. В K5 и
Nx586 реализира хардуерно преобразуване на x86 команди в команди за вътрешен формат, което осигурява по-добри условия за паралелизиране на изчисленията. Процесорът K5 има 40, а процесорът Nx586 има 22 физически регистъра, които реализират техниката на преименуване. В процесора K5 информацията, необходима за прогнозиране на посоката на разклоняване, се записва директно в кеша на инструкциите и се съхранява с всеки кеш ред. В процесора
Nx586 използва 96-елементен кеш адрес за прескачане за тези цели.

По този начин Intel няма монопол върху методите за проектиране на високопроизводителни x86 процесори. Трябва да се отбележи, че самата Intel е сключила стратегическо споразумение с компанията
Hewlett-Packard ще разработи следващото поколение микропроцесори, които ще комбинират архитектурата x86 с архитектурата на Very Long Instruction Word (VLIW).

И сега плавно ще преминем към Pentium II.

За Intel и Hewlett-Packard нямаше "проблем Y2K" - за тях това беше година на нови възможности. В края на 1999 г. Intel представи Merced, първият процесор, изграден с помощта на архитектура от следващо поколение, разработена съвместно от двете компании.
Въпреки че тази 64-битова архитектура се основава на години изследвания
Intel, HP, други компании и университети, той е коренно различен от всичко, което беше представено на пазара преди него.

Тази архитектура, известна като Intel Architecture-64 (IA-
64), напълно „скъса с миналото“. IA-64 не е нито 64-битово разширение на 32-битовата x86 архитектура на Intel, нито редизайн на
HP 64-bit PA-RISC архитектура. IA-64 е нещо напълно ново - авангардна архитектура, която използва дълги инструкции (LIW), предсказание на инструкции, елиминиране на разклонения, спекулативно зареждане и други трикове, за да
"извличане на повече паралелизъм" от програмния код.

Що се отнася до съвместимостта, заслужава да се отбележи, че в Merced всъщност има два режима на декодиране на команди: VLIW и стария CISC. Тези. програмите преминават към необходимия режим на изпълнение. В архитектурата x86 бяха добавени редица команди за преминаване към нов режим, както и за прехвърляне на данни. IA-64 има такива команди изначално. Преди да навлезем в техническите подробности, нека се опитаме да разберем защо Intel и HP поеха риска да направят толкова драстични промени. Причината се свежда до това: те вярват, че и CISC, и RISC архитектурите са изпълнили своя курс.

Кратка екскурзия в миналото. Архитектурата x86 на Intel е CISC архитектура, която се появява през 1978 г. В онези дни процесорите бяха скаларни устройства (т.е. те можеха да изпълняват само една инструкция наведнъж) и практически нямаше конвейери. Процесорите съдържаха десетки хиляди транзистори.

PA-RISC на HP е разработен през 1986 г., когато суперскаларната тръбопроводна технология едва започваше да се развива. Процесорите съдържат стотици хиляди транзистори. В края на 90-те най-модерните процесори съдържаха милиони транзистори. По времето, когато Merced започна производството, Intel беше преминал към 0,18-микрона технология вместо сегашната 0,25-микрона технология. Още първите чипове с архитектура IA-64 съдържаха десетки милиони транзистори.

Проблемът допълнително се усложнява от факта, че чиповете памет не могат да се справят с тактовата честота на процесорите. Когато Intel разработи архитектурата x86, процесорът можеше да извлича данни от паметта толкова бързо, колкото ги обработваше. Днешният процесор прекарва стотици часовникови цикли в очакване да зареди данни от паметта, въпреки че има голям, бърз кеш.
Командите във формат IA-64 са опаковани по три в 128-битов пакет за най-бърза обработка. Това обикновено се нарича "LIW кодиране". (Трудно е да се намери руски аналог. Най-адекватният превод според мен е „кодиране в дълги командни думи“.) Въпреки това Intel избягва това име, заявявайки, че има „отрицателни конотации“, свързани с него.
По същата причина Intel не обича да нарича самите инструкции RISC-подобни, въпреки че те са с фиксирана дължина и се предполага, че са оптимизирани за изпълнение с един цикъл в ядро, което не изисква микрокод. Intel предпочита да нарича новата си LIW технология Explicitly Parallel Instruction Computing или EPIC.
Явен паралелизъм на инструкциите, където „изрично“ означава изрично указано по време на превода). Във всеки случай командният формат IA-64 няма нищо общо с x86. Инструкциите x86 могат да варират от 8 до 108 бита на дължина и процесорът трябва да декодира всяка инструкция последователно след определяне на нейните граници.
Всеки 128-битов пакет съдържа шаблон с дължина няколко бита, поставен в него от компилатора, който казва на процесора кои инструкции могат да бъдат изпълнени паралелно. Сега процесорът няма да има нужда да анализира потока от инструкции по време на изпълнение, за да идентифицира „скрит паралелизъм“. Вместо това компилаторът открива наличието на паралелизъм и поставя информацията в програмния код. Всяка инструкция (както цяло число, така и с плаваща запетая) съдържа три 7-битови полета за регистър с общо предназначение (GPR). От това следва, че процесорите IA-64 съдържат 128 цели числа RON и 128 регистъра за изчисления с плаваща запетая. Всички те са достъпни за програмиста и са видими за програмиста регистри с произволен достъп. В сравнение с процесорите x86, които имат само осем цели числа RON и стек с дълбочина 8 за изчисления с плаваща запетая, IA-64 е много „по-широк“ и съответно ще бъде много по-малко вероятно да бъде неактивен поради
„липса на регистри“.
Компилаторите за IA-64 ще използват технологията "маркирана инструкция".
(предсказание), за да се премахнат загубите на производителност поради неправилно предвидени разклонения и необходимостта да се пропускат секции от код след разклонения. Когато процесорът срещне "маркирано" разклонение по време на изпълнение на програмата, той започва да изпълнява всички разклонения едновременно. След като бъде определен "истинският" клон, процесорът съхранява необходимите резултати и изхвърля останалите.
Компилаторите за IA-64 също ще сканират изходния код, за да търсят инструкции, които използват данни от паметта. След като намерят такава команда, те ще добавят няколко команди - команда за предварително зареждане (спекулативно зареждане) и проверка на зареждане (спекулативна проверка). По време на изпълнение на програмата, първата инструкция зарежда данни в паметта, преди програмата да има нужда от тях. Втората команда проверява дали изтеглянето е било успешно, преди да позволи на програмата да използва данните.
Предварителното извличане може да намали загубите на производителност поради забавяне на достъпа до паметта и също така да увеличи паралелността.

3. Характеристики на Alpha архитектурата на DEC

В момента фамилията микропроцесори Alpha е представена от няколко чипа, които имат различни диапазони на производителност, работят на различни тактови честоти и разсейват различна мощност. Първи на пазара се появи 64-битовият микропроцесор Alpha.
(DECchip 21064). Това е едночипов RISC процесор, който включва устройства за целочислена и плаваща аритметика, както и 16 KB кеш памет. Кристалът е проектиран, като се вземат предвид прилагането на усъвършенствани методи за повишаване на производителността, включително тръбопроводната организация на всички функционални устройства, едновременното издаване на няколко команди за изпълнение, както и средства за организиране на симетрична мултипроцесорна обработка. Чипът има два регистрационни файла, всеки
32 64-битови регистъра: един за цели числа, един за числа с плаваща запетая. За да се осигури съвместимост с архитектурите MIPS и VAX, архитектурата Alpha поддържа както аритметика с единична, така и двойна прецизност съгласно стандарта IEEE 754 и вътрешния VAX аритметичен стандарт на компанията. Най-мощният модел процесор, 21064, работи на 200 MHz. В края на 1993 г. се появи модернизирана версия на кристала - модел 21064A, който има двойно по-голяма кеш памет на кристала и работи на тактова честота 275 MHz.
След това бяха пуснати модели 21066 и 21068, работещи на честоти 166 и 66
MHz. Отличителна черта на този клон на процесорите Alpha е внедряването на PCI шина на чипа. Това значително опростява и намалява цената както на проектирането, така и на производството на компютри. Отличителна черта на модел 21068 е ниската консумация на енергия (около 8 вата). Основното предназначение на тези два нови модела са персонални компютри и едноплаткови компютри. Фигура 3 показва блокова схема на микропроцесора
21066. Основните компоненти на този процесор са: кеш на инструкции, устройство за цели числа, устройство с плаваща запетая, устройство за зареждане/запис, кеш за данни, контролер на паметта и I/O контролер.

Кешът за инструкции е директно картографиран кеш с капацитет от
8 KB. Инструкциите, избрани от тази кеш памет, могат да бъдат издадени по двойки за изпълнение в едно от устройствата за изпълнение. Кешът за данни от 8 KB също така прилага директно картографиран кеш. Когато се извършва запис в паметта, данните се записват едновременно в този кеш и в буфера за запис. Контролерът на паметта или входно-изходният контролер на PCI шина управлява всички достъпи, които преминават през L1 кешовете на чипа. Контролерът на паметта първо проверява съдържанието на външния кеш от второ ниво, който е изграден на принципа на директното картографиране и прилага алгоритъм за мързеливо копиране при извършване на операции за запис. Когато се открие пропуск, контролерът осъществява достъп до основната памет, за да презареди съответните кеш линии. I/O контролерът на PCI шина управлява целия свързан с I/O трафик. Под управлението на централния процесор той извършва програмируеми входно-изходни операции. DMA трафикът на PCI шина се обработва от PCI контролера във връзка с контролера на паметта. Когато извършвате DMA операции за четене/запис, данните не се поставят в L2 кеша. Паметта и PCI интерфейсите са проектирани специално за еднопроцесорни конфигурации и не поддържат внедряването на многопроцесорни архитектури.
Фигура 4 показва пример за система, изградена върху микропроцесор
21066. В представената конфигурация контролерът на паметта има достъп както до статичната памет, която реализира кеша от второ ниво, така и до динамичната памет, върху която е изградена основната памет.
За съхраняване на етикети и данни в кеша от второ ниво се използват статични кристали на паметта с еднакво време за достъп за четене и запис.

Високоскоростната PCI шина има редица привлекателни свойства. В допълнение към възможността за работа с директен достъп до паметта и програмируем I/O, той позволява специални конфигурационни цикли, разширяемост до 64 бита, компоненти, работещи със захранващо напрежение
3.3 и 5 V, както и по-бърз клок. Основната реализация на PCI шина поддържа мултиплексиране на адреси и данни и работи на 33
MHz, осигуряващ максимална скорост на трансфер на данни от 132 MB/s. Автомобилна гума
PCI се управлява директно от микропроцесора. Фигура 4 показва някои високоскоростни периферни устройства: графични карти, SCSI контролери и мрежови адаптери, свързани директно към шината.
PCI. ISA мостовият интерфейсен чип ви позволява да свържете към системата нискоскоростни устройства като модем, флоп и др. По-късно процесорът е заменен от модернизираната му версия. Подобно на своя предшественик, новата Alpha 21066A матрица, в допълнение към PCI интерфейса, съдържа интегриран контролер на паметта и графичен ускорител на матрицата. Тези характеристики могат значително да намалят разходите за внедряване на системи, базирани на Alpha 21066A, и да осигурят лесен и евтин достъп до външна памет и периферни устройства. Alpha 21066A има две модификации според честотата: 100 MHz и 233 MHz. Моделът на 233 MHz осигурява производителност съответно от 94 и 100 единици според тестовете
SPECint92 и SPECfp92. Микропроцесорът Alpha 21164 представлява втората изцяло нова реализация на архитектурата Alpha. Микропроцесорът 21164, представен през септември 1994 г., осигурява 330 и
500 единици съответно по скалите SPECint92 и SPECfp92 или около 1200
MIPS и изпълнява до четири инструкции на тактов цикъл. Микропроцесорният чип 21164 съдържа около 9,3 милиона транзистора, повечето от които формират кеша. Кристалът е изграден на базата на 0,5 микрона CMOS технология от DEC. Той е сглобен в 499-пинови PGA пакети (с 205 пина, предназначени за захранване и заземяване) и разсейва 50 W при захранващо напрежение от 3,3 V при 300 MHz.
Преходът към 0,35 микрона CMOS технология през 1996 г. доведе до възможността за по-нататъшно увеличаване на тактовата честота и производителността на процесора.
Процесорите 21164 бяха пуснати на 366 MHz (11.3 SPECint95,
15.4 SPECfp95) и 433 MHz (13.3 SPECint95, 18.3 SPECfp95). В края на 1996 г. започнаха масови доставки на 21164 с тактова честота 500 MHz (15.4
SPECint95, 21.1 SPECfp95). Така през 1996г DEC имаше най-мощните процесори с максимална производителност от 2 милиарда операции в секунда.

Ключът към високата производителност е суперскаларният режим на процесора, който може да издава до четири инструкции на тактов цикъл, високопроизводителна неблокираща подсистема с памет с високоскоростен L1 кеш, голям L2 кеш в чипа и намалено забавяне на изпълнението. във всички функционални устройства. Фигура 5 показва блокова диаграма на процесор, който включва пет функционални устройства: блок за управление на потока от инструкции (IBOX), блок за цяло число (EBOX) и блок с плаваща запетая.
(FBOX), модул за управление на паметта (MBOX) и блок за управление на кеша и шина (CBOX). Фигурата също така показва три кеша в чип. Кешът за инструкции и кешът за данни са основните кешове, които реализират директно картографиране.
Мултиасоциативният L2 кеш се използва за съхраняване на инструкции и данни. Дължината на тръбопроводите на процесора 21164 варира от
7 етапа за изпълнение на инструкции с цели числа и 9 етапа за изпълнение на инструкции с плаваща запетая, до 12 етапа за изпълнение на инструкции за достъп до паметта на чип и променлив брой етапи за изпълнение на инструкции за достъп до паметта извън чипа. Устройството за контрол на потока на инструкции извлича и декодира инструкции от кеша на инструкциите и ги насочва за изпълнение към подходящите единици за изпълнение, след като всички конфликти на регистри и функционални единици са разрешени.
Той контролира изпълнението на програмата и всички аспекти на обработката на изключения, капани и прекъсвания. В допълнение, той осигурява контрол на всички изпълнителни механизми, наблюдава всички вериги, заобикаляйки данните и записвайки в регистрационния файл. Контролното устройство съдържа 8 KB кеш за инструкции, вериги за предварително извличане на инструкции и свързания буфер за презареждане, схеми за предсказване на посоката на условно разклоняване и буфер за транслация на инструкции (ITB). Единицата за изпълнение на цели числа изпълнява инструкции с цели числа, изчислява виртуални адреси за всички инструкции за зареждане и запис, изпълнява инструкции за условно разклоняване на цели числа и всички други инструкции за управление. Той включва регистрационен файл и няколко функционални устройства, разположени на четири степени на два паралелни конвейера. Първият тръбопровод съдържа суматор, логическа операционна единица, превключвател и умножител. Вторият конвейер съдържа суматор, устройство за логически операции и устройство за изпълнение на команди за управление.

Устройството с плаваща запетая се състои от две конвейерни изпълнителни единици: конвейер за добавяне, който изпълнява всички инструкции с плаваща запетая, с изключение на инструкциите за умножение, и конвейер за умножение, който изпълнява инструкции за умножение с плаваща запетая. Два специални конвейера за зареждане и един конвейер за данни за запис позволяват инструкциите за зареждане/запис да се изпълняват успоредно с операции с плаваща запетая.
Всички режими на закръгляване, предоставени от стандартите, се поддържат хардуерно
IEEE и VAX.

Устройството за управление на паметта изпълнява всички команди за зареждане, запис и синхронизиране на бариери. Той съдържа напълно асоциативен 64-редов буфер за преобразуване на адреси (DTB), 8 KB директно картографиран кеш за данни, файл с пропускащ адрес и буфер за запис. Дължината на линията на кеша за данни е 32 байта, има два порта за четене и е реализирана на базата на запис. Той се индексира с физически адресни битове и физическите адреси се съхраняват в тагове. Устройството за управление на паметта може да получи до два виртуални адреса от цяло числово устройство във всеки тактов цикъл. DTB също има два порта, така че може да извършва две преводи на виртуални във физически адреси едновременно. Инструкциите за зареждане имат достъп до кеша за данни и връщат резултата в регистрационния файл, ако се появят. В този случай забавянето е два такта. При пропуск физическите адреси се изпращат до файла с адреси на пропуски, където се буферират и изчакват достъпът до L2 кеша да завърши.
Командите за запис записват данни в кеша за данни при попадение и винаги поставят данните в буфера за запис, където чакат да бъдат достъпни от L2 кеша. Отличителна черта на микропроцесора 21164 е разполагането в чипа на вторичен триканален многоасоциативен кеш с капацитет 96 KB. Вторичният кеш рязко намалява броя на достъпите до външната шина на микропроцесора. В допълнение към вторичния кеш в чипа се поддържа работа с външен кеш от трето ниво.

Комбинацията от голям брой изчислителни устройства, по-бързо изпълнение на операции с плаваща запетая (четири тактови цикъла вместо шест), по-бърз достъп до първичния кеш (два тактови цикъла вместо три) осигуриха на този микропроцесор рекордна производителност за това време.

4. Характеристики на POWER архитектурата на фирмите IBM и PowerPC

Motorola, Apple и IBM.

Както вече беше отбелязано, един от разработчиците на фундаменталната концепция на RISC архитектурата беше Джон Кук от изследователския център на IBM. Watson, който в средата на 70-те години провежда изследвания в тази посока и създава миникомпютъра IBM 801, който така и не излиза на пазара. По-нататъшното развитие на тези идеи в IBM беше отразено в развитието на POWER архитектурата в края на 80-те години. POWER архитектура
(и неговите поддиректории POWER2 и PowerPC) в момента са в основата на фамилията работни станции и сървъри RISC System /6000 на IBM.
Развитието на архитектурата на IBM 801 в посока POWER върви в следните посоки: внедряване на концепцията за суперскаларна обработка, подобряване на архитектурата като целеви обект на компилаторите, намаляване на дължината на конвейера и времето за изпълнение на инструкциите и, накрая, приоритетна ориентация към ефективно изпълнение на операции с плаваща запетая.
POWER архитектура

Архитектурата POWER е в много отношения традиционна RISC архитектура. Той се придържа към най-важните отличителни белези на RISC: фиксирана дължина на инструкцията, архитектура от регистър към регистър, прости методи за адресиране, прости (не се изисква интерпретация) инструкции, голям регистров файл и три операнда
(неразрушителен) команден формат. Архитектурата POWER обаче има и няколко допълнителни свойства, които я отличават от другите RISC архитектури.

Първо, наборът от инструкции се основава на идеята за суперскаларна обработка.
В основната архитектура командите са разпределени между три независими единици за изпълнение: единица за разклонение, единица с фиксирана запетая и единица с плаваща запетая. Командите могат да се изпращат до всяко от тези устройства едновременно, където те могат да се изпълняват едновременно и в крайна сметка да не работят. За да се увеличи нивото на паралелизъм, което може да бъде постигнато на практика, архитектурата на набора от инструкции дефинира независим набор от регистри за всяко устройство. Това минимизира необходимите комуникации и синхронизация между устройствата, като по този начин позволява на изпълнителните модули да се приспособят към динамична комбинация от команди. Всяка комуникация на данни, необходима между устройствата, трябва да бъде анализирана от компилатора, който може да я планира ефективно. Трябва да се отбележи, че това е само концептуален модел. Всеки даден процесор с архитектура POWER може да третира всяко от концептуалните устройства като множество изпълнителни единици, за да поддържа допълнителен паралелизъм на инструкциите. Но съществуването на модела води до последователен дизайн на набор от инструкции, който естествено поддържа степен на паралелизъм от поне три.

Второ, POWER архитектурата е разширена с няколко "смесени" инструкции за намаляване на времето за изпълнение. Може би единственият недостатък на RISC технологията в сравнение с CISC е, че понякога използва повече инструкции за изпълнение на една и съща задача. Установено е, че в много случаи увеличаването на размера на кода може да бъде избегнато чрез леко разширяване на набора от инструкции, което не означава връщане към сложни инструкции като CISC. Например, значителна част от увеличението на кода беше намерено в кода на пролога и епилога, свързан със записването и възстановяването на регистри по време на извиквания на процедури. За да елиминира този фактор, IBM въведе командите
"пакетно зареждане и запис", което позволява множество регистри да бъдат преместени към/от паметта с помощта на една инструкция. Конвенциите за свързване, използвани от компилаторите на POWER, третират задачите за планиране, споделените библиотеки и динамичното свързване като прост, единствен механизъм. Това беше направено чрез индиректно адресиране чрез съдържание (TOC - Table Of Contents), което се променя по време на зареждане. Командите за групово зареждане и запис бяха важен елемент от тези комуникационни конвенции.

Друг пример за смесени инструкции е възможността за модифициране на основния регистър с новоизчислен ефективен адрес при извършване на операции за зареждане или запис (аналогично на автоматично инкрементално адресиране). Тези команди премахват необходимостта от изпълнение на допълнителни команди за добавяне, които иначе биха били необходими за увеличаване на индекса при достъп до масиви. Въпреки че това е хибридна операция, тя не пречи на работата на традиционен RISC тръбопровод, тъй като модифицираният адрес вече е изчислен и портът за запис на регистрационен файл е свободен, докато чака операция с памет.

Архитектурата POWER също така предоставя няколко други начина за намаляване на времето за изпълнение на инструкцията, като например: обширен набор от инструкции за манипулиране на битови полета, смесени инструкции за умножение и добавяне с плаваща запетая, настройка на регистър на условието като страничен ефект от нормалното изпълнение на инструкция и низ инструкции за зареждане и запис (които работят).с произволно подредени низове от байтове).

Третият фактор, който отличава POWER архитектурата от много други
В RISC архитектурите липсва механизъм за „забавен преход“.
Обикновено този механизъм гарантира, че инструкцията, следваща инструкцията за условно разклоняване, се изпълнява преди самото разклоняване. Този механизъм работи ефективно в ранните RISC машини, за да запълни "балона", който се появява при оценка на условията за избор на посока на разклоняване и извличане на нов поток от инструкции. Въпреки това, при по-напреднали, суперскаларни машини, този механизъм може да е неефективен, тъй като един цикъл на забавяне на инструкция за разклоняване може да доведе до множество мехурчета, които не могат да бъдат покрити от един слот за архитектурно забавяне. Почти всички такива машини, за да елиминират влиянието на тези "балони", са принудени да въведат допълнителен хардуер (например кеш адрес на клон). В такива машини механизмът за забавен преход не само става неефективен, но също така въвежда значителна сложност в логиката за обработка на последователност от команди. Вместо това POWER разклонителната архитектура е проектирана да поддържа техники за блокиране на разклонения и сгъване на разклонения.

Методика за реализиране на условни скокове, използвани в архитектурата
POWER е четвъртата уникална характеристика в сравнение с други RISC процесори. Архитектурата POWER дефинира разширени свойства на регистъра на условията. Проблемът с архитектурите с традиционен регистър на условията е, че задаването на условни битове като страничен ефект от изпълнението на инструкцията поставя сериозни ограничения върху способността на компилатора да променя реда на инструкциите. Освен това регистърът на условията е единственият архитектурен ресурс, който създава сериозно затруднение в машина, която изпълнява множество инструкции паралелно или изпълнява инструкции в нередовен ред в реда, в който се появяват в програмата. Някои RISC архитектури заобикалят този проблем, като елиминират изцяло регистъра на условията и изискват кодът на условието да бъде зададен с помощта на инструкции за сравнение в регистър с общо предназначение или чрез включване на операцията за сравнение в самата инструкция за прескачане. Последният подход потенциално претоварва командния конвейер при извършване на разклонение. Следователно, архитектурата POWER, вместо да коригира проблемите, свързани с традиционния подход на регистъра на условията, предлага: а) наличието на специален бит в кода на операцията на всяка инструкция, което прави модификацията на регистъра на условието допълнителна опция и по този начин възстановява способността на компилатора да реорганизира кода и б) множество (осем) регистри на условия, за да се преодолее проблемът с единичен ресурс и да се осигурят повече имена на регистри на условия, така че компилаторът да може да разпределя и разпределя ресурси на регистър на условия, както прави за универсалните регистри.

Друга причина за избора на модела на разширения регистър на условията е, че той е в съответствие с организацията на машината под формата на независими изпълнителни механизми. Концептуално регистърът на условията е локален за преходното устройство. Следователно, за да се оцени посоката на изпълнение на условно разклоняване, не е необходимо да се осъществява достъп до файла с универсален регистър (който е локален за устройството с фиксирана точка). До степента, в която компилаторът може предварително да планира модификацията на кода на условието (и/или предварително да зареди адресни регистри за прескачане), хардуерът може предварително да прегледа и свие условните разклонения, като ги отдели от потока от инструкции. Това освобождава времеви интервал (цикъл) за издаване на команда в конвейера, обикновено зает от команда за прескачане, и позволява на командния мениджър да създаде непрекъснат линеен поток от команди за изчислителни задвижващи механизми.

Първата реализация на архитектурата POWER се появи на пазара през 1990 г. Оттогава IBM представи още две версии на процесорите POWER2 и POWER2+, които осигуряват поддръжка за L2 кеш и разширен набор от инструкции.

Според IBM, процесорът POWER изисква по-малко от един тактов цикъл, за да изпълни една инструкция, в сравнение с приблизително 1,25 тактови цикъла за процесора
Motorola 68040, 1,45 тактови цикъла за SPARC процесор, 1,8 тактови цикъла за Intel i486DX и
1.8 часовник Hewlett-Packard PA-RISC. Тактовата честота на архитектурната серия, в зависимост от модела, варира от 25 MHz до 62 MHz.

Процесорите POWER работят на 33, 41.6, 45, 50 и 62.5 MHz.
Архитектурата POWER включва отделен кеш за инструкции и данни (с изключение на работни станции и сървъри за работни групи от начално ниво, които имат изпълнение на POWER процесор с един чип и споделен кеш за инструкции и данни), 64- или 128-битова шина на паметта и 52-битов виртуален адрес. Освен това има интегриран процесор с плаваща запетая и по този начин е много подходящ за изчислително интензивни приложения, типични за технически среди, въпреки че настоящата стратегия
RS/6000 е насочен както към търговски, така и към технически приложения.
RS/6000 показва добра производителност с плаваща запетая: 134.6
SPECp92 за POWERstation/Powerserver 580. Това е по-малко от нивото на моделите
Hewlett-Packard 9000 Series 800 G/H/I-50, които достигат 150
SPECfp92.

За реализиране на бърза I/O обработка, POWER архитектурата използва Micro Channel bus с честотна лента от 40 или 80
MB/сек. Шината Micro Channel включва 64-битова шина за данни и осигурява поддръжка за множество адаптери на хост шина. Тази поддръжка позволява на мрежовите контролери, видеоадаптери и други интелигентни устройства да прехвърлят информация през шината независимо от основния процесор, което намалява натоварването на процесора и съответно повишава производителността на системата.
Мултичиповият комплект POWER2 се състои от осем полу-персонализирани чипа
(устройства):
Instruction cache unit (ICU) - 32 KB, има два порта със 128-битови шини;
Целочислена аритметична единица (FXU) - съдържа два целочислени конвейера и два регистрови блока с общо предназначение (32 32-битови регистъра всеки). Извършва всички цели и логически операции, както и всички операции за достъп до паметта;
Floating Point Unit (FPU) - съдържа два конвейера за извършване на операции с плаваща запетая с двойна точност, както и 54 64-битови регистъра с плаваща запетая;
Четири блока кеш данни - максималният L1 кеш е 256 KB. Всеки блок има два порта. Устройството също така реализира редица функции за откриване и коригиране на грешки при взаимодействие със системата за памет;
Модул за управление на паметта (MMU).

Комплектът матрици POWER2 съдържа приблизително 23 милиона транзистора на площ от 1217 квадратни мм и е произведен с помощта на CMOS технология със стандарти за проектиране от 0,45 микрона. Разсейването на мощността при 66,5 MHz е
65 W.

Производителността на процесора POWER2 е значително повишена в сравнение с POWER: при тактова честота от 71,5 MHz той достига 131 SPECint92 и 274
SPECfp92.

Еволюция на POWER архитектурата към PowerPC архитектурата

IBM разширява мощта на POWER архитектурата към малки системи с PowerPC платформата. Архитектурата POWER в тази форма може да осигури нива на производителност и скалируемост, които надхвърлят възможностите на днешните персонални компютри. PowerPC е базиран на платформата RS/6000 в евтина конфигурация. В архитектурно отношение основните разлики между тези две разработки са само в това, че PowerPC системите използват едночипово изпълнение на POWER архитектурата, произведена от Motorola, докато повечето системи
RS/6000 използва многочипова реализация. Съществуват няколко варианта на PowerPC процесора, които отговарят на нуждите на преносими продукти и настолни работни станции, но това не изключва възможността за използване на тези процесори в по-големи системи. Процесорът 601 беше обявен за първи на пазара, предназначен за използване в настолни работни станции на компании
IBM и Apple. Той беше последван от матриците 603 за преносими и настолни системи от начално ниво и матриците 604 за настолни системи от висок клас. И накрая, процесорът 620 е проектиран специално за сървърни конфигурации и със своята 64-битова организация се очаква да осигури изключителни нива на производителност.

При разработването на архитектурата PowerPC, за да отговори на нуждите на три различни компании (Apple, IBM и Motorola), като същевременно поддържа съвместимост с RS/6000, бяха направени няколко промени в архитектурата POWER в следните области: опростяване на архитектурата с цел нейното адаптиране към евтини едночипови процесори; премахване на команди, които могат да се превърнат в пречка за увеличаване на тактовата честота; елиминиране на архитектурни бариери пред суперскаларна обработка и извънредно изпълнение на инструкции; добавяне на функции, необходими за поддържане на симетрична мултипроцесорност; добавяне на нови функции, считани за необходими за бъдещи приложения; ясно определяне на разделителната линия между „архитектура“ и „изпълнение“; осигуряване на дълъг живот на архитектурата чрез разширяването й до 64-битова.

Първият PowerPC микропроцесор, PowerPC 601, в момента се произвежда от IBM и Motorola. Това е процесор от среден клас, предназначен за използване в настолни компютърни системи с ниска до средна цена. Той е проектиран като преходен модел от архитектурата POWER към
PowerPC и реализира възможностите и на двете архитектури. В този случай двоични кодове
RS/6000 работи на него непроменен, като дава допълнително време на разработчиците на компилатори да овладеят архитектурата на PowerPC, както и на разработчиците на приложения, които трябва да прекомпилират своите програми, за да се възползват напълно от архитектурата на PowerPC.

Процесорът 601 е базиран на едночипов процесор от IBM, който е разработен по време на създаването на алианса на трите водещи компании. Но в сравнение със своя предшественик, PowerPC 601 претърпя големи промени за подобряване на производителността и намаляване на разходите.
Например, той включваше по-сложно преходно устройство, подобрено с мултипроцесорни възможности, включително шинния интерфейс на високопроизводителния 88110 процесор на Motorola. Power 601 реализира суперскаларна обработка, която позволява да бъдат издадени 3 команди за изпълнение във всеки тактов цикъл, вероятно не в реда, в който са разположени в програмния код.

PowerPC 603 процесор

PowerPC 603 е първият микропроцесор от фамилията PowerPC, който напълно поддържа PowerPC архитектурата (Фигура 6). Той включва пет функционални устройства: устройство за прескачане, устройство за целочислено число, устройство с плаваща запетая, устройство за зареждане/запис и устройство за системен регистър, както и две 8 KB инструкции на чип и кеша за данни. Тъй като PowerPC 603 е суперскаларен микропроцесор, той може да издава и изпълнява до три инструкции на тактов цикъл към тези изпълнителни единици. За да увеличи производителността, PowerPC 603 позволява извънредно изпълнение на команди. В допълнение, той предоставя програмируеми режими за намаляване на мощността, които дават на системните дизайнери гъвкавостта да прилагат различни технологии за управление на мощността.

Когато се обработват в процесора, командите се разпределят между пет изпълнителни устройства в реда, определен от програмата. Ако няма зависимости на операнд, изпълнението се извършва незабавно. Едно цяло числово устройство изпълнява повечето инструкции за един такт. Устройство с плаваща запетая е конвейерно и изпълнява операции с плаваща запетая с единична и двойна точност. Командите за условен скок се обработват в устройството за скок. Ако условията за преход са налични, тогава решението за посоката на прехода се взема незабавно, в противен случай изпълнението на следващите инструкции продължава по предположение (спекулативно).
Командите, които променят състоянието на контролните регистри на процесора, се изпълняват от устройството за системен регистър. И накрая, трансферите на данни между кеша за данни от една страна и регистрите с общо предназначение и с плаваща запетая от друга страна се обработват от устройството за зареждане/запис.

В случай на пропуск в кеша, основната памет се осъществява чрез 64-битова високопроизводителна шина, подобна на микропроцесорната шина MC88110. За да се увеличи максимално пропускателната способност и по този начин общата производителност, кешът комуникира с основната памет предимно чрез групови операции, които позволяват редът на кеша да бъде попълнен в една транзакция.

След като дадена команда завърши изпълнението в устройството за изпълнение, нейните резултати се изпращат до буфера за завършване на командата (буфер за завършване) и след това последователно се записват в съответния регистърен файл, докато командите се премахват от буфера за завършване. За да се сведат до минимум конфликтите в регистрите, процесорът PowerPC 603 предоставя отделни комплекти от 32 регистъра за цяло число с общо предназначение и 32 регистъра с плаваща запетая.
PowerPC 604

Суперскаларният процесор PowerPC 604 осигурява едновременно издаване на до четири инструкции. В този случай до шест команди могат да бъдат изпълнени паралелно във всеки цикъл. Фигура 5.21 показва блокова диаграма на процесор 604. Процесорът включва шест изпълнителни единици, които могат да работят паралелно: единица с плаваща запетая (FPU); блок за изпълнение на клонове (BPU); единица за зареждане/запис (LSU); три цели единици (IU): две едноциклични целочислени единици (SCIU); една многоциклична целочислена единица (MCIU).

Този паралелен дизайн, комбиниран със спецификацията на инструкцията
PowerPC, който позволява ускорено изпълнение на инструкции, осигурява висока ефективност и висока производителност на процесора.
Буферите за преименуване на регистъра на 604, буферните станции за резервиране, динамичното условно предсказване на посоката на разклоняване и устройствата за завършване на инструкции значително увеличават пропускателната способност на системата, осигуряват завършване на инструкциите в реда, предписан от програмата, и осигуряват прецизен модел на прекъсване.

Процесорът 604 има отделни устройства за управление на паметта и отделни 16 KB вътрешни инструкции и кешове за данни. Той внедрява два буфера за транслация на виртуални адреси към физически TLB
(отделно за команди и за данни), съдържащи по 128 реда. И двата буфера са двуканални набор-асоциативни и предоставят страници с виртуална памет с променлив размер. Кешът и TLB буферите използват алгоритъма LRU за замяна на блокове.

Процесорът 604 има 64-битова външна шина за данни и 32-битова адресна шина. Протоколът за интерфейс на процесора 604 позволява на множество главни главни шини да се конкурират за системни ресурси в присъствието на централизиран външен арбитър. В допълнение, логиката за наблюдение на вътрешната шина поддържа кохерентността на кеша в многопроцесорни конфигурации. Процесорът 604 осигурява както единични, така и групови трансфери на данни при достъп до основната памет.

До края на 1995 г. се очаква нов процесор PowerPC 620.
За разлика от своите предшественици, той ще бъде изцяло 64-битов процесор. Когато работи на тактова честота от 133 MHz, неговата производителност е оценена на 225 SPECint92 единици и 300 SPECfp92 единици, което е съответно с 40 и 100% повече от процесора PowerPC 604.

Подобно на други 64-битови процесори, PowerPC 620 съдържа 64-битови регистри с общо предназначение и с плаваща запетая и осигурява 64-битови виртуални адреси. В същото време се запазва съвместимостта с 32-битовия режим на работа, внедрен в други модели от семейството PowerPC.

Процесорът разполага с кеш памет за данни и инструкции с общ капацитет 64
KB, интерфейсни схеми за управление на кеша от второ ниво, 128-битова шина за данни между процесора и основната памет, както и логически схеми за поддържане на кохерентно състояние на паметта при организиране на многопроцесорна система.

Процесорът PowerPC 620 е насочен към пазара на високопроизводителни работни станции и сървъри.

В заключение отбелязваме, че илюстрациите към курса показват основните характеристики на някои съвременни системи, изградени на процесорите, разгледани в този раздел.

4. Характеристики на MIPS архитектурата от MIPS Technology

Архитектурата MIPS беше една от първите RISC архитектури, които получиха приемане в индустрията. Обявен е през 1986 г.
Първоначално беше напълно 32-битова архитектура, която включваше
32 регистъра с общо предназначение, 16 регистъра с плаваща запетая и специална двойка регистри за съхраняване на резултатите от операциите за умножение и деление на цели числа. Размерът на инструкцията беше 32 бита, поддържаше само един метод на адресиране и потребителското адресно пространство също беше дефинирано от 32 бита. Изпълнението на аритметичните операции се регулира от стандарта IEEE 754. В компютърната индустрия 32-битовите процесори R2000 и R3000 станаха широко популярни, които дълго време послужиха като основа за изграждането на работни станции и сървъри от Silicon Graphics, Фирми Digital и Siemens
Nixdorf и др. Процесорите R3000/R3010 работеха на тактова честота от 33 или 40
MHz и осигури производителност при 20 SPECint92 и 23 SPECfp92.

Тогава микропроцесорите от семейството R3000 бяха заменени от нови 64-битови микропроцесори R4000 и R4400. (MIPS Technology беше първата компания, която пусна процесори с 64-битова архитектура). Наборът от инструкции на тези процесори (спецификация MIPS II) беше разширен, за да включва 64-битови инструкции за зареждане и запис с плаваща запетая, инструкции за квадратен корен с единична и двойна точност, инструкции за условно прекъсване и атомарни операции, необходими за поддържане на многопроцесорни конфигурации. Процесорите R4000 и R4400 разполагат с 64-битови шини за данни и 64-битови регистри. Тези процесори използват метод за удвояване на вътрешната тактова честота.

Процесорите R2000 и R3000 имаха стандартни петстепенни конвейери за инструкции. Процесорите R4000 и R4400 използват по-дълги конвейери
(понякога наричани супертръбопроводи). Брой етапи в процесорите
R4000 и R4400 са се увеличили до осем, което се обяснява предимно с увеличаване на тактовата честота и необходимостта от разпределение на логиката, за да се осигури дадена производителност на тръбопровода. Процесорът R4000 може да работи на тактова честота 50/100 MHz и осигурява нива на производителност от 58 SPECint92 и 61 SPECfp92. Процесорът R4400 може да работи на 50/100 MHz или 75/150 MHz, осигурявайки нива на производителност от 94 SPECint92 и 105 SPECfp92.

Вътрешната кеш памет на процесора R4000 е с капацитет 16 KB. Той е разделен на 8-KB кеш за инструкции и 8-KB кеш за данни. По отношение на внедряването на кеш памет, процесорът R4400 има по-разширени възможности. Предлага се в три модификации: PC (Primary Cashe) - има вътрешен кеш за команди и данни с капацитет 16 KB. Процесор в тази конфигурация е предназначен предимно за евтини модели работни станции. SC (Secondary Cashe) съдържа логиката за управление на кеша от второ ниво. MC (Мултипроцесор
Cashe) - използва специални алгоритми за осигуряване на кохерентност и последователно състояние на паметта за многопроцесорни конфигурации.

В средата на 1994 г. MIPS обяви процесора R8000, който беше насочен предимно към научни приложения с интензивно използване на плаваща запетая. Този процесор е изграден върху два чипа (предлага се като сборка с множество чипове) и представлява първото суперскаларно изпълнение на MIPS архитектурата.
Теоретична пикова производителност на процесора при 75 тактова честота
MHz е 300 MFLOPs (до четири инструкции и шест операции с плаваща запетая във всеки тактов цикъл). Внедряване на голям кеш за данни с капацитет 16
MB, висока пропускателна способност за достъп до данни (до 1,2 GB/s), комбинирана с висока оперативна скорост позволява на R8000 да постигне
75% теоретична производителност дори при решаване на големи проблеми като
LINPACK с размери на матрицата 1000x1000 елемента. Хардуерната поддръжка за кохерентност на кеша, заедно с инструментите за паралелизиране на компилатора, прави възможно изграждането на високопроизводителни симетрични многопроцесорни системи. Например процесорите R8000 се използват в системата Power Challenge на Silicon
Графиката, която лесно може да се сравни по производителност с добре познатите суперкомпютри Cray Y-MP, има порядък по-ниска цена и поставя значително по-ниски изисквания към подсистемите за захранване и охлаждане. В еднопроцесорна версия тази система осигурява производителност от 310 SPECfp92 и 265 MFLOP на пакета LINPACK
(1000x1000).

През 1994 г. MIPS Technology също обяви създаването на своя нов суперскаларен процесор, R10000. Технологията MIPS R10000 осигурява пикова производителност от 800 MIPS, когато работи на вътрешна тактова честота от 200 MHz, като издава четири инструкции на тактов цикъл. В същото време осигурява обмен на данни с кеша от второ ниво със скорост от 3,2 GB/s.

Ориз. 8. Блокова схема на микропроцесор R10000

Йерархия на паметта

По време на разработването на процесора R10000 беше обърнато много внимание на ефективното внедряване на йерархията на паметта. Той осигурява ранно откриване на пропуски в кеша и паралелно презареждане на редове, докато се извършва друга полезна работа. Кешовете в чипа поддържат едновременно извличане на инструкции, команди за зареждане и запис в паметта и операции за презареждане на кеш линия.
Попълването на редовете на кеша се извършва на принципа „първо заявената дума“, което може значително да намали времето за престой на процесора поради изчакване на необходимата информация. Всички кешове имат двуканална мултиасоциативна организация с алгоритъм за заместване на LRU.

Кеш данни от ниво 1

L1 кеша за данни на R10000 има капацитет от 32
KB и е организирана под формата на две еднакви банки с капацитет 16 KB, което осигурява двойно наслояване при достъп до тази кеш памет. Всяка банка е двуканален набор-асоциативен кеш с размер на ред (блок) от 32 байта. Кешът за данни се индексира от виртуален адрес и съхранява маркери за адрес на физическа памет. Този метод на индексиране ви позволява да изберете подмножество от кеш паметта в същия тактов цикъл, в който се формира виртуалният адрес. Въпреки това, за да се поддържа кохерентност с L2 кеша, L1 кешът съхранява маркери за адреси на физическа памет.

Масивите от данни и тагове във всяка банка са независими. Тези четири масива работят под общ контрол на опашката за генериране на адреси на паметта и външните интерфейсни вериги на чипа. Адресната опашка може да съдържа до 16 команди за зареждане и запис едновременно, които се обработват в четири отделни конвейера. Командите от тази опашка се подават динамично за изпълнение в специален конвейер, който осигурява изчисляването на изпълнителния виртуален адрес и преобразуването на този адрес във физически. Три други паралелни конвейера могат едновременно да извършват проверка на тагове, препращане на данни за команди за зареждане и пълни команди за запис в паметта. Въпреки че инструкциите се изпълняват в строг ред на паметта, изчисляването на адреса и прехвърлянето на данни за инструкциите за зареждане може да възникнат неправилно. Вградените предни вериги на чипа могат да извършват операции за попълване на редове в кеша, копиране или операции за търсене на етикети. Тази паралелна работа на повечето процесорни устройства позволява на R10000 ефективно да изпълнява многопроцесорни приложения в реалния свят.

Тръбопроводите за кеширане на данни са тясно координирани. Например, командите за зареждане могат да извършват проверка на тагове и четене на данни в същия часовников цикъл като превода на адреси. Командите за запис незабавно започват да проверяват тагове, за да подканят необходимия ред да бъде попълнен от L2 кеша възможно най-рано, но действителното записване на данни в кеша се забавя, докато самата команда за запис стане най-старата команда в общата опашка за изпълнение. и ще й бъде позволено да запише резултата си („освободен“).
Пропуск в L1 кеша за данни задейства процеса на попълване на ред от L2 кеша. Когато командите за зареждане се изпълняват в същото време, когато редът на кеша се запълва, данните могат да бъдат заобиколени в регистрационния файл.

Ако се открие пропуск при достъп до кеша за данни, неговата работа не се блокира, т.е. може да продължи да обслужва бъдещи заявки.
Това е особено полезно за намаляване на такъв важен показател за качеството на внедрената архитектура като средния брой тактови цикли на инструкция (CPI). Фигура 5.14 показва резултатите от симулирането на работата на R10000 с помощта на няколко програми в тестовия пакет SPEC.
За всеки тест се дават два резултата: с кеш данни, заключен при открит пропуск (отгоре) и действителната стойност на CPI R10000 (отдолу).
По-тъмната област вдясно представлява загубено време поради пропуски в кеша. Най-горният резултат представлява общата латентност, ако всички операции за презареждане на кеша са извършени строго последователно. По този начин стрелката представлява загубата на време, която възниква в заключения кеш. Ефектът от използването на неблокиращ кеш зависи до голяма степен от характеристиките на самите програми. За малки тестове, чиито работни набори се побират изцяло в L1 кеша, този ефект не е голям. Въпреки това, за по-реалистични програми като теста tomcatv или теста за компресиране с тежък кеш, печалбата е значителна.

L2 кеш памет

L2 кеш интерфейсът на процесора R10000 поддържа
128-битова магистрала за данни, която може да работи на тактова честота до 200 MHz, осигуряваща скорост на трансфер до 3,2 GB/s (за намаляване на изискванията за скорост на чиповете памет, възможността за разделяне на честотата с фактори от 1.5, 2, 2.5 и 3 също са предоставени). Всички стандартни синхронни контролни сигнали за статична памет се генерират вътрешно от процесора. Не са необходими външни интерфейсни схеми. Минималният размер на кеша от второ ниво е 512 KB, максималният размер е 16 MB. Размерът на реда на този кеш е програмируем и може да бъде 64 или 128 байта.

Един от методите за подобряване на времето на кеш паметта е изграждането на псевдо-множествена асоциативна кеш памет. Този кеш има честота на пропуски, подобна на тази на набор-асоциативна памет и време за извличане на попадение, подобно на кеш с директно картографиране. Кеш паметта на R10000 е организирана точно по този начин, като за нейната реализация се използват стандартни синхронни чипове с памет (SRAM). Един и същ чипсет на паметта съдържа и двата кеш канала. Информацията за честотата на използване на тези канали се съхранява в схемите за управление на кеша на процесорния чип.
Следователно, след откриване на пропуск в основния кеш, два реда от четири думи се четат от най-често използвания вторичен кеш канал.
Техните тагове се четат заедно с първия ред от четири думи, а таговете на алтернативния канал се четат заедно с втория ред от четири думи (това се прави чрез просто обръщане на най-значимия бит от адреса).

В този случай са възможни три случая. Ако възникне попадение на първия канал, данните са достъпни незабавно. Ако има попадение в алтернативния канал, вторичният кеш се чете отново. Ако има пропуск и на двата канала, вторичният кеш трябва да се запълни отново от основната памет.

За да се гарантира целостта на данните в кешове с голям капацитет, обичайна практика е да се използват единични кодове за коригиране на грешки (ECC). R10000 съхранява 9-битов ECC код и бит за паритет с всеки ред от четири думи. Допълнителният бит за паритет намалява забавянето, тъй като проверките за паритет могат да се извършват много бързо, за да се предотврати използването на невалидни данни. В този случай, ако бъде открита поправима грешка, отчитането се повтаря чрез специален тръбопровод за коригиране на грешки с натискане и изтегляне.

Кеш инструкции

Вътрешният двуканален кеш с множество асоциативни инструкции е 32 KB. При зареждането му командите се декодират частично. В този случай към всяка команда се добавят 4 допълнителни бита, които показват изпълнителното устройство, в което тя ще бъде изпълнена. Така инструкциите се съхраняват в кеш паметта в 36-битов формат. Размерът на реда на кеша за инструкции е 64 байта.

Обработване на команди за прескачане

При прилагане на конвейерна обработка възникват ситуации, които възпрепятстват изпълнението на следващата команда от командния поток в предвидения за нея тактов цикъл. Такива ситуации се наричат ​​конфликти.
Конфликтите намаляват действителната производителност на тръбопровода, което може да се постигне в идеалния случай. Един от видовете конфликти, с които проектантите на високопроизводителни процесори трябва да се справят, са контролните конфликти, които възникват при конвейерни инструкции за прескачане и други инструкции, които променят стойността на програмния брояч.

Контролните конфликти могат да причинят дори по-големи загуби на производителност на суперскаларен процесор, отколкото конфликтите на данни. Според статистиката сред командите за управление, които променят стойността на програмния брояч, преобладават командите за условен преход. По този начин намаляването на загубата от условни разклонения става критичен проблем. Има няколко техники за намаляване на спиранията на тръбопровода, които възникват поради закъснения при изпълнение на условни разклонения. Процесорът R10000 използва два от най-мощните метода за динамично оптимизиране на изпълнението на условно разклоняване: хардуерно предсказване на посоката на условно разклоняване и
„изпълнение по предположение“ (спекулация).

Модулът за прескачане на процесора R10000 може да декодира и изпълни само една инструкция за прескачане на тактов цикъл. Тъй като всяка инструкция за разклоняване е последвана от слот за забавяне, максимум две инструкции за разклоняване могат да бъдат извлечени едновременно, но само една по-ранна инструкция за разклоняване може да бъде декодирана в даден момент. По време на декодирането на инструкцията към всяка инструкция се добавя бит флаг за разклоняване.
Тези битове се използват за маркиране на инструкции за разклоняване в конвейера за извличане на инструкции.

Посоката на условния преход се прогнозира с помощта на специална памет (таблица с история на разклоненията) с капацитет 512 реда, която съхранява историята на минали преходи. Тази таблица е достъпна с помощта на адреса на инструкцията по време на извличане. Двубитовият код за прогнозиране в тази памет се актуализира всеки път, когато се вземе окончателно решение за посоката на прехода. Симулациите показват, че точността на двубитовата схема за прогнозиране за SPEC бенчмарка е 87%.

Всички команди, избрани след командата за условно разклоняване, се считат за изпълнени по предположение (условно). Това означава, че в момента на тяхното извличане не се знае предварително дали изпълнението им ще приключи.
Процесорът позволява предварителна обработка и предсказване на посоката на четири условни инструкции за разклоняване, които могат да бъдат разрешени във всякакъв ред. В този случай, за всяка инструкция за условно прескачане, изпълнена чрез предположение, информацията, необходима за възстановяване на състоянието на процесора в случай, че посоката на прехода е предвидена неправилно, се записва в специален стек за преход. Преходният стек има дълбочина от 4 елемента и позволява, ако е необходимо, бързо и ефективно (в един такт) да възстанови тръбопровода.

Структура на опашката с команди

Процесорът R10000 съдържа три командни опашки (буфери) (цялочислена командна опашка, командна опашка с плаваща запетая и адресна опашка).
Тези три опашки динамично издават команди към съответните изпълнителни механизми. С всяка команда в опашката се съхранява команден етикет, който се придвижва с командата по етапите на конвейера.
Всяка опашка динамично планира потока от инструкции и може да определи кога операндите, необходими за изпълнение на всяка инструкция, стават налични. В допълнение, опашката определя реда, в който се изпълняват командите въз основа на анализ на състоянието на съответните изпълнителни механизми. Веднага след като ресурсът е свободен, опашката издава команда към съответното изпълнително устройство.

Целочислена опашка от команди

Опашката с целочислени команди съдържа 16 реда и издава команди към две аритметични логически устройства. Целочислените команди пристигат в свободните редове на тази опашка и във всеки цикъл могат да бъдат записани до 4 команди. Инструкциите за цели числа остават в опашката, докато не бъдат издадени към едно от ALU.

Опашка от команди с плаваща запетая

Опашката с команди с плаваща запетая също съдържа 16 реда и издава команди към изпълнителните механизми за събиране и умножение с плаваща запетая. Командите с плаваща запетая се изпращат до свободните редове на опашката и във всеки цикъл могат да бъдат записани до 4 команди. Командите остават в опашката, докато не бъдат издадени към някое от устройствата за изпълнение. Опашката от команди с плаваща запетая също съдържа логика за управление на команди за умножаване и добавяне. Тази команда първо се изпраща към устройството за умножаване и след това директно към устройството за добавяне.

Адресна опашка

Опашката с адресни команди издава команди към устройството за зареждане/запис и съдържа 16 реда. Опашката е организирана като кръгов FIFO буфер
(първи влязъл първи излязъл). Командите могат да се издават във всякакъв ред, но трябва да се поставят в опашка и да се премахват от нея строго последователно. Във всеки цикъл до 4 команди могат да влязат в опашката. FIFO буферът поддържа оригиналната последователност от инструкции, което улеснява откриването на зависимостите на адресите. Издадената команда може да не завърши, ако бъде открита зависимост от адрес, пропуск в кеша или конфликт на ресурси. В тези случаи опашката с адреси трябва да подаде отново командата, докато не завърши.

Преименуване на регистри

Един от хардуерните методи за минимизиране на конфликтите на данни е методът за преименуване на регистъра. Получава името си от метода за преименуване, широко използван в компилаторите - метод за разполагане на данни, който помага за намаляване на броя на зависимостите и по този начин повишава производителността при картографиране на обекти (например променливи), необходими на програмата източник към хардуерни ресурси
(например клетки с памет и регистри).

При внедряването на метода за преименуване на регистъра в хардуера се разпределят логически регистри, които се осъществяват чрез съответните командни полета, и физически регистри, които се намират във файла с хардуерен регистър на процесора. Номерата на логическите регистри се преобразуват динамично във физическите номера на регистрите чрез таблици за преобразуване, които се актуализират след декодиране на всяка инструкция. Всеки нов резултат се записва в нов физически регистър. Предишната стойност на всеки логически регистър обаче се запазва и може да бъде възстановена в случай, че изпълнението на инструкцията трябва да бъде прекъснато поради изключение или погрешно предвиждане на посоката на условно разклоняване.

По време на изпълнение на програмата се генерират много временни резултати от регистъра. Тези временни стойности се записват за регистриране на файлове заедно с постоянните стойности. Временната стойност става новата постоянна стойност, когато командата завърши (резултатът й се записва). На свой ред, завършването на дадена команда става, когато всички предишни команди са завършили успешно в реда, определен от програмата.
Програмистът (или компилаторът) работи само с логически регистри.
Изпълнението на физически регистри е скрито от него.

По този начин методът за преименуване на хардуерния регистър, използван в процесора R10000, има три основни предимства. Първо, резултатите от "изпълнени предположения" инструкции могат да бъдат записани директно в регистрационен файл. Второ, този метод елиминира всички конфликти запис-след-четене и запис-след-запис, които често възникват, когато командите се изпълняват неправилно. И накрая, методът за преименуване на регистъра улеснява контрола на зависимостите от данни.
Тъй като процесорът може да издаде до четири инструкции за изпълнение във всеки тактов цикъл, процесът на преименуване на регистъра сравнява техните логически номера, за да определи зависимостите между четирите инструкции, декодирани в един и същи тактов цикъл.

Схемата за картографиране на инструкции, реализирана в микропроцесора R10000, се състои от две таблици за картографиране, списък с активни инструкции и два списъка със свободни регистри (за целочислени инструкции и инструкции с плаваща запетая има отделни таблици за картографиране и списъци със свободни регистри). За да се поддържа последователен ред на изпълнение на командите, има само един активен списък с команди, който съдържа както цели числа, така и команди с плаваща запетая.

Микропроцесорът R10000 съдържа 64 физически регистъра
(цяло число и с плаваща запетая). Във всеки даден момент стойността на физически регистър се съдържа в един от горните списъци. Фигура 5.15 показва опростена блокова диаграма на картографиране на целочислени инструкции.

Командите се извличат от кеша на командите и се поставят в таблицата за съпоставяне.
Във всеки един момент всеки от 64-те номера на физическия регистър се намира в един от трите блока, посочени на фигурата.

Списък с активни команди от 32 елемента може да съхранява програмно подредена последователност от команди, които могат да бъдат в процес във всеки даден момент. Инструкциите в опашката с целочислени инструкции могат да се изпълняват без ред и да записват резултатите във физическите регистри, но редът, в който те в крайна сметка се изпълняват, се определя от списъка с активни инструкции.

Засега можем да спрем до тук относно MIPS. Нека сега да преминем също толкова плавно към процесори със SPARC архитектура.

5. Характеристики на процесори със SPARC архитектура на Sun Microsystems

Мащабируема процесорна архитектура SPARC (Scalable Processor
Архитектура) от Sun Microsystems е най-широко възприетата RISC архитектура, отразяваща доминиращата позиция на компанията на пазара на UNIX работни станции и сървъри. Процесорите SPARC са лицензирани и произведени по спецификации на Sun от няколко производителя, включително Texas
Инструменти, Fujitsu, LSI Logic, Bipolar International Technology, Philips,
Cypress Semiconductor и Ross Technologies. Тези компании доставят процесори SPARC не само на самата Sun Microsystems, но и на други известни производители на компютърни системи, например Solbourne,
Toshiba, Matsushita, Tatung и Cray Research.

Архитектурата SPARC първоначално е проектирана да опрости внедряването на 32-битов процесор. Впоследствие, с усъвършенстването на технологията за производство на интегрални схеми, тя постепенно се развива и в момента съществува 64-битова версия на тази архитектура (SPARC-V9), която е в основата на нови микропроцесори, т.нар.
UltraSPARC. Първият процесор SPARC е произведен от Fujitsu на базата на гейт масив, работещ на честота 16,67 MHz. На базата на този процесор е разработена първата работна станция Sun-4 с производителност 10 MIPS, обявена през есента на 1987 г. (преди това Sun използва микропроцесори Motorola 680X0 в своите продукти).
През март 1988 г. Fujitsu увеличава тактовата честота до 25 MHz, създавайки процесор с производителност от 15 MIPS.

По-късно Sun умело се възползва от конкуренцията сред доставчиците на интегрални схеми, избирайки най-успешните проекти, за да продаде своите SPARCstation 1, 1+, IPC, ELC, IPX, 2 продукти и сървъри от сериите 4xx и 6xx. Тактовата честота на SPARC процесорите е увеличена до 40
MHz, а производителността е до 28 MIPS.

По-нататъшно увеличаване на производителността на процесорите с архитектура
SPARC беше постигнат чрез прилагане на суперскаларни принципи за обработка върху чип от Texas Instruments и Cypress. процесор
SuperSPARC на Texas Instruments е основата за сериите работни станции и сървъри SPARCstation/SPARCserver 10 и 20. В зависимост от комбинацията от команди, той може да издава до три команди на тактов цикъл на машината. процесор
SuperSPARC има балансирана производителност при операции с фиксирана и плаваща запетая. Има вътрешен кеш от 36 KB
(20 KB кеш за инструкции и 16 KB кеш за данни), отделни целочислени и реални аритметични конвейери и при тактова честота от 75 MHz осигурява производителност от около 205 MIPS.

Въпреки че архитектурата SPARC остава доминираща на пазара на RISC процесори за дълго време, особено в сектора на работните станции, увеличенията на тактовите честоти на процесорите през 1992-1994 г. се случиха с по-бавни темпове в сравнение с увеличенията на тактовите честоти на конкурентни процесорни архитектури. За да преодолее тази празнина и в отговор на появата на 64-битови процесори на пазара, Sun разработи и изпълнява петгодишна програма за модернизация. В рамките на тази програма Sun планира да увеличи тактовата честота на процесорите MicroSPARC до 100 MHz през 1994 г. (процесорът MicroSPARC II 110 MHz се използва в работни станции и сървъри SPARCstation 4 и 5). Накрая
1994 г. и през 1995 г. на пазара се появяват микропроцесори hyperSPARC и SPARCstation 20 еднопроцесорни и многопроцесорни работни станции с тактова честота на процесора 100, 125 и 150 MHz. До средата на 1995 г. тактовата честота на процесорите SuperSPARC беше увеличена до 85 MHz (60, 75 и
85 MHz версията на този процесор в момента се използва в работните станции и сървъри SPARCstation 20, SPARCserver 1000 и SPARCcenter 2000 на Sun и 64-процесорния сървър на Cray Research). И накрая, през ноември 1995 г. се появиха 64-битови процесори UltraSPARC-I с тактови честоти 143, 167 и 200 MHz и процесори UltraSPARC-II с тактови честоти от 250 до 300 MHz, масовото производство на които започна в средата на 1996 г. Впоследствие започва производството на UltraSPARC-III процесори с честоти до
500 MHz.

Има няколко версии на този процесор, които в зависимост от комбинацията от команди позволяват обработка на до три команди в един машинен цикъл, различаващи се по тактова честота (50, 60, 75 и 85 MHz). SuperSPARC процесор
(Фигура 9) има балансирана производителност при операции с фиксирана и плаваща запетая. Има вътрешен кеш от 36 KB
(20 KB кеш за инструкции и 16 KB кеш за данни), отделни целочислени и реални аритметични конвейери и при тактова честота от 75 MHz осигурява производителност от около 205 MIPS. Процесорът SuperSPARC се използва и в сървърите SPARCserver 1000 и SPARCcenter 2000 на компанията
слънце

Структурно кристалът е монтиран на взаимозаменяеми процесорни модули от три типа, които се различават по наличието и размера на кеш паметта от второ ниво и тактовата честота. M-bus SuperSPARC модул използван в модела
50 съдържа 50 MHz SuperSPARC процесор с вътрешен 36 KB кеш
(20 KB кеш за инструкции и 16 KB кеш за данни). M-bus SuperSPARC модули в модели
51, 61 и 71 съдържат по един SuperSPARC процесор, работещ съответно на 50, 60 и 75 MHz, един чип за кеш контролер
(т.нар. SuperCache), както и външен кеш с капацитет 1 MB. M-bus модулите в модели 502, 612, 712 и 514 съдържат два SuperSPARC процесора и два кеш контролера всеки, а последните три модела съдържат един 1 MB външен кеш на процесор. Използването на кеш памет позволява на модулите на процесора да работят с тактова честота, различна от тактовата честота на дънната платка; Следователно потребителите на всички модели могат да подобрят производителността на своите системи, като заменят съществуващите CPU модули, вместо да обновят цялата дънна платка.

Ориз. 9. хиперСПАРЦ

Едно от основните предизвикателства пред разработчиците на микропроцесори hyperSPARC беше да подобрят производителността, особено при извършване на операции с плаваща запетая. Поради това специално внимание на разработчиците беше отделено на създаването на прости и балансирани шестстепенни конвейери за целочислена аритметика и плаваща запетая. Логическите схеми на тези конвейери бяха внимателно проектирани, броят на логическите нива на портите между етапите беше изравнен, за да се опростят проблемите с по-нататъшното увеличаване на тактовата честота.

Производителността на процесорите hyperSPARC може да варира независимо от скоростта на външната шина (MBus). Наборът матрици hyperSPARC позволява както синхронни, така и асинхронни операции, използвайки персонализирана логика на матрицата RT625. Разделянето на вътрешната процесорна шина от външната шина ви позволява да увеличите тактовата честота на процесора независимо от честотата на паметта и I/O подсистемите. Това гарантира по-дълъг жизнен цикъл, тъй като надграждането до модули hyperSPARC с по-висока производителност не изисква преработка на цялата система.

Комплектът процесори hyperSPARC 100 MHz е изграден върху CMOS технология с три нива на метализация и 0,5 микрона стандарти за дизайн. Вътрешната логика работи със захранващо напрежение 3.3V.

Процесорът hyperSPARC е реализиран като многочипов микросглобка
(Фигура 5.4), която включва част от суперскаларен тръбопровод и тясно свързан кеш от второ ниво. Комплектът кристали включва
RT620 (CPU) е централната процесорна единица, RT625 (CMTU) е кеш контролерът, единицата за управление на паметта и единицата за тагове, а четири RT627 (CDU) кеша за данни реализират 256 KB L2 кеш.
RT625 също така предоставя интерфейс към MBus. Процесор RT620
(Фигура 10) се състои от целочислено устройство, устройство с плаваща запетая, устройство за зареждане/запис, устройство за прескачане и двуканална памет за набори асоциативни инструкции с капацитет 8 KB. Устройството с цяло число включва ALU и отделен път за данни за операции за зареждане/запис, които са две от четирите изпълнителни единици на процесора. Преходното устройство обработва команди за прехвърляне на управление, а устройството с плаваща запетая всъщност се състои от два независими конвейера - събиране и умножение на числа с плаваща запетая. За да увеличат пропускателната способност на процесора, инструкциите с плаваща запетая преминават през конвейера с цели числа и влизат в опашка, където чакат да бъдат изпълнени в един от конвейерите с плаваща запетая. Във всеки цикъл се избират два отбора. Като цяло, докато тези две команди изискват различни изпълнителни устройства за тяхното изпълнение и няма зависимости от данни, те могат да се изпълняват едновременно. RT620 съдържа два регистърни файла: 136 целочислени регистъра, конфигурирани като осем регистърни прозореца, и 32 отделни регистъра с плаваща запетая, разположени в устройството с плаваща запетая. L2 кеш паметта в процесора hyperSPARC е базирана на RT625 CMTU, който е комбиниран чип, който включва кеш контролер и модул за управление на паметта, който поддържа споделена външна памет и симетрична мултипроцесорност. Кеш контролерът поддържа 256 KB кеш, състоящ се от четири RT627 CDU. Кеш паметта има директно картографиране и 4K тагове. Етикетите в кеша съдържат физически адреси, така че логиката за кохерентност на многопроцесорния кеш, намираща се в RT625, може бързо да открие удари или пропуски, когато се гледа от предната шина, без да спира достъпа до кеша от процесора.
Поддържат се както режим на запис, така и режим на обратно копиране.

Устройството за управление на паметта съдържа напълно асоциативна кеш памет за преобразуване на виртуални адреси във физически адреси
(TLB), състоящ се от 64 реда, който поддържа 4096 контекста. RT625 съдържа 32-байтов буфер за четене, използван за зареждане, и 64-байтов буфер за запис, използван за разтоварване на L2 кеша. Размерът на реда на кеша е 32 байта. В допълнение, RT625 включва синхронизираща логика, която осигурява интерфейс между вътрешната шина на процесора и SPARC MBus при извършване на асинхронни операции.

RT627 е 16K(32K) SRAM, специално проектиран да отговаря на изискванията на hyperSPARC. Организиран е като четириканален SRAM в четири масива с логика за запис на байтове и входни и изходни фиксиращи регистри. RT627 за CPU е нулев държавен кеш за изчакване без загуби на конвейер (т.е. спирания) за всички зареждания и записи, които са ударили кеша. RT627 е проектиран специално за процесора hyperSPARC, така че не са необходими допълнителни схеми за взаимодействие с RT620 и RT625.

Комплектът матрици ви позволява да се възползвате от тясното свързване между процесора и кеш паметта. RT620 е проектиран да позволява загуба на един тактов цикъл в случай на пропуск на L1 кеш. За достъп до L2 кеш паметта RT620 има специален конвейер. Ако има пропуск в кеша L1 и удар в кеша L2, процесорът не спира.

Инструкциите за зареждане и запис едновременно генерират два достъпа: един към 8 KB L1 кеш на инструкции и един към L2 кеша. Ако адресът на инструкцията бъде намерен в кеша от първо ниво, тогава достъпът до кеша от второ ниво се отменя и инструкцията става достъпна на етапа на декодиране на конвейера. Ако има пропуск във вътрешната кеш памет и се открие попадение в кеша от второ ниво, тогава инструкцията ще стане достъпна със загубата на един тактов цикъл, който е вграден в конвейера. Тази възможност позволява на тръбопровода да продължи да работи непрекъснато, докато има или L1, или L2 кеш хитове, които са съответно 90% и 98% за типични приложения за работни станции. За постигане на архитектурен баланс и опростяване на обработката на изключения, конвейерите с цели числа и с плаваща запетая имат пет етапа на работа. Този дизайн позволява на RT620 да осигури максимална производителност, която не е постижима по друг начин.

С прегледа на този процесор можем да завършим нашата дискусия за процесорите с архитектура SPARK.

6. PA-RISC процесори от Hewlett-Packard

В основата на разработването на съвременните продукти на Hewlett-Packard е архитектурата PA-RISC. Той е разработен от компанията през 1986 г. и оттогава е преминал през няколко етапа на своето развитие поради успеха на интегрираната технология от многочипов до едночипов дизайн. През септември
През 1992 г. Hewlett-Packard обяви създаването на своя суперскаларен процесор PA-7100, който оттогава се превърна в основа за фамилията работни станции HP 9000 Series 700 и фамилията бизнес сървъри HP 9000 Series 800. В момента има 33-, 50 - и 99 MHz изпълнение на кристала PA-7100. Освен това бяха пуснати модифицирани кристали PA-7100LC с тактова честота 64, подобрени в много отношения.
80 и 100 MHz и PA-7150 с тактова честота 125 MHz, както и PA-7200 с тактова честота 90 и 100 MHz. Компанията активно разработва следващото поколение процесор HP 8000, който ще работи на тактова честота
200 MHz и осигуряват ниво от 360 единици SPECint92 и 550 единици SPECfp92.
Появата на този кристал се очаква през 1996 г. В допълнение, Hewlett-
Packard, в сътрудничество с Intel, създаде нов процесор с много дълга дума на инструкция (VLIW архитектура), който е съвместим както с
Intel x86 и семейството PA-RISC. Производството на този процесор започва през 1998 г. Като илюстративен пример нека изберем PA-7100/

Характеристика на PA-RISC архитектурата е реализацията на кеша извън чипа, което прави възможно внедряването на различни количества кеш памет и оптимизирането на дизайна в зависимост от условията на приложението (Фигура
12.). Инструкциите и данните се съхраняват в отделни кеш памети, а процесорът се свързва с тях с помощта на високоскоростни 64-битови шини. Кеш паметта е реализирана върху високоскоростни статични кристали на паметта
(SRAM), които се синхронизират директно на тактовата честота на процесора. При 100 MHz всеки кеш има 800 MB/s честотна лента за четене и 400 MB/s честотна лента за запис. Хардуерът на микропроцесора поддържа различни количества кеш памет: кешът на инструкциите може да има размер от 4 KB до 1
MB, кеш данни - от 4 KB до 2 MB. За да се намали процентът на пропуски, се използва механизъм за хеширане на адреси. И двата кеша използват допълнителни битове за проверка за подобряване на надеждността, а грешките в кеша на инструкциите се коригират от хардуера.

Модулът с плаваща запетая (Фигура 13) прилага аритметика с единична и двойна точност в стандарта IEEE 754. Неговият блок за умножение се използва и за извършване на операции за умножение на цели числа. Единиците за деление и квадратен корен работят с двойна скорост на процесора. Аритметичното логическо устройство изпълнява операции за събиране, изваждане и преобразуване на формати на данни. Регистърният файл се състои от 28 64-битови регистъра, всеки от които може да се използва като два 32-битови регистъра за извършване на операции с плаваща запетая с единична точност. Регистърният файл има пет порта за четене и три порта за запис, които позволяват едновременни операции за умножение, добавяне и зареждане/запис. Повечето подобрения в производителността на процесора идват от увеличаване на тактовата честота до 100
MHz в сравнение с 66 MHz за неговия предшественик.

Тръбопроводът на целочисленото устройство има шест етапа: четене на кеша на инструкции (IR), четене на операнд (OR), изпълнение/четене на кеша на данни
(DR), завършено четене на кеша на данни (DRC), запис на регистър (RW) и запис на кеша на данни (DW). На етап ID се извличат инструкции. Прилагането на механизма с две инструкции изисква малък буфер за предварително извличане, който гарантира, че инструкциите се извличат предварително два тактови цикъла, преди IR етапът да започне работа. По време на изпълнение в етап ИЛИ, всички изпълнителни механизми декодират операндните полета в инструкцията и започват да изчисляват резултата от операцията. На етапа на DR целочисленото устройство завършва своята работа. Освен това кешът за данни извършва четене, но не пристигат данни, докато етапът DRC не завърши. Резултатите от операциите събиране (ADD) и умножение (MULTIPLY) също стават валидни в края на етапа на DRC. Записването в регистри с общо предназначение и в регистри с плаваща запетая се извършва на етап RW. Записването в кеша за данни с помощта на команди за запис (STORE) изисква два тактови цикъла. Най-ранният команден прозорец STORE с натискане и изтегляне се появява на етапите RW и DW. Този прозорец обаче може да се измести, тъй като записите в кеша за данни се извършват само когато се появи следващата команда за запис. Операциите за деление и квадратен корен за числа с плаваща запетая завършват много тактови цикли след DW етапа.

Тръбопроводът е проектиран да увеличи максимално времето, необходимо за завършване на четене от външни SRAM кеш матрици за данни. Това позволява честотата на процесора да бъде увеличена максимално за дадена скорост на SRAM. Всички инструкции за зареждане (LOAD) се изпълняват в един такт и изискват само един такт от честотната лента на кеша за данни. Тъй като кешовете за команди и данни са разположени на различни шини, няма загуби в конвейера, свързани с конфликти между извиквания към кеша за данни и кеша за команди.

Процесорът може да издава една целочислена инструкция и една инструкция с плаваща запетая за изпълнение във всеки тактов цикъл. Ширината на честотната лента на кеша за инструкции е достатъчна, за да поддържа непрекъснато издаване на две инструкции на всеки такт. Няма ограничения за подравняването или реда на двойка команди, които се изпълняват заедно. В допълнение, няма часовникови цикли, свързани с превключването от изпълнение на две инструкции към изпълнение на една инструкция. Беше обърнато специално внимание, за да се гарантира, че издаването на две команди в един тактов цикъл не ограничава тактовата честота. За да се постигне това, в кеша на инструкциите беше внедрен специален бит с възможност за предварително декодиране, за да се отделят целочислени инструкции на устройства от инструкции на устройства с плаваща запетая. Този бит за предварително декодиране на команда минимизира времето, необходимо за правилно разделяне на командите.

Загубите, свързани със зависимостите от данни и контрол, са минимални в този конвейер. Инструкциите за зареждане се изпълняват в един тактов цикъл, освен ако последващата инструкция не използва регистъра на местоназначението на инструкцията LOAD. Като правило, компилаторът ви позволява да заобиколите такива загуби от един цикъл. За да намали загубите, свързани с инструкциите за условно разклоняване, процесорът използва алгоритъм за предсказване на посоката на прехвърляне на управление. За да се оптимизира производителността на циклите, прехвърлянията на управление напред през програмата се предвиждат като неизпълними преходи, а прехвърлянията на управление назад през програмата се предвиждат като изпълними преходи.
Правилно предвидените условни разклонения се изпълняват в един тактов цикъл.

Броят отметки, необходими за запис на дума или двойна дума с командата STORE, е намален от три на две отметки. В по-ранните реализации на PA-RISC архитектурата беше необходим един допълнителен тактов цикъл за прочитане на кеша, за да се осигури попадение, а също и за обединяване на старите данни от линията на кеша с данните, които се записват. PA 7100 използва отделна шина за адресен етикет, за да синхронизира четенето на етикета със записа на данните от предишната команда STORE. Освен това наличието на отделни сигнали за разрешаване на запис за всяка дума от кеш линия елиминира необходимостта от обединяване на стари данни с нови данни от команди за запис на word или dword. Този алгоритъм изисква записи в SRAM чипове да се извършват само след като се установи, че записът е придружен от попадение в кеша и не предизвиква прекъсване. Това изисква допълнителна стъпка на тръбопровода между четенето на етикета и записването на данните. Тази конвейерна обработка не води до допълнителни пропилени тактови цикли, тъй като процесорът прилага специални байпасни вериги, които позволяват отложените командни данни за запис да бъдат насочвани към последващи команди за зареждане или команди STORE, които записват само част от думата. За даден процесор разходите за конвейер за инструкции за запис на дума или двойна дума се намаляват до нула, освен ако непосредствено последващата инструкция не е инструкция за зареждане или запис. В противен случай загубите са равни на един цикъл. Загубите за запис на част от дума могат да варират от нула до два тактови цикъла. Симулациите показват, че по-голямата част от командите за запис действително работят във формат от една или две думи.

Всички операции с плаваща запетая, с изключение на инструкциите за деление и квадратен корен, са напълно конвейерни и имат закъснение за изтегляне и издърпване както в режимите на единична, така и в двойна точност.
Процесорът може да издава независими инструкции с плаваща запетая за изпълнение във всеки тактов цикъл без никакви загуби. Последователните операции със зависимостите на регистъра водят до загуба на един цикъл.
Командите за деление и квадратен корен се изпълняват в 8 тактови цикъла за единична точност и 15 тактови цикъла за двойна точност. Изпълнението на инструкцията не се спира от инструкции за деление/квадратен корен, докато не се изисква регистърът на резултата или не бъде издадена следващата инструкция за деление/квадратен корен.

Процесорът може да изпълни паралелно една целочислена инструкция и една инструкция с плаваща запетая. В този случай „инструкциите за цели числа“ също включват инструкции за зареждане и запис на регистри с плаваща запетая, а „инструкциите за плаваща запетая“ включват инструкциите FMPYADD и FMPYSUB. Тези последни инструкции комбинират операцията за умножение с операциите за събиране или изваждане, съответно, които се изпълняват паралелно. Пиковата производителност е 200 MFLOPS за последователност от FMPYADD инструкции, в които съседните инструкции са независими от регистъра.

Разходите за операции с плаваща запетая, които използват предварително зареждане на операнд с инструкцията LOAD, са един тактов цикъл, ако зареждането и инструкциите с плаваща запетая са съседни, и два тактови цикъла, ако са издадени за изпълнение по едно и също време. За инструкция за запис, която използва резултата от операция с плаваща запетая, няма загуба, дори ако се изпълнява паралелно.

Излишните разходи за пропуски в кеша на данни са сведени до минимум чрез използването на четири различни техники: попадение при пропуск за инструкции LOAD и STORE, нишка на кеша на данни, специално кодиране на команди за запис, за да се избегне копирането на реда, който пропуска, и семафорни операции в кеш-памет. Първото свойство позволява всякакъв вид друга команда да бъде изпълнена, докато се обработва пропуск на кеш данни. За пропуски, възникнали по време на инструкция LOAD, обработката на следващите инструкции може да продължи, докато резултатният регистър на инструкцията LOAD не се изисква като операнд регистър за друга инструкция. Компилаторът може да използва това свойство, за да изтегли предварително необходимите данни в кеша много преди действително да са необходими. За пропуски, възникнали по време на инструкция STORE, обработката на последващи команди за зареждане или запис на част от дума продължава, докато няма препратки към реда, където е настъпил пропускът. Компилаторът може да използва това свойство, за да изпълнява команди, докато записва резултатите от предишни изчисления. По време на забавянето на обработката на пропуски, други инструкции LOAD и STORE, които попадат в кеша за данни, могат да бъдат изпълнени като други инструкции с цели числа и с плаваща запетая. По време на цялото време на обработка на пропусната инструкция STORE, могат да се появят други инструкции за запис в същия кеш ред без допълнителна загуба на време. За всяка дума в кеш ред процесорът има специален бит за индикация, който предотвратява копирането от паметта на думи от реда, които са били записани от инструкции STORE. Тази възможност се прилага за операции LOAD и STORE с цели числа и плаващи числа.

Изпълнението на командата спира, когато се регистрира дестинацията на командата
LOAD, който е неуспешен, се изисква като операнд към друга инструкция. Свойството threading позволява изпълнението да продължи веднага щом желаната дума или двойна дума бъде върната от паметта. По този начин изпълнението на командата може да продължи както по време на забавянето, свързано с обработката на пропуска, така и докато съответният ред се попълва, когато възникне пропускът.

Когато извършва блоково копиране на данни, в някои случаи компилаторът знае предварително, че записът трябва да се извърши в пълен кеш ред.
За да оптимизира справянето с такива ситуации, архитектурата PA-RISC 1.1 дефинира специално кодиране на командите за запис („блоково копие“), което означава, че хардуерът не трябва да извлича ред от паметта, който може да причини пропуск в кеша. В този случай времето за достъп до кеша за данни е сумата от времето, необходимо за копиране на стария кеш ред в паметта на същия адрес в кеша
(ако е мръсен) и времето, необходимо за запис на нов кеш таг. Процесорът PA 7100 предоставя тази възможност както за привилегировани, така и за непривилегировани инструкции.

Последното подобрение в управлението на кеша на данни включва прилагане на семафорни операции с "нулево натоварване" директно в кеша.
Ако в кеша се извърши семафорна операция, тогава загубеното време по време на нейното изпълнение не надвишава загубата на нормални операции за запис. Това не само намалява натоварването на конвейера, но също така намалява трафика на шината на паметта. Архитектурата PA-RISC 1.1 също така предоставя друг тип специално кодиране на инструкции, което елиминира изискването за синхронизиране на семафорни операции с I/O устройства.

Управлението на кеш паметта на командите позволява в случай на пропуск да продължи изпълнението на команди веднага след като командата, която не е в кеша, пристигне от паметта. 64-битовата шина за данни, използвана за попълване на кеш блоковете с инструкции, съответства на максимална честотна лента на външната шина на паметта от 400 MB/s при 100 MHz.

Процесорът също така предоставя редица мерки за минимизиране на загубите, свързани с преобразуването на виртуални адреси във физически.

Дизайнът на процесора осигурява реализацията на два начина за изграждане на многопроцесорни системи. При първия метод всеки процесор е свързан към интерфейсен чип, който следи всички транзакции на основната шина на паметта. В такава система всички функции за поддържане на кохерентно състояние на кеш паметта се възлагат на интерфейсния кристал, който изпраща съответните транзакции към процесора. Кешът за данни е изграден на принципите на lazy-back и поддържа битове за лично състояние за всеки кеш блок.
„мръсен“ и „валиден“, чиито стойности се променят в съответствие с транзакциите, които процесорът издава или приема.

Вторият метод за организиране на многопроцесорна система ви позволява да комбинирате два процесора и памет и I/O контролер на една и съща локална шина на паметта. Тази конфигурация не изисква допълнителни интерфейсни чипове и е съвместима със съществуващата система с памет.
Кохерентността на кеша се осигурява чрез наблюдение на шината на локалната памет. Прехвърлянето на линии между кешовете се извършва без участието на контролера на паметта и I/O. Тази конфигурация прави възможно изграждането на много евтини многопроцесорни системи с висока производителност.

Процесорът поддържа редица операции, необходими за подобряване на графичната производителност на работни станции от серия 700: прехвърляне на блокове, Z-буфериране, цветова интерполация и команди за трансфер на данни с плаваща запетая за обмен с I/O пространство.

Процесорът е изграден по технологията CMOS процес с конструктивни стандарти от 0,8 микрона, което осигурява тактова честота от 100 MHz.

Това, Виктор Владиленович, всъщност е всичко, което исках да предложа по този въпрос.

7. Литература.

1. М. Гук Съвременни микропроцесори Pentium, Pentium II, Pentium III.

Издателство "Петър" 2000 г
М. Гук IBM PC хардуер Издателство "ПитерКом" Св.-П. 1999 г.
Жаров А. IBM 2000 хардуер или всичко за съвременния компютър M.2000
Издателство "Microart".
Използвахме и материали, публикувани на сайтовете: www.Ixbt.com www.informix.ru www.banknet.kz www.hardware.ru www.fcentr.com
Използвани са материали от статии, публикувани в списания:
"PC World", "Computerworld", "Computerra".

С тази публикация започваме поредица от преводи на прекрасни статии, които популярно говорят за принципите на работа на съвременните микропроцесори.

Съвременните процесори са включили толкова много технологии, че сред подобрения и добавки е лесно да се изгубят от поглед принципите, които са в основата на съвременните компютърни технологии днес. Нека започнем с основите, връщайки се към дните на техническото превъзходство на процесорите DEC Alpha и навлизането на AMD Athlon на пазара.

Всичко ново е добре развито старо

Чудили ли сте се някога защо процесорите Alpha могат да постигнат толкова високи скорости? Защо ядрото на Intel P6 ще може да достигне 800 MHz или повече, но ядрото K6 най-вероятно никога? И защо AMD твърдят, че ядрото K7 е предназначено за високи честоти?

Е, време е да разберете какво се случва. Тази статия е първата от поредица от статии, която има за цел да обясни какво прави един процесор бърз. Ще разгледаме по-отблизо под черупката на тези цифрови трошачки. Повярвайте ми, там има какво да се види. И не се притеснявайте: целта на тази статия е да обясни, а не да хвърля умни думи. Така че давай!

Процесори 5-7 поколения. Вече са толкова различни...

Доста интересно: докато процесорите Alpha летяха с тогавашната умопомрачителна скорост от 700 MHz, AMD все още беше на 450 MHz, а Intel едва достигна 500 MHz. Тази разлика става още по-забележима, като вземете предвид факта, че Alpha достигна 533-600 MHz на 0,35 микрон процесори! AMD и Cyrix никога не са успели да изстискат повече от 233 MHz от своите 0.35 процесори. Така че не позволявайте на никого да ви казва, че всичко опира до процеса!

Как да получите високи честоти

На въпрос защо някои процесори са по-бързи от други, обикновено получавате три отговора:
1) По-добри производствени възможности (модерна технология, по-фин технически процес)
2) По-малък размер на процесора и по-ниско разсейване на топлината.
3) По-дълбоки конвейери

Сега нека да разгледаме числата:

процесор Година на стартиранеТехнологичен процес, микрониРазмер на кристала, mm2Макс. честота, MHzSpec Int 95Спецификация FP 95
IntelP II97 0,35 203 300 11,9 8,6
AMDК697 0,35 168 233 7,1 3,9
слънцеUltraSparc lli98 0,35 156 360 15,2 19,9
ДЕКАлфа 2116495 0,5 299 333 9,8 13,4
ДЕКАлфа 21164a97 0,35 209 600 18,4 21,4
ДЕКАлфа 2126498 0,25 302 667 40 60
HPPA-RISC 820097 0,5 345 220 15,5 25

Въпреки че DEC обикновено произвеждаше самите си процесори Alpha, напоследък (преди продажбата на процесорния бизнес на легендарната компания на корейския Samsung) чипове за DEC се произвеждаха във фабрики на Intel, които имаха по-добър производствен процес. Процесорите, базирани на 0,25 микронния процес, се появиха от Intel много по-рано, отколкото от DEC. Отново, както отбелязахме, Алфите бяха много по-бързи.

Малък размер на кристала? Но кристалите на процесорите Alpha и HP са просто огромни! И това не им пречи да превъзхождат много по-малки процесори от Intel и AMD (използвайки същия процес, разбира се).

Winchip IDT беше много малък, а процесорите на AMD винаги бяха по-малки от техните събратя на Intel. Но това изобщо не им помогна в конфронтацията с Intel. Оказва се, че не всичко зависи от производствения процес.

Дълбок конвейер? Това е безсмислен отговор. Как един дълбок тръбопровод може да помогне за постигане на високи мегахерци? И като цяло какво е дълбок конвейер?

Вашият първи микропроцесор

За да отговорим на нашите въпроси, ще трябва да създадем наш собствен малък процесор. Първото нещо, което трябва да знаете е, че основните събития в процесора се случват в така наречената „Аритметична логическа единица“ или просто ALU. Това е точно отделът на процесора, където се извършва обработката на данни. ALU получава данни от регистрите.

Той чете данни от регистри, извършва определени изчисления (например събиране, изваждане, увеличаване, логическо „или“ и т.н.) и след това записва резултатите от изчисленията обратно в регистрите. Впоследствие тези данни (чрез кеша) се връщат в основната памет.

По този начин можем да заключим, че регистрите трябва да са много бързи, в противен случай ALU ще бъде неактивен, докато пише и чете данни.

И така, само за един такт ние четем данни от регистъра и ги записваме в него! С други думи, ако, да речем, имате число X, съхранено в Z регистъра, и ALU, според инструкциите, трябва, да речем, да добави едно към него, тогава е възможно да запишете номера на отговора в този регистър. Хм, това наистина ли ще мине без проблеми? Всъщност, не наистина. Нека тогава да разберем какво прави процесорът по време на тактовия цикъл.

Както знаете, всички съвременни микропроцесори са синхронни. С други думи, има брояч, който редовно изпраща сигнали, които в идеалния случай представляват редуване на правоъгълни импулси. Когато импулсът „падне“, задаваме портите на регистъра (черни и сини стрелки), това се прави така, че данните, идващи от L1 кеша (сини стрелки, сочещи към регистрите), да се записват в правилния регистър. Освен това, ако сте забелязали, фигурата показва четири хоризонтални стрелки вляво от ALU. Това е командната шина. Той предава инструкции към ALU. (На нашия процесор можем да направим до 2^4=16 различни инструкции). Всичко това отнема много малко време Dsignal. Заема само малка част от ритъма.

След това правилните данни трябва да бъдат изпратени по шината (червена/жълта стрелка) към ALU. Доставката също отнема известно време (DB), тъй като стойностите на числата в регистрите трябва да бъдат добре установени, преди ALU да започне да извършва изчисления.

След като всичко е направено, ALU започва да работи. След изчисленията (DALU), резултатите се прехвърлят към регистрационната шина за данни (също DR). Когато следващият импулс се повиши, те се зареждат в регистрите.

Това е основната концепция на съвременните микропроцесори: във всеки цикъл има сигнал, който превключва определени тригери. Например, данните могат да се зареждат в регистрите само в началото („нарастване“) на импулса и да се четат само в края (зареждането е блокирано в този момент). Ето защо ALU може както да чете, така и да записва данни в регистъра в рамките на (?) един цикъл.

Горното ще ни помогне да отговорим на първоначалния ни въпрос: как да постигнем висока тактова честота. Ясно е, че високата честота означава кратко време между последователните импулси. Също така е ясно (вижте фигурата), че това време не може да бъде по-малко от сбора на пъти D сиг, D B, D ALU и DR (плюс още малко, за безопасност). В противен случай може да се случи ние, например, да започнем да зареждаме нови данни, преди резултатите да бъдат правилно записани в регистрите.

Така че, ако можем да намалим някое от D, можем да увеличим честотата. Три възможни начина:
1) Ускорете потока на данните през процесора.
2) Намалете времето за изчисление.
3) Правете възможно най-малко операции по време на един цикъл.

...да вървя по-бързо

Не е лесно да накарате поток от битове да се движи по-бързо в процесор. Първо, необходимо е да се намали колкото е възможно повече препятствията по пътя на електроните. Зависи от технологията на производство и температурата на кристала. Колкото по-добра е технологията, толкова по-добър е крайният продукт.

Какво ще кажете за температурата? Какво общо има тя с това? И въпреки факта, че атомите в кристалната решетка са в топлинно движение, а амплитудата му е пропорционална на температурата. И колкото по-голяма е амплитудата, толкова по-малък е шансът електронът да пропусне атома. Следователно, колкото по-ниска е температурата, толкова по-свободно се движат електроните. Ето защо охладените процесори работят по-бързо.

Друг начин да се намали времето за преминаване на битовете е да се съкрати пътят, който изминават. За да направите това, е необходимо да намалите размера на транзисторите и в резултат на това разстоянието между тях. Този подход позволи на Intel и AMD да достигнат 600 MHz; щяха да направят процесори от 0,18 микрона, за да заменят по-„обемистите“ 0,25s.

…намалете времето за изчисление

Машините са добри в извършването на няколко неща паралелно. Следователно, някои фантастични сгъваеми модули ще могат да се сгъват по-бързо от по-опростен дизайн, като по този начин намаляват D ALU. Тук обаче не всичко е толкова просто: сложно устройство, разбира се, се брои бързо, но е и повече.

... правете по-малко операции

Подобряване на технологията на производство е лесно да се каже, но трудно да се направи. Струва адски много пари. Това се нарича „метод на груба сила“. Няма ли по-интелигентен подход? В края на краищата, инженерите на Alpha просто се смеят на 500 MHz на процесор от 0,25 микрона; достигнаха 600 MHz на 0.35!

Нека се опитаме да надградим нашия процесор, иначе той ще може да работи само на 10 MHz и то само ако имаме късмет. (Ако намерите такъв в местния магазин, не го купувайте!).

Можете да намалите количеството извършена работа по време на един цикъл. Вместо 7 операции в един цикъл, ние ще направим една. Тогава, очевидно, ще бъде възможно да се намали продължителността на цикъла.

Звучи много странно. Наистина, в този случай същата процедура ще отнеме 7 пъти повече време! Е, това не са ли пълни глупости? Но не, тук се натъкваме на конвейери.

Използването на конвейер позволява на всички процесорни устройства да вършат работата си едновременно. Нека, например, нашият процесор има 4 устройства:
Fetcherтърси следващата инструкция.
Декодер –изяснява значението на инструкциите.
ALU –следва инструкциите.
Пенсионирайте блока– връща резултатите в паметта.

Така че, ако нашият дизайн използва тръбопроводи, процесът ще изглежда по следния начин: устройството за извличане получава инструкция 4, декодерът декодира инструкция 3, ALU изпълнява инструкция 2 и резултатът от инструкция 1 се изпраща обратно в паметта. И по този начин в края на всеки тактов цикъл имаме завършена инструкция.

ТактFetcherДекодерALUПенсионирам
1 инструкция 1
2 инструкция 2инструкция 1
3 инструкция 3инструкция 2инструкция 1
4 инструкция 4инструкция 3инструкция 2инструкция 1
5 инструкция 5инструкция 4инструкция 3инструкция 2
6 инструкция 6инструкция 5инструкция 4инструкция 3
7 инструкция 6инструкция 6инструкция 5инструкция 4
8 инструкция 7инструкция 7инструкция 6инструкция 5
9 инструкция 8инструкция 8инструкция 7инструкция 6

За щастие, дълбокият конвейер не е единственият начин за увеличаване на честотата. Можете да извършвате повече операции паралелно. В края на краищата броят на операциите, извършвани последователно, определя минималната продължителност на цикъла.

Сглобяване

Ако си спомняте, семейството K-6 имаше 6-степенен конвейер. И PII имаше 12 от тях! И докато K6 имаше по-добри ALU (по-малки DALU) и декодери (те правят много неща паралелно), K6-3 имаше много трудно време да достигне PII честотата със същата технология на производство. Ограничението за .35 микрона K6 е 233 MHz, а за същия PII 300 MHz. (същото може да се каже и за конфронтацията между следващите поколения: Athlon и P4).

Ultrasparc II използва 9-степенен конвейер, но вземете предвид факта, че RISC процесорите не изискват голямо количество декодиране. PII отнема 7 цикъла само за извличане и декодиране, докато UltraSPARC отнема само 3. Така че в известен смисъл UltraSPARC има по-дълбока конвейерна обработка.

Alpha тръбопроводът се състои от 7 етапа (10 за FPU), но в сравнение с PII има и по-малко проблеми с декодирането. В допълнение към това инженерите на Alpha правят всеки етап възможно най-прост. Те постигат това, като принуждават процесора да извършва възможно най-много операции паралелно. По този начин времето на цикъла е намалено до минимум. За какво, наред с други неща, трябва да платите: процесорите Alpha са просто огромни (302 mm2 за Alpha 21264).

Сега разбирате ли защо латентността на конвейерния FPU K7 (4 тактови цикъла за добавяне, 4 тактови цикъла за умножение) се е увеличила в сравнение с K6 (2 за събиране, 2 за умножение)? K7 FPU върши по-малко работа на такт от K6, което му позволява да достигне много по-високи честоти. Конвейер от 10 нива за цели операции (15 за FPU) позволи на K7 да достигне честоти, за които K6 може само да мечтае... Cyrix направи същото с Jalapeno (сега VIA C3).

Разбира се, не трябва да забравяме, че честотата не е единственото нещо, което прави процесора бърз. Ще говорим за други „трикове“ в следващата статия.

Съвременните микропроцесори са най-бързите и най-умните чипове в света. Те могат да извършват до 4 милиарда операции в секунда и се произвеждат с помощта на много различни технологии. От началото на 90-те години на ХХ век, когато процесорите влязоха в масова употреба, те преминаха през няколко етапа на развитие. Апогеят на развитието на микропроцесорни структури, използващи съществуващи микропроцесорни технологии от 6-то поколение, се счита за 2002 г., когато стана възможно да се използват всички основни свойства на силиция за получаване на високи честоти с минимални загуби при производството и създаването на логически схеми. Сега ефективността на новите процесори намалява донякъде, въпреки постоянното увеличаване на честотата на работа на кристалите, тъй като силициевите технологии се доближават до границата на своите възможности.

Всички съвременни процесори използват транзистори с полеви ефекти. Преходът към нов технически процес прави възможно създаването на транзистори с по-високи честоти на превключване, по-ниски токове на утечка и по-малки размери. Намаляването на размера едновременно намалява площта на матрицата и следователно разсейването на топлината, а по-тънкият затвор позволява подаване на по-ниско комутационно напрежение, което също намалява консумацията на енергия и разсейването на топлината.

От гледна точка на домашния потребител, не всички функции на процесора действително се търсят. Така че за домашна употреба технологията за виртуализация е абсолютно ненужна, така че няма смисъл да се фокусирате върху това дали инсталираният във вашия компютър процесор я поддържа.

Tтехнологии и пазар

Сега има интересна тенденция на пазара: от една страна, производствените компании се опитват да въведат нови технически процеси и технологии в своите нови продукти възможно най-бързо, от друга страна, има изкуствено ограничаване на растежа на процесорите честоти. Първо, търговците смятат, че пазарът не е напълно готов за следващата промяна в семействата процесори и компаниите все още не са получили достатъчно печалба от обема на продажбите на процесорите, които се произвеждат в момента - запасите все още не са изсъхнали. Доста забележимо е превесът на важността на цената на готовия продукт над всички други интереси на компаниите. Второ, значително намаляване на ставката„честотната надпревара“ е свързана с разбирането за необходимостта от въвеждане на нови технологии, които действително повишават производителността с минимални технологични разходи. Както вече беше отбелязано, производителите срещнаха проблеми при преминаването към нови технически процеси. микропроцесорно компютърно програмиране

Технологичната норма от 90 nm се оказа доста сериозна технологична бариера за много производители на чипове. Това се потвърждава от TSMC, която произвежда чипове за много пазарни гиганти, като AMD, nVidia, ATI, VIA. Дълго време не беше в състояние да организира производството на чипове по технология 0,09 микрона, което доведе до нисък добив на използваеми кристали. Това е и една от причините AMD дълго да отлагат пускането на своите процесори с технологията SOI (Silicon-on-Insulator). Закъсненията се дължат на факта, че именно при това измерение на елементите започнаха да се проявяват силно всички видове преди това не толкова забележими негативни фактори: токове на утечка, голямо разсейване на параметрите и експоненциално увеличение на генерирането на топлина. Нека да го разберем по ред.

Както знаете, има два тока на утечка: ток на утечка на затвора и подпрагово утечка. Първият е причинен от спонтанното движение на електрони между субстрата на силициевия канал и полисилициевия порт. Второто е спонтанното движение на електрони от източника на транзистора към изтичането. И двата ефекта водят до необходимостта от увеличаване на захранващото напрежение, за да се контролират токовете в транзистора, а това се отразява негативно на разсейването на топлината. И така, чрез намаляване на размера на транзистора, ние преди всичко намаляваме неговия гейт и слоя от силициев диоксид (SiO2), който е естествена бариера между гейта и канала. От една страна, това подобрява скоростта на транзистора (времето за превключване), но от друга страна, увеличава утечката. Тоест, получава се някакъв омагьосан кръг. Така че преходът към 90 nm е още едно намаляване на дебелината на диоксидния слой и в същото време увеличаване на течовете. Борбата с течовете означава отново увеличаване на управляващите напрежения и съответно значително увеличаване на генерирането на топлина. Всичко това доведе до забавяне на въвеждането на нов технически процес от конкурентите на пазара на микропроцесори - Intel и AMD.

Една алтернатива е използването на технологията SOI (силиций върху изолатор), която AMD наскоро въведе в своите 64-битови процесори. Това обаче й коства много усилия и преодоляване на голям брой свързани с това трудности. Но самата технология предоставя огромен брой предимства със сравнително малък брой недостатъци. Същността на технологията като цяло е съвсем логична - транзисторът е отделен от силиконовата подложка с друг тънък слой изолатор. Има много предимства. Няма неконтролирано движение на електрони под канала на транзистора, което да повлияе на електрическите му характеристики – този път. След прилагане на отключващия ток към портата, времето за йонизация на канала до работно състояние (до преминаване на работния ток през него) се намалява, т.е. подобрява се вторият ключов параметър на производителността на транзистора, времето за включване/изключване е две. Или при същата скорост можете просто да намалите тока на отключване - това са три. Или намерете някакъв компромис между увеличаване на скоростта на работа и намаляване на напрежението. При поддържане на същия ток на затвора, увеличението на производителността на транзистора може да бъде до 30%; ако оставите честотата същата, като се фокусирате върху спестяването на енергия, тогава плюсът може да бъде голям - до 50%. И накрая, характеристиките на канала стават по-предсказуеми и самият транзистор става по-устойчив на спорадични грешки, като тези, причинени от космически частици, удрящи се в субстрата на канала и неочаквано го йонизиращи. Сега, когато попаднат в субстрата, разположен под изолационния слой, те по никакъв начин не влияят на работата на транзистора. Единственият недостатък на SOI е, че дълбочината на областта на емитер/колектор трябва да бъде намалена, което пряко и пряко влияе върху увеличаването на съпротивлението му с намаляване на дебелината.

И накрая, третата причина, която допринесе за забавянето на растежа на честотата, е ниската активност на конкурентите на пазара. Може да се каже, че всеки беше зает със собствения си бизнес. AMD беше ангажирана с широкото въвеждане на 64-битови процесори; за Intel това беше период на подобряване на новия технически процес и отстраняване на грешки, за да се увеличи добивът на използваеми кристали.

Бъдещи микропроцесорни технологии

Известно е, че съществуващите CMOS транзистори имат много ограничения и няма да позволят повишаване на честотите на процесора в близко бъдеще толкова безболезнено. В края на 2003 г. на конференцията в Токио специалисти Intel направи много важно съобщение за разработването на нови материали за полупроводникови транзистори на бъдещето.

На първо място, говорим за нов диелектрик на транзисторния затвор с висока диелектрична константа (т.нар. „high-k” материал), който ще се използва за замяна на използвания днес силициев диоксид (SiO2), както и нови метални сплави, съвместими с новия затворен диелектрик.

Решението, предложено от изследователите, намалява тока на утечка 100 пъти, което прави възможно да се доближи до внедряването на производствен процес с проектна норма от 45 нанометра. Оценява се от експерти като малка революция в света на микроелектронните технологии. За да разберем за какво говорим, нека първо да разгледаме обикновен MOS транзистор (Фигура 1), на базата на който са направени най-сложните процесори.

Фигура 1 - MOSFET транзистор

В него проводящият полисилициев гейт е отделен от канала на транзистора с тънък (само 1,2 nm или 5 атома дебелина) слой от силициев диоксид (материал, използван от десетилетия като диелектрик на гейт).

Такава малка дебелина на диелектрика е необходима, за да се получат не само малките размери на транзистора като цяло, но и за най-високата му производителност (заредените частици се движат по-бързо през портата, в резултат на което такъв VT може да превключи до 10 милиарда пъти в секунда). Казано по-просто, колкото по-близо е гейтът до канала на транзистора (тоест колкото по-тънък е диелектрикът), толкова „по-голямо влияние“ по отношение на скоростта ще има върху електроните и дупките в канала на транзистора.

Ако се борим с течове, тогава дебелината на диелектрика трябва да се увеличи до поне 2-3 nm (вижте фигурата по-горе). За да се поддържа същият наклон на транзистора (зависимост на тока от напрежението), е необходимо пропорционално да се увеличи диелектричната константа на диелектричния материал. Ако пропускливостта на насипния силициев диоксид е 4 (или малко по-малко в ултратънки слоеве), тогава разумна стойност за диелектричната константа на новия диелектрик на "Intel" може да се счита за около 10-12. Въпреки факта, че има много материали с такава диелектрична константа (кондензаторна керамика или монокристален силиций), факторите на технологичната съвместимост на материалите са не по-малко важни тук. Поради това беше разработен процес на отлагане с висока точност за новия материал с високо k, по време на който един молекулярен слой от този материал се формира в един цикъл (Фигура 2).


Фигура 2 - Образуване на един молекулен слой в един цикъл

Въз основа на фигура 2 може да се предположи, че новият материал също е оксид. Освен това монооксид, което означава използването на материали главно от втората група, например магнезий, цинк или дори мед.

Но въпросът не се ограничава до диелектрика. Също така беше необходимо да се промени самият материал на затвора - обичайният поликристален силиций. Факт е, че замяната на силициев диоксид с диелектрик с висок k води до проблеми с взаимодействието с поликристален силиций (широката лента на транзистора определя минималното възможно напрежение за него). Тези проблеми могат да бъдат отстранени чрез използване на специални метали за гейтовете и на двата вида транзистори в комбинация със специален технологичен процес. Тази комбинация от материали постига рекордна производителност на транзистора и уникално ниски токове на утечка, 100 пъти по-ниски от сегашните материали. В този случай вече няма изкушение да се използва много по-скъпа SOI технология за борба с течовете, както правят някои големи производители на микропроцесори.

Съвременните микропроцесори са най-бързите и най-умните чипове в света. Те могат да извършват до 4 милиарда операции в секунда и се произвеждат с помощта на много различни технологии. От началото на 90-те години на ХХ век, когато процесорите влязоха в масова употреба, те преминаха през няколко етапа на развитие. Апогеят на развитието на микропроцесорни структури, използващи съществуващи микропроцесорни технологии от 6-то поколение, се счита за 2002 г., когато стана възможно да се използват всички основни свойства на силиция за получаване на високи честоти с минимални загуби при производството и създаването на логически схеми. Сега ефективността на новите процесори намалява донякъде въпреки постоянното увеличаване на честотата на работа на кристалите, тъй като силициевите технологии се доближават до границата на своите възможности.

Микропроцесорът е интегрална схема, формирана върху малък силиконов чип. Силицият се използва в микросхеми поради факта, че има полупроводникови свойства: неговата електрическа проводимост е по-голяма от тази на диелектриците, но по-малка от тази на металите. Силицият може да бъде направен както изолатор, предотвратяващ движението на електрически заряди, така и проводник - тогава електрическите заряди ще преминават свободно през него. Проводимостта на полупроводника може да се контролира чрез въвеждане на примеси.

Микропроцесорът съдържа милиони транзистори, свързани помежду си с тънки проводници от алуминий или мед и използвани за обработка на данни. Така се образуват вътрешни гуми. В резултат на това микропроцесорът изпълнява много функции - от математически и логически операции до управление на работата на други чипове и целия компютър.

Един от основните параметри на процесора е честотата на кристала, която определя броя на операциите за единица време, честотата на системната шина и размера на вътрешната SRAM кеш памет. Процесорът е етикетиран според работната честота на кристала. Работната честота на кристала се определя от скоростта, с която транзисторите преминават от затворено състояние в отворено състояние. Способността на транзистора да превключва по-бързо се определя от технологията на производство на силициевите пластини, от които са направени чиповете. Технологичният процес определя размерите на транзистора (неговата дебелина и дължина на затвора). Например, използвайки 90nm технологичен процес, който беше въведен в началото на 2004 г., размерът на транзистора е 90nm, а дължината на гейта е 50nm.

Всички съвременни процесори използват транзистори с полеви ефекти. Преходът към нов технически процес прави възможно създаването на транзистори с по-високи честоти на превключване, по-ниски токове на утечка и по-малки размери. Намаляването на размера едновременно намалява площта на матрицата и следователно разсейването на топлината, а по-тънкият затвор позволява подаване на по-ниско комутационно напрежение, което също намалява консумацията на енергия и разсейването на топлината.

Технологии и пазар

Сега има интересна тенденция на пазара: от една страна, производствените компании се опитват да въведат нови технически процеси и технологии в своите нови продукти възможно най-бързо, от друга страна, има изкуствено ограничаване на растежа на процесорите честоти. Първо, търговците смятат, че пазарът не е напълно готов за следващата промяна в семействата процесори и компаниите все още не са получили достатъчно печалба от обема на продажбите на процесорите, които се произвеждат в момента - предлагането все още не е пресъхнало. Доста забележимо е превесът на важността на цената на готовия продукт над всички други интереси на компаниите. Второ, значително намаляване на темпото на „честотната надпревара“ е свързано с разбирането за необходимостта от въвеждане на нови технологии, които действително повишават производителността с минимално количество технологични разходи. Както вече беше отбелязано, производителите срещнаха проблеми при преминаването към нови технически процеси.

Технологичната норма от 90 nm се оказа доста сериозна технологична бариера за много производители на чипове. Това се потвърждава от TSMC, която произвежда чипове за много пазарни гиганти, като AMD, nVidia, ATI, VIA. Дълго време не беше в състояние да организира производството на чипове по технология 0,09 микрона, което доведе до нисък добив на използваеми кристали. Това е и една от причините AMD дълго да отлагат пускането на своите процесори с технологията SOI (Silicon-on-Insulator). Закъсненията се дължат на факта, че точно при това измерение на елементите започнаха силно да се проявяват всякакви преди това не толкова забележими негативни фактори: токове на утечка, голямо разсейване на параметрите и експоненциално увеличение на генерирането на топлина. Нека да го разберем по ред.

Както знаете, има два тока на утечка: ток на утечка на затвора и подпрагово утечка. Първият е причинен от спонтанното движение на електрони между субстрата на силициевия канал и полисилициевия порт. Второто е спонтанното движение на електрони от източника на транзистора към изтичането. И двата ефекта водят до необходимостта от увеличаване на захранващото напрежение, за да се контролират токовете в транзистора, а това се отразява негативно на разсейването на топлината. И така, чрез намаляване на размера на транзистора, ние преди всичко намаляваме неговия гейт и слоя от силициев диоксид (SiO2), който е естествена бариера между гейта и канала. От една страна, това подобрява скоростта на транзистора (времето за превключване), но от друга страна, увеличава утечката. Тоест, получава се някакъв омагьосан кръг. Така че преходът към 90 nm е друго намаляване на дебелината на диоксидния слой и в същото време увеличаване на изтичането. Борбата с течовете означава отново увеличаване на управляващите напрежения и съответно значително увеличаване на генерирането на топлина. Всичко това доведе до забавяне на въвеждането на нов технически процес от конкурентите на пазара на микропроцесори - Intel и AMD.

Една алтернатива е използването на технологията SOI (силиций върху изолатор), която AMD наскоро въведе в своите 64-битови процесори. Това обаче й коства много усилия и преодоляване на голям брой свързани с това трудности. Но самата технология предоставя огромен брой предимства със сравнително малък брой недостатъци. Същността на технологията като цяло е съвсем логична - транзисторът е отделен от силиконовата подложка с друг тънък слой изолатор. Има много предимства. Няма неконтролирано движение на електрони под канала на транзистора, което да повлияе на електрическите му характеристики – този път. След прилагане на отключващия ток към портата, времето за йонизация на канала до работно състояние (до преминаване на работния ток през него) се намалява, т.е. подобрява се вторият ключов параметър на производителността на транзистора, времето за включване/изключване е две. Или при същата скорост можете просто да намалите тока на отключване - това са три. Или намерете някакъв компромис между увеличаване на скоростта на работа и намаляване на напрежението. При поддържане на същия ток на затвора, увеличението на производителността на транзистора може да бъде до 30%; ако оставите честотата същата, като се фокусирате върху спестяването на енергия, тогава плюсът може да бъде голям - до 50%. И накрая, характеристиките на канала стават по-предсказуеми и самият транзистор става по-устойчив на спорадични грешки, като тези, причинени от космически частици, удрящи се в субстрата на канала и неочаквано го йонизиращи. Сега, когато попаднат в субстрата, разположен под изолационния слой, те по никакъв начин не влияят на работата на транзистора. Единственият недостатък на SOI е, че дълбочината на областта на емитер/колектор трябва да бъде намалена, което пряко и пряко влияе върху увеличаването на съпротивлението му с намаляване на дебелината.

И накрая, третата причина, която допринесе за забавянето на растежа на честотата, е ниската активност на конкурентите на пазара. Може да се каже, че всеки беше зает със собствения си бизнес. AMD беше ангажирана с широкото въвеждане на 64-битови процесори; за Intel това беше период на подобряване на новия технически процес, отстраняване на грешки за увеличен добив на използваеми кристали.

Началото на годината трябва да ни донесе много новини от областта на технологиите, тъй като тази година и двете компании трябва да преминат към 90 nm технологични стандарти. Но това изобщо не означава ново бързо увеличение на честотите на процесора, а точно обратното. Първоначално ще има затишие на пазара: конкурентите ще започнат да произвеждат процесори, използвайки нови технически процеси, но със стари честоти. С усвояването на производствения процес ще има леко увеличение на честотата на чиповете. Най-вероятно няма да бъде толкова забележимо, колкото преди. До края на 2004 г., когато добивът на използваеми кристали, използващи 90-nm технологичен процес, се увеличи значително, Intel очаква да покори върха от 4 GHz или дори повече. Процесорите на AMD ще се доставят с известно традиционно забавяне на честотата, което като цяло не влияе толкова много на производителността, колкото характеристиките на микроархитектурата.

Така че необходимостта от преминаване към нови технически процеси е очевидна, но всеки път става все по-трудно за технолозите. Първите микропроцесори Pentium (1993) са произведени с помощта на 0,8 микрона технология, след това 0,6 микрона. През 1995 г. технологичният процес от 0,35 микрона е използван за първи път за процесори от 6-то поколение. През 1997 г. тя се промени на 0,25 микрона, а през 1999 г. на 0,18 микрона. Съвременните процесори са базирани на технологии от 0,13 и 0,09 микрона, като последната е въведена през 2004 г. Както можете да видите, за тези технически процеси се спазва законът на Мур, който гласи, че на всеки две години честотата на кристалите се удвоява, тъй като броят на транзисторите от тях се увеличава. Техническият процес се променя със същата скорост. Вярно е, че в бъдеще „честотната надпревара“ ще изпревари този закон. До 2006 г. Intel планира да разработи 65-nm технологичен процес, а до 2009 г. – 32-nm процес.


Тук е време да си спомним структурата на транзистора, а именно тънък слой от силициев диоксид, изолатор, разположен между портата и канала, и който изпълнява напълно разбираема функция - бариера за електрони, която предотвратява изтичането на ток на портата. Очевидно колкото по-дебел е този слой, толкова по-добре изпълнява изолационните си функции. Но той е неразделна част от канала и не по-малко очевидно е, че ако ще намалим дължината на канала (размера на транзистора), тогава трябва да намалим дебелината му и то с много бързи темпове . Между другото, през последните няколко десетилетия дебелината на този слой е била средно около 1/45 от цялата дължина на канала. Но този процес има своя край - както същият Intel заяви преди пет години, ако продължим да използваме SiO2, както е било през последните 30 години, минималната дебелина на слоя ще бъде 2,3 nm, в противен случай токът на утечка на тока на затвора ще стане просто нереалистично.

Доскоро не беше направено нищо за намаляване на изтичането на подканал. Сега ситуацията започва да се променя, тъй като работният ток, заедно с времето за реакция на портата, е един от двата основни параметъра, характеризиращи скоростта на работа на транзистора, а изтичането в изключено състояние го влияе пряко - за да се поддържа необходимата ефективност на транзистора, е необходимо съответно да се увеличи работният ток с всички произтичащи от това условия.

Производство на микропроцесори

Производството на микропроцесор е сложен процес, включващ повече от 300 стъпки. Микропроцесорите се формират върху повърхността на тънки кръгли силициеви пластини - субстрати, в резултат на определена последователност от различни процеси на обработка, използващи химикали, газове и ултравиолетово лъчение.

Субстратите обикновено имат диаметър 200 милиметра или 8 инча. Intel обаче вече преминаха към вафли с диаметър 300 мм, или 12 инча. Новите плочи позволяват да се получат почти 4 пъти повече кристали, а добивът е много по-висок. Вафлите са направени от силиций, който се пречиства, разтопява и отглежда в дълги цилиндрични кристали. След това кристалите се нарязват на тънки резени и се полират, докато повърхността им стане огледално гладка и без дефекти. След това последователно, повтаряйки се циклично, се извършва термично окисление (образуване на SiO2 филм), фотолитография, дифузия на примеси (фосфор) и епитаксия (растеж на слой).

По време на производствения процес на микросхемите най-тънките слоеве материали се нанасят върху празните плочи под формата на внимателно изчислени шаблони. На една пластина могат да се поставят до няколкостотин микропроцесора, чието производство изисква над 300 операции. Целият процес на производство на процесори може да бъде разделен на няколко етапа: отглеждане на силициев диоксид и създаване на проводящи области, тестване, производство на опаковката и доставка.

Отглеждане на силициев диоксид и създаване на проводими области.Процесът на производство на микропроцесора започва с „отглеждане“ на изолационен слой от силициев диоксид върху повърхността на полирана пластина. Този етап се извършва в електрическа фурна при много висока температура. Дебелината на оксидния слой зависи от температурата и времето, което плочата прекарва в пещта.

Това е последвано от фотолитография, процес, при който върху повърхността на вафлата се оформя шарка. Първо, временен слой от фоточувствителен материал, фоторезист, се нанася върху плочата, върху която се проектира изображение на прозрачните участъци на шаблона или фотомаска с помощта на ултравиолетово лъчение. Маските се правят по време на проектирането на процесора и се използват за формиране на схеми във всеки слой на процесора. Под въздействието на радиация откритите участъци от фотослоя стават разтворими и се отстраняват с помощта на разтворител (флуорна киселина), разкривайки силициевия диоксид отдолу.

Изложеният силициев диоксид се отстранява чрез процес, наречен "ецване". След това останалият фотослой се отстранява, оставяйки модел от силициев диоксид върху полупроводниковата пластина. Използвайки серия от допълнителни фотолитографски и ецващи операции, поликристален силиций, който има свойствата на проводник, също се нанася върху пластината. По време на следващата операция, наречена "допинг", откритите участъци на силиконовата пластина се бомбардират с йони на различни химични елементи, които образуват отрицателни и положителни заряди в силиция, променяйки електрическата проводимост на тези участъци.

Нанасянето на нови слоеве, последвано от ецване на веригата, се извършва няколко пъти, докато за междуслойни връзки се оставят „прозорци“ в слоевете, които се запълват с метал, образувайки електрически връзки между слоевете. Intel използва медни проводници в своята 0,13-микрона технология. В производствения процес от 0,18 микрона и в предишните поколения Intel използва алуминий. И медта, и алуминият са отлични проводници на електричество. При използване на 0,18-μm технологичен процес бяха използвани 6 слоя; при въвеждането на 90 nm технологичен процес през 2004 г. бяха използвани 7 слоя силиций.

Всеки слой на процесора има свой собствен модел; заедно всички тези слоеве образуват триизмерна електронна схема. Нанасянето на слоеве се повтаря 20 - 25 пъти в продължение на няколко седмици.

Тестване.За да издържат на напрежението, на което са подложени субстратите по време на процеса на наслояване, силициевите пластини първоначално трябва да бъдат достатъчно дебели. Ето защо, преди нарязването на пластината на отделни микропроцесори, нейната дебелина се намалява с 33% чрез специални процеси и замърсителите се отстраняват от обратната страна. След това върху задната страна на „по-тънката“ пластина се нанася слой от специален материал, който подобрява последващото закрепване на кристала към тялото. В допълнение, този слой осигурява електрически контакт между задната повърхност на интегралната схема и опаковката след сглобяването.

След това пластините се тестват, за да се провери качеството на всички операции по обработка. За да се определи дали процесорите работят правилно, се тестват отделни компоненти. Ако бъдат открити грешки, данните за тях се анализират, за да се разбере на кой етап от обработката е възникнал отказът.

След това към всеки процесор се свързват електрически сонди и се подава захранване. Процесорите се тестват от компютър, който установява дали характеристиките на произведените процесори отговарят на зададените изисквания.

Изработка на тялото.След тестване пластините се изпращат в съоръжението за сглобяване, където се нарязват на малки правоъгълници, всеки от които съдържа интегрална схема. За отделяне на плочата се използва специален прецизен трион. Нефункционалните кристали се отхвърлят.

След това всеки кристал се поставя в индивидуална кутия. Калъфът предпазва кристала от външни въздействия и осигурява електрическата му връзка с платката, на която в последствие ще се монтира. Малки топчета спойка, разположени в определени точки на чипа, са запоени към електрическите клеми на пакета. Сега електрическите сигнали могат да протичат от платката към чипа и обратно.

В бъдещите процесори Intel ще използва технологията BBUL, която ще позволи създаването на принципно нови корпуси с по-малко генериране на топлина и капацитет между краката на процесора.

След инсталирането на чипа в кутията, процесорът се тества отново, за да се установи дали работи. Дефектните процесори се отхвърлят, а работещите се подлагат на тестове за натоварване: излагане на различни температурни и влажностни условия, както и електростатични разряди. След всеки тест за натоварване, процесорът се тества, за да се определи функционалното му състояние. След това процесорите се сортират въз основа на тяхното поведение при различни тактови честоти и захранващи напрежения.

Доставка.Процесорите, които са преминали тестване, се изпращат на окончателен контрол, чиято задача е да потвърди, че резултатите от всички предишни тестове са правилни и параметрите на интегралната схема отговарят или дори надвишават установените стандарти. Всички процесори, които преминат окончателна проверка, са маркирани и опаковани за доставка до клиентите.

Бъдещи микропроцесорни технологии

Известно е, че съществуващите CMOS транзистори имат много ограничения и няма да позволят повишаване на честотите на процесора в близко бъдеще толкова безболезнено. В края на 2003 г. на конференцията в Токио специалистите на Intel направиха много важно изявление за разработването на нови материали за полупроводникови транзистори на бъдещето. На първо място, говорим за нов диелектрик на транзисторния затвор с висока диелектрична константа (т.нар. „high-k” материал), който ще се използва за замяна на използвания днес силициев диоксид (SiO2), както и нови метални сплави, съвместими с новия затворен диелектрик. Решението, предложено от изследователите, намалява тока на утечка 100 пъти, което прави възможно да се доближи до внедряването на производствен процес с проектна норма от 45 нанометра. Оценява се от експерти като малка революция в света на микроелектронните технологии.

За да разберем за какво говорим, нека първо да разгледаме обикновен MOS транзистор, на базата на който се правят най-сложните процесори.


В него проводящият полисилициев гейт е отделен от канала на транзистора с тънък (само 1,2 nm или 5 атома дебелина) слой от силициев диоксид (материал, използван от десетилетия като диелектрик на гейт).

Такава малка дебелина на диелектрика е необходима, за да се получат не само малките размери на транзистора като цяло, но и за най-високата му производителност (заредените частици се движат по-бързо през портата, в резултат на което такъв VT може да превключи до 10 милиарда пъти в секунда). Казано по-просто, колкото по-близо е гейтът до канала на транзистора (тоест колкото по-тънък е диелектрикът), толкова „по-голямо влияние“ по отношение на скоростта ще има върху електроните и дупките в канала на транзистора.

Следователно значението на откритието на учените от Intel не може да бъде подценено. След пет години изследвания в лаборатории, корпорациите са разработили специален материал, който може да замени традиционния силициев диоксид в конвенционалния начин за производство на чипове. Изискванията за такъв материал са много сериозни: висока химична и механична (на атомно ниво) съвместимост със силиций, лекота на производство в един цикъл на традиционния силициев процес, но най-важното, ниски течове и висока диелектрична константа.


Ако се борим с течове, тогава дебелината на диелектрика трябва да се увеличи до поне 2-3 nm (вижте фигурата по-горе). За да се поддържа същият наклон на транзистора (зависимост на тока от напрежението), е необходимо пропорционално да се увеличи диелектричната константа на диелектричния материал. Ако пропускливостта на насипния силициев диоксид е 4 (или малко по-малко в ултратънки слоеве), тогава разумна стойност за диелектричната константа на новия диелектрик на "Intel" може да се счита за около 10-12. Въпреки факта, че има много материали с такава диелектрична константа (кондензаторна керамика или монокристален силиций), факторите на технологичната съвместимост на материалите са не по-малко важни тук. Поради това беше разработен процес на отлагане с висока точност за новия материал с високо k, по време на който един молекулярен слой от този материал се формира в един цикъл.


Въз основа на тази картина можем да предположим, че новият материал също е оксид. Освен това монооксид, което означава използването на материали главно от втората група, например магнезий, цинк или дори мед.

Но въпросът не се ограничава до диелектрика. Също така беше необходимо да се промени самият материал на затвора - обичайният поликристален силиций. Факт е, че замяната на силициевия диоксид с диелектрик с висок k води до проблеми при взаимодействие с поликристален силиций (широката лента на транзистора определя минималното възможно напрежение за него). Тези проблеми могат да бъдат отстранени чрез използване на специални метали за гейтовете и на двата вида транзистори (n-MOS и p-MOS) в комбинация със специален технологичен процес. Тази комбинация от материали постига рекордна производителност на транзистора и уникално ниски токове на утечка, 100 пъти по-малко от сегашните материали (вижте графиката). В този случай вече няма изкушение да се използва много по-скъпата технология SOI (силиций върху изолатор) за борба с течовете, както правят някои големи производители на микропроцесори.


Отбелязваме и друга технологична иновация от Intel - технологията на напрегнат силиций, която се използва за първи път в 90-нанометровите процесори Prescott и Dothan. И накрая, Intel разкри подробно как точно се формират напрегнати силициеви слоеве в неговите CMOS структури. Клетката CMOS се състои от два транзистора - n-MOS и p-MOS (виж фигурата).


В първия (n-MOS) транзисторният канал (n-канал) провежда ток с помощта на електрони (отрицателно заредени частици), а във втория (p-MOS) - с помощта на дупки (условно положително заредени частици). Съответно механизмите на образуване на напрегнат силиций в тези два случая са различни. За n-MOS транзистор се използва външно покритие със слой от силициев нитрид (Si3N4), който поради механични напрежения леко (част от процента) разтяга (по посока на протичане на тока) силициевата кристална решетка под вратата, в резултат на което работният ток на канала се увеличава с 10% (относително казано, става по-просторно за движение на електрони в посока на канала). В p-MOS транзисторите е вярно обратното: силициево-германиево съединение (SiGe) се използва като материал на субстрата (по-точно, само областите на източване и източник), което леко компресира силициевата кристална решетка под портата в посока на канала. Следователно става „по-лесно“ за дупките да се „движат“ през акцепторни примесни атоми и работният ток на канала се увеличава с 25%. Комбинацията от двете технологии дава 20-30 процента увеличение на тока. По този начин използването на напрегната силициева технология и в двата типа устройства (n-MOS и p-MOS) води до значително увеличение на производителността на транзисторите, като същевременно увеличава производствените им разходи само с ~2% и позволява създаването на по-малки транзистори от следващия поколения. Intel планира да използва напрегнат силиций за всички бъдещи технологични процеси до 22 nm.

Обикновено, когато нова архитектура е създадена от един архитект или група архитекти, нейните отделни части си пасват много добре и цялата архитектура може да бъде описана по доста последователен начин. Не може да се каже същото за архитектурата 80x86, тъй като тя е продукт на няколко независими екипа за разработка, които са развили архитектурата в продължение на 15 години, добавяйки нови възможности към оригиналния набор от инструкции.

През 1978 г. архитектурата Intel 8086 беше обявена като възходящо съвместимо разширение на успешния тогава 8-битов микропроцесор 8080. 8086 е

16-битова архитектура с всички вътрешни регистри с 16-битова ширина. Микропроцесорът 8080 е просто изграден около акумулатор, но архитектурата 8086 е разширена с допълнителни регистри. Тъй като почти всеки регистър в тази архитектура има конкретна цел, 8086 може да се класифицира отчасти като акумулираща машина и отчасти като регистрираща машина с общо предназначение и може да се нарече разширена акумулираща машина. Микропроцесорът 8086 (по-точно неговата версия 8088 с 8-битова външна шина) стана основата на серията IBM PC компютри, които по-късно завладяха целия свят, работещи под операционната система MS-DOS.

Копроцесорът 8087 с плаваща запетая беше обявен през 1980 г. Тази архитектура разшири 8086 с близо 60 инструкции с плаваща запетая. Неговите архитекти изоставиха разширените акумулатори, за да създадат един вид хибрид от стекове и регистри, по същество разширена стекова архитектура. Пълният набор от инструкции за стека се допълва от ограничен набор от инструкции за регистър-памет.

Обявен през 1982 г., микропроцесорът 80286 разшири още повече архитектурата на 8086, като създаде сложен модел за разпределение на паметта и защита, разширявайки адресното пространство до 24 бита и добавяйки малък брой допълнителни инструкции. Тъй като беше важно да се гарантира, че програмите, предназначени за 8086, ще работят без модификации, 80286 включва режим на реален адрес, позволяващ на машината да изглежда почти като 8086. През 1984 г. IBM обяви използването на този процесор в своя нов IBM PC /AT серия персонални компютри.

През 1987 г. беше представен микропроцесорът 80386, който разшири архитектурата 80286 до

32 бита. В допълнение към 32-битовата архитектура с 32-битови регистри и 32-битово адресно пространство, микропроцесорът 80386 въведе нови режими на адресиране и допълнителни операции. Всички тези разширения превърнаха 80386 в машина, идеологически близка до машините с регистри с общо предназначение. В допълнение към механизмите за сегментиране на паметта, микропроцесорът 80386 също добави поддръжка за пейджинг на паметта. Подобно на 80286, микропроцесорът 80386 има режим за изпълнение на програми, написани за 8086. Въпреки че MS-DOS остава основната операционна система за тези микропроцесори по това време, 32-битовата архитектура и странирането на паметта послужиха като основа за пренасяне на UNIX операционна система към тази платформа. Трябва да се отбележи, че операционната система XENIX (силно съкратена версия на системата UNIX) е създадена за процесора 80286.

Тази история илюстрира ефекта от необходимостта да се осигури 80x86 съвместимост, тъй като съществуващата софтуерна база беше твърде критична на всяка стъпка. За щастие следващите процесори (80486 през 1989 г. и Pentium през 1993 г.) се фокусираха върху увеличаване на производителността и добавиха само три нови команди към видимия за потребителя набор от инструкции, за да улеснят многопроцесорната обработка.

Каквото и да се говори за неудобствата на архитектурата 80x86, трябва да се има предвид, че тя доминира в света на персоналните компютри. Почти 80% от инсталираните малки системи са базирани на тази архитектура. Дебатът относно предимствата на CISC и RISC архитектурите постепенно затихва, тъй като съвременните микропроцесори се опитват да включат най-добрите свойства и на двата подхода.

Съвременната фамилия процесори i486 (i486SX, i486DX, i486DX2 и i486DX4), които запазват набора от инструкции и методите за адресиране на процесора i386, вече имат някои от свойствата на RISC микропроцесорите. Например, най-често срещаните команди се изпълняват в един такт. За да оцени производителността на своите процесори, Intel въведе специална характеристика, наречена iCOMP рейтинг. Компанията се надява, че тази характеристика ще се превърне в стандартен еталон и ще се използва от други производители на микропроцесори, но последните са разбираемо предпазливи към системата за измерване на производителността на Intel. Таблицата по-долу показва сравнителните характеристики на някои процесори на Intel въз основа на рейтинга iCOMP.

процесор Тактова честота (MHz) iCOMP рейтинг
386SX
386SL
386DX
386DX
i486SX
i486SX
i486SX
i486DX
i486DX2
i486DX
i486DX2
i486DX4
i486DX4
Pentium
Pentium
Pentium
Pentium
Pentium
Pentium
25
25
25
33
20
25
33
33
50
50
66
75
100
60
66
90
100
120
133
39
41
49
68
78
100
136
166
231
249
297
319
435
510
567
735
815
1000
1200

Процесорите i486SX и i486DX са 32-битови процесори с вътрешен 8 KB кеш и 32-битова шина за данни. Основната разлика между тях е, че процесорът i486SX няма интегриран копроцесор с плаваща запетая. Поради това има по-ниска цена и се използва в системи, за които производителността при обработка на реални числа не е много важна. Тези системи обикновено могат да се разширяват с външен i487SX копроцесор.

Процесорите Intel OverDrive и i486DX2 са почти идентични. Въпреки това матрицата OverDrive има пакет, който може да бъде инсталиран в гнездото за разширение на копроцесора i487SX, използвано в компютри, базирани на i486SX. Процесорите OverDrive и i486DX2 използват вътрешна технология за удвояване на часовника, за да увеличат производителността на процесора с близо 70%. Процесорът i486DX4/100 използва технология за утрояване на тактовата честота. Той работи с вътрешна тактова честота от 99 MHz, докато външната тактова честота (честотата, на която работи външната шина) е 33 MHz. Този процесор на практика предоставя равни възможности на 60 MHz машини от клас Pentium, като е тяхна пълноценна и достъпна алтернатива.

Процесорът Pentium, който се появи през 1993 г., бележи нов етап в развитието на архитектурата x86, свързан с адаптирането на много свойства на процесорите с RISC архитектурата. Произведен е по 0,8 микрона BiCMOS технология и съдържа 3,1 милиона транзистора. Първоначалното изпълнение е проектирано да работи на тактова честота 60 и 66 MHz. В момента има и процесори Pentium, работещи на тактова честота от 75, 90, 100 и 120 MHz. Процесорът Pentium има редица подобрени характеристики в сравнение с предшествениците си. Основните му характеристики са:

  • двунишкова суперскаларна организация, позволяваща паралелно изпълнение на двойка прости команди;
  • наличието на два независими двуканални многоасоциативни кеша за инструкции и за данни, осигуряващи семплиране на данни за две операции във всеки цикъл;
  • предвиждане на динамичен преход;
  • тръбопроводна организация на устройство с плаваща запетая с 8 степени;
  • двоична съвместимост със съществуващите процесори от семейството 80x86.

Блоковата схема на процесора Pentium е показана на фиг. 8.1. На първо място, новата микроархитектура на този процесор се основава на идеята за суперскаларна обработка (макар и с някои ограничения). Основните команди се разпределят върху два независими изпълнителни механизма (конвейери U и V). U тръбопроводът може да изпълнява всяко x86 семейство от инструкции, включително цели числа и инструкции с плаваща запетая. V тръбопроводът е проектиран да изпълнява прости цели числа и някои инструкции с плаваща запетая. Командите могат да се изпращат до всяко от тези устройства едновременно и когато управляващото устройство издаде двойка команди в един тактов цикъл, по-сложната команда отива в конвейера U, а по-малко сложната в конвейера V. Такова двойно издаване на команди е възможно само за ограничено подмножество от целочислени команди. Инструкциите за аритметика с плаваща запетая не могат да се изпълняват заедно с инструкции за цели числа. Едновременното издаване на две команди е възможно само ако няма зависимости в регистъра. Когато екип спре по някаква причина в един конвейер, вторият конвейер обикновено спира.

Останалите процесорни устройства са проектирани да доставят на тръбопроводите необходимите команди и данни. За разлика от процесорите i486, процесорът Pentium използва отделни 8 KB инструкции и кеш за данни, което осигурява независим достъп. В един тактов цикъл две думи могат да бъдат прочетени от всяка кеш памет. В този случай кеш паметта за данни е изградена на принципите на двойно наслояване, което осигурява едновременното четене на две думи, принадлежащи към една и съща линия на кеш паметта. Кешът за команди съхранява три копия на етикети наведнъж, което ви позволява да четете две командни думи в един тактов цикъл, принадлежащи или към един и същи ред, или към съседни редове, за да осигурите по двойки издаване на команди, докато третото копие на таговете се използва за организира протокол за наблюдение на кохерентността на състоянието на кеш паметта. За да подобри ефективността на презареждане на кеша, процесорът използва 64-битова външна шина за данни.

Процесорът има механизъм за динамично предсказване посоката на преходите. За тази цел чипът съдържа малка кеш памет, наречена разклонителен целеви буфер (BTB) и две независими двойки буфери за предварително извличане на инструкции (два 32-битови буфера на конвейер). Буферът за целеви адреси на разклонения съхранява адресите на инструкциите, които са в буферите за предварително извличане. Работата на буферите за предварително извличане е организирана по такъв начин, че във всеки даден момент инструкциите се извличат само в един от буферите на съответната двойка. Когато в потока от инструкции бъде открита операция на разклоняване, изчисленият адрес на разклонение се сравнява с адресите, съхранени в BTB. Ако има съвпадение, разклонението се предвижда да се осъществи и друг буфер за предварително извличане се активира и започва да издава команди към съответния конвейер за изпълнение. Ако има несъответствие, се приема, че разклонението няма да бъде изпълнено и буферът за предварително извличане не се превключва, като продължава нормалната поръчка за издаване на команда. Това ви позволява да избегнете престой на конвейери с правилното прогнозиране на посоката на прехода. Окончателното решение за посоката на прехода естествено се взема въз основа на анализа на кода на условието. Ако прогнозата е направена неправилно, съдържанието на тръбопроводите се анулира и издаването на команди започва от необходимия адрес. Неправилна прогноза води до спиране на конвейерите за 3-4 цикъла.

Ориз. 8.1. Опростена блокова схема на процесор Pentium

Трябва да се отбележи, че повишената производителност на процесора Pentium изисква подходяща организация на системата, базирана на него. Intel разработи и достави всички необходими чипсети за това. На първо място, кеш L2 е необходим, за да съответства на скоростта с динамичната основна памет. Кеш контролерът 82496 и статичните чипове памет 82491 осигуряват такъв кеш от 256 KB и работят с процесора без тактови цикли. За да организира ефективно системите, Intel разработи стандарт за високопроизводителна PCI локална шина. Произвеждат се набори чипове за изграждане на мощни компютри на негова основа.

В момента Intel разработва нов процесор, който продължава x86 архитектурната линия. Този процесор беше наречен P6. Според експерти броят на транзисторите в новия чип ще бъде 4-5 милиона, което може да осигури увеличение на производителността до ниво от 200 MIPS (66 MHz Pentium има производителност от 112 MIPS). За да се постигне такава производителност, е необходимо да се използват технически решения, които се използват широко в изграждането на RISC процесори:

  • изпълнение на команди не в последователността, предписана от програмата, което елиминира в много случаи спирането на конвейери поради изчакване на операнди на операции;
  • използване на техника за преименуване на регистър, която ви позволява да увеличите ефективния размер на регистърния файл (малкият брой регистри е едно от тесните места на x86 архитектурата);
  • разширяване на суперскаларните възможности по отношение на процесора Pentium, което осигурява едновременно издаване само на две команди с доста строги ограничения върху техните комбинации.

В допълнение, компании, които преди са произвеждали Intel-съвместими процесори, се присъединиха към битката за новото поколение x86 процесори. Тези компании са Advanced Micro Devices (AMD), Cyrix Corp и NexGen. От гледна точка на микроархитектурата, процесорът M1 от Cyrix е най-близо до Pentium, който трябва да се появи на пазара в близко бъдеще. Точно като Pentium, той има два конвейера и може да изпълни до две инструкции в един тактов цикъл. Въпреки това, в процесора M1 броят на случаите, когато операциите могат да се извършват по двойки, е значително увеличен. Той също така използва техники за байпас и ускоряване на трансфера на данни, за да елиминира спиранията на конвейера в много ситуации, с които Pentium не може да се справи. Процесорът съдържа 32 физически регистъра (вместо 8 логически регистъра, предоставени от x86 архитектурата) и използва техника за преименуване на регистър, за да елиминира зависимостите от данни. Подобно на Pentium, процесорът M1 използва 256-елементен буфер от дестинации на разклонения, за да предвиди посоката на разклоняване, но също така поддържа специален стек за връщане, който проследява извикванията на процедури и последващите връщания.

Процесорите K5 на AMD и Nx586 на NexGen имат напълно различен подход. Основата на техните процесори е много бързо RISC ядро, което изпълнява много регулярни операции в суперскаларен режим. Вътрешните формати на инструкции (ROP за AMD и RISC86 за NexGen) съответстват на традиционните системи за инструкции на RISC процесорите. Всички команди са с еднаква дължина и са кодирани в нормален формат. Достъпите до паметта се извършват чрез специални команди за зареждане и запис. Както знаете, архитектурата x86 има много сложна система от инструкции за декодиране. Процесорите K5 и Nx586 реализират хардуерно преобразуване на x86 команди във вътрешни форматни команди, което осигурява по-добри условия за паралелизиране на изчисленията. Процесорът K5 има 40, а процесорът Nx586 има 22 физически регистъра, които реализират техниката на преименуване. В процесора K5 информацията, необходима за прогнозиране на посоката на разклоняване, се записва директно в кеша на инструкциите и се съхранява с всеки кеш ред. Процесорът Nx586 използва 96-елементен адресен кеш на разклонения за тези цели.

По този начин Intel вече няма монопол върху методите за проектиране на високопроизводителни x86 процесори и можем да очакваме появата на нови процесори, които не само са равни, но може би дори превъзхождат по производителност процесорите на компанията, която е пионер в тази архитектура . Трябва да се отбележи, че самата Intel е сключила стратегическо споразумение с Hewlett-Packard за разработване на следващото поколение микропроцесори, които ще комбинират архитектурата x86 с архитектурата с много дълга инструкция (VLIW). Тези микропроцесори не се очаква да се появят до края на 1998 г.

Характеристики на процесори със SPARC архитектура от Sun Microsystems

Scalable Processor Architecture (SPARC) на Sun Microsystems е най-разпространената RISC архитектура, отразяваща доминиращата позиция на компанията на пазарите на UNIX работни станции и сървъри. Процесорите SPARC са лицензирани и произведени по спецификации на Sun от няколко производителя, включително Texas Instruments, Fujitsu, LSI Logic, Bipolar International Technology, Philips и Cypress Semiconductor. Тези компании доставят SPARC процесори не само на самата Sun Microsystems, но и на други известни производители на компютърни системи, като Solbourne, Toshiba, Matsushita, Tatung и Cray Research.

През 1990 г. Sun лицензира всички права върху SPARC архитектурата на SPARC International, която в момента има над 250 членове. Основните отговорности на тази организация са да лицензира технологията SPARC за прилагане, насочване и проверка на съответствието със стандартите SPARC. Именно тази стратегия за лицензиране позволи на процесорите с архитектурата SPARC да заемат водещи позиции на пазара на RISC кристали (според независимата компания IDC през 1992 г. архитектурата SPARC заема 56% от пазара, следвана от MIPS - 15% и PA- RISC - 12,2%).

Архитектурата SPARC първоначално е проектирана да опрости внедряването на 32-битов процесор. Впоследствие, тъй като технологията за производство на интегрални схеми се подобри, тя постепенно се разви и в момента има 64-битова версия на тази архитектура.

За разлика от повечето RISC архитектури, SPARC използва регистрационни прозорци, които осигуряват удобен механизъм за предаване на параметри между програми и връщане на резултати. Архитектурата SPARC беше първият комерсиален дизайн, който прилага механизми за отложено разклоняване и обезсилване. Това даде на компилатора по-голяма свобода да запълни времето за изпълнение на инструкциите за разклоняване с команда, която се изпълнява, ако условието за разклоняване е изпълнено и се игнорира, ако условието за разклоняване не е изпълнено.

Първият SPARC процесор е произведен от Fujitsu на базата на гейт масив, работещ на 16,67 MHz. На базата на този процесор е разработена първата работна станция Sun-4 с производителност 10 MIPS, обявена през есента на 1987 г. (преди това Sun използва микропроцесори Motorola 680X0 в своите продукти). През март 1988 г. Fujitsu увеличава тактовата честота до 25 MHz, създавайки процесор с производителност от 15 MIPS.

По-късно Sun умело се възползва от конкуренцията между компаниите доставчици на интегрални схеми (LSI Logic, Cypress и Texas Instruments), избирайки най-успешните дизайни за внедряването на своите продукти SPARCstation 1, SPARCstation 1+, SPARCstation IPC, SPARCstation ELC, SPARCstation IPX, SPARCstation 2 и сървъри серии 4ХХ и 6ХХ. Тактовата честота на процесорите SPARC е увеличена до 40 MHz, а производителността е увеличена до 28 MIPS.

SuperSPARC

По-нататъшно увеличение на производителността на процесорите с архитектурата SPARC беше постигнато чрез внедряването на суперскаларни принципи на обработка върху чипове от Texas Instruments и Cypress. Процесорът SuperSPARC на Texas Instruments стана основата за сериите работни станции и сървъри SPARCstation/SPARCserver 10 и SPARCstation/SPARCserver 20. Има няколко версии на този процесор, които в зависимост от комбинацията от команди позволяват обработка на до три команди на машинен такт цикъл, различаващи се по тактова честота. Процесорът SuperSPARC (фиг. 8.2) има балансирана производителност при операции с фиксирана и плаваща запетая. Той има вътрешен кеш капацитет от 36 KB (20 KB кеш за инструкции и 16 KB кеш за данни), отделни конвейери за цяло число и реална аритметика и осигурява производителност от приблизително 205 MIPS при тактова честота от 75 MHz. Процесорът SuperSPARC се използва и в сървърите SPARCserver 1000 и SPARCcenter 2000 на Sun.

Структурно кристалът е монтиран на взаимозаменяеми процесорни модули от три типа, които се различават по наличието и размера на кеш паметта от второ ниво и тактовата честота. Модулът M-bus SuperSPARC, използван в Model 50, съдържа 50 MHz SuperSPARC процесор с вътрешен кеш капацитет от 36 KB (20 KB кеш за инструкции и 16 KB кеш за данни). M-bus SuperSPARC модулите в модели 51, 61 и 71 съдържат по един SuperSPARC процесор, работещ съответно на 50, 60 и 75 MHz, един кеш контролер (т.нар. SuperCache), както и външен кеш с капацитет от 1 MB. M-bus модулите в модели 502, 612, 712 и 514 съдържат два SuperSPARC процесора и два кеш контролера всеки, а последните три модела съдържат един 1 MB външен кеш на процесор. Използването на кеш памет позволява на модулите на процесора да работят с тактова честота, различна от тактовата честота на дънната платка; Следователно потребителите на всички модели могат да подобрят производителността на своите системи, като заменят съществуващите CPU модули, вместо да обновят цялата дънна платка.

Ориз. 8.2. Блокова схема на процесор Super SPARC

Texas Instruments също разработи 50 MHz MicroSPARC процесор с вграден 6 KB кеш, който преди беше широко използван в евтини SPARClassic и SPARCstation LX работни станции, но в момента се използва само в X терминали. Sun, съвместно с Fujitsu, създаде и нова версия на чипа MicroSPARC II с вграден 24 KB кеш. На негова база са изградени работни станции и сървъри SPARCstation/SPARCserver 4 и SPARCstation/SPARCserver 5, работещи на честоти 70, 85 и 110 MHz.

Въпреки че SPARC архитектурата остава доминираща на пазара на RISC процесори, особено в сектора на работните станции, увеличенията на тактовата честота на процесора от 1992 до 1994 г. се случиха с по-бавни темпове в сравнение с увеличенията на тактовата честота на конкурентни процесорни архитектури. За да преодолее тази празнина и в отговор на появата на 64-битови процесори на пазара, Sun разработи и изпълнява петгодишна програма за модернизация. В съответствие с тази програма Sun планира да увеличи тактовата честота на процесорите MicroSPARC до 100 MHz през 1994 г. (процесорът MicroSPARC II с тактова честота 70, 85 и 110 MHz вече се използва в работни станции и сървъри SPARCstation 5) и до 125 MHz ( процесор MicroSPARC III) до края на 1995 г. В края на 1994 г. - началото на 1995 г. на пазара се появяват микропроцесори hyperSPARC и едно- и двупроцесорни работни станции с тактова честота на процесора 100 и 125 MHz. До средата на 1995 г. тактовата честота на процесорите SuperSPARC трябва да бъде увеличена до 90 MHz (60 и 75 MHz версии на този процесор в момента се използват в работните станции и сървъри на Sun SPARCstation 20, SPARCserver 1000 и SPARCcenter 2000 и 64-процесорния сървър на Cray Research) . През втората половина на 1995 г. трябва да се появят 64-битови процесори UltraSPARC I с тактова честота 167 MHz, в края на 1995 г. - началото на 1996 г. - процесори UltraSPARC II с тактова честота от 200 до 275 MHz, а през 1997/1998 г. - UltraSPARC III процесори с честота 500 MHz.

хиперСПАРЦ

Едно от основните предизвикателства пред разработчиците на микропроцесори hyperSPARC беше да подобрят производителността, особено при извършване на операции с плаваща запетая. Поради това специално внимание на разработчиците беше отделено на създаването на прости и балансирани шестстепенни конвейери за целочислена аритметика и плаваща запетая. Логическите схеми на тези конвейери бяха внимателно проектирани, броят на логическите нива на портите между етапите беше изравнен, за да се опростят проблемите с по-нататъшното увеличаване на тактовата честота.

Производителността на процесорите hyperSPARC може да варира независимо от скоростта на външната шина (MBus). Наборът матрици hyperSPARC позволява както синхронни, така и асинхронни операции, използвайки персонализирана логика на матрицата RT625. Разделянето на вътрешната процесорна шина от външната шина ви позволява да увеличите тактовата честота на процесора независимо от честотата на паметта и I/O подсистемите. Това гарантира по-дълъг жизнен цикъл, тъй като надграждането до модули hyperSPARC с по-висока производителност не изисква преработка на цялата система.

Комплектът процесори hyperSPARC 100 MHz е изграден върху CMOS технология с три нива на метализация и 0,5 микрона стандарти за дизайн. Вътрешната логика работи със захранващо напрежение 3.3V.

Процесорът hyperSPARC е реализиран като многочипов микросглобка (фиг. 8.3), която включва част от суперскаларен конвейер и тясно свързан кеш от второ ниво. Комплектът включва RT620 (CPU) централен процесор, RT625 (CMTU) кеш контролер, модул за управление на паметта и модул за тагове и четири RT627 (CDU) кеш модула за реализиране на 256 KB L2 кеш. RT625 също така предоставя интерфейс към MBus.

Централният процесор RT620 (фиг. 8.4) се състои от цяло число, устройство с плаваща запетая, устройство за зареждане/запис, устройство за прескачане и двуканална наборно-асоциативна памет с инструкции с капацитет 8 KB. Устройството с цяло число включва ALU и отделен път за данни за операции за зареждане/запис, които са две от четирите изпълнителни единици на процесора. Преходното устройство обработва команди за прехвърляне на управление, а устройството с плаваща запетая всъщност се състои от два независими конвейера - събиране и умножение на числа с плаваща запетая. За да увеличат пропускателната способност на процесора, инструкциите с плаваща запетая преминават през конвейера с цели числа и влизат в опашка, където чакат да бъдат изпълнени в един от конвейерите с плаваща запетая. Във всеки цикъл се избират два отбора. Като цяло, докато тези две команди изискват различни изпълнителни устройства за тяхното изпълнение и няма зависимости от данни, те могат да се изпълняват едновременно. RT620 съдържа два регистърни файла: 136 целочислени регистъра, конфигурирани като осем регистърни прозореца, и 32 отделни регистъра с плаваща запетая, разположени в устройството с плаваща запетая.

Ориз. 8.3. Комплект матрици за процесор hyperSPARC

L2 кеш паметта в процесора hyperSPARC е базирана на RT625 CMTU, който е комбиниран чип, който включва кеш контролер и модул за управление на паметта, който поддържа споделена външна памет и симетрична мултипроцесорност. Кеш контролерът поддържа 256 KB кеш, състоящ се от четири RT627 CDU. Кешът има директно картографиране и 4K тагове. Етикетите в кеша съдържат физически адреси, така че логиката за кохерентност на многопроцесорния кеш, намираща се в RT625, може бързо да открие удари или пропуски, когато се гледа от предната шина, без да спира достъпа до кеша от процесора. Поддържат се както режим на запис, така и режим на обратно копиране.

Устройството за управление на паметта съдържа 64-редов напълно асоциативен виртуален към физически (TLB) кеш, който поддържа 4096 контекста. RT625 съдържа 32-байтов буфер за четене, използван за зареждане, и 64-байтов буфер за запис, използван за разтоварване на L2 кеша. Размерът на реда на кеша е 32 байта. В допълнение, RT625 включва синхронизираща логика, която осигурява интерфейс между вътрешната шина на процесора и SPARC MBus при извършване на асинхронни операции.

RT627 е 16K(32K) SRAM, специално проектиран да отговаря на изискванията на hyperSPARC. Организиран е като четириканален SRAM в четири масива с логика за запис на байтове и входни и изходни фиксиращи регистри. RT627 за CPU е нулев държавен кеш за изчакване без загуби на конвейер (т.е. спирания) за всички зареждания и записи, които са ударили кеша. RT627 е проектиран специално за процесора hyperSPARC, така че не са необходими допълнителни схеми за взаимодействие с RT620 и RT625.

Комплектът матрици ви позволява да се възползвате от тясното свързване между процесора и кеш паметта. RT620 е проектиран да позволява загуба на един тактов цикъл в случай на пропуск на L1 кеш. За достъп до L2 кеш паметта RT620 има специален конвейер. Ако има пропуск в кеша L1 и удар в кеша L2, процесорът не спира.

Ориз. 8.4. Процесор RT 620

Инструкциите за зареждане и запис едновременно генерират два достъпа: един към 8 KB L1 кеш на инструкции и един към L2 кеша. Ако адресът на инструкцията бъде намерен в кеша от първо ниво, тогава достъпът до кеша от второ ниво се отменя и инструкцията става достъпна на етапа на декодиране на конвейера. Ако има пропуск във вътрешната кеш памет и се открие попадение в кеша от второ ниво, тогава инструкцията ще стане достъпна със загубата на един тактов цикъл, който е вграден в конвейера. Тази възможност позволява на тръбопровода да продължи да работи непрекъснато, докато има или L1, или L2 кеш хитове, които са съответно 90% и 98% за типични приложения за работни станции. За постигане на архитектурен баланс и опростяване на обработката на изключения, конвейерите с цели числа и с плаваща запетая имат пет етапа на работа. Този дизайн позволява на RT620 да осигури максимална производителност, която не е постижима по друг начин.

MicroSPARC-II

Един рентабилен дизайн не може да разчита само на увеличаване на тактовата честота. Икономическите съображения налагат решения, базирани на масовата технология. Системите microSPARC осигуряват висока производителност при умерени тактови скорости чрез оптимизиране на средния брой инструкции, изпълнявани за тактов цикъл. Това повдига проблеми с ефективното управление на конвейера и йерархията на паметта. Средното време за достъп до паметта трябва да намалее или средният брой инструкции, издадени за изпълнение на тактов цикъл, трябва да се увеличи, увеличавайки производителността въз основа на компромиси в дизайна на процесора.

Ориз. 8.5. Блокова схема на процесор micro Sparc-II

MicroSPARC-II (фиг. 8.5) е един от сравнително наскоро представените процесори от фамилията SPARC. Основното му предназначение е еднопроцесорни евтини системи. Това е силно интегриран чип, съдържащ цяло числово устройство, устройство за управление на паметта, устройство с плаваща запетая, отделни инструкции и кеш за данни, динамичен контролер за управление на чип памет и контролер на SBus шина.

Основните свойства на целочисленото устройство microSPARC-II са:

  • петстепенен команден конвейер;
  • предварителна обработка на команди за преход;
  • поддръжка на режим на поточно предаване на команди и работа с кеш данни;
  • регистърен файл с капацитет 136 регистъра (8 регистърни прозореца);
  • интерфейс с устройство с плаваща запетая;
  • предварително извличане на команда с опашка от четири команди.

Устройството с цели числа използва конвейер с пет етапа на инструкции с до две инструкции, изпълнявани наведнъж. Устройството с плаваща запетая извършва операции в съответствие със стандарта IEEE 754.

Устройството за управление на паметта изпълнява четири основни функции. Първо, той осигурява формирането и преобразуването на виртуален адрес във физически. Тази функция се изпълнява с помощта на TLB асоциативния буфер. Освен това устройството за управление на паметта реализира механизми за защита на паметта. И накрая, той управлява достъпа до паметта от страна на I/O, кеша за данни, кеша за инструкции и TLB.

Процесорът microSPARC II има 64-битова шина на паметта и поддържа до 256 MB RAM. Процесорът интегрира SBus контролер, за да осигури рентабилна I/O реализация.

PA-RISC процесори на Hewlett-Packard

В основата на разработването на съвременните продукти на Hewlett-Packard е архитектурата PA-RISC. Той е разработен от компанията през 1986 г. и оттогава е преминал през няколко етапа на своето развитие поради успеха на интегрираната технология от многочипов до едночипов дизайн. През септември 1992 г. Hewlett-Packard обяви създаването на своя суперскаларен процесор PA-7100, който оттогава се превърна в основа за семейството работни станции HP 9000 Series 700 и семейството бизнес сървъри HP 9000 Series 800. В момента има 33, 50 - и 99 MHz изпълнение на кристала PA-7100. В допълнение, модифицирани, подобрени в много отношения кристали PA-7100LC с тактови честоти 64, 80 и 100 MHz и PA-7150 с тактови честоти 125 MHz, както и PA-7200 с тактови честоти 90 и 100 MHz бяха освободени. Компанията активно разработва следващото поколение процесор HP 8000, който ще работи на тактова честота от 200 MHz и ще осигурява 360 SPECint92 единици и 550 SPECfp92 единици. Появата на този кристал се очаква през 1996 г. В допълнение, Hewlett-Packard, в сътрудничество с Intel, планира да създаде нов процесор с много дълга дума на инструкция (VLIW архитектура), който ще бъде съвместим както с фамилията Intel x86, така и с фамилията PA-RISC. Пускането на този процесор е планирано за 1998 г.

Характеристика на архитектурата PA-RISC е реализацията на кеша извън чипа, което ви позволява да внедрявате различни количества кеш памет и да оптимизирате дизайна в зависимост от условията на приложението (фиг. 8.6). Инструкциите и данните се съхраняват в отделни кеш памети, а процесорът се свързва с тях с помощта на високоскоростни 64-битови шини. Кеш паметта е реализирана на високоскоростни статични чипове с памет (SRAM), които се синхронизират директно с тактовата честота на процесора. При 100 MHz всеки кеш има 800 MB/s честотна лента за четене и 400 MB/s честотна лента за запис. Микропроцесорният хардуер поддържа различни количества кеш памет: кешът за инструкции може да има обем от 4 KB до 1 MB, кешът за данни - от 4 KB до 2 MB. За да се намали процентът на пропуски, се използва механизъм за хеширане на адреси. И двата кеша използват допълнителни битове за проверка за подобряване на надеждността, а грешките в кеша на инструкциите се коригират от хардуера.

Ориз. 8.6. Блокова схема на процесор PA 7100

Процесорът е свързан към паметта и I/O подсистемата чрез синхронна шина. Процесорът може да работи при три различни съотношения на вътрешни и външни тактови честоти в зависимост от честотата на външната шина: 1:1, 3:2 и 2:1. Това позволява на системите да използват чипове памет с различна скорост.

В структурно отношение чипът PA-7100 разполага с процесор за цели числа, процесор с плаваща запетая, устройство за управление на кеша, унифициран TLB буфер, управляващо устройство и редица интерфейсни схеми. Целочисленият процесор включва ALU, превключвател, разклонителен суматор, вериги за проверка на кода на условието, байпасни вериги, регистърен файл с общо предназначение, контролни регистри и регистри на конвейера на адреси. Мениджърът на кеша съдържа регистри, които нулират кеша при възникване на пропуски и наблюдават кохерентността на паметта. Това устройство също така съдържа сегментни адресни регистри, TLB буфер за преобразуване на адреси и хеширащ хардуер, който контролира презареждането на TLB. Процесорът с плаваща запетая включва единица за умножение, аритметична логическа единица, единица за деление и квадратен корен, регистърен файл и вериги на късо съединение в резултат. Интерфейсните устройства включват всички необходими вериги за комуникация с кешовете за инструкции и данни и шината за данни. Обобщеният TLB съдържа 120 реда асоциативна памет с фиксиран размер и 16 реда с променлив размер.

Блокът с плаваща запетая (Фигура 8.7) прилага аритметика с единична и двойна точност в стандарта IEEE 754. Неговият умножител също се използва за извършване на операции за умножение на цели числа. Единиците за деление и квадратен корен работят с двойна скорост на процесора. Аритметичното логическо устройство изпълнява операции за събиране, изваждане и преобразуване на формати на данни. Регистърният файл се състои от 28 64-битови регистъра, всеки от които може да се използва като два 32-битови регистъра за извършване на операции с плаваща запетая с единична точност. Регистърният файл има пет порта за четене и три порта за запис, които позволяват едновременни операции за умножение, добавяне и зареждане/запис.

Ориз. 8.7. Управление на команди с плаваща запетая

Повечето от подобренията в производителността на процесора идват от увеличаване на тактовата честота до 100 MHz, в сравнение с 66 MHz на предшественика.

Конвейерът на целочисленото устройство включва шест етапа: четене на кеша на инструкции (IR), четене на операнд (OR), изпълнение/четене на кеша на данни (DR), завършено четене на кеша на данни (DRC), запис на регистър (RW) и запис на кеша на данни (DW) ). На етап ID се извличат инструкции. Прилагането на механизма с две инструкции изисква малък буфер за предварително извличане, който гарантира, че инструкциите се извличат предварително два тактови цикъла, преди IR етапът да започне работа. По време на изпълнение в етап ИЛИ, всички изпълнителни механизми декодират операндните полета в инструкцията и започват да изчисляват резултата от операцията. На етапа на DR целочисленото устройство завършва своята работа. Освен това кешът за данни извършва четене, но не пристигат данни, докато етапът DRC не завърши. Резултатите от операциите събиране (ADD) и умножение (MULTIPLY) също стават валидни в края на етапа на DRC. Записването в регистри с общо предназначение и в регистри с плаваща запетая се извършва на етап RW. Записването в кеша за данни с помощта на команди за запис (STORE) изисква два тактови цикъла. Най-ранният команден прозорец STORE с натискане и изтегляне се появява на етапите RW и DW. Този прозорец обаче може да се измести, тъй като записите в кеша за данни се извършват само когато се появи следващата команда за запис. Операциите за деление и квадратен корен за числа с плаваща запетая завършват много тактови цикли след DW етапа.

Тръбопроводът е проектиран да увеличи максимално времето, необходимо за завършване на четене от външни SRAM кеш матрици за данни. Това позволява честотата на процесора да бъде увеличена максимално за дадена скорост на SRAM. Всички инструкции за зареждане (LOAD) се изпълняват в един такт и изискват само един такт от честотната лента на кеша за данни. Тъй като кешовете за команди и данни са разположени на различни шини, няма загуби в конвейера, свързани с конфликти между извиквания към кеша за данни и кеша за команди.

Процесорът може да издава една целочислена инструкция и една инструкция с плаваща запетая за изпълнение във всеки тактов цикъл. Ширината на честотната лента на кеша за инструкции е достатъчна, за да поддържа непрекъснато издаване на две инструкции на всеки такт. Няма ограничения за подравняването или реда на двойка команди, които се изпълняват заедно. В допълнение, няма часовникови цикли, свързани с превключването от изпълнение на две инструкции към изпълнение на една инструкция. Беше обърнато специално внимание, за да се гарантира, че издаването на две команди в един тактов цикъл не ограничава тактовата честота. За да се постигне това, в кеша на инструкциите беше внедрен специален бит с възможност за предварително декодиране, за да се отделят целочислени инструкции на устройства от инструкции на устройства с плаваща запетая. Този бит за предварително декодиране на команда минимизира времето, необходимо за правилно разделяне на командите.

Загубите, свързани със зависимостите от данни и контрол, са минимални в този конвейер. Инструкциите за зареждане се изпълняват в един тактов цикъл, освен ако последващата инструкция не използва целеви регистър на инструкция LOAD. Като правило, компилаторът ви позволява да заобиколите такива загуби от един цикъл. За да намали загубите, свързани с инструкциите за условно разклоняване, процесорът използва алгоритъм за предсказване на посоката на прехвърляне на управление. За да се оптимизира производителността на циклите, прехвърлянията на управление напред през програмата се предвиждат като неизпълними преходи, а прехвърлянията на управление назад през програмата се предвиждат като изпълними преходи. Правилно предвидените условни разклонения се изпълняват в един тактов цикъл.

Броят отметки, необходими за запис на дума или двойна дума с командата STORE, е намален от три на две отметки. В по-ранните реализации на PA-RISC архитектурата беше необходим един допълнителен тактов цикъл за прочитане на кеша, за да се осигури попадение, а също и за обединяване на старите данни от линията на кеша с данните, които се записват. PA 7100 използва отделна шина за адресен етикет, за да синхронизира четенето на етикета със записа на данните от предишната команда STORE. Освен това наличието на отделни сигнали за разрешаване на запис за всяка дума от кеш линия елиминира необходимостта от обединяване на стари данни с нови данни от команди за запис на word или dword. Този алгоритъм изисква записи в SRAM чипове да се извършват само след като се установи, че записът е придружен от попадение в кеша и не предизвиква прекъсване. Това изисква допълнителна стъпка на тръбопровода между четенето на етикета и записването на данните. Тази конвейерна обработка не води до допълнителни пропилени тактови цикли, тъй като процесорът прилага специални байпасни вериги, които позволяват отложените командни данни за запис да бъдат насочвани към последващи команди за зареждане или команди STORE, които записват само част от думата. За даден процесор разходите за конвейер за инструкции за запис на дума или двойна дума се намаляват до нула, освен ако непосредствено последващата инструкция не е инструкция за зареждане или запис. В противен случай загубите са равни на един цикъл. Загубите за запис на част от дума могат да варират от нула до два тактови цикъла. Симулациите показват, че по-голямата част от командите за запис действително работят във формат от една или две думи.

Всички операции с плаваща запетая, с изключение на инструкциите за деление и квадратен корен, са напълно конвейерни и имат закъснение за изтегляне и издърпване както в режимите на единична, така и в двойна точност. Процесорът може да издава независими инструкции с плаваща запетая за изпълнение във всеки тактов цикъл без никакви загуби. Последователните операции със зависимостите на регистъра водят до загуба на един цикъл. Командите за деление и квадратен корен се изпълняват в 8 тактови цикъла за единична точност и 15 тактови цикъла за двойна точност. Изпълнението на инструкцията не се спира от инструкции за деление/квадратен корен, докато не се изисква регистърът на резултата или не бъде издадена следващата инструкция за деление/квадратен корен.

Процесорът може да изпълни паралелно една целочислена инструкция и една инструкция с плаваща запетая. В този случай „инструкциите за цели числа“ също включват инструкции за зареждане и запис на регистри с плаваща запетая, а „инструкциите за плаваща запетая“ включват инструкциите FMPYADD и FMPYSUB. Тези последни инструкции комбинират операцията за умножение с операциите за събиране или изваждане, съответно, които се изпълняват паралелно. Пиковата производителност е 200 MFLOPS за последователност от FMPYADD инструкции, в които съседните инструкции са независими от регистъра.

Разходите за операции с плаваща запетая, които използват предварително зареждане на операнд с инструкцията LOAD, са един тактов цикъл, ако зареждането и инструкциите с плаваща запетая са съседни, и два тактови цикъла, ако са издадени за изпълнение по едно и също време. За инструкция за запис, която използва резултата от операция с плаваща запетая, няма загуба, дори ако се изпълнява паралелно.

Излишните разходи за пропуски в кеша на данни са сведени до минимум чрез използването на четири различни техники: попадение при пропуск за инструкции LOAD и STORE, нишка на кеша на данни, специално кодиране на команди за запис, за да се избегне копирането на реда, който пропуска, и семафорни операции в кеш-памет. Първото свойство позволява всякакъв вид друга команда да бъде изпълнена, докато се обработва пропуск на кеш данни. За пропуски, възникнали по време на инструкция LOAD, обработката на следващите инструкции може да продължи, докато резултатният регистър на инструкцията LOAD не се изисква като операнд регистър за друга инструкция. Компилаторът може да използва това свойство, за да изтегли предварително необходимите данни в кеша много преди действително да са необходими. За пропуски, възникнали по време на инструкция STORE, обработката на последващи команди за зареждане или запис на част от дума продължава, докато няма препратки към реда, където е настъпил пропускът. Компилаторът може да използва това свойство, за да изпълнява команди, докато записва резултатите от предишни изчисления. По време на забавянето на обработката на пропуски, други инструкции LOAD и STORE, които попадат в кеша за данни, могат да бъдат изпълнени като други инструкции с цели числа и с плаваща запетая. По време на цялото време на обработка на пропусната инструкция STORE, могат да се появят други инструкции за запис в същия кеш ред без допълнителна загуба на време. За всяка дума в кеш ред процесорът има специален бит за индикация, който предотвратява копирането от паметта на думи от реда, които са били записани от инструкции STORE. Тази възможност се прилага за операции LOAD и STORE с цели числа и плаващи числа.

Изпълнението на инструкцията спира, когато регистърът на местоназначението на пропуснато изпълнена инструкция LOAD се изисква като операнд към друга инструкция. Свойството threading позволява изпълнението да продължи веднага щом желаната дума или двойна дума бъде върната от паметта. По този начин изпълнението на командата може да продължи както по време на забавянето, свързано с обработката на пропуска, така и докато съответният ред се попълва, когато възникне пропускът.

Когато извършва блоково копиране на данни, в някои случаи компилаторът знае предварително, че записът трябва да се извърши в пълен кеш ред. За да оптимизира справянето с такива ситуации, архитектурата PA-RISC 1.1 дефинира специално кодиране на командите за запис („блоково копие“), което означава, че хардуерът не трябва да извлича ред от паметта, който може да причини пропуск в кеша. В този случай времето за достъп до кеша за данни е сумата от времето, необходимо за копиране на стария кеш ред в паметта на същия адрес в кеша (ако е замърсен) и времето, необходимо за запис на новия кеш таг. Процесорът PA 7100 предоставя тази възможност както за привилегировани, така и за непривилегировани инструкции.

Последното подобрение в управлението на кеша на данни включва прилагане на семафорни операции с "нулево натоварване" директно в кеша. Ако в кеша се извърши семафорна операция, тогава загубеното време по време на нейното изпълнение не надвишава загубата на нормални операции за запис. Това не само намалява натоварването на конвейера, но също така намалява трафика на шината на паметта. Архитектурата PA-RISC 1.1 също така предоставя друг тип специално кодиране на инструкции, което елиминира изискването за синхронизиране на семафорни операции с I/O устройства.

Управлението на кеш паметта на командите позволява в случай на пропуск да продължи изпълнението на команди веднага след като командата, която не е в кеша, пристигне от паметта. 64-битовата шина за данни, използвана за попълване на кеш блоковете с инструкции, съответства на максимална честотна лента на външната шина на паметта от 400 MB/s при 100 MHz.

Процесорът също така предоставя редица мерки за минимизиране на загубите, свързани с преобразуването на виртуални адреси във физически.

Дизайнът на процесора осигурява реализацията на два начина за изграждане на многопроцесорни системи. При първия метод всеки процесор е свързан към интерфейсен чип, който следи всички транзакции на основната шина на паметта. В такава система всички функции за поддържане на кохерентно състояние на кеш паметта се възлагат на интерфейсния кристал, който изпраща съответните транзакции към процесора. Кешът за данни е изграден на принципите на lazy-back и всеки кеш блок поддържа лични, мръсни и валидни битове на състоянието, чиито стойности се променят в зависимост от транзакциите, издадени от или приемащи процесора.

Вторият метод за организиране на многопроцесорна система ви позволява да комбинирате два процесора и памет и I/O контролер на една и съща локална шина на паметта. Тази конфигурация не изисква допълнителни интерфейсни чипове и е съвместима със съществуващата система с памет. Кохерентността на кеша се осигурява чрез наблюдение на шината на локалната памет. Прехвърлянето на линии между кешовете се извършва без участието на контролера на паметта и I/O. Тази конфигурация прави възможно изграждането на много евтини многопроцесорни системи с висока производителност.

Процесорът поддържа редица операции, необходими за подобряване на графичната производителност на работни станции от серия 700: прехвърляне на блокове, Z-буфериране, цветова интерполация и команди за трансфер на данни с плаваща запетая за обмен с I/O пространство.

Процесорът е изграден по технологията CMOS процес с конструктивни стандарти от 0,8 микрона, което осигурява тактова честота от 100 MHz.

Процесорът PA 7200 има редица архитектурни подобрения в сравнение с PA 7100, основните от които са добавянето на втори конвейер с цели числа, изграждането на вграден в чипа допълнителен кеш за данни и внедряването на нов 64-битов интерфейс на шина на паметта .

Процесорът PA 7200, подобно на своя предшественик, осигурява суперскаларен режим на работа с едновременно подаване на до две команди в един такт. Всички инструкции на процесора могат да бъдат разделени на три групи: операции с цели числа, операции за зареждане/запис и операции с плаваща запетая. PA 7200 едновременно издава две инструкции, принадлежащи към различни групи, или две цели числа (поради наличието на втори целочислен конвейер с ALU и допълнителни портове за четене и запис в регистърния файл). Инструкциите за прескачане се изпълняват в конвейер с цели числа и тези прескачания могат да бъдат сдвоени, за да бъдат издадени едновременно само с предходната инструкция.

Увеличаването на тактовата честота на процесора изисква опростяване на декодирането на командите на етапа на издаване. За тази цел се извършва предварително дешифриране на командния поток на етапа на зареждане на кеш паметта. За всяка двойна дума кешът на инструкциите включва 6 допълнителни бита, които съдържат информация за наличието на зависимости от данни и конфликти на ресурси, което значително опростява издаването на инструкции в суперскаларен режим.

Процесорът PA 7200 прилага ефективен алгоритъм за предварително извличане на инструкции, който също работи добре на линейни секции от програми.

Подобно на PA 7100, процесорът реализира интерфейс с външен кеш за данни, работещ на тактовата честота на процесора с латентност от един цикъл. Външният кеш за данни е изграден на принципа на директното картографиране. В допълнение, за повишаване на ефективността, на чипа на процесора е внедрен малък допълнителен кеш с капацитет от 64 реда. Формирането, преобразуването на адреси и достъпът до основните и спомагателните кешове на данни се извършват на два етапа от конвейера. Максималното забавяне при откриване на попадение е един такт.

Спомагателният вътрешен кеш съдържа 64 32-байтови реда. При достъп до кеш паметта се проверяват 65 тагова: 64 допълнителни кеш тагова и един външен кеш таг за данни. Когато се намери съвпадение, данните се препращат към желаното функционално устройство.

Ако необходимият ред не е в кеш паметта, той се зарежда от основната памет. В този случай линията влиза в спомагателния кеш, което в някои случаи позволява да се намали броят на презарежданията на външната кеш памет, организирана по принципа на директното картографиране. Архитектурата на новия процесор за команди за зареждане/запис предвижда кодиране на специална функция за локално разполагане на данни („само пространствена локалност“). При изпълнение на команди за зареждане, маркирани с този флаг, редът на спомагателния кеш се запълва както обикновено. Но последващото записване на ред се извършва директно в основната памет, заобикаляйки външния кеш на данни, което значително повишава ефективността на работа с големи масиви от данни, за които размерът на линията на кеша с директно картографиране не е достатъчен.

Разширеният набор от инструкции на процесора ви позволява да внедрите инструменти за автоматично индексиране, за да подобрите ефективността на работа с масиви, както и инструкции за предварително извличане, които се поставят в спомагателен вътрешен кеш. Този спомагателен кеш осигурява динамично разширение на асоциативността на основния директно картографиран кеш и е по-опростена алтернатива на наборно-асоциативната организация.

Процесорът PA 7200 включва нов 64-битов мултиплексен интерфейс на системната шина Runway, който прилага разделяне на транзакции и поддръжка на протокол за кохерентност на паметта. Този интерфейс включва транзакционни буфери, арбитражни вериги и вериги за контролиране на съотношението между външни и вътрешни тактови честоти.

Процесор Motorola MC88110

Процесорът 88110 е суперскаларен RISC процесор. Основните характеристики на този процесор са свързани с използването на суперскаларни принципи на обработка, два регистрови файла с осем порта, десет независими изпълнителни единици, големи вътрешни кешове и широки магистрали за данни.

На фиг. Фигура 8.8 показва блокова диаграма на процесор, съдържащ 1,3 милиона порта. Централната част на тази архитектура е операндната шина (в изпълнението е шест 80-битови шини), свързващи регистрови файлове и изпълнителни устройства.

Процесорът има 10 изпълнителни механизма, които работят едновременно и независимо, и два регистрационни файла. Регистърният файл с общо предназначение има 32-битова организация. Разширените регистри с плаваща запетая имат 80-битова организация. Тези регистрационни файлове са снабдени с шест порта за четене и два порта за запис всеки.

Шината на външния процесор има отделни линии за данни (64 бита) и адреси (32 бита), което позволява бързо пакетно презареждане на вътрешната кеш памет. Външната шина също има специални контролни сигнали, които осигуряват хардуерна поддръжка за кохерентност на кеша в многопроцесорни конфигурации.

Процесорът разполага с два двуканални наборно-асоциативни кеша с капацитет 8 KB всеки (за инструкции и за данни). Имат физическо адресиране. Всички операции за презареждане на кеша се извършват в режим на групово предаване на данни, като първо се изпраща необходимата дума. Кохерентността на кеша на данните се осигурява от хардуерно базирания протокол за наблюдение на шината с четири състояния (MESI). За да подобри производителността, кешът на данни използва стратегия за забавено копиране.

Ориз. 8.8. Блокова схема на процесора MC 88110

Архитектурата на суперскаларния процесор се основава на внедряването на възможността за изпълнение на команди извън реда, в който са получени за изпълнение, което може значително да увеличи производителността, но води до проблеми при организирането на прецизни прекъсвания. Този проблем е решен в процесора 88110 с помощта на така наречения буфер за история, който съхранява стари стойности на регистъра, когато операциите се извършват и завършват не в реда, предписан от програмата, и позволява на хардуера да възстанови необходимото състояние в случай на прекъсване.

Процесорът предоставя няколко начина за ускоряване на обработката на условни разклонения. Едно от тях, предвиждане на посоката на разклоняване, позволява на компилатора да каже на процесора предпочитаната посока на разклоняване. Разклоненията, които се изпълняват, използват 32-редов целеви буфер за разклоняване за бърз избор на две инструкции на целеви адрес на разклонение. Машината за прогнозиране на посоката на разклоняване позволява едновременно изпълнение на тези инструкции и оценка на условието за преход. Разрешено е спекулативно (условно) изпълнение на команди за предвидената посока на разклоняване. Ако посоката на разклоняване е неправилно предвидена, първоначалното състояние на процесора се възстановява с помощта на буфера на историята. В този случай изпълнението на програмата ще продължи с командата „правилно“.

Във всеки тактов цикъл процесорът може да издаде две инструкции за изпълнение. В повечето случаи командите се подават в реда, предписан от програмата. Командите за запис и условно прескачане могат да бъдат изпращани до резервни буферни станции, от които впоследствие ще бъдат издадени за изпълнение. Командите за зареждане може да са на опашка. По този начин тези команди не блокират издаването на втората команда в двойката. Голям брой задвижващи механизми позволява едновременното издаване на две команди в много ситуации: 2 цели числа, 2 команди с плаваща запетая, 2 графични команди или произволна комбинация от тези команди.

Устройството за зареждане/запис реализира четириредов FIFO буфер за зареждане и три резервационни станции за запис, което ви позволява да имате до 4 чакащи команди за зареждане и до три команди за запис по всяко време. Изпълнението на тези команди в устройството може да бъде пренаредено, за да се осигури по-голяма ефективност.

При изграждането на многопроцесорна система всички процесори и основна памет се поставят на една платка. За да се осигури добра производителност на системата, всеки процесор в тази конфигурация е оборудван с 256 KB L2 кеш. Протоколът за кохерентност на кеша (протокол за наблюдение) се основава на техника за невалидност при запис, която гарантира, че модифицирано копие на кеш линия е поставено само в един от кешовете на системата. Протоколът позволява на множество процесори да имат едно и също копие на кеш линия. В този случай, ако един от процесорите пише в паметта (споделена кеш линия), другите процесори се уведомяват, че техните копия са невалидни и трябва да бъдат анулирани.

Характеристики на MIPS архитектурата от MIPS Technology

Архитектурата MIPS беше една от първите RISC архитектури, които получиха приемане в индустрията. Обявен е през 1986 г. Първоначално беше изцяло 32-битова архитектура, която включваше 32 32-битови регистъра с общо предназначение, 16 регистъра с плаваща запетая и специална двойка регистри за съхраняване на резултатите от операциите за умножение и деление на цели числа. Размерът на инструкцията беше 32 бита, поддържаше само един метод на адресиране и адресното пространство също беше дефинирано от 32 бита. Производителността на аритметичните операции се определя от стандарта IEEE 754. В компютърната индустрия 32-битовите процесори R2000 и R3000 станаха широко популярни, които доста дълго време служиха като основа за изграждане на работни станции и сървъри от Silicon Graphics, Digital, Siemens Nixdorf и др.. Процесори R3000/ R3010 работеше на тактова честота от 33 или 40 MHz и осигуряваше производителност 20 SPECint92 и 23 SPECfp92.

Микропроцесорите от семейството R3000 са заменени с нови 64-битови микропроцесори R4000 и R4400. (MIPS беше първата компания в компютърната индустрия, която пусна процесори с 64-битова архитектура). Наборът от инструкции на тези процесори (спецификация MIPS II) беше разширен, за да включва 64-битови инструкции за зареждане и запис с плаваща запетая, инструкции за квадратен корен с единична и двойна точност, инструкции за условно прекъсване и атомарни операции, необходими за поддържане на многопроцесорни конфигурации. Процесорите R4000 и R4400 разполагат с 64-битови шини за данни и 64-битови регистри. Процесорите прилагат метод за удвояване на вътрешната тактова честота.

Процесорите R2000 и R3000 имаха стандартни петстепенни конвейери за инструкции. Процесорите R4000 и R4400 използват по-дълги конвейери (понякога наричани суперконвейери). Броят на етапите в процесорите R4000 и R4400 се увеличи до осем, което се дължи главно на увеличаване на тактовата честота и необходимостта от разпределение на логиката, за да се осигури дадена производителност на конвейера. Процесорът R4000 може да работи на тактова честота 50/100 MHz и осигурява нива на производителност от 58 SPECint92 и 61 SPECfp92. Процесорът R4400 може да работи на 50/100 MHz или 75/150 MHz, осигурявайки нива на производителност от 94 SPECint92 и 105 SPECfp92.

Процесорите R4000 имаха вътрешен кеш от 16 KB, разделен на 8 KB кеш за инструкции и 8 KB кеш за данни. По отношение на внедряването на кеш памет, процесорът R4400 има по-разширени възможности. Предлага се в три модификации: PC (Prmary Cash) - има вътрешен кеш за команди и данни с капацитет 16 KB. Процесор в тази конфигурация е предназначен предимно за евтини модели работни станции. SC (Secondary Cash) съдържа логиката за управление на кеша от второ ниво. MC (Multiprocessor Cash) - използва специални алгоритми за осигуряване на кохерентност и последователно състояние на паметта за многопроцесорни конфигурации.

MIPS обяви създаването на своя нов суперскаларен процесор R10000, който трябва да се появи на пазара в близко бъдеще. Технологията MIPS твърди, че R10000 осигурява пикова производителност от 800 MIPS, когато работи на вътрешна тактова честота от 200 MHz, като издава четири инструкции на тактов цикъл. В същото време осигурява обмен на данни с кеша от второ ниво със скорост от 3,2 GB/s.

За да осигури това високо ниво на производителност, процесорът R10000 включва много от най-новите постижения в процесорната технология и архитектура. На фиг. Фигура 8.9 показва блоковата схема на този микропроцесор.

Кешът за данни L1 на процесора R10000 е с капацитет 32 KB и е организиран под формата на две еднакви банки от по 16 KB всяка, което осигурява двойно наслояване при достъп до тази кеш памет. Всяка банка е двуканален набор-асоциативен кеш с размер на ред (блок) от 32 байта. Кешът за данни се индексира от виртуален адрес и съхранява маркери за адрес на физическа памет. Този метод на индексиране ви позволява да изберете подмножество от кеш паметта в същия цикъл, в който се формира виртуалният адрес. Въпреки това, за да се поддържа кохерентност с L2 кеша, L1 кешът съхранява маркери за адреси на физическа памет.

L2 кеш интерфейсът на процесора R10000 поддържа 128-битова шина за данни, която може да работи на тактова честота от 200 MHz, осигурявайки скорост на трансфер от 3,2 GB/s. Всички стандартни синхронни контролни сигнали за статична памет се генерират вътрешно от процесора. Минималният размер на кеша от второ ниво е 512 KB, максималният размер е 16 MB. Размерът на реда на този кеш е програмируем и може да бъде 64 или 128 байта.

Вътрешният двуканален кеш с множество асоциативни инструкции е 32 KB. Инструкциите се декодират частично, преди да бъдат поставени в кеша на инструкциите. В този случай към всяка команда се добавят 4 допълнителни бита, които показват изпълнителното устройство, в което тя ще бъде изпълнена. Размерът на реда на кеша за инструкции е 64 байта.

Разклонителната единица на процесора може да декодира и изпълни една инструкция за разклоняване на всеки тактов цикъл. Тъй като всяка инструкция за разклоняване е последвана от слот за забавяне, максимум две инструкции за разклоняване могат да бъдат извлечени едновременно, но само една по-ранна инструкция за разклоняване може да бъде декодирана в даден момент. Към всяка инструкция се добавя бит флаг за разклоняване по време на декодирането на инструкцията. Тези битове се използват за маркиране на инструкции за разклоняване в конвейера за извличане на инструкции. Посоката на условно разклоняване се предвижда с помощта на специална памет, която съхранява историята на минали изпълнения на разклонения. Двубитовият код в тази памет се актуализира всеки път, когато се вземе окончателно решение за посоката на прехода. Всички команди, избрани след командата за условно разклоняване, се считат за условни (спекулативни). Това означава, че в момента на тяхното извличане не се знае предварително дали изпълнението им ще приключи. Процесорът позволява предсказване на посоката на четири условни инструкции за прескачане, които могат да бъдат разрешени в произволен ред. Специален стек за разклоняване съдържа ред за всяка спекулативно изпълнена инструкция за условно разклоняване. Всеки ред от този стек съдържа информация, необходима за възстановяване на състоянието на процесора, ако спекулативните инструкции за разклоняване са били неправилно предвидени. Преходният стек ви позволява бързо и ефективно да възстановите конвейер, ако прогнозата за посоката на прехода е неправилна.

Ориз. 8.9. Блокова схема на процесора R 10000

Процесорът R10000 съдържа три командни опашки (буфери) (цялочислена командна опашка, командна опашка с плаваща запетая и адресна командна опашка). Тези три опашки издават команди динамично към съответните изпълнителни механизми. С всяка команда в опашката се съхранява команден етикет, който се придвижва с командата по етапите на конвейера. Всяка опашка динамично планира потока от инструкции и може да определи моментите, в които операндите, необходими за всяка инструкция, стават достъпни. В допълнение, опашката определя реда, в който се изпълняват командите въз основа на анализ на състоянието на съответните изпълнителни механизми. Веднага след като ресурсът е свободен, опашката издава команда към съответното изпълнително устройство.

Зависимостите между инструкциите могат да доведат до влошаване на производителността на процесора. За да се избегне това, се използва специална техника, която се нарича техника за преименуване на регистъра. Основната му задача е да определя зависимостите между инструкциите и да предоставя точния адрес на прекъсването на програмата. По време на процеса на преименуване на регистъра, всеки логически регистър, указан в командата, се заменя с физически регистър въз основа на таблицата за разпределение на регистъра. Това преименуване се случва за всеки резултатен регистър на командата. Следователно, когато дадена инструкция записва нова стойност в логически регистър, този логически регистър се преименува и ще използва името на новия физически регистър. Предишната му стойност обаче в крайна сметка се съхранява в стария физически регистър. Запазването на стойностите на стария регистър позволява да се обработват прецизни прекъсвания. Докато всички инструкции се преименуват, техните номера на логическите регистри се сравняват, за да се определят зависимостите между четирите инструкции, декодирани в един и същи тактов цикъл.

Процесорът R10000 има пет напълно независими изпълнителни единици: две целочислени ALU, две основни единици с плаваща запетая и две вторични единици с плаваща запетая, които обработват дълги операции като деление и квадратен корен.

Устройството за зареждане/запис съдържа опашка за адреси, устройство за изчисляване на адреси, устройство за транслация на виртуални във физически адреси (TLB), адресен стек, буфер за запис и кеш на данни от първо ниво. Устройството за зареждане/запис изпълнява команди за зареждане, запис, предварително извличане и кеширане.

Всички команди за зареждане и запис започват с последователност от три цикъла, която включва издаване на командата, изчисляване на виртуалния адрес и преобразуване на виртуалния адрес във физическия адрес. Преобразуването на адреси се извършва само веднъж по време на изпълнение на командата. Кешът за данни е достъпен и прехвърлянето на необходимите данни е завършено, когато има данни в кеша от първо ниво. В случай на пропуск или ако необходимият споделен порт на регистрационния файл е зает, кеша за данни и етикета трябва да бъдат достъпени отново след извличане на данни или от L2 кеша, или от основната памет.

TLB съдържа 64 реда и извършва транслация на виртуален във физически адрес. Виртуалният адрес, който трябва да се преведе, идва или от адресния калкулатор, или от програмния брояч.

Външният L2 кеш се управлява от вътрешен контролер, който има специален порт за свързване на кеш паметта. Специална 128-битова шина за данни прехвърля данни при тактова честота на процесора от 200 MHz. Процесорът има и 64-битова шина за данни на системния интерфейс. Кешът от второ ниво има двуканална наборно-асоциативна организация. Максималният размер е 16 MB. Минимален размер 512 KB. Трансферите се извършват на 128-битови парчета (4 32-битови думи). Последователните шинни цикли се използват за прехвърляне на големи блокове от данни:

  • Достъпът до четири думи (128 бита) се използва за кеш инструкции;
  • Достъпът от осем думи (256 бита) се използва за презареждане на основния кеш данни;
  • Достъпите от шестнадесет думи (512 бита) се използват за презареждане на първичния кеш на инструкциите;
  • Тридесет и две попадения на думи (1024 бита) се използват за нулиране на L2 кеша.

Системният интерфейс на процесора R10000 действа като шлюз между самия процесор и свързания с него L2 кеш памет и останалата част от системата. Системният интерфейс работи на външна тактова честота. Възможно е да се програмира системният интерфейс на тактови честоти 200, 133, 100, 80, 67, 57 и 50 MHz.

Процесорът поддържа протокол за разделяне на транзакции, който позволява на процесора или на външен абонат на шина да издава последващи заявки, без да чака отговор на предишната заявка. Поддържат се максимум четири едновременни транзакции в автобуса.

Процесорът R10000 позволява два начина за организиране на многопроцесорна система. Един от методите включва създаването на специален външен интерфейс за всеки процесор в системата. Този интерфейс обикновено се реализира с помощта на персонализирана интегрална схема, която осигурява шлюз към основната памет и I/O подсистема. При този тип връзка процесорите не са директно свързани един с друг, а комуникират чрез този специален интерфейс. Въпреки че това изпълнение е общоприето, цената му е доста висока.

Вторият метод е предназначен да постигне максимална производителност при минимални разходи. Това включва използването на два до четири процесора, свързани с клъстерна шина. В този случай е необходим само един външен интерфейс за взаимодействие с други системни ресурси.

Характеристики на Alpha архитектурата на DEC

В момента фамилията микропроцесори Alpha е представена от няколко чипа, които имат различни диапазони на производителност, работят на различни тактови честоти и разсейват различна мощност.

Първият, който се появи на пазара, беше 64-битовият микропроцесор Alpha (DECchip 21064). Това е едночипов RISC процесор, който включва устройства за целочислена и плаваща аритметика, както и 16 KB кеш памет. Кристалът е проектиран, като се вземат предвид прилагането на усъвършенствани методи за повишаване на производителността, включително тръбопроводната организация на всички функционални устройства, едновременното издаване на няколко команди за изпълнение, както и средства за организиране на симетрична мултипроцесорна обработка.

Чипът има два регистрови файла от 32 64-битови регистъра: един за цели числа, втори за числа с плаваща запетая. За да се осигури съвместимост с архитектурите MIPS и VAX, архитектурата Alpha поддържа както аритметика с единична, така и двойна прецизност съгласно стандарта IEEE 754 и вътрешния VAX аритметичен стандарт на компанията.

Най-мощният модел процесор, 21064, работи на 200 MHz. В края на 1993 г. се появи модернизирана версия на кристала - модел 21064A, който има двойно по-голяма кеш памет на кристала и работи на тактова честота 275 MHz.

След това бяха пуснати модели 21066 и 21068, работещи на честоти 166 и 66 MHz. Отличителна черта на този клон на процесорите Alpha е внедряването на PCI шина на чипа. Това значително опростява и намалява цената както на проектирането, така и на производството на компютри. Отличителна черта на модел 21068 е ниската консумация на енергия (около 8 вата). Основното предназначение на тези два нови модела са персонални компютри и едноплаткови компютри.

На фиг. Фигура 8.10 показва блокова диаграма на микропроцесора 21066. Основните компоненти на този процесор са: кеш на инструкции, устройство за целочислено число, устройство с плаваща запетая, устройство за зареждане/запис, кеш памет, контролер на паметта и контролер за вход/изход.

Ориз. 8.10. Основни компоненти на процесора Alpha 21066

Кешът за инструкции е 8 KB директно картографиран кеш. Инструкциите, избрани от тази кеш памет, могат да бъдат издадени по двойки за изпълнение в едно от устройствата за изпълнение. Кешът за данни от 8 KB също така прилага директно картографиран кеш. Когато се извършва запис в паметта, данните се записват едновременно в този кеш и в буфера за запис. Контролерът на паметта или входно-изходният контролер на PCI шина управлява всички достъпи, които преминават през L1 кешовете на чипа.

Контролерът на паметта първо проверява съдържанието на външния кеш от второ ниво, който е изграден на принципа на директното картографиране и прилага алгоритъм за мързеливо копиране при извършване на операции за запис. Когато се открие пропуск, контролерът осъществява достъп до основната памет, за да презареди съответните кеш линии. I/O контролерът на PCI шина управлява целия свързан с I/O трафик. Под управлението на централния процесор той извършва програмируеми входно-изходни операции. DMA трафикът на PCI шина се обработва от PCI контролера във връзка с контролера на паметта. Когато извършвате DMA операции за четене/запис, данните не се поставят в L2 кеша. Паметта и PCI интерфейсите са проектирани специално за еднопроцесорни конфигурации и не поддържат внедряването на многопроцесорни архитектури.

На фиг. Фигура 8.11 показва пример за система, изградена на базата на микропроцесор 21066. В представената конфигурация контролерът на паметта има достъп както до статичната памет, която реализира кеша от второ ниво, така и до динамичната памет, върху която е изградена основната памет. За съхраняване на етикети и данни в кеша от второ ниво се използват статични кристали на паметта с еднакво време за достъп за четене и запис.

Ориз. 8.11. Пример за изграждане на система, базирана на микропроцесора Alpha 21066

Дизайнът поддържа до четири банки динамична памет, всяка от които може да се управлява независимо, което осигурява известна гъвкавост при организацията на паметта и надграждането. Една от банките може да бъде запълнена с чипове за видео памет (VRAM) за реализиране на евтина графика. Контролерът на паметта работи директно с видео паметта и поддържа няколко прости графични операции.

Високоскоростната PCI шина има редица привлекателни свойства. В допълнение към DMA и програмируеми I/O възможности, той предлага специални контури за конфигурация, 64-битова разширяемост, 3,3 V и 5 V компоненти и по-бързо клокване. Основната реализация на PCI шина поддържа мултиплексиране на адреси и данни и работи на 33 MHz, осигурявайки максимална скорост на трансфер на данни от 132 MB/s. PCI шината се управлява директно от микропроцесора. На фиг. Фигура 8.11 показва някои високоскоростни периферни устройства: графични карти, SCSI контролери и мрежови адаптери, свързани директно към PCI шината. ISA мостовият интерфейсен чип ви позволява да свържете нискоскоростни устройства като модем, флопи устройство и др. към системата.

Вече е пусната подобрена версия на този микропроцесор. Подобно на своя предшественик, новата Alpha 21066A матрица, в допълнение към PCI интерфейса, съдържа интегриран контролер на паметта и графичен ускорител на матрицата. Тези характеристики могат значително да намалят разходите за внедряване на системи, базирани на Alpha 21066A, и да осигурят лесен и евтин достъп до външна памет и периферни устройства. Alpha 21066A има две модификации според честотата: 100 MHz и 233 MHz. Моделът на 233 MHz осигурява производителност съответно от 94 и 100 единици според тестовете SPECint92 и SPECfp92.

Най-новият микропроцесор Alpha 21164 представлява втората изцяло нова реализация на архитектурата Alpha. Микропроцесорът 21164, представен през септември 1994 г., осигурява производителност съответно 330 и 500 на скалите SPECint92 и SPECfp92, или около 1200 MIPS, и изпълнява до четири инструкции на такт. Микропроцесорният чип 21164 съдържа около 9,3 милиона транзистора, повечето от които формират кеша. Кристалът е изграден на базата на 0,5 микрона CMOS технология от DEC. Той е сглобен в 499-пинови PGA пакети (с 205 пина, предназначени за захранване и заземяване) и разсейва 50 W при захранващо напрежение от 3,3 V при 300 MHz.

Ключът към високата производителност е суперскаларният режим на процесора, който може да издава до четири инструкции на тактов цикъл, високопроизводителна неблокираща подсистема с памет с високоскоростен L1 кеш, голям L2 кеш в чипа и намалено забавяне на изпълнението. във всички функционални устройства.

На фиг. Фигура 8.12 показва блокова диаграма на процесор, който включва пет функционални единици: единица за управление на потока от инструкции (IBOX), единица за цели числа (EBOX), единица с плаваща запетая (FBOX), единица за управление на паметта (MBOX) и кеш и модул за управление на автобус (CBOX). Фигурата също така показва три кеша в чип. Кешът за инструкции и кешът за данни са основните кешове, които реализират директно картографиране. Мултиасоциативният L2 кеш се използва за съхраняване на инструкции и данни. Дължината на тръбопроводите 21164 варира от 7 етапа за инструкции с цели числа и 9 етапа за инструкции с плаваща запетая, до 12 етапа за инструкции за достъп до паметта в чипа и променлив брой етапи за инструкции за достъп до паметта извън чипа.

Устройството за контрол на потока на инструкции извлича и декодира инструкции от кеша на инструкциите и ги насочва за изпълнение към подходящите единици за изпълнение, след като всички конфликти на регистри и функционални единици са разрешени. Той контролира изпълнението на програмата и всички аспекти на обработката на изключения, капани и прекъсвания. В допълнение, той осигурява контрол на всички изпълнителни механизми, наблюдава всички вериги, заобикаляйки данните и записвайки в регистрационния файл. Контролното устройство съдържа 8 KB кеш за инструкции, вериги за предварително извличане на инструкции и свързания буфер за презареждане, схеми за предсказване на посоката на условно разклоняване и буфер за транслация на инструкции (ITB).

Единицата за изпълнение на цели числа изпълнява инструкции с цели числа, изчислява виртуални адреси за всички инструкции за зареждане и запис, изпълнява инструкции за условно разклоняване на цели числа и всички други инструкции за управление. Той включва регистрационен файл и няколко функционални устройства, разположени на четири степени на два паралелни конвейера. Първият тръбопровод съдържа суматор, логическа операционна единица, превключвател и умножител. Вторият конвейер съдържа суматор, устройство за логически операции и устройство за изпълнение на команди за управление.

Устройството с плаваща запетая се състои от две конвейерни изпълнителни единици: конвейер за добавяне, който изпълнява всички инструкции с плаваща запетая, с изключение на инструкциите за умножение, и конвейер за умножение, който изпълнява инструкции за умножение с плаваща запетая. Два специални конвейера за зареждане и един конвейер за данни за запис позволяват инструкциите за зареждане/запис да се изпълняват успоредно с операции с плаваща запетая. Всички режими на закръгляване, предоставени от стандартите IEEE и VAX, се поддържат хардуерно.

Устройството за управление на паметта изпълнява всички команди за зареждане, запис и синхронизиране на бариери. Той съдържа напълно асоциативен 64-редов буфер за преобразуване на адреси (DTB), 8 KB директно картографиран кеш за данни, файл с пропускащ адрес и буфер за запис. Дължината на линията на кеша за данни е 32 байта, има два порта за четене и е реализирана на базата на запис. Той се индексира с физически адресни битове и физическите адреси се съхраняват в тагове. Устройството за управление на паметта може да получи до два виртуални адреса от цяло числово устройство във всеки тактов цикъл. DTB също има два порта, така че може да извършва две преводи на виртуални във физически адреси едновременно. Инструкциите за зареждане имат достъп до кеша за данни и връщат резултата в регистрационния файл, ако се появят. В този случай забавянето е два такта. При пропуск физическите адреси се изпращат до файла с адреси на пропуски, където се буферират и изчакват достъпът до L2 кеша да завърши. Командите за запис записват данни в кеша за данни при попадение и винаги поставят данните в буфера за запис, където чакат да бъдат достъпни от L2 кеша.

Ориз. 8.12. Блокова схема на процесора Alpha 21164

Отличителна черта на микропроцесора 21164 е разполагането в чипа на вторичен триканален многоасоциативен кеш с капацитет 96 KB. Вторичният кеш рязко намалява броя на достъпите до външната шина на микропроцесора. В допълнение към вторичния кеш в чипа се поддържа работа с външен кеш от трето ниво.

Комбинацията от голям брой изчислителни устройства, по-бързо изпълнение на операции с плаваща запетая (четири тактови цикъла вместо шест), по-бърз достъп до основния кеш (два тактови цикъла вместо три) осигурява на новия микропроцесор рекордни параметри на производителност.

Характеристики на архитектурата POWER от IBM и PowerPC от Motorola, Apple и IBM

Както вече беше отбелязано, един от разработчиците на фундаменталната концепция на RISC архитектурата беше Джон Кук от изследователския център на IBM. Watson, който в средата на 70-те години провежда изследвания в тази посока и създава миникомпютъра IBM 801, който така и не излиза на пазара. По-нататъшното развитие на тези идеи в IBM беше отразено в развитието на POWER архитектурата в края на 80-те години. Архитектурата POWER (и нейните подархитектури POWER2 и PowerPC) в момента формира основата на фамилията работни станции и сървъри RISC System/6000 на IBM.

Развитието на архитектурата на IBM 801 в посока POWER върви в следните посоки: внедряване на концепцията за суперскаларна обработка, подобряване на архитектурата като целеви обект на компилаторите, намаляване на дължината на конвейера и времето за изпълнение на инструкциите и, накрая, приоритетна ориентация към ефективно изпълнение на операции с плаваща запетая.

POWER архитектура

Архитектурата POWER е в много отношения традиционна RISC архитектура. Той се придържа към най-важните отличителни белези на RISC: фиксирана дължина на инструкцията, архитектура от регистър към регистър, прости методи за адресиране, прости (не се изисква интерпретация) инструкции, голям регистров файл и формат на инструкции с три операнда (неразрушителен) . Архитектурата POWER обаче има и няколко допълнителни свойства, които я отличават от другите RISC архитектури.

Първо, наборът от инструкции се основава на идеята за суперскаларна обработка. В основната архитектура командите са разпределени между три независими единици за изпълнение: единица за разклонение, единица с фиксирана запетая и единица с плаваща запетая. Командите могат да се изпращат до всяко от тези устройства едновременно, където те могат да се изпълняват едновременно и в крайна сметка да не работят. За да се увеличи нивото на паралелизъм, което може да бъде постигнато на практика, архитектурата на набора от инструкции дефинира независим набор от регистри за всяко устройство. Това минимизира необходимите комуникации и синхронизация между устройствата, като по този начин позволява на изпълнителните модули да се приспособят към динамична комбинация от команди. Всяка комуникация на данни, необходима между устройствата, трябва да бъде анализирана от компилатора, който може да я планира ефективно. Трябва да се отбележи, че това е само концептуален модел. Всеки даден процесор с архитектура POWER може да третира всяко от концептуалните устройства като множество изпълнителни единици, за да поддържа допълнителен паралелизъм на инструкциите. Но съществуването на модела води до последователен дизайн на набор от инструкции, който естествено поддържа степен на паралелизъм от поне три.

Второ, POWER архитектурата е разширена с няколко "смесени" инструкции за намаляване на времето за изпълнение. Може би единственият недостатък на RISC технологията в сравнение с CISC е, че понякога използва повече инструкции за изпълнение на една и съща задача. Установено е, че в много случаи увеличаването на размера на кода може да бъде избегнато чрез леко разширяване на набора от инструкции, което не означава връщане към сложни инструкции като CISC. Например, значителна част от увеличението на кода беше намерено в кода на пролога и епилога, свързан със записването и възстановяването на регистри по време на извиквания на процедури. За да се справи с този проблем, IBM въведе команди за "пакетно зареждане и запис", които преместват множество регистри към/от паметта с една команда. Конвенциите за свързване, използвани от компилаторите на POWER, третират задачите за планиране, споделените библиотеки и динамичното свързване като прост, единствен механизъм. Това беше направено чрез индиректно адресиране чрез съдържание (TOC - Table Of Contents), което се променя по време на зареждане. Командите за групово зареждане и запис бяха важен елемент от тези комуникационни конвенции.

Друг пример за смесени инструкции е възможността за модифициране на основния регистър с новоизчислен ефективен адрес при извършване на операции за зареждане или запис (аналогично на автоматично инкрементално адресиране). Тези команди премахват необходимостта от изпълнение на допълнителни команди за добавяне, които иначе биха били необходими за увеличаване на индекса при достъп до масиви. Въпреки че това е хибридна операция, тя не пречи на работата на традиционен RISC тръбопровод, тъй като модифицираният адрес вече е изчислен и портът за запис на регистрационен файл е свободен, докато чака операция с памет.

Архитектурата POWER също така предоставя няколко други начина за намаляване на времето за изпълнение на инструкцията, като например: обширен набор от инструкции за манипулиране на битови полета, смесени инструкции за умножение и добавяне с плаваща запетая, настройка на регистър на условието като страничен ефект от нормалното изпълнение на инструкция и низ инструкции за зареждане и запис (които работят).с произволно подредени низове от байтове).

Третият фактор, който отличава POWER архитектурата от много други RISC архитектури, е липсата на механизъм за „отложено разклоняване“. Обикновено този механизъм гарантира, че инструкцията, следваща инструкцията за условно разклоняване, се изпълнява преди самото разклоняване. Този механизъм работи ефективно в ранните RISC машини, за да запълни "балона", който се появява при оценка на условията за избор на посока на разклоняване и извличане на нов поток от инструкции. Въпреки това, при по-напреднали, суперскаларни машини, този механизъм може да е неефективен, тъй като един цикъл на забавяне на инструкция за разклоняване може да доведе до множество мехурчета, които не могат да бъдат покрити от един слот за архитектурно забавяне. Почти всички такива машини, за да елиминират влиянието на тези "балони", са принудени да въведат допълнителен хардуер (например кеш адрес на клон). В такива машини механизмът за забавен преход не само става неефективен, но също така въвежда значителна сложност в логиката за обработка на последователност от команди. Вместо това POWER разклонителната архитектура е проектирана да поддържа техники за блокиране на разклонения и сгъване на разклонения.

Техниката за условно разклоняване, използвана в архитектурата POWER, е четвъртата уникална характеристика в сравнение с други RISC процесори. Архитектурата POWER дефинира разширени свойства на регистъра на условията. Проблемът с архитектурите с традиционен регистър на условията е, че задаването на условни битове като страничен ефект от изпълнението на инструкцията поставя сериозни ограничения върху способността на компилатора да променя реда на инструкциите. Освен това регистърът на условията е единственият архитектурен ресурс, който създава сериозно затруднение в машина, която изпълнява множество инструкции паралелно или изпълнява инструкции в нередовен ред в реда, в който се появяват в програмата. Някои RISC архитектури заобикалят този проблем, като елиминират изцяло регистъра на условията и изискват кодът на условието да бъде зададен с помощта на инструкции за сравнение в регистър с общо предназначение или чрез включване на операцията за сравнение в самата инструкция за прескачане. Последният подход потенциално претоварва командния конвейер при извършване на разклонение. Следователно, архитектурата POWER, вместо да коригира проблемите, свързани с традиционния подход на регистъра на условията, предлага: а) наличието на специален бит в кода на операцията на всяка инструкция, което прави модификацията на регистъра на условието допълнителна опция и по този начин възстановява способността на компилатора да реорганизира кода и б) множество (осем) регистри на условия, за да се преодолее проблемът с единичен ресурс и да се осигурят повече имена на регистри на условия, така че компилаторът да може да разпределя и разпределя ресурси на регистър на условия, както прави за универсалните регистри.

Друга причина за избора на модела на разширения регистър на условията е, че той е в съответствие с организацията на машината под формата на независими изпълнителни механизми. Концептуално регистърът на условията е локален за преходното устройство. Следователно, за да се оцени посоката на изпълнение на условно разклоняване, не е необходимо да се осъществява достъп до файла с универсален регистър (който е локален за устройството с фиксирана точка). До степента, в която компилаторът може предварително да планира модификацията на кода на условието (и/или предварително да зареди адресни регистри за прескачане), хардуерът може предварително да прегледа и свие условните разклонения, като ги отдели от потока от инструкции. Това освобождава времеви интервал (цикъл) за издаване на команда в конвейера, обикновено зает от команда за прескачане, и позволява на командния мениджър да създаде непрекъснат линеен поток от команди за изчислителни задвижващи механизми.

Първата реализация на архитектурата POWER се появи на пазара през 1990 г. Оттогава IBM представи още две версии на процесорите POWER2 и POWER2+, които осигуряват поддръжка за L2 кеш и разширен набор от инструкции.

Според IBM процесорът POWER изисква по-малко от един тактов цикъл, за да изпълни една инструкция, в сравнение с около 1,25 тактови цикъла за процесора Motorola 68040, 1,45 тактови цикъла за процесора SPARC, 1,8 тактови цикъла за процесора Intel i486DX и 1,8 тактови цикли за процесора Hewlett-Packard PA-RISC. Тактовата честота на архитектурната серия, в зависимост от модела, варира от 25 MHz до 62 MHz.

Процесорите POWER работят на 33, 41.6, 45, 50 и 62.5 MHz. Архитектурата POWER включва отделен кеш за инструкции и данни (с изключение на работни станции и сървъри за работни групи от начално ниво, които имат изпълнение на POWER процесор с един чип и споделен кеш за инструкции и данни), 64- или 128-битова шина на паметта и 52-битов виртуален адрес. Освен това има интегриран процесор с плаваща запетая и по този начин е много подходящ за изчислително интензивни приложения, типични за технически среди, въпреки че текущата RS/6000 стратегия е насочена както към търговски, така и към технически приложения. RS/6000 показва добра производителност с плаваща запетая: 134,6 SPECp92 за POWERstation/Powerserver 580. Това е по-малко от моделите Hewlett-Packard 9000 Series 800 G/H/I-50, които постигат 150 SPECfp92.

За реализиране на бърза I/O обработка, POWER архитектурата използва Micro Channel bus с пропускателна способност от 40 или 80 MB/sec. Шината Micro Channel включва 64-битова шина за данни и осигурява поддръжка за множество адаптери на хост шина. Тази поддръжка позволява на мрежовите контролери, видеоадаптери и други интелигентни устройства да прехвърлят информация през шината независимо от основния процесор, което намалява натоварването на процесора и съответно повишава производителността на системата.

Комплектът с множество чипове POWER2 се състои от осем полу-персонализирани чипа (устройства):

  • Instruction cache unit (ICU) - 32 KB, има два порта със 128-битови шини;
  • Целочислена аритметична единица (FXU) - съдържа два целочислени конвейера и два регистрови блока с общо предназначение (32 32-битови регистъра всеки). Извършва всички цели и логически операции, както и всички операции за достъп до паметта;
  • Floating Point Unit (FPU) - съдържа два конвейера за извършване на операции с плаваща запетая с двойна точност, както и 54 64-битови регистъра с плаваща запетая;
  • Четири блока кеш данни - максималният L1 кеш е 256 KB. Всеки блок има два порта. Устройството също така реализира редица функции за откриване и коригиране на грешки при взаимодействие със системата за памет;
  • Модул за управление на паметта (MMU).

Комплектът матрици POWER2 съдържа приблизително 23 милиона транзистора на площ от 1217 квадратни мм и е произведен с помощта на CMOS технология със стандарти за проектиране от 0,45 микрона. Разсейваната мощност при 66,5 MHz е 65 W.

Производителността на процесора POWER2 в сравнение с POWER е значително увеличена: при тактова честота от 71,5 MHz достига 131 SPECint92 и 274 SPECfp92.

Еволюция на POWER архитектурата към PowerPC архитектурата

IBM разширява мощта на POWER архитектурата към малки системи с PowerPC платформата. Архитектурата POWER в тази форма може да осигури нива на производителност и скалируемост, които надхвърлят възможностите на днешните персонални компютри. PowerPC е базиран на платформата RS/6000 в евтина конфигурация. Архитектурно, основните разлики между двата дизайна са, че PowerPC системите използват едночипова реализация на POWER архитектурата, произведена от Motorola, докато повечето RS/6000 системи използват многочипова реализация. Съществуват няколко варианта на PowerPC процесора, които отговарят на нуждите на преносими продукти и настолни работни станции, но това не изключва възможността за използване на тези процесори в по-големи системи. Първият, който беше обявен на пазара, беше процесорът 601, предназначен за използване в настолни работни станции на IBM и Apple. Той беше последван от матриците 603 за преносими и настолни системи от начално ниво и матриците 604 за настолни системи от висок клас. И накрая, процесорът 620 е проектиран специално за сървърни конфигурации и със своята 64-битова организация се очаква да осигури изключителни нива на производителност.

При разработването на архитектурата PowerPC, за да отговори на нуждите на три различни компании (Apple, IBM и Motorola), като същевременно поддържа съвместимост с RS/6000, бяха направени няколко промени в архитектурата POWER в следните области:

  • опростяване на архитектурата с цел адаптирането й за внедряване на евтини едночипови процесори;
  • премахване на команди, които могат да се превърнат в пречка за увеличаване на тактовата честота;
  • елиминиране на архитектурни бариери пред суперскаларна обработка и извънредно изпълнение на инструкции;
  • добавяне на функции, необходими за поддържане на симетрична мултипроцесорност;
  • добавяне на нови функции, считани за необходими за бъдещи приложения;
  • ясно определяне на разделителната линия между „архитектура“ и „изпълнение“;
  • осигуряване на дълъг живот на архитектурата чрез разширяването й до 64-битова.

Архитектурата на PowerPC поддържа същия основен модел на програмиране и присвояване на код за операция като POWER архитектурата. Когато бяха направени промени, които потенциално биха могли да попречат на PowerPC процесорите да изпълнят съществуващ RS/6000 двоичен код, бяха поставени капани, за да се позволи прекъсване и софтуерна емулация. Такива промени бяха въведени, естествено, само в случаите, когато съответната функция или не се използваше много често в кодовете на приложни програми, или беше изолирана в библиотечни програми, които можеха просто да бъдат заменени.

PowerPC 601

Първият PowerPC микропроцесор, PowerPC 601, в момента се произвежда от IBM и Motorola. Това е процесор от среден клас, предназначен за използване в настолни компютърни системи с ниска до средна цена. Той е проектиран като преходен модел от архитектурата POWER към архитектурата PowerPC и прилага възможностите и на двете архитектури. Въпреки това, двоичните файлове на RS/6000 работят непроменени на него, което дава на разработчиците на компилатори допълнително време да овладеят архитектурата на PowerPC, както и на разработчиците на приложения, които трябва да прекомпилират своите програми, за да се възползват напълно от архитектурата на PowerPC.

Процесорът 601 е базиран на едночипов процесор от IBM, който е разработен по време на създаването на алианса на трите водещи компании. Но в сравнение със своя предшественик, PowerPC 601 претърпя големи промени за подобряване на производителността и намаляване на разходите. Например, той включваше по-сложно преходно устройство, подобрено с мултипроцесорни възможности, включително шинния интерфейс на високопроизводителния 88110 процесор на Motorola. Power 601 реализира суперскаларна обработка, която позволява да бъдат издадени 3 команди за изпълнение във всеки тактов цикъл, вероятно не в реда, в който са разположени в програмния код.

PowerPC 603 процесор

PowerPC 603 е първият микропроцесор от фамилията PowerPC, който напълно поддържа PowerPC архитектурата (Фигура 8.13). Той включва пет функционални устройства: устройство за прескачане, устройство за целочислено число, устройство с плаваща запетая, устройство за зареждане/запис и устройство за системен регистър, както и две 8 KB инструкции на чип и кеша за данни. Тъй като PowerPC 603 е суперскаларен микропроцесор, той може да издава и изпълнява до три инструкции на тактов цикъл към тези изпълнителни единици. За да увеличи производителността, PowerPC 603 позволява извънредно изпълнение на команди. В допълнение, той предоставя програмируеми режими за намаляване на мощността, които дават на системните дизайнери гъвкавостта да прилагат различни технологии за управление на мощността.

Когато се обработват в процесора, командите се разпределят между пет изпълнителни устройства в реда, определен от програмата. Ако няма зависимости на операнд, изпълнението се извършва незабавно. Едно цяло числово устройство изпълнява повечето инструкции за един такт. Устройство с плаваща запетая е конвейерно и изпълнява операции с плаваща запетая с единична и двойна точност. Командите за условен скок се обработват в устройството за скок. Ако условията за преход са налични, тогава решението за посоката на прехода се взема незабавно, в противен случай изпълнението на следващите инструкции продължава по предположение (спекулативно). Командите, които променят състоянието на контролните регистри на процесора, се изпълняват от устройството за системен регистър. И накрая, трансферите на данни между кеша за данни от една страна и регистрите с общо предназначение и с плаваща запетая от друга страна се обработват от устройството за зареждане/запис.

В случай на пропуск в кеша, основната памет се осъществява чрез 64-битова високопроизводителна шина, подобна на микропроцесорната шина MC88110. За да се увеличи максимално пропускателната способност и следователно да се подобри цялостната производителност, кешът взаимодейства с основната памет предимно чрез групови операции, които позволяват редът на кеша да бъде попълнен в една транзакция.

След като дадена команда завърши изпълнението в устройството за изпълнение, нейните резултати се изпращат до буфера за завършване на командата (буфер за завършване) и след това последователно се записват в съответния регистърен файл, докато командите се премахват от буфера за завършване. За да се сведат до минимум конфликтите в регистрите, процесорът PowerPC 603 предоставя отделни комплекти от 32 регистъра за цяло число с общо предназначение и 32 регистъра с плаваща запетая.

Ориз. 8.13. Блокова схема на процесора Power PC 603

PowerPC 604

Суперскаларният процесор PowerPC 604 осигурява едновременно издаване на до четири инструкции. В този случай до шест команди могат да бъдат изпълнени паралелно във всеки цикъл. На фиг. Фигура 8.14 показва блокова диаграма на процесора 604. Процесорът включва шест задвижващи механизма, които могат да работят паралелно:

  • единица с плаваща запетая (FPU);
  • блок за изпълнение на клонове (BPU);
  • единица за зареждане/запис (LSU);
  • три цели числа (IU):
  • две целочислени единици с един цикъл (SCIU);
  • една многоциклична целочислена единица (MCIU).

Ориз. 8.14. Блокова схема на процесора Power PC 604

Този паралелен дизайн, съчетан със спецификацията на инструкциите на PowerPC, която позволява ускорено изпълнение на инструкции, води до висока ефективност и висока производителност на процесора. Буферите за преименуване на регистъра на 604, буферните станции за резервиране, динамичното условно предсказване на посоката на разклоняване и устройствата за завършване на инструкции значително увеличават пропускателната способност на системата, осигуряват завършване на инструкциите в реда, предписан от програмата, и осигуряват прецизен модел на прекъсване.

Процесорът 604 има отделни устройства за управление на паметта и отделни 16 KB вътрешни инструкции и кешове за данни. Той реализира два буфера за конвертиране на виртуални адреси във физически TLB (отделно за команди и за данни), всеки от които съдържа 128 реда. И двата буфера са двуканални набор-асоциативни и предоставят страници с виртуална памет с променлив размер. Кешът и TLB буферите използват алгоритъма LRU за замяна на блокове.

Процесорът 604 има 64-битова външна шина за данни и 32-битова адресна шина. Протоколът за интерфейс на процесора 604 позволява на множество главни главни шини да се конкурират за системни ресурси в присъствието на централизиран външен арбитър. В допълнение, логиката за наблюдение на вътрешната шина поддържа кохерентността на кеша в многопроцесорни конфигурации. Процесорът 604 осигурява както единични, така и групови трансфери на данни при достъп до основната памет.

PowerPC 620

До края на 1995 г. се очаква да се появи нов процесор PowerPC 620. За разлика от своите предшественици, той ще бъде напълно 64-битов процесор. Когато работи на тактова честота от 133 MHz, неговата производителност е оценена на 225 SPECint92 единици и 300 SPECfp92 единици, което е съответно с 40 и 100% повече от процесора PowerPC 604.

Подобно на други 64-битови процесори, PowerPC 620 съдържа 64-битови регистри с общо предназначение и с плаваща запетая и осигурява 64-битови виртуални адреси. В същото време се запазва съвместимостта с 32-битовия режим на работа, внедрен в други модели от семейството PowerPC.

Процесорът има кеш за данни и инструкции с общ капацитет 64 KB, интерфейсни схеми за управление на кеша от второ ниво, 128-битова шина за данни между процесора и основната памет, както и логически схеми за поддържане на кохерентно състояние на паметта при организиране на многопроцесорна система.

Процесорът PowerPC 620 е насочен към пазара на високопроизводителни работни станции и сървъри.