Talimat döngüsü - Instruction cycle - Wikipedia

talimat döngüsü (aynı zamanda getirme-çözme-yürütme döngüsüveya sadece getir-çalıştır döngüsü) Merkezi işlem birimi (CPU) şundan takip eder: başlatma talimatları işlemek için bilgisayar kapanana kadar. Üç ana aşamadan oluşur: getirme aşaması, kod çözme aşaması ve yürütme aşaması.

Bu, getirme-çözme-yürütme döngüsünün ayrı aşamalarını gösteren basit bir diyagramdır.

Daha basit CPU'larda, komut döngüsü sırayla yürütülür, her komut bir sonraki başlatılmadan önce işlenir. Çoğu modern CPU'larda, talimat döngüleri yerine yürütülür aynı anda ve sıklıkla paralel aracılığıyla talimat boru hattı: bir sonraki komut, önceki komut bitmeden önce işlenmeye başlar, bu mümkündür çünkü döngü ayrı adımlara bölünmüştür.[1]

Bileşenlerin rolü

program sayacı (PC) yürütülecek bir sonraki komutun hafıza adresini tutan özel bir kayıttır. Getirme aşamasında, PC'de saklanan adres, bellek adres kaydı (MAR) ve sonra yürütülecek bir sonraki komutun hafıza adresine "işaret etmek" için PC artırılır. CPU daha sonra, MAR tarafından tanımlanan hafıza adresindeki talimatı alır ve bunu bellek veri kaydı (MDR). MDR ayrıca bellekten getirilen verileri veya bellekte saklanmayı bekleyen verileri tutan iki yönlü bir kayıt görevi görür (bu nedenle bellek tampon kaydı (MBR) olarak da bilinir). Sonunda, MDR'deki talimat, geçerli talimat kaydı (CIR) bellekten henüz getirilmiş olan talimat için geçici bir bekletme zemini görevi görür.

Kod çözme aşamasında, kontrol ünitesi (CU) CIR'deki talimatı çözecektir. CU daha sonra CPU içindeki diğer bileşenlere sinyaller gönderir. aritmetik mantık birimi (ALU) ve kayan nokta birimi (FPU). ALU, toplama ve çıkarma gibi aritmetik işlemleri gerçekleştirir ve ayrıca tekrarlanan toplama yoluyla çarpma ve tekrarlanan çıkarma yoluyla bölme. Ayrıca aşağıdaki gibi mantıksal işlemleri de gerçekleştirir. VE, VEYA, DEĞİL, ve ikili vardiya yanı sıra. FPU performans için ayrılmıştır kayan noktalı işlemler.

Aşamaların özeti

Her bilgisayarın CPU'su farklı komut setlerine göre farklı döngülere sahip olabilir, ancak aşağıdaki döngüye benzer olacaktır:

  1. Aşama Getir: Sonraki komut, program sayacında o anda saklanan ve komut yazmacına kaydedilen bellek adresinden alınır. Getirme işleminin sonunda, PC bir sonraki döngüde okunacak bir sonraki talimatı gösterir.
  2. Çözme Aşaması: Bu aşama sırasında, komut yazmacında sunulan kodlanmış talimat, kod çözücü tarafından yorumlanır.
    • Etkili adresi okuyun: Bir bellek talimatı durumunda (doğrudan veya dolaylı), yürütme aşaması bir sonraki saat darbesi sırasında olacaktır. Talimatın bir dolaylı adres, etkin adres ana bellekten okunur ve gerekli tüm veriler işlenmek üzere ana bellekten alınır ve daha sonra veri kayıtlarına yerleştirilir (saat darbesi: T3). Talimat doğrudan ise, bu saat darbesi sırasında hiçbir şey yapılmaz. Bu bir G / Ç talimatı veya bir kayıt talimatıysa, işlem saat darbesi sırasında gerçekleştirilir.
  3. Aşamayı Yürüt: CPU'nun kontrol ünitesi, kod çözülmüş bilgileri, komutun gerektirdiği eylemleri gerçekleştirmek için CPU'nun ilgili fonksiyon birimlerine bir dizi kontrol sinyali olarak iletir, örneğin kayıtlardan değerleri okumak, bunları matematiksel işlemler için ALU'ya iletmek mantık fonksiyonları ve sonucun bir kayda geri yazılması. ALU dahilse, CU'ya bir koşul sinyali gönderir. İşlem tarafından üretilen sonuç ana bellekte saklanır veya bir çıkış cihazına gönderilir. ALU'dan gelen geri bildirimlere bağlı olarak, PC, bir sonraki talimatın alınacağı farklı bir adrese güncellenebilir.
  4. Döngüyü Tekrarla

