Artık işlemcilerin üst düzeyde nasıl çalıştığını bildiğimize göre, dahili bileşenlerin nasıl tasarlandığını anlamak için içeri girmenin zamanı geldi. Bu makale işlemci tasarım dizimizin ikinci bölümüdür. Henüz birinci bölümü okumadıysanız, ilk önce bu konuyu gözden geçirmek isteyeceksiniz, aksi takdirde buradaki bazı kavramlar mantıklı olmayacaktır.

Muhtemelen bildiğiniz gibi, işlemciler ve diğer birçok dijital teknoloji transistörlerden yapılmıştır. Bir transistörü düşünmenin en basit yolu, üç pimli kontrol edilebilir bir anahtardır. Kapı açıkken, transistörden elektrik akışı sağlanır. Kapı kapalı olduğunda akım akamaz. Tıpkı duvarınızdaki ışık anahtarı gibi, ancak çok daha küçük, çok daha hızlı ve elektrikle kontrol edilebilir.

Modern işlemcilerde kullanılan iki ana transistör türü vardır: pMOS ve nMOS. Bir nMOS transistörü, geçit şarj edildiğinde veya yüksek ayarlandığında akımın akmasına izin verir ve pMOS transistörü, geçit boşaltıldığında veya düşük ayarlandığında akımın akmasına izin verir. Bu tip transistörleri tamamlayıcı bir şekilde birleştirerek CMOS mantık kapıları oluşturabiliriz. Transistörlerin bu makalede fiziksel olarak nasıl çalıştığına dair cesur ayrıntılara girmeyeceğiz, ancak serinin 3. Bölümünde buna değineceğiz.

Bir mantık geçidi, girişleri alan, bazı işlemleri gerçekleştiren ve bir sonuç veren basit bir cihazdır. Örneğin, bir AND geçidi çıkışını sadece ve sadece girişe ait tüm girişler açıksa açar. Bir inverter veya NOT geçidi, giriş kapalıysa çıkışını açar. Bu iki girişi birleştirebiliriz, ancak girişlerin hiçbiri açık değilse ve sadece çıkışını açan bir NAND veya değil -ve kapısı. OR, NOR, XOR ve XNOR gibi farklı mantık işlevlerine sahip başka kapılar vardır.

Aşağıda transistörlerden iki temel kapının nasıl tasarlandığını görebiliriz: bir invertör ve bir NAND geçidi. İnverterde, üstte güç hattına bağlı bir pMOS transistörü ve altta toprağa bağlı bir nMOS transistörü vardır. PMOST transistörleri, kapılarına bağlanan küçük bir daire ile çizilir. PMOS cihazlarının giriş kapalıyken ve nMOS cihazların giriş açıkken çalıştığını söylediğimiz için, Out'taki sinyalin daima In'deki sinyalin tersi olacağını görmek kolaydır. NAND geçidine baktığımızda dört transistör gerektirdiğini ve girişlerden en az biri kapalı olduğu sürece çıkışın açık olacağını görüyoruz. Bunun gibi basit ağlar oluşturmak için transistörlerin bağlanması, daha gelişmiş mantık kapıları ve işlemciler içindeki diğer devreleri tasarlamak için kullanılan işlemle aynıdır.

Mantık kapıları kadar basit yapı taşlarıyla, bunların nasıl çalışan bir bilgisayara dönüştürüldüğünü görmek zor olabilir. Bu tasarım süreci, basit bir işlevi yerine getirebilecek küçük bir cihaz oluşturmak için birkaç kapının birleştirilmesini içerir. Daha sonra, biraz daha gelişmiş bir işlev gerçekleştiren bir şey oluşturmak için bu cihazların çoğunu bağlayabilirsiniz. Çalışan bir tasarım oluşturmak için bireysel bileşenleri birleştirme süreci, bugün modern çipler oluşturmak için kullanılan şeydir. Tek fark, modern bir çipin milyarlarca transistörlerin.

Hızlı bir örnek olarak, temel bir toplayıcı 1 bitlik tam toplayıcıya bakacağız. Üç giriş alır - A, B ve Carry-In ve iki çıkış üretir - Sum ve Carry-Out. Temel tasarım beş mantık kapısı kullanır ve istediğiniz boyutta toplayıcı oluşturmak için birbirine bağlanabilir. Modern tasarımlar, bazı mantık ve taşıma sinyallerini optimize ederek bu konuda gelişir, ancak temeller hala aynıdır.

