Кіріспе
Компьютерлік архитектурада, кідіріс слоты – алдыңғы нұсқаудың әсері болмай орындалатын нұсқау слоты. Ең көп таралған түрі – RISC немесе DSP архитектурасындағы тармақталу нұсқауынан кейін тікелей орналасқан бір ғана кездейсоқ нұсқау; бұл нұсқау алдыңғы тармақталу орындалса да, орындалады. Бұл бастапқы ассемблер тіліндегі кодтағы орнына қарағанда нұсқаудың ретсіз орындалуына себеп болады. Қазіргі заманғы процессорлардың дизайны көбінесе кідіріс слоттарын пайдаланбайды, оның орнына осы мәселені шешу үшін тармақталуды болжаудың күрделі формаларын қолданады. Мұндай жүйелерде, процессор бірден тармақталудың дұрыс жағы деп санайтын бөлікке өтеді, соның арқасында кодта қатысы жоқ нұсқауларды көрсету қажеттілігі жойылады, олар компиляция кезінде әрқашан анық бола бермейді. Егер болжам қате болса және тармақталудың екінші жағын шақыру қажет болса, онда ұзақ кешігу туындауы мүмкін. Бұл сирек болғандықтан, кідіріс уақытынан құтылудың жылдамдығы дұрыс емес шешімдердің азаюымен оңай теңестіріледі.
In computer architecture, a delay slot is an instruction slot being executed without the effects of a preceding instruction. The most common form is a single arbitrary instruction located immediately after a branch instruction on a RISC or DSP architecture; this instruction will execute even if the preceding branch is taken. This makes the instruction execute out of order compared to its location in the original assembler language code. Modern processor designs generally do not use delay slots, and instead perform ever more complex forms of branch prediction to solve this problem. In these systems, the CPU immediately moves on to what it believes will be the correct side of the branch and thereby eliminates the need for the code to specify some unrelated instruction, which may not always be obvious at compile time. If the assumption is wrong, and the other side of the branch has to be called, this can introduce a lengthy delay. This occurs rarely enough that the speed up of avoiding the delay slot is easily made up by the smaller number of wrong decisions.
Құбырлар
Орталық процессор әдетте машиналық кодтан нұсқауларды төрт қадамдық процесс арқылы орындайды: нұсқау ең алдымен жадтан оқылады, содан кейін не істеу керектігін түсіну үшін декодталады, содан кейін осы әрекеттер орындалады және соңында кез келген нәтижелер жадқа жазылады. Алғашқы конструкцияларда осы кезеңдердің әрқайсысы тізбектей орындалған, сондықтан нұсқауларды орындау үшін машинаның сағат циклінің бірнеше еселі уақыты қажет болған. Мысалы, Zilog Z80 процессорда нұсқауды аяқтау үшін кемінде төрт сағат қажет болса, кейбір (сирек кездесетін) нұсқаулар үшін 23 сағатқа дейін уақыт кеткен. Нұсқауды өңдеудің кез келген кезеңінде чиптің тек бір бөлігі ғана жұмыс істейді. Мысалы, орындау кезеңінде әдетте тек арифметикалық-логикалық құрылғы (ALU) белсенді болады, ал негізгі жадпен өзара әрекеттесетін немесе нұсқауды декодтайтын басқа құрылғылар бос тұрады. Компьютердің жалпы өнімділігін арттырудың бір жолы – нұсқаулар конвейерін пайдалану. Бұл нұсқаудың аралық күйлерін сақтау үшін қосымша схемаларды қосуға мүмкіндік береді. Бұл жеке нұсқаудың цикл уақытын жақсартпаса да, мақсаты – алдыңғы нұсқау келесі кезеңге өткен кезде екінші нұсқаудың CPU-ның басқа кішібірліктерін пайдалануына мүмкіндік беру. Мысалы, бір нұсқау ALU-ны пайдаланса, бағдарламадан келесі нұсқау декодерде болуы мүмкін, ал үшіншісі жадтан алынуы мүмкін. Осы конвейерлік құрылымда кез келген уақытта өңделетін нұсқаулардың жалпы саны конвейер сатыларының санына дейін артуы мүмкін. Мысалы, Z80 процессорда төрт сатылы конвейер жалпы өткізуді төрт есеге арттыра алады. Дегенмен, нұсқаудың уақытын анықтаудың күрделілігіне байланысты, мұны іске асыру оңай болмас еді. MOS 6502 процессордың әлдеқайда қарапайым нұсқау жиындысы архитектурасы (ISA) екі сатылы конвейерді қосуға мүмкіндік берді, бұл оған кез келген сағат жылдамдығында Z80-ге қарағанда екі есе жоғары өнімділік берді.