Uploaded by Багила Алтынова

CISC және RISC процессорларының архитектурасы

advertisement
CISC және RISC процессорларының архитектурасы. CISC
және RISC архитектураларының салыстырмалы талдауы
VLSI технологиясының соңғы жетістіктеріне негізделген суперминкомпьютерлерді жобалау кезінде оған басқа
элементтік негізде жасалған сәтті компьютердің архитектурасын толығымен көшіру мүмкін емес болып шықты.
Кристалл ресурстарындағы техникалық шектеулерге байланысты мұндай тасымалдау өте тиімсіз болады:
аудан, транзисторлар саны, қуаттың шығыны және т.б.
Бұл шектеулерді жою үшін Берклиде (АҚШ, Калифорния) RISC (Шектеулі (қысқартылған) нұсқаулар жинағы
компьютері) архитектурасы (регистрге бағытталған архитектура) әзірленді. Осындай архитектурасы бар
компьютерлерді кейде қысқартылған командалар жинағы деп атайды. Оның мәні кең таралған
операцияларды таңдауда және оларды жылдам орындауға бейімделген архитектураны құруда жатыр. Бұл
шектеулі ресурстар жағдайында өткізу қабілеттілігі жоғары компьютерлерді жасауға мүмкіндік берді
2.1. RISC архитектурасының негізгі принциптері
Компьютерлік индустрия RISC жүйелеріндегі нағыз бумның куәсі болуда. RISC концепциясына негізделген
жұмыс станциялары мен серверлер өздерінің ерекше өнімділігі мен осы платформаларда қолданылатын
UNIX-тәрізді операциялық жүйелердің бірегей қасиеттерінің арқасында көшбасшылыққа ие болды.
80-жылдардың басында Калифорния, Стэнфорд университеттерінде, сондай-ақ IBM зертханаларында
жүргізілген RISC архитектурасы саласындағы теориялық зерттеулер бір уақытта дерлік аяқталды. Профессор
Дэвид Паттерсон мен Карло Секуин басқарған RISC-1 жобасының маңызы ерекше. Олар RISC терминін
енгізді және RISC архитектурасының төрт негізгі қағидасын тұжырымдады:
* әрбір команда, оның түріне қарамастан, бір машиналық циклде орындалады, оның ұзақтығы мүмкіндігінше
қысқа болуы керек;
* барлық командалардың ұзындығы бірдей болуы керек және адрестік форматтардың ең азын пайдалану
керек, бұл процессорды орталық басқару логикасын айтарлықтай жеңілдетеді;
* жадыға қол жеткізу тек жазу және оқу операцияларын орындау кезінде пайда болады, барлық мәліметтерді
өңдеу тек қана процессордың регистрлік құрылымында жүзеге асырылады;
* пәрмен жүйесі жоғары деңгейдегі тілді қолдауды қамтамасыз етуі керек. (Бұл әртүрлі бағдарламалау тілдері
үшін ең тиімді командалар жүйесін таңдауға қатысты.)
Уақыт өте келе бұл принциптердің кейбірінің түсіндірмесі өзгерді. Атап айтқанда, технологияның ұлғайтылған
мүмкіндіктері нұсқаулар құрамының шектелуін айтарлықтай жеңілдетуге мүмкіндік берді: бірінші буын
архитектураларында қолданылатын елу команданың орнына қазіргі заманғы RISC процессорлары 150-ге
жуық нұсқауларды жүзеге асырады. Дегенмен, RISC негізгі заңы мызғымас болды және солай болып қала
береді: деректерді өңдеу тек регистр құрылымы шеңберінде және тек «регистр – регистр – регистр»
командалары форматында жүзеге асырылуы керек.
RISC микропроцессорларында микросхема аймағының маңызды бөлігін мәліметтерді өңдеу жолы алады, ал
оның өте аз бөлігі басқару бөлімі мен дешифраторға бөлінген.
Таңдалған операцияларды аппараттық қамтамасыз ету, әрине, олардың орындалу уақытын қысқартады, бірақ
мұндай іске асырудың критерийі тұтастай алғанда компьютердің жалпы өнімділігін және оның құнын арттыру
болып табылады. Сондықтан архитектураны құрастырған кезде әртүрлі тәсілдер, операциялардың әртүрлі
жиынтықтары арасындағы айырбастау нәтижелерін талдау және олардың негізінде оңтайлы шешімді таңдау
қажет.
RISC архитектурасының дамуы негізінен оңтайландырушы компиляторларды жобалаудағы жетістіктермен
анықталады. Тек заманауи компиляция технологиясы ғана үлкен регистрлік файлды, конвейерлік
ұйымдастыруды және нұсқауларды орындаудың жоғары жылдамдығын тиімді пайдалана алады. RISC
процессорларында жиі қолданылатын компиляция технологиясында оңтайландыру процесінің басқа да
қасиеттері бар: кешіктірілген секірістерді жүзеге асыру және бір уақытта бірнеше нұсқауларды орындауға
жіберуге мүмкіндік беретін суперскалярлық өңдеу.
2.2. RISC – және CISC – архитектураларының ерекше белгілері
Қазіргі есептеулер дәуірінде есептеуіш индустриясы пайдаланатын екі негізгі командалар жинағы
архитектурасы CISC және RISC архитектуралары болып табылады. CISC архитектурасының негізін қалаушы,
Complete Instruction Set Computer (CISC) IBM негізгі архитектурасы бар IBM / 360 деп санауға болады, оның
ядросы 1964 жылдан бері қолданылып келеді және бүгінгі күнге дейін сақталған, мысалы, осындай заманауи
IBM ES / 9000 сияқты негізгі компьютерлер.
X86 және Pentium микропроцессорлары бар Intel толық командалық микропроцессорларды әзірлеуде
көшбасшы болып саналады. Бұл микропроцессорлар нарығы үшін іс жүзінде стандарт.
RISC процессоры архитектурасының қарапайымдылығы оның ықшамдылығын қамтамасыз етеді, CISC
архитектурасының даму жолын табанды түрде ұстанатын Intel процессорларында жоқ кристалды
салқындатумен іс жүзінде ешқандай проблемалар жоқ. CISC архитектурасының стратегиясы деректерді
өңдеудің «ауырлық орталығын» жүйенің бағдарламалық деңгейінен аппараттық деңгейге ауыстырудың
технологиялық мүмкіндігіне байланысты қалыптасты, өйткені CISC компьютері үшін тиімділікті арттырудың
негізгі жолы көрінді, біріншіден. барлығы, компиляторларды жеңілдету және орындалатын модульді азайту.
Бүгінгі күні CISC-процессорлары компьютер нарығында дерлік дербес компьютерлер секторын алады, бірақ
RISC-процессорларының өнімділігі жоғары серверлер мен жұмыс станциялары секторында теңдесі жоқ.
CISC архитектурасының ұқсас мүмкіндіктері бар RISC архитектурасының негізгі мүмкіндіктері келесідей
бейнеленген (2.1-кесте):
2.1-кесте.Сәулет өнерінің негізгі белгілері
CISC архитектурасы
RISC архитектурасы
Бір байт командалары
Көпбайтты командалар
Регистрлердің аз саны
Регистрлердің үлкен саны
Күрделі командалар
Қарапайым командалар
Процессор цикліне бір немесе одан аз
нұсқаулар
Бір процессор цикліндегі бірнеше нұсқаулар
Дәстүрлі түрде бір жетек
Бірнеше басшы
құрылғылар
RISC архитектурасының маңызды артықшылықтарының бірі арифметикалық есептеулердің жоғары
жылдамдығы болып табылады. RISC процессорлары ең көп қолданылатын IEEE 754 стандартының жолағына
бірінші болып жетті, ол 32-биттік тіркелген нүкте пішімін және 64-биттік «толық дәлдік» өзгермелі нүкте пішімін
орнатады. Арифметикалық операцияларды орындаудың жоғары жылдамдығы жоғары есептеу дәлдігімен
үйлесімде RISC процессорларына CISC процессорларымен салыстырғанда өнімділік бойынша сөзсіз
көшбасшылықты қамтамасыз етеді.
RISC процессорларының тағы бір ерекшелігі – арифметикалық құрылғылардың тоқтаусыз жұмысын
қамтамасыз ететін құралдар жиынтығы: динамикалық тармақты болжау механизмі, операциялық
регистрлердің үлкен саны және көп деңгейлі кірістірілген кэш жады.
Тізілім құрылымын ұйымдастыру RISC-тің басты еңбегі және басты мәселесі болып табылады. RISC
архитектурасының кез келген дерлік жүзеге асырылуы үш орындық өңдеу операцияларын пайдаланады, онда
нәтиже және екі операнд өздігінен адрестеледі – R1: = R2, R3. Бұл айтарлықтай уақыт шығынынсыз
адрестелетін операциялық регистрлерден операндтарды таңдауға және регистрге операцияның нәтижесін
жазуға мүмкіндік береді. Сонымен қатар, үштік операциялар компиляторға CISC архитектурасының типтік
регистр-жад қос операцияларына қарағанда көбірек икемділік береді. Жоғары жылдамдықты арифметикамен
үйлескенде RISC регистр-регистр операциялары процессор жұмысын жақсартуда өте күшті.
Сонымен қатар, регистрлерге сүйену RISC архитектурасының Ахиллес өкшесі болып табылады. Мәселе
мынада, тапсырманы орындау процесінде RISC жүйесі арифметикалық блоктың ұзақ тұрып қалуын тудырмау
үшін процессор регистрлерінің мазмұнын қайта-қайта жаңартуға мәжбүр болады және ең аз уақыт көлемінде.
CISC жүйелері үшін бұл мәселе жоқ, өйткені регистрлердің модификациясы жадтан жадқа командаларды
өңдеу кезінде орын алуы мүмкін.
RISC архитектурасында регистрді түрлендіру мәселесін шешудің екі тәсілі бар: RISC-1 және RISC-2
жобаларында ұсынылған аппараттық құрал және IBM және Стэнфорд университетінің мамандары әзірлеген
бағдарламалық қамтамасыз ету. Олардың арасындағы түбегейлі айырмашылық мынада: аппараттық шешім
қосымша процессорлық жабдықты орнату арқылы процедураны шақыру уақытын қысқартуға ұмтылуға
негізделген, ал бағдарламалық шешім компилятордың мүмкіндіктеріне негізделген және процессордың
аппараттық құралдары тұрғысынан үнемді.
2.3. RISC процессорларын енгізудің кейбір тапсырмалары
Бізді негізінен операциялардың оңтайлы жиынтығын таңдау қызықтырады. Оны шешу кезінде біз компьютерге
арналған тапсырмалардың кейбір джентльмендік қоспасы бойынша басқару бағдарламаларының пакетін
таңдай аламыз және оларды орындау үшін профиль жасай аламыз немесе параметрлерді статикалық немесе
динамикалық өлшеу әдісін пайдалана аламыз. бағдарламалардың өздері.
Программаны профильдеу кезінде программаның әрбір операторының (операциясының) орындалуына
жұмсалған жалпы процессорлық уақыттың үлесі анықталады. Алынған нәтижелерді талдау профильді
бағдарламаның сипатты белгілерін ашады.
Статикалық немесе динамикалық өлшемдерде белгілі бір оператордың (операцияның) бағдарламада қанша
рет орын алатыны немесе белгілердің бағдарлама мәтінінде (статика) немесе орындалу нәтижесінде
(динамика) оң немесе теріс мәндерді қаншалықты жиі қабылдайтыны есептеледі. .
Ұсынылған зерттеулер барысында алынған нәтижелердің үйлесімі талданатын бағдарламаның жалпы
көрінісін береді. Міне, компиляторлық бағдарламалар үшін орындалатын статикадағы осындай өлшемдердің
бірінің нәтижелері: тағайындау операторлары – 48%; шартты операторлар – 15; циклдар - 16; қоңырауды
қайтару операторлары – 18; басқа операторлар – 3%.
Динамикадағы бағдарламалар – операциялық жүйелерде қолданылатын үш жүз процедураны өлшеу операнд
түрлерінің келесі өлшемдерін көрсетті: тұрақтылар – 33%; скалярлар - 42; массивтер (құрылымдар) - 20 және
басқалары - 5%.
Бұл жағдайда деректер ағынын басқару командаларының арасындағы статистика келесідей болады.
Бағдарламалардың әртүрлі сынақ пакеттерінде шартты көшу нұсқаулары 66-дан 78% -ға дейін, шартсыз өту
нұсқаулары - 12-ден 18% -ға дейін, орындауға өту жиілігі 10-нан 16% -ға дейін.
Демек, компиляторлық бағдарламаларда тағайындау операторлары негізгі бөлікті алады, ал тұрақты типтегі
операндтар мен жергілікті скалярлар программаны орындау кезінде қол жеткізілетін процедуралардағы
операндтардың негізгі бөлігін құрайды деп қорытынды жасауға болады.
Мұндай сандық және сапалық өлшемдер процессор архитектурасын оңтайландырудың негізін құрайды.
Сонымен, егер тағайындау операторлары барлық операторлардың 48% алып жатса, онда операндқа қол
жеткізу операциясы аппараттық құралда жүзеге асырылуы керек екені анық. Бұл, әсіресе, есептеу
жоспарының операциялары әдетте қарапайым болатын сандық емес есептер кезінде өте маңызды. Шартты
операторларда, цикл және шақыру-қайтару операторларында манипуляциялар операндтар жиынында
орындалады, бұл да операндқа қол жеткізу операциясының аппараттық іске асыру қажеттілігін растайды.
Операндтардың түрлерін талдау кезінде біз үш категорияны ескердік:
* тұрақтылар – программаның орындалу барысында өзгермейді және әдетте шағын мәндерге ие болады;
* скалярлар - оларға сілтеме жасау, әдетте, олардың атымен анық кездеседі. Әдетте олардың саны аз және
олар процедураларда жергілікті деп сипатталады;
* массивтер мен құрылымдардың элементтеріне қол жеткізу индекстер мен көрсеткіштер арқылы, яғни жанама
адрестеу арқылы жүзеге асады. Әдетте бұл элементтердің көпшілігі бар.
Операндқа қол жеткізу үшін алдымен операнд сақталатын ұяшықтың физикалық мекенжайын анықтау керек,
содан кейін операндқа қол жеткізу керек. Егер операнд тұрақты болса, оны пәрменде көрсетуге болады. Оған
сұраныс бойынша бірден қол жеткізуге болады. Басқа жағдайларда бәрі операнд сақталатын жад түріне
байланысты. Тіркеу блоктары мен кэш жады сыйымдылығы, қол жеткізу жылдамдығы және құны бойынша аз
ерекшеленеді, бірақ үстеме шығындарды шешуде айтарлықтай ерекшеленеді. Кэш жадына жоғары байланыс
арнасының өткізу қабілеттілігін қажет ететін толық ұзындықтағы мекенжайлар арқылы қол жеткізіледі. Әдетте,
бұл мекенжай бағдарламаны орындау кезінде жасалуы керек, ол кем дегенде толық биттік қосуды немесе
тіркеуге қол жеткізуді немесе екеуін де қажет етеді. Регистр блоктары әдетте нұсқаулықта көрсетілген қысқа
регистр нөмірлерімен адрестеледі, бұл оларды декодтауды жеңілдетеді. Дегенмен, регистр жады тек белгілі
бір мәліметтер түрлерін сақтай алады, ал кэш жады негізгі жады ретінде де пайдаланылуы мүмкін. Осыған
байланысты регистрлер бойынша скалярлық айнымалыларды бөлу өте маңызды, өйткені ол өңдеу
жылдамдығына айтарлықтай әсер етеді.
Регистр терезелерінің өлшеміне қатысты мәселені шешу қажет, өйткені әдеттегі архитектурада терезелер бір
тізілімді болып табылады, бұл әрбір шақыру-қайтару кезінде дүкен-қалпына келтіру операциясын қажет етеді.
Процедураларды шақыру кезінде регистрлердің мазмұнын есте сақтау керек, ал қайтып оралғанда оларды
қалпына келтіру қажет, бұл көп уақытты алады. Заманауи құрылымдық бағдарламаларда процедураны
шақыру жиі орындалады, бұл ретте стандартты процессорлардағы процедуралардан шақыру және қайтару
командаларын орындаудың жалпы үстеме шығындары бағдарламадағы барлық жадқа кірудің 50% жетеді.
Ата-аналық процедуралар мен еншілес процедуралар арасында деректерді тасымалдау уақытын қысқарту
үшін (олардың ұя салу тереңдігі біреуден үлкен болған жағдайда) ата-аналарға да, қыздарға да олардың
кейбіріне қол жеткізуге мүмкіндік беретін тіркеу блогын жасауға болады. Басқаша айтқанда, бір-бірін
қайталайтын регистр блоктарын жасау керек. Бұл мүмкіндік регистр блогында қабаттасқан қабаттасатын
«терезелер» арқылы жүзеге асады. Бұл механизм RISC архитектурасында жүзеге асырылады. Көптеген
өлшемдер шамамен 97% процедуралардың алты параметрден аспайтынын көрсетеді, бұл көрші терезелердің
қабаттасуы шамамен бес регистр болуын талап етеді.
Процессор әрқашан ағымдағы терезеге нұсқағышты қамтиды, оны жүзеге асырылған процедураның кірістіру
тереңдігі шегінде өзгерту мүмкіндігі бар. Тереңдік асып кетсе, терезелердің кейбір мазмұны жаңа әрекеттерге
рұқсат беру үшін негізгі жадқа бағытталады. Іске асырудың жеңілдігі үшін бүкіл терезенің мазмұны ОС-ға
бағытталады. Бұл берілген терезе өлшемі бар көп терезелі механизмді енгізудің орындылығын көрсетеді.
Терезе өлшемі өткен параметрлер санымен анықталады, ал терезелер саны процедуралардың рұқсат етілген
кірістіруімен анықталады.
Үлкен регистрлік блоктарды қолданудың артықшылықтарының ішінде блоктарға қол жеткізудің жоғары
жылдамдығын және процедураларды шақыру жиілігін арттыруды атап өтуге болады. Кемшіліктердің арасында
микросхемадағы басқа функционалдық бірліктерге зиян келтіре отырып ұйымдастырылған үлкен регистрлік
блоктың жоғары құны болып табылады.
Терезенің қабаттасу механизмінің аппараттық іске асырылуы, егер алынған кірістер шығындармен
қабаттасатын болса, енгізілуі керек.
Процедураның көпшілігі үш-алты параметрді қажет ететіндіктен, терезелерді пайдалануды оңтайландыру
туралы ойлану керек. Біріншіден, регистр блогы толып кеткен жағдайда, ОС-ға барлық терезелерді жіберуге
болмайды, тек осы процедура үшін пайдаланылатын регистрлердің мазмұны, екіншіден, орындалу уақытында
анықталған айнымалы өлшемдердің терезелері бар механизмді пайдалануға болады.
RISC архитектурасының перспективалы түрі SPARC (Scalable Processor Architecture) архитектурасы болып
табылады.
Пікір.Масштабтау – масштабтау, яғни мәліметтерді олар да, олармен орындалатын есептеулер нәтижесі де
берілген процесте немесе берілген жабдықта өңдеуге болатын сандар диапазонында болатындай етіп
көрсету мүмкіндігі.
Sun Microsystems жаңа SPARCSTATIONS сериясы SPARC архитектурасына негізделген. Бұл компанияның
алғашқы үлгілері 1989 жылы жасалған. Барлық Sun станциялары үшін жұмыс ортасы SunOS болып табылады
- Open Look көп терезелі графикалық интерфейсімен жабдықталған Unix OS түрі.
Мәліметтерді өңдеу жылдамдығын арттыру үшін VLIW (Very Long Instruction Word) архитектурасы бар
компьютерлер қолданылады. Мұндай компьютерлердің командалық құрылымы операциялық кодпен және
операндтардың адрестерімен бірге тегтер мен дескрипторларды қамтиды. Мәліметтерді өңдеуді айтарлықтай
жеделдетумен қатар, бұл архитектура жадты команда шақыруларының жеткілікті санымен үнемдейді және
командалар жиынындағы нұсқаулардың жалпы санын азайтады.
2.4. Адресация әдістері және команда түрлері
Жалпы мақсаттағы регистрлері бар машиналарда нұсқаумен басқарылатын объектілерді адрестеу әдісі
(немесе режимі) тұрақтыны, регистрді немесе жад орнын көрсете алады.
Кесте 2.2 осы кітапта қарастырылатын компьютерлерде жүзеге асырылатын операндтарды адрестеудің негізгі
әдістерін ұсынады.
2.2-кесте.Адресті анықтау әдістері
Әдіс
адрестеу
Мысал
командалар
Мағынасы
командалар
Пәрменді пайдалану
Тіркелу
Регистрге қажетті мәнді жазу
үшін
Шұғыл немесе әріптік
Тұрақты мәндерді орнату үшін
Офсетті негізгі
R4 = R4 + M (100 +
R1)
Жанама регистр
Жергілікті айнымалыларға қол
жеткізу үшін
Көрсеткіш арқылы есептелген
мекенжайға сілтеме жасау
Индекс
R3 = R3 + M (R1 +
R2)
Тікелей немесе
абсолютті
Емдеуге пайдалы
статикалық деректерге
Жанама
R1 = R1 + M (M
(R3))
Егер R3 p көрсеткішінің
мекенжайы болса, онда осы
көрсеткіштің мәні таңдалады
Автоинкрементті
Қадамы бар массив арқылы
циклды өту үшін пайдалы: R2
массивтің басы. Әрбір циклде
R2 d өсіміне ие болады
Автодекременттік
Алдыңғыға ұқсас. Екеуі де
стекті іске асыру үшін
пайдаланылуы мүмкін
Ауыстыру және
масштабтау арқылы
негізгі индекс
R1 = R1 + M (100) + Массивтерді индекстеу үшін
R2 + R3 * d
Тікелей деректер және әріптік тұрақты адрестеу әдетте жадты адрестеу әдістерінің бірі болып саналады (бірақ
бұл жағдайда қол жеткізілетін деректер мәндері нұсқаулықтың өзінің бөлігі болып табылады және
нұсқаулардың жалпы ағынында өңделеді).
Кесте 2.2 қосу (Қосу) пәрменінің мысалында адрестеу әдістерінің ең көп тараған атаулары келтірілген,
дегенмен құжаттамада архитектураны сипаттау кезінде ЭЕМ және бағдарламалық жасақтама өндірушілері
осы әдістерге әртүрлі атауларды қолданады. Кесте 2.2. «=" белгісі тағайындау операторын белгілеу үшін
қолданылады, ал M әрпі Жадты білдіреді. Осылайша, M (R1) мекенжайы R1 регистрінің мазмұнымен
анықталатын жады ұяшығының мазмұнын білдіреді.
Күрделі адрестеу әдістерін қолдану бағдарламадағы нұсқаулардың санын айтарлықтай қысқартуы мүмкін,
бірақ бұл аппараттық құралдардың күрделілігін айтарлықтай арттырады.
Дәстүрлі машина деңгейіндегі командаларды кестеде көрсетілген бірнеше түрге бөлуге болады. 2.3.
2.3-кесте.Негізгі команда түрлері
Транзакция түрі
Арифметика
және логикалық
Бүтін арифметикалық және логикалық амалдар: қосу, алу,
логикалық қосу, логикалық көбейту, т.б.
Деректерді тасымалдау
Жүктеу/жазу операциялары
Командалық ағынды
басқару
Шартсыз және шартты секірулер, процедураны шақыру және
қайтару
Жүйе операциялары
Жүйелік қоңыраулар, виртуалды жадты басқару
командалары және т.б.
Жылжымалы нүкте
операциялары
Нақты сандарға қосу, алу, көбейту және бөлу амалдары
Ондық амалдар
Ондық бөлшектерді қосу, көбейту, форматты түрлендіру
және т.б.
Жолдық операциялар
Жолдарды бағыттау, салыстыру және іздеу
Операнд түрін нұсқаудағы операциялық код арқылы немесе деректермен бірге сақталатын және деректерді
өңдеу кезінде аппараттық құралмен түсіндірілетін тегті пайдалану арқылы көрсетуге болады.
Әдетте операндтың түрі (бүтін, нақты, символ) оның өлшемін анықтайды. Әдетте, бүтін сандар екі
толықтауышта беріледі. IBM таңбаларды анықтау үшін EBCDIC пайдаланады; басқалары ASCII пайдаланады.
Нақты сандарды бір және қос дәлдікпен көрсету үшін IEEE 754 стандарты орындалады.
Бірқатар процессорлар екілік кодталған ондық сандарды пайдаланады, олар бумаланған және бумасыз
пішімдерде ұсынылған. Бума пішімі 0-9 сандарын кодтау үшін 4 сан пайдаланылады және әрбір байтқа екі
ондық цифр салынады деп болжайды. Бумасыз пішімде байт әдетте ASCII таңба кодында көрсетілетін бір
ондық цифрды қамтиды.
2.5. Компьютерлерді жинақтау
Компьютерді құру кезінде оған бір уақытта командалық жүйе (СК) құрастырылады. Операцияларды ИК-ке қосу
үшін таңдауға мыналар айтарлықтай әсер етеді:
* ЭЕМ өндірісінің элементтік базасы мен технологиялық деңгейі;
* жеке командаларда жүзеге асырылатын қажетті операциялар жиынтығын анықтайтын шешілетін
тапсырмалар класы;
* ұқсас кластағы компьютерлерге арналған командалық жүйелер;
* Ұзын сөзді құрайтын командаларды (VLIW-пәрмендер) құруға себеп болатын мәліметтерді өңдеу
жылдамдығына қойылатын талаптар.
Мәселелерді талдау регистрлер мен қарапайым адрестеу режимдерін қолданатын тасымалдау нұсқаулары
мен процессор нұсқаулары программалық қоспаларда басым рөл атқаратынын көрсетеді.
Бүгінгі күні келесі командалық құрылымдар кеңінен таралған: біркастты (1А), екі адресті (2А), үш адресті (3А),
адрессіз (БА), ұзақ сөзді командалар (VLIW - BDS) (2.1-сурет):
Дескрипторлар
Күріш. 2.1.Командалық құрылымдар
Сонымен қатар, операндты мекенжай ретінде немесе тікелей командалық құрылымда көрсетуге болады.
BA пәрмендері жағдайында операндтар алынады және нәтижелер стекке (журналға, ұяшыққа) итеріледі. BA
компьютерлерінің типтік алғашқы өкілдері KDF-9 және Elbrus MVK болып табылады. Олардың тән ерекшелігі
стек жадының болуы.
Стек - бұл деректер мен операцияларды уақытша сақтау үшін пайдаланылатын ЖЖҚ аймағы. Стек
элементтеріне FILO принципі бойынша қатынасады (бірінші кіреді, соңғы шығады) - бірінші кіреді, соңғы
шығады. Сонымен қатар, стектің элементтеріне қол жеткізу оның үстіңгі жағы арқылы ғана жүзеге асырылады,
яғни пайдаланушы стекке соңғы рет итерілген элементті ғана «көреді».
Стектелген жады ұйымы бар процессордың жұмысын қарастырайық.
Әртүрлі есептеу процедураларын орындау кезінде процессор компьютер жадынан әлі таңдалмаған жаңа
операндтарды немесе алдыңғы операцияларда қолданылған операндтарды пайдаланады. Классикалық
құрылымы бар процессорларда кез келген операндқа (1А-компьютер) қол жеткізу жады циклін қажет етеді.
Мысал қарастырайық.
Процессор өрнектің мәнін есептесін
DIV_ADBLOCK142 ">
Сан
командалар
Пікірлер (1)
- жұмыс жасушасы
- жұмыс жасушасы
Пікір. https://pandia.ru/text/78/406/images/image016_43.gif "ені =" 28 "биіктігі =" 28 "> сияқты пәрменді орындау
Жоғарыдағы бағдарламадан келесідей, операнд ажадтан 2 рет таңдалған (4 және 5 командалар), б- 3 рет (2, 7
және 8 командалар). Сонымен қатар, аралық есептеулердің нәтижелерін сақтау және еске түсіру үшін
қосымша жадыға кірулер қажет болды (3, 6, 9, 10 командалар).
Жад циклінің уақыты компьютер жұмысының негізгі шектеуші факторы болғанымен, қосымша жадқа кіру
қажеттілігі оның өнімділігін айтарлықтай бәсеңдетеді. Негізінде деректер үшін жадқа бірінші рет қол жеткізу
керек екені анық. Кейінірек олар триггер регистрлерінде немесе SRAM-да сақталуы мүмкін.
Бұл пайымдаулар процессордың бірқатар логикалық құрылымдарында бейнеленген. Олардың бірі стекі жады
бар процессор. Оның жұмыс істеу принципі суретте көрсетілген диаграммамен түсіндіріледі. 2.2.
Стек жады – әрқайсысы бір машина сөзін сақтауға қабілетті n регистрдің жиынтығы. P1, P2, ..., Pn
регистрлеріндегі аттас разрядтар ауысу схемалары арқылы өзара байланысқан. Сондықтан регистрлердің
барлық жиынын P1, P2, ..., Pn регистрлерінің бірдей разрядтарынан құралған n-разрядты ауыстыру
регистрлерінің тобы ретінде қарастыруға болады. Стек туралы ақпарат регистрлер арасында жоғары және
төмен жылжи алады.
Төмен қозғалыс: (P1) ® P2, (P2) ® P3, ... және P1 негізгі жадтағы деректермен толтырылады.
Жоғары жылжытыңыз: (Pn) ® Pn - 1, (Pn - 1) ® Pn - 2 және Pn нөлдермен толтырылады.
Күріш. 2.2.Процессор стегін ұйымдастыру
P1 және P2 регистрлері операцияны орындау үшін екі операндты құрайтын ALU-мен байланысқан.
Операцияның нәтижесі Р1-ге жазылады. Сондықтан ALU операцияны орындайды
.
Арифметикалық операцияны (АО) орындаумен бір мезгілде операндтар P1-ге әсер етпей жоғары
жылжытылады, яғни (P3) ® P2, (P4) ® P3 және т.б.
Осылайша, AO пәрмен ұзақтығын азайтатын болжамды адрестерді пайдаланады. Негізінде, командада
операция кодын анықтайтын өрістің болуы жеткілікті. Сондықтан стек жадысы бар компьютерлер адрессіз деп
аталады. Сонымен бірге жедел жадтан ақпаратты шақыратын немесе сақтайтын командалар операндтың
адресін көрсетуді талап етеді. Сондықтан стек жады бар компьютерлер айнымалы ұзындықтағы нұсқауларды
пайдаланады. Мысалы, KDF-9-да АО командалары бір буынды, жадыға қол жеткізу және басқару
тасымалдаулары командалары үш буынды, қалғандары екі буынды.
Командалар жад ұяшықтарының шекарасына қарамастан, буындардың үздіксіз массиві ретінде жадта
орналасады. Бұл бір жадқа кіру циклінде бірнеше пәрмендерді шақыруға мүмкіндік береді.
Мұндай жадтың мүмкіндіктерін тиімді пайдалану үшін компьютерге арнайы командалар енгізіледі:
· Көшіру ~ (P1) ® P2, (P2) ® P3, ... т.б., ал (P1) өзгеріссіз қалады;
· Кейбір операцияларды орындауға ыңғайлы реверс ~ (P1) ® P2, және (P2) ® P1.
Жаңа жағдайға бірдей мысалды қарастырыңыз (2.5-кесте):
0 "стиль =" border-collapse: collapse; border: none ">
Қоңырау б
Көшіру
Қоңырау в
Қосу
Кері айналдыру
Көшіру
Көбейту
Қоңырау а
Көшіру
Көбейту
Қосу
Кестеден келесідей. 2.5, операндтарды шақыру үшін жадыға тек үш рұқсат қажет болды (1, 3, 8 нұсқаулар).
Қоңыраулардың аз болуы мүмкін емес. Операндтар мен аралық нәтижелер стектің жадысынан AU
операциялары үшін қабылданады; 12 команданың 9-ы адрессіз.
Бүкіл бағдарлама үш 48 биттік жад орнында орналасқан.
Дүкен жадын пайдаланудың басты артықшылығы - ішкі бағдарламаларға (PP) өткенде немесе үзіліс болған
жағдайда, арифметикалық регистрлердің мазмұнын жадта сақтау үшін арнайы әрекеттердің қажеті жоқ. Жаңа
бағдарлама бірден басталуы мүмкін. Стек жадына жаңа ақпарат енгізілгенде, алдыңғы бағдарламаға сәйкес
деректер автоматты түрде төмендетіледі. Олар жаңа бағдарлама есептеуді аяқтаған кезде оралады.
Стек жадының көрсетілген артықшылықтарымен қатар, біз мыналарды атап өтеміз:
* жадқа кіру санының төмендеуі;
* PP-ге қол жеткізу және үзілістерді өңдеу жолын жеңілдету.
Стектік жадтың кемшіліктері:
· Жылдам қатынасы бар регистрлердің көп саны;
· Стек жадының толып кетуін бақылау үшін қосымша жабдықтың қажеттілігі, өйткені жады регистрлерінің саны
шектеулі;
· Негізінен ғылыми есептерді шешуге және аз дәрежеде мәліметтерді өңдеу жүйелеріне немесе
технологиялық процесті басқаруға жарамдылығы.
2.6. Командалық жүйені оңтайландыру
Нұсқаулардың кез келген жүйесін құрудағы маңызды мәселе – нұсқауларды оңтайлы кодтау. Ол
қолданылатын регистрлер мен адрестеу әдістерінің санымен, сондай-ақ декодтау үшін қажетті аппараттық
құралдардың күрделілігімен анықталады. Сондықтан қазіргі RISC архитектуралары нұсқауларды декодтауды
айтарлықтай жеңілдететін қарапайым адресация әдістерін пайдаланады. Неғұрлым күрделі және нақты
бағдарламаларда сирек кездесетін адрестеу әдістері қосымша нұсқауларды қолдану арқылы жүзеге
асырылады, бұл жалпы айтқанда, бағдарлама кодының өлшемін ұлғайтуға әкеледі. Дегенмен, бағдарламаның
мұндай ұлғаюы RISC процессорларының жиілігін жай ғана ұлғайту мүмкіндігімен өтеледі. Біз бұл процесті
бүгінде, барлық дерлік RISC процессорларының (Alpha, R4400, HyperSPARC және Power2) максималды
тактілік жылдамдықтары Pentium процессоры қол жеткізген тактілік жиіліктен асып кеткен кезде байқауға
болады.
Жаңа компьютер үшін командалар жүйесін жобалаудың жалпы технологиясын келесідей белгілеуге болады:
шешілетін есептер класын біле отырып, біз кең таралған компьютер үшін белгілі бір типтік CS таңдаймыз және
оны операциялардың барлық алуан түрлілігі бар-жоғын тексереміз. берілген есептер класында. Барлық сирек
немесе сирек операцияларды командалар қамтымайды. Операцияларды СК-да көрсету үшін барлық пайда
болу жиілігін әр жолы «шығындардың құны – іске асырудың күрделілігі – алынған табыс» арақатынастарынан
анықтауға болады.
IC жобалаудың екінші жолы - бар командалық жүйені кеңейту. Мұндай кеңейтудің бір жолы - макростарды
құру, екіншісі - ассемблер функцияларын кеңейту арқылы CK тілінің бар синтаксисін қолдану, оны жаңа
командалармен толықтыру, кейіннен қайта құрастыру. Бұл әдістердің екеуі де түбегейлі бірдей, бірақ кеңейту
аппаратын жүзеге асыру тактикасында ерекшеленеді.
Сонымен, IBM ДК-нің командалық жүйесі келесі операциялар топтарын қамтиды: мәліметтерді тасымалдау,
арифметикалық операциялар, тармақтау және цикл операциялары, логикалық операциялар және жолды
өңдеу операциялары.
Әзірленген IC оңтайландырылған болуы керек. Оңтайландыру әдістерінің бірі берілген компьютер үшін кейбір
типтік тапсырмаларда бір-бірінен кейінгі екі немесе одан да көп командалар комбинацияларының қайталану
жылдамдығын анықтаудан, содан кейін оларды бірдей функцияларды орындайтын бір командамен
ауыстырудан тұрады. Бұл бағдарламаны орындау уақытының қысқаруына және жад талаптарының
төмендеуіне әкеледі.
Біз компилятор жиі жасайтын командалардың кейбір тізбегін тексеріп, олардан артық кодтарды алып тастай
аламыз.
Оңтайландыруды оның ақпараттық мүмкіндіктерін зерттей отырып, жеке топта жүргізуге болады. Бұл үшін
ақпарат теориясының аппаратын, атап айтқанда, берілетін ақпараттың көлемін – көздің энтропиясын бағалау
үшін қолдануға болады. Процессор-жад жолын байланыс арнасы деп санауға болады.
Пікір.Энтропия – жүйенің берілген күйде болу ықтималдығының өлшемі (статистикалық физикада).
2.7. Микробағдарламалық процессорлар
Функционалдық импульстардың пайда болу логикасын құрудың екі белгілі тәсілі бар. Олардың бірі:
процессордың әрбір жұмысы диодтарда, транзисторларда және т.б. орындалатын логикалық схемалар
жиынтығына сәйкес келеді және қандай функционалдық импульсті (ФИ) және қандай циклде қоздыру
керектігін анықтайды. Кейбір FI m операциясының j қадамында, егер сумматор толып кетсе немесе n
операциясының i қадамында пайда болсын. Көрсетілген жұмыс кодтарына, тактілік циклдерге және шарттарға
сәйкес сигналдар ЖӘНЕ схемаларының кірістеріне жіберілсе, ал НЕМЕСЕ схемасы арқылы соңғысының
шығыстары FI генераторына қосылған болса, қажетті әрекет орындалады (2.3-сурет). .
Жұмысты басқарудың бұл принципі «қатты» немесе «пломбаланған» логика деп аталады және көптеген
компьютерлерде кеңінен қолданылады.
Күріш. 2.3.Функционалды импульстің қалыптасуы
Басқаруды ұйымдастырудың тағы бір принципі: әрбір микрооперация (МИО) сөзбен (немесе сөздің бөлігімен)
байланысты, микронұсқау деп аталады және жадта сақталады, әдеттегі компьютердің командалары жадта
сақталады. Мұнда пәрмен микробағдарламаға сәйкес келеді, яғни бұл операцияны орындау үшін қандай FI
және қандай реттілікпен қоздыру керек екенін көрсететін микронұсқаулар жиынтығы (MIC). Бұл тәсіл
микробағдарламалау немесе «сақталған логика» деп аталады. Бұл микропрограммалық компьютерде басқару
логикасы электронды схема түрінде емес, қандай да бір регистрде орналасқан кодталған ақпарат түрінде
жүзеге асырылатынын атап көрсетеді.
1951 жылы Уилкс айтқан микробағдарламалау идеясы соңғы уақытқа дейін кең қолданыс таба алмады,
өйткені:
· Микропрограмманы сақтауға арналған сенімді және жоғары жылдамдықты жады болмады;
· Микробағдарламалаудың мақсаттары мен артықшылықтары дұрыс түсінілмеді.
Екінші дәлелді түсіндірейік. Микробағдарламалаудың құндылығы әрбір тұтынушы МИК-тен өзіне берілген
нақты тапсырмада өзіне қажет операциялар жиынтығын құра алады деп есептелді. Нұсқаулар жиынын
ауыстыру жадтағы ақпаратты жабдықта ешбір өзгеріссіз ауыстыру арқылы жүзеге асады. Дегенмен, бұл
жағдайда бағдарламашы компьютерді әзірлеуші инженер жұмысының барлық қыр-сырын білуі керек еді. Ал
программалауды автоматтандыруға байланысты ЭЕМ дамуының негізгі тенденциясы программалаушыны
компьютер құрылғыларын егжей-тегжейлі зерттеуден босатып, компьютер тілін адам тіліне барынша
жақындату болып табылады. Сондықтан микробағдарламалық компьютерлер пайдаланушы үшін қиын деп
саналды.
Жақында микробағдарламалау принципіне қызығушылық келесідей жанданды:
· Шағын жады циклі бар бір жақты (оқу) жоғары жылдамдықты сақтау құрылғылары жасалды;
· Микробағдарламалау программалаудың икемділігін арттыру құралы ретінде емес, компьютерді әзірлеуші
инженерге ыңғайлы процессорды басқару жүйесін құру әдісі ретінде қарастырылады.
Программист өз жұмысында тіпті компьютердің микробағдарлама құрылымын білмеуі және барлық
бағдарламалық құралдар мен ең жоғары деңгейдегі бағдарламалау тілдерін қолдануы мүмкін.
Микробағдарламалау принципін қолдану процессор логикасын өңдеуді және өзгертуді жеңілдетеді.
Әрбір МИК орындағаннан кейін процессордың күйіне бағдарламалық қамтамасыз етудің қолжетімділігінің
пайда болуымен ақауларды автоматты диагностикалаудың және эмуляциялау мүмкіндігінің үнемді жүйесін
құруға болады, яғни берілген компьютерде жазылған бағдарламаны орындауға болады. басқа компьютердің
пәрмен кодтарында пайда болады. Бұған эмуляцияланған компьютердің командаларына сәйкес келетін
қосымша MIC жиынтығын енгізу арқылы қол жеткізіледі.
Бұл мүмкіндіктер қазіргі компьютерлерде контроллерлерді құрастыруда микробағдарламалау әдістерінің
таралуына ықпал етеді.
2.7.1. Көлденең микробағдарламалау
Микробағдарламаны басқарудың екі түрі бар: көлденең және тік. Көлденең болған жағдайда әрбір MIC биті
басқа цифрлардың мазмұнына қарамастан орындалатын белгілі бір MPT-ге сәйкес келеді.
Микробағдарламаны n ´ m матрица түрінде көрсетуге болады, мұндағы n - FI саны, m - MIC саны, яғни жол бір
МИК-ке, ал баған бір МИК-ке сәйкес келеді (Cурет 1). 2.4).
2.4-сурет.Көлденеңге арналған микробағдарлама
микробағдарламалау
MIC разрядтарының жуық мәндері 1-суретте көрсетілген. 2.5.
2.5-сурет. MIC (MIO) цифрларының мәні:
1 - қосқышты бос қалдыру; 2 - толып кету индикаторының бос болуы; 3 - кері қосқыш коды; 4 - бөлінділердің
көбейткішінің регистрін тазарту; 5 - таңбаның инверсиясы; 6 - сумматордың мазмұнын солға жылжыту; 7 сумматордың мазмұнын оңға жылжыту; 8 - қосындының мазмұнын 1-ге көбейту; 9 –
жадтан қосқышқа оқу; ...
Кез келген жол мен бағанның қиылысында «1» болуы FI осы МИК-ке жіберілгенін білдіреді, ал «0» болуы оның
жоқтығын білдіреді.
Бірнеше MIC сандарына «1» қою бір уақытта бірнеше MPE орындауды білдіреді. Әрине, қозғалған MIR-лер
үйлесімді болуы керек.
Мысалы, 9-биттік MIC биттері келесі мәндерді қабылдасын:. Содан кейін, егер берілген биттер суретте
көрсетілген семантикаға сәйкес келсе. 2.5, содан кейін 9, 7 және 6 цифрларымен анықталған MPE сәйкес
келмейді.
МИК мүмкіндіктерін кеңейту үшін кейде МИК орындаудың көп циклдік принципі қолданылады. Бұл жағдайда
әрбір битке сәйкес IOI орындалатын цикл нөмірі тағайындалады, яғни мұнда барлық үйлесімді IOI бір өлшем
нөміріне ие. Барлық қалған шаралар олардың табиғи орындалу реті бойынша нөмірленеді. Дегенмен, МИК-те
IOI әмбебап нөмірленуін көрсету қиын.
Көлденең микробағдарламалаудың артықшылықтары:
· Бірнеше IOI бір мезгілде орындау мүмкіндігі;
· FI қалыптастырудың қарапайымдылығы (дешифрлеу схемаларынсыз).
Кемшіліктері:
МИК-тің үлкен ұзындығы, өйткені қазіргі компьютерлердегі FI саны бірнеше жүзге жетеді, сәйкесінше, жадтың
үлкен көлемі
микрофонды сақтау;
· Амалдардың үйлесімділігінің шектелуіне байланысты, сондай-ақ амалдар алгоритмдерінің орындалу
реттілігіне байланысты MIC разрядтарының аз ғана бөлігінде «1» болады. Негізінен матрица нөлдерден
тұрады. Жадты тиімсіз пайдалану көлденең микробағдарламалаудың аз ғана таралуына әкелді.
2.7.2. Тік микробағдарламалау
Тік микробағдарламалауда әрбір MEC бір бит күйімен емес, белгілі бір MIK өрісіндегі екілік кодпен
анықталады. Микронұсқау кәдімгі командалар пішіміне біршама ұқсас. Айырмашылығы мынада:
· Неғұрлым қарапайым әрекет орындалады – операцияның орнына ЖАО;
· Адрес бөлігі (көп жағдайда) жад орнын емес, процессордың операциялық регистрін анықтайды.
Тік микробағдарламалау үшін MIC пішімі суретте көрсетілген. 2.6.
Күріш. 2.6.Тік MIC пішімі
МИК адрестік бөлігіндегі Р1 және Р2 өрістері мазмұны бір операцияға қатысатын операциялық регистрлердің
екілік сандарын көрсетеді. Өрістердің бірі нәтиженің мекенжайы болып табылады. Осылайша, осы МИК-те
көрсетілген арифметикалық немесе логикалық IOI жүзеге асыру,
формуласымен өрнектеуге болады
(P1) Д (P2) ® P1, немесе (P2) ®P1,
мұндағы Д – IOI символы.
MIK жадыға қол жеткізу үшін P1 өрісі ақпарат алынатын регистрді көрсетеді, ал P2 - мазмұны жадыға кіру
мекенжайы болып табылатын регистр. Көрсетілген MIC пішімі жалғыз емес.
Әрбір MIC келесі функцияларды орындайды:
· Орындалған МРО-ны көрсетеді;
· «Келесі мекен-жай» тапсырмасы арқылы келесі ЖАО-ны көрсетеді;
· МИК ұзақтығын белгілейді;
· Қосымша әрекеттерді көрсетеді – бақылау және т.б.
Әдетте MIC сөзінде көрсетілген функцияларға сәйкес төрт аймақ бар. Жалпы айтқанда, кейбір аймақтарды
жасырын түрде көрсетуге болады, мысалы, келесі ұяшықтан келесі MIC таңдауға болады, MIC ұзақтығын
барлық MIC үшін бірдей анықтауға болады және т.б.
Отандық компьютерлер арасында микробағдарламалық басқаруы бар алғашқы компьютерлер MIR, NAIRI
болды, шетелдіктер арасында - IBM / 360,
Спектрлер 70.
Жаттығулар
1. RISC және CISC компьютер архитектурасының мүмкіндіктерін талдаңыз.
2. Нақты компьютерлерде RISC архитектурасын енгізудің нақты мысалдарын келтіріңіз.
3. CISC компьютеріндегі RISC бағдарламасының жұмысын модельдеу.
4. Бір, екі, үш және мекенжайсыз компьютерлерге арналған бағдарламаларды әртүрлі параметрлері
(жылдамдығы, жады, бағдарламалау күрделілігі) бойынша талдау және салыстыру.
5. Егер шешілетін тапсырмалардың нақты жиынтығы көрсетілген болса, командалық жүйені оңтайландыруды
жүзеге асырыңыз.
6. Нақты компьютер үшін көрсетілген операцияларды орындауға арналған микропрограммаларды жасау.
Операциялар үшін микробағдарламаны қолдаудың орындылығын талдаңыз.
7. VLIW компьютері үшін нұсқаулар жинағын әзірлеңіз.

