How CPUs are Designed and Built: Fundamentals of Computer Architecture

A visualizing analogy: The chef (CPU) swiftly uses the wok (registers) and the tools (instructions) to perform tasks related to the recipe. The table in front (L1 cache) holds the ingredients (data) needed immediately. The space right behind (L2 cache) and the fridge (L3 cache) store additional supplies (data) for easy access. The supermarket (RAM) outside offers a wider variety of ingredients (data). This kitchen setup demonstrates a smooth and efficient process, much like an organized CPU.
Xr0it8r.jpeg
 
An excellent article for young skulls of mush and as a refresher for us old timers!

I am patiently waiting for the first "AI designed" CPU. Oddly, I suspect there are a lot of designers helping to code and train AI to do just that. It will be a kind of a sad day when the old CPU designers are relegated to "clean-up", validation and providing more training to our robot masters. :(
 
In the first part of this article, it states that programs are compiled into a set of low level instructions called assembly language. From what I've learned, compilers convert directly to machine code. Firstly, why does it state that programs are compiled into a set of low level instructions called assembly language? Secondly, does a CPU actually understand assembly language or does that assembly language have to go into an assembler to produce machine language for the CPU to understand? I just don't understand why the author states this. I looked up if a compiler converts high level code into assembly code, but it just states that it gets transformed into machine code.
 
In the first part of this article, it states that programs are compiled into a set of low level instructions called assembly language. From what I've learned, compilers convert directly to machine code. Firstly, why does it state that programs are compiled into a set of low level instructions called assembly language? Secondly, does a CPU actually understand assembly language or does that assembly language have to go into an assembler to produce machine language for the CPU to understand? I just don't understand why the author states this. I looked up if a compiler converts high level code into assembly code, but it just states that it gets transformed into machine code.
I can't remember what the article says but compilers would never convert into assembly language. Assembly language is just a human readable version of machine code which itself is executable directly on a CPU. Most compilers would never compile into machine code either because that would require the compiler to know what the machine code should be for every CPU and all about the the rest of the hardware within the computer. I'm not sure how they get round this now but, in the old days, they'd supply one very basic language to be interpreted or compiled on any computer (say p-code) and then other languages would be compiled into that language. This means your high level language compiler will work on any computer that can run the underlying p-code.
 
Back