• SMP, Tekdüzen Bellek Erişimi (Paylaşılan Bellek) anlamına gelir. SMP mimarisi. Avantajlar ve dezavantajlar. Kapsam, SMP'deki uçak örnekleri

    SMP sistemlerinde Linux'un gücünü açığa çıkarın

    Verim Linux sistemleri arttırabilirsin Farklı yollar ve en popülerlerinden biri işlemci performansını artırmaktır. Kesin çözüm daha hızlı bir işlemci kullanmaktır ancak saat üretecinin daha hızlı çalışamayacağı herhangi bir teknolojinin fiziksel bir sınırı vardır. Bu sınıra ulaşıldığında çok daha iyi bir yaklaşım benimseyip birden fazla işlemci kullanabilirsiniz. Ne yazık ki performansın bireysel işlemcilerin parametre kümesine doğrusal olmayan bir bağımlılığı vardır.

    Linux'ta çoklu işlem kullanımını tartışmadan önce geçmişine bir göz atalım.

    Çoklu işlemenin tarihi

    Çoklu işleme, 1950'lerin ortalarında, bazılarını bildiğiniz ve bazılarını unutmuş olabileceğiniz birkaç şirkette ortaya çıktı (IBM, Digital Equipment Corporation, Control Data Corporation). 1960'ların başında Burroughs Corporation, bir çapraz çubukla bağlanan on altıya kadar bellek modülüne sahip dört CPU MIMD tipi simetrik çoklu işlemciyi (ilk SMP mimarisi) piyasaya sürdü. Yaygın olarak bilinen ve başarılı CDC 6600, 1964 yılında piyasaya sürüldü ve CPU'ya on alt işlemci (çevresel işlemci) sağladı. 1960'ların sonlarında Honeywell, sekiz CPU Multic'ten oluşan başka bir simetrik çok işlemcili sistemi piyasaya sürdü.

    Çok işlemcili sistemler geliştikçe teknoloji de ilerledi; işlemciler küçüldü ve çok daha büyük ölçekte çalışma yetenekleri arttı. saat frekansı. 1980'lerde Cray Research gibi şirketler çok işlemcili sistemleri ve bunları kullanabilen UNIX® benzeri işletim sistemlerini (CX-OS) piyasaya sürdü.

    1980'lerin sonlarında IBM PC gibi tek işlemcili kişisel bilgisayarların popülerleşmesiyle birlikte çok işlemcili sistemlerde bir düşüş yaşandı. Ancak şimdi, yirmi yıl sonra, çoklu işlem aynı kişisel bilgisayarlara simetrik çoklu işlem biçiminde geri döndü.

    Amdahl yasası

    Gene Amdahl, bilgisayar mimarı ve IBM çalışanı, IBM'de geliştirildi bilgisayar mimarileri, aynı adı taşıyan şirket olan Amdahl Corporation'ı vb. kurdu. Ancak sistemin mümkün olan maksimum iyileştirmesinin, kendi payının iyileştirilmesiyle hesaplandığı yasası ona ün kazandırdı. Kanun esas olarak birden fazla işlemci kullanıldığında sistem performansındaki maksimum teorik iyileşmeyi hesaplamak için kullanılır (bkz. Şekil 1).

    Şekil 1. Süreç paralelleştirmesi için Amdahl yasası

    Şekil 1'de gösterilen denklemi kullanarak, bir sistem için maksimum performans iyileştirmesini aşağıdakileri kullanarak hesaplayabilirsiniz: N işlemciler ve faktör F, sistemin hangi kısmının paralelleştirilemeyeceğini belirtir (sistemin doğası gereği sıralı olan kısmı). Sonuç Şekil 2'de gösterilmektedir.

    Şekil 2. On CPU'ya kadar olan bir sistem için Amdahl yasası

    Şekil 2'deki üst satırda işlemci sayısı gösterilmektedir. İdeal olarak, sorunu çözmek için ek işlemciler ekledikten sonra görmek isteyeceğiniz şey budur. Ne yazık ki, görevdeki her şeyin paralelleştirilememesi ve işlemcilerin yönetilmesinde ek yük olması nedeniyle hızlanma biraz daha az. Aşağıda (mor çizgi) %90 tutarlı bir görev örneği bulunmaktadır. Bu grafikteki en iyi durum, %10 sıralı ve dolayısıyla %90 paralelleştirilebilir bir görevi gösteren kahverengi çizgiye karşılık gelir. Öyle olsa bile on işlemci beşten çok daha iyi performans göstermiyor.

    Çoklu işlem ve PC

    SMP mimarisi, iki veya daha fazla özdeş işlemcinin, paylaşılan bellek aracılığıyla birbirine bağlandığı mimaridir. Hepsinin paylaşılan belleğe aynı erişimi vardır (bellek alanına erişim için aynı zaman aşımı). Bunun tersi ise Tekdüzen Olmayan Bellek Erişimi (NUMA) mimarisidir. Örneğin, her işlemcinin kendi belleği ve farklı gecikme süresine sahip paylaşılan bellek erişimi vardır.

    Gevşek bağlı çoklu işlem

    İlk Linux SMP sistemleri, gevşek bağlı çok işlemcili sistemlerdi; yani, yüksek hızlı bir bağlantıyla (10G Ethernet, Fiber Kanal veya Infiniband gibi) birbirine bağlanan birkaç ayrı sistemden oluşturulmuştu. Bu tür mimarinin bir diğer adı da Linux Beowulf projesinin popüler bir çözüm olmaya devam ettiği kümedir (bkz. Şekil 3). Linux Beowulf kümeleri mevcut donanımlardan ve ortak uygulamalardan oluşturulabilir. ağ bağlantısı Ethernet gibi.

    Şekil 3 Gevşek bağlı çok işlemcili mimari

    Gevşek bağlı çok işlemcili mimariye sahip sistemler oluşturmak kolaydır (Beowulf gibi projeler sayesinde), ancak sınırlamaları da vardır. Çok işlemcili büyük bir ağ oluşturmak, önemli miktarda güç ve alan gerektirebilir. Daha ciddi bir engel ise iletişim kanalının malzemesidir. 10G Ethernet gibi yüksek hızlı bir ağda bile sistem ölçeklenebilirliğinin bir sınırı vardır.

    Sıkıca bağlanmış çoklu işlem

    Sıkı bağlı çoklu işlem, çip düzeyinde çoklu işleme (CMP) anlamına gelir. Gevşek bağlı bir mimarinin bir çipe indirgendiğini hayal edin. Bu, sıkı bir şekilde birleştirilmiş çoklu işlem (aynı zamanda çok çekirdekli bilgi işlem olarak da adlandırılır) fikridir. Birde entegre devre birkaç kristal, Ortak hafıza ve bağlantı, çoklu işleme için iyi entegre edilmiş bir çekirdek oluşturur (bkz. Şekil 4).

    Şekil 4. Sıkıca bağlanmış çoklu işlem mimarisi

    CMP'de, birkaç CPU, paylaşılan belleğe (ikinci düzey önbellek) sahip ortak bir veri yolu ile bağlanır. Her işlemcinin ayrıca kendi hızlı belleği (birinci düzey önbellek) vardır. CMP'nin sıkı bir şekilde birleştirilmiş doğası, işlemciler ve bellek arasında çok kısa fiziksel mesafelere ve bunun sonucunda minimum bellek erişim gecikmesine ve daha yüksek performansa olanak tanır. Bu tür mimari, iş parçacıklarının işlemciler arasında dağıtılabildiği ve paralel olarak çalışabildiği çok iş parçacıklı uygulamalarda iyi çalışır. Buna iş parçacığı düzeyinde paralellik (TPL) denir.

    Bu çok işlemcili mimarinin popülaritesi göz önüne alındığında, birçok üretici CMP cihazları üretmektedir. Tablo 1'de Linux destekli popüler seçeneklerden bazıları listelenmektedir.

    Tablo 1. CMP cihazları örneği
    Üretici firmaCihazTanım
    IBM'inGÜÇ4SMP, iki CPU
    IBM'inGÜÇ5SMP, iki CPU, dört paralel iş parçacığı
    AMDAMD X2SMP, iki CPU
    Intel®keonSMP, iki veya dört CPU
    IntelCore2 DuoSMP, iki CPU
    KOLMPÇekirdekSMP, dört CPU'ya kadar
    IBM'inKsenonSMP, üç Power PC CPU'su
    IBM'inHücre İşlemcisiAsimetrik çoklu işlem (ASMP --Asimetrik çoklu işlem), dokuz CPU

    Çekirdek yapılandırması

    SMP'yi SMP uyumlu donanımda Linux ile kullanmak için çekirdeğin doğru şekilde yapılandırılması gerekir. Çekirdeğin SMP'den haberdar olması için çekirdek yapılandırması sırasında CONFIG_SMP seçeneğinin etkinleştirilmesi gerekir. Böyle bir çekirdek çok işlemcili bir ana bilgisayarda çalışacaksa, işlemcilerin sayısını ve türlerini kullanarak belirleyebilirsiniz. dosya sistemi proc.

    Öncelikle grep kullanarak /proc içindeki cpuinfo dosyasından işlemci sayısını alırsınız. Liste 1'de gördüğünüz gibi işlemci ile başlayan satırlar için --count (-c) seçeneğini kullanıyorsunuz. Cpuinfo dosyasının içeriği de listelenir. Örnek olarak iki kristal üzerindeki bir Xeon anakartı alınmıştır.

    Listeleme 1. CPU hakkında bilgi almak için proc dosya sistemini kullanma
    mtj@camus:~$ grep -c ^işlemci /proc/cpuinfo 8 mtj@camus:~$ cat /proc/cpuinfo işlemci: 0 seller_id: OrijinalIntel işlemci ailesi: 15 model: 6 model adı: Intel(R) Xeon(TM) ) CPU 3,73GHz adımlama: 4 işlemci MHz: 3724.219 önbellek boyutu: 2048 KB fiziksel kimlik: 0 kardeş: 4 çekirdek kimliği: 0 işlemci çekirdeği: 2 fdiv_bug: hayır hlt_bug: hayır f00f_bug: hayır coma_bug: hayır fpu: evet fpu_ Exception: evet cpuid seviye: 6 wp: evet bayraklar: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm pni monitör ds_cpl est cid xtpr bogomips: 7389.18 ... işlemci: 7 satıcı_kimliği: OrijinalIntel işlemci ailesi: 15 model: 6 model adı: Intel(R) Xeon(TM) CPU 3,73 GHz adımlama: 4 işlemci MHz: 3724.219 önbellek boyutu: 2048 KB fiziksel kimlik: 1 kardeş: 4 çekirdek kimliği: 3 cpu çekirdeği: 2 fdiv_bug: hayır hlt_bug: hayır f00f_bug: hayır coma_bug: hayır fpu: evet fpu_ Exception: evet cpuid düzeyi: 6 wp: evet bayraklar: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm pni monitör ds_cpl est cid xtpr bogomips: 7438.33 mtj@camus:~$

    SMP ve Linux çekirdeği

    Linux 2.0 ilk geldiğinde SMP desteği, sistem genelinde erişimi düzenleyen temel bir kilitleme sisteminden oluşuyordu. Son zamanlarda SMP desteğinde çok az ilerleme kaydedildi, ancak SMP'nin tam gücünün nihayet devreye girmesi 2.6 çekirdeğe kadar mümkün olmadı.

    2.6 çekirdeği, aşağıdakileri içeren yeni bir 0(1) zamanlayıcıyı tanıttı en iyi destek SMP sistemleri için. Önemli olan, önbelleği daha verimli kullanmak için CPU'lar arasında işlem geçişini mümkün olduğunca önleyerek mevcut tüm CPU'lar arasında yük dengeleme yeteneğiydi. Önbellek performansı söz konusu olduğunda, Şekil 4'ten, bir görev bir CPU ile etkileşime girdiğinde onu diğerine taşımanın önbelleğin dahil olmasını gerektirdiğini unutmayın. Bu, verileri yeni CPU'nun önbelleğindeyken görevin belleğe erişim zaman aşımını artırır.

    2.6 çekirdeği, her işlemci için bir çift çalışma kuyruğu tutar (süresi dolmuş ve aktif bir çalışma kuyruğu). Her çalışma kuyruğu, 100'ü gerçek zamanlı görevler için ve geri kalan 40'ı kullanıcı görevleri için kullanılan 140 önceliği destekler. Görevlere çalıştırılmaları için zaman aralıkları verilir ve süreleri dolduğunda aktif çalışma kuyruğundan süresi dolmuş olan çalışma kuyruğuna taşınırlar. Bu, tüm görevler için CPU'ya eşit erişim sağlar (yalnızca bireysel CPU'ları bloke eder).

    Her birinde bir görev kuyruğu var CPU çalışması sistemdeki tüm CPU'ların ağırlıklı yükünü vererek dengelenebilir. Zamanlayıcı, işleri yeniden dağıtmak ve işlemci kompleksini dengede tutmak için her 200 milisaniyede bir yük dengeleme gerçekleştirir. Linux 2.6 zamanlayıcı hakkında daha fazla bilgi için bkz.

    Kullanıcı alanı konuları: SMP'nin gücünü geliştirmek

    İÇİNDE Linux çekirdeği yapıldı büyük iş SMP'nin geliştirilmesi için ancak işletim sistemi tek başına yeterli değildir. SMP'nin gücünün TLP'de yattığını hatırlayın. Tek monolitik (tek iş parçacıklı) programlar SMP kullanamaz ancak SMP, çekirdekler arasında paylaşılabilen birçok iş parçacığından oluşan programlarda kullanılabilir. Bir iş parçacığı bir G/Ç işlemini beklerken diğeri bunu yapabilir faydalı iş. Böylece iş parçacıkları birbirinin zaman aşımını üst üste bindirerek çalışır.

    Taşınabilir İşletim Sistemi Arayüzü (POSIX) iş parçacıkları, SMP kullanabilen iş parçacıklı uygulamalar oluşturmanın harika bir yoludur. POSIX iş parçacıkları, paylaşılan belleğin yanı sıra bir iş parçacığı mekanizması da sağlar. Program çağrıldığında, her biri kendi yığınını (yerel değişkenler ve durum) koruyan, ancak ebeveynin veri alanını paylaşan bir dizi iş parçacığı oluşturulur. Oluşturulan tüm iş parçacıkları aynı veri alanını paylaşır, ancak sorunun yattığı yer burasıdır.

    Paylaşılan belleğe çok iş parçacıklı erişimi desteklemek için koordinasyon mekanizmaları gereklidir. POSIX, oluşturmak için bir muteks işlevi sağlar kritik bölümler, yalnızca bir iş parçacığı için bir nesneye (bir bellek parçası) özel erişim ayarlayan. Bu yapılmazsa, birden fazla iş parçacığı tarafından gerçekleştirilen senkronize olmayan manipülasyonlar nedeniyle bellek bozulabilir. Liste 2, POSIX muteksi kullanılarak kritik bir bölümün oluşturulmasını göstermektedir.

    Liste 2. Kritik bölümler oluşturmak için pthread_mutex_lock ve unlock'u kullanma
    pthread_mutex_t crit_section_mutex = PTHREAD_MUTEX_INITIALIZER; ...pthread_mutex_lock(&crit_section_mutex); /* Kritik bölümün içinde. Buradaki hafıza erişimi güvenlidir * crit_section_mutex tarafından korunan hafıza için. */ pthread_mutex_unlock(&crit_section_mutex);

    Yukarıdan yapılan ilk çağrının ardından birden fazla iş parçacığı semaforu kilitlemeye çalışırsa, bunlar engellenir ve istekleri pthread_mutex_unlock çağrılana kadar sıraya alınır.

    SMP için çekirdek değişken koruması

    Bir işlemcideki birden fazla çekirdek, bir işletim sistemi çekirdeği için paralel olarak çalıştığında, söz konusu işlemci çekirdeğine özgü verilerin paylaşılmasından kaçınmak arzu edilir. Bu nedenle 2.6 çekirdeği, bireysel CPU'larla ilişkili çekirdek başına değişkenler kavramını ortaya koydu. Bu, söz konusu CPU tarafından en sık kullanılan CPU'lar için değişkenlerin bildirilmesine olanak tanıyarak kilit gereksinimlerini en aza indirir ve performansı artırır.

    Bireysel çekirdek değişkenlerinin tanımlanması, değişkenin türünü ve adını ilettiğiniz DEFINE_PER_CPU makrosu ile yapılır. Makro l değeri olarak geldiğinden onu burada da başlatabilirsiniz. Aşağıdaki örnek (./arch/i386/kernel/smpboot.c'den), sistemdeki her CPU'nun durumunu temsil eden bir değişkeni tanımlar.

    /* Her CPU'nun durumu. */ DEFINE_PER_CPU(int, cpu_state) = ( 0 );

    Makro, her CPU örneği için bir tane olmak üzere bir dizi değişken oluşturur. Per_cpu makrosu, programın o anda çalışmakta olduğu CPU'nun geçerli kimliğini döndüren smp_processor_id işleviyle birlikte, tek bir CPU için bir değişken elde etmek için kullanılır.

    per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE;

    Çekirdek, CPU başına kilitleme ve dinamik değişken tahsisi için başka işlevler sağlar. Bu işlevler ./include/linux/percpu.h dosyasında bulunabilir.

    Çözüm

    Bir işlemcinin frekansı sınırına ulaştığında, performansı artırmak için daha fazla işlemci eklemek yaygın bir uygulamadır. Bu, daha fazla işlemci eklemek anlamına geliyordu anakart veya birkaç bağımsız bilgisayarı bir kümede birleştirin. Günümüzde çip düzeyinde çoklu işlem, tek bir çipte daha fazla işlemci sağlayarak bellek gecikmesini azaltarak daha da hızlı performans sağlıyor.

    Özellikle sanallaştırmanın devreye girmesiyle birlikte SMP sistemlerini yalnızca sunucularda değil, masaüstü bilgisayarlarda da bulacaksınız. Birçok ileri teknoloji gibi Linux da SMP'ye destek sağlar. Çekirdek, mevcut CPU'lar (iş parçacıklarından sanallaştırılmış işletim sistemlerine kadar) üzerindeki yükün optimize edilmesinde üzerine düşeni yapar. Geriye kalan tek şey, uygulamanın SMP'nin gücünden yararlanacak kadar iş parçacığına dönüştürülebildiğinden emin olmaktır.

    5.2. Simetrik SMP mimarisi

    SMP (simetrik çoklu işlem) – simetrik çok işlemcili mimari. SMP mimarisine sahip sistemlerin temel özelliği(Şekil 5.5) tüm işlemciler tarafından paylaşılan ortak bir fiziksel belleğin varlığıdır.

    Şekil 5.5 - SMP mimarisinin şematik görünümü

    Bellek, özellikle işlemciler arasında mesaj aktarmak için kullanılırken, tüm bilgi işlem aygıtları ona erişirken tüm bellek hücreleri için eşit haklara ve aynı adreslemeye sahiptir. Bu nedenle SMP mimarisine simetrik denir.İkinci durum, diğer bilgi işlem cihazlarıyla çok verimli veri alışverişine olanak tanır.

    SMP sistemi temel alınarak oluşturulmuştur. yüksek hızlı sistem veriyolu(SGI PowerPath, Sun Gigaplane, DEC TurboLaser), işlevsel blok türlerinin bağlı olduğu yuvalara: işlemciler (CPU), giriş / çıkış alt sistemi (G / Ç), vb. G / Ç'ye bağlanmak için daha yavaş otobüsler kullanılır modüller (PCI, VME64).

    En iyi bilinen SMP sistemleri, Intel işlemcilere dayalı SMP sunucuları ve iş istasyonlarıdır (IBM, HP, Compaq, Dell, ALR, Unisys, DG, Fujitsu, vb.). Sistemin tamamı tek bir işletim sistemi altında çalışır (genellikle UNIX benzeri) ancak Windows NT Intel platformları için desteklenir). İşletim sistemi, işlemleri otomatik olarak (çalışma sırasında) işlemciler arasında dağıtır, ancak bazen açık bağlama da mümkündür.

    SMP sistemlerinin ana avantajları:

    - programlama için basitlik ve çok yönlülük. SMP mimarisi, bir uygulama oluştururken kullanılan programlama modeline kısıtlama getirmez: tüm işlemciler birbirinden bağımsız çalıştığında genellikle paralel dal modeli kullanılır. Ancak işlemciler arası değişimi kullanan modeller de uygulanabilir. Paylaşılan hafızanın kullanılması böyle bir alışverişin hızını arttırır, kullanıcı aynı zamanda hafızanın tamamına aynı anda erişebilir. SMP sistemleri için oldukça etkili otomatik paralelleştirme araçları mevcuttur;

    - kullanım kolaylığı. Kural olarak SMP sistemleri, bakımlarını kolaylaştıran hava soğutmalı bir klima sistemi kullanır;

    - nispeten düşük fiyat.

    Kusurlar:

    - paylaşılan bellek sistemleri iyi ölçeklenmiyor.

    SMP sistemlerinin bu önemli dezavantajı, onların gerçekten umut verici olduğunu düşünmemize izin vermiyor. Zayıf ölçeklenebilirliğin nedeni, veri yolunun şu anda yalnızca tek bir işlemi işleyebilme kapasitesinde olmasıdır; bu, birden fazla işlemcinin aynı anda paylaşılan fiziksel belleğin aynı alanlarına erişmesi durumunda çakışma çözümleme sorunlarına neden olur.

    Şu anda 8-24 işlemci arasında çakışmalar oluşabiliyor. Bütün bunlar açıkça işlemci sayısının ve bağlı kullanıcı sayısının artmasıyla performans artışını engelliyor. Gerçek sistemlerde 32'den fazla işlemci kullanamazsınız. SMP'ye dayalı ölçeklenebilir sistemler oluşturmak için küme veya NUMA mimarileri kullanılır. SMP sistemleriyle çalışırken, sözde paylaşılan bellek programlama paradigması kullanılır.

    15.02.1995 V.Pyatyonok

    Tek Soket Mimarisi Değiştirilmiş Tek Soket Mimarisi SMP Mimarisi Wellfleet'in SMP Yönlendirici Mimarisi Mimariye Genel Bakış Paket İşleme Ayrıntıları Özet Literatür Yönlendiriciler üç farklı mimariden gelişmiştir: tek işlemcili, değiştirilmiş tek işlemcili ve simetrik çok işlemcili. Üçü de son derece kritik uygulamaları desteklemek üzere tasarlandı.

    Yönlendiriciler, geliştirmelerinde üç farklı mimari kullandı: tek işlemcili, değiştirilmiş tek işlemcili ve simetrik çok işlemcili. Üçü de son derece kritik uygulamaları desteklemek üzere tasarlandı. Bununla birlikte, bu gereksinimlerin ana kısmı, yani yüksek, ölçeklenebilir performansın yanı sıra, tam hata toleransı ve sağlıklı olmayan bileşenlerin kurtarılması ("etkin bekleme") dahil olmak üzere yüksek düzeyde kullanılabilirlik, aynı düzeyde karşılanamazlar. kapsam. Makale simetrik çok işlemcili mimarinin avantajlarını tartışıyor.

    Tek işlemci mimarisi

    Tek işlemcili mimari, düğümlerin yapılandırılmasında ek esneklik sağlamak için birden fazla ağ arayüz modülü kullanır. Ağ arayüz modülleri, ortak bir sistem veriyolu aracılığıyla tek bir merkezi işlemciye bağlanır. Tüm işleme görevlerini yerine getirmek bu tek işlemciye kalmıştır. Ve kurumsal ağların mevcut gelişim düzeyindeki bu görevler karmaşık ve çeşitlidir: paketleri filtrelemek ve iletmek, paket başlıklarında gerekli değişiklikleri yapmak, yönlendirme tablolarını güncellemek ve ağ adresleri, hizmet kontrol paketlerinin yorumlanması, SNMP isteklerine yanıt verilmesi, kontrol paketlerinin oluşturulması, yanıltma (spoofing) gibi diğer spesifik hizmetlerin sağlanması, yani gelişmiş güvenlik ve ağ performansı elde etmek için özel filtrelerin ayarlanması.

    Bu geleneksel mimari çözüm, uygulanması en kolay olanıdır. Ancak böyle bir sistemin performansının ve kullanılabilirliğinin tabi olacağı sınırlamaları hayal etmek zor değil.

    Aslında tüm ağ arayüzlerinden gelen tüm paketlerin tek bir CPU tarafından işlenmesi gerekir. Daha fazla ağ arayüzü eklendikçe performans gözle görülür biçimde düşer. Ek olarak, her paketin veri yolu üzerinde "kaynak" modülünden işlemciye ve ardından işlemciden "alıcı" modülüne olmak üzere iki kez gitmesi gerekir. Paket, geldiği aynı ağ arayüzüne yönlendirilmiş olsa bile bu yolu kat eder. Ayrıca ağ arabirim modüllerinin sayısı arttıkça performansta önemli bir düşüşe neden olur. Dolayısıyla klasik bir "darboğaz" var.

    Güvenilirliği de düşüktür. CPU arızalanırsa, yönlendirici bir bütün olarak bozulacaktır. Ayrıca böyle bir mimari için, hasarlı sistem elemanlarının rezervinden "sıcak kurtarma"nın uygulanması imkansızdır.

    Bu yönlendirici mimarisinin modern uygulamalarında, kural olarak, performans sınırlamalarının üstesinden gelmek için yeterince güçlü bir RISC işlemcisi ve yüksek hızlı bir sistem veri yolu kullanılır. Bu, sorunu çözmek için tamamen güçlü bir girişimdir - büyük şirketler için artan performans ilk yatırım. Ancak bu tür uygulamalar performans ölçeklendirmesi sağlamaz ve bunların güvenilirlik düzeyi, işlemcinin güvenilirliğine göre önceden belirlenir.

    Değiştirilmiş tek işlemcili mimari

    Yukarıda bahsedilen tek işlemcili mimarinin bazı eksikliklerinin üstesinden gelmek için modifikasyonu icat edildi. Temel mimari korunur: arayüz modülleri ortak bir sistem veri yolu aracılığıyla tek bir işlemciye bağlanır. Bununla birlikte, ağ arayüz modüllerinin her birinde, en azından kısmen yükü boşaltmak için özel bir çevresel işlemci bulunur. İşlemci.

    Çevresel işlemciler, kural olarak, yönlendiriciye girdikleri modülün ağ arayüzüne yönelik paketleri filtreleyen ve yönlendiren bit-slace veya evrensel mikroişlemcilerdir. (Maalesef şu anda mevcut olan birçok uygulamada bu yalnızca belirli paket türleri için elde edilebilir, örneğin: ethernet çerçeveleri, ancak IEEE 802.3 değil.

    Merkezi işlemci, çevresel işlemciye devredilemeyen görevlerden hâlâ sorumludur (modüller arasında yönlendirme, genel sistem işlemleri, yönetim ve yönetim dahil). Bu nedenle, bu şekilde elde edilen performans optimizasyonu oldukça sınırlıdır (adil olmak gerekirse, bazı durumlarda doğru ağ tasarımıyla iyi sonuçların elde edilebileceğini belirtmek gerekir). Aynı zamanda, sistem veriyolu üzerinden iletilen paketlerin sayısındaki bir miktar azalmaya rağmen, hala çok darboğaz olmaya devam ediyor.

    Çevresel işlemcilerin mimariye dahil edilmesi, bir bütün olarak yönlendiricinin kullanılabilirlik düzeyini artırmaz.

    SMP mimarisi

    Simetrik çok işlemcili mimari, yukarıda bahsedilen mimarilerin doğasında bulunan dezavantajlara sahip değildir. Bu durumda bilgi işlem gücü tüm ağ arayüz modülleri arasında tamamen dağıtılır.

    Her ağ arayüz modülünün, tüm yönlendirme görevlerini yerine getiren kendine özel işlemci modülü vardır. Bu durumda, tüm yönlendirme tabloları, diğer gerekli bilgiler ve protokolleri uygulayan yazılım her işlemci modülüne kopyalanır (yani kopyalanır). Bir işlemci modülü yönlendirme bilgisini aldığında kendi tablosunu günceller ve ardından güncellemeleri diğer tüm işlemci modüllerine yayar.

    Böyle bir mimari elbette neredeyse doğrusal (çoğaltma maliyetini ve modüller arasındaki iletişim kanalının bant genişliğini ihmal edersek) ölçeklenebilirlik sağlar. Bu da performansta gözle görülür bir düşüş olmadan ağda önemli bir genişleme olasılığı anlamına geliyor. Gerekirse, yalnızca ek bir ağ arabirim modülü eklemeniz gerekir - sonuçta bu mimaride merkezi bir işlemci yoktur.

    Tüm paketler yerel işlemciler tarafından işlenir. Harici (yani diğer modüllere yönelik) paketler, işlemciler arasındaki iletişim kanalı üzerinden yalnızca bir kez iletilir. Bu, yönlendirici içindeki trafikte önemli bir azalmaya yol açar.

    Kullanılabilirlik açısından, tek bir işlemci modülünün arızalanması durumunda sistem arızalanmayacaktır. Bu arıza yalnızca hasarlı işlemci modülüne bağlı ağ bölümlerini etkileyecektir. Ayrıca hasarlı bir modül, yönlendiriciyi kapatmadan ve diğer tüm modülleri etkilemeden işlevsel bir modülle değiştirilebilir.

    SMP mimarisinin faydaları bilgisayar üreticileri tarafından kabul edilmektedir. Son birkaç yılda bu tür birçok platform ortaya çıktı ve donanımın avantajlarını tam olarak gerçekleştirebilen yalnızca sınırlı sayıda standart işletim sistemi bunların dağıtımını engelledi. Aktif ağ cihazları üreticileri de dahil olmak üzere diğer üreticiler de özel bilgi işlem cihazları oluştururken SMP mimarisini kullanır.

    Bu bölümün geri kalanında Wellfleet'in SMP yönlendirici mimarisinin teknik detaylarına daha yakından bakacağız.

    Wellfleet SMP Yönlendirici Mimarisi

    Önde gelen yönlendirici ve köprü üreticilerinden biri olan Wellfleet, çeşitli WAN ve LAN protokollerini destekleyen çeşitli yönlendirici mimarilerini çeşitli ağlar üzerinden değerlendirme ve test etme konusunda kesinlikle hiçbir masraftan kaçınmadı. fiziksel taşıyıcılar ve için tasarlandı çeşitli koşullar trafik. Bu çalışmaların sonuçları, son derece kritik uygulamalara yönelik kurumsal ağ ortamları oluşturmak üzere tasarlanmış yönlendiriciler tasarlanırken dikkate alınan gereksinimlerin bir listesi şeklinde formüle edildi. İşte bu gereksinimlerden bazıları; bizim görüşümüze göre, çok işlemcili bir mimarinin kullanımını haklı çıkaran gereksinimler.

    1. Ölçeklenebilir performans, yüksek kullanılabilirlik ve yapılandırma esnekliği ihtiyacı, SMP mimarisinin kullanımını zorunlu kılar.

    2. Çok protokollü yönlendirmenin gereksinimlerinin düzeyi işlem gücü(özellikle TCP/IP OSPF gibi modern yönlendirme protokolleri kullanıldığında) yalnızca modern, güçlü 32 bit mikroişlemciler tarafından sağlanabilir. Aynı zamanda, yönlendirme çok sayıda benzer isteğe paralel olarak hizmet verilmesini içerdiğinden, farklı işlemler arasında hızlı geçiş gereklidir; bu, bağlam geçişleri sırasında son derece düşük gecikme süresi ve entegre önbellek gerektirir.

    3. Depolamayı destekleyen protokoller ve yönetim yazılım, yönlendirme ve adres tabloları, istatistiksel ve diğer bilgiler için yeterince büyük bir hafıza kapasitesine ihtiyaç vardır.

    4. Ağlar ve yönlendirici işleme modülleri arasında maksimum iletim hızını sağlamak için entegre yeteneklere sahip yüksek hızlı ağ arabirimi denetleyicileri ve işlemciler arası iletişim denetleyicileri gerekir. doğrudan erişim belleğe (DMA - Doğrudan Bellek Erişimi).

    5. Gecikmenin en aza indirilmesi, tüm kaynaklar için yüksek bant genişliğine sahip 32 bit veri ve adres kanalları gerektirir.

    6. Kullanılabilirlik gereksinimleri arasında bilgi işlem gücünün dağıtımı, yedek güç alt sistemleri ve ek ancak çok önemli bir özellik olarak işlemciler arası iletişimin çoğaltılmış kanalları yer alır.

    7. Tek bir uzak site veya çalışma grubu ağından yüksek performanslı, yüksek kullanılabilirliğe sahip bir omurgaya kadar çok çeşitli ağ ortamlarını kapsama ihtiyacı, ölçeklenebilir çok işlemcili bir mimarinin kullanılmasını gerektirir.

    Mimariye genel bakış

    Şekil 2, Wellfleet tarafından üretilen tüm modüler yönlendiricilerde kullanılan simetrik çok işlemcili mimarinin şematik bir temsilidir. Üç ana mimari unsur vardır: iletişim modülleri, işlemci modülleri ve işlemler arası bağlantı.

    İletişim modülleri, hemen hemen her türlü LAN veya WAN'a bağlantıya izin veren fiziksel ağ arayüzleri sağlar. Her bağlantı modülü, Akıllı Bağlantı Arayüzü (ILI) aracılığıyla doğrudan belirlenen işlemci modülüne bağlanır. İletişim modülü tarafından alınan paketler, kendisine bağlı olan işlemci modülüne kendi doğrudan bağlantısı üzerinden iletilir. İşlemci, bu paketlerin hangi ağ arayüzüne yönlendirileceğini belirler ve bunları aynı iletişim modülünün başka bir ağ arayüzüne veya yüksek hızlı işlemciler arası bağlantı üzerinden, paketi iletişime iletecek olan başka bir işlemci modülüne iletir. ona bağlı modül.

    Bileşenlerin her birinin yapısı üzerinde daha ayrıntılı olarak duralım.

    İşlemci modülü şunları içerir:

    Aslında merkezi işlemci;

    Protokolleri ve yönlendirme tablolarını, adres tablolarını ve CPU tarafından yerel olarak kullanılan diğer bilgileri saklayan yerel bellek;

    İletişim modülünden kendisine bağlı işlemci modülüne veya diğer işlemci modüllerinden gelen "transit" veri paketleri için arabellek rolünü oynayan global bellek (tüm işlemci modülleri tarafından görülebildiği ve erişilebildiği için global olarak adlandırılır);

    Farklı işlemci modüllerinde bulunan global bellek arabellekleri arasında paket aktarımı sırasında doğrudan belleğe erişim olanağı sağlayan OMA işlemcisi;

    İlgili iletişim modülüne bağlantı sağlayan bir iletişim arayüzü;

    Yukarıdaki kaynakların tümünü birbirine bağlayan ve mümkün olan en yüksek performansı sağlamak üzere tasarlanmış dahili 32 bit genişliğinde veri kanalları verim ve minimum gecikme süresi; işlemlerin farklı bilgi işlem cihazları (örneğin CPU ve DMA işlemci) tarafından aynı anda gerçekleştirilmesini sağlayan ve paketlerin yeniden yönlendirilmesini ve işlenmesini yavaşlatan hiçbir darboğazın olmamasını sağlayan birden fazla kanal sağlanır.

    Wellfleet yönlendiricilerinin çeşitli modelleri, Motorola 68020 veya 68030 işlemcilerini temel alan ACE (Gelişmiş İletişim Motoru) işlemci modüllerini veya MC68040'ı temel alan Hızlı Yönlendirme Motoru (FRE) modüllerini kullanır.

    İletişim modülü şunları içerir:

    Belirli ağlara (örn. senkron, Ethernet, Token Ring FDDI) arayüz sağlayan konektörler;

    Bir DMA kanalını kullanarak paketleri fiziksel bir ağ arayüzü ile genel bellek arasında aktaran iletişim denetleyicileri; iletişim denetleyicileri ayrıca belirli bir ağ arayüzü türü için tasarlanmıştır ve paketleri kablonun hızına uygun bir hızda iletebilir;

    Filtreler ( ek fırsat FDDI ve Ethernet iletişim modülleri için) gelen paketlerin ön filtrelenmesini gerçekleştirerek anlamlı dosya işleme için bilgi işlem kaynaklarından tasarruf sağlar.

    Standart VMEbus genellikle işlemciler arası iletişim bağlantısı olarak kullanılır ve toplam 320 Mbps'lik bir verim sağlar.

    Daha eski modellerde, dinamik yük dengelemeye sahip dört bağımsız, yedekli 256 Mb/s veri kanalı kullanılarak Wellfleet tarafından geliştirilen 1 Gb/s bant genişliğine sahip Paralel Paket Ekspres (PPX) arayüzü kullanılıyor. Bu, genel performansın yüksek olmasını sağlar ve mimaride tek bir hata noktasının olmamasını sağlar. Her işlemci modülü dört kanalın tümüne bağlıdır ve bunlardan herhangi birini seçme olanağına sahiptir. Her paket için belirli bir kanal rastgele seçilir; bu, trafiğin mevcut tüm kanallar arasında eşit dağılımını sağlar. PPX veri kanallarından biri kullanılamaz hale gelirse indirme işlemi otomatik olarak geri kalanlar arasında dağıtılır.

    Paket işleme ayrıntıları

    Gelen paketler, ağa bağlı olarak bir veya başka bir iletişim denetleyicisi tarafından alınır. İletişim modülünün konfigürasyonunda ek bir filtre bulunursa paketlerin bir kısmı düşürülür, diğer kısmı alınır. Alınan paketler iletişim denetleyicisi tarafından doğrudan kendisine bağlı işlemci modülünün genel bellek arabelleğine yerleştirilir. Hızlı paket aktarımı için her iletişim denetleyicisine bir DMA kanalı dahildir.

    Paketler global belleğe girdikten sonra yönlendirme için CPU tarafından alınır. CPU, çıkış ağ arayüzünü belirler, paketi uygun şekilde değiştirir ve onu genel belleğe geri gönderir. O zaman iki şeyden biri yapılır:

    1. Paket, kendisine doğrudan bağlı olan modülün ağ arayüzüne iletilir. Çıkış ağı arayüzü iletişim denetleyicisine, CPU tarafından küresel bellekten paketleri alması ve bunları ağa göndermesi talimatı verilir.

    2. Paket başka bir iletişim modülünün ağ arayüzüne iletilir. DMA işlemcisi, paketleri başka bir işlemci modülüne göndermek için CPU'dan talimatlar alır ve bunları işlemciler arası bağlantı üzerinden çıkış ağ arayüzüne bağlı işlemci modülünün genel belleğine indirir. Çıkış ağı arayüzü iletişim denetleyicisi, paketleri genel bellekten alır ve bunları ağa gönderir.

    Yönlendirme kararları CPU tarafından diğer işlemci modüllerinden bağımsız olarak alınır. Her işlemci modülü, yerel belleğinde, modül yönlendirme tablolarındaki veya adreslerdeki değişiklikler hakkında bilgi aldığında güncellenen bağımsız bir yönlendirme ve adres veritabanı tutar (bu durumda, değişiklikler diğer tüm işlemci modüllerine gönderilir).

    İletişim denetleyicisinin, CPU'nun ve DMA işlemcisinin eşzamanlı çalışması, ortak bir sonuca ulaşmanıza olanak tanır yüksek performans. (Bütün bunların, işlemenin birkaç çok işlemcili modül üzerinden paralelleştirildiği bir cihazda gerçekleştiğini vurguluyoruz). Örneğin, iletişim denetleyicisinin paketleri genel belleğe koyduğu, CPU'nun yerel bellekteki yönlendirme tablosunu güncellediği ve DMA işlemcisinin paketi işlemciler arası bağlantıya koyduğu bir durum hayal edilebilir.

    Özet

    Kendi başına, bir uygulama alanı için geliştirilen bilgisayar teknolojilerinin diğer ilgili alanlara nüfuz etmesi gerçeği yeni değildir. Ancak her biri spesifik örnek uzmanların dikkatini çekiyor. Bu makalede ele alınan yönlendiricilerin mimarisinde, ölçeklenebilir performans ve yüksek düzeyde kullanılabilirlik sağlamak üzere tasarlanmış simetrik çoklu işlem fikrine ek olarak, işlemciler arasında (aynı amaçlar için) çoğaltılmış veri kanalları mekanizması da kullanılmaktadır. kullanımı dağıtılmış DBMS endüstrisinin daha karakteristik özelliği olan veri çoğaltma (veya çoğaltma) fikrinin yanı sıra.

    Edebiyat

    Simetrik Çok İşlemcili Mimari. Wellfleet İletişimi, 10/1993.

    İYİ OYUN. Baron, G.M. Ladyzhensky. "Dağıtık Sistemlerde Veri Çoğaltma Teknolojisi", "Açık Sistemler", Bahar 1994.

    *) Wellfleet geçen sonbaharda başka bir liderle birlikte çalıştı ağ teknolojileri Sun Optik İletişim. Birleşme, yeni bir ağ devi olan Bay Networks'ün yaratılmasına yol açtı. - Ed.



    5. SİMETRİK ÇOK İŞLEMCİLİ SİSTEMLER

    5.1. Simetrinin ayırt edici özellikleri ve avantajları

    çok işlemcili sistemler

    Simetrik çok işlemcili sınıf için (SMP - simetrik çok işlemcili) sistemler aşağıdaki ayırt edici özelliklerle karakterize edilir:

      özellikler açısından iki veya daha fazla aynı veya benzer işlemcinin varlığı;

      işlemciler, ortak bir sistem omurgası aracılığıyla veya etkileşimi sağlamak için başka bir mekanizma aracılığıyla bağlandıkları paylaşılan belleğe erişime sahiptir, ancak her durumda, herhangi bir işlemciden bellek kaynaklarına erişim süresi yaklaşık olarak aynıdır;

      işlemcilerin ortak giriş/çıkış olanaklarına aynı kanal veya ayrı kanallar aracılığıyla erişimi vardır;

      tüm işlemciler aynı işlev kümesini gerçekleştirme kapasitesine sahiptir (dolayısıyla tanım simetrik sistem);

      kompleksin tamamı, işlemciler ve programlar arasında görevler, dosyalar ve veri öğeleri düzeyinde etkileşimi sağlayan ortak bir işletim sistemi tarafından kontrol edilir.

    Bu listedeki ilk dört özelliğin daha fazla yoruma ihtiyacı yok. Beşinci özelliğe gelince, SMP sistemleri ile bileşenler arasındaki etkileşimin kural olarak bireysel mesajlar veya iletiler düzeyinde gerçekleştirildiği küme sistemleri arasındaki en önemli farkı gösterir. dosyaları tamamla. Bir SMP sisteminde bileşenler arasında ve düzeyde bilgi alışverişi mümkündür. bireysel unsurlar veriler ve böylece süreçler arasında daha yakın etkileşimin düzenlenmesi mümkün olur. Bir SMP sisteminde süreçlerin veya görev dizilerinin bireysel işlemciler arasında dağıtımı işletim sistemine bırakılır.

    SMP sistemlerinin tek işlemcili sistemlere göre en önemli avantajları aşağıdaki gibidir.

    Verimlilik artışı. Bireysel uygulama görevleri paralel olarak çalışabiliyorsa, birden fazla işlemciye sahip bir sistem, aynı türde tek bir işlemciye sahip bir sistemden daha hızlı performans gösterecektir.

    Güvenilirlik. Bir SMP sistemindeki tüm işlemciler aynı tipte olduğundan ve aynı görevleri gerçekleştirebildiğinden, bunlardan birinin arızalanması durumunda kendisi için planlanan görev başka bir işlemciye aktarılabilir. Dolayısıyla işlemcilerden birinin arızalanması tüm sistemin performansının düşmesine yol açmayacaktır.

    Fonksiyonel genişleme imkanı. Kullanıcı ek işlemciler ekleyerek sistem performansını artırabilir.

    Aynı tip farklı performanstaki sistemlerin üretimi. Bir bilgisayar üreticisi, müşterilerine aynı mimariye sahip, ancak farklı maliyet ve performansa sahip, işlemci sayısı farklı olan bir dizi sistem sunabilir.

    Tüm bu avantajların çoğunlukla potansiyel olduğu ve pratikte her zaman gerçekleşmekten uzak olduğu unutulmamalıdır.

    SMP sistemlerinin kullanıcılar için çok çekici bir özelliği şeffaflığıdır. işletim sistemi Bireysel işlemciler arasındaki görevlerin dağılımı ve işlerinin senkronizasyonu ile ilgilenir.

    5.2. Yapısal organizasyonSMP– sistemler

    Şek. Şekil 5.1 çok işlemcili bir sistemin genelleştirilmiş blok diyagramını göstermektedir.

    Pirinç. 5.1. Çok işlemcili bir sistemin genelleştirilmiş şeması

    Sistem, her biri gerekli düğümlerin tamamına sahip olan iki veya daha fazla işlemciye sahiptir - kontrol ünitesi, ALU, kayıtlar ve önbellek ünitesi. Her işlemcinin, bazı etkileşim alt sistemleri aracılığıyla sistemin ana belleğine ve giriş/çıkış aygıtlarına erişimi vardır. İşlemciler ana bellek üzerinden veri ve mesaj alışverişi yapabilir (bunun için ayrı bir iletişim alanı tahsis edilmiştir). Ek olarak sistem, bireysel işlemciler arasında doğrudan sinyal alışverişi olasılığını da destekleyebilir. Çoğu zaman paylaşılan bellek, işlemcilerin aynı anda farklı bloklara erişebileceği şekilde düzenlenir. Bazı sistemlerde işlemcilerin yerel bellek blokları vardır ve kendi kanalları Paylaşılan kaynaklara ek olarak G/Ç.

    Çok işlemcili sistemlerin yapısal organizasyonunun çeşitleri aşağıdaki gibi sınıflandırılabilir:

      ortak veya zamanla ayrılmış bir omurgaya sahip sistemler;

      çok portlu belleğe sahip sistemler;

      Merkezi kontrol ünitesine sahip sistemler.

    5.2.1. Ortak gövde sistemleri

    Zaman paylaşımı modunda ortak bir hat kullanmak, düzenlemenin en kolay yoludur ortak çalışma SMP sistemindeki işlemciler (Şekil 5.2). Omurga yapısı ve arayüzü pratik olarak tek işlemcili sistemdekiyle aynıdır. Ana hat veri hatlarını, adresleri ve kontrol sinyallerini içerir. Doğrudan belleğe erişim mekanizmasının çalışmasını basitleştirmek için I/O modülleri tarafından aşağıdaki önlemler alınır.

    Adresleme veri kaynakları ve alıcıları belirlenirken modüllerin adres koduyla ayırt edilebileceği şekilde düzenlenmiştir.

    Tahkim. Herhangi bir G/Ç modülü geçici olarak veri yolu yöneticisi haline gelebilir. Hakem, omurgayı kontrol etmek için rekabet eden talepler olduğunda çatışmaları çözmek için bir tür öncelik mekanizması kullanır.

    Zaman bölümü. Modüllerden biri omurgayı kontrol etme hakkını kazandığında, geri kalan modüller bloke edilir ve gerekirse faaliyetlerine ara verilerek omurgaya erişim izni verilene kadar beklemek zorunda kalırlar.

    Tek işlemcili sistemlerde yaygın olan bu işlevler, çok işlemcili sistemlerde fazla değişiklik yapılmadan kullanılabilir. Temel fark, bir bellek bloğuna erişim hakkı mücadelesinde yalnızca I/O modüllerinin değil, işlemcilerin de yer almasıdır.


    Pirinç. 5.2. Ortak bir omurgaya sahip bir SMP sisteminin organizasyonu

    Omurga bağlantı yapısının, etkileşim alt sisteminin uygulanmasına yönelik diğer yaklaşımlara göre çeşitli avantajları vardır.

    Basitlik. Bu seçenek en kolayıdır çünkü fiziksel arayüz, adresleme şeması, tahkim mekanizması ve omurga kaynak paylaşım mantığı, esas olarak tek işlemcili bir sistemdekiyle aynı kalır.

    Esneklik. Bir omurga sisteminin yeni işlemcilerle yeniden yapılandırılması oldukça kolaydır.

    Güvenilirlik. Omurga pasif bir ortamdır ve ona bağlanan herhangi bir cihazın arızalanması, sistemin bir bütün olarak çalışabilirliğinde bir kayba yol açmaz.

    Common Rail sisteminin ana dezavantajı sınırlı performanstır. Ana belleğe tüm erişimlerin ortak bir omurga üzerinden tek bir yoldan geçmesi gerekir ve bu nedenle sistemin performansı omurganın döngü süresiyle sınırlıdır. Kısmen bu sorun, her işlemcinin kendi önbellek bloğuyla donatılmasıyla çözülebilir, bu da ana belleğe erişim sayısını azaltır. Kural olarak, iki seviyeli bir önbellek organizasyonu kullanılır: L1 önbelleği işlemci LSI'sinde (dahili önbellek) bulunur ve L2 önbelleği haricidir.

    Bununla birlikte, çok işlemcili bir sistemde önbellek kullanımı, bireysel işlemcilerin önbelleklerinin tutarlılığı veya bilgi bütünlüğü sorunu yaratır.

    5.2.2. Çok portlu belleğe sahip sistemler

    SMP sistemlerinde çok bağlantı noktalı belleğin kullanılması, her işlemcinin ve G/Ç modülünün, diğerlerinden bağımsız olarak ortak bir bilgi dizisine doğrudan erişmesine olanak tanır (Şekil 5.3). Ayrıca her bellek modülünde şunlar bulunmalıdır: mantık diyagramı olası çatışmaların çözümü. Bunu yapmak için bağlantı noktalarına çoğunlukla belirli öncelikler atanır. Tipik olarak her bağlantı noktasının elektriksel ve fiziksel arayüzü, o bağlantı noktasına bağlı cihazla aynıdır; bellek modülü tek bir bağlantı noktası olarak düşünülebilir. Bu nedenle, işlemcinin veya G / Ç modülünün şemasında, çok bağlantı noktalı belleğe bağlanmak için neredeyse hiçbir değişiklik yapılmasına gerek yoktur.


    Pirinç. 5.3. Çok Bağlantı Noktalı Bellek Şeması

    Yalnızca paylaşılan bellek bloğunun şeması önemli ölçüde daha karmaşık hale gelir, ancak bu, her işlemcinin bilgiye erişim için kendi kanalına sahip olması nedeniyle bir bütün olarak sistemin performansında bir artışla karşılığını verir. paylaşım. Bu organizasyona sahip sistemlerin bir diğer avantajı, belirli bir işlemcinin (veya işlemci grubunun) özel kullanımı için bellek alanlarını ayırma yeteneğidir. Bu, bilgileri yetkisiz erişime karşı korumak ve kurtarma programlarını diğer işlemciler tarafından değiştirilemeyen bellek alanlarında depolamak için bir sistemin oluşturulmasını kolaylaştırır.

    Çok portlu bellekle çalışırken önemli bir nokta daha var. Herhangi bir işlemcinin önbelleğindeki bilgileri güncellerken, verilerdeki değişiklikleri diğer işlemcilere bildirmenin başka bir yolu olmadığından ana bellek üzerinden yazmak gerekir.

    5.2.3. Merkezi kontrol üniteli sistemler

    Merkezi kontrol cihazı, bağımsız modüller (işlemciler, bellek ve giriş-çıkış modülleri) arasında ayrı veri akışlarını düzenler. Denetleyici istekleri hatırlayabilir ve hakem ve kaynak tahsiscisi olarak hareket edebilir. Aynı zamanda durum hakkında bilgi iletme, mesajları kontrol etme ve işlemcilere önbelleklerdeki bilgilerdeki değişiklikler hakkında bilgi verme işlevleriyle de görevlendirilmiştir.

    Sistem bileşenlerinin koordinasyonuyla ilgili tüm mantıksal işlevler tek bir merkezi kontrol ünitesinde uygulandığından, işlemcilerin, belleğin ve I/O modüllerinin arayüzleri neredeyse hiç değişmeden kalır. Bu, sisteme ortak bir omurgayla neredeyse aynı esnekliği ve basitliği sağlar. Bu yaklaşımın ana dezavantajı, kontrol cihazı devresinde potansiyel olarak performansta düşüşe yol açabilecek önemli bir komplikasyondur.

    Merkezi kontrol ünitesine sahip yapı, bir zamanlar büyük makinelere dayalı çok işlemcili bilgi işlem sistemlerinin yapımında yaygın olarak kullanılıyordu. Şu anda çok nadirdirler.

    5.3. SMP- büyük tabanlı sistemler bilgisayarlar

    5.3.1. YapıSMP- büyük tabanlı sistemler

    bilgisayarlar

    Kişisel kullanıma ve iş istasyonlarına yönelik çoğu SMP sisteminde, bileşenler arasındaki etkileşimi düzenlemek için bir sistem omurgası kullanılır. Temelli komplekslerde büyük bilgisayarlar(ana bilgisayarlar) alternatif bir yaklaşım benimser . Böyle bir kompleksin blok diyagramı şekil 2'de gösterilmektedir. 5.4. Aile, tek ana bellek kartına sahip tek işlemciden, bir düzine işlemci ve dört ana bellek bloğuna sahip yüksek performanslı sistemlere kadar farklı sınıflardaki bilgisayarları içerir. Yapılandırma aynı zamanda G/Ç modülü görevi gören ek işlemcileri de içerir. Büyük bilgisayarları temel alan bilgi işlem sistemlerinin ana bileşenleri aşağıdaki gibidir.

    İşlemci Halkla İlişkileri - CISC, en sık kullanılan komutların işlenmesinin donanım tarafından kontrol edildiği ve geri kalan komutların ürün yazılımı kullanılarak yürütüldüğü bir mikroişlemcidir. Her PR'nin LSI'sı, hem komutları hem de verileri depolayan 64 KB L1 önbelleği içerir.

    Seviye önbelleğiL2 Boyutu 384 KB. L2 önbellek blokları ikişer ikişer kümelenir; her küme üç işlemciyi destekler ve ana bellek adres alanının tamamına erişim sağlar.

    Gövde değiştirme adaptörü- BSN (otobüsanahtarlama adaptör), L2 önbellek bloklarının dört ana bellek bloğundan biriyle bağlantısını düzenleyen. BSN ayrıca 2 MB L3 önbellek içerir.

    Tek Kartlı Ana Bellek Bloğu 8GB. Kompleks, toplam 32 GB ana bellek sağlayan bu tür dört blok içerir.

    Bu yapıda daha ayrıntılı olarak ele alınmaya değer birkaç özellik vardır:

      değiştirilebilir ara bağlantı alt sistemi;

      paylaşılan L2 önbelleği;

      L3 önbellek.


    Şekil 5.4. Büyük makinelere dayalı bir SMP sisteminin blok şeması

    5.3.2. Değiştirilebilir ara bağlantı alt sistemi

    Kişisel kullanıma ve iş istasyonlarına yönelik SMP sistemlerinde tek sistem omurgasına sahip bir yapı yaygındır. Bu varyantta omurga, sistemin daha fazla büyümesini engelleyen ve sisteme yeni bileşenler ekleyen bir darboğaz haline gelebilir. Büyük makinelere dayanan SMP sistemlerinin tasarımcıları bu problemle iki şekilde baş etmeye çalıştılar.

    İlk olarak, ana bellek alt sistemini dört adet tek kartlı bloğa böldüler ve her birini kendi denetleyicisiyle donattılar. yüksek hız Bellek isteklerini yönetin. Sonuç olarak, bellek erişim kanalının toplam verimi dört katına çıktı.

    İkincisi, her işlemci (aslında L2 önbelleği arasındaki) ile tek bir bellek bloğu arasındaki bağlantı, paylaşılan bir omurga biçiminde değil, noktadan noktaya bağlantı biçiminde uygulanır - her bağlantı birbirine bağlanır L2 önbelleği aracılığıyla BSN modülüne üç işlemciden oluşan bir grup. Buna karşılık BSN, beş iletişim kanalını (dördü L2 önbellekli ve biri bellek bloğuyla) birleştiren bir anahtar görevi görür - dört fiziksel kanalı tek bir mantıksal veri aktarım yoluna bağlar. Böylece L2 önbelleklerine bağlı dört kanaldan herhangi birine gelen sinyal, geri kalan üç kanala kopyalanarak önbelleklerin bilgi bütünlüğü sağlanmış olur.

    Sistemde dört ayrı bellek bloğu bulunmasına rağmen, her işlemci ve her L2 önbellek bloğu, ana bellek alt sistemiyle iletişim kurabilecekleri yalnızca iki fiziksel bağlantı noktasına sahiptir. Bu çözüm, her L2 önbellek bloğunun tüm bellek adres alanının yalnızca yarısından veri depolayabildiği için seçildi. İstekleri tüm adres alanına sunmak için bir çift önbellek bloğu kullanılır ve her işlemcinin çiftteki her iki bloğa da erişimi olmalıdır.

    5.3.3. Düzey Önbellek Bloklarını PaylaşmaL2

    Tipik bir SMP sistem yapısında, her işlemcinin kendi önbellek blokları vardır (genellikle iki seviye). Son yıllarda, L2 önbellek bloklarının paylaşılması kavramı sistem tasarımcılarının artan ilgisini çekmektedir. SMP sisteminin büyük bir makineye dayanan ilk versiyonu, her biri belirli bir işlemciye ait olan 12 L2 önbellek bloğu kullanıyordu. Daha sonraki sürümlerde, L2 önbellek blokları birden fazla işlemci arasında paylaşılır. Bu, aşağıdaki düşüncelere dayanarak yapıldı.

    Yeni sürümler, ilk sürümün işlemcilerinden iki kat daha hızlı işlemciler kullanıyor. Aynı zamanda önbellek bloklarının önceki yapısı bırakılırsa, omurga alt sistemi üzerinden bilgi akışı önemli ölçüde artacaktır. Aynı zamanda tasarımcılara, özel olarak tasarlanan hazır bloklardan en iyi şekilde yararlanma görevi verildi. eski versiyon. Omurga alt sistemi yükseltilmezse yeni versiyondaki BSN üniteleri zamanla darboğaz haline gelebilir.

    Analiz tipik uygulamalar Sistemde yürütülen komutların ve verilerin oldukça büyük bir kısmının farklı işlemciler tarafından paylaşıldığını gösterdi.

    Bu nedenle, sistemin yeni sürümünün geliştiricileri, bir veya daha fazla L2 önbellek bloğunu birkaç işlemci arasında paylaşma seçeneğini değerlendirdi (yine de her işlemcinin kendi dahili L1 önbellek bloğu vardır). İlk bakışta, L2 önbelleğini paylaşma fikri çekici görünmüyor, çünkü işlemcinin buna ek olarak erişim araması gerekiyor ve bu da performansın düşmesine neden olabilir. Ancak önbellekteki verilerin ve talimatların önemli bir kısmına birden fazla işlemci ihtiyaç duyuyorsa, paylaşılan bir önbellek sistem verimini azaltmak yerine artırabilir. Birden fazla işlemcinin ihtiyaç duyduğu veriler, paylaşılan önbellekte, omurga alt sistemlerinden geçirilmesi gerekmesine kıyasla daha hızlı bulunacaktır.

    Sistemin yeni sürümünün geliştiricileri, sistemdeki tüm işlemciler tarafından paylaşılan tek bir büyük önbellek ekleme seçeneğini de değerlendirdi. Sistemin bu yapısı üretkenlikte daha da büyük bir artış vaat etse de, bu seçeneğin mevcut tüm iletişim organizasyonunun tamamen yeniden tasarlanmasını gerektirmesi nedeniyle terk edilmesi gerekiyordu. Sistemdeki veri akışlarının analizi, mevcut BSN'lerin her biriyle ilişkili önbellek bloklarının paylaşılmasının başlatılmasının, sistem performansında halihazırda çok somut bir artış elde edeceğini gösterdi. Aynı zamanda bireysel kullanıma yönelik önbelleklerle karşılaştırıldığında, önbelleğe erişim sırasındaki isabet yüzdesi önemli ölçüde artar ve buna bağlı olarak ana belleğe erişim sayısı azalır.

    5.3.4. Seviye önbelleğiL3

    Büyük bir makineye dayanan SMP sisteminin bir diğer özelliği de yapısında üçüncü düzey bir önbellek olan L3'ün yer almasıdır. L3 önbelleği her BSN'ye dahil edilmiştir ve bu nedenle L2 önbellekleri ile ana bellek bloklarından biri arasında bir arabellek görevi görür. Bu önbelleğin kullanılması, L1 ve L2 önbelleklerinde bulunmayan verilerin ulaşmasındaki gecikmeyi azaltmanıza olanak tanır. Bu verilere daha önce herhangi bir işlemci ihtiyaç duyduysa, bunlar L3 önbelleğinde bulunur ve yeni işlemciye aktarılabilir. L3 önbelleğinden veri alma süresi, ana bellek bloğuna erişim süresinden daha kısa olduğundan performans kazancı sağlar.

    Masada. Şekil 5.1 tipik bir IBM S/390 tabanlı SMP sisteminin performans verilerini göstermektedir. "Erişim gecikmesi" göstergesi, bellek alt sisteminin bir veya başka bir yapısal elemanında mevcut olmaları durumunda, işlemcinin verileri alması için gereken süreyi karakterize eder. Bir işlemci yeni bilgi istediğinde, vakaların %89'unda bu bilgi kendi L1 önbelleğinde bulunur. Vakaların geri kalan %11'inde sonraki seviyelerin önbelleklerine veya ana bellek bloğuna erişmeniz gerekir. Vakaların %5'inde gerekli bilgiler L2 önbelleğinde vb. bulunur. Sonunda ana bellek bloğuna erişmeniz gereken sürenin yalnızca %3'ü. Üçüncü düzey önbellek olmasaydı bu rakam iki kat daha yüksek olurdu.

    Tablo 5.1

    Bellek alt sistemi elemanlarının verimlilik göstergeleri

    IBM S/390 tabanlı bir SMP sisteminde

    Bellek alt sistemi

    Erişim gecikmesi (çalışma döngüleri

    işlemci)

    İsabet Yüzdesi

    Ana hafıza

    5.4. Önbelleklerin ve protokolün bilgi bütünlüğüMESİ

    5.4.1. Bilgi sorununu çözmenin yolları

    bütünlük

    Modern bilgi işlem sistemlerinde, her işlemciyle ilişkili bir veya iki düzeydeki önbellek bloklarının kullanılması norm haline geldi. Böyle bir organizasyon, yüksek sistem performansı elde etmeyi mümkün kılar ancak farklı işlemcilerin önbelleklerinde veri bütünlüğü sorunu yaratır. Özü, aynı verilerin kopyalarını ana bellekten farklı işlemcilerin önbelleklerinde saklamanın mümkün olmasıdır. Aynı zamanda, bir işlemci kopyasındaki bu tür verilerin herhangi bir öğesini güncellerse, diğer işlemcilerin ilgilendiği kopyalar ve ana belleğin içeriği güvenilmez hale gelir. Ana bellekte yapılan değişiklikleri kopyalamak için metodolojinin iki çeşidini kullanmak mümkündür:

    cevap yazmak (yazmak geri). Bu varyantta işlemci yalnızca önbelleğinin içeriğinde değişiklik yapar. Yeni bir veri bloğu almak için değiştirilmiş önbellek hattının temizlenmesi gerektiğinde satırın içeriği ana belleğe yeniden yazılır.

    İçinden Yaz (yazmak başından sonuna kadar). Tüm önbellek yazma işlemleri, ilgili önbellek satırının içeriğinin değiştirilmesi gerektiği anı beklemeden ana bellekte hemen kopyalanır. Sonuç olarak, her zaman emin olabilirsiniz: rasgele erişim belleği en güncel ve dolayısıyla güvenilir bilgiler her zaman saklanır.

    Açıkçası, tekniğin uygulanması cevap yazmak güncellenen veriler ana belleğe yeniden yazılana kadar diğer işlemcilerin önbellekleri geçersiz veriler içereceğinden, önbelleklerdeki verilerin bilgi bütünlüğünün ihlaline yol açabilir. İçe yazma tekniğiyle bile bilgi bütünlüğü garanti edilmez çünkü değişiklikler yapıldı yalnızca ana bellekte değil, bu verilerin orijinal kopyalarını içeren tüm önbellek bloklarında da kopyalanması gerekir.

    sistemler Yönergeler

    Üniversite Bilgisayar Ölçme Bölümü sistemler ve Metroloji ________________________________________________ BİLGİ Mimaribilgi işlemsistemler. Kişisel bilgisayarın ana alt sistemleri ...