Tek vuruşluk veri yolunda, buyruk başına tek çevrim gerekmektedir. Ancak bu yöntemde uzun saat çevrim zamanı olmaktadır. Çok vuruşluk veri yolunda buyruklar aşamalara bölünür ve bu aşamalar tek çevrimde yapılır. Bir işlemci tasarlamak için aşağıdaki adımlar uygulanır.
- Buyruk kümesi incelenir.
- Veri yolu birimleri seçilir ve saat stratejisi belirlenir.
- Gereksinimleri karşılayan veri yolu birleştirilir.
- Yazmaç aktarımını etkileyen denetim noktalarını belirlemek için her buyruğun uygulaması incelenir.
- Denetim birleştirilir.
Tek Vuruşluk Veri Yolu
Tek vuruşluk veri yolunda buyruk başına çevrim birdir. Tüm buyruklar en uzun buyruk kadar bekler. Bu yöntem günümüzde kullanılmaz çünkü etkili bir yöntem değildir. İşlemler her zaman tek bir vuruşta bitirilemez ve uzun çevrim zamanı gerekir.
Buyruk adresini bulmak için program sayacı kullanılır. Buyruk bellekten getirilir. Yazmaçlar okunur. Buyruk kullanılarak ne yapılacağı anlaşılır.
İki tür işlem birimi vardır. Veri üzerinde işlem yapan, birleşik birimler. Durumu belirleyen, ardışıl birimler. Birleşik mantık birimleri toplayıcı, çoklayıcı, ve AMB gibi birimlerdir. Ardışıl birimler ise mandallar ve flip-floplardır.
Çok Vuruşluk Veri Yolu
Çok vuruşluk veri yolunda her buyruk aşamalara bölünür ve bu aşamalar tek çevrimde yapılır. Her çevrim bir ana işlem birimi kullancak şekilde sınırlanır ve yapılacak iş miktarı dengelenir. Çevrim sonunda daha sonraki çevrimlerde kullanılacak değerler fazladan yerel yazmaç vasıtasıyla saklanır.
Yukarıdaki resimde görüldüğü gibi tek vuruşluk veri yolundan farkı aralardaki yeni yazmaçlardır. Bu yazmaçlar;
- 'IR:' Buyruk yazmacıdır.
- 'A,B:' Kaynak değerlerini tutmak için iki yazmaçtır.
- 'R:' AMBnin ürettiği değerleri tutmak için bir yazmaçtır.
- 'M' Bellekten okunan bir veriyi tutmak için bir yazmaçtır.
Çok vuruşluk veri yolunun tek vuruşluya göre avantajı daha kısa çevrim zamanı gerekmesidir. Tek vuruşluk bir işlemi daha kısa süren iki vuruşta yapmak gibi. Tek vuruşluk veri yollu basit buyruk kümelerinde iyi çalışırken, günümüzdeki gibi kayan nokta işlemlerinin çokca kullanıldığı karmaşık buyruk kümelerinde etkisiz kalmaktadır. İki örnek arasındaki farkı bir örnek yardımıyla görelim.
Tek vuruşluk veri yolunun çevrim zamanı en uzun buyruğun yani load buyruğunun zamanı olan 600ps olacaktır. Çok vuruşluk veri yolunun ise 200ps ile 600ps arasında değişecektir. Bu yüzden ortalama işlem zamanı aşağıdaki gibi olacaktır. Ortalama Çevrim Zamanı = 600 * %25 + 550 * %10 + 400 * %45 + 350 * %15 + 200 * %15 Ortalama Çevrim Zamanı = 447.5 ps Başarımçok vuruşlu / Başarım tek vuruşlu=Yürütme Zamanıtek vuruşlu/Yürütme Zamanıçok vuruşlu
Buyruk sayısı ikisinde de aynı olduğu için; 600/447.5=1.34 Buna göre çok vuruşlu veri yolu, tek vuruşluya göre 1.34 kat daha hızlıdır.
Denetim
Denetim birimi veri yolundaki denetim işaretlerini belirleyen birimdir. Denetim işaretleri çalıştırılan buyruk ve uygulanan adım sayısına bağlıdır.
- AMB Denetimi: AMBnin denetim işaretini buyruktaki ALUop ve func gibi bitlerin yardımıyla bulur.
- Ana Denetim Birimi: Gerekli bütün denetim işaretlerinin büyük bir kısmını sağlayan birimdir.
Daha Karmaşık Mimari Tasarlamanın Zorlukları
Mips mimarisinin aksine IA-32 mimarisi daha karmaşık buyruklar içerir ve çalışması için onlarca çevrim gerekebilir. Bu karmaşıklık Mipsdeki basit buyrukların bile geçekleştirilmesini zorlaştırır. Ancak bir çok vuruşlu veri yolu IA-32 buyruklarına uyabilecek bir yapıdadır. Bu uygunluk alttaki iki maddeden gelmektedir.
- Çok vuruşlu veri yolu, buyrukların birden çok vuruşta çalışmasına izin vermektedir.
- Çok vuruşlu veri yolunda, veri yolu bileşenleri birden çok buyruk tarafından kullanılabilmektedir. Böylece karmaşık adreslemelerin önüne geçilmiş olur ve daha karmaşık işlemlerin gerçekleştirilmesine olanak sağlar.
Kaynaklar
- David A. Patterson, John L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, Elsevier, 2005, ISBN 1-55860-604-1
- Mano and Kime, "Logic and Computer Design Fundamentals", 2000, Prentice Hall