Минималды нұсқаулар жинағы бар процессор архитектурасы
Minimal instruction set computer
Минималды жиынтық нұсқаулар жинағы (MISC) CPU архитектурасы – процессордың қарапайым, жылдам және кішкентай нұсқаулар жинағы. Стектік машина архитектурасы.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
CPU архитектурасы
CPU architecture
Минималды нұсқаулар жиынтығы компьютер (MISC) – орталық процессор (CPU) архитектурасы, көбінесе микропроцессор түрінде, өте шектеулі негізгі операциялар мен сәйкес келетін операциялық кодтардан (опкодтардан) тұрады, олар бірге нұсқаулар жиынтығын құрайды. Мұндай жиынтықтар көбінесе операндарды көрсету өлшемін азайту үшін тіркеуге емес, стекке негізделген. Мұндай стек машинасы архитектурасы өзіндік қарапайым, себебі барлық нұсқаулар стектегі ең жоғарғы жазбалармен жұмыс істейді. Стек архитектурасының бір салдары – жалпы алғанда кішірек нұсқаулар жиынтығы, бұл нұсқауларды кодтау блогының кішірек және жылдам жұмыс істеуіне, сондай-ақ жеке нұсқаулардың жалпы жылдам орындалуына мүмкіндік береді.
Minimal instruction set computer (MISC) is a central processing unit (CPU) architecture, usually in the form of a microprocessor, with a very small number of basic operations and corresponding opcodes, together forming an instruction set. Such sets are commonly stack based rather than register based to reduce the size of operand specifiers. Such a stack machine architecture is inherently simpler since all instructions operate on the top most stack entries. One result of the stack architecture is an overall smaller instruction set, allowing a smaller and faster instruction decode unit with overall faster operation of individual instructions.
Өзгерістер мен жобалау философиясы
MISC архитектурасының стек анықтамасынан бөлек, MISC архитектурасы қолдау көрсететін нұсқаулардың санымен анықталады. Әдетте, минималды нұсқаулар жиынтығы бар компьютер 32 немесе одан аз нұсқауға ие деп есептеледі, мұнда NOP, RESET және CPUID сияқты нұсқаулар, олардың негізгі мәніне байланысты, әдетте консенсус бойынша есепке алынбайды. 32 нұсқау – MISC үшін рұқсат етілген нұсқаулардың ең жоғары саны саналады, бірақ 16 немесе 8 нұсқау "Минималды нұсқаулар" деген ұғымға жақын. MISC процессорында нөл нұсқау болмайды, себебі ол нөлдік нұсқаулар жиынтығы бар компьютер болып табылады. MISC процессорында бір ғана нұсқау болмайды, өйткені ол бір нұсқаулық жиынтығы бар компьютер. Іске асырылған процессор нұсқаулары әдетте кең ауқымды кірістерді қолдамайды, сондықтан бұл әдетте 8 биттік немесе 16 биттік процессор дегенді білдіреді. Егер процессорда NX биті болса, онда ол күрделі нұсқаулар жиынтығы бар компьютер (CISC) немесе қысқартылған нұсқаулар жиынтығы бар компьютер (RISC) ретінде қарастырылуы мүмкін. MISC чиптерінде әдетте аппараттық жадты қорғаудың ешқандай түрі жоқ, егер бұл мүмкіндікке ие болу үшін арнайы себеп болмаса. Егер процессорда микрокодтық жүйе болса, онда ол MISC болып табылмайды. MISC процессоры үшін қабылданатын жалғыз адрестеу режимі – жүктеу/сақтау, бұл қысқартылған нұсқаулар жиынтығы бар компьютерлерге (RISC) тән. MISC процессорлары әдетте 64 КБ-тан 4 ГБ-қа дейінгі қолжетімді жадты пайдалана алады, бірақ көптеген MISC дизайндары 1 мегабайттан кем. Сонымен қатар, MISC нұсқаулық құбырлары әдетте өте қарапайым болады. Нұсқаулық құбырлар, тармақтарды болжау, реттіліктен тыс орындау, тіркелімдерді қайта атау және болжамды орындау процессорды MISC архитектурасы ретінде жіктеуден шығарады. 1 биттік процессорлар ескіргенімен (және MISC немесе OISC емес), алғашқы көміртекті нанотүтік компьютер 1 биттік бір нұсқаулық жиынтығы бар компьютер болып табылады және тек 178 транзистордан тұрады, сондықтан ол әзірге жасалған ең төменгі күрделілікке (немесе екінші ең төменгіге) ие процессор болып саналады (транзисторлар саны бойынша).
Separate from the stack definition of a MISC architecture, is the MISC architecture being defined by the number of instructions supported. Typically a minimal instruction set computer is viewed as having 32 or fewer instructions, where NOP, RESET, and CPUID type instructions are usually not counted by consensus due to their fundamental nature. 32 instructions is viewed as the highest allowable number of instructions for a MISC, though 16 or 8 instructions are closer to what is meant by "Minimal Instructions". A MISC CPU cannot have zero instructions as that is a zero instruction set computer. A MISC CPU cannot have one instruction as that is a one instruction set computer. The implemented CPU instructions should by default not support a wide set of inputs, so this typically means an 8 bit or 16 bit CPU. If a CPU has an NX bit, it is more likely to be viewed as being a complex instruction set computer (CISC) or reduced instruction set computer (RISC). MISC chips typically lack hardware memory protection of any kind, unless there is an application specific reason to have the feature. If a CPU has a microcode subsystem, that excludes it from being a MISC. The only addressing mode considered acceptable for a MISC CPU to have is load/store, the same as for reduced instruction set computer (RISC) CPUs. MISC CPUs can typically have between 64 KB to 4 GB of accessible addressable memory—but most MISC designs are under 1 megabyte. Also, the instruction pipelines of MISC as a rule tend to be very simple. Instruction pipelines, branch prediction, out of order execution, register renaming, and speculative execution broadly exclude a CPU from being classified as a MISC architecture. While 1 bit CPUs are otherwise obsolete (and were not MISCs nor OISCs), the first carbon nanotube computer is a 1 bit one instruction set computer, and has only 178 transistors, and thus likely the lowest complexity (or next lowest) CPU produced so far (by transistor count).
Алғашқы сақталған бағдарламалы компьютерлер
IBM SSEC нұсқауларды дерек ретінде өңдеуге қабілетті болды және 1948 жылғы 27 қаңтарда көпшілік алдында көрсетілді. Бұл мүмкіндік 1953 жылғы 28 сәуірде шыққан АҚШ патентінде расталды. Дегенмен, ол толыққанды электрондық емес, ішінара электромеханикалық болды. Іс жүзінде, оның жады шектеулі болғандықтан, нұсқаулар қағаз таспадан оқылды. Манчестер университетінің Виктория институты жасаған «Манчестер Бэби» сақталған бағдарламаны іске қоса білген алғашқы толық электрондық компьютер болды. 1948 жылғы 21 маусымда ол қарапайым бөлу бағдарламасын және екі санның өзара жай екенін көрсететін бағдарламаны іске қосып, содан кейін 52 минут бойы сандық көбейткіш бағдарламасын орындады. Электрондық сандық интегратор және компьютер (ENIAC) бастапқы оқуға арналған бағдарламалық компьютер ретінде жаңартылды (программалық жад ретінде Функциялық кестелерді (ROM) пайдаланып) және 1948 жылғы 16 қыркүйекте Адель Голдстайнның фон Нейман үшін жазған бағдарламасын іске қосып көрсетілді. Бинарлық автоматты компьютер (BINAC) 1949 жылғы ақпан, наурыз және сәуір айларында бірнеше сынақ бағдарламаларын іске қосты, бірақ толыққанды аяқталуы 1949 жылғы қыркүйекке дейін күтілді. «Манчестер Mark 1» «Бэби» жобасының негізінде жасалды. Mark 1-дің аралық нұсқасы 1949 жылғы сәуірде бағдарламаларды іске қосуға қолжетімді болды, бірақ толыққанды аяқталуы 1949 жылғы қазанға дейін соқты. Электрондық кешіктірулі сақтау автоматты калькуляторы (EDSAC) өзінің алғашқы бағдарламасын 1949 жылғы 6 мамырда іске қосты. Электрондық дискретті айнымалы автоматты компьютер (EDVAC) 1949 жылғы тамызда жеткізілді, бірақ оны тұрақты пайдалануға кіргізбеуге кедерес келтірген мәселелер 1951 жылға дейін сақталды. Ұлттық ғылыми және өнеркәсіптік зерттеулер автоматты компьютері (CSIRAC, бұрын CSIR Mk I) өзінің алғашқы бағдарламасын 1949 жылғы қарашада іске қосты. Standards Eastern Automatic Computer (SEAC) 1950 жылғы сәуірде көрсетілді. Pilot ACE алғашқы бағдарламасын 1950 жылғы 10 мамырда іске қосты және 1950 жылғы желтоқсанда көрсетілді. Standards Western Automatic Computer (SWAC) 1950 жылғы шілдеде аяқталды. «Вирлвинд» 1950 жылғы желтоқсанда аяқталды және 1951 жылғы сәуірде нақты пайдалануға берілді. Алғашқы ERA Atlas (кейіннен коммерциялық ERA 1101/UNIVAC 1101) 1950 жылғы желтоқсанда орнатылды.
The IBM SSEC had the ability to treat instructions as data, and was publicly demonstrated on January 27, 1948. This ability was claimed in a US patent issued April 28, 1953. However, it was partly electromechanical, not fully electronic. In practice, instructions were read from paper tape due to its limited memory. The Manchester Baby, by the Victoria University of Manchester, was the first fully electronic computer to run a stored program. It ran a factoring program for 52 minutes on June 21, 1948, after running a simple division program and a program to show that two numbers were relatively prime. The Electronic Numerical Integrator and Computer (ENIAC) was modified to run as a primitive read only stored program computer (using the Function Tables for program read only memory (ROM) and was demonstrated as such on September 16, 1948, running a program by Adele Goldstine for von Neumann. The Binary Automatic Computer (BINAC) ran some test programs in February, March, and April 1949, although was not completed until September 1949. The Manchester Mark 1 developed from the Baby project. An intermediate version of the Mark 1 was available to run programs in April 1949, but was not completed until October 1949. The Electronic Delay Storage Automatic Calculator (EDSAC) ran its first program on May 6, 1949. The Electronic Discrete Variable Automatic Computer (EDVAC) was delivered in August 1949, but it had problems that kept it from being put into regular operation until 1951. The Commonwealth Scientific and Industrial Research Automatic Computer (CSIRAC, formerly CSIR Mk I) ran its first program in November 1949. The Standards Eastern Automatic Computer (SEAC) was demonstrated in April 1950. The Pilot ACE ran its first program on May 10, 1950 and was demonstrated in December 1950. The Standards Western Automatic Computer (SWAC) was completed in July 1950. The Whirlwind was completed in December 1950 and was in actual use in April 1951. The first ERA Atlas (later the commercial ERA 1101/UNIVAC 1101) was installed in December 1950.
Құрылыстың кемшіліктері
MISC-тің кемшілігі – нұсқаулардың бірін-біріне тәуелділігі жоғары болады, бұл жалпы нұсқау деңгейіндегі параллелизмді төмендетеді. MISC архитектурасы, Forth тіліндегі стек қолданысы және Java виртуалды машинасы сияқты кейбір бағдарламалау тілдерінің белгілі бір ерекшеліктерімен ұқсас. Екеуі де толыққанды нұсқау деңгейіндегі параллелизмді қамтамасыз етуде нашар. Дегенмен, жиі қолданылатын нұсқау тіркестерін жеке қадамдар ретінде орындау үшін макро операциялық біріктіруді пайдалануға болады (мысалы, ADD, FETCH бір индекстелген жадтан мәлімет оқу үшін).
The disadvantage of a MISC is that instructions tend to have more sequential dependencies, reducing overall instruction level parallelism. MISC architectures have much in common with some features of some programming languages such as Forth's use of the stack, and the Java virtual machine. Both are weak in providing full instruction level parallelism. However, one could employ macro op fusion as a means of executing common instruction phrases as individual steps (e. g., ADD,FETCH to perform a single indexed memory read).
Белгілі процессорлар
Мүмкін, ең коммерциялық тұрғыдан сәтті MISC – жылжымалы нүктелі блогы жоқ бастапқы INMOS транспоттер архитектурасы болды. Дегенмен, кіріктірілген компьютерлік қолданбаларға арналған көптеген 8 биттік микроконтроллерлер MISC ретінде қарастырылады. Әр STEREO ғарыш кемесінде екі P24 MISC CPU және екі CPU24 MISC CPU орналасқан.
Probably the most commercially successful MISC was the original INMOS transputer architecture that had no floating point unit. However, many 8 bit microcontrollers, for embedded computer applications, qualify as MISC. Each STEREO spacecraft includes two P24 MISC CPUs and two CPU24 MISC CPUs.