Кіріспе

Микропроцессорлық чипсет
R8000 – MIPS Technologies, Inc. (MTI), Toshiba және Weitek компанияларымен әзірленген микропроцессорлық чипсет. Бұл MIPS IV командалар жиынтығы архитектурасының алғашқы іске асырылуы болды. R8000 даму кезіндегі атауы болған «Tremendous Floating Point» (ТФП) деген атпен де белгілі.

Тарих

R8000-ді әзірлеу 1990 жылдардың басында Silicon Graphics, Inc. (SGI) компаниясында басталды. R8000 арнайы 1990 жылдардағы суперкомпьютерлердің өнімділігін қамтамасыз ету үшін жасалған, ол орталық процессордың (CPU) орнына, қақпалық тізбектер сияқты көптеген жеке компоненттерден құралған емес, микропроцессор негізінде құрылған. Ол кезде дәстүрлі суперкомпьютерлердің өнімділігі, қысқартылған нұсқаулар жиынтығы (RISC) микропроцессорлары сияқты қарқынды дамымады. RISC микропроцессорларының ақырында қымбат және үлкен суперкомпьютерлердің өнімділігімен салыстырылатыны, сонымен қатар құны мен көлемі жағынан арзан болатыны болжалды. Бұл деңгейдегі өнімділікке ие компьютерлерді қолжетімді ететін, үстел үстіндегі жұмыс станциялары мен серверлердің көптеген жағдайларда суперкомпьютерлерді алмастыруына мүмкіндік беретін еді. R8000 туралы алғашқы мәліметтер 1992 жылдың сәуірінде MIPS Computer Systems компаниясының болашақ MIPS микропроцессорларын жариялауында пайда болды. 1992 жылдың наурызында SGI, MIPS Computer Systems компаниясын сатып алатынын хабарлады, ол 1992 жылдың ортасында MIPS Technologies, Inc. (MTI) деп аталатын SGI-нің еншілес компаниясына айналды. R8000-ді әзірлеу MTI-ге берілді, онда жұмыс жалғасты. R8000 1993 жылы шығарылуы тиіс еді, бірақ ол 1994 жылдың ортасына дейін кейінге шегерілді. 75 МГц жиілікті алғашқы R8000 1994 жылдың 7 маусымында таныстырылды. Оның құны сол кезде 2500 АҚШ доллары болды. 1995 жылдың ортасында 90 МГц жиілікті модель SGI жүйелерінде пайда болды. R8000-нің жоғары құны және тар нарығы (техникалық және ғылыми есептеулер) оның нарықтық үлесін шектеді. Ол мақсатты нарығында танымал болғанымен, 1996 жылдың қаңтарында ұсынылған, арзан әрі жалпы алғанда жақсы өнімділігі бар R10000 микропроцессорымен ауыстырылды. R8000 пайдаланушыларының қатарында SGI компаниясы болды, ол оны Power Indigo2 жұмыс станциясында, Power Challenge серверінде, Power ChallengeArray кластерінде және Power Onyx визуализациялық жүйесінде қолданды. 1994 жылдың қараша айындағы TOP500 тізімінде 500 жүйенің 50-сі R8000-ді пайдаланды. R8000 негізіндегі ең жоғары рейтингті жүйелер 154-157 орындардағы төрт Power Challenge болды. Әрқайсысында 18 R8000 процессоры орнатылған. SGI секундтық 300 миллион нұсқаулық операцияны орындай алатынын, 310 SPECfp92 көрсеткішіне және 108 SPECint92 көрсеткішіне ие екенін мәлімдеді.

Сипаттама

Чип жиынтығы R8000 микропроцессорынан, R8010 қозғалатын нүктелі процессорынан, екі Tag RAM-нан және ағынды кэштен құралды. R8000 суперскалярлы, бір цикл ішінде төртке дейін нұсқау шығара алады және нұсқауларды бағдарламалық ретпен орындайды. Онда бес кезеңді бүтін сандық конвейер бар.

R8000

