Кіріспе
RISC-ке негізделген микропроцессорды жобалау бойынша ғылыми-зерттеу жобасы. Беркли RISC – Қорғаныс озық зерттеу жобалары агенттігінің (DARPA) VLSI жобасы аясында жүргізілген екі маңызды ғылыми-зерттеу жобасының бірі. RISC-ті Дэвид Паттерсон (RISC терминін енгізген) 1980 және 1984 жылдар аралығында Калифорния университетінде, Берклиде басқарды. Екінші жоба 1981 жылдан бастап 1984 жылға дейін Стэнфорд университетінде MIPS бағдарламасы аясында жүргізілді. Беркли жобасының сәттілігі соншалық, ол одан кейін жасалған барлық ұқсас жобалар үшін үлгі болды, тіпті MIPS та "RISC процессоры" деп аталды. Беркли RISC дизайны кейіннен Sun Microsystems компаниясы SPARC архитектурасы ретінде коммерцияландырылды және ARM архитектурасына әсер етті.
Berkeley RISC is one of two seminal research projects into reduced instruction set computer (RISC) based microprocessor design taking place under the Defense Advanced Research Projects Agency VLSI Project. RISC was led by David Patterson (who coined the term RISC) at the University of California, Berkeley between 1980 and 1984. The other project took place a short distance away at Stanford University under their MIPS effort starting in 1981 and running until 1984. Berkeley's project was so successful that it became the name for all similar designs to follow; even the MIPS would become known as a "RISC processor". The Berkeley RISC design was later commercialized by Sun Microsystems as the SPARC architecture, and inspired the ARM architecture.
RISC тұжырымдамасы
RISC және MIPS екеуі де бағдарламалардың басым көпшілігі процессордың қол жетімді нұсқаулар жиынтығының шағын бөлігін ғана пайдаланатынын түсіну нәтижесінде жасалды. 1978 жылғы танымал мақаласында Эндрю С. Таненбаум күрделі 10,000 жолды жоғары деңгейдегі бағдарламаны 8 биттік белгіленген ұзындығы бар операциялық кодты қолдана отырып, қарапайым нұсқаулар жиынтығының архитектурасын пайдаланып көрсетуге болатынын көрсетті. Бұл IBM-нің өз кодтарын, мысалы IBM 360 жүйелерінде жұмыс істеуін зерттеулерінен алынған шамамен бірдей қорытындыға сәйкес келді, олардың зерттеулері барлық қол жетімді нұсқаулардың аз бөлігін ғана қолданды. Бұл екі зерттеу де нақты әлемдегі кодты орындайтын әлдеқайда қарапайым процессор жасауға болатынын көрсетті. Сол кезде толық зерттелмеген тағы бір мәселе – Таненбаумның тұрақтылардың 81%-ы 0, 1 немесе 2-ге тең екенін атап өткені. RISC I үлғерімділікті арттыру үшін екі сатылы нұсқау құбырына ие болды, бірақ қазіргі заманғы жобалардағыдай күрделі нұсқауларды қайта реттеу мүмкіндігі болмады. Бұл шартты тармақтарды қиындыққа толы етті, себебі компилятор шартты тармақтан кейінгі нұсқауды (сонымен аталатын тармақ кідіру орны) шартты нәтижеге тәуелді емес деп таңдалған нәрсемен толтыруы керек еді. Кейде осы жағдайдағы жалғыз қолайлы нұсқау NOP болып табылады. Кейінгі RISC стиліндегі көптеген жобалар әлі де тармақ кідіруін ескеруді қажет етеді. Бір айлық тексеру мен түзетуден кейін, 1981 жылдың 22 маусымында жоба инновациялық MOSIS қызметіне 2 мкм (2000 нм) технологиясын қолдана отырып өндіріске жіберілді. Әртүрлі кешігулер оларды төрт рет маскаларын тастауға мәжбүр етті, ал жұмыс істейтін үлгілері бар пластиналар 1982 жылдың мамырына дейін Берклиге қайта келмеді. Бірінші жұмыс істейтін RISC I "компьютері" (іс жүзінде, тексеру тақтасы) 11 маусымда іске қосылды. Тестілеу кезінде чиптер күткеннен нашар өнімділік көрсетті. Жалпы, нұсқауды орындауға 2 мкс уақыт кетті, ал бастапқы жоба шамамен 0,4 мкс (бес есе жылдам) уақытты қарастырған. Бұл мәселенің нақты себептері толыққанды түсіндірілген жоқ. Алайда, тестілеу барысында кейбір нұсқаулар күткендей жылдамдықпен орындалғаны анық болды, бұл мәселенің физикалық, емес логикалық екенін көрсетеді. Егер жоба толық жылдамдықпен жұмыс істесе, өнімділік өте жақсы болар еді. Әртүрлі шағын бағдарламаларды қолдана отырып, 4 МГц RISC I-ді 5 МГц 32 биттік VAX 11/780 және 5 МГц 16 биттік Zilog Z8000-мен салыстырған симуляциялар оны анық көрсетті. Бағдарлама көлемі VAX-тен шамамен 30%-ға үлкен болды, бірақ Z8000-ге өте жақын болды, бұл CISC жобаларының жоғары код тығыздығы шын мәнінде соншалықты әсерлі емес деген пікірді растады. Жалпы өнімділік тұрғысынан, RISC I VAX-тен екі есе жылдам және Z8000-ден төрт есе жылдам болды. Бағдарламалар жадқа шамамен бірдей мөлшерде кірді, себебі үлкен регистрлік файл қажетті операндтың чипте болу ықтималдығын күрт арттырды. Бұл нәтижелерді контекстке қою маңызды. RISC дизайны VAX-тен баяу болғанына қарамастан, бұл дизайнның маңыздылығына ешқандай әсер етпеді. RISC бұрынғы фабриканы пайдаланып, нағыз 32 биттік процессорды нағыз чипте жасауға мүмкіндік берді. Дәстүрлі жобалар мұны жасай алмады, себебі чип бетінің көп бөлігі декодерлік логикаға арналған, ал Motorola 68020 сияқты нағыз 32 биттік дизайн практикалық болу үшін жаңа фабрикаларды қажет етті. Сол фабрикаларды пайдаланып, RISC I бәсекелестерден әлдеқайда жақсы өнімділік көрсетуі мүмкін еді. 2015 жылдың 12 ақпанында IEEE RISC I-дің үлесін еске алу үшін UC Берклиде тақта орнатты. Тақтада былай деп жазылған: UC Беркли студенттері 1981 жылы бірінші VLSI қысқартылған нұсқаулық компьютерін жобалап, жасады. RISC I-дің қарапайым нұсқаулары нұсқауларды кодтау және басқару үшін қажетті аппараттық құралдарды азайтты, бұл 32 биттік адрес кеңістігін, үлкен регистрлер жиынтығын және құбыржолды орындауды қамтамасыз етті. C бағдарламаларымен және Unix операциялық жүйесімен жақсы үйлесетін RISC I бүгінде кеңінен қолданылатын нұсқаулар жиынтығына әсер етті, соның ішінде ойын консольдары, смартфондар және планшеттер үшін жасалған нұсқаулар жиынтығына.
UC Berkeley students designed and built the first VLSI reduced instruction set computer in 1981. The simplified instructions of RISC I reduced the hardware for instruction decode and control, which enabled a flat 32 bit address space, a large set of registers, and pipelined execution. A good match to C programs and the Unix operating system, RISC I influenced instruction sets widely used today, including those for game consoles, smartphones and tablets.
RISC II
RISC I жобасының іске асырылуы кешіктірілді, ал Берклидегі жұмыстар жаңа Blue жобасына көшті. Blue жобасы Gold жобасымен салыстырғанда баяу дамыды, себебі Gold өндіріске жіберілгеннен кейін шұғыл қажеттілік болмады, сондай-ақ сыныптар мен студенттердің алмасуы да осыған әсер етті. Бұл қарқын сонымен қатар дизайнды едәуір жақсартатын бірнеше жаңа мүмкіндіктерді қосуға мүмкіндік берді. Басты айырмашылық – бір битке бір жолды (үштен екіге дейін) жоятын, тіркелімдер жиынының көлемін күрт қысқартатын қарапайым кэш схемасы. Бұл өзгеріс шинаның уақытын күрделендіруді талап етті, бірақ бұл шағын құн болды және қажеттіліктерді қанағаттандыру үшін дизайнның басқа да бірнеше бөліктері жылдамдатылды. Жаңа дизайн арқасында үлкен үнемдеуге қол жеткізілді. Gold түсте 6 терезеде 78 тіркелім болса, Blue түсте 138 тіркелім болды, олар әрқайсысы 16 тіркелімнен тұратын 8 терезеге бөлінді, сондай-ақ тағы 10 жаһандық тіркелім болды. Тіркелімдер жиынының кеңеюі белгілі бір процедураның барлық жергілікті сақтауын тіркелімдерге орналастыру мүмкіндігін арттырады, сонымен қатар шағылыстыру тереңдігі де артты. Дегенмен, үлкен тіркелімдер жиынына аз транзисторлар қажет болды, ал RISC II ретінде жасалған соңғы Blue дизайны бар болғаны 40,760 транзистормен RISC нұсқаулар жиынтығын жүзеге асырды. Басқа маңызды өзгеріс – 16 биттік нұсқауларды 32 биттік форматқа «көшіретін» нұсқаулар форматын кеңейтуші. Бұл кішкентай нұсқауларды, әдетте бір немесе ешқандай операторы жоқ нәрселерді, мысалы, NOP сияқты, жадыда кішкентай 16 биттік форматта сақтауға және екі мұндай нұсқауды бір машина сөзіне жинауға мүмкіндік берді. Нұсқаулар арифметикалық-логикалық құрылғыға (ALU) жеткенге дейін көрінбейтін түрде 32 биттік нұсқаларға кеңейтілді, яғни негізгі логикаға ешқандай өзгеріс енгізудің қажеті болмады. Бұл қарапайым техника кодтың тығыздығын таңқаларлық 30%-ға арттырды, нәтижесінде Blue-дағы бірдей бағдарлама жадқа кіру санының азаюына байланысты Gold-қа қарағанда жылдам орындалды. RISC II кремнийде үлкен табысқа ие болды және сынақтарда барлық тапсырмалар бойынша дерлік барлық мини-компьютерлерден жақсы нәтижелер көрсетті. Мысалы, өнімділік VAX жылдамдығының 85%-дан 256%-ға дейін әртүрлі жүктемелерде болды. RISC II сонымен қатар әйгілі Motorola 68000 микросхемасына қарсы сынақтан өтті, ол сол кезде ең жақсы коммерциялық микросхема деп есептелді, және оны 140%-дан 420%-ға дейін басып озды.
Келесілер
Бастапқы RISC жобалары бойынша жұмыс RISC II-мен аяқталды, бірақ бұл тұжырым Берклиде сақталды. Негізгі ядро 1984 жылы SOAR жүйесінде қайта пайдаланылды, іс жүзінде Smalltalk-ты орындауға бейімделген RISC (RISC-тің C-ді орындауы мүмкін екенін айтуға болатындай), ал кейінірек Smalltalk орнына Prolog-ты орындаған ұқсас VLSI BAM жүйесінде де қолданылды. Тағы бір күш-жігер SPUR болды, ол толық 32 биттік жұмыс станциясын құру үшін қажетті чиптер жиынтығы еді. RISC аса танымал болмаса да, Sun Microsystems компаниясының SPARC процессор дизайнының негізі ретінде маңыздырақ болды. RISC тұжырымдамасының күшін алғаш рет SPARC көрсетті; олар бірінші Sun 4s машиналарымен бірге нарықтағы барлық өнімдерден жоғары өнімділік көрсетті. Бұл Unix жүйелерін жасаушылардың барлығын өздерінің RISC дизайнын жасауға асықтырды, нәтижесінде DEC Alpha және PA RISC сияқты дизайн пайда болды, ал Silicon Graphics (SGI) MIPS Computer Systems компаниясын сатып алды. 1986 жылға қарай көптеген ірі чип өндірушілер Motorola 88000, Fairchild Clipper, AMD 29000 және PowerPC сияқты жобалармен айналысты. 2015 жылдың 13 ақпанында IEEE Санта-Кларадағы Oracle Corporation ғимаратына тақта орнатты. Онда былай деп жазылған:
Sun Microsystems компаниясы 1987 жылы Scalable Processor Architecture (SPARC) RISC процессорын таныстырды. UC Berkeley RISC және Sun компиляторлары мен операциялық жүйелерінің жетістіктеріне сүйене отырып, SPARC архитектурасы жартылай өткізгіштер, бағдарламалық қамтамасы, жүйелік технология және пайдаланушылардың қажеттіліктеріне оңай бейімделе алатын. Архитектура инженерлік, бизнес, интернет және бұлтты есептеу салаларында жоғары өнімділік пен кеңейтілген жұмыс станциялары мен серверлерді қамтамасыз етті. Азайтылған нұсқаулар жиынтығы идеясы үшін жасалған және онымен бірге дамытылған техникалар дәстүрлі "күрделі" x86 архитектурасының жаңа және кеңейтілген нұсқаларында да қолданылды. Қазіргі микропроцессорлардың транзисторларының көп бөлігі үлкен кэштерге, көп сатылы конвейерлерге, суперскалярлық нұсқауларды жіберуге, тармақтарды болжауға және нұсқаулар архитектурасына қарамастан қолданылатын басқа да заманауи әдістерге арналған. Қазіргі x86 жүйелерінде нұсқауларды декодтауға жұмсалатын кремнийдің үлесі салыстырмалы түрде аз болғандықтан, "күрделі" және RISC процессорларын жүзеге асыру арасындағы шекара бұлыңқы болды.