Аударма
Аудармашының жазбасы.Түпнұсқа мақалада авторлар (олардың бірі RISC процессорларының пионері Д.
Паттерсон) ашық ISA (нұсқаулар жиыны архитектурасы, процессордың нұсқаулар жиыны) және олардың
негізіндегі өнімдерді әзірлеу қажеттігін алға тартады. Коммерциялық компаниялар қызығушылық танытпайтын
немесе жеткілікті икемді емес компьютерлік және экономикалық тауашаларды дамытуды ынталандыру үшін
алға қойылған дәлелдер. Олар ашық стандарттар мен еркін бағдарламалық қамтамасыз етудің жетістіктерін
еске салады.
Осы мақаланың кеңейтілген нұсқасы (сонымен қатар ARM өкілдерінің қарсы мақаласы және авторлардың
қарсы параграфы!) Мен Microprocessor Report (MPR) тамыз айындағы шығарылымында кездестірдім. MPR-ға
қол жеткізу шектеулі және тек жазылушыларға қатысты, бірақ Беркли университетінің веб-сайтында
жарияланған қоғамдық доменде түпнұсқа есеп бар. Мен оның аудармасын әрі қарай ұсынамын.
Нұсқаулар жинағы тегін болуы керек: Крсте Асанович пен Дэвид А. Паттерсонның RISC-V нұсқасы. EECS
департаменті, Калифорния университеті, Беркли - Техникалық есеп №. UCB / EECS-2014-146
www.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-146.html
Авторлық құқық туралы ескерту және жауапкершіліктен бас тарту
Авторлық құқық 2014, автор(лар).
Барлық құқықтар сақталған.
Бұл жұмыстың барлығын немесе бір бөлігін жеке немесе сыныпта пайдалану үшін цифрлық немесе қағаз
көшірмелерін жасауға рұқсат көшірмелер пайда немесе коммерциялық пайда үшін жасалмаған немесе
таратылмаған және көшірмелерде осы хабарлама мен бірінші бетте толық сілтеме болған жағдайда ақысыз
беріледі. ... Басқаша көшіру, қайта жариялау, серверлерде жариялау немесе тізімдерге қайта тарату үшін
алдын ала арнайы рұқсат қажет.
Процессорлар мен олардың кэштері матрицаның бір бөлігін ғана алатын чиптегі (SoC) реттелетін жүйелер
барлық жерде кең таралуда; бүгінгі күні SoC жүйесінде процессорды пайдаланбайтын электронды құрылғыны
табу қиын. Осылайша, бұрынғыға қарағанда көбірек компаниялар процессорлары бар чиптерді жобалауда.
Ашық стандарттар мен ашық бастапқы бағдарламалық қамтамасыз етудің төңкеріс жасағанын ескере отырып,
мысалы, TCP / IP желілік протоколы және Linux операциялық жүйесі - неге ең маңызды интерфейстердің бірі
әлі де меншік болып табылады?
Тегін, ашық бастапқы ISA-ны қолдайтын дәлелдер
Әрине, кейбір нұсқаулар жинағы архитектурасы (ISA) тарихи және коммерциялық себептерге байланысты
меншікті болуы мүмкін. Дегенмен, бірде-бір қатты зат жоқ техникалықеркін, ашық опциялардың жоқтығын
түсіндіруге негіз.
Бұл қателік немесе қателік емес. ARM, IBM және Intel сияқты табысты ISA-ға ие компаниялар
басқалардың оларды лицензиясыз пайдалануына жол бермейтін нұсқаулық жүйелерінің ерекшеліктеріне
патенттерге ие. Пайдалану жөніндегі келіссөздер 6-24 айға созылады және 1 миллионнан 10 миллион
долларға дейін кез келген жерде тұруы мүмкін, бұл академиктерді және 2-процесстен аз ғана өндірісті қажет
ететін кез келген басқа адамдарды қоспайды. ARM лицензиясы тіпті өз ядроңызды жобалауға мүмкіндік
бермейді; пайдалану құқығына ие боласыз олардыңдизайн (тек 15-ке жуық ірі компанияның жаңа ARM
ядроларын жасауға құқығы бар). Тіпті OpenPOWER - бұл оксиморон; осы ISA пайдалану үшін IBM-ге
төлеуіңіз керек. t-мен ақылға қонымды. бизнес үшін бұл лицензиялау тәжірибесі бәсекелестік пен
инновацияны тұншықтырып, көптеген адамдарға өздерінің ISA-үйлесімді ядроларын жобалауға және ортақ
пайдалануға мүмкіндік бермейді.
2.
Бұл ISA иелерінің өз жүйелері үшін бағдарламалық жасақтаманың басым көпшілігін өздері
жасайтындығынан емес. Танымал ISA айналасында өскен бағдарламалық қамтамасыз ету экожүйелерінің
көлеміне қарамастан, олар үшін бағдарламалық жасақтаманың негізгі үлесін сырттағы адамдар жазады.
3.
Бұл компанияларда сәйкес АХС құру үшін қажетті қасиетті білім жоқ. Бұл көп жұмыс, бірақ бүгінгі күні
көптеген адамдар нұсқаулар жинағын құрастыра алады.
4.
Ең танымал АХС ең жақсысы емес. 80x86 және ARM екеуі де жақсы дизайн үшін эталон болып
саналмайды.
5.
ISA үйлесімділігін тексеру компанияның бақылауын қажет етпейді. Ашық ұйымдар көптеген жылдар
бұрын аппараттық құралдардың өзара әрекеттесуін сертификаттау механизмдерін әзірледі. Мысалдар:
IEEE 754 өзгермелі нүкте стандарты, Ethernet, PCIe. Егер бұлай болмаса, ашық АТ стандарттары
соншалықты танымал болмас еді.
6.
Ақырында, меншікті АХС ұзақ қызмет ететініне кепілдік жоқ. Егер компания құлдырап, жоғалып кетсе,
ол ISA-ны өзімен бірге алады. DEC-тің жойылуы Alpha және VAX нұсқаулар жинағын әзірлеуді аяқтады.
ISA шын мәнінде іске асыру емес, интерфейс спецификациясы екенін ескеріңіз. Кейбір интерфейсті жүзеге
асырудың үш тәсілі бар:
1.
1. Жеке жабық, Apple iOS жүйесіне ұқсас.
2. Wind River VxWorks сияқты лицензияланған ашық дереккөз.
3. Linux жүйесінде жасалғандай пайдаланушылар өзгерте және бөлісе алатын тегін және ашық бастапқы коды.
Меншікті ISA шын мәнінде сізге алғашқы екі тәсілмен жұмыс істеуге мүмкіндік береді, бірақ үшеуін де қолдау
үшін тегін, ашық бастапқы ISA қажет.
Бұдан біз саланың ашық бастапқы коды тегін бағдарламалық жасақтаманы әзірлеуден пайда көргендей
өміршең ашық бастапқы ISA-дан да пайда көреді деген қорытындыға келдік. Мысалы, бұл жасайды процессор
дизайны үшін шынымен еркін ашық нарықҚазіргі уақытта ISA патенттері кедергі келтірді.
Бұл мыналарға әкелуі мүмкін:
1. Көптеген дизайнерлердің еркін нарықтағы бәсекелестігі арқылы инновациялар, соның ішінде ашық және
жабық ISA енгізулері.
2. Жалпы ашық негізгі дизайн, бұл нарыққа тезірек шығуға, қайта пайдалану шығындарын азайтуға, көптеген
адамдардың тексеруіне байланысты қателерді азайтуға 3 және, мысалы, мемлекеттік органдарға құпия
бэкдорларды енгізуді қиындатады.
3. Бір долларға жуық құны бар заттар интернетін (IoT, ағылшынша заттар интернеті) дамытуға көмектесетін
қосымша құрылғылар үшін қол жетімді процессорлар.
Еркін, ашық бастапқы ISA үшін стиль ретінде RISC қолдау дәлелдері
АХС ашық бастапқы қауымдастықпен қабылдануы үшін оның коммерциялық пайдаланудың сәтті тарихы
болуы керек деп санаймыз. Бірінші сұрақ, мұндай оқиғаны ISA қандай стильде бейнелейді? Соңғы 30 жыл
ішінде тарих бірде-бір табысты білмеді стексәулет ( Аудармашының ескертпесі: Java байт кодының және
.NET CLI стек архитектурасының сәттілігі берілген тақ мәлімдеме). DSP (цифрлық сигналды өңдеу)
қолданбаларының сегментін қоспағанда, VLIWСондай-ақ сәтсіздікке ұшырады: Multiflow іші жоғары көтерілді
және Itanium, HP мен Intel салған миллиардтаған доллар инвестициясына қарамастан, мойындалмады.
Ондаған жылдар бойы бірде-бір жаңа емес CISC ISA сәтсіздікке ұшырауда. Аман қалған CISC
архитектуралары өздерінің күрделі нұсқауларын қарапайым ISA-ға аударады, бұл құнды мұра код базасын
орындау үшін өте негізделген. Жаңа ISA, анықтамасы бойынша, мұндай базаға ие болмайды, сондықтан
хабар таратуға қажетті қосымша аппараттық құралдар мен қуат тұтынуды негіздеу қиын: неге бірден
қарапайым ISA қолданбасқа? RISC-Сеймуир Крейдің CDC 6600 дәуірінен бастап, жүктеу дүкені сияқты
нұсқаулар жиынтығы кем дегенде 50 жыл болды. 80x86 компьютерлік соғыстарда жеңіске жеткенімен, RISC
компьютерден кейінгі дәуірдегі планшеттер мен телефондарда үстемдік етеді. 2013 жылы 0,3 миллиард x86дан 10 миллиардтан астам ARM сатылды. 1980 жылы айтқанымызды қайталай отырып 4, біз RISC тегін және
ашық бастапқы ISA үшін ең жақсы таңдау деп санаймыз.
Сонымен қатар, жаңа RISC ISA, егер оны әзірлеу кезінде олардың қателері ескерілсе, оның алдындағыларға
қарағанда жақсы болуы мүмкін:
Ерекшеліктер тым көп: Alpha ISA бірінші нұсқасында байттар мен жартылай сөздер үшін
жүктеу/сақтау пәрмендерінің болмауы және MIPS I жүйесінде өзгермелі нүкте сандары үшін жүктеу/сақтау
болмауы.
2.
Оның ішінде артық: ARM нұсқауларындағы және SPARC регистр терезелеріндегі кірістірілген жылжу.
3.
Микроархитектуралық бөлшектердің ISA-ға әсері: MIPS және SPARC-те кейінге қалдырылған
секірулер, Альфа-дағы өзгермелі нүкте сандары үшін тұзақ кедергілері.
Ендірілген нарықтың қажеттіліктерін қанағаттандыру үшін RISC және тіпті код өлшемі мәселесінің шешімін
ұсынды: ARM Thumb және MIPS16 кодты 80x86 өлшемінен де қысқа етіп сақтау үшін 16 биттік пішімдерді
қосты. Осылайша, жақсы RISC ISA жалпы қандай болуы керектігі туралы жалпы қабылданған келісім бар.
1.
Бар тегін ашық бастапқы коды RISC ISA пайдалану аргументтері
Қазірдің өзінде үш тегін және ашық бастапқы RISC ISA 5 бар:

