Bugün kullandığımız bilgisayarların, telefonların, sunucuların ve neredeyse tüm dijital cihazların derinlerinde, 1940’lı yıllara uzanan ortak bir fikir saklıdır: Von Neumann Mimarisi. Programların ve verinin aynı bellekte tutulduğu, tek bir işlem biriminin bu belleğe sıralı şekilde erişerek komutları yürüttüğü bu tasarım, dijital dünyanın sessiz ama belirleyici “iskeleti”dir.
Günümüzde GPU’lardan yapay zekâ hızlandırıcılarına, gömülü sistemlerden süper bilgisayarlara kadar çok farklı mimariler konuşuyor olsak da, bunların önemli bir bölümü hâlâ Von Neumann modelinin varyantlarıdır. Bu nedenle Von Neumann Mimarisi’ni anlamak, yalnızca tarihsel bir merak değil; modern bilgisayar sistemlerinin çalışma mantığını kavramanın temel adımlarından biridir.
Bu yazıda Von Neumann Mimarisi’ni, tarihsel bağlamından teknik ayrıntılarına, güçlü yönlerinden sınırlılıklarına ve modern sistemlerdeki evrimine kadar akademik bir çerçevede, fakat akıcı ve bütünlüklü bir dille ele alacağız.
Tarihsel Arka Plan: Saklı Program Fikrinin Doğuşu
Bilgisayarların ilk dönemine bakıldığında, “bilgisayar programı” dediğimiz şeyin bile bugünkü anlamıyla var olmadığını görüyoruz. ENIAC gibi ilk makineler, fiilen kabloların elle yeniden bağlanması, anahtarların fiziksel olarak ayarlanmasıyla “programlanıyordu”. Yani bir problemi çözmek için çoğu zaman cihazın donanımını baştan yapılandırmak gerekiyordu.
İşte bu dönemde John von Neumann, EDVAC bilgisayarına ilişkin ünlü taslak raporunda, bugün “stored-program computer” olarak bildiğimiz devrim niteliğinde bir fikri ortaya koydu:
Program talimatları ve veriler aynı ana bellekte tutulmalıydı.
Bilgisayar, çalışırken bellekteki talimatları sırasıyla okuyarak çalışmalıydı.
Yeni bir problem çözmek için donanımı değil, bellekteki program içeriğini değiştirmek yeterli olmalıydı.
Bu basit görünen fikir, yazılım kavramının önünü açtı ve teknik olarak da “Von Neumann Mimarisi” olarak adlandırdığımız modelin temelini attı.
Von Neumann Mimarisi Nedir? Temel İlkeler
Özünde Von Neumann Mimarisi, aşağıdaki birkaç temel prensibe dayanır:
Tek, birleşik bellek: Program talimatları ve veriler aynı adreslenebilir bellek alanında saklanır.
Sıralı komut yürütme: İşlemci, program sayacının gösterdiği adresteki komutu bellekte bulur, çözer ve yürütür; ardından bir sonraki komuta geçer.
Merkezi işlem birimi (CPU): Aritmetik ve mantık işlemleri ile kontrol akışından sorumlu tek bir işlemci çekirdeği varsayılır (tarihsel modelde).
Veri yolu (bus) üzerinden iletişim: CPU, bellek ve giriş–çıkış birimleri arasında veri ve adresler ortak bir veri yolu üzerinden taşınır.
Bu yapı, aşırı esnek ve genel amaçlıdır. Aynı donanım üzerinde, yalnızca bellek içeriğini değiştirerek çok farklı programlar çalıştırabilirsiniz. İşte bu nedenle Von Neumann Mimarisi, onlarca yıl boyunca bilgisayar tasarımının fiili standardı haline geldi.
Saklı Program Kavramı
“Saklı program” (stored program) kavramı, Von Neumann Mimarisi’nin kalbidir. Dönem için radikal olan bu düşünce şunu söyler:
Programın kendisi de, veri gibi bellekte tutulur ve işlemci tarafından okunur.
Bu, birkaç önemli sonucu beraberinde getirir:
Program kodu, yürütme sırasında değiştirilebilir; yani program kendini modifiye edebilir (self-modifying code). Günümüzde güvenlik ve kararlılık nedenleriyle pek tercih edilmese de, tarihsel olarak ilginç bir özelliktir.
Aynı program, farklı veri kümeleriyle çalıştırılabilir; bu da genellik sağlar.
Programların bellekte saklanabilmesi, soyutlama katmanlarının ve yüksek seviyeli dillerin gelişmesi için zemini hazırlar.
Program ve Verinin Aynı Bellekte Saklanması
Von Neumann Mimarisi’nde komutlar ve veriler aynı adres alanını paylaşır. Bellekteki bir adres, bağlama bağlı olarak ya bir talimatı ya da bir veri değerini ifade edebilir. CPU açısından bakıldığında:
Program sayacının gösterdiği adres, bir talimat okumak için kullanılır.
Diğer adresler, talimatların belirttiği şekilde veri okumak/yazmak için kullanılır.
Bu yaklaşım, Harvard mimarisi ile zıtlık içindedir. Harvard modelinde talimat ve veri bellekleri fiziksel olarak ayrıdır, ayrı veri yolları kullanırlar. Modern CPU’lar genellikle bu iki yaklaşımı belirli seviyelerde birleştiren hibrit yapılar kullanır (örneğin ayrı talimat ve veri cache’leri gibi).
Sıralı Komut Yürütme ve Kontrol Akışı
Von Neumann Mimarisi’nin bir diğer temel özelliği, sıralı (sekansiyel) komut yürütme varsayımıdır. Program sayacı (PC – Program Counter):
Başlangıçta programın ilk talimatını işaret eder.
Her talimat yürütüldükten sonra, bir sonraki talimatın adresine ilerler.
Dallanma (branch) ve atlama (jump) talimatları, PC’yi farklı bir adrese ayarlayarak kontrol akışını değiştirir.
Bu basit model, algoritmaları lineer bir komut dizisi olarak düşünmemizi sağlar. Yüksek seviye programlama dillerinde kullandığımız döngüler, koşullu ifadeler, fonksiyon çağrıları gibi yapılar, derleyici tarafından bu sıralı kontrol akışına çevrilir.
Von Neumann Mimarisi Bileşenleri
Teorik bir Von Neumann sistemini çizdiğinizde, genellikle birkaç temel blok görürsünüz:
Merkezi İşlem Birimi (CPU)
Ana Bellek (Main Memory)
Giriş–Çıkış Birimleri (I/O)
Veri Yolları (Bus Sistemi)
Bu bileşenleri biraz daha ayrıntılandırmak, mimariyi somutlaştırmak açısından faydalıdır.
1. CPU: Aritmetik ve Mantığın Merkezi
CPU, Von Neumann Mimarisi’nin “beyni”dir. Klasik anlamda üç ana alt bileşenden söz edilir:
ALU (Arithmetic Logic Unit): Toplama, çıkarma, mantıksal VE/VEYA gibi temel işlemleri yapar.
Kontrol Birimi (Control Unit): Komut döngüsünü (fetch–decode–execute) yönetir, sinyalleri üretir.
Register Dosyası: Çok küçük, çok hızlı yerel bellek hücreleridir; geçici veriler ve adresler burada tutulur.
Register’lar; akümülatör, genel amaçlı register’lar, program sayacı, yığın işaretçisi (stack pointer) ve durum register’ı (flag register) gibi farklı roller üstlenir.
2. Ana Bellek: Program ve Veri Deposu
Ana bellek (geleneksel olarak RAM), program kodu ve çalışma verilerinin tutulduğu, CPU’nun adresleyebildiği lineer bir alan olarak modellenir. Von Neumann Mimarisi’nde:
Bellek adreslere bölünmüştür; her adres belirli büyüklükte bir veri birimi (byte, word vb.) tutar.
CPU, bir adres göndererek bellekten veri okur ya da o adrese veri yazar.
Bellek erişim süresi, CPU hızına kıyasla genellikle daha uzundur; bu, von Neumann engelinin kaynaklarından biridir.
Bellek, sadece program başlangıcında değil, programın çalışma sürecinde de dinamik olarak kullanılır: Stack, heap, global veri alanı gibi bölümler, derleyici ve işletim sistemi tarafından bu adres uzayı içinde düzenlenir.
3. Giriş–Çıkış Birimleri
Klavye, fare, disk, ağ kartı, ekran gibi tüm çevre birimleri, mimari şemada genellikle “I/O” bloğu altında toplanır. Von Neumann perspektifinde temel prensip şudur:
CPU, I/O denetleyicilerine özel talimatlar veya bellek eşlemeli I/O (memory-mapped I/O) üzerinden erişir.
Giriş verileri belleğe taşınır; CPU bu veriyi işleyip çıktı üretir; çıktı da yine I/O denetleyicileri üzerinden dış dünyaya gönderilir.
Bu sayede Von Neumann Mimarisi, yalnızca soyut hesaplama değil; fiziksel sensörler ve aktüatörlerle etkileşimi de kapsayan genel bir çerçeve sunar.
4. Veri Yolları (Bus Sistemi)
CPU, bellek ve I/O birimleri arasındaki iletişim, veri yolları üzerinden gerçekleşir. Von Neumann tasarımında genellikle üç tür bus’tan söz edilir:
Adres veri yolu (address bus): Hangi bellek hücresine veya I/O portuna erişileceğini belirtir.
Veri veri yolu (data bus): Taşınacak veriyi iletir.
Kontrol veri yolu (control bus): Okuma/yazma, kesme (interrupt), saat sinyali gibi kontrol işaretlerini taşır.
Bu veri yolları, sistemin fiziksel sınırlarını ve bant genişliğini belirleyen önemli bileşenlerdir. Dar veya yavaş bir veri yolu, CPU ne kadar güçlü olursa olsun genel performansı kısıtlar.
Von Neumann Komut Döngüsü: Fetch–Decode–Execute
Von Neumann Mimarisi’ni pratikte anlamanın en iyi yollarından biri, komut döngüsünü adım adım takip etmektir. Basitleştirilmiş haliyle CPU’nun “nefes alıp verişi” şu şekildedir:
Fetch (Getir):
Program sayacının işaret ettiği bellek adresindeki komut, belleğe gönderilen adresle okunur ve CPU içindeki bir komut register’ına yüklenir.Decode (Çöz):
Komutun opcode (işlem kodu) kısmı incelenir; hangi işlemin yapılacağı, hangi adresleme modunun kullanılacağı belirlenir.Execute (Yürüt):
Gerekli veriler register’lardan veya bellekten alınır, ALU’da işlem yapılır, sonuç yazılır; gerekirse program sayacı dallanma talimatına göre güncellenir.
Bu döngü, program sona erene veya bir kesme (interrupt) ile akış değişene kadar sürekli tekrar eder. Yüksek seviyeli dillerde yazdığımız karmaşık algoritmalar, derleyici sayesinde bu basit döngü üzerine inşa edilmiş talimat dizilerine dönüşür.
Adresleme Modları ve Bellek Modeli
Von Neumann Mimarisi, adresleme modları açısından da esnektir. Farklı komut seti mimarileri (CISC, RISC) farklı detaylar sunar; ancak temel adresleme biçimleri genellikle şunları içerir:
Doğrudan (immediate) adresleme: Veri, komutun içinde doğrudan kodlanmıştır.
Doğrudan bellek adresleme: Komut, kullanılacak verinin bellek adresini içerir.
Dolaylı adresleme: Komut, adresi tutan bir register’ı işaret eder; veri o register’da belirtilen bellek adresinden alınır.
İndeksli adresleme: Bir taban adrese, indeks register’ının değeri eklenerek gerçek adres elde edilir.
Bu adresleme modları, diziler, matrisler, göstericiler (pointer) gibi veri yapılarının verimli biçimde erişilmesini sağlar. Von Neumann Mimarisi’nin tek ve düz bir adres alanı varsayımı, derleyicilerin bu tür karmaşık veri yapıları üzerinde esnek optimizasyonlar yapmasına imkân tanır.
Von Neumann Mimarisi ve Harvard Mimarisi: Kısa Karşılaştırma
Von Neumann Mimarisi’ni daha iyi konumlandırmak için sıkça karşılaştırıldığı Harvard Mimarisi ile farklarına değinmek gerekir. Harvard modelinde:
Talimat ve veri bellekleri fiziksel olarak ayrıdır.
Talimat ve veri için ayrı veri yolları kullanılır.
Bu sayede işlemci, aynı anda farklı birimlerden talimat ve veri çekebilir.
Von Neumann Mimarisi’ndeyse:
Talimat ve veri tek bir bellek alanını paylaşır.
Talimat ve veri erişimleri aynı veri yolu üzerinden yapılır; bu, belirli durumlarda “von Neumann darboğazı”na yol açabilir.
Modern CPU’lar, teorik olarak Von Neumann Mimarisi’ne dayansa da, pratikte “modified Harvard” sayılabilecek hibrit çözümler kullanır. Örneğin:
L1 seviyesinde ayrı talimat (instruction) ve veri (data) cache’leri bulunur.
Daha üst seviyelerde bellek tek bir adres alanı şeklinde görünür.
Bu hibrit yaklaşım, hem program/kod esnekliği hem de talimat–veri erişiminde paralellik sağlar.
Von Neumann Mimarisi’nin Avantajları: Neden Hâlâ Buradayız?
1940’lardan kalma bir tasarımın, 21. yüzyılda hâlâ baskın olması tesadüf değildir. Von Neumann Mimarisi, birkaç önemli avantaja sahiptir:
Genel amaçlılık:
Aynı donanım üzerinde, çok farklı türde programlar çalıştırabilirsiniz. Bilimsel hesaplama, metin işleme, oyun, veritabanı… Hepsi aynı mimari üzerinde yalnızca yazılım değişikliğiyle mümkündür.Basit ve anlaşılır soyutlama:
Saklı program, sıralı komut yürütme ve tek bellek modeli, programlama dillerinin ve derleyicilerin tasarımı için doğal bir temel sunar.Olgun ekosistem:
On yıllar boyunca bu mimari üzerine inşa edilmiş donanım, işletim sistemi, derleyici, kütüphane ve araç zinciri, güçlü bir birikim oluşturmuştur. Bu birikimi “bir gecede” terk etmek ne ekonomik ne de teknik açıdan kolaydır.Donanım–yazılım ortak optimizasyonu:
Ön bellek sistemlerinden gelişmiş derleyici optimizasyonlarına kadar, von Neumann modeline özgü pek çok iyileştirme tekniği olgunlaşmıştır.
Bu avantajlar, Von Neumann Mimarisi’ni sadece “tarihsel bir model” olmaktan çıkarır; bugün de pratik olarak en yaygın kullanılan hesaplama paradigması haline getirir.
Von Neumann Mimarisi’nin Sınırlamaları: Von Neumann Engeli
Elbette hiçbir mimari kusursuz değildir. Von Neumann Mimarisi’nin en çok tartışılan sınırlaması, önceki yazıda ayrıntılı ele aldığımız Von Neumann Engeli ya da “memory wall” problemidir. Kısaca hatırlamak gerekirse:
CPU hızları ve hesaplama kapasitesi yıllar içinde dramatik biçimde artarken, bellek erişim süreleri ve bant genişliği aynı oranda gelişmemiştir.
CPU, çoğu zaman bellekten veri veya talimat gelmesini beklerken boş kalır; teorik performansın önemli bir bölümü pratikte kullanılamaz.
Bellek erişimi, enerji tüketiminin de önemli bir kısmını oluşturmaya başlamıştır.
Bu durum, özellikle:
Büyük veri setleriyle çalışan uygulamalarda,
Derin öğrenme ve yüksek performanslı hesaplamada,
Gerçek zamanlı ve bant genişliği hassas sistemlerde
kendini güçlü biçimde hissettirir. Sonuç olarak, Von Neumann Mimarisi üzerine kurulu sistemlerde bellek hiyerarşisi tasarımı, performans ve enerji verimliliğinde belirleyici bir rol oynar.
Modern Sistemlerde Von Neumann Mimarisi Nasıl Evrildi?
Bugün kullandığımız işlemciler, teorik olarak Von Neumann Mimarisi’ne dayanırken, uygulama düzeyinde oldukça karmaşık ve zenginleştirilmiş yapılardır. Bu evrimi birkaç başlık altında görmek mümkündür.
Cache Hiyerarşileri ve Bellek Alt Sistemi
Modern CPU’larda:
L1, L2, L3 gibi birden çok seviye cache,
Özel donanımlı bellek denetleyicileri,
Öngörülü veri getirme (prefetching) mekanizmaları
Von Neumann Engeli’ni hafifletmek için kullanılır. Bu sayede, CPU–bellek arasındaki hız farkı bir ölçüde maskelenir; CPU çekirdeği çoğu zaman ihtiyaç duyduğu veriyi yakın cache katmanlarında bulabilir.
Pipelining, Süperskaler, Çok Çekirdekli Tasarım
Komutların ardışık (pipelined) şekilde yürütülmesi, birden çok komutun aynı anda farklı aşamalarının işlenmesini sağlar. Süperskaler (superscalar) mimariler, döngü başına birden fazla komut yürütmeye imkân tanır. Çok çekirdekli tasarımlar ise aynı çip üzerinde birden çok CPU çekirdeği barındırarak toplam performansı artırır.
Tüm bu yapıların temelinde hâlâ Von Neumann’ın sıralı komut yürütme mantığı vardır; ancak mikromimari düzeyde yoğun paralellik ve spekülatif yürütme teknikleri kullanılır.
GPU ve Hızlandırıcılar
Grafik işlem birimleri (GPU) ve yapay zekâ hızlandırıcıları da kavramsal olarak Von Neumann Mimarisi’nden tamamen kopmuş değildir; talimat ve veri kullanımı, saklı program fikrine dayanır. Ancak:
Çok sayıda basit çekirdeği paralel kullanarak veri paralelliğini maksimize ederler.
Komut setleri ve belleğe erişim desenleri belirli iş yükleri (grafik, matris çarpımı vb.) için özelleştirilmiştir.
Dolayısıyla, Von Neumann’ın genel amaçlı modelinin üzerinde, belirli görevler için özelleşmiş alt mimariler inşa edildiğini söylemek yanlış olmaz.
Programlama Perspektifinden Von Neumann Mimarisi
Yüksek seviye dillerle program yazarken, çoğu zaman altta yatan mimariyi doğrudan düşünmeyiz. Ancak dillerin tasarımı ve çalışma zamanı (runtime) sistemleri, Von Neumann modelinden güçlü biçimde etkilenmiştir.
Değişkenler ve veri yapıları, bellekte belirli adresleri işgal eden “değerler” olarak soyutlanır.
Fonksiyon çağrıları, stack üzerinde oluşturulan çağrı çerçeveleri (call frame) ile modellenir.
Göstericiler (pointer), güvenli veya güvensiz biçimde, belleğin doğrudan adreslenmesine imkân tanır.
İşletim sistemi, süreçlere (process) sanal adres alanları sağlayarak, her programı kendine ait bir Von Neumann makinesi varmış gibi hissettirir.
Bu açıdan bakıldığında, Von Neumann Mimarisi sadece donanımı değil; yazılım dillerinin zihinsel modelini de şekillendirmiştir.
Geleceğe Bakış: Von Neumann Ötesi Mimariler ve Süreklilik
Kuanta dayalı hesaplama, neuromorphic sistemler, işlemci–bellek bütünleşmesi (processing-in-memory) gibi araştırma alanları, Von Neumann Mimarisi’ne alternatifler arayan başlıca yönelimlerdir. Ancak bu yeni paradigmaların yaygınlaşması, yalnızca donanım geliştirmekle değil, tüm yazılım ekosistemini yeniden düşünmekle mümkün olacaktır.
Bu nedenle kısa ve orta vadede, büyük olasılıkla şu tabloyu göreceğiz:
Temel işletim sistemleri ve genel amaçlı uygulamalar için Von Neumann Mimarisi’ne dayanan CPU’lar varlığını sürdürecek.
Belirli iş yükleri (AI, sinyal işleme, bilimsel simülasyonlar) için özel hızlandırıcılar, CPU’lara eşlik edecek.
Edge AI ve enerji kısıtlı uygulamalarda, beyin esinli ve bellek-yanı-işleme mimariler giderek daha fazla görünür olacak.
Başka bir deyişle, Von Neumann Mimarisi yok olup gitmekten ziyade, daha geniş ve heterojen bir hesaplama ekosisteminin temel katmanı olarak varlığını sürdürecek gibi görünmektedir.
Sonuç: Bir Mimarinin Uzun Gölgesi
Von Neumann Mimarisi, ilk ortaya atıldığında yalnızca dönemin donanım kısıtlarına pratik bir çözüm getiriyordu. Ancak zaman içinde bu çözüm, modern bilgisayar biliminin ve yazılım dünyasının zihinsel modeline dönüştü. Bugün bir programı düşündüğümüzde, çoğu zaman farkında olmadan; sıralı komutlar, adreslenebilir bir bellek, talimat ve veri arasındaki ilişki gibi Von Neumann’a özgü kavramlarla düşünürüz.
Elbette bu mimarinin sınırlamaları var; Von Neumann Engeli bunların başında geliyor. Yine de, cache hiyerarşileri, paralel işlem birimleri, özel hızlandırıcılar gibi katmanlarla zenginleştirilen Von Neumann Mimarisi, şimdilik yerini kolay kolay bırakacak gibi görünmüyor.
Önümüzdeki yıllarda, belki non-von Neumann paradigmalar daha fazla alan kazanacak; ancak büyük ihtimalle bir süre daha, dijital dünyanın temel iskeleti hâlâ aynı kalacak: Program ve verinin aynı bellekte buluştuğu, işlemcinin bu belleği adım adım gezerek anlam ürettiği Von Neumann Mimarisi.
Akademik Kaynakça
von Neumann, J. (1945). First Draft of a Report on the EDVAC.
Hennessy, J. L., Patterson, D. A. Computer Architecture: A Quantitative Approach. Morgan Kaufmann.
Tanenbaum, A. S. Structured Computer Organization. Pearson.
Stallings, W. Computer Organization and Architecture: Designing for Performance. Pearson.
Wulf, W. A., McKee, S. A. “Hitting the Memory Wall: Implications of the Obvious.” ACM SIGARCH Computer Architecture News.
Flynn, M. J. “Very High-Speed Computing Systems.” Proceedings of the IEEE.
Schuman, C. D. et al. “A Survey of Neuromorphic Computing and Neural Networks in Hardware.” arXiv preprint.
İlave okuma önerileri
Burks, A. W., Goldstine, H. H., von Neumann, J. (1946). Preliminary Discussion of the Logical Design of an Electronic Computing Instrument. Institute for Advanced Study
Goldstine, H. H. (1972). The Computer from Pascal to von Neumann. Princeton University Press
Aspray, W. (1990). John von Neumann and the Origins of Modern Computing. MIT Press
Ceruzzi, P. E. (2012). Computing: A Concise History. MIT Press
Campbell-Kelly, M., Aspray, W., Ensmenger, N., Yost, J. R. (2014). Computer: A History of the Information Machine. Westview Press
Williams, M. R. (1997). A History of Computing Technology. IEEE Computer Society Press
Randell, B. (ed.). (1982). The Origins of Digital Computers: Selected Papers. Springer
Backus, J. (1978). Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs. Communications of the ACM
Dijkstra, E. W. (1968). Go To Statement Considered Harmful. Communications of the ACM
Aho, A. V., Lam, M. S., Sethi, R., Ullman, J. D. (2006). Compilers: Principles, Techniques, and Tools (2nd ed.). Addison-Wesley
Bryant, R. E., O’Hallaron, D. R. (2015). Computer Systems: A Programmer’s Perspective (3rd ed.). Pearson
Kogge, P. M. (2011). The Architecture of Pipelined Computers. CRC Press
Hagersten, E., Koster, M. (2007). WildFire: A Scalable Path for SMPs. IEEE Micro
Mattson, T. G., Sanders, B. A., Massingill, B. L. (2005). Patterns for Parallel Programming. Addison-Wesley
Hill, M. D., Marty, M. R. (2008). Amdahl’s Law in the Multicore Era. Computer
Lamport, L. (1978). Time, Clocks, and the Ordering of Events in a Distributed System. Communications of the ACM
Flynn, M. J. (1966). Very High-Speed Computing Systems. Proceedings of the IEEE
Knuth, D. E. (1997). The Art of Computer Programming, Vol. 1: Fundamental Algorithms (3rd ed.). Addison-Wesley
Knuth, D. E. (1998). The Art of Computer Programming, Vol. 3: Sorting and Searching (2nd ed.). Addison-Wesley
Cormen, T. H., Leiserson, C. E., Rivest, R. L., Stein, C. (2009). Introduction to Algorithms (3rd ed.). MIT Press
Patterson, D. A., Ditzel, D. R. (1980). The Case for the Reduced Instruction Set Computer. ACM SIGARCH Computer Architecture News
Hennessy, J. L. (1984). VLSI Processor Architecture. IEEE Transactions on Computers
Bhandarkar, D., Clark, D. W. (1991). Performance from Architecture: Comparing a RISC and a CISC with Similar Hardware Organization. ACM SIGARCH Computer Architecture News
Jacob, B., Ng, S., Wang, D. (2010). Memory Systems: Cache, DRAM, Disk. Morgan Kaufmann
Culler, D. E., Singh, J. P., Gupta, A. (1999). Parallel Computer Architecture: A Hardware/Software Approach. Morgan Kaufmann
Dally, W. J., Towles, B. (2004). Principles and Practices of Interconnection Networks. Morgan Kaufmann
Kirk, D. B., Hwu, W.-m. W. (2016). Programming Massively Parallel Processors (3rd ed.). Morgan Kaufmann
Jouppi, N. P. et al. (2017). In-Datacenter Performance Analysis of a Tensor Processing Unit. Proceedings of ISCA
Sze, V., Chen, Y.-H., Yang, T.-J., Emer, J. S. (2017). Efficient Processing of Deep Neural Networks: A Tutorial and Survey. Proceedings of the IEEE
Bu içerik, Invictus Wiki editoryal ilkelerine uygun olarak hazırlanmış; güvenilir ve doğrulanabilir kaynaklar temel alınarak yayımlanmıştır. Bilgi güncelliği düzenli olarak gözden geçirilir.

Invictus Wiki editoryal ekibini temsil eden kolektif bir yazarlık imzasıdır. IW imzasıyla yayımlanan içerikler; çok kaynaklı araştırma, editoryal inceleme ve tarafsızlık ilkeleri doğrultusunda hazırlanır.
