Орталық процессорлардағы нұсқау конвейеріндегі қиындықтар
Hazard (computer architecture)
Орталық процессорлардағы (CPU) нұсқау конвейеріндегі қателер: дерек, құрылымдық және басқару қателіктері. Шешу жолдары мен микроархитектуралар туралы біліңіз.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Орталық процессордың (CPU) микроархитектурасындағы нұсқау құбыр жолындағы мәселелер
Problems with the instruction pipeline in central processing unit (CPU) microarchitectures
Орталық процессордың (CPU) жобалау саласында, қауіп-қатерлер – келесі нұсқау келесі тактовый циклде орындала алмайтын жағдайларда туындайтын, және есептеу нәтижелерінің қате болуына әкелуі мүмкін проблемалар. Қауіп-қатерлердің үш негізгі түрі бар: дерек қауіп-қатері, құрылымдық қауіп-қатер және басқару қауіп-қатері (тарану қауіп-қатері). Қауіп-қатерлерді шешу үшін бірнеше әдіс қолданылады, оның ішінде құбыр жолында тоқтату/көпіршік жасау, операндарды алға жіберу, ал реттілігі бұзылған орындалу жағдайында – көрсеткіш кестесі әдісі және Томасуло алгоритмі.
In the domain of central processing unit (CPU) design, hazards are problems with the instruction pipeline in CPU microarchitectures when the next instruction cannot execute in the following clock cycle, and can potentially lead to incorrect computation results. Three common types of hazards are data hazards, structural hazards, and control hazards (branching hazards). There are several methods used to deal with hazards, including pipeline stalls/pipeline bubbling, operand forwarding, and in the case of out of order execution, the scoreboarding method and the Tomasulo algorithm.
Өмірбаян
Құбырлы процессордағы нұсқаулар бірнеше кезеңде орындалады, сондықтан кез келген сәтте құбырдың әртүрлі кезеңдерінде бірнеше нұсқаулар өңделеді, мысалы, алу және орындау. Әртүрлі нұсқаулар құбыржолдарының көптеген микроархитектуралары бар, және нұсқаулар реті келмей орындалуы мүмкін. Екі немесе одан көп параллель (мүмкін, реті келмей) нұсқаулардың қақтығысы туғанда қауіп пайда болады.
Instructions in a pipelined processor are performed in several stages, so that at any given time several instructions are being processed in the various stages of the pipeline, such as fetch and execute. There are many different instruction pipeline microarchitectures, and instructions may be executed out of order. A hazard occurs when two or more of these simultaneous (possibly out of order) instructions conflict.
Бақылау қауіптілігі (бөлім қауіптілігі немесе нұсқаулық қауіптілігі)
Бақылау қаупі құбыр желісі тармақталуды болжауда қателік жасағанда туындайды, нәтижесінде құбыр желісіне кейіннен жойылатын нұсқаулар енгізіледі. "Тармақталу қаупі" термині де бақылау қаупін білдіреді.
Control hazard occurs when the pipeline makes wrong decisions on branch prediction and therefore brings instructions into the pipeline that must subsequently be discarded. The term branch hazard also refers to a control hazard.
Құбырдың бүршігі
Құбыр желісін көпірту, сондай-ақ құбыр желісін тоқтату немесе құбыр желісінде үзіліс жасау деп аталады, бұл деректерлік, құрылымдық және тармақталу қауіптерін болдырмау әдісі. Нұсқаулар алынғанда басқару логикасы қауіптің болуы мүмкін екенін немесе болатынын анықтайды. Егер осылай болса, онда басқару логикасы құбыр желісіне күйреу (s) енгізеді. Осылайша, келесі нұсқау (қауіпті тудыратын) орындалғанға дейін, алдыңғы нұсқау қауіптің алдын алу үшін аяқталуға жеткілікті уақыт алады. Егер күйреулердің саны құбыр желісіндегі кезеңдер санына тең болса, процессор барлық нұсқаулардан тазартылады және қауіпсіз жұмыс істей алады. Тоқтатудың барлық түрлері процессор орындауды қайта бастамас бұрын кешігуге әкеледі. Құбыр желісін тазалау, егер тармақталу нұсқаулығы жаңа жад мекенжайына секіргенде, құбыр желісіндегі барлық алдыңғы кезеңдерді жарамсыз етеді. Бұл алдыңғы кезеңдер тазартылады, содан кейін құбыр желісі тармақ көрсеткен жаңа нұсқау бойынша жалғасады.
Bubbling the pipeline, also termed a pipeline break or pipeline stall, is a method to preclude data, structural, and branch hazards. As instructions are fetched, control logic determines whether a hazard could/will occur. If this is true, then the control logic inserts s (s) into the pipeline. Thus, before the next instruction (which would cause the hazard) executes, the prior one will have had sufficient time to finish and prevent the hazard. If the number of s equals the number of stages in the pipeline, the processor has been cleared of all instructions and can proceed free from hazards. All forms of stalling introduce a delay before the processor can resume execution. Flushing the pipeline occurs when a branch instruction jumps to a new memory location, invalidating all prior stages in the pipeline. These prior stages are cleared, allowing the pipeline to continue at the new instruction indicated by the branch.
Басқа әдістер
Жадтың кешігу уақыты – дизайнерлер назар аударуға тиіс тағы бір фактор, себебі кешігу жүйеленген жұмыстың тиімділігін төмендетуі мүмкін. Жады түрлерінің әрқайсысының жадыға қол жеткізу уақыты әртүрлі болады. Сондықтан, қолайлы жад түрін таңдау арқылы дизайнерлер құбырлы деректер жолының тиімділігін арттыра алады.
Memory latency is another factor that designers must attend to, because the delay could reduce performance. Different types of memory have different accessing time to the memory. Thus, by choosing a suitable type of memory, designers can improve the performance of the pipelined data path.