Cóż, istnieje coś takiego jak ENIAC, w którym masz w zasadzie indywidualne ALU i „programujesz” je, łącząc wyjście jednego alu z wejściem innego alu, który miał wykonać następną operację na tej zmiennej pośredniej. Twoje „rejestry” i pamięć to przewody łączące alus.
Niedawno kupiłem książkę „The First Computers - History and Architectures (History of Computing)”, która częściowo skupia się na tym właśnie temacie. Nie polecam kupowania tej książki, chociaż jest to tylko zbiór prac naukowych, trudnych do przeczytania i podejrzewam, że prawdopodobnie opublikowałem (za darmo) gdzie indziej. (Poddałem się przed ukończeniem wprowadzenia)
Kiedy pamięć została wynaleziona i stała się praktyczna, trochę się osiedliliśmy w dwóch popularnych Von Neumann i Harvard. Wykonywanie z ponownego okablowania, kart dziurkowanych, taśmy papierowej itp. Stało się mniej praktyczne. I jest oparty na stosie (na przykład ZPU), który, jak podejrzewam, prawdopodobnie należy do kategorii Harvard, a nie do własnej.
Co z platformami von neumann, które uruchamiają pamięć flash tylko do odczytu (w normalnym użyciu) na jednym interfejsie pamięci i mają ramkę danych do odczytu / zapisu w innym (który czasami może działać na obu równolegle), ale z perspektywy programów są w jednym przestrzeń adresowa? Lub te, które mają kilka wewnętrznych / zewnętrznych pamięci / interfejsów, wszystkie działają równolegle, ale są von neumann, ponieważ znajdują się w tej samej przestrzeni adresowej.
A jaką zaletą jest platforma Harvard, na której procesor nie może uzyskać dostępu do pamięci instrukcji jako danych w celu zmiany / aktualizacji bootloadera lub załadowania następnego programu do uruchomienia? Dlaczego nie jest to architektura von neumanna? Czy procesor wykonuje tę samą pamięć na tym samym interfejsie i działa na niej prawdopodobnie w sposób sekwencyjny (pobieranie instrukcji i zapisywanie pamięci nie dzieje się w tym samym czasie)?
Dwie popularne architektury oparte na pamięci są bardziej zbliżone niż różnią się w obecnych implementacjach IMO.
Gdzie spada GPU? Lub firma, w której pracuję, procesory sieciowe (NPU). Tam, gdzie masz te stosunkowo małe silniki specjalne (procesory), które wykonują z ram programu typu harvard (adresowalne, ale po prostu nie chcesz tego robić ze względu na wydajność), działaj na różnych ramkach danych, z których każdy ma własną oddzielną przestrzeń adresową (oddzielny procesor instrukcje dla każdej przestrzeni), (przestrzenie pamięci działające równolegle) i przez te pamięci RAM przekazują dane pośrednie, aby następne obliczenia zostały wykonane przez następną mikro-maszynę w sposób podobny do przewodowego alu (eniac)? Jak byś to nazwał? Czy npus i gpus są po prostu fantazyjnie zmodyfikowanymi architekturami Harvarda?