4 ms·
What I believe low-level computing teaches you is that fundamental computation hasn't changed (architectural or system-level) for decades. We've had Lisp (and
by gpcz 13y ago
What I believe low-level computing teaches you is that fundamental computation hasn't changed (architectural or system-level) for decades. We've had Lisp (and its associated software improvements) since the late 50s, protected memory and multitasking since the late 60s (OS/360), virtualization and security since the early 70s (VM/CMS, Bell–LaPadula Model), GUIs/networking since at least the mid-70s (Xerox PARC), and formal computer security models since the mid-80s (Rainbow series). In the last few decades we've seen some dramatic improvements in semiconductor miniaturization, a couple architectural improvements (just off the top of my head, ASLR, W^X, and the Pentium's RISC-to-CISC design, though there are some others), and then mostly a lot of integration (computer+phone, computer+car, computer+plane, etc) and software craftsmanship based on principles developed decades ago. I'm not knocking craftsmanship (we all pay the bills practicing it), but due to design decisions made decades ago (such as the security nightmare that is Von Neumann architecture) we base software quality on how few mistakes individual artisans make rather than design systems that prevent artisans from making mistakes.
- michaelochurch 13y agoThanks. That's an excellent reply. What alternatives to the Von Neumann architecture would you want to see, and what are the major differences? Why do you think VN machines "won", given their deficiencies?
- gpcz 13y agoThere are two major competitors to the Von Neumann architecture, and then a few speculative ones. The most popular one is Harvard architecture, where code and data are in separate memories (improves security and performance, but makes loading code difficult). Most modern processors operate like a Harvard architecture machine when they are running directly from cache, but they act like Von Neumann machines when they have access to RAM. This means that they get some of the performance benefits, but you need hacky things like W^X to get (partially) the security benefits. The other one is dataflow architecture, which involves representing programs as a digraph where nodes represent instructions. Data flows through edges from one instruction to the next non-deterministically. This was popular research material in the late 70s and early 80s, but there were efficiency concerns. IBM (and Von Neumann) also dabbled with making computers that resembled neural networks, but VN passed away before he could dedicate a lot of time to it. AFAIK IBM's neural computer is still in research phase. I'd say Von Neumann machines "won" for a few reasons. First, Von Neumann consulted for IBM in the department that developed their first commercially-sold computers, so he got a lot of creative control. Second, as Hennessey and Patterson wrote in Computer Architecture: A Quantitative Approach, advocates of Von Neumann computers regarded HA machines as reactionary, implying there was even some religion back then. Third, Von Neumann architecture machines are significantly easier to load programs into. My guess is that a combination of business/political concerns on IBM's part in the 50s and 60s combined with momentum and switching costs is the main reason VN machines continue to win.