We’ve studied Instruction Set Architecture (ISA) before in Microprocessors course. Now, that just forms the middle layer of whole computer. There are two major layers above it – Operating Systems, and Applications (to be dealt in OS course), and two layers below ISA – Digital Design (Done, yay!) and Hardware Implementation.
2. Computer Architects can play Hide ‘n’ Seek
You know you can do the multiplication using repeated addition. So, you can implement it using an adder instead of going for a multiplication circuit. And, anyone who’s not attending Comp. Arch. lectures but attended MuP (ISA) would never get to know the real implementation inside. ISA just says that there’s a mechanism to implement multiplication instruction in the hardware. So, a programmer can use it.
3. Computer Organization
It’s just like you organize your desk, except here, we really do organize stuff. Stuff that’s there in the computer. CPU, Main memory, L1 Cache, L2 Cache, etc. How are they connected? What’s their layout? That is computer organization.
4. But the course is more than Comp Organization.
Computer Architecture = Computer Organization + ISA.
You have to think about the whole thing, not just one of the modules. And, if that’s a bad news for you, leave the blog right away.
It always feels good being a developer, doesn’t it? So, ASSUME you’re writing an application.
First step -> Algorithm for whatever you have in mind.
But, it doesn’t stop there. When I tell you to think, think bigger. Think that you’re a developer who’s a perfectionist. Who wants to make sure that his program runs in the best way possible on the machine, and for which, you’ve read all the stuff about hardware (computer organization).
Second step -> Understand the architecture on which it’s gonna run.
That is, ISA. When you compile something, it should satisfy the instruction set of the machine on which you’re running your application. Simplest example – your TurboC. Worked brilliantly on 32-bit machines or 16-bit (which you’ve never seen btw), but a 64-bit system is too sophisticated to allow such a lower-class program into the house.
Fun fact : Open terminal. ‘cd /’ and then, ‘cd boot’, and then, ‘ls’. You’ll see at least one vmlinuz-3.xx.xx file. This is your kernel file! The compiled version of it. It is based on your system’s architecture. When you installed your linux OS, it probably got compiled automatically after detecting your system’s architecture. But, you can compile a kernel according to your own configurations. It’s like theming your mobile phone, only difference is, theme adds to look of your device, custom configs would add to performance of your machine. More info : http://www.thegeekstuff.com/2013/06/compile-linux-kernel/
Fun Fact #2 : The whole OS you’re using is implemented on using the ISA of your machine. So, ISA is equally important, bro. Even though we might be dealing with more of Computer Organization in the lab.
5. ISA is public. Internals are private.