• Pelicanen@sopuli.xyz
    link
    fedilink
    arrow-up
    24
    ·
    5 months ago

    I took a course in computing systems engineering which was basically going all the way from semiconductors up to operating systems and it was incredibly interesting.

    One of the things that surprised me was how easy it was to abstract away the lower-level complexity as soon as you got one step up. It’s kind of like recursive Lego pieces, you only have to design one piece then you can use a bunch of those to design another piece, then use a bunch of those to design another, and so on. By the end you have several orders of magnitude of the fundamental pieces but you don’t really think about them anymore.

    • drosophila
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      5 months ago

      The thing about real world processor design though is that all those abstractions are leaky.

      At higher levels of design you end up having to consider things like the electrical behavior of transistors, thermal density, the molecular dynamics of strained silicon crystals (and how they behave under thermal cycling), antenna theory, and the limits and quirks of the photolithography process you’re using (which is a whole other can of worms with a million things to consider).

      Not everyone needs to know everything about every part of the process (that’s impossible), but when you’re pushing the limits of high performance chips each layer of the design is entangled enough with the others to make everyone’s job really complicated.

      EDIT: Some interesting links:

      https://www.youtube.com/watch?v=U885cIhOXBM

      https://www.youtube.com/watch?v=ljZt_TQegHE

      https://www.youtube.com/watch?v=rdlZ8KYVtPU