Фон Нохманова архитектура (Фон Нојманов модел или Принстонска архитектура) — сметачка архитектура заснована на истото опишано во 1945 од страна на матиматичарот и физичар Џон фон Нојман и други во First Draft of a Report on the EDVACvon Neumann, John (1945), First Draft of a Report on the EDVAC (PDF), archived from the original (PDF) on March 14, 2013, retrieved August 24, 2011. Ова опишува дизајн на архитектура за електронски дигитален сметач со делови кои се содрќат од обработувачка единица која содржи аритметичко-логична единица и обработувачкки регистри, контролна едицина која содржи инструкциски регистар и програмски бројач, меморија за да чува податоци и инструкции, надворешна чување на големи податоци и влезно/излезни механизмиGanesan 2009. Значењето на ова еволуирало да биде такво што се асоцира со секој сметач кој инструкција може да биде преземена и операција на податоци не може да се случи во исто време бидејќи тие делат заедничка магистрала. Ова се нарекува Фон Нојманово тесно грло и ги ограничува перформансите на системот.Markgraf, Joey D. (2007), The von Neumann bottleneck, retrieved August 24, 2011

Дизајнот на фон Нојмановата архитектура е поедноставен од модерната Харвард архитектура која што е исто така складирачко-програмски копмјутер но има само еден посветен сет од адреси и податочни магистрали за читање и пишување податоци во меморија, и уште еден сет од адреси и магистрали за преземање инструкции.

Складирачко-програмски дигитален сметач е оној кој ги чува своите програмски инструкции, како и податоци, во RAM меморија. Сладирачко-програмски сметачи биле напредок во однос на програмски контролираните сметачи во 1940-тите, како Colossus и ENIAC кои биле програмирани со местење на прекинувачи и вметнување на patch leads за да рутираат податоци и контролираат сигнали помеѓу повеќе функционални единици. Во мнозинството современи сметачи, истат меморија се користи за податоци и програмски инструкции, фон Нојман против Харвардска архитектура се аплицира на кеш архитектурите, не и на главната меморија.

Историја

Најраните компјутирачки машини имале фиксни програми. Некои многу еднотавно сметачи сè уште го користат овој дизајн, од едноставни причини или за тренинг и вежби. На пример, обичен калкулатор (во принцип) е сметач со фискна програма. Може да пресметува основна математика, но не може да биде користен како текст обработувач или конзола за игри. Менување на програмата на фиксно-програмска машина бара препишување, пре-структурирање или редизајнирање на машината. Најраните сметачи не биле до толку ‘програмирани’ колку што биле ‘дизајнирани’. ‘Репорограмирање’, кога воопшто било можно, бил напорен процес, започнувајќи со табели и хартиени забелешки, следени со детални инженерски дизајни и тогаш често напорен процес од физичко пре-поврзување и градење на машината. Било потребно три недели да се намести програма во ENIAC и истата притоа да работи.Copeland 2006, p. 104 Со предлогот за складирачко-програмски сметач ова се променило. Ваков сметач вклучува дизајн за инструкциски сет и може во меморија да чува сет од инструкции (програма) која детално ја знае компјутацијата.

Складирачко-програмски дизајн исто така дозволува самостојно-менувачки код. Рана мотивација за ваква можност била потребата од програма да инкрементира или промени адресен дел од инструкции, кои претходно морало да се направи рачно. Ова настанало помалку важно кога индекс регистри и индиректно адресирање настанало вообичаена функција во машинска архитектура. Друг корист било да се вградат често користени податоци во инструкцискиот проток користејќи итно адресирање. Самостојно-менувачки код бил многу не пожелен за користење, бидејќи било тешко да се разбере и дебагира, исто така бил неефикасен под новите обработувачкки протоци и шеми на кеш.

На поголема скала, способноста да ги третираат инструкциите како податоци е тоа што ги прави асемблерите, компајлерите, линкерите, полначите и другите автоматски програмски алатки можни. Личност може ‘да напише програма што пишува програми’MFTL (My Favorite Toy Language) entry Jargon File 4.4.7, retrieved 2008-07-11. На помала скала, повторувачките влезно/излезни операции како BITBLT манипулаторот на слики или пиксел и вертекс засенувачи во модерната 3D графика, биле сметани како неефикасни да се изведуваат без специјален хардвер. Овие операции кои би можеле да бидат забрзани на општо целните обработувачи со ‘компилирање додека работат’ (‘точно на време компилирање’) технологии пр. програми кои генерираат код—една форма од само модифирачки код кои останале популарни.

Развивање на складирачко-програмски концепт

Математичарот Alan Turing, кој бил известен за проблем од математичка логика од страна на предавањата на Max Newman на Универзитетот Кејмбриџ, напишал труд во 1936 со наслов On Computable Numbers, with an Application to the Entscheidungsproblem, кој бил издаден во списанието Proceedings of the London Mathematical SocietyTuring, A.M. (1936), "On Computable Numbers, with an Application to the Entscheidungsproblem", Proceedings of the London Mathematical Society, 2 (1937) 42, pp. 230–65, doi:10.1112/plms/s2-42.1.230 (and Turing, A.M. (1938), "On Computable Numbers, with an Application to the Entscheidungsproblem. A correction", Proceedings of the London Mathematical Society, 2 (1937) 43 (6), pp. 544–6, doi:10.1112/plms/s2-43.6.544). Во тоа, тој опишал хипотетичка машина која што ја нарекол ‘универзална компјутирачка машина’, истата сега е позната како ‘Универзална Туринг машина’. Хипотетичката машина имала бесконечна меморија (во денешна терминологија) која содржела и инструкции и податоци. Џон фон Нојман се запознал со Turing додека бил професор на Кејмбриџ во 1935 исто така за време на PhD на Turing при Институтот за Напредни Науки во Принстон, Њу Џерси помеѓу 1936-37. Не е јасно дали знаел за трудот на Turing од 1936 година.

