# Computer Organization and Architecture Friday #1

Hello and welcome to Computer Organization and Architecture Friday. This is - I don't know - may be a week or a year or a decade long journey where I'm going to talk about the Computer Organization and Architecture on every Friday.

If you know what is Computer Organization and Architecture then good else let me tell you in simple words - it is one of the Computer Science branch where computer scientists talk about the internals of computer system including processors, memory, inputs, outputs and so on. They also talk about how to create processors for computer systems - pretty much low-level and hardware related stuffs. If they talk about programming accidentally, then again it will be low-level near to hardware!

You might have question like Why should I have to learn this subject? I have no specific reason for you to convince. But, for me - just to know what is going on in 'core' computer science.

If you are planning to follow this journey then I'm assuming following two things about you:

1. You have some programming experience in order to understand some "logic".

2. You know that computer is dumb device that requires precise instructions for everything.

That being said, let's get started with two basic concepts. These two basic concepts are needed to understand the hypothetical model of computer. Here, is the first concept for you.

Your computer is made up of electronic circuits and it works with electronic signal. There are two basic types of electronic signals - analog and digital. The analog signals are continuous in nature and digital signals are discrete in nature.

The electronic device that works with analog signals is known as analog device and the electronic device that works with digital signals is known as digital device. Our computers are digital device or digital computers.

Computer is a digital device that only works with two level of signals - 0 and 1. We have the mathematical system around these two numbers called binary number system. Basically, binary number system is used to represent the information and manipulation of information in computer. In binary number system, you call Bit to 0 or 1. Four bits together is known as Nibble, and Eight bits together is known as Byte.

This was the first concept that I wanted you to understand. Let's talk about the second concept.

The basic computer model can be described using following four units:

1. Central Processing Unit or CPU

2. Input Unit

3. Memory Unit

4. Output Unit

5. Central Processing Unit (CPU): CPU is the brain of the computer where most of the operations of computer are take place. It can be further divided into two parts - 1. Control Unit and 2. Arithmetic and Logic Unit or ALU. As name suggest, Control Unit controls all the instructions and direct all the operations. It tells the computer's memory, ALU and input and output devices how to respond to the instructions that have been sent to the CPU. Whereas, the actual execution of arithmetic and logical operations are take place in ALU.

6. Input Unit: Input Unit is used to supply the data from outside to CPU. The Input Unit can be a Keyboard or a Mouse or the Hard Disk.

7. Memory Unit: Memory Unit is used to store the data so that CPU can work on it. There are two main types of memory - Primary and Secondary. Primary memory is RAM where all temporary information are saved and executed by CPU. Secondary memory is the Hard Disk where you save the important information which can retrieve later even after power cut. RAM is placed near to CPU in your computer so that it work fast. Whereas, Hard Disk is little far from CPU compare to RAM so that it work little slowly (There are many other types of memory in computer system and what I have said is too abstract. For now, let's go with this. In future, we'll deep dive and understand the exact point of speed and memory).

8. Output Unit: Output Unit is used to send the processed or computed data to outside from computer. The Output Unit can be a Monitor or a Printer or the Hard Disk.

That's it for the second concept. I hope you understand the basic units of computer system. With the help of these concepts we are now ready to understand the hypothetical model of computer on next Friday.

Very cool. I'm doing an online computer science course at the moment but it builds up from the bottom starting with boolean algebra and logic gate design, which sometimes feels quite abstract for an intial approach. Departing from a programming point of view and moving downwards seems like a more familiar approach. This was a nice intro overview though, thanks Kiran.

I my next semester of college, which starts in January, I'm taking PC Hardware and OS Architecture So it's in the same wheel house as this. I'm heavily looking forward to this. Ben Eater's videos has recently re-sparked my interest into computer concepts. I would totally start a breadboard computer myself, if I had more free funds, as I don't have an income stream.

Another great series. Amazing work. Keep it going!!

This series sounds very interesting! Now I have another reason to look forward to Fridays