
Ryzen İşlemcilerde İç Tasarım: CCD ve CCX Nedir?
Dışarıdan baktığımızda tek parça halinde gördüğümüz işlemcilerin iç kısımları oldukça karmaşık bir yapıda bildiğiniz üzere. Daha önceki bir makalemizde CPU’ların iç tasarımlarını ele almıştık. Bugün de kırmızı takımın, AMD’nin Ryzen işlemcilerini mercek altına yatırmak istedik.
AMD CPU’larda entegre ısı dağıtıcının altında “kompleksler” ile karakterize edilen bir yapı buluyoruz. CPU’nun omurgasını oluşturan bu çekirdek kompleksleri CCD ve CCX olarak adlandırılıyor. Şirket zaman zaman mimari olarak köklü değişiklikler yaparken CCD/CCX’ler üzerinde de oynama yapabiliyor. Bazı Zen mimarilerinde ciddi farklılıklara tanık olabiliyoruz, hatta kompleks başına çekirdek sayısı da değişebiliyor.
CCX Nedir?
Yukarıda bahsettiğimiz iki işlevsel birim, AMD’nin Ryzen’e yönelik modüler yaklaşımının kalbinde yer alıyor. Ryzen işlemcilerin temel birimi, paylaşımlı L3 önbellek ve dörtlü/sekizli çekirdek yapısına sahip olan CCX. Açılımı Core Complex, Çekirdek Komplesi anlamına geliyor. Başka bir deyişle, içerisinde belirlenen sayıda çekirdekle birlikte gerekli bölümleri içeren en temel birim.
Eski nesillerde her CCX dört CPU çekirdeği ve bunların kullandığı önbelleklerden (L1, L2 ve L3 önbellek) meydana geliyordu. Yeni Zen mimarileriyle birlikte CCX içine yerleştirilen çekirdeklerin sayısı da artış gösterdi.
AMD’nin Infinity Fabric bağlantı teknolojisi, işlemcileri oluşturmak için birden fazla CCX’i birbirine bağlamak için var. 2017 yılında piyasaya çıkan Zen mimarisinden önce, çok işlemcili sistemlerde birden fazla CPU’yu ve G/Ç birimini birbirine bağlayan HyperTransport ara bağlantı teknolojisi kullanılıyordu. AMD, EPYC ve Ryzen CPU’lar için “Zen” mimarisini tasarlarken verimli çoklu kalıp bağlantısı ve ölçeklenebilirlik sağlamak için HyperTransport’u Infinity Fabric’e dönüştürdü.
Tüm Zen mimarili CPU’ların içinde CCX dediğimiz gruplar yer almakta. Örnek olarak Ryzen 3000 Serisi işlemcilerde CCX’ler maksimum dört çekirdek barındırıyor. İki adet CCX bir araya geldiğinde ortaya sekiz çekirdek, aynı zamanda birazdan geleceğimiz CCD çıkıyor.
Aşağıda 2 kalıplı bir Ryzen Threadripper işlemcinin basit tasarımı yer alıyor. Her bir kalıbın toplam 16 çekirdek oluşturmak üzere iki CCX’e sahip olduğunu görebilirsiniz:
Daha az çekirdek taşıyan, son tüketicilere hitap eden Ryzen 9 3900X’ten de bir örnek verelim. Zen 2 mimarisine dayanan 3900X’in toplam 12 çekirdeğe sahip olduğunu biliyoruz. 12 çekirdek dört ayrı CCX’te birleşiyor. Ayrıca her CCD’de iki ayrı CCX olduğunu da belirtelim.
8’den fazla çekirdeğe sahip Ryzen 3000 işlemcilerde 2 CCD bulunuyor. 8 ve daha az çekirdek içeren CPU’larda ise tek CCD yeterli. Her bir CCX’te dört çekirdek olduğunu söylemiştik. 2 CCX ile birlikte toplam sekiz çekirdeğe çıkabiliyoruz, böylece tek CCD (2 CCX içeren) yeterli oluyor.
3900X’in ayrıca toplam 64 MB L3 önbellek ile geldiğini hatırlatalım. CCX’ler L3 önbelleği aralarında paylaşmakta. Yani 3900X’teki her CCX 16 MB paylaşılan önbelleğe sahip. Bu da CCD başına 32 MB L3 önbelleğe (16MB x 2 CCX) veya tüm CPU için 64 MB’a (işlemcide 2 CCD olduğu için 32 MB x 2) eşit.
CPU’daki toplam çekirdek sayısı dörde bölünemiyorsa ne mi oluyor? Her CCX’teki bir çekirdek devre dışı bırakılabiliyor. Bu tüm üreticilerin yaptığı yaygın bir gruplama şekli. Örneğin Ryzen 5 3600 toplam altı çekirdeğe sahip. Sekiz çekirdekli bir yongada olduğu gibi yine iki adet CCX mevcut, sadece bazı çekirdekler devre dışı bırakılmış halde.
CCD Nedir?
CCD ise Core Complex Die yani Çekirdek Kompleks Kalıbı anlamına geliyor. İçerisinde çekirdeklerin yer aldığı CCX’ler ve ara bağlantılar olan daha büyük bir çekirdek kümesi gibi düşünebilirsiniz. Demiştik ki AMD’nin Ryzen işlemcileri çok çipli yani çok kalıplı yapıda.
Bir CCD, Infinity Fabric arayüzü kullanılarak bir veya iki CCX’in bir araya getirilmesinden oluşuyor. Tüm Ryzen işlemciler, hatta dört çekirdekli modeller bile en azından bir CCD içerir. Sadece CCX başına farklı sayıda devre dışı bırakılmış çekirdekler kullanılmakta.
Diğer yandan çekirdek sayısı yükseldikçe CCD’lerin sayısı da artabilir. Çok çipli modüllerde CPU çekirdek sayısı ve kalıplarla birlikte karmaşıklık düzeyi de yükselmekte. AMD, mimariye bağlı olarak her CCD’de (kalıp) farklı çekirdek sayılarıyla birlikte CCX’leri bir araya getiriyor:
- Zen’den Zen 2’ye kadar her CCD iki CCX, her CCX dört çekirdek içeriyordu.
- Zen 3’ten Zen 5’e kadar her CCD bir CCX ve her CCX sekiz çekirdek barındırıyordu.
- Zen 4c (kompakt) tasarımında her CCD iki CCX ve her CCX sekiz çekirdek taşıyabiliyor.
Zen 2 ve Zen 3 mimarileri arasındaki farka kısaca göz atacak olursak:
Solda iki CCX içeren bir Zen 2 CCD görüyorsunuz. Her CCX’in 4 çekirdeği ve kendi L3 önbelleği bulunuyor. Az önce sözünü ettiğimiz gibi Infinity Fabric ile iletişim kuruyorlar. Sağda ise aynı L3 önbelleği paylaşan sekiz çekirdekli tek bir CCX görüyoruz. Bu CCX, tek bir Zen CCD’nin içinde yer alıyor. Infinity Fabric kullanımında ise bir fark var. Zen 3’te Fabric, diğer CCD’lerle iletişim kurmak için kullanılıyor.
Hemen verimlilik çekirdeği olarak bildiğimiz Zen 4c çekirdeklerinin yapısına da göz atalım. Sol tarafta aynı L3 önbelleği paylaşan, sekiz çekirdekli tek bir CCX içeren Zen 4 CCD görüyoruz. Sağda ise iki CCX içeren bir Zen 4c CCD var. Her CCX’in sekiz çekirdeği ve kendi L3 önbelleği bulunuyor.
Farklı Çekirdek Sayıları
CCX/CCD tasarımının avantajları ve dezavantajları var. Olumsuz tarafı, AMD genel olarak en az dört çekirdekli tasarımlar benimsediğinden üretim maliyetleri yüksek olabiliyor. Ancak AMD ve Intel gibi şirketler üretim esnasında çipleri çöpe atmak istemezler. Bu bağlamda, örneğin iki veya üç işlevsel çekirdeğe sahip kısmen işlevsel CCX’leri çöpe atmak yerine kurtarıyorlar. Ryzen 5 5600X ve Ryzen 5 3600 gibi çiplerde her birinde tek çekirdeği devre dışı bırakılmış iki CCX mevcut.
Üretilen yonga kalıbının bir kısmının kusurlu olma ihtimali var. Olasılık, daha küçük özellikler ve daha karmaşık kalıplarla birlikte artmakta. Bunu aşmak için üreticilerin kalıbın bazı kısımlarını devre dışı bırakması gerekiyor, söylediğimiz şey yaygın bir uygulama.
Kalıpları dört çekirdekli olarak ürettiğimizi düşünelim. Bazı kalıplarda tüm çekirdekler işlevseldir, sorunsuz şekilde dört çekirdekli CPU kalıplarını yani yongacıkları kullanabiliriz. Bazı kalıplarda iki çekirdek arızalı diyelim. Bu durumda arızalı çekirdekleri devre dışı bırakıyoruz ve iki çekirdekli bir CPU olarak paketliyoruz.
Tek çekirdek kusurluysa, bu çekirdeği devre dışı bırakarak ve üçlü iki kalıbı bir araya getirerek altı çekirdekli bir işlemci yaratabiliyoruz. Bir diğer seçenek ise ekstra bir çekirdeği daha çöpe atarak çift çekirdekli bir işlemci pazarlamak. Bazı kalıplarda üç ya da dört çekirdek kusurludur, yapacak bir şey olmadığı için çöpe gider. Bu yaklaşım, herhangi bir silikon disk plakadan (wafer) çıkarılabilecek kalıp sayısını, yani verimi artırıyor.
AMD İşlemciler
AMD’nin ilk Zen mimarisi ve Ryzen, EPYC, Threadripper işlemcilerle yakaladığı başarının ardında birkaç faktör var. Çiplet tasarımı (MCM, Çoklu Çip Modülü) ise başarının merkezinde yer alıyor desek herhalde yanılmış olmayız. Bu tasarım, AMD’nin çekirdek sayısını tüketici pazarında daha önce hiç görülmemiş rakamlara çıkarmasını sağladı ve bir tür devrim için zemin hazırladı.
Kırmızı ekibin çipleri söz konusu olduğunda sürekli X3D, Ryzen, Zen ve Zen 3 gibi terimler önünüze gelir. “Ryzen” AMD CPU’ların genel markası gibi. Tıpkı Intel tarafındaki “Core” ve “Core Ultra” gibi. Marka, CPU’nun belirli bir pazar için tasarlandığını belirtmek amacıyla kullanılan ticari bir isim. CPU neslinden tamamen farklı.
“Zen” dediğimizde aşağıda değineceğimiz tüm mikro mimarileri bir çatı altında toplamış oluyoruz. Zen’den önce Bulldozer mikro mimari ailesi vardı örnek olarak. Zen 3, Zen 4 ve Zen 5 gibi mikro mimariler ise Zen mimarisini temel alırken çeşitli değişikliklerle geliyorlar. Bazen çekirdek sayıları, bazen önbellek miktarı, bazen CCD ve CCX’in konumu değişiyor. Bunların dışında da genel CPU bazında birçok değişikliğe gidilebiliyor. AMD, yıl veya her iki yılda bir CPU çekirdeklerinin tasarımını yineliyor, geliştiriyor.
- Athlon: Ekonomik sistemlere yönelik olarak sunulan AMD işlemciler Athlon adını taşıyordu. Kafa karıştırıcı bir şekilde, bu isim 2000’lerin başında üst düzey marka olarak kullanılıyordu. Son yıllarda ise vaziyet değişti. Athlon’un karşılığı Intel tarafında Intel Processor ve Intel Celeron gibi markalar. Bildiğiniz üzere bu işlemciler giriş seviyesine hitap ediyor.
- Ryzen: Ryzen ise tüketicilere yönelik olarak kullanılan genel marka. Intel cephesinde eşdeğeri Intel Core/Core Ultra. Bu CPU’lar sınıfına bağlı olarak oyun oynamak veya üretkenlik uygulamalarıyla çalışmak için kullanılabilir. Ryzen 3, Ryzen 5, Ryzen 7 ve Ryzen 9 gibi sınıfların karşılığı Intel i3, i5, i7, ve i9.
- EPYC: Sunucular için üretilen işlemciler EPYC adıyla piyasaya sürülüyor. Rakipte ise Xeon kod adlı yongalar var. Sunucu işlemcilerinde 128 adede kadar çekirdek sayıları görebilirsiniz.
- Threadripper (Ryzen Threadripper): Oyun oynamak için değil, yüksek çekirdek sayısına ve işlem performansına ihtiyaç duyan iş istasyonları için tasarlanan işlemcilere verilen isim. Üst düzey masaüstü anlamına gelen high-end desktop (HEDT) bilgisayarlara yönelik olarak üretiliyor. Intel tarafındaki rakipleri Xeon W Serisi altında piyasaya sürülüyor. Threadripper yongalar video düzenleme, fizik simülasyonu, bilimsel hesaplama vb. için yararlı olan çok sayıda güçlü çekirdeğe sahip
- Ryzen Embedded ve EPYC Embedded: Düşük güç tüketen cihazlara entegre edilen gömülü işlemciler. Intel tarafında benzer olarak Atom isimli çipler mevcut.
AMD ve Intel Arasındaki Üretim Farkları
Intel ve AMD’nin CPU tasarımları çok farklı. Aslında Intel de son dönemde farklı tasarımlar benimsemeye başladı, çoklu birimler (Tile adı verilen) içeren CPU’lar üretmeye başladılar. Ancak mavililer bu zamana kadar hep monolitik tasarım kullanıyordu. Başka bir deyişle, AMD gibi farklı yongacıklar kullanmak yerine daha bütünleşmiş bir yaklaşım benimsiyorlardı.
Monolitik tasarımda 10 veya daha fazla çekirdekli bir işlemci üretmek istediğinizde sürecin maliyeti önemli ölçüde artıyor. Çünkü şirketin arızalı bölümleri atması gerek. Bu nedenle şirket Pentium, Celeron, Core i3, i5 veya i7 yongalarını daha düşük maliyetle üretiyor. Ancak Core i8 veya Xeon söz konusunda olduğunda işler değişiyor.
AMD, Zen mimarisiyle uzun yıllar boyunca işleyecek bir strateji belirlemişti. Kırmızı takımın çiplet tasarımı, yani çok yongalı tasarımı çok daha rahat ölçeklenebilirlik sağlıyor.
Zen 3 Mimarisi Nasıl Görünüyor?
Fritzchens Fritz, yaklaşık 549 dolarını çöpe atmayı göze alarak Ryzen 5 5600X’i parçalarına ayırmıştı. Burada biraz önce konuştuğumuz çok yongalı tasarımı görebilirsiniz. Eğer işlemci Ryzen 5 5600X değil de Ryzen 5 5900X olsaydı, gördüğünüz küçük birimlerin sayısı daha fazla olacaktı.
Bir Ryzen işlemcinin iç kısmı işte böyle görünüyor. Ayrıntılı görsellere baktığınızda ise sekiz Zen 3 çekirdeğini barındıran CCD (Core Compute Die) ve I/O kalıbını görebilirsiniz. Ryzen 5 5600X 6 çekirdekli bir CPU olduğundan, tek bir CCD kullanılıyor ve 8 çekirdeğin ikisi devre dışı bırakılmış halde geliyor.
Zen 2’de her bir Zen CCD’si iki CCX’den (Çekirdek Kompleksi) oluşuyordu. Zen 3’te ise tam aksine, CCD tek iş parçacığı modunda (1T) veya tek iş parçacığı modunda çalışabilen 8 çekirdek içeren tek bir CCX’den oluşuyor. İşlemci maksimum iki adet CCD içerdiğinden, çekirdek sayısı amiral gemisi Ryzen 9 5950X’de olduğu gibi maksimum 16’ya çıkabiliyor.
Zen 2 ve Zen 3 mimarileri, çok kalıplı (çok yongalı-chiplet) bir sistem üzerinde çalışıyor. Çekirdekler ve önbellek CCD adı verilen bir bölüm içerisinde konumlanırken, I/O ve CCD’ler arasındaki iletişim Infinity Fabric aracılığıyla yönetiliyor.
Çok yongalı tasarım, her bölüm için farklı bir üretim teknolojisinin kullanılmasına izin veriyor ve bu da CPU üretimi açısından daha verimli bir yol. Örneğin çekirdeklerin yer aldığı CCD’ler TSMC’nin 7nm nodunu kullanıyor. I/O birimleri ise GlobalFoundries’in daha eski 12nm üretimi üzerine inşa ediliyor. Doğal olarak bu üretim yaklaşımıyla maliyet daha düşük tutulabiliyor.