Değiştirilmiş Harvard mimarisi - Modified Harvard architecture

Modifiye Harvard mimarisi bir çeşididir , Harvard bilgisayar mimarisi saf Harvard mimarisini farklı olarak, kullanıcı bellek içeriği veri olarak erişilebilir sağlar. Harvard mimarisi olarak belgelenen çoğu modern bilgisayar, aslında değiştirilmiş Harvard mimarisidir.

Harvard mimarisi

Orijinal Harvard mimarisi bilgisayarı Harvard Mark I , talimatları ve verileri depolamak için tamamen ayrı bellek sistemleri kullandı. İşlemci aşağıdaki talimat getirilen ve aynı anda ve bağımsız bir şekilde, veri yüklenmesi veya muhafaza edilmiştir. Bu, hem talimatların hem de verilerin aynı bellek sisteminde depolandığı ve (bir CPU önbelleğinin karmaşıklığı olmadan ) sırayla erişilmesi gereken bir von Neumann mimarisi bilgisayarının aksine .

Talimat ve veri belleğinin fiziksel olarak ayrılması, bazen modern Harvard mimarisi bilgisayarların ayırt edici özelliği olarak kabul edilir. İle mikrodenetleyiciler (tüm bilgisayar tek çipleri üzerine entegre sistemler), talimatlar için farklı bellek teknolojilerinin kullanımı (örneğin flash bellek ) ve veri (tipik / yazma bellek okuma von Neumann makinelerinde popüler hale geliyor). Harvard makinesinin gerçek farkı, talimat ve veri belleğinin farklı adres boşluklarını işgal etmesidir . Başka bir deyişle, bir bellek adresi (bir von Neumann makinesinde olduğu gibi) bir depolama konumunu benzersiz bir şekilde tanımlamaz; adresin ait olduğu bellek alanını (komut veya veri) bilmek de gereklidir.

Von Neumann mimarisi

Von Neumann mimarisine sahip bir bilgisayar , koda erişilebildiği ve verilerle aynı şekilde işlendiği ve bunun tersi olduğu için saf Harvard makinelerine göre avantajlıdır . Bu, örneğin verilerin disk depolama alanından belleğe okunmasına ve daha sonra kod olarak yürütülmesine veya makine kodunu kendi belleğine yazmak ve daha sonra yürütmek için tam zamanında derleme gibi teknolojileri kullanan kendi kendini optimize eden yazılım sistemlerine izin verir. . Başka bir örnek, bir programın kendisini değiştirmesine izin veren kendi kendini değiştiren koddur .

Bu yöntemlerin bir dezavantajı, kötü amaçlı yazılım ve yazılım kusurlarından kaynaklanan riskleri artıran yürütülebilir alan korumasıyla ilgili sorunlardır . Ek olarak, bu sistemlerde kod akışını belgelemek çok zordur ve hata ayıklamayı çok daha zor hale getirebilir.

Değiştirilmiş Harvard mimarisi

Buna göre, bazı saf Harvard makineleri özel ürünlerdir. Çoğu modern bilgisayar bunun yerine değiştirilmiş bir Harvard mimarisini uygular . Bu değişiklikler, Harvard mimarisinin daha yüksek performanslı eşzamanlı veri ve talimat erişimini desteklerken, kod ve veri arasındaki katı ayrımı gevşetmenin çeşitli yollarıdır.

Bölünmüş önbellek (veya neredeyse von Neumann) mimarisi

En yaygın değişiklik, hiyerarşinin daha düşük seviyelerindeki talimatlar ve veriler için ayrı CPU önbelleklerine sahip bir bellek hiyerarşisi oluşturur . Talimatlar ve veriler için von Neumann modelini sağlayan tek bir adres alanı vardır, ancak CPU talimat önbelleğinden talimatları alır ve veri önbelleğinden veri alır. Çoğu programcı, hız avantajlarından yararlansalar da, işlemci çekirdeğinin (değiştirilmiş) bir Harvard mimarisi uyguladığı gerçeğinin asla farkında olması gerekmez. Depo , talimat önbelleğindeki talimatın önbelleğe alınmış bir kopyasını değiştirmiyor veya geçersiz kılmıyorsa , yalnızca talimatları oluşturan ve belleğe kaydeden programcıların önbellek tutarlılığı gibi sorunların farkında olması gerekir .

