ფონ ნეიმანის არქიტექტურა (შენახული პროგრამის კომპიუტერი)
განმარტება
კომპიუტერის ლოგიკური მოწყობა, რომელშიც პროგრამა და მონაცემები ერთსა და იმავე მეხსიერებაში ინახება. დღევანდელი ლეპტოპი, სმარტფონი თუ სერვერი, პრინციპში, სწორედ ასე მუშაობს.
“In today’s world, the unmodified word ‘computer’ normally refers to some version of the machine John von Neumann invented in the 1940s.” („დღევანდელ სამყაროში სიტყვა ‘კომპიუტერი’, დამატებითი განმარტების გარეშე, ჩვეულებრივ იმ მანქანის რომელიმე ვერსიას ნიშნავს, რომელიც ჯონ ფონ ნეიმანმა 1940-იან წლებში გამოიგონა“) — პატიმრის დილემა (წიგნი), თავი 4
რა პრობლემას ჭრიდა
პირველი ელექტრონული კომპიუტერი, ENIAC (1945), ფიზიკურად იყო „დაპროგრამებული”. ახალი ამოცანისთვის ინჟინრები დღეობით გადართავდნენ კაბელებს და გადამრთველებს. მანქანა სწრაფად ითვლიდა, მაგრამ ერთი ამოცანიდან მეორეზე გადასვლა ნელი იყო.
1944 წელს ჯონ ფონ ნეიმანი ENIAC-ის გუნდს — ჯონ მოკლის და პრესპერ ეკერტს — შეუერთდა. მას ჰიდროდინამიკისა და თერმობირთვული გამოთვლებისთვის სწრაფი მანქანა სჭირდებოდა. 1945 წლის ივნისში მან დაწერა „EDVAC-ის ანგარიშის პირველი მონახაზი”, სადაც შემდეგი მანქანის ლოგიკური სქემა აღწერა.
ხუთი ბლოკი
| ბლოკი | ფუნქცია |
|---|---|
| არითმეტიკული ბლოკი | ითვლის — შეკრება, გამრავლება, შედარება |
| მართვის ბლოკი | კითხულობს ინსტრუქციას და წყვეტს, რა გაკეთდეს შემდეგ |
| მეხსიერება | ინახავს როგორც მონაცემებს, ისე ინსტრუქციებს |
| შეტანა | ინფორმაცია გარედან |
| გამოტანა | შედეგი გარეთ |
მთელი ციკლი სამ ნაბიჯად მეორდება: წაიკითხე ინსტრუქცია მეხსიერებიდან → გაშიფრე → შეასრულე. მილიარდჯერ წამში.
რატომ არის ეს რევოლუციური
პროგრამა მონაცემად იქცა. რადგან ინსტრუქციები იმავე მეხსიერებაშია, სადაც რიცხვები, მანქანას შეუძლია:
- ახალი პროგრამის ჩატვირთვა კაბელების შეხების გარეშე
- პროგრამის მიერ სხვა პროგრამის წაკითხვა, თარგმნა ან შექმნა — კომპილატორი, ოპერაციული სისტემა, ინტერპრეტატორი
- საკუთარი ინსტრუქციების შეცვლა მუშაობისას
ეს ის იდეაა, რომელიც უნივერსალურ კონსტრუქტორში კიდევ ერთხელ გამოჩნდება: ინფორმაცია, რომელიც ერთდროულად ბრძანებაცაა და ტექსტიც.
ვისია სინამდვილეში?
ისტორიული სიზუსტისთვის აუცილებელია რამდენიმე შენიშვნა:
- ალან ტიურინგმა 1936 წელს უკვე აღწერა აბსტრაქტული უნივერსალური მანქანა, რომლის ფირზეც ინსტრუქციები და მონაცემები ერთად წერია. ფონ ნეიმანი ტიურინგის ნაშრომს იცნობდა
- ეკერტი და მოკლი EDVAC-ის იდეებზე ფონ ნეიმანამდე მუშაობდნენ. ანგარიში მხოლოდ ფონ ნეიმანის სახელით გავრცელდა, რამაც მწვავე და ხანგრძლივი კონფლიქტი გამოიწვია, მათ შორის პატენტების გამო
- კონრად ცუზე გერმანიაში დამოუკიდებლად მივიდა მსგავს იდეებამდე
ფონ ნეიმანის რეალური წვლილი ის არის, რომ მან ეს იდეები სუფთა, ლოგიკურ, ტექნოლოგიისგან დამოუკიდებელ ენაზე ჩამოაყალიბა ისე, რომ ნებისმიერ ინჟინერს შეეძლო მათი გამოყენება. ანგარიში ფართოდ გავრცელდა და მთელი ინდუსტრიის სტანდარტად იქცა.
„ფონ ნეიმანის ვიწრო ყელი”
რადგან პროცესორი და მეხსიერება ცალ-ცალკეა და მათ შორის ერთი არხია, პროცესორი ხშირად ელოდება, სანამ მეხსიერებიდან მონაცემი მოვა. ამას „ფონ ნეიმანის ვიწრო ყელს” (von Neumann bottleneck) უწოდებენ. ტერმინი ჯონ ბეკუსმა შემოიღო 1977 წელს.
ირონია ის არის, რომ თავად ფონ ნეიმანმა „კომპიუტერსა და ტვინში” აღნიშნა: ტვინი ასე არ არის მოწყობილი. ტვინში მეხსიერება და გამოთვლა ერთსა და იმავე სინაფსურ კავშირებშია განაწილებული. დღევანდელი ნეირომორფული ჩიპები და „მეხსიერებაში გამოთვლის” (in-memory computing) არქიტექტურები სწორედ ამ განსხვავებიდან იზრდება.
ჰორიზონტალური კავშირები
- ტვინის პირველადი და მეორადი ენა — სერიული, ზუსტი, ღრმა კომპიუტერი და პარალელური, უხეში, ზედაპირული ტვინი: ორი არქიტექტურა, ორი „ენა”
- ჰუსერლის „კრიზისი” — ბუნების მათემატიზაცია, რომლის ტექნოლოგიური ფორმა კომპიუტერი გახდა
- მარტინ ჰაიდეგერი — Gestell („ჩარჩოში მოქცევა”): ტექნიკა, რომელიც სამყაროს მარაგად და მონაცემად აქცევს
- „2001: კოსმოსური ოდისეა” — HAL 9000, ფონ ნეიმანის მანქანის ყველაზე ცნობილი კინემატოგრაფიული შთამომავალი
- სევერანსი (სერიალი) — მეხსიერების გამიჯვნა: ორგანიზაცია, რომელიც ადამიანის ცნობიერებასაც ცალკეულ „ბლოკებად” ყოფს
ვერტიკალური ჯაჭვი
- წინამორბედები: ჟაკარის საქსოვი დაზგა (პერფობარათები, 1804) → ჩარლზ ბებიჯი და ადა ლავლეისი (ანალიტიკური მანქანა) → ჯორჯ ბული (ლოგიკის ალგებრა) → ალან ტიურინგი (1936) → კლოდ შენონი (ლოგიკა რელეებში, 1937) → ENIAC (1945)
- ეს იდეა (1945): EDVAC-ის ანგარიში
- მემკვიდრეები: მანჩესტერის „ბეიბი” (1948 — პირველი მომუშავე შენახული პროგრამის კომპიუტერი) → IAS-ის მანქანა პრინსტონში (1952) → IBM 701 → მიკროპროცესორი → GPU და ნეირომორფული არქიტექტურები (ფონ ნეიმანის მოდელის მიღმა)