Кіріспе
MIPS микропроцессоры
R4000 – MIPS Computer Systems компаниясы жасаған, MIPS III нұсқаулар жиынтығы архитектурасын (ISA) іске асыратын микропроцессор. 1991 жылдың 1 қазанында ресми түрде жарияланған бұл микропроцессор, алғашқы 64 биттік микропроцессорлардың бірі және MIPS III архитектурасының алғашқы іске асырылуы болды. 1990 жылдардың басында RISC микропроцессорлары Intel i486 сияқты CISC микропроцессорларын ығыстыру күтілген кезде, R4000 ортақ RISC платформасын құруға бағытталған Advanced Computing Environment (ACE) өнеркәсіптік стандартының микропроцессоры ретінде таңдалды. ACE бірқатар себептерге байланысты сәтсіз аяқталды, бірақ R4000 жұмыс станциялары және серверлер нарығында сәттілікке жетті.
Модельдер
R4000 үш конфигурацияда келеді: R4000PC, екінші жады қолдауы жоқ бастапқы деңгейдегі модель; R4000SC, екінші жадысы бар, бірақ көппроцессорлық мүмкіндігі жоқ модель; және R4000MC, екінші жадысы бар және көппроцессорлық жүйелерге қажетті кэштік сәйкестік протоколдарын қолдайтын модель.
Сипаттама
R4000 – сегіз сатылы бүтін сандық құбырлы желісі бар скалярлық суперқұбырлы микропроцессор. Бірінші кезеңде (IF) нұсқаудың виртуалды мекенжайы жасалады және нұсқау аудармасының кеші (TLB) мекенжайды физикалық мекенжайға аударуды бастайды. Екінші кезеңде (IS) аударма аяқталады және нұсқау 8 КБ ішкі нұсқау кешінен алынады. Нұсқау кеші тікелей бейнеленген, виртуалды түрде индекстелген және физикалық түрде таңбаланған. Оның 16 немесе 32 байттық сызық өлшемі бар. Архитектуралық тұрғыдан алғанда, оны 32 КБ-қа дейін кеңейтуге болады. Үшінші кезеңде (RF) нұсқау декодталады және регистрлік файл оқылады. MIPS III екі регистрлік файлды анықтайды: біреуі бүтін сан блогы үшін, екіншісі – қозғалатын нүкте блогы үшін. Әрбір регистрлік файл 64 бит енімен және 32 жазбадан тұрады. Бүтін сандық регистрлік файлда екі оқу порты және бір жазу порты бар, ал қозғалатын нүктелік регистрлік файлда екі оқу порты және екі жазу порты бар. Орындау төртінші кезеңде (EX) бүтін сандық және қозғалатын нүктелік нұсқаулар үшін басталады және аяқталғаннан кейін сегізінші кезеңде (WB) регистрлік файлдарға қайта жазылады. Нәтижелер мүмкін болса, тікелей беріле алады.
Бүкіл санды орындау
R4000 арифметикалық-логикалық құрылғыға (ALU), ауыстырғышқа, көбейтушіге және бөлушіге, сондай-ақ бүтін сандық нұсқауларды орындау үшін жүктеу сәйкестендіргішке ие. АЛБ 64 биттік тасымалдау таңдау қосылғысынан және логикалық құрылғыдан тұрады және конвейерленген. Ауыстырғыш – 32 биттік барабан ауыстырғыш. Ол 64 биттік ауысуды екі циклде орындайды, нәтижесінде конвейер тоқтатылады. Бұл конструкция кристалдық чиптің ауданын үнемдеу үшін таңдалды. Көбейтуші мен бөлуші конвейерленбеген және айтарлықтай кешігуге ие: көбейту 32 биттік немесе 64 биттік бүтін сандар үшін тиісінше 10 немесе 20 циклдік кешігуді құрайды, ал бөлу 32 биттік немесе 64 биттік бүтін сандар үшін тиісінше 69 немесе 133 циклдік кешігуді құрайды. Көптеген нұсқаулардың кешігуі бір циклді құрайды. АЛБ қосылғысы жүктеу, сақтау және тармақталу үшін виртуалды мекенжайларды есептеу үшін де қолданылады. Жүктеу және сақтау нұсқаулары бүтін сандық конвейер арқылы орындалады және чиптегі 8 КБ дерек кэшіне қол жеткізеді.
Жылжымалы нүктемен орындау
R4000 процесорында IEEE 754 1985 стандартына сәйкес келетін, R4010 деп аталатын жылжымалы нүктелі құрылғы (FPU) бар. FPU – CP1 деп белгіленген копроцессор (MIPS ISA CP0-ден CP3-ге дейін төрт копроцессорды анықтайды). FPU екі режимде жұмыс істей алады: 32 немесе 64 биттік, олар CPU күй тізіліміндегі FR битін орнату арқылы таңдалады. 32 биттік режимде 32 жылжымалы нүктелік тізілім, бірлік дәлдіктегі жылжымалы нүктелік сандарды сақтағанда 32 бит еніне ие болады. Екі есе дәлдіктегі сандарды сақтағанда 16 жылжымалы нүктелік тізілім қолданылады (тізілімдер жұптастырылған). FPU деректерге немесе ресурстарға тәуелділік болмаса, ALU-мен параллель жұмыс істей алады, әйтпесе тоқтап қалады. Ол үш кіші құрылымды қамтиды: қосушы, көбейтуші және бөлуші. Көбейтуші мен бөлуші нұсқауды қосушымен бірге орындай алады, бірақ олар орындаудың соңғы кезеңдерінде қосушыны пайдаланады, осылайша параллель орындалуға шектеу қояды. Сондықтан, белгілі бір жағдайларда, ол әрбір құрылымда бір нұсқаудан, жалпы үш нұсқауды бір уақытта орындай алады. FPU бір цикл ішінде бір нұсқауды аяқтай алады. Қосушы және көбейтуші конвейерленген. Көбейтушіде төрт сатылы конвейер бар. Ол микропроцессордың сағат жиілігінен екі есе жоғары жиілікте жұмыс істейді, жеткілікті өнімділік үшін және жоғары сағат жиілігіне қол жеткізу үшін динамикалық логиканы қолданады. Бөлудің бірлік немесе екілік дәлдіктегі операциялары үшін 23 немесе 36 циклдік кешігу уақыты бар, ал квадрат түбірді есептеу үшін 54 немесе 112 циклдік кешігу уақыты бар. Бөлу және квадрат түбірді есептеу үшін SRT алгоритмі қолданылады.
Жадты басқару
Жад басқару блогы (MMU) виртуалды мекенжайларды аудару үшін 48 жазбалы кеш буферін пайдаланады. R4000 64 биттік виртуалды мекенжайды қолданады, бірақ 64 биттің 40-ы ғана іске асырылған, бұл 1 ТБ виртуалды жадты қамтамасыз етеді; қалған биттер нөлдерден тұратыны тексеріледі. R4000 36 биттік физикалық мекенжайды қолданады, осылайша 64 ГБ физикалық жадты қолдануға болады.
Екінші реттік кэш
R4000 (тек SC және MC конфигурациялары) 128 КБ-тан 4 МБ-қа дейінгі сыйымдылығы бар сыртқы екінші кэшті қолдайды. Кэшке арналған 128 биттік жеке деректер шинасы арқылы қол жеткізіледі. Екінші кэш бірыңғай кэш ретінде немесе бөлінген нұсқаулар және деректер кэші ретінде конфигурациялануы мүмкін. Егер соңғысы таңдалса, әр кэштің сыйымдылығы 128 КБ-тан 2 МБ-қа дейін болуы мүмкін. Екінші кэш физикалық түрде индекстеледі, физикалық түрде таңбаланады және 128, 256, 512 немесе 1024 байттық бағдарламаланатын жол өлшеміне ие. Кэш контроллері микросхемада орналасқан. Кэш стандартты статикалық кездейсоқ сәйкес жадтан (SRAM) құрастырылған. Деректер және таңбалау шиналары ECC арқылы қорғалған.
Жүйелік шина
R4000 SysAD деп аталатын 64 биттік жүйелік шинаны пайдаланады. SysAD шинасы – деректер мен адрестерді бірнеше есе жіберуге арналған шина, яғни деректерді және адрестерді беру үшін сымдардың бір жиынтығы қолданылды. Бұл өткізу қабілетін төмендетсе де, жеке адрестік шинаны қолдануға қарағанда арзан, себебі оған көбірек қосылымдар (пиндер) қажет болады және жүйенің күрделілігі артады. SysAD шинасын ішкі сағат жиілігінің жартысы, үштен бірі немесе төрттен бірінде жұмыс істеуге конфигурациялауға болады. SysAD шинасы өзінің сағаттық сигналын жұмыс жиілігін бөлу арқылы жасайды.
Транзисторлар саны, өлшемі және процесінің егжей-тегжейі
R4000 процесоры 1,2 миллион транзистордан тұрады. Ол 1.0 мкм екі қабатты металл тотықты толықтыратын металл-оксидті жартылай өткізгіш (CMOS) технологиясы бойынша жобаланған. MIPS өндіріс қуатына ие емес болғандықтан, R4000 серіктес компаниялардың өз процестерінде өндірілді, олардың ең кіші элементінің мөлшері 0,8 мкм құрады.
Сағаттауыш
R4000 әр түрлі сағат сигналдарын сырттан түсетін негізгі сағат сигналынан жасап шығарады. Жұмыс жиілігі үшін R4000 негізгі сағат сигналын чиптегі фазалық құлыпталған генератор (PLL) арқылы екі есеге көбейтеді.
Қаптама
R4000PC 179 контактілі керамикалық пернелік тор массивінде (CPGA) орналастырылған. R4000SC және R4000MC 447 контактілі керамикалық қадамды пернелік тор массивінде (SPGA) орналастырылған. R4000MC-нің қосылымдары R4000SC-ден өзгеше, R4000SC-де қолданылмаған кейбір қосылымдар R4000MC-де кэш-сәйкестікті іске асыру үшін сигналдар ретінде пайдаланылады. R4000PC-нің қосылымдары PGA корпусындағы R4200 және R4600 микропроцессорларының қосылымдарына ұқсас. Бұл ерекшелік дұрыс жобаланған жүйенің үш микропроцессордың кез келгенін қолдануға мүмкіндік береді.
R4400 - Өмір сүру
R4400 – R4000-нің одан әрі жетілдірілген нұсқасы болып табылады. Ол 1992 жылдың қараша айының басында жарияланды. Микропроцессордың үлгілері таңдалған клиенттерге одан бұрын жіберілді, ал 1993 жылдың қаңтарында жалпы қолжетімділікке ұсынылды. R4400, 100, 133, 150, 200 және 250 МГц сағат жиіліктерінде жұмыс істейді. R4000-нен басты айырмашылығы – үлкен негізгі кэш жады, оның сыйымдылығы 8 КБ-тан 16 КБ-қа екі есеге артты. Ол 2,3 миллион транзистордан тұрады. R4400 лицензиясы Integrated Device Technology (IDT), LSI Logic, NEC, Performance Semiconductor, Siemens AG және Toshiba компанияларына берілді. IDT, NEC, Siemens және Toshiba микропроцессорды өндіріп, сатуға шығарды. LSI Logic R4400-ді арнайы өнімдерде пайдаланды. Performance Semiconductor өзінің логикалық бөлімін Cypress Semiconductor компаниясына сатты, онда MIPS микропроцессор өнімдері тоқтатылды. NEC өз нұсқасын VR4400 деп сатты. 150 МГц үлгісі 1992 жылдың қараша айында жарияланды. Алғашқы үлгілер 0,6 мкм технологиясымен жасалды. 1995 жылдың ортасында 250 МГц үлгісі сынақтан өтуге түсті. Ол 0,35 мкм төрт қабатты металл технологиясымен өндірілді. NEC сондай-ақ MR4401 – керамикалық көп чипті модульді (MCM) жасады, оның құрамында 1 МБ екінші жадыны іске асыратын он 1 Мбит SRAM чипі бар VR4400SC болды. MCM, R4x00PC-мен толық үйлесімді болды. Бірінші үлгі, 150 МГц үлгісі 1994 жылы жарияланды. 1995 жылы 200 МГц үлгісі жарияланды. Toshiba өз нұсқасын TC86R4400 деп сатты. 0,3 мкм технологиясымен жасалған, 134 мм² көлемді және 2,3 миллион транзистордан тұратын 200 МГц үлгісі 1994 жылдың ортасында ұсынылды. R4400PC бағасы – , R4400SC бағасы – , ал R4400MC бағасы – 10 000 дана санын құрайды.
Чипсеттер
R4000 және R4400 микропроцессорлары жүйеге арнайы ASIC-тер немесе саудада қолжетімді чипсеттер арқылы қосылды. SGI сияқты жүйе өндірушілер өз жүйелері үшін жеке ASIC-терді әзірледі. Toshiba сияқты компаниялар i486 үйлесімді шинасын қамтамасыз ететін Tiger Shark чипсеттері сияқты коммерциялық чипсеттерді жасап, өндіріп, сатуға шығарды.