Кіріспе

RISC микропроцессорлар мен микроконтроллерлер отбасы

AMD Am29000, көбінесе 29k деп қысқартылатын, Advanced Micro Devices (AMD) компаниясымен әзірленген және өндірілген 32 биттік RISC микропроцессорлар мен микроконтроллерлер отбасы. Беркли RISC негізінде құрылған 29k бірқатар маңызды жақсартуларды қосты. Бір кезде олар нарықтағы ең танымал RISC чиптері болды және әртүрлі өндірушілердің лазерлік принтерлерінде кеңінен қолданылды. 1984–1985 жылдар аралығында әзірленген, 1987 жылдың наурыз айында жарияланған және 1988 жылдың мамыр айында шығарылған бастапқы Am29000 бірнеше нұсқалармен толықтырылды, соңғысы 1995 жылы Am29040 болды. 29050 моделі цикл ішінде бір көбейту-қосу операциясын орындай алатын қозғалатын нүктелік процессорды алғаш рет енгізгенімен ерекшеленді. AMD 1995 жылдың соңына дейін суперскалярлық нұсқаны жобалап жатты, бірақ 29k-нің дамуын тоқтатты, себебі дизайн тобы бизнестің PC (x86) бөлімін қолдауға ауыстырылды. AMD-нің қалған кіріктірілген бизнесі 80186 негізіндегі кіріктірілген 186 отбасына қайта бағытталды. Ол кезде AMD-нің көп бөлігі ресурстары үстелдік компьютерлерге арналған жоғары өнімділіктегі x86 процессорларына шоғырландырылды, ал AMD K5 жасау үшін 29k жобаларының көптеген идеялары мен бөліктері пайдаланылды.

Дизайн

29k сол Беркли RISC дизайнынан дамыды, ол Sun SPARC, Intel i960, ARM және RISC V-ге әкелді.