Toplam çıkışı, A veya B açık ancak her ikisi birden değilse ya da bir taşıma sinyali varsa ve A ve B'nin ikisi de açıksa veya her ikisi de kapalı ise açıktır. Gerçekleşme biraz daha karmaşık. A ve B'nin ikisi de aynı anda açık olduğunda veya bir taşıma varsa ve A veya B'den biri açık olduğunda etkindir. Daha geniş bir toplayıcı oluşturmak için birden fazla 1-bit toplayıcı bağlamak için, önceki bitin yürütmesini geçerli bitin taşınmasına bağlamamız yeterlidir. Devreler ne kadar karmaşık olursa, mantık o kadar karışık olur, ancak bu iki sayı eklemenin en basit yoludur. Modern işlemciler daha karmaşık toplayıcılar kullanır, ancak bu tasarımlar böyle bir genel bakış için çok karmaşıktır. Toplayıcılara ek olarak, işlemciler ayrıca tüm bu işlemlerin bölme, çarpma ve kayan nokta sürümleri için birimler içerir.

Girişlerde bazı işlevleri yerine getirmek için böyle bir dizi kapıyı birleştirmek, Birleşimsel Mantık. Bu tür bir mantık bilgisayarlarda bulunan tek şey değildir. Veri depolayamazsak veya hiçbir şeyin durumunu takip edemezsek çok yararlı olmazdı. Bunu yapmak için, veri saklama yeteneğine sahip sıralı mantığa ihtiyacımız var.

Sıralı mantık, invertörleri ve diğer mantık kapılarını, çıkışları kapıların girişine geri besleyecek şekilde dikkatlice bağlayarak oluşturulur. Bu geri bildirim döngüleri bir bit veri depolamak için kullanılır ve Statik RAM veya SRAM. Saklanan veriler her zaman doğrudan pozitif gerilime veya toprağa bağlı olduğu için DRAM'daki dinamiğin aksine statik RAM olarak adlandırılır.

Tek bir SRAM biti uygulamanın standart bir yolu, aşağıda gösterilen 6 transistördür. WL ile işaretlenmiş üst sinyal Kelime Satırı, adrestir ve etkinleştirildiğinde, bu 1 bit hücrede depolanan veriler Bit Çizgisi, BL olarak işaretlenmiştir. BLB çıkışı şu şekilde bilinir: Bit Çizgi Çubuğu, sadece Bit Line'ın ters çevrilmiş değeridir. İki tip transistörü tanıyabilmeniz ve M3 ve M1'in M4 ve M2 ile birlikte bir invertör oluşturması gerekir.

SRAM, işlemciler içindeki süper hızlı önbellekleri ve kayıtları oluşturmak için kullanılır. Çok kararlıdır, ancak her veri bitini depolamak için altı ila sekiz transistör gerektirir. Bu DRAM ile karşılaştırıldığında maliyet, karmaşıklık ve talaş alanı açısından üretimi son derece pahalı hale getirir. Dinamik RAM ise mantık kapıları kullanmak yerine verileri küçük bir kapasitörde saklar. Dinamik denir, çünkü kapasitörün gerilimi güce veya toprağa bağlı olmadığından dinamik olarak değişebilir. Kondansatörde depolanan verilere erişmek için kullanılan tek bir transistör vardır.

DRAM sadece bit başına tek bir transistör gerektirdiğinden ve tasarım çok ölçeklenebilir olduğundan, yoğun ve ucuz bir şekilde paketlenebilir. DRAM'in bir dezavantajı, kapasitördeki yükün o kadar küçük olmasıdır ki sürekli yenilenmesi gerekir. Bu nedenle bilgisayarınızı kapattığınızda, kapasitörler tüm boşaltma ve RAM'inizdeki veriler kaybolur.

Intel, AMD ve Nvidia gibi şirketler kesinlikle işlemcilerinin nasıl çalıştığına dair şemalar yayınlamıyor, bu nedenle modern bir işlemci için böyle tam diyagramları göstermek imkansız. Bununla birlikte, bu basit toplayıcı, bir işlemcinin en karmaşık parçalarının bile mantık kapılarına, depolama elemanlarına ve sonra transistörlere nasıl ayrılabileceği konusunda iyi bir fikir vermelidir.