R8000 чипсетті басқарып, бүтін сандық нұсқауларды орындады. Ол бүтін сандық орындау бірліктерін, бүтін сандық регистрлік файлды, негізгі кэштерді, нұсқауларды алуға арналған аппараттық құралдарды, тармақтарды болжау және аудармалық көзбен іздеу буферлерін (TLB) қамтиды. Бірінші кезеңде нұсқаулық кэштен төрт нұсқау алынады. Нұсқаулық кэші 16 кБ көлемде, тікелей бейнеленген, виртуалды таңбаланған және виртуалды индекстелген, ал сызық өлшемі 32 байтты құрайды. Нұсқауларды декодтау және регистрлерді оқу екінші кезеңде жүзеге асырылады, сонымен қатар тармақ нұсқаулары шешіледі, бұл бір циклдық тармақ болжау қатесіне әкеледі. Деректерді жүктеу және сақтау нұсқаулары үшінші кезеңде, ал бүтін сандық нұсқаулар төртінші кезеңде орындала бастайды. Бүтін сандық орындау төртінші кезеңге дейін кешіктірілді, сондықтан жүктеу нәтижесін операнд ретінде пайдаланатын бүтін сандық нұсқаулар жүктеуден кейінгі циклде шығарылуы мүмкін. Нәтижелер бесінші кезеңде бүтін сандық регистрлік файлға жазылады. Бүтін сандық регистрлік файлда тоғыз оқу порты және төрт жазу порты бар. Төрт оқу порты екі бүтін сандық орындау бірлігіне операндар жеткізеді (ағаш түйіні бүтін сандық бірліктің бөлігі саналады). Тағы төрт оқу порты екі адрес генераторына операндармен қамтамасыз етеді. MIPS IV ISA-да қосылған негіз (регистр) + индекс (регистр) адрестеу стиліне байланысты екі емес, төрт порт қажет. R8000 цикл сайын ең көп дегенде бір бүтін сандық дерек сақтау операциясын орындайды, ал бір соңғы оқу порты бүтін сандық дерек сақтау деректерін жеткізеді. Екі бүтін сандық функционалдық бірліктен алынған нәтижелерді жазу үшін екі регистрлік файл жазу порты қолданылады. R8000 цикл сайын екі бүтін сандық дерек жүктеу операциясын орындайды, ал қалған екі жазу порты бүтін сандық дерек жүктеу нәтижелерін регистрлік файлға жазу үшін қолданылады. 1-деңгейлі дерек кэші екі үстелген массив ретінде ұйымдастырылған, олардың әрқайсысында бір оқу порты және бір жазу порты бар. Бүтін сандық деректер екі массивке де жазылады. Екі дерек жүктеу операциясы параллель түрде өңделуі мүмкін, әрқайсысы әр массивте. Бүтін сандық функционалдық бірліктер екі бүтін сандық бірліктен, ауыстыру бірлігінен, көбейту-бөлу бірлігінен және екі адрес генератор бірлігінен тұрады. Көбейту және бөлу нұсқаулары көбейту-бөлу бірлігінде орындалады, ол конвейерленбеген. Нәтижесінде, көбейту нұсқауларын орындау үшін 32 биттік операндарға 4 цикл, ал 64 биттік операндарға 6 цикл қажет. Бөлу нұсқауларын орындау үшін кеткен уақыт нәтижедегі маңызды цифрлар санына байланысты, сондықтан ол 21-ден 73 циклға дейін өзгереді.

Жүк және қоймалар

Жүктеулер мен сақтаулар үшінші кезеңде орындала бастайды. R8000 процесорында жүктеулер мен сақтаулар үшін виртуалды адресті есептейтін екі адрес генерациялау блогы (AGU) бар. Төртінші кезеңде виртуалды мекенжайлар 384 жазбадан тұратын және үш жолды ассоциативті TLB арқылы физикалық мекенжайларға түрлендіріледі. 16 кБ дерек кэші сол циклде қол жеткізіледі. Ол екі портты және екі 64 биттік шина арқылы қол жетімді. Ол цикл ішінде екі жүктеуді немесе бір жүктеу мен бір сақтауды қамтамасыз ете алады. Кэштің сақтығын қамтамасыз ету үшін паритет немесе қателерді түзету коды (ECC) қолданылмайды. Кэштен қате туған жағдайда, деректер сегіз циклдік кешігумен ағын кэштен жүктелуі керек. Кэш виртуалды түрде индекстелген, физикалық түрде таңбаланған, тікелей бейнеленген, 32 байттық жол өлшеміне ие және бөлу протоколымен жазуды қолданады. Егер жүктеулер дерек кэшінде орын алса, нәтиже бесінші кезеңде бүтін сандық регистрлік файлға жазылады.

