I'm studying what makes a computer a computer
So far I understood that we have
High-Level programming language ->
-> Compiled into low level programming language (assembly language) ->
-> Which the assembler then uses to send instructions directly to the CPU using Machine Code
The instructions must obey the corresponding CPU architecture as well as the ISA
(instruction set architecture) that this CPU uses.
And the CPU reads/writes data from registry or from hdd (or from sdd, etc.) through various channels.
The articles that I've read so far fail to mention the following two (key, from my POV) aspects of this journey that an instruction makes:
- Where exactly is the ISA stored? In what component of a whole system?
- And how does the CPU take it into account? Where along the journey? Does it "ask" explicitly the ISA (somehow) if the instruction received is valid?
ISA is not like stored data process. It's a recipe of interfacing between hardware and software. An Instruction Set is consisting of Information (more specifically the binary bits). A compiler breaks a code into that level of abstraction. Below that level, we could have micro-programmed control architecture or hardwared controlled architecture to perform gate level activities. So, ISA can be viewed as a encoding schemes of operating Gates.