Беркли RISC-ден алынған кейбір дизайндарда қолданылатын дизайн элементтерінің бірі – тіркелім терезелері, процедураларды шақыруды айтарлықтай жылдамдатуға арналған әдіс. Идея – үлкен тізілімдер жиынтығын стек ретінде пайдалану, шақыру кезінде жергілікті деректерді тізілімдер жиынтығына жүктеу және процедура қайта оралған кезде оларды "бос" деп белгілеу. Процедурадан қайтарылатын мәндер "жалпы бетке", яғни SPARC-тағы ең жоғары сегіз тіркелімге (мысалы) орналастырылады. Стенфорд университетінің бәсекелес ерте RISC дизайны, Стенфорд MIPS, сонымен қатар осы тұжырымдаманы қарастырды, бірақ жетілдірілген компиляторлар жалпы мақсаттағы регистрлерді қатты сыммен жабылған терезеден гөрі тиімдірек пайдалана алады деп шешті. Берклидің бастапқы дизайнында, SPARC және i960 терезелердің мөлшері белгілі болды. Тек бір жергілікті айнымалыны пайдаланатын процедура SPARC-те сегіз тіркелімді пайдаланып, бұл қымбат ресурсты ысырап етеді. 29000 осы ертедегі жобалардан айырмашылығы – терезе мөлшері өзгергіш болды. Бұл мысалда тек екі тіркелім қолданылады, біреуі жергілікті айнымалыға, екіншісі қайтару мекенжайына арналған. Сонымен қатар, ол қосымша тіркелімдерді қосты, оның ішінде процедуралық стек үшін сол 128 тіркелім, бірақ жаһандық қол жеткізу үшін тағы 64 тіркелім. Салыстырмалы түрде, SPARC-те барлығы 128 тіркелім бар, ал жалпы жиынтық сегізден тұратын стандартты терезе болды. Бұл өзгеріс 29000-де жұмыс жүктемелерінің кең спектрі бойынша тіркелімдерді пайдалануды әлдеқайда жақсартты. 29000 сонымен қатар тіркелім терезесі стегін жадыда (және теорияда кэште) стекпен кеңейтті. Терезесі толғанда, шақырулар тіркелім стегінің соңынан жадқа шығарылады, ал процедура қайтып келгенде қажет болған жағдайда қалпына келтіріледі. Жалпы, 29000-нің тіркелімді пайдалануы Беркли тұжырымдамаларына негізделген бәсекелестік жобаларға қарағанда әлдеқайда озық болды. Беркли дизайнымен тағы бір айырмашылық – 29000 арнайы мақсаттағы жағдай кодтарының тізілімін қамтымайды. Бұл мақсатта кез келген тіркелімді пайдалануға болады, бұл кейбір кодты күрделендіру есебінен шарттарды оңай сақтауға мүмкіндік береді. Бранч-мақсат кэшінде (29000-де 512 байт және 29050-де 1024 байт) тармақ-мақсат мекенжайында табылған 4 немесе 2 реттік нұсқаулардың жиынтығы сақталады, бұл алынған тармақтар кезінде нұсқауды алудың кідірісін азайтады. 29000-де тармақты болжау жүйесі қамтылмаған, сондықтан тармақ алынса, кешіктіру болды. Бұл 29000-нің бір тармақты кідіртуі бар деген сөз. Буфер бұны филиалдың мақсатты мекенжайынан төрт немесе екі нұсқауды сақтау арқылы жеңілдетті, оларды дереу орындау мүмкін, ал алу буфері жадыдан жаңа нұсқаулармен толтырылды. Виртуалды мекенжай аудармасын қолдау MIPS архитектурасына ұқсас тәсілмен жасалды. 64 жазулы аудармалық қарау буфері (TLB) виртуалды мекенжайлардан физикалық мекенжайларға сәйкестендіруді сақтады, ал аудармаланбаған мекенжай кездескен кезде, нәтижесінде TLB "жетіспеуі" процессордың физикалық жадыға кез-келген тиісті сәйкестендіруді қамтамасыз ету үшін жауапты бағдарламалық процедураға тұтқындалуына әкеледі. MIPS-тен айырмашылығы, TLB-нің жетіспеуі кезінде ауыстырылатын TLB жазуын таңдауға кездейсоқ тіркелімді қолданған, 29000 арнайы lru (ең аз пайдаланылған) тіркелімін ұсынды. 29000-ғауылдағы кейбір өнімдер тек 16 TLB-ны ғана ұсынды, осылайша кремнийдің бір бөлігін шеткі құрылғыларға арнауға мүмкіндік алды. Компенсация ретінде карталау үшін қолданылатын ең үлкен беттің көлемі 8 КБ-дан 16 МБ-ға дейін ұлғайтылды.

Нұсқалар