SPARC V8 - Sun Microsystems несиесі үшін ол 1994 жылы SPARC V8 IEEE стандартын жасады.

OpenRISC 2000 жылы басталған GNU лицензиясы бар ашық бастапқы жоба, 2011 жылы аяқталған 64
биттік ISA.

RISC-V - 2010 жылы, ішінара оның IP-дегі ARM шектеулеріне және 64-биттік режимдердің болмауына,
сондай-ақ ARM v7 жалпы гротескіне байланысты біз және студенттеріміз Эндрю Уотерман және Юнсуп Ли
RISC-V 6 әзірледік. («RISC-5» деп айтылады) біздің зерттеу және оқыту қажеттіліктеріміз үшін және оны BSD
лицензиясы бойынша шығарды.
Барлық бөлшектерді жылтырату үшін әдетте жылдар қажет болғандықтан - OpenRISC пісіп-жетілуі үшін 11
жыл, ал RISC-V 4 жыл қажет болды - комитетті құрып, нөлден бастағанша, бар ISA-дан бастаған дұрысырақ
болар еді. Барлық RISC ұқсас, сондықтан олардың кез келгені жақсы үміткер болуы мүмкін.
ISA ондаған жылдар бойы өмір сүре алатындықтан, басымдықтарды анықтау процесін жеңілдету үшін қандай
мүмкіндіктер маңызды болуы мүмкін екенін түсіну үшін алдымен болашақ ақпараттық технологиялар
ландшафтын экстраполяциялау және сипаттау қажет. Сірә, үш платформа басым болады: IoT – IP
мекенжайлары және Интернетке кіру мүмкіндігі бар миллиардтаған арзан құрылғылар; 2) заманауи
телефондар мен планшеттер сияқты жеке мобильді құрылғылар; 3) деректер орталықтары (қойма
масштабындағы компьютерлер, WSC). Платформаның әр түрі үшін әртүрлі ISA болуы мүмкін, бірақ ол барлық
жерде бірдей болса, өмір оңайырақ болады. Болашақтың бұл көрінісі оған төрт негізгі талапты ұсынады.
1. «Негізгі ISA плюс кеңейтімдер» пішімі 7. Тиімділікті арттыру және шығындарды азайту үшін SoC жүйелері
өздерінің қолданбалы үдеткіштерін қосады. Бұл үшін, сондай-ақ тұрақты кодтық базаны қолдау үшін, еркін
ашық ISA-да мыналар болуы керек: а) компиляторларға және ОЖ-ға белгілі нұсқаулардың шағын өзегі, б)
бейімдеуге арналған жиі жеке сценарийлер үшін стандартты, бірақ қосымша кеңейтімдер. Белгілі бір
қолданбаға SoC, в) үдеткіштердің жұмысына арналған нұсқаулықтардың мүлдем жаңа кодтары үшін орын.
2. Командаларды ықшам кодтау. IoT қолданбалары бағасының пайдаланылатын жад көлеміне
сезімталдығына байланысты азырақ код қажет.
3. Қос және бір дәлдікке қосымша жылжымалы нүкте сандары бойынша төрт есе дәлдік (QP) есептеулері.
Деректер орталықтарында жұмыс істейтін кейбір қолданбалар бүгінде деректердің үлкен көлемін өңдейді,
олар қазірдің өзінде QP үшін бағдарламалық құрал кітапханаларын пайдаланып жатыр.
4. 32 және 64 разрядтарға қосымша 128 биттік адрестеу. IoT құрылғыларының жады шектеулері 32-биттік
адрестеу ұзақ уақыт бойы өзекті болып қала беретінін білдіреді. 64-биттік мекенжайлар барлық үлкен жүйелер
үшін іс жүзінде стандарт болып табылады. WSC өнеркәсібі 2128 байттың барлығын талап етпесе де, SSD
жадын шешу үшін онжылдықта 2 64 (16 экзабайт) асатын сандар қажет болады. Мекенжай кеңістігінің шектеулі
өлшемі түзетуге қиын болатын ISA қателерінің бірі болып табылады 8, қазір үлкен мекенжайларды
жоспарлаған дұрыс.
Төмендегі кестеде осы төрт шарт бойынша үш тегін ашық бастапқы ISA туралы ақпаратты, сондай-ақ
компилятор мен портталған ОЖ қолдауын жинақтайды.
Тегін ашық бастапқы ISA ретінде RISC-V қолдайтын дәлелдер
Тегін ашық бастапқы ISA іс жүзінде жұмыс істей алатынын тексеру үшін біздің қауымдастық бір ISA
айналасында жиналуы керек. Тек RISC-V барлық төрт талапқа сәйкес келеді. Ол сонымен қатар басқа RISCтерге қарағанда 10-20 жас кіші, сондықтан біз олардың SPARC және OpenRISC кідіріс слоттары сияқты
қателерін талдап, түзете алдық. Сондықтан RISC-V командалық жүйесі қарапайым және түсінікті (бастапқы
мақаланың 4 және 5 кестелерін, сондай-ақ www.riscv.org сайтын қараңыз). Басқа ISA көптеген талаптарды
орындамайтындығынан басқа, 64-биттік SPARC V9 жеке меншік болып табылады және OpenRISC өз
қарқынын жоғалтты деген сұрақтар туындайды.
RISC-V әлі де үлкен серпінге ие. 1-кестеде RISC-V SoC құрастыратын әртүрлі командалар тізімі берілген.
Жоғары өнімді, ашық аппараттық дизайн жүйесін Chisel 9 пайдаланудың арқасында Беркли университетінде
қазірдің өзінде 8 микросхема түрі және процесте жаңа әзірлемелер бар. 2-кестеде бір 64-биттік RISC-V
ядросы аумақтың жартысын алып жатқаны, қуаттың жартысын тұтынатыны және сонымен бірге құбыры ұқсас
немесе бірдей техникалық процессі бар 32-биттік ARM-ге қарағанда жылдамырақ болатыны көрсетілген. Бұл
мәселеге қатысты көзқарасымызды толығымен жою қиын болса да, біз RISC-V тегін ашық бастапқы RISC ISA
үшін ең жақсы және қауіпсіз таңдау деп санаймыз. Сондықтан, біз RISC-V қауымдастығын кеңейту үшін 10
семинарлар сериясын өткіземіз және 3-кестедегі мысалдардан шабыттана отырып, енгізулерді сертификаттау
тапсырмасы үшін коммерциялық емес қор құруды және АХС қолдау мен дамытуды жоспарлап отырмыз.
Қорытынды
Біздің ойымыз ашық ОЖ-ға қарағанда ашық ISA үшін әлдеқайда түсінікті, өйткені ISA өте баяу өзгереді, ал
алгоритмдік инновациялар мен жаңа қолданбалар ОЖ үздіксіз эволюциясын қажет етеді. TCP/IP сияқты, бұл
операциялық жүйеге қарағанда қолдау және дамыту оңайырақ интерфейс стандарты.
Ашық АХС бұрын қолданылған, бірақ олар сұраныстың болмауына байланысты ешқашан танымал бола
алмады. IoT-тің төмен құны мен қуат тұтынуы, деректер орталықтары үшін 80x86 баламалы нұсқаға ұмтылу
және процессор өзектерінің барлық SoC-тердің шағын, бірақ барлық жерде таралған бөлігі ғана болып
табылатындығы жаңа сұранысты қанағаттандыра алатын ұсыныс жасау үшін біріктіріледі. RISC-V негізінен
RISC идеяларының ұзақ қызмет ету мерзімін ескере отырып, ешқашан өзгермейтін нұсқаулардың негізгі
жиынтығы, қосымша кеңейтімдердің баяу дамып келе жатқан жиыны және ешқашан қайта пайдаланылмайтын
бірегей нұсқаулары бар SoC-ге бағытталған. RISC-V үшін бірінші тірек IoT немесе WSC болуы мүмкін болса
да, біздің мақсатымыз кеңірек: Linux көптеген есептеуіш құрылғылар үшін стандартты операциялық жүйеге
айналғандай, біз RISC-V-ті болашақтың барлық есептеуіш құрылғылары үшін стандартты ISA ретінде
қарастырамыз.
Алдыңғы бөліктер:
RISC архитектурасын құру
Бірнеше рет айтылғандай, барлық x86 процессорлары, Motorola шешімдері және 1980-ші жылдары
шығарылған кристалдардың басым көпшілігі CISC (Күрделі нұсқаулар жиынтығын есептеу) архитектурасына
ие болды. Барлық мүмкіндіктердің үйлесуі чиптерді өндіру қиын және қымбат болып қана қоймай, сонымен
қатар олардың өнімділік шегіне жеткеніне әкелді. Жылдамдықты одан әрі арттыру үшін транзисторлардың
санын көбейту қажет болды, бірақ игерілген технологиялық стандарттар күрделі шешімдерді жасауға
мүмкіндік бермеді. Intel бұған i486 отбасының шығарылымымен тап болды. Өнімділікті жақсарту үшін олар
кэштерді, көбейткіштерді және құбыр желілерін қосып, процессор архитектурасына өзгерістер енгізді. Бір
сөзбен айтқанда, 486-шы «тастар» RISC архитектурасының кейбір «чиптерін» алды. Соған қарамастан,
американдық компанияның RISC платформасын құруға еш қатысы жоқ. Архитектура өзінің құрылуына 1980
жылдан 1984 жылға дейін Беркли RISC жобасын басқарған американдық инженер Дэвид Паттерсонға
қарыздар.
Дэвид Паттерсон - RISC әкесі
Содан кейін Berkeley RISC осындай ауқымды жобасында жүзеге асырылған бастапқы идея Motorola 68000-ді
зерттеу болды. Бақылау барысында бағдарламаларда ендірілген нұсқаулардың басым көпшілігі
қолданылмағаны анықталды. процессор. Мысалы, Unix жүйесі компиляция кезінде командалардың 30%-ын
ғана пайдаланды. Сондықтан Berkeley RISC жобасы тек ең қажетті нұсқауларды қамтитын осындай
процессорды жасауды жоспарлады.
Бірнеше жылдық зерттеулер мен әзірлемелерден кейін бірнеше процессор үлгілері шығарылды, олардың аты
бүкіл архитектураға атау берді. RISC аббревиатурасының өзі «Шектеулі (қысқартылған) нұсқаулар жинағы
компьютері» дегенді білдіреді, ол «қысқартылған нұсқаулар жинағы бар компьютер» деп аударылады.
«Қысқартылған нұсқаулар жинағы» нұсқаулар саны CISC чипінің нұсқаулары санынан аз дегенді білдірмейді.
Айырмашылығы мынада: кез келген RISC нұсқауы қарапайым және бір тактілік циклде орындалады (кем
дегенде ол керек), ал RISC нұсқаулығын орындау бірнеше ондаған такт циклдерін алуы мүмкін. Бұл жағдайда
команданың ұзындығы бекітіледі. Мысалы, 32 бит. Сондай-ақ, RISC-те көптеген жалпы мақсаттағы регистрлер
бар. Сонымен қатар, бұл архитектура құбырмен сипатталады. Дәл оны пайдалану (жеңілдетілген
нұсқаулармен бірге) RISC процессорларының тактілік жиілігін тиімді арттыруға мүмкіндік береді.
Беркли RISC жоба тобы
Дебюттік шешімдер RISC I және RISC II болды - Паттерсон мен Беркли RISC жобасының бастамасы.
Біріншісінде 44 000-нан астам транзисторлар болды және 4 МГц жиілікте жұмыс істеді. Мұндай процессор
шағын бағдарламаларды іске қосу кезінде VAX 11/780-ге қарағанда орта есеппен екі есе жылдам және «тас»
Zilog Z8000-ден шамамен төрт есе қуатты болды. RISC II өзінің предшественникінен көптеген нұсқаулармен
ерекшеленді: 39-ға қарсы 32. Ол жылдамырақ болды. Оның VAX процессорынан артықшылығы 200%-ға жетті,
ал Motorola 68000 кейбір бағдарламаларда шамамен төрт есе баяу болды.
Айта кету керек, Berkeley RISC VLSI деп аталатын үлкен жобаның бөлігі болды. Бұған 1981 жылы басталған
Стэнфорд университетінің MIPS жобасы да кірді.
MIPS процессорлары
MIPS жобасының жетекшісі Стэнфорд университетінің ғалымы Джон Хеннесси болды. Berkeley RISC сияқты,
стартаптың жұмысы құбырды және қысқартылған нұсқаулар жинағын пайдаланатын процессорды зерттеу
және құру болды. MIPS шешімдерінің архитектурасы кристалдың құрамында көмекші блоктардың болуын да
қамтамасыз етті: мысалы, жадымен жұмыс істеуге арналған модульдер, бүтін ALU (арифметикалық логикалық
бірлік) және нұсқаулық декодерлері. MIPS жоспары мен Беркли RISC арасындағы айырмашылық ұзартылған
құбырды пайдалану болды. RISC архитектурасы, негізінен, құбырды пайдалануды болжайды, бірақ Хеннесси
әрі қарай жүріп, процессордағы құбырды мүмкіндігінше ұзартуды ұсынды, яғни бір операцияның орындалуын
одан да көп «фрагментациялау». Бұл тәсіл тактілік жиілікті арттыру үшін одан да кең ауқымды ашты. Сонымен
қатар, құбырды ұзарту нұсқауларды орындаудың тиімдірек параллелизациясын қамтамасыз етті. Ол кезде
параллелизация RISC архитектурасының айрықша ерекшелігі болды, өйткені бұл функция ешбір CISC
процессорында оларда құбырлар пайда болғанға дейін жүзеге асырылмаған. Мысалы, MIPS-те, сондай-ақ
RISC-те, екіншісі орындай бастағанда бір пәрменнің орындалуы әлі аяқталмауы мүмкін. CISC
процессорларында бір команданы орындауды бастау үшін екіншісін өңдеуді аяқтау қажет болды.
Джон Хеннесси - MIPS архитектурасын жасаушы және қазір Стэнфорд университетінің президенті
Бастапқы MIPS процессорының спецификациясы көбейту және бөлу сияқты қарапайым операцияларды
қолдамайды. Бұл әдейі жасалды. Осылайша, әзірлеушілер құбырлар құлыптары деп аталатындарды
пайдалану қажеттілігінен құтылғысы келді. Бұғаттаудың өзі құбырдың белгілі бір сатысындағы операцияны бір
циклде аяқтау мүмкін болмаған жағдайда құбырды тоқтата тұру болды. Дегенмен, ерте MIPS енгізулері
құлыптармен жұмыс істеді және тіпті көбейту мен бөлуді қолдады. Түпнұсқа идея процессорларда жүзеге
асырылғанға дейін біраз уақыт қажет болды.
1984 жылы Хеннесси Стэнфорд университетін тастап, сол архитектурасы бар процессорларды шығара
бастаған MIPS Computer Systems компаниясын құрды. Бір жылдан кейін компанияның бірінші өнімі, 32-биттік
«тас» R2000 шығарылды. Бұл тарихтағы бірінші коммерциялық қол жетімді RISC моделі болды. 1988 жылы
R3000 деп аталатын келесі ұрпақ процессоры пайда болды. R2000-мен салыстырғанда ол көп өңдеуге және
нұсқауларға және деректер кэштеріне қолдау алды. «Үш мыңыншы» коммерциялық тұрғыдан табысты болды.
Процессор Silicon Graphics, DEC, Seiko Epson және басқалары сияқты компаниялардың серверлік жүйелері
мен жұмыс станцияларында қолданылған. Сонымен қатар R3000 Sony PlayStation ойын консолінің жүрегіне
айналды.
MIPS R3000 процессоры
MIPS процессорларының келесі буынын әзірлеуге үш жыл қажет болды. R4000 процессоры 1991 жылы
шығарылды. Ол 64-биттік архитектураны, кірістірілген сопроцессорды алды және алдыңғыларға қарағанда
жоғары тактілік жиілікте жұмыс істеді. Сонымен, R4000 ең аз жиілігі 100 МГц болды. Нұсқаулық пен деректер
кэшінің әрқайсысы 8 КБ болды. Екі жылдан кейін R4400 индексі бар процессордың өзгертілген нұсқасы
ұсынылды. Жаңа қалып екі еселенген кэшке ие болды және үлкенірек L2 кэшіне қолдау көрсетті. Сонымен
қатар, 64 биттік режимде жұмыс істегенде көптеген қателер түзетілді.
Бір қызығы, процессорларының коммерциялық табысына қарамастан, MIPS қаржылық қиындықтарға тап
болды және ақырында SGI сатып алып, MIPS Technologies атауын өзгертті. Осыдан кейін клондарды өндіруге
лицензиялар үшінші тарап компанияларына беріле бастады. Мысалы, QED (Quantum Effects Devices) Cisco
маршрутизаторларында пайдаланылған арзан MIPS процессорларын жасады. Ал NEC Nintendo 64 ойын
консолінде «тіркелген» VR4300 «тасын» шығарумен айналысты.
Nintendo 64-те қолданылатын NEC VR4300 процессоры
1994 жылы R8000 процессоры пайда болды. Бұл суперскалярлық архитектурасы бар бірінші MIPS шешімі
болды, ол бір команданың орындалуы екіншісінің нәтижесіне тәуелді болмаса, нұсқауларды параллель
орындауды білдіреді. Мысалы, R8000 сағаттық циклде төрт нұсқауға дейін өңдей алды.
1996 жылдың қаңтарында MIPS R10000 деп аталатын келесі ұрпақ процессорын ұсынды. 10 000-шы R8000
сияқты суперскалярлық архитектураны пайдаланды және шын мәнінде оның алдыңғы нұсқасының өзгертілген
нұсқасы болды. Сондай-ақ процессордың нұсқаулары мен деректер кэшінің әрқайсысы 32 КБ болды және 175
МГц немесе 195 МГц жиілікте жұмыс істеді. 1997 жылы чиптің 250 МГц нұсқасы тіпті пайда болды. Бірақ 195
МГц болса да, R10000 сол кездегі ең жылдам процессорлардың бірі болды.
Toshiba R10000 процессоры
Өкінішке орай, R10000 іске қосылғаннан кейін SGI MIPS архитектурасынан бас тартты. Барлық кейінгі
кристалдар «он мыңыншы» ядроға негізделген және онымен салыстырғанда ешқандай принципті
айырмашылықтар болған жоқ. Мысалы, 1998 жылы енгізілген R12000 процессоры құбырдағы қосымша кезеңді
алды және нұсқаулық кезектерімен жұмысты жақсартты. Оның тактілік жиілігі 270 МГц, 300 МГц немесе 360
МГц болды. R12000-ден кейін MIPS процессорларының тағы екі буыны шықты: R14000 және R16000. Олар
жылдамырақ жүйелік автобустарға, ұлғайтылған жиіліктерге және үлкен кэш жадыға қолдау көрсетті. Мысалы,
R16000 700 МГц жиілікте жұмыс істей алады және 64 Кбайт нұсқаулық пен деректер кэшіне қолдау көрсетеді.
Осыдан кейін MIPS 32 биттік және 64 биттік MIPS32 және MIPS64 архитектуралары үшін лицензияларды сата
бастады.
SPARC процессорлары
Sun Microsystems сонымен қатар архитектураны - SPARC (Scalable Processor ARChitecture) әзірлеуге шешім
қабылдады. Мысалы, инженерлер Berkeley RISC жобасынан шабыт алды. Ал Дэвид Паттерсонның өзі тіпті
жобаға кеңесші ретінде қатысқан. Дегенмен, нәтижесінде SPARC MIPS архитектурасына ұқсайды. Мысалы,
платформаның нұсқаулар жинағында көбейту және бөлу нұсқаулары да болмады. SPARC архитектурасының
ерекшелігі регистр терезесін пайдалану болды, оның көмегімен бағдарламалардағы функцияларды шақыру
процесі аздап өзгертілді. Әдетте, программаларды шақыру кезінде процессор өзінің күйін есте сақтайды (яғни
ол кейбір жалпы және арнайы регистрлердің күйін еске түсіреді), функцияны орындауға кірісті, содан кейін
функция шақырылғанға дейін бастапқы күйіне оралды. Ал SPARC процессорларында функция шақырылған
кезде регистр терезесінің соңына қажетті мәліметтер жазылды, ал регистр терезесінің өзі деректер терезенің
басында болатындай файл арқылы жылжытылды. Бұл тәсіл теориялық тұрғыдан жұмыстың жоғары
жылдамдығын қамтамасыз етті.
Fujitsu SPARC V7 процессоры
Архитектураның бірінші нұсқасы SPARC V7 деп аталды. Осы аттас процессор 1992 жылға дейін оның негізінде
шығарылды. Содан кейін архитектураның келесі буыны пайда болды - SPARC V8. Ол ешқандай түбегейлі
өзгерістерге ұшыраған жоқ. Негізгі айырмашылықтар көбейту және бөлу амалдарын қосу және өзгермелі нүкте
арифметикасының өнімділігін жақсарту болды. SPARC V7 сияқты, SPARC V8 де microSPARC процессоры
жасалған 32 биттік архитектура болып қала берді. Ол Low-End сегментіне жататын және шағын жұмыс
станцияларында және ендірілген жүйелерде қолданылған. Жақсартылған клондарды Texas Instruments және
Fujitsu да шығарды. SuperSPARC процессоры өнімдірек шешім болды.
SPARC V9 деп аталатын сәулет өнерінің келесі буынын құру бүкіл SPARC сәулет комитетінің жұмысы болды,
оған Sun-тен басқа, Texas Instruments, Fujitsu, Philips және басқа да көптеген компаниялар кірді. Платформа
64 битке дейін кеңейтілді және 9 сатылы құбырмен суперскаляр болды. SPARC V9 әрқайсысы 16 Кбайт
нұсқаулар мен деректерге бөлінген бірінші деңгейлі кэш жадыны, сондай-ақ сыйымдылығы 512-4096 КБ екінші
деңгейді пайдалануға арналған. Архитектура 143-200 МГц жиіліктегі UltraSPARC процессорында жүзеге
асырылады.
UltraSPARC II процессоры
UltraSPARC жалғыз SPARC V9 процессоры емес. 1997 жылы UltraSPARC II енгізілді.
ARM процессорлары
Қазіргі танымал ARM процессорларының тарихы, дәлірек айтсақ, ARM архитектурасының өзі Acorn Computers
және оның BBC Micro компьютерінен басталады. Ол MOS Technology 6502 тасты пайдаланды, бірақ оның
өнімділігі келесі буын жұмыс үстелін жасау үшін жеткіліксіз болды. Түрлі себептерге байланысты басқа қол
жетімді процессорлар да Acorn талаптарына сәйкес келмеді, сондықтан компания өзінің жеке чипін жасау
туралы ойлады. Әртүрлі архитектураларды зерттегеннен кейін Acorn инженерлері RISC процессорларын және
сол MOS Technology 6502 кристалын негізге алды.
BBC микро компьютері
Мысалы, MOS процессоры жадқа қол жеткізу архитектурасын және нұсқаулар жинағын алды. Әрбір нұсқау
арнайы төрт разрядты шарт кодымен толықтырылды. Кодтың мәніне (шын немесе жалған) байланысты
мәлімдеме орындалған немесе орындалмаған болуы мүмкін. Бұл құбырлы архитектураның өнімділігіне теріс
әсер ететін операциялардағы секірулер санын азайтты. Сондай-ақ, әзірлеушілер бірнеше қарапайым
операцияларды орындаған сәулет топтарын бастапқы қайта қарауға енгізді. Бір сөзбен айтқанда, олар RISC
ережелерінен сәл ауытқып кетті. Сайып келгенде, бұл процессордың өнімділігін ғана жақсартты.
Архитектураның дамуы 1985 жылы ARM процессорының жасалуымен аяқталды. Алғашқы коммерциялық
нұсқалары 1986 жылы пайда болды және ARM2 деп аталды. CISC процессорларымен салыстырғанда, ARM2
өте қарапайым болды - оның құрамында бар болғаны 30 000 транзистор болды. Сонымен бірге ол өте аз
энергия жұмсады және сонымен бірге айтарлықтай өнімді болды. Біраз уақыттан кейін ARM процессорлары
да пайда болды, оларға 4 КБ кэш қосылды, бұл кристалдардың өнімділігін одан әрі арттырды.
ARM2 процессоры
1980 жылдардың аяғында Acorn бұдан былай ARM архитектурасын жасауда жалғыз емес еді - Apple оған
қосылды. Осыған байланысты ARM процессорларымен тікелей айналысатын бөлімше жеке компанияға
айналдырылды - Advanced RISC Machines. Жаңа компанияның алғашқы өнімі ARM6 процессорының өзегі
және әлемдегі алғашқы PDA-лардың бірі Apple Newton-да қолданылған ARM610 процессоры болды.
Дегенмен, ARM процессорлары бұдан былай өнімділік бойынша CISC шешімдерімен бәсекелесе алмады, ал
MIPS процессорлары RISC сегментінде басым болды. Содан кейін ARM басқа жолға түсті. Компания ARM6-ны
кез келген үшінші тарап өндірушісі аз ақшаға өз процессорларында пайдалана алатын кірістірілген ядро
ретінде нарыққа шығара бастады. Бұл саясат өз жемісін берді және ARM ядросы өте танымал болды және
компанияның өзі коммерциялық табысқа жетті.
DEC-пен бірге StrongARM деп аталатын қуаттырақ ARM шешімдері үшін архитектура әзірленді, ол 5 сатылы
құбыры бар классикалық скаляр архитектурасы болды. Архитектурада жадты басқару блоктары және қолдау
көрсетілетін нұсқаулар мен әрқайсысы 16 Кбайт деректер кэштері болды.
StrongARM негізіндегі бірінші процессор SA-110 1996 жылы ақпанда таныстырылды. Ол 100 МГц, 160 МГц
немесе 200 МГц тактілік жиілікте жұмыс істеді. «Тас» Apple MessagePad 2000, сондай-ақ Acorn Computer Risc
ДК және Eidos Optima жүйелерінде қолданылған. 1996 жыл бойы SA-110 ең жоғары өнімді мобильді процессор
болып қала берді.
Apple MessagePad 2000 SA-110 процессорын пайдаланды
1997 жылы StrongARM архитектурасына құқықтар платформаның келесі буынын әзірлеумен айналысатын
Intel компаниясына сатылды. 2000 жылы ол ұсынылды, бірақ сәулет (дәлірек айтқанда архитектураны жүзеге
асыру) басқа атау алды - Xscale. Платформа көптеген өзгерістерге ұшырады. Мысалы, конвейердің ұзындығы
8 сатыға дейін ұлғайтылды. Нұсқаулар мен деректер үшін кэш жады 32 КБ дейін ұлғайды. XScale RIM
Blackberry, Dell Axim, Motorola A780 ұялы телефоны және басқа құрылғылар сияқты құрылғыларда
қолданылған.
PowerPC процессорлары
Дәлірек айтсақ, RISC архитектурасын әзірлеуді бастаған бірінші компания IBM болды. 1974 жылы IBM 801
процессорын әзірлеу басталды, ол осы платформаның алғашқы негізін қалады. Беркли RISC жобасы, сайып
келгенде, архитектураны қалыптастырды.
1980 жылдардың басында кейбір IBM ендірілген процессорлары 801 архитектурасын пайдаланды.Осы
архитектураға негізделген процессор да IBM 9370 компьютерінде «тіркелген».
1985 жылы IBM келесі буын RISC архитектурасын жасай бастады. Жоба Америка жобасы деп аталды.
Процессорды және оған арналған нұсқаулар жинағын әзірлеу 1990 жылы аяқталды. Кристалдың өзі POWER1
деп аталды және IBM серверлері мен жұмыс станцияларында пайдаланылды. Ол айтарлықтай жоғары
өнімділікке ие болды, бірақ оның көп чипті орналасуы болды және 11 түрлі микросұлбадан тұрды. 1992 жылы
IBM POWER1 процессорының бюджеттік нұсқасын ұсынды, ол бір чипке сыйды.
POWER1 процессоры. Тіпті чипсет
1993 жылы POWER2 архитектурасының екінші буыны енгізілді. Оған арифметикалық-логикалық амалдар мен
өзгермелі нүктелерді есептеудің бір қосымша блогы қосылды. Командалар жиыны да кеңейтілді: мысалы,
аппараттық деңгейде санның квадрат түбірін есептеу операциясы қосылды. Процессордың тактілік жиілігі 55
МГц-тен 71 МГц-ке дейін ауытқиды, ал деректер мен нұсқаулардың кэштері сәйкесінше 256 КБ және 32 Кбайт
болды. Бұрынғыдай, жаңа процессорда көп чипті орналасу болды. Бірақ 1994 жылдың мамырында бір чипті
нұсқасы да шығарылды.
Дегенмен, POWER2 шығарылғанға дейін IBM компаниясы Apple және Motorola компанияларымен серіктес
болып, POWER негізінде жақсартылған архитектураны құру үшін AIM альянсын құрады. Барлық үш компания
нарықтағы ең жылдам RISC процессорларының бірімен жеңіске жетті. Бірге жасалған архитектура PowerPC
деп аталады. POWER платформасының негізгі функциялары жиынтығынан басқа, ол екі режимде (биг-эндиан
және лим-эндиан) жұмыс істеуге қолдауды, өзгермелі нүктелерді есептеуге арналған жаңа нұсқауларды және
64-биттік үшін 32-биттік режиммен кері үйлесімділікті қосты. сәулет нұсқасы.
Бірінші буын PowerPC процессоры
Тар нарықтық тауашаларды иеленген басқа RISC архитектураларынан айырмашылығы, PowerPC x86-ге
бәсекелес ретінде орналасты. Оның негізгі мақсаты дербес компьютерлер болды. Мысалы, PowerPC
негізіндегі процессор Apple Macintosh компьютерлерінде ұзақ уақыт бойы - 2006 жылға дейін қолданылды.
Архитектура 2001 жылға дейін x86-мен тең дәрежеде бәсекелесті, бірақ содан кейін ол Intel және AMD
процессорларына төтеп бере алмады. Осыған қарамастан, PowerPC негізіндегі процессорлар Sony PlayStation
3 және Microsoft Xbox 360 ойын консольдерінде қолданылды.
Sony PlayStation 3 және Microsoft Xbox 360 консольдері PowerPC процессорымен жұмыс істейді
90-жылдары IBM POWER3 деп аталатын процессорлардың үшінші буынын шығара алды, бұл шын мәнінде
64-биттік PowerPC архитектурасын жүзеге асыру болды. Чип серверлер мен жұмыс станцияларында
пайдалану үшін жасалған, бірақ соңында оның негізгі қолданбасы IBM RS / 6000 жүйелері болды.
DEC Альфа процессорлары
DEC VAX архитектурасы үмітсіз ескірді және 90-шы жылдардың басында компания өзінің RISC платформасын
жасау туралы ойлана бастады. Бұл 1994 жылы шыққан Альфа болды. Бірінші процессор Alpha 21064 болды,
код атауы EV4. Бұл құбырлы 64-биттік суперскалярлық кристал. Яғни, оның классикалық RISC дизайны
болды. DEC процессоры оның барлық блоктарының жақсы жұмыс істеуімен жақсы ерекшеленді. Сонымен,
басқа «тастар» сияқты жиілікте EV4 жоғары өнімділікті көрсетті. Процессордың сыртқы шинасы 128 бит
болды. Оның 16 Кбайт деректер мен нұсқаулар кэші болды және CMOS-4 технологиясы арқылы жасалған.
EV4 тактілік жиілігі 150 МГц немесе 200 МГц болды. Біраз уақыттан кейін 21064A деп аталатын модификация
пайда болды, ол 300 МГц жылдамдықта жұмыс істей алады, бұл кристалды сол кездегі ең жылдам процессор
атағын қамтамасыз етті. EV4 негізгі қолданбалары серверлер мен жұмыс станцияларына айналды.
Alpha 21064 процессоры
Alpha 21064A процессорлардың келесі ұрпағы 21164 (EV5) шығарылғанға дейін DEC үздік үлгісі болып қала
берді. Оның екі бүтін блоктары және екі өзгермелі нүкте модулі болды. EV5-де кэш жадының үш деңгейі
болды: екеуі тікелей процессорда, ал үшіншісі сыртқы болды. L1 кэш екі бөлікке бөлінді: деректер кэші және 8
Кбайт нұсқаулық кэші. L2 кэш 96 КБ болды. Процессордың тактілік жиілігі 266 МГц-тен 333 МГц-ке дейін
болды. Alpha 21164 Alpha 21064A нұсқасын алды және Pentium Pro-ға дейінгі ең жылдам процессор болды.
Дегенмен, DEC-тің жауабы көп күттірмеді - компания жоғары тактілік жиілікте (666 МГц-ке дейін) жұмыс
істейтін тиімдірек Alpha 21164A процессорын шығарды. Процессор Digital, Network Appliance және Cray
Research сияқты компаниялардың жұмыс станциялары мен серверлік компьютерлерінде қолданылған.
Alpha 21264 процессоры
1996 жылы DEC процессорларының келесі буыны Alpha 21264 (EV6) ұсынылды. Чип өзінің алдындағыларға
қарағанда бірнеше маңызды өзгерістерге ие болды. Мысалы, ол ядроны толығымен қайта құруға әкелетін
нұсқаулардың ретсіз орындалуын қолдады. Бүтін блоктар және жүктеу/сақтау блоктары бір Ebox модуліне
біріктірілді, ал өзгермелі нүктелерді есептеу блоктары Fbox модуліне бөлінді. Блоктардың өзінен басқа, бұл
блоктарда регистр файлдары да болды. Кэш жадының құрылымы қайтадан екі деңгейлі болды - ол Alpha
21164-тегі үш деңгейлі кэшті ұйымдастыруды ауыстырды. Бірінші деңгейлі кэш нұсқаулар мен деректер үшін
жад бөлімін сақтап қалды. Әрбір бөліктің өлшемі 64 КБ болды. L2 кэшіне келетін болсақ, оның өлшемі 1 МБтан 16 МБ-қа дейін болуы мүмкін. Сонымен қатар, процессор филиалды болжау үшін қолдау алды. Уақыт өте
келе Alpha 21264 процессорларының көбірек нұсқалары шығарылды, оларда, ең алдымен, тактілік жиілігі
ұлғайтылды. Соңғы модификация 1250 МГц жиілікте жұмыс істейтін Alpha 21264E болды.
Өкінішке орай, Alpha 21264 процессорлар желісі «тәуелсіз» АСК тарихындағы соңғы болып табылады. 1998
жылдың басында DEC банкрот деп жарияланды және Compaq компаниясына ие болды.
Intel P5 архитектурасы
RISC архитектурасы бар процессорлар көбінесе мамандандырылған тауашаларды иеленді, алайда жұмыс
үстелі жүйелерінде x86 архитектурасы бар кристалдар қолданыла берді. Олардың дамуы біршама
өзгерістермен болса да жалғасты.
Intel өзінің i860 және i960 шешімдерімен RISC процессорлары нарығына шыққанына қарамастан, компания әлі
де x86 кристалдарына қатты сенді. «Тастардың» келесі ұрпағы 1993 жылы шығарылған P5 архитектурасына
негізделген әйгілі Pentium болды.
Көптеген жұмыстар атқарылды. Біріншіден, P5 суперскаляр болды. Архитектура екі құбырмен жұмыс істеді,
олардың әрқайсысы сағатына екі операцияны орындай алады. Екіншіден, деректер шинасы 64-битке
айналды, бұл бір циклде екі есе көп деректерді тасымалдауға мүмкіндік берді. Үшіншіден, деректер мен
нұсқаулар кэші екі бөлек 8 КБ блокқа бөлінді. Сонымен қатар, процессорға тармақты болжау блогы қосылды
және өзгермелі нүкте модулі тиімдірек болды.
Алғашқы Pentium процессорлары 60 МГц немесе 66 МГц жиілікте жұмыс істеді. Сонымен бірге олардың
жұмысы үшін 5 В кернеу қажет болды, сондықтан олар өте ыстық болды. Сондай-ақ, алғашқы «төкпелер»
өзгермелі нүктені есептеу блогының дұрыс жұмыс істемеуімен танымал болды, ол кейбір жағдайларда
сандарды бөлу кезінде дұрыс емес нәтиже берді. Сондықтан Intel көп ұзамай өңделген P54C архитектурасы
бар процессорларды іске қосты.
Intel Pentium процессоры
P54C қателерді түзетудің бір түріне айналды. Жаңа процессорлар өндірісі 0,6 микрондық техникалық процеске
ауыстырылды. Кристалдардың өздері қазір 3,3 В кернеуінде жұмыс істеп тұрды, бұл қызып кету мәселесін
шешті. Архитектура деңгейіндегі өзгерістерге келетін болсақ, P54C-ге бір жарым фактор қосылды - бұдан
былай процессорлар жүйелік шинаға қарағанда жоғары жиілікте жұмыс істеді. Процессордың жылдамдығы 75
МГц, 90 МГц немесе 100 МГц болды. P54C сонымен қатар 5-ші ұяшыққа немесе 7-розеткаға орнатылды. Тек
4-розеткаға қолдау көрсететін P5-тен айырмашылығы. P54C архитектурасының өзі 1995 жылы 350 нм
технологиялық технологияға ауыстырылған кезде тағы бір жаңарту алды. Бұл қайтадан кристалдардың қуат
тұтынуын азайтуға, сондай-ақ олардың тактілік жиілігін 200 МГц-ке дейін арттыруға мүмкіндік берді.
Кіріспе
RISC (Reduced Instruction Set Computer) – қысқартылған нұсқаулар жинағы бар компьютер. RISC келесі
қасиеттермен сипатталады:
· Тұрақты ұзындықтағы машина нұсқаулары (мысалы, 32 бит) және қарапайым нұсқау пішімі.
· Жад операцияларына арналған мамандандырылған командалар – оқу немесе жазу. Оқу-өзгерту-жазу
операциялары жоқ. Кез келген «өзгерту» операциялары тек регистрлердің мазмұны бойынша орындалады
(жүктеу және сақтау архитектурасы).
· Жалпы мақсаттағы регистрлердің үлкен саны (32 және одан да көп).
· Қысқартылған деректер түрлері бойынша «өзгерту» сияқты операцияларды қолдаудың болмауы - байт, 16биттік сөз. Мысалы, DEC Alpha командалық жүйесі тек 64 разрядты сөздермен операцияларды қамтыды және
байт, 16 және 32 разрядты сөздермен операцияларды орындау үшін процедураларды әзірлеуді және кейіннен
шақыруды талап етті.
· Процессордың өзінде микробағдарламаның болмауы. CISC процессорында микробағдарламалар арқылы
орындалатын нәрсе, RISC процессорында қарапайым (арнайы сақтау қоймасында болса да) машиналық код
ретінде орындалады, ол ОЖ ядросының және қолданбалы бағдарламалардың кодынан түбегейлі
айырмашылығы жоқ.
RISC типтік шешімдері:
· Спекуляциялық орындау... Шартты тармақталған нұсқауды кездестірген кезде процессор тармақты басқару
өрнегін бағалау аяқталғанша бірден екі тармақты да орындайды (немесе кем дегенде нұсқау кэшінде оқиды).
Шартты тармақтау кезінде құбырдың тоқтап қалуын жояды.
· Регистрлердің атын өзгерту... Процессордағы әрбір регистр шын мәнінде мәннің бірнеше нұсқасын
сақтайтын бірнеше параллель регистрлер болып табылады. Спекуляциялық орындауды жүзеге асыру үшін
қолданылады.
RISC процессоры нұсқауларды жеңілдету арқылы өнімділікті арттырды, осылайша оларды оңай декодтау
және орындау уақыты қысқарады. Алғашқы RISC процессорларында көбейту және бөлу нұсқаулары да болған
жоқ. Сондай-ақ, ол үдеткішті жеңілдетеді және суперскалярды (бірнеше орындау бірліктері бойынша
нұсқауларды параллельдеу) тиімдірек етеді.
Бірінші RISC архитектураларында декодтауды жеңілдетуге арналған нұсқаулардың көпшілігінің ұзындығы
бірдей және құрылымы ұқсас, арифметикалық операциялар тек регистрлермен жұмыс істейді, ал жадпен
жұмыс жеке жүктеу және сақтау нұсқаулары арқылы өтеді. Бұл қасиеттер құбырларды жақсырақ теңестіруге,
RISC жүйесіндегі құбырларды әлдеқайда тиімдірек етуге және жоғары тактілік жылдамдықтарға мүмкіндік
беруге мүмкіндік берді.
Қарапайым нұсқауларға назар аудару RISC архитектурасына әкеледі, оның мақсаты нұсқауларды оңай
құбырға салуға болатындай қарапайым ету және жоғары жиіліктегі құбырдың әрбір қадамында бір сағаттық
циклден артық емес өткізу болып табылады.
Кейінірек RISC-тің деректерді өңдеу және жадыға кіру нұсқауларын бөлудегі ең маңызды сипаттамасы - жадқа
кіру тек жүктеу және сақтау нұсқаулары арқылы өтеді, ал басқа командалардың барлығы ішкі регистрлермен
шектеледі. Бұл процессордың архитектурасын оңайлатты: ол нұсқаулардың бекітілген ұзындыққа,
жеңілдетілген конвейерлерге мүмкіндік берді және тек екі нұсқауда жадқа кіру кідірісімен айналысатын
логиканы оқшаулады. Нәтижесінде, RISC архитектуралары жүктеу/сақтау архитектуралары деп те аталады.
«Қысқартылған нұсқаулар жинағы» нұсқаулықтар жинағындағы нұсқаулар санын азайту деп қате түсініледі. Іс
жүзінде көптеген RISC процессорларында CISC процессорларына қарағанда нұсқаулар көп. Іс жүзінде әрбір
жеке нұсқаулық үшін жұмыс көлемі (және уақыты) қысқартылды - ең көбі бір жадқа кіру циклі ретінде. CISC
процессорының күрделі нұсқауларын аяқтау үшін жадқа қол жеткізудің жүздеген циклдары қажет болуы
мүмкін.
RISC жүйесі деп атауға болатын бірінші жүйе - 1964 жылы Сеймур Крем жасаған CDC 6600 суперкомпьютері.
Кейінірек RISC термині шын мәнінде «Сеймур Крей ойлап тапқан» («Шынында Сеймур Крэй ойлап тапқан»)
дегенді білдіреді деген әзіл пайда болды.
Чипте RISC процессорын жасаудың бірінші әрекетін 1975 жылы IBM жасады. Бұл жұмыс IBM 801
процессорлар тобын құруға әкелді, ол 1981 жылы ROMP атауымен чип түрінде шығарылды. ROMP Research
OPD дегенді білдіреді ( Office Product Division) Микропроцессор, одан кейін «Зерттеу МП». Бірнеше зерттеу
жобалары орындалды, олардың бірі POWER жүйесіне әкелді.
X86 архитектурасының процессорлары суперскалярлы RISC архитектурасына ауыстырылғаннан кейін, қазіргі
процессорлардың басым көпшілігі RISC архитектурасына негізделген деп айтуға болады.
RISC архитектурасыең қарапайым, бірақ жиі қолданылатын нұсқаулардың қысқартылған жиынтығын
компьютерде енгізуді болжайды, бұл процессордың аппараттық құралдарын жеңілдетуге және, демек, оның
өнімділігін арттыруға мүмкіндік береді.
RISC архитектурасын пайдаланған кезде командалар жиынын және процессордың (микропроцессордың)
құрылымын таңдау берілген командалардың процессорлық машинаның бір циклінде орындалуын қамтамасыз
етуге бағытталған. Неғұрлым күрделі, бірақ сирек операциялар ішкі бағдарламалармен қамтамасыз етіледі.
RISC бар компьютерде Машина циклі – регистрлерден екі операнд алынатын, операция ALU-да
орындалатын және нәтиже регистрде сақталатын уақыт. RISC пәрмендерінің көпшілігі жылдам регистр-
регистр командалары болып табылады және ОС-ға қатынаусыз орындалады. ОС-ға сілтемелер регистрлерді
жадтан жүктеу және оларды ОС-да сақтау нұсқауларында ғана сақталады. Бұл мүмкін болу үшін процессорда
ортақ регистрлердің жеткілікті үлкен саны болуы керек.
RISC архитектурасының сипатты ерекшеліктеріне байланысты – қысқартылған командалар жиынтығы (әдетте
50-100-ден аспайды), аз саны (әдетте 2-3) қарапайым адресация әдістері (негізінен регистр), қарапайым
нұсқау форматтарының аз саны бар. бекітілген өлшемдері және олардың өрістерінің функционалдық
тағайындалуы - процессордың басқару құрылғысы жеңілдетілген, ол бұл жағдайда микробағдарламаның
басқару деңгейі мен басқару жадысынан босатылады, ал оның басқару блогы «сұлба логикасы» негізінде
орындалуы мүмкін.
Жоғарыда атап өтілген RISC архитектурасының орындалатын нұсқаулары мен басқа мүмкіндіктерінің
санының азаюы процессор құрылымының соншалықты айтарлықтай жеңілдетілуіне әкеледі, оны үлкен
регистр файлы мен кэшпен бірге бір чипте іске асыру мүмкін болады.
Регистрлердің үлкен саны, әсіресе оларды тиімді пайдалануды қамтамасыз ететін «оңтайландырушы
компилятор» болған жағдайда, регистрлерде аралық нәтижелерді сақтау, операндтарды бір бағдарламадан
екінші бағдарламаға ауыстыру немесе ОС-ға қолжетімділікті шектеуге дейін азайтуға мүмкіндік береді.
үзілістердегі ОС регистрлеріне мазмұнды беруден бас тарта отырып, регистрлер арқылы ішкі бағдарлама.
RISC архитектурасының ерекшелігі механизм болып табылады регистр терезелерінің қабаттасуы,ОС-қа
және регистраралық аударымдарға қоңыраулар санын азайтуға арналған, бұл компьютерлердің жұмысын
жақсартады.
Тұрақты ұзындықтағы регистрлердің шағын топтары (тізілім терезелері) процедураларға динамикалық түрде
бөлінген. Параметрлерді бір процедурадан екінші процедураға тасымалдауға мүмкіндік беретін ретімен
орындалатын процедуралардың Windows қабаттары қабаттасады.Процедураны шақырған кезде процессор
басқа регистр терезесімен жұмыс істеуге ауысады, ал регистрлердің мазмұнын жадыға көшірудің қажеті жоқ. .
Терезе регистрлердің үш ішкі тобынан тұрады (9.21-сурет). Бірінші топша шақырушыдан берілген процедураға
жіберілген параметрлерді және ол қайтарылған кезде шақыру процедурасының нәтижелерін қамтиды. Екінші
топша процедураның жергілікті айнымалыларын қамтиды. Үшіншісі, осы және келесі процедура арқылы
шақырылатын арасындағы екі жақты алмасу үшін буфер бола отырып, осыдан соңғы параметрлерді береді,
ол өз кезегінде осы буфер арқылы осы процедурадан нәтижелерді алады. Осылайша, бұл процедура үшін
бірдей ішкі топ ұстау регистрлері, ал келесісі үшін - параметр регистрлері. Бағдарламаның барлық
процедуралары үшін қолжетімді бөлек терезе оның ғаламдық айнымалылары үшін бөлінген.
Қазіргі уақытта шетелде RISC архитектурасы бар бірқатар микропроцессорлар шығарылды. Мысал ретінде
Alpha 21264 микропроцессоры, WindowsCE үшін Intel StrongARM микропроцессоры негізіндегі өнімділігі
жоғары жұмыс станцияларын келтіруге болады.
Өнеркәсіп шығаратын компьютерде RISC-архитектурасы қолданыла бастағанына қарамастан, осы
архитектураның артықшылықтары мен кемшіліктері төңірегінде талқылаулар жалғасуда. Соңғысы, атап
айтқанда, кәдімгі архитектурадағы машиналар кодының ұзындығымен салыстырғанда компиляциядан кейінгі
бағдарлама кодының үлкен ұзындығын қамтиды. Мысалы, x86 пәрмендерін эмуляциялау кезінде оның әрбір
пәрмені орта есеппен RISC архитектурасы бар машинадан бес-алты пәрменді қажет етеді. Дегенмен,
зерттеулер көрсеткендей, команданың орындалу жылдамдығының артуы бағдарламаның объектінің кодын
ұзартудан болған жоғалтудан асып түседі.
1989 жылы Intel компаниясы Gray-1 суперкомпьютерінің іс жүзінде кремний баламасы болып табылатын RISC
архитектурасына негізделген бір чипті 80860 микропроцессорын жасай алды.
Микропроцессорлық архитектуралардың классификациясы
Олардың өнімділігін арттыруға бағытталған ЭЕМ архитектурасының дамуы көп жағдайда инструкциялар
жүйесін (жиынтығын) кеңейту, жоғары деңгейлі тілдердің примитивтеріне жақындайтын процедураларды
орындайтын күрделі командаларды енгізу, олардың санын көбейту арқылы процессорларды күрделендіру
жолымен жүреді. қолданылатын адрестеу әдістерінің және т.б.
Дегенмен, нұсқаулықтар жиынтығының кеңеюі мен күрделенуі бірқатар қажетсіз жанама әсерлерге ие.
Командалар жиынтығының кеңеюі, адрестеу әдістерінің санының ұлғаюы, күрделі командалардың енгізілуі
командалық кодтың ұзындығының, ең алдымен, операциялық кодтың ұлғаюымен бірге жүреді, бұл «жұмыс
кодын кеңейту», пәрмен пішімдерінің санының артуы. Бұл операция кодының шифрын шешуді және басқа
пәрмендерді өңдеу процедураларын қиындатады және баяулатады. Командаларды өңдеу процедураларының
күрделене түсуі «қатты» («тізбек») логикасы бар жылдам басқару құрылғыларының орнына басқару жады бар
микробағдарламаларды басқару құрылғыларына жүгінуге мәжбүр етеді.
Процессордың күрделілігінің артуы оны интегралдық схеманың бір микросхемасында жүзеге асыруды
қиындатады немесе тіпті мүмкін емес етеді, бұл өзара қосылыстардың ұзындығын қысқарту арқылы жоғары
өнімділікке қол жеткізуді жеңілдетеді.
Жоғары деңгейлі тілдердің компиляторлары жасаған бағдарлама кодының талдауы іс жүзінде «регистр,
регистр -> регистр» және «регистр» пішімдерінің қарапайым командаларының шектеулі жиынтығы ғана
қолданылатынын көрсетті.<->жады. "Компиляторлар күрделі нұсқауларды тиімді пайдалана алмайды. Дәл
осы бақылау RISC процессорлары деп аталатын қысқартылған командалар жинағы процессорларының
тұжырымдамасына әкелді.
RISC процессорларының пайда болуына нақты себеп болған тағы бір жағдай Cray сияқты құбырлы
процессорлардың архитектурасын дамыту болды. Бұл процессорлар жадпен жұмыс істеу үшін жеке
командалар жиынын және процессор регистрлеріндегі ақпаратты түрлендіру үшін бөлек нұсқаулар жиынын
пайдаланады. Әрбір осындай пәрмен орындалу уақыты бірдей (пәрменді алу, пәрменнің шифрын шешу,
орындау, нәтижені жазу) аздаған кезеңдерге біркелкі бөлінеді, бұл келесі нәтижені шығаруға қабілетті тиімді
процессорлық құбырды құруға мүмкіндік береді. әр сағат цикліне пәрмен беріңіз.
Дегенмен, нұсқауларды құрастыру конвейерге дәйекті түрде орындалатын нұсқаулар арасындағы деректер
мен басқару тәуелділіктеріне қатысты мәселелерді тудырды. Мысалы, егер келесі пәрмен алдыңғысының
нәтижесін пайдаланса, онда бұл нәтижені алу үшін қажетті бірнеше цикл үшін оның орындалуы мүмкін емес.
Ұқсас мәселелер шартты тармақты командаларды орындау кезінде туындайды, егер шартты тармақты
команда декодтау кезінде секірілетін деректер әлі дайын болмаса.
Бұл мәселелер не конвейерде командалардың орындалу ретін орнататын және келесі пәрменді орындау
мүмкін болмаған кезде «Операция жоқ» пәрмендерін кірістіретін компилятор арқылы немесе командалар
арасындағы тәуелділіктерді бақылайтын және қайшылықтарды жойатын арнайы процессордың аппараттық
құралдары арқылы шешіледі.
RISC процессорларын бөлек сыныпқа бөлгеннен кейін дәстүрлі нұсқаулар жиыны бар процессорлар толық
нұсқаулар жиынтығы бар CISC процессорлары ретінде белгілі болды. Әдетте, бұл процессорлардағы
нұсқаулар әртүрлі пішімдерге ие және оларды көрсету үшін жад ұяшықтарының әртүрлі санын қажет етеді.
Бұл орындау кезінде оны декодтау кезінде нұсқаудың түрін анықтауға әкеледі, бұл процессордың басқару
блогын қиындатады және тактілік жиіліктің бірдей элементтік база негізіндегі RISC процессорларында қол
жеткізуге болатын деңгейге дейін ұлғаюына жол бермейді.
RISC процессорлары оперативті жадқа қол жеткізу уақытын қысқарту үшін құрылымдық әдістерді тиімді
пайдалануға болатын қолданбаларда тиімді екені анық. Егер бағдарлама жадыға қол жеткізу адрестерінің
ерікті тізбегін генерациялайтын болса және әрбір деректер бірлігі тек бір команданы орындау үшін
пайдаланылса, онда іс жүзінде процессордың өнімділігі негізгі жадқа кіруге кететін уақытпен анықталады. Бұл
жағдайда қысқартылған командалар жинағын пайдалану тек тиімділікті төмендетеді, өйткені ол жадты, жадтан
жадқа нұсқауларды орындаудың орнына жады мен регистр арасында операндтарды тасымалдауды қажет
етеді. Бағдарламалаушы жад деңгейлері арасында тасымалдау кезінде мүмкіндігінше тасымалданатын
деректер блоктарының барлық деректері өңдеуге қатысатындай өңделетін деректердің жергілікті орнын
анықтау қажеттілігін ескеруі керек. Егер программа мәліметтер ретсіз орналасатындай етіп жазылса және
әрбір жіберілген деректер блогынан оның аз ғана бөлігі ғана пайдаланылатын болса, онда өңдеу жылдамдығы
негізгі жадының жылдамдығына дейін бірнеше есе баяулайды. Мысал ретінде, 1.1-кестеде Hadamard
түрлендіруін жүзеге асыру кезінде Alpha 21066 233 МГц микропроцессорының өнімділігін өлшеу нәтижелерін
ұсынамыз. n = 8 - 20.
1.1-кесте Hadamard түрлендіруін орындау кезіндегі Alpha 2I066 микропроцессорының өнімділігі
Мысал деректер чиптік кэште болғанша өнімділік жақсы екенін көрсетеді. Деректер көлемі кэш жадының
өлшемінен асып кеткен кезде және жадқа кірулер «біркелкі» бөлінген мекенжайларға ауысқан кезде өнімділік
7 еседен астам төмендейді.
Микропроцессорлардың дамуы бағдарламалық қамтамасыз етудің (бағдарламалық қамтамасыз етудің)
үздіксіздігін сақтауға және архитектураны жақсарту және тактілік жиілікті арттыру арқылы өнімділікті арттыруға
үнемі ұмтылумен жүреді. Бағдарламалық қамтамасыз етудің үздіксіздігін сақтау және өнімділікті арттыру,
жалпы алғанда, бір-біріне қайшы келеді. CISC процессорлары ретінде жіктелген x86 нұсқаулар жинағы бар
процессорлар RISC процессорларының жетекші өндірушілерінің микропроцессорларымен салыстырғанда
сағаттық жылдамдығы төмен. x86 микропроцессорларының өнімділігі бірдей элементтік негізде жүзеге
асырылған RISC процессорларына қарағанда айтарлықтай төмен қосымшалар бар. Дегенмен, соңғы
онжылдықта шығарылған x86 процессорларының әртүрлі буындары үшін үйлесімді бағдарламалық
жасақтаманы пайдалану мүмкіндігі оларға нарықта тұрақты үстем жағдайды береді.
Қазіргі уақытта Intel компаниясы қабылдаған NexGen және AMD әзірлемелерінің негізінде x86 архитектурасы
аясында өнімділікті жақсарту мәселесін шешуге әрекет жасалуда. Бұл компаниялар соңғы әзірлемелерде x86
отбасының CISC микропроцессорларымен командалық жүйенің үздіксіздігін сақтай отырып, RISC
архитектурасының элементтерін пайдалана отырып, жаңа құрылғылар жасайды. Бұл тәсілдің мысалы ретінде
ажыратылған архитектура тұжырымдамасын және RISC ядроларын пайдаланатын Nx586 (NexGen), K5, K6
(AMD), Pentium PRO, Pentium II (Intel) микропроцессорларын келтіруге болады. Микропроцессорға аппараттық
аудармашы орнатылған, ол x86 нұсқауларын RISC процессорының нұсқауларына түрлендіреді. Бұл жағдайда
бір x86 нұсқауы RISC процессорының төрт нұсқауына дейін жасай алады. Нұсқаулар дамыған суперскалярлы
процессордағыдай орындалады. Intel бұл тәсілді өзінің Pentium Pro микропроцессорымен қабылдады, ол RISC
архитектурасындағы жетістіктер аясында өз орнын айтарлықтай нығайтты.
Суперскалярлық процессорлар
Download