Saf bir Harvard mimarisi, belirli bir karmaşıklık düzeyine sahip bir bilgisayarın, kod ve veri anıları arasında hiçbir kaynağın paylaşılması gerekmiyorsa, Von Neuman mimarisinden daha hızlı çalışmasına izin verecektir. Pinout sınırlamaları veya diğer faktörler, her iki bellek alanına erişmek için bir veri yolu kullanımını zorlarsa, bu avantajlar büyük ölçüde geçersiz kılmaya eğilimlidir.
"Saf" bir Harvard mimarisi, kodu çalıştıracak işlemci dışındaki bazı mekanizmalar tarafından belleğe alınan çalışan kodla sınırlı olacaktır. Bu, bu tür mimarilerin amacı fabrika tarafından (veya özel programlama ekipmanı olan biri) tarafından ayarlanmayan cihazlar için kullanımını sınırlar. Bu sorunu hafifletmek için iki yaklaşım kullanılabilir:
Bazı sistemler ayrı kod ve bellek alanlarına sahiptir, ancak kod veriyolunu kısaca devralması, biraz işlem gerçekleştirmesi ve böyle bir işlem tamamlandığında kontrolü CPU'ya iade etmesi istenebilen özel donanım sağlar. Bu tür bazı sistemler, bu tür işlemleri gerçekleştirmek için oldukça ayrıntılı bir protokole ihtiyaç duyarlar, bazılarında böyle bir görevi yerine getirmek için özel talimatlar bulunur ve hatta bazıları belirli "veri belleği" adreslerini izler ve bunlara erişmeye çalışıldığında devralma / serbest bırakmayı tetikler. . Bu tür sistemlerin önemli bir yönü, "kod" ve "veri" için açıkça tanımlanmış bellek alanları olmasıdır; CPU'nun "kod" alanını okuması ve yazması mümkün olsa bile, yine de veri alanından anlamsal olarak farklı olduğu kabul edilmektedir. '
Bazı üst düzey sistemlerde kullanılan alternatif bir yaklaşım, ikisi de bir bellek tahkim birimine bağlanan biri kod ve diğeri veri için olmak üzere iki bellek veriyoluna sahip bir denetleyiciye sahip olmaktır. Bu birim sırayla her biri için ayrı bir bellek veri yolu kullanarak çeşitli bellek alt sistemlerine bağlanır. Bir bellek alt sistemine bir kod erişimi, bir diğerine veri erişimi ile aynı anda işlenebilir; ancak kod ve veriler aynı alt sisteme aynı anda erişmeye çalışırsa ya birinin beklemesi gerekir.
Bu yaklaşımı kullanan sistemlerde, bir programın performans açısından kritik olmayan kısımları bellek alt sistemleri arasındaki sınırları göz ardı edebilir. Kod ve veriler aynı bellek alt sisteminde bulunuyorsa, işler ayrı alt sistemlerde olduğu kadar hızlı çalışmaz, ancak tipik bir programın önemli olmayan birçok bölümü için de çalışmaz. Tipik bir sistemde, kodun performansın gerçekten önemli olduğu küçük bir kısmı olacaktır ve sistem tarafından tutulan verilerin yalnızca küçük bir kısmında çalışacaktır. Birisi, iki 8K bölüme ayrılmış 16K RAM'e sahip bir sisteme sahipse, performans açısından kritik kodun genel bellek alanının başlangıcına yakın olmasını ve performans açısından kritik verilerin son. Toplam kod boyutu örneğin 9 KB'ye çıkarsa, Son 1K içindeki kod, başka bir yere yerleştirilen koddan daha yavaş çalışır, ancak bu kod performans açısından kritik olmaz. Benzer şekilde, kod sadece 6K olsaydı, ancak veriler 9K'ya büyüdüyse, en düşük 1K veriye erişim yavaş olurdu, ancak performans açısından kritik veriler başka bir yerde bulunsaydı, bu sorun yaratmazdı.
Kod 8K'ın altında ve veriler 8K'nın altında olsaydı performansın optimum olacağını, ancak yukarıda belirtilen bellek sistemi tasarımının kod ve veri alanı arasında katı bir bölüm oluşturmayacağını unutmayın. Bir programın yalnızca 1K veriye ihtiyacı varsa, kod 15K'a kadar büyüyebilir. Yalnızca 2K kod gerektiriyorsa, veriler 14K'ya kadar büyüyebilir. Sadece kod için 8K alana ve sadece veri için 8K alana sahip olmaktan çok daha çok yönlüdür.