Bir işlemcinin bazı bileşenlerinin nasıl oluşturulduğunu bildiğimize göre, her şeyi nasıl bağlayacağımızı ve senkronize edeceğimizi bulmamız gerekiyor. İşlemcideki tüm önemli bileşenler bir saat sinyali. Bu, yüksek ve düşük arasında, Sıklık. İşlemci içindeki mantık genellikle değerleri değiştirir ve saat düşükten yükseğe doğru olduğunda hesaplamalar yapar. Her şeyi birlikte senkronize ederek, işlemcide herhangi bir aksaklık olmaması için verilerin her zaman doğru zamanda ulaşmasını sağlayabiliriz.

Performansını artırmak için saati hız aşırtma olarak bilinen bir işlemciye artırabileceğinizi duymuş olabilirsiniz. Bu performans kazancı, bir işlemcideki transistörlerin ve mantığın tasarlandığından daha hızlı değiştirilmesinden kaynaklanır. Saniyede daha fazla döngü olduğu için daha fazla iş yapılabilir ve işlemci daha yüksek bir performansa sahip olacaktır. Bu bir noktaya kadar doğrudur. Modern işlemciler tipik olarak 3.0GHz ve 4.5GHz arasında çalışır ve son on yılda değişmemiş gibi görünmektedir. Tıpkı bir metal zincirinin en zayıf halka kadar güçlü olması gibi, bir işlemci sadece en yavaş kısım kadar hızlı çalışabilir. Her saat döngüsünün sonunda, bir işlemcideki her bir bileşenin çalışmasını bitirmiş olması gerekir. Henüz herhangi bir parça yapılmadıysa, saat çok hızlıdır ve işlemci çalışmaz. Tasarımcılar buna en yavaş kısmı Kritik yol ve bir işlemcinin çalışabileceği maksimum frekansı ayarlar. Belirli bir frekansın üzerinde, transistörler yeterince hızlı geçiş yapamazlar ve hata yapmaya veya yanlış çıkışlar üretmeye başlarlar.

Bir işlemciye giden besleme voltajını artırarak, transistörlerin anahtarlanmasını hızlandırabiliriz, ancak bu sadece belirli bir noktaya kadar çalışır. Çok fazla voltaj uygularsak, işlemciyi yakma riski vardır. Bir işlemcinin frekansını veya voltajını artırdığımızda, her zaman daha fazla ısı üretir ve daha fazla güç tüketir. Bunun nedeni, işlemci gücünün frekansla doğru orantılı ve gerilim karesiyle orantılı olmasıdır. Bir işlemcinin güç tüketimini belirlemek için, her transistörü genellikle değer değiştirdiğinde şarj edilmesi veya deşarj edilmesi gereken küçük bir kapasitör olarak düşünürüz.

Güç dağıtımı, bir işlemcinin önemli bir parçasıdır ve bazı durumlarda bir yonga üzerindeki fiziksel pimlerin yarısı yalnızca güç veya toprak için olabilir. Bazı yongalar tam yükte 150 amperden fazla çekebilir ve tüm bu akım son derece dikkatli bir şekilde yönetilmelidir. Bu miktarda gücü perspektif haline getirmek için, CPU birim alan başına nükleer reaktörden daha fazla ısı üretir.

Modern işlemcilerdeki saat, toplam gücünün kabaca% 30-40'ını oluşturuyor çünkü çok karmaşık ve çok farklı cihazlar kullanması gerekiyor. Enerjiden tasarruf etmek için, daha düşük güçlü tasarımların çoğu, kullanılmadıkları zaman çipin kısımlarını kapatacaktır. Bu, Saat Kapısı olarak bilinen saati kapatarak veya Güç Kapısı olarak bilinen gücü kapatarak yapılabilir.