R8010

R8010, R8000-дегі нұсқаулар тізбегі арқылы ұсынылған қозғалатын нүктелік нұсқауларды орындады. Тізбек қозғалатын нүктелік құбыржолды бүтін сандық құбыржолдан бөліп, бір топтағы бүтін сандық нұсқаулар берілгеннен кейін немесе бұрын, мүмкіндігі болған жағдайда қозғалатын нүктелік нұсқауларды орындауға рұқсат беру арқылы реттіліксіз орындаудың шектеулі түрін жүзеге асырды. Құбыржолдар ағынды кэштің кешігуін азайту үшін бөлінді. Онда қозғалатын нүктелік тізім, жүктеу тізбегі, сақтау тізбегі және екі бірдей қозғалатын нүктелік блоктар бар. Бөлу және квадрат түбірді есептеуден басқа барлық нұсқаулар құбыржолда өңделеді. R8010 көбейтуді негізгі бөлігі ретінде пайдаланатын итеративті бөлу және квадрат түбір алгоритмін іске асырады, бұл құбыржолды операцияның барлық уақытында тоқтатуды талап етеді. Салыстырудан басқа арифметикалық нұсқаулардың төрт циклдық кешігуі бар. Бір және екі дәлдіктегі бөлулердің кешігуі сәйкесінше 14 және 20 циклды құрайды.

Ағызатын кэш және тегтер RAM-ы

Ағызатын кэш – R8000 процессордың L2 біріктірілген кэші және R8010 процессордың L1 дерек кэші ретінде қызмет ететін 1-ден 16 МБ-ға дейінгі сыртқы кэш. Ол R8000 процессормен бірдей такталық жиілікте жұмыс істейді және жалпы қолданыстағы синхронды статикалық жад чиптерінен (RAM) құралған. Әрбір жад блогына екі 64 биттік бір бағытты шина арқылы қол жеткізіледі, біреуі деректерді оқуға, екіншісі жазуға арналған. Бұл схема екі бағытты шиналарға тән шинаны ауыстыру қажеттілігін болдырмау үшін қолданылды. Шинаны ауыстыруды болдырмау арқасында кэш бір циклде оқылып, келесі циклде жазылуы мүмкін, шинаны ауыстыруға қосымша цикл қажет болмайды, бұл өнімділікті арттырады. Кэш тегтерін ұсынудан басқа, тег жадтары (Tag RAM) ағызатын кэштің төрт жолды ассоциативті болуын қамтамасыз етеді. Сыртқы қосылымдардың (pin) санының көп болуын болдырмау үшін кэш тегтері төрт жолды ассоциативті жиынтық ретінде жұмыс істейді және іздеу нәтижесінен кейін қай жиынтыққа қол жеткізу керектігін логикалық схема анықтайды, бұл әдеттегі ассоциативті кэштерді іске асыру тәсілінен өзгеше. Ағызатын кэшке қол жеткізу кешігуді азайту үшін конвейерлік (pipeline) принцип бойынша жүзеге асырылады. Конвейерде бес кезең бар: бірінші кезеңде адрестер тег жадтарына (Tag RAM) жіберіледі, олар екінші кезеңде оқылады. Үшінші кезеңде тег жадтарынан сигналдар SSRAM жадтарына таратылады. Төртінші кезеңде SSRAM жадтарына қол жеткізіледі және деректер бесінші кезеңде R8000 немесе R8010 процессорларына қайтарылады.

Физикалық

R8000 құрамында 2,6 миллион транзистор бар және өлшемі 17,34 мм х 17,30 мм (299,98 мм2) құрады. R8010 құрамында 830 000 транзистор болды. Барлығы екі микросхемада 3,43 миллион транзистор қамтылған. Екеуі де Toshiba компаниясының VHMOSIII процесінде, 0,7 мкм үш қабатты металл тотықты толықтырғыш металл-жартылай өткізгіш (CMOS) технологиясымен жасалған. Екеуі де 591 контактілі керамикалық торлы массив (CPGA) корпусында жеткізілді. Екі чип те 3,3 В қуат көзімен жұмыс істеді, ал R8000 75 МГц жиілікте 13 Вт қуатты тұтынды.