Komut-veri olarak bellek mimarisi

Başka bir değişiklik, bir Harvard makinesinin "ayrı adres alanı" yapısını korur, ancak talimat belleğinin içeriğine veri olarak erişmek için özel makine işlemleri sağlar. Veriler talimatlar olarak doğrudan yürütülebilir olmadığından, bu tür makineler her zaman "değiştirilmiş" Harvard mimarisi olarak görülmez:

  • Okuma erişimi: İlk veri değerleri, program başladığında komut belleğinden veri belleğine kopyalanabilir. Veya, veriler değiştirilmeyecekse ( pi gibi sabit bir değer veya bir metin dizesi olabilir ), veri belleğinde yer kaplamadan çalışan program tarafından doğrudan talimat belleğinden erişilebilir (ki bu, genellikle bir primle).
  • Yazma erişimi: genellikle yeniden programlama için bir yetenek gereklidir; birkaç bilgisayar tamamen ROM tabanlıdır. Örneğin, bir mikro denetleyici genellikle talimatlarını tutmak için kullanılan flash belleğe yazma işlemlerine sahiptir . Bu yetenek, yazılım güncellemeleri dahil olmak üzere amaçlar için kullanılabilir. EEPROM /PROM değiştirme alternatif bir yöntemdir.

Talimat olarak veri-bellek mimarisi

MAXQ gibi birkaç Harvard mimarisi işlemcisi, yalnızca program bellek bölümünden alınan talimatları yürütebilen orijinal Harvard işlemcisinin aksine, herhangi bir bellek bölümünden alınan talimatları yürütebilir. Bu tür işlemciler, diğer Harvard mimarisi işlemcileri gibi - ve saf von Neumann mimarisinden farklı olarak - ayrı bellek bölümlerindeyseler, aynı anda bir talimatı okuyabilir ve bir veri değerini okuyabilir, çünkü işlemci (en az) bağımsız olan iki ayrı bellek bölümüne sahiptir. veri otobüsleri. Bu tür değiştirilmiş Harvard mimarisi ile saf bir von Neumann mimarisi arasındaki programcı tarafından en belirgin fark, - bir bellek bölümünden bir talimat yürütülürken - aynı bellek bölümüne veri olarak aynı anda erişilememesidir.

karşılaştırmalar

Modifiye edilmiş Harvard makinelerini saf Harvard ve von Neumann makinelerinden ayırt etmek için üç özellik kullanılabilir:

Talimat ve veri bellekleri farklı adres alanlarını işgal eder

Saf Harvard makineleri için, talimat alanında bir talimat depolama konumuna atıfta bulunan bir "sıfır" adresi ve veri alanında ayrı bir veri depolama konumuna atıfta bulunan ayrı bir "sıfır" adresi vardır. Buna karşılık, von Neumann ve bölünmüş önbellekle değiştirilmiş Harvard makineleri, hem talimatları hem de verileri tek bir adres alanında depolar, bu nedenle "sıfır" adresi yalnızca bir konuma atıfta bulunur ve bu konumdaki ikili desenin bir talimat veya veri olarak yorumlanıp yorumlanmadığı tanımlanır. programın nasıl yazıldığına göre. Bununla birlikte, tıpkı saf Harvard makineleri gibi, veri olarak değiştirilmiş komut belleği Harvard makineleri ayrı adres alanlarına sahiptir, bu nedenle talimat ve veri alanı için ayrı adresleri "sıfır" vardır, bu nedenle bu, bu tür değiştirilmiş Harvard makinelerini saf Harvard'dan ayırt etmez. makineler.

Talimat ve veri bellekleri, merkezi işlem birimine (CPU) giden ayrı donanım yollarına sahiptir.