Başlatma

Döngü, sistem mimarisi tarafından önceden tanımlanmış bir başlangıç ​​PC değeri ile sisteme güç uygulandığında başlar (örneğin, Intel IA-32 CPU'lar, önceden tanımlanmış PC değeri 0xfffffff0). Tipik olarak, bu adres bir dizi talimatı işaret eder. sadece hafızayı oku (ROM), yükleme işlemini başlatan (veya önyükleme ) işletim sistemi.[2]

Aşama getir

Getirme adımı her talimat için aynıdır:

  1. CPU, bilgisayarın içeriğini MAR'a gönderir ve adres veriyolunda bir okuma komutu gönderir
  2. Okuma komutuna yanıt olarak (adres PC'ye eşit), hafıza, veri yolunda PC tarafından belirtilen hafıza konumunda saklanan verileri geri döndürür.
  3. CPU, verileri veri yolundan kendi MDR'sine kopyalar (MBR olarak da bilinir; bkz. Bölüm Bileşenlerin rolü yukarıda)
  4. Bir saniyenin bir kısmı sonra, CPU, MDR'den komut kodunu çözmek için verileri komut yazmacına kopyalar.
  5. PC, bir sonraki talimatı gösterecek şekilde artırılır. Bu adım CPU'yu bir sonraki döngü için hazırlar.

Kontrol ünitesi talimatın adresini bilgisayardan alır. hafıza birimi.

Kod çözme aşaması

Kod çözme işlemi, CPU'nun hangi komutun gerçekleştirileceğini belirlemesine izin verir, böylece CPU, talimatı gerçekleştirmek için kaç işlenen getirmesi gerektiğini söyleyebilir. Hafızadan alınan işlem kodu, sonraki adımlar için çözülür ve uygun kayıtlara taşınır. İşlemci 's Kontrol ünitesi.

Etkili adresi okumak

Bu adım, hangi tip işlemin gerçekleştirileceğini değerlendirir. Bir bellek işlemi ise, bilgisayar bunun doğrudan mı yoksa dolaylı bir bellek işlemi mi olduğunu kontrol eder:

  • Doğrudan bellek işlemi - Hiçbir şey yapılmadı.
  • Dolaylı bellek işlemi - Etkili adres hafızadan okunur.

Bir G / Ç veya kayıt talimatı ise, bilgisayar tipini kontrol eder ve talimatı yürütür.

Yürütme aşaması

Talimatın işlevi gerçekleştirilir. Talimat aritmetik veya mantık içeriyorsa, ALU kullanılır. Bu, son kullanıcı açısından yararlı olan talimat döngüsünün tek aşamasıdır. Yürütme adımının gerçekleşmesi için gereken diğer her şey ek yüktür.

Ayrıca bakınız

Referanslar

  1. ^ Crystal Chen, Greg Novick ve Kirk Shimano (2000). "Ardışık düzen". Alındı 2019-06-26.
  2. ^ Bosky Agarwal (2004). "Yönerge Getirme Yürütme Döngüsü" (PDF). Arşivlenen orijinal (PDF) 11 Haziran 2009. Alındı 2012-10-14.