Во 1936 година, Konrad Zuse исто така предвидел две апликации за патент со кои машинските инструкции би можеле да бидат зачувани во иста меморија која се користела и за податоци."Electronic Digital Computers", Nature 162, September 25, 1948: 487, doi:10.1038/162487a0, retrieved 2009-04-10

Независно, J. Presper Eckert и John Mauchly, кои го развивале ENIAC во Moore School of Electrical Engineering на Универзитетот во Пенсилванија напишале за складирачки-програм концепт во декември 1943 годинаLukoff, Herman (1979), From Dits to Bits…: A Personal History of the Electronic Computer, Robotics Press, ISBN 978-0-89661-002-6ENIAC project administrator Grist Brainerd's December 1943 progress report for the first period of the ENIAC's development implicitly proposed the stored program concept (while simultaneously rejecting its implementation in the ENIAC) by stating that "in order to have the simplest project and not to complicate matters" the ENIAC would be constructed without any "automatic regulation".. При планирање нова машина, EDVAC, Eckert напишал во јануари 1944 година дека тие би можеле да чуваат податоци и програми во нова адресабилна мемориска направа, одложување на мемориска лини со метал од жива. Тоа било првиот пат кога било предложено конструкција на практична складирачко-програмска машина. Во тоа време тој и Mauchly не биле свесни за работата на Turing.

Фон Нојман бил вклучен во проектот Менхетн во Националната лабораторија „Лос Аламос“, која што имал потреба од големи количини на пресметки. Ова го привлекло кон ENIAC Проектот, за времене летото во 1944 година. Таму тој се приклучил на постоечката дискусија за дизајнирање на овој складирачко-програмски сметач, наречен EDVAC. Како дел од таа група, тој напишал опис наречен First Draft of a Report on the EDVAC заснован на работата од Eckert и MauchlyCopeland 2006, p. 113. Тоа било недовршено кога неговиот колега Herman Goldstine го пронашол со само името на фон Нојман напишано на истото. Трудот бил прочитан од голема бројка на колеги на фон Нојман во Америка и Европа и влијаело врз следната рунда сметачки дизајни.

Jack Copeland го смета тоа за ‘историски неадекватно, да се референцира на електронските складирачко-програмски дигитални сметачи како “фон Нојманови машини”’Copeland, Jack (2000), A Brief History of Computing: ENIAC and EDVAC, retrieved January 27, 2010. Неговиот колега од Los Alamos, Stan Frankel, изјавил за фон Нојмановиот поглед на идеите на Тјуринг:

Знам дека во или околу 1943/44 фон Нојман беше целосно свесен за основната важност на Turing-овиот труд од 1936… фон Нојман ми го посочи тој труд и поради неговото инсистирање длабого го проучив. Многу луѓе го сметаат фон Нојман како „таткото на сметачот“ (во модерна смисла на зборот) но јас сум сигурен дека он никогаш не би ја направил таа грешка самиот. Слободно може да се нарече бабица, можеби, но тој строго ми го посочи тоа, сигурен сум дека и на другите, дека основната замисла се должи на Turing-дури не предвидена од страна на Babbage… И Тјуринг и фон Нојман, секако, направија значајјни придонеси кон ‘намалувањето на примена’ на овие концепти но не би ги сметал овие како споредливи во важност со претсавувањето и експлицитација на концептот за сметач кој е способен да ја чува својата меморија, програма на активности и изменување на програмата во однос на тие активности.Copeland, Jack (2000), A Brief History of Computing: ENIAC and EDVAC, retrieved 27 January 2010 which cites Randell, B. (1972), Meltzer, B.; Michie, D., eds., "On Alan Turing and the Origins of Digital Computers", Machine Intelligence (Edinburgh: Edinburgh University Press) 7: 10, ISBN 0-902383-26-4

Во времето кога ‘First Draft’ извештајот почнал да кружи Turing направил извештај со наслов Proposed Electronic Calculator кој опишал во инженерски и програмерски детал, неговата идеја за машина која била наречена Automatic Computing Engine (ACE)Copeland 2006, pp. 108–111. Тој ја претставил идејата на Извршниот Комитет при Британската Национална Физичка Лабораторија на 19 Февруари 1946 година. Иако Turing знаел од неговото воено искуство во Bletchery Park дека тоа што го предложил било изводливо, тајноста околу Colossus, која што била одржувана неколку декади му го забранувала истото. Неколку успешни имплементации на ACE дизајнот биле направени.

Трудовите на фон Нојман и Turing опишуваат складирачко-програмски сметачи, но претходниот труд на фон Нојман постигнал поголема циркулација и затоа опишаната архитектура станала позната како ‘фон Нојмановата архитектура’. Во 1953 година, во објавеното Faster than Thought: A Symposium on Digital Computing Machines (едитирано од страна на B.V Bowden) дело од поглавјето на Сметачи во Америка следува:Bowden 1953, pp. 176,177

Машинскиот Институт за Напредни Студии, Принстон

Во 1945, професорот Џ. фон Нојман, кој тогаш работел во Муровото школо за инженерство во Филаделфија, каде што E.N.I.A.C бил изграден, на барање од своите колеги објавил извештај на логичниот дизајн на дигиталните сметачи. Извештајот содржел мошне детален предлог за дизајнот на машината која од тогаш е позната како E.D.V.A.C (електронски диксретен варијабилен автоматски сметач). Оваа машина е неодамна завршена во Америка, но извештајот на фон Нојман ја инспирираше конструкцијата на E.D.S.A.C (електронски автоматски калкулатор со задоцнување на меморијата) во Кејмбриџ.