Saatler, bir işlemci tasarlamak için başka bir zorluk yaratır, çünkü frekansları artmaya devam ettikçe, fizik yasaları yoluna girmeye başlar. Işık hızı son derece hızlı olmasına rağmen, yüksek performanslı işlemciler için yeterince hızlı değildir. Saati çipin bir ucuna bağlayacak olsaydınız, sinyal diğer uca ulaştığında, kayda değer miktarda senkronize olmazdı. Çipin tüm kısımlarını zamanında tutmak için saat, H Ağacı olarak adlandırılan şey kullanılarak dağıtılır. Bu, tüm uç noktaların merkezden tam olarak aynı mesafede olmasını sağlayan bir yapıdır.

Bir yongadaki her bir transistörü, saat sinyalini ve güç bağlantısını tasarlamak son derece sıkıcı ve karmaşık görünebilir ve bu kesinlikle doğru olacaktır. Intel, Qualcomm ve AMD gibi şirketlerin binlerce mühendisi olmasına rağmen, bir çipin her yönünü manuel olarak tasarlamaları mümkün olmayacaktı. Yongaları böyle bir ölçekte bir araya getirmek için, onlar için tasarımlar ve şemalar oluşturmak için çeşitli gelişmiş araçlar kullanırlar. Bu araçlar genellikle bileşenin ne yapması gerektiğine dair üst düzey bir açıklama alır ve bu gereksinimleri karşılamak için en uygun donanım yapılandırmasını belirler. Son zamanlarda, Üst Düzey Sentez Bu, geliştiricilerin kodda istedikleri işlevselliği belirtmelerini sağlar ve daha sonra bilgisayarların donanımda en iyi şekilde nasıl elde edileceğini bulmasını sağlar.

Tıpkı kodlarla bilgisayar programlarını tanımlayabileceğiniz gibi, tasarımcılar da kodu kodla tanımlayabilirler. Verilog ve VHDL gibi diller, donanım tasarımcılarının yaptıkları devrelerin işlevselliğini ifade etmelerine olanak tanır. Simülasyon ve doğrulama bu tasarımlarda yapılır ve her şey geçerse, devreyi oluşturacak spesifik transistörlere sentezlenebilir. Doğrulama yeni bir önbellek veya çekirdek tasarlamak kadar gösterişli görünmese de, bu çok daha önemlidir. Bir şirketin kullandığı her tasarım mühendisi için beş veya daha fazla doğrulama mühendisi olabilir.

Yeni bir tasarımın doğrulanması, gerçek çipin kendisini oluşturmaktan çok daha fazla zaman ve para gerektirir. Şirketler doğrulama için çok fazla zaman ve para harcıyor çünkü bir çip üretime girdikten sonra bunu düzeltmenin bir yolu yok. Yazılım ile sadece bir yama yapabilirsiniz, ancak donanım bu şekilde çalışmaz. Örneğin, Intel kayan nokta bölümünde hata Bazı Pentium yongaları ve bugün 2 milyar dolara mal oldu.

Zihninizi bir çipin nasıl birkaç milyar transistöre sahip olabileceği ve hepsinin ne yaptığına sarmak zor olabilir. Çipi kendi iç bileşenlerine ayırdığınızda, biraz daha kolaylaşır. Transistörler mantık kapıları yapar, mantık kapıları belirli bir görevi yerine getiren fonksiyonel birimler halinde birleştirilir ve bu fonksiyonel birimler Bölüm 1'de bahsettiğimiz bilgisayar mimarisini oluşturmak için birbirine bağlanır.

Tasarım çalışmalarının çoğu otomatiktir, ancak bu, satın aldığınız yeni CPU'nun ne kadar karmaşık olduğu için size yeni bir takdir vermelidir.

Serimizdeki bu ikinci bölüm CPU tasarım sürecini kapsıyordu. Transistörler, mantık kapıları, güç ve saat teslimatı, tasarım sentezi ve doğrulama hakkında konuştuk. Bölüm 3'te fiziksel olarak bir çip oluşturmak için neyin gerekli olduğunu göreceğiz. Her şirket, üretim süreçlerinin ne kadar gelişmiş olduğu konusunda övünmeyi sever (Intel 10nm, Apple ve AMD 7nm, vb.), Ancak bu sayılar aslında ne anlama geliyor? Bizi izlemeye devam edin.

Önerilen Okumalar:

Masthead kredisi: Devre kartı fütüristik kod işleme Kirill Savenko tarafından