Кіріспе
Компьютер процессорларын жобалау түрі Компьютерлік архитектурада, транспорттық триггерлік архитектура (ТТА) - процессорлардың ішкі көлік автобустарын тікелей басқаратын бағдарламалардың процессорлық дизайнының түрі. Есептеу деректер тасымалдауының жанама әсері ретінде болады: деректерді функционалдық бірліктің триггерлік портына жазу функционалдық бірлікті есептеуді бастауға түртеді. Бұл систолалық массивте болатын жағдайға ұқсас. Модульдік құрылымынан TTA - бұл қолданбаға арналған нұсқаулар жиынтығын (ASIP) өңдеушілерге арналған идеалдық процессор шаблоны, ол жекеленген деректер жолына ие, бірақ тұрақты функциялық аппараттық жеделдетушілердің икемсіздігі мен жобалау құнысыз. Әдетте, тасымалдау процессорында бірнеше тасымалдау автобустары және автобустарға қосылған бірнеше функционалдық бірліктер болады, бұл нұсқау деңгейінің параллельділігіне мүмкіндік береді. Паралелизмді бағдарламашы статикалық түрде анықтайды. Осыған байланысты (және, әрине, үлкен нұсқау сөзінің ені) TTA архитектурасы өте ұзақ нұсқау сөзінің (VLIW) архитектурасына ұқсайды. TTA нұсқаулық сөзі бірнеше слоттардан тұрады, әр автобус үшін бір слот, және әрбір слот сәйкес автобуста болатын деректерді тасымалдауды анықтайды. Ұсақ түйіршікті басқару әдеттегі процессорда мүмкін емес кейбір оңтайландыруларға мүмкіндік береді. Мысалы, бағдарламалық қамтамасыз ету деректерді тіркелімдерді пайдаланбай-ақ функционалдық бірліктер арасында тікелей тасымалдауға мүмкіндік береді. Транспортты іске қосу кейбір микроархитектуралық бөлшектерді ашып көрсетеді, олар әдетте бағдарламалаушылардан жасырылады. Бұл процессордың басқару логикасын айтарлықтай жеңілдетеді, өйткені әдетте орындалу кезінде жасалатын көптеген шешімдер компиляция кезінде бекітіледі. Алайда, бұл сонымен қатар бір TTA процессоры үшін құрастырылған бинарлық файл екіншісімен қайта құрастырылмай жұмыс істемейді, егер екеуінің арасында архитектурада кішкене айырмашылық болса да. Бинарлық үйлеспеушілік проблемасы, толық контекстті ауыстырып іске асырудың күрделілігіне қоса, TTA-ны жалпы мақсаттағы есептеулерге қарағанда кіріктірілген жүйелерге қолайлы етеді. Бір нұсқаулық жиынтықтарының компьютерлік архитектурасының ішінде TTA архитектурасы оған негізделген процессорлардың бірі және коммерциялық сатылымға шығарылған процессорлардың бірегейі болып табылады.
In computer architecture, a transport triggered architecture (TTA) is a kind of processor design in which programs directly control the internal transport buses of a processor. Computation happens as a side effect of data transports: writing data into a triggering port of a functional unit triggers the functional unit to start a computation. This is similar to what happens in a systolic array. Due to its modular structure, TTA is an ideal processor template for application specific instruction set processors (ASIP) with customized datapath but without the inflexibility and design cost of fixed function hardware accelerators. Typically a transport triggered processor has multiple transport buses and multiple functional units connected to the buses, which provides opportunities for instruction level parallelism. The parallelism is statically defined by the programmer. In this respect (and obviously due to the large instruction word width), the TTA architecture resembles the very long instruction word (VLIW) architecture. A TTA instruction word is composed of multiple slots, one slot per bus, and each slot determines the data transport that takes place on the corresponding bus. The fine grained control allows some optimizations that are not possible in a conventional processor. For example, software can transfer data directly between functional units without using registers. Transport triggering exposes some microarchitectural details that are normally hidden from programmers. This greatly simplifies the control logic of a processor, because many decisions normally done at run time are fixed at compile time. However, it also means that a binary compiled for one TTA processor will not run on another one without recompilation if there is even a small difference in the architecture between the two. The binary incompatibility problem, in addition to the complexity of implementing a full context switch, makes TTAs more suitable for embedded systems than for general purpose computing. Of all the one instruction set computer architectures, the TTA architecture is one of the few that has had processors based on it built, and the only one that has processors based on it sold commercially.
VLIW архитектурасымен салыстырғанда артықшылықтар
TTA-ны "ашық деректер жолы" VLIW архитектурасы ретінде қарастыруға болады. VLIW операциялар арқылы бағдарламаланған кезде, TTA операцияны орындауды бірнеше жылжыту операцияларына бөледі. Төмен деңгейдегі бағдарламалау моделі стандартты VLIW-мен салыстырғанда бірнеше артықшылықтарға мүмкіндік береді. Мысалы, TTA архитектурасы VLIW-ге қарағанда қарапайым регистрлік файлдармен көбірек параллельділікті қамтамасыз ете алады. Бағдарламашы операнд пен нәтижелік деректерді тасымалдау уақытын қадағалайтын болғандықтан, регистрлік файлдың (RF) күрделілігін (кірістіру және шығару порттарының саны) бірнеше қатарлы нұсқаулардың ең нашар жағдайдағы мәселесі / аяқталу сценариі бойынша масштабтаудың қажеті жоқ. Транспорттық бағдарламалау арқылы іске асырылатын маңызды бірегей бағдарламалық жасақтаманы оңтайландыру бағдарламалық жасақтаманы айналып өту деп аталады. Бағдарламалық жасақтаманы айналып өту жағдайында бағдарламалаушы деректерді тікелей келесі функционалдық бірліктің операндар порттарына көшіру арқылы тіркелім файлын айналып өтеді. Бұл оңтайландыру белсенді түрде қолданылған кезде, нәтижені регистрлік файлға тасымалдаудың бастапқы қозғалысы толығымен жойылуы мүмкін, осылайша регистрлік файл порт қысымын азайтып, басқа уақытша айнымалылар үшін жалпы мақсаттағы регистрді босатады. Төменгі регистр қысымы, RF аппараттарының қажетті күрделілігін жеңілдетуден басқа, CPU энергиясын едәуір үнемдеуге әкелуі мүмкін, бұл әсіресе мобильді кіріктірілген жүйелерде маңызды артықшылық.
low level programming model enables several benefits in comparison to the standard VLIW. For example, a TTA architecture can provide more parallelism with simpler register files than with VLIW. As the programmer is in control of the timing of the operand and result data transports, the complexity (the number of input and output ports) of the register file (RF) need not be scaled according to the worst case issue/completion scenario of the multiple parallel instructions. An important unique software optimization enabled by the transport programming is called software bypassing. In case of software bypassing, the programmer bypasses the register file write back by moving data directly to the next functional unit's operand ports. When this optimization is applied aggressively, the original move that transports the result to the register file can be eliminated completely, thus reducing both the register file port pressure and freeing a general purpose register for other temporary variables. The reduced register pressure, in addition to simplifying the required complexity of the RF hardware, can lead to significant CPU energy savings, an important benefit especially in mobile embedded systems.
Құрылымы
TTA процессорлары тәуелсіз функциялық бірліктерден және тасымалдау автобустары мен розеткаларымен байланысты тіркелім файлдарынан тұрады.
Функционалдық бірлік
Әрбір функция бірлігі бір немесе бірнеше операцияларды жүзеге асырады, олар бүтін сандарды қарапайым қосудан бастап, күрделі және кездейсоқ пайдаланушы анықтаған қосымшаға тән есептеулерге дейін жететін функционалдылықты жүзеге асырады. Операциялардың операндалары функциялық бірлік порттары арқылы беріледі. Әрбір функционалдық бірлік тәуелсіз құбыр желісіне ие болуы мүмкін. Егер функциялық блок толықтай құбырмен жабдықталған болса, әр сағат циклында бірнеше сағат циклін аяқтайтын жаңа операция басталуы мүмкін. Екінші жағынан, құбыр желісі жаңа операцияны бастау сұраныстарын әрқашан қабылдамайтын болуы мүмкін, ал ескісі әлі де орындалуда. Деректер жадына қол жеткізу және процессордың сыртына байланыс арнайы функциялық бірліктерді пайдалану арқылы жүзеге асырылады. Жадқа қол жеткізу операцияларын жүзеге асыратын және жад модуліне қосылатын функция бірліктері көбінесе жүктеу / сақтау бірліктері деп аталады.
Тіркелгі файлдары
Реестрлік файлдарда жалпы мақсаттағы регистрлер бар, олар бағдарламаларда айнымалыларды сақтауға қолданылады. Функционалдық бірліктер сияқты, регистрлік файлдардың да кіру және шығу порттары бар. Оқу және жазу порттарының саны, яғни бір сағат циклында бірнеше регистрлерді оқу және жазу мүмкіндігі әр регистрлік файлда әр түрлі болуы мүмкін.
Көлік автобустары мен тұйықтауыштары
Байланыс архитектурасы функционалдық бірлік порттарына сокет арқылы қосылған тасымалдау шиналарынан тұрады. Байланыстылықтың шығынынан байланысты, бірліктер арасындағы байланыс санын азайту әдеттегі нәрсе (функционалдық бірліктер мен тіркелім файлдары). TTA әр бірліктің шығыс портынан әр бірліктің кіріс порттарына жол бар болған жағдайда толық қосылған деп айтылады. Сокет кез-келген уақытта сокетке қандай автобус-порт байланыстары қосылатынын таңдауға мүмкіндік беру арқылы TTA процессорларын бағдарламалауға мүмкіндік береді. Осылайша, сағат циклында өтетін деректерді тасымалдауды әр автобус үшін рұқсат етілетін бастапқы және мақсатты сокет / порт қосылымын айқындау арқылы бағдарламалауға болады.
Шартты орындау
Кейбір TTA іске асыруы шартты орындауды қолдайды. Шартты түрде жазалау күзетшілердің көмегімен жүзеге асырылады. Әрбір деректерді тасымалдауды күзетші шарттай алады, ол тіркелімге (көбінесе 1 биттік шартты тіркелімге) және шинаға қосылады. Егер қорғалған регистрдің мәні false (нөл) болса, онда қорғалған шинаға бағдарламаланған деректерді тасымалдау қысылады, яғни оның мақсатына жазылмайды. Шартсыз деректерді тасымалдау кез-келген күзетке қосылмайды және әрқашан орындалады.
Филиалдар
Барлық процессорлар, соның ішінде TTA процессорлары, бағдарламалық есептегішті өзгертетін басқару ағыны нұсқауларын қамтиды, олар субротиналарды іске асыруға қолданылады, егер басқа болса, цикл үшін және т.б. TTA процессорлары үшін құрастыру тілі әдетте шартты емес тармақтар (JUMP), шартты салыстырмалы тармақтар (BNZ), субпрограмма шақыру (CALL), шартты қайтару (RETNZ) және т.б. сияқты басқару ағыны нұсқауларын қамтиды. басқа процессорлар үшін ассемблері тіліндегі нұсқаулармен бірдей көрінеді. ТТА машинасындағы барлық басқа операциялар сияқты, бұл нұсқаулар арнайы функциялы бірлікке "көшіру" нұсқаулары ретінде іске асырылады. Шартты орындауды қолдайтын TTA іске асырулары, мысалы sTTAck және алғашқы MOVE прототипі, осы басқару ағыны нұсқауларының көпшілігін бағдарламалық есептегішке шартты түрде көшіру ретінде іске асыра алады. Тек шартсыз деректерді тасымалдауға қолдау көрсететін TTA іске асырулары, мысалы, Maxim Integrated-тің Maxim Integrated MAXQ, көлік түрлендіру архитектурасына негізделген коммерциялық қол жетімді жалғыз микробасқарушы, OISC немесе "бір нұсқаулық жиынтықты компьютер". Ол бір ғана, бірақ икемді MOVE нұсқаулығын ұсынады, ол кейіннен әртүрлі виртуалды нұсқаулар ретінде қызмет ете алады, құндылықтарды тікелей бағдарламалық есептегішке жылжытады. "Move project" жобасы бірнеше эксперименталды TTA микропроцессорларын жобалап, жасап шығарды. OpenASIP - процессор үлгісі ретінде TTA-ны пайдаланатын ашық кодты арнайы нұсқаулар жиынтығы. Amiga Copper архитектурасы көлік түрлендіру архитектурасының барлық негізгі ерекшеліктеріне ие. New England Digital компаниясы жасаған Able процессоры. WireWorld базалық компьютері. Доктор Добб One Der-ді жариялады, 32 биттік TTA Verilog-те кросс-ассемблері мен Форт компиляторымен сәйкес келеді. Mali (200/400) vertex процессоры 128 биттік нұсқау сөзін бір дәлдікті жылжымалы нүктелі скалярлы TTA қолданады.