AT&T Hobbit микропроцессоры 1990-жылдары жасалған. CRISP архитектурасы, C тілі үшін оптимизацияланған, жылдам өңдеу, бірақ коммерциялық сәтсіздікке ұшырады.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
1990 жылдардағы микропроцессор дизайны
1990s microprocessor design
AT&T Hobbit – 1990 жылдардың басында AT&T Corporation компаниясы әзірлеген микропроцессор дизайны. Ол компанияның CRISP (C language Reduced Instruction Set Processor) дизайны негізінде құрылған, бұл классикалық RISC құбыр желісіне ұқсас және ол өз кезегінде 1980 жылдардың соңында Bell Labs компаниясы жасаған C машинасының дизайнынан дамыған. Барлығы C бағдарламалау тілінен жинақталған кодты орындауға бағытталған. Дизайн жылдам нұсқауларды түсіндіруге, индекстелген массивтерге қол жеткізуге және процедураларды шақыруға шоғырланған. Жоба 1994 жылдың наурыз айында тоқтатылды, себебі Hobbit коммерциялық сәттілікке жете алмады.
The AT&T Hobbit is a microprocessor design developed by AT&T Corporation in the early 1990s. It was based on the company's CRISP (C language Reduced Instruction Set Processor) design resembling the classic RISC pipeline, and which in turn grew out of the C Machine design by Bell Labs of the late 1980s. All were optimized for running code compiled from the C programming language. The design concentrates on fast instruction decoding, indexed array access, and procedure calls. The project was ended in March 1994 because the Hobbit failed to achieve commercially viable sales.
Дизайн
Жүктілік-қойма архитектурасын іске асыратын дәстүрлі RISC жобасында жадқа деректерді тіркелімдерге тікелей жүктейтін және деректерді жадқа қайта сақтайтын нұсқаулар арқылы қол жеткізіледі, ал деректерді өңдейтін нұсқаулар тіркелімдерде ғана жұмыс істейді. Деректерді өңдеу операцияларын бір сағат циклымен шектеу арқылы нұсқауларды жіберу үшін қарапайым басқару механизмін қолдануға болады, бұл нұсқау құбырларын баптауды жеңілдетеді және суперскалярлық қолдауды қосуға мүмкіндік береді. Алайда, бағдарламалау тілдері осылай жұмыс істемейді. Олар әдетте жергілікті айнымалылар мен басқа да ақпаратты қамтитын стек қолданады, ол процедуралар үшін стектік кадр немесе белсендіру жазбасы деп аталады. Компилятор процессордың жүктемелік-қойма дизайнын пайдалана отырып, белсендіру жазбаларын құру үшін код жазады. CRISP іске асылымындағы C машинасы және одан кейін дамыған Hobbit екеуі де бағдарламалау тілдері қолданатын жадқа қол жеткізу түрлерін қолдауға бағытталған, C бағдарламалау тіліне ерекше мән беріледі. Олар бағдарламалық стек жоғарғы жағына сәйкес келетін адрес кеңістігіне бейімделеді және тек стекке қатысты адрестеу режимін пайдаланып қол жетімді болады. CRISP архитектурасы "2½ адрестік жадтан жадқа машина" деп сипатталды, онда нұсқаулар нөл, бір немесе екі жад адресін пайдалана алады және есептеу нәтижелерін сақтау үшін аккумулятор деп аталатын стек жазбасын қолдана алады. Bellmac 32 архитектурасын еске түсіретін CRISP архитектурасы процедура шақыруын қолдау үшін арнайы нұсқаулар жиынтығын ұсынады: call – қайтару адресін сақтап, процедураға өтеді; enter – процедура үшін стектік кадрды бөліп, қажет болса стек кэш жазбаларын тазартады; return – стектік кадрды босатып, шақырушының қайтару адресіне өтеді; catch – жадтан стек жазбаларын қалпына келтіреді. Android (Dalvik), Parrot және Lua үшін жасалған VM-дер де тіркелімге негізделген.
In a traditional RISC design implementing a load–store architecture, memory is accessed through instructions that explicitly load data into registers and store data back to memory, with instructions that manipulate data working solely on the registers. By seeking to limit the data processing operations to a single clock cycle, a simpler control mechanism can be employed to dispatch instructions, making it easier to tune the instruction pipelines, and add superscalar support. However, programming languages do not actually operate in this fashion. Generally they use a stack containing local variables and other information for subroutines known as a stack frame or activation record. The compiler writes code to create activation records using the underlying processor's load store design. The C Machine in its CRISP implementation, and the Hobbit that followed directly, both aim to support the types of memory access that programming languages use, with the C programming language being a particular consideration. mapped to the address space corresponding to the top of the program stack, these being purely accessible using a stack relative addressing mode. The CRISP architecture was described as a "2½ address memory to memory machine", where instructions can employ zero, one, or two memory addresses and can employ a stack entry called the accumulator for computation results. Reminiscent of the Bellmac 32 architecture, various instructions designed to support procedure calling are provided by the CRISP architecture: call saves the return address and branches to a routine; enter allocates a stack frame for a routine, flushing stack cache entries if necessary; return deallocates the stack frame and branches to the caller's return address; catch restores stack entries from memory. The VMs for Android (Dalvik), Parrot, and Lua are also register based.