Алғашқы Am29000 1988 жылы шығарылды, құрамында салынған MMU болды, бірақ қозғалатын нүктелік операциялар Am29027 FPU-ға жүктелді. MMU немесе Branch Target Cache жұмыс істемеген құрылғылар Am29005 ретінде сатылды. 1991 жылы өнімдік қатар Am29030 және Am29035 процессорларымен кеңейтілді, олар тиісінше 8 КБ немесе 4 КБ нұсқаулар кэшін қамтыды. Сол кезде Am29050 да қолжетімді болды, чипте кэшсіз, бірақ толық конвейерленген көбейту-қосу операцияларымен, 80% дейін жететін 1 КБ үлкен Branch Target Cache және физикалық мекенжай кэші сияқты 4 жазбалық TLB арқылы жылдамдатылған конвейерленген жүктеме операцияларымен жабдықталды. Бұл суперскалярлық процессор болмаса да, бір цикл ішінде қозғалатын нүктелік және бүтін сан операциясын аяқтауға мүмкіндік берді. Бүтін сан және қозғалатын нүктелік бөлімдерінің әрқайсысы регистрлерге жеке жазу портына ие болды. Ол 1 микрондық технологиямен жасалған 428 000 транзисторды қамтыды, ал тиімді арна ұзындығы 0,8 микронды құрады. 119 мм² Am29040 0,7 микрондық технологиямен жасалған 1,2 миллион транзисторды қамтыды. 29K-ның суперскалярлық нұсқасы жобаланып жатты, бірақ x86 процессорларының пайдасына тоқтатылды. Ол Jaguar кодовый атымен белгіленді, төрт бағытты алты резервтік станцияға жіберуге және нұсқауларды реттілігінен тыс орындауға, содан кейін төрт бағытты зейнеткерлікке шығаруға қабілетті озық дизайн болды. Регистрлік файл бір уақытта төрт оқу және екі жазу операциясын жүргізуге мүмкіндік берді. Нұсқаулар мен деректер кэштерінің көлемі 8 КБ-қа тең болды. Кэштен жүктеу операциялары жадтан жазу операцияларын айналып өтуге мүмкіндік берді. Құны мен нарықтық сегментіне байланысты, чипте FPU болған жоқ. 0,4 микрондық технологиямен 100 МГц жиілікке жету күтілді. AMD x86 үйлесімді K5 процессорлар сериясын жасау үшін шығарылмаған 29K микроархитектурасын пайдаланды. Арифметикалық құрылғылар (ALU) және қайта тапсыру буфері сәл өзгертілген күйінде қолданылды. FPU 29050 процессорынан алынған, бірақ 80 биттік дәлдікке дейін кеңейтілді. K5 нұсқауларын декодтау кезінде x86 нұсқауларын "RISC OPs" форматына аударды, бұл кэштелген нұсқаулардың алдын ала декодталған ақпаратымен жеңілдетілді. AMD суперскалярлық 29K процессорлары K5-ке қарағанда сәл нашар өнімділік көрсетсе де, мөлшерінің айырмасынан қанағаттанарлық бағаға ие болады деп мәлімдеді. 29000 процессорларының жад архитектурасы өнімдік дизайнерлер үшін тартымды болды, оларға сыртқы кэш жадынан бас тартуға және жақсы өнімділікті сақтай отырып, динамикалық RAM-ды тікелей пайдалануға мүмкіндік берді. 29k процессорлары есептеу үдеткіші немесе копроцессор ретінде, әсіресе Macintosh және IBM PC үйлесімді платформаларында қолданылды. Мысалы, Yarc Systems Corporation Macintosh II және PC AT жүйелері үшін 29k негізіндегі "RISC копроцессор" карталарын, Motorola 68020 және 68030 процессорлары бар басқа "CISC копроцессор" карталарын және T800 транспаутер процессорлары бар "параллельді копроцессор" карталарын шығарды. Оның NuSuper (алғашқыда McCray деп аталды) және AT Super карталары Am29000 процессорымен және Am29027 қозғалатын нүктелік үдеткішімен жабдықталды. Мұндай үдеткіш карталар Macintosh II-нің өзінен бірнеше есе жоғары өнімділік көрсетті және DECstation 3100 сияқты RISC жұмыс станцияларымен бәсекелестікке ие болды. Бір жүйеге бірнеше картаны орнатуға болады. Алайда, Macintosh II жүйесінің құны осындай картамен бірге Unix-ті қолдайтын RISC жұмыс станцияларының құнына жақындады. AT Super картасының бағасы шамамен 4600 долларға тең болды және Unix-ті қолдайтыны, Intel i860 процессорын қолданатын ұқсас өнімдермен бәсекелесетіні хабарланды. 29k процессорларын пайдаланған танымал өнімдердің бірі Apple-дің Macintosh IIfx үшін жасалған Macintosh Display Card 8·24 GC болды, ол 30 МГц Am29000 процессорымен, 64 КБ статикалық RAM кэшімен және 2 МБ бейне RAM-мен жабдықталды, сонымен қатар QuickDraw графикалық құралдар жиынтығында пайдалану үшін қосымша 2 МБ динамикалық RAM мүмкіндігі де болды. Картаның осы нұсқасында 29k процессорларының болуы Apple сатқан басқа нұсқалардан ерекшеленді және 24 биттік пикселдік кескіндерді өңдеу кезінде өнімділікті айтарлықтай жақсартты.