Saf veya değiştirilmiş Harvard makinelerinin amacı ve neden daha esnek ve genel von Neumann mimarisiyle birlikte var olduklarıdır: CPU'ya giden ayrı bellek yolları, talimatların alınmasına ve verilere aynı anda erişilmesine izin vererek verimi artırır . Saf Harvard makineleri, ayrı adres boşluklarına sahip ayrı yollara sahiptir. Bölünmüş önbellekle değiştirilmiş Harvard makinelerinde, CPU önbellekleri veya diğer sıkı bağlantılı bellekler için ayrı erişim yolları bulunur, ancak birleşik bir erişim yolu, bellek hiyerarşisinin geri kalanını kapsar . Bir von Neumann işlemcisi yalnızca bu birleşik erişim yoluna sahiptir. Bir programcının bakış açısından, talimat ve veri belleklerinin bir adres alanını paylaştığı değiştirilmiş bir Harvard işlemcisi, kendi kendini değiştiren kod ve program yüklemede olduğu gibi, önbellek tutarlılığı bir sorun haline gelene kadar genellikle bir von Neumann makinesi olarak kabul edilir . Bu kafa karıştırıcı olabilir, ancak bu tür sorunlar genellikle yalnızca sistem programcıları ve entegratörleri tarafından görülebilir . Diğer modifiye Harvard makineleri bu konuda saf Harvard makineleri gibidir.

Talimat ve veri hafızalarına farklı şekillerde erişilebilir

Orijinal Harvard makinesi Mark I , talimatları delinmiş bir kağıt bantta ve verileri elektro-mekanik sayaçlarda sakladı. Ancak bu, tamamen o sırada mevcut olan teknolojinin sınırlamalarından kaynaklanıyordu. Bugün, PIC mikro denetleyicisi gibi bir Harvard makinesi , talimatlar için 12 bit genişliğinde flash bellek ve veriler için 8 bit genişliğinde SRAM kullanabilir . Buna karşılık, ARM7TDMI veya değiştirilmiş bir Harvard ARM9 çekirdeği gibi bir von Neumann mikro denetleyicisi , zorunlu olarak flash belleğe ve SRAM'a (bu durumlarda 8 bit bayt olarak) tek tip erişim sağlar.

Değiştirilmiş Harvard mimarisinin modern kullanımları

Önbelleksiz bir DSP veya mikro denetleyicinin gerekli olduğu uygulamaların dışında, modern işlemcilerin çoğunda komut ve verileri bölümleyen bir CPU önbelleği bulunur.

Ayrıca, en katı tanımıyla Harvard makineleri olan (program ve veri belleği farklı adres alanlarını kaplar) ve yalnızca program belleğini veri olarak okumak ve/veya yazmak için işlemler olduğu gibi zayıf anlamda değiştirilmiş işlemciler de vardır . Örneğin, Atmel AVR'deki LPM (Program Belleği Yükle) ve SPM (Store Program Memory) komutları böyle bir değişikliği uygular. PIC ve Z8Encore gibi diğer mikro denetleyicilerde de benzer çözümler bulunur ! , TI C55x çekirdekleri gibi birçok dijital sinyal işlemcisi ailesi ve daha fazlası. Komut yürütme hala program adres alanıyla sınırlı olduğundan, bu işlemciler von Neumann makinelerinden çok farklıdır.

Ayrı adres alanlarına sahip olmak, salt okunur veri tablolarının normal yazılabilir verilerden farklı bir adres alanında olabileceği (ve bu nedenle farklı talimatlar kullanılarak okunması gerektiği) fikrini doğrudan desteklemeyen yüksek seviyeli dillerle programlamada belirli zorluklar yaratır. . C programlama dili artık standardize standart dışı uzantıları üzerinden veya içinden ya birden adres alanlarını destekleyebilir gömülü işlemcileri destekleyecek şekilde uzantıları .

Ayrıca bakınız

Notlar

Referanslar