Boru hattı yöntemi bilgisayar mimarisi ve diğer sayısal ürünlerin tasarımında başarımı artırmak için uygulanan bir yöntemdir.
Komutları, boru hattı yöntemi ile işleyip daha kısa süre içinde bitmesini sağlar. Asıl amacı saat sıklığını artırarak başarımı artırmaktır. Farklı kaynakları aynı anda, farklı işler tarafından kullanarak çalışır.
Tek vuruşlu işlemcilerde, bir komut bitince diğer komut çalışmaya başlar. Her saat vuruşunda bir komut girer, bir komut çıkar. Yani buyruk başına düşen çevrim sayısı 1’dir. Boru hattı yöntemi ise çoklu buyrukların örtüşmeli yürütümüdür. Birbirini bağlayan komutlar haricinde bir buyruğun işlemi gerçekleştirilirken diğer komut işleme girebilir. Günümüzde daha hızlı işlemci tasarımında kullanılan önemli bir yöntemdir. Boru hattı işlemcinin komut döngü süresini azaltır bundan dolayı da birim döngü zamanına düşen komut sayısı artar. Boru hattında bütün aşamalardan geçmek gerekir. Tek bir komutun işini değil toplu komutların işlerini hızlandırır. Kısacası toplamda üretilen işi artırır. Olası hızlanma boru hattındaki aşama sayısına bağlı olarak değişir.
Boru hattı hızını etkileyen etkenler
Boru hattındaki aşama sayısı ne kadar fazlaysa boru hattı hızlanması o kadar yavaştır.
Boru hattındaki aşamaların uzunluğunun sabit veya değişken olması; sabit olursa daha hızlı, değişken olursa hızlanma süresi azalır.
Buyruk biçimleri ne kadar farklıysa hızlanma o kadar az olur.
Boru hattının dolma ve boşalma zamanları hızlanmayı etkiler. Dolma-boşalma süreleri ne kadar kısa olursa hızlanması o kadar artar.
Komutların bağımlılıklarına göre hızlanma yavaşlar. Komutlar arasındaki bağımlılık gecikme hızını artırır. Bundan dolayı; komut bağımlılıklarının az olması, gecikmeyi azaltır ve hızlanmayı artırır.
Boru Hattı Kullanarak Yapılan Sistemin Avantajları
İşlemcinin döngü zamanını azaltır, böylece komut genişliğini birçok durumda arttırır.
Toplu komut işlemlerinde çevrim zamanı azalır. Bu durumda yürütme zamanı azaltılmış olur. Bu da başarımı artırır.
Kullanılmayan kaynakların boş kalmasını engeller. Kaynakların verimli kullanılmasını sağlar.
Boru Hattı İşlem Aşamaları
Birçok modern işlemci saat vuruşlarıyla yürütülür. İşlemciler mantık ve flip-floplardan oluşmaktadır. Saat vuruşu geldiğinde, flip-floplar yeni değerlerini alırlar sonra kodları çözüp yapmaları gereken şeyi yapmaları için belli bir süre gerekir. Bir sonraki saat vuruşu geldiğinde, flip-floplar tekrar kendi değerlerini alırlar ve bu böyle devam eder. Mantık yürütülmesini ufak bölümlere bölüp aralarına flip-floplar koyarsak, veri çıkışımızdaki gecikme azalmış olur. Saat vuruş zamanını azalma nedeni de budur. Boru hattı kullanımında komutlar arası aşama farklılıkları görülmektedir. Yükleme işlemlerinin 5, saklama işlemlerinin 4 dallanma işlemlerinin de 3 aşaması vardır.
Getir: Buyruklar, buyruk belleklerinden getirilir.
Oku/Çöz: İşlenenler okunur ve buyruk belleklerinden getirilen buyruklar çözülür.
Yürüt: Bellek adresleri hesaplanır.
Bellek: Veriler, veri belleklerinden okunur.
Yaz: Elde edilen sonuçlar yazmaç öbeğine yazılır.
Yükleme işlemi aşamaları: Getir, oku/çöz, yürüt, bellek, yaz
Saklama işlemi aşamaları: Getir, oku/çöz, yürüt, bellek
Dallanma işlemi aşamaları: Getir, oku/çöz, yürüt (yazmaçlardan gelen işlenenler karşılaştırılır, dallanma tahmini yapılır ve program sayacı güncellenir.)
Yazmaç türü buyrukların aşamaları: Getir, oku/çöz, yürüt (Aritmetik Mantık Birimi, yazmaçlardan gelen işlenenler üzerinde işlem yapar ve program sayacını günceller), yaz (Aritmetik Mantık Birimi’nden çıkan sonuç yazmaç öbeğindeki yazmaca yazılır)
Boru Hattı Sorunları
Boru hattının dezavantajı, uygulanırken çeşitli sorunlara neden olmasıdır. Boru hattında 3 tip sorun vardır:
Yapı Sorunları
Boru hattı uygulamasında aynı kaynak aynı anda birden fazla değişik biçimde kullanılmaya çalışılırsa gerçekleşir. Başarımı sınırlarlar. Sorun bekleyerek çözülebilir.
Denetim Sorunları
Dallanma olan yerlerde, koşullar belli olmadan karar verilirse gerçekleşir. Dallanma kararı verilmeden önce yürütüm durdurulur ve karar belli olana kadar beklenir. Bir başka çözüm yolu da; kararı tahmin edip ona göre işlemi devam ettirmek, eğer karar hatalıysa geri dönüp tekrar denemek (Dallanma öngörüsü). Dallanma komutları geldiğinde işlemcinin nereye gideceğini bilmesi gerekir.
Veri Sorunları
Bir önceki işlemde henüz tamamlanmayan bir veri kullanılmak istenirse, Veri Sorunları gerçekleşir.
Bütün boru hattı sorunları, işlemin durdurulup beklenmesi ile çözümlenebilir.
Boru hattı uygulamasında her işlem birimi aynı aşamada sadece bir kere kullanılır(buyruk başına) ve her işlem birimi tüm buyruklar için aynı aşamada kullanılmalılar. Boru hattında yazmaç türü ve yükleme buyruklarında çakışma ya da yapı sorunu olursa, mesela, iki ayrı buyruk yazmaç öbeğine aynı anda yazmaya çalışıyorsa(sadece bir tane yazmaç yolu vardır) boru hattına boşluk eklenebilir ya da sonucun yazılması bir çevrim geciktirilebilir. Boşluk konması hem karmaşıklık hem de veri açısından iyi bir yol değildir. Onun için genellikle bir çevrim geciktirme yoluna başvurulur. Geciktirilen işlem sırasında bir işlem yapılmaz.
Boru hattı kullanılarak yapılan işlemcilerde beş bağımsız birim vardır
Buyrukları bellekten getirmek için – Buyruk Belleği
Buyrukları okuyup/çözmek için – Yazmaç Öbeği’nin okuma yolları
Buyrukların yürütülüp adres belleklerinin hesaplanması için – Aritmetik Mantık Birimi
Verileri almak için – Veri Belleği
Verileri yazmak için – Yazmaç Öbeği’nin yazma yolu
Genel Kültür
İlk işlemci mikrokontrolörü (MOS Technology 6502) tek bölümlük komut boru hattı uygulamasından oluşurdu.
Boru Hattı Kullanan İşlemciler
Pentium III: Pentium 3 ler 10 kademeli boru hattına sahiptir.
Athlon: Athlon Thunderbird, pluto,thoroughbred,barton hepsi 10 kademeli boru hattına sahiptir.
Athlon64: 12 kademeli boru hattına sahiptir.
Pentium4: williamette,northwood 20 kademeli boru hattına sahiptir.
Presscott: 31 kademeli boru hattına sahiptir.
Boru hattı ilk olarak FORD firmasında, Henry Ford tarafından kullanılmıştır.
Eski zamanlarda bu kadar teknolojik araç/gereç olmadığı için günde 1 araba üretilmekteydi. Bu da hem üretimi hem de tüketimi sınırlıyordu. Henry Ford üretim bantlarını geliştirdi. Bu sayede her üretim bandında arabanın farklı bir kısmı yapılacaktı ve hem başarım artacak hem de işlem daha hızlı yürüyecekti. Örneğin; bantta karbüratör takılıyorsa diğer bantlarda tekerlekler, fren sistemi… vb. parçalar takılacaktı. Bir arabanın karbüratörü takılıp işi bitince diğer banda giderken, başka bir araba karbüratör takımına girecek şekilde sistem işlemiştir.