Орталық резервация стансасы және динамикалық нұсқауларды жоспарлау
Reservation station
Біріктірілген резервация стансасы – процессор микроархитектурасының бөлігі, тіркелгілерді қайта атауға және динамикалық нұсқауларды жоспарлауға мүмкіндік береді.💻🚀
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Бірыңғай резервация станциясы, сондай-ақ біріктірілген жоспарлаушы деп аталады, – процессордың микроархитектурасының орталықтандырылмаған мүмкіндігі, ол тіркелімдерді қайта атауға мүмкіндік береді және Томасуло алгоритмімен динамикалық нұсқауларды жоспарлау үшін қолданылады. Резервация станциялары процессорға деректерді тіркелімге сақтап, қайта оқуды күтудің орнына, есептелгеннен кейін дереу деректерді алуға және қайта пайдалануға мүмкіндік береді. Нұсқаулар берілген кезде, олар кіріс деректерін оқығысы келетін резервация станциясын көрсете алады. Егер бірнеше нұсқау бір тіркелімге жазуды қажет етсе, барлығы орындала береді және тек (логикалық) соңғысы ғана жазылуы керек. Орындауды бастамас бұрын, операторлар қолжетімді ме (RAW) және орындау блогы бос па (құрылымдық қауіп) тексеріледі. Нұсқаулар қолжетімді параметрлермен сақталады және дайын болғанда орындалады. Нәтижелерді сәйкес нұсқауды орындайтын блок анықтайды. Тіркелімдерді қайта атау арқылы WAR және WAW қауіптері автоматты түрде шешіледі. Бұл толық ассоциативті құрылым болғандықтан, салыстыру құрылғыларында өте жоғары шығындар туындайды (процессорлық бірліктерден алынған барлық нәтижелерді сақталған барлық мекенжайлармен салыстыру қажет). Томасуло алгоритмінде нұсқаулар тізбекпен резервация станцияларына жіберіледі, олар нұсқауды және оның операторларын буферлейді. Егер оператор қолжетімді болмаса, резервация станциясы оператордың қолжетімді болуын күту үшін ортақ деректер шинасын тыңдайды. Оператор қолжетімді болған кезде, резервация станциясы оны буферлейді және нұсқауды орындау басталуы мүмкін. Функционалдық бірліктер (мысалы, қосу немесе көбейту), әрқайсысының өзіне сәйкес резервация станциялары бар. Функционалдық бірліктің шығысы ортақ деректер шинасына қосылады, онда резервация станциялары қажетті операторларды күтеді.
A unified reservation station, also known as unified scheduler, is a decentralized feature of the microarchitecture of a CPU that allows for register renaming, and is used by the Tomasulo algorithm for dynamic instruction scheduling. Reservation stations permit the CPU to fetch and re use a data value as soon as it has been computed, rather than waiting for it to be stored in a register and re read. When instructions are issued, they can designate the reservation station from which they want their input to read. When multiple instructions need to write to the same register, all can proceed and only the (logically) last one need actually be written. It checks if the operands are available (RAW) and if execution unit is free (Structural hazard) before starting execution. Instructions are stored with available parameters, and executed when ready. Results are identified by the unit that will execute the corresponding instruction. Implicitly register renaming solves WAR and WAW hazards. Since this is a fully associative structure, it has a very high cost in comparators (need to compare all results returned from processing units with all stored addresses). In Tomasulo's algorithm, instructions are issued in sequence to Reservation Stations which buffer the instruction as well as the operands of the instruction. If the operand is not available, the Reservation Station listens on a Common Data Bus for the operand to become available. When the operand becomes available, the Reservation Station buffers it, and the execution of the instruction can begin. Functional Units (such as an adder or a multiplier), each have their own corresponding Reservation Stations. The output of the Functional Unit connects to the Common Data Bus, where Reservation Stations are listening for the operands they need.