Computers are the integral part of our lives today. We have a misconception that computers only are PCs and Laptops. Actually, there are computers present in almost every digital electronic device. A standard digital watch, car keys, calculators, microwaves, etc. A computer is an electronic circuit that ‘computes’, hence the name computer. Computing means to give certain output after doing specified operations to an input. Like an example of clicking an icon on the desktop highlights the icon. There are mainly four types of computers.
- Supercomputers: Takes extremely large spaces of hardware, in the sizes of rooms, requiring immense cooling. These computers give highest level of performance. Used by extremely big and rich organizations mainly for scientific research and exploration purposes.
- Main-Frame Computers: Not as powerful as supercomputers, but really powerful than an average computer. Used by government and organizations to run their firms and businesses. These computers take smaller rooms.
- Mini-Computers: To a very small-scale as compared to Mainframe Computers. However, still larger and more powerful than a standard computer. Individual departments of companies use them. The design is mainly for more than one user. Usually used for large-scale specific purposes. For example, monitoring the radiation in a nuclear plant.
- Micro-Computers: The standard computers that the commoner uses. Used in standard office cubical, for entertainment purposes, smaller versions in smaller devices like calculators.
Hardware Components that Make a Computer.
To enlist the devices that make up the computer will take several articles. But to enlist the components of a computer is easy. As there are only 3 main components that make up a computer.
A no-brainer. Processors are the main part of the computing system as it is here where all the operations perform. The processor has many internal sub-components to it, together which forms an ‘architecture’ of a computer. Processors vary with respect to systems. Mainly there are two types of Processors:
- RISC (Reduced Instruction Set Computer) Processor: These types of processors are usually of lesser power, and have less flexibility. However, these processors’ design mainly focuses on application specific systems. We find these processors mainly in small systems like mobile phones and tablets.
- CISC (Complex Instruction Set Computer) Processor: These types of processors have more power than their RISC counterparts. Usually made for systems that are more of general purpose systems. They are more flexible. Usually found in bigger systems like laptops and PCs.
Note: We shall see what Instruction Set means later in the article.
A process is a segment of code that is currently undergoing execution. A processor is simply a combination of circuits that performs this execution. When you say that a processor is a 64 bit processor, it means that the processor is able to compute 64 bits together in a given instant.
An Example Of Working:
Consider that you have MS Word open at your computer. You press a key on your keyboard. This sends a signal to the processor about the pressing of the key. The processor, then runs the particular program of converting the information of the key pressed, to the display of the character. The processor then sends the output back. All of this happens in span of micro seconds.
Another set of circuits where the information storage in form of bits and bytes takes place. The Processor performs two basic operations on the memory:
- Read operation: The operation of retrieving information from memory to processor.
- Write operation: The operation to edit/store the existing/new information into the memory circuits.
There is more than one type of memory that exist inside the computer. They differentiate upon functionality. As they have different functionalities, their internal circuits are also different. Mainly we can say that there are 3 types of memories that exist.
Made up of circuits called as S-RAMs or Static Random Access Memory cells. These cells are on the chip of the processor itself. They usually contain most frequently used information and have the fastest data transfer rate. As they are on the same chip as that of processor circuitry, the cache memory is very small in size. Usually about a few Megabytes. They are volatile memory cells, that is they cannot store information permanently. System loses all the data if the power shuts down.
Also known as physical memory. Made from cells known as D-RAMs or Dynamic Random Access cells. These cells are located on a different chip altogether. These are slower than Cache memory but are of larger sizes. Usually RAMs in modern systems are either 8 or 16 Gigabytes. These circuits too, are volatile and also contain frequently used data by processor. The reason why we call these memories as RANDOM ACCESS memories is that we can access any random memory cell at any given point in the RAM. There is no specific sequence of getting the data. Like for e.g. if I have data stored in 1000th cell, I can directly go to that cell rather than going from cell 1 to cell 2 to cell 3 and finally 1000.
Also known as hard disk. At the time of invention of ROMs (Read only memory), only read operation was possible in these cells. Hence the name. Today we have Flash ROMs (latest version of ROM) that allow us to electrically read and write in ROM cells. These cells have the highest storage capability and are the slowest. These are the only cells in the memory system that are not volatile. Data will remain in them even if power goes off. (This is the reason why there is a prompt to save your work before closing any application. As when you save, data transfer to ROM from RAM takes place.)
When you open a game, you double-click the icon. The Processor gets all the information from the hard disk about the game and starts running it. It is obvious now as the game is running, the most frequently used information will be the data of the game. As a result, RAM gets this data. This is the reason why bigger games demand more RAM. The Random Accessing Capability enables processor to take any data desired by user at any time. A constant interaction between RAM and Processor happens. Had this interaction be between ROM and Processor, it would much more time (thousand times more) to work. As a result it is necessary for RAM to intervene. The smaller and more frequently used data within the entire game data is available in cache for quicker accessing. This is because as said earlier, Cache is the fastest memory unit.
Input/Output (I/O) Devices:
These are the devices that we ourselves use or the system uses them itself. These are the basic mediators that enable the processor interact to the environment of the system. There are 3 basic types of input/output devices:
- Human I/O devices: Like keyboard, mouse, touch-pad, screen, speaker. These devices enable humans to interact with the machine.
- Memory I/O devices: Like Pen-drives and CD ROMs. Devices that work as I/O device but uses memory operations.
- Sensor and Actuators: Sensors being the input device, Actuators (A device that create motion with supply of energy) being the output device. Sensor can be temperature sensor in an Air Conditioner. Actuators are in motors.
Software Components Of a Computer
A set of programs used by the computer to function is what we know as a software. They are not physical in nature like hardware is. Storage of software is in the form of Binary. Which raises an important question:
What is Binary and How Computer Understands it?
I am pretty sure anyone who knows what binary is, thinks that it is a numerical system only having 2 numbers ‘1’ and ‘0’. But, other than people who are technically sound about computers, do not know the fact that Binary are actually an indication of voltage levels. The computer does not understand numbers directly. It is a machine. Binary 1 indicates that enough voltage is present for device to operate. Conversely, Binary 0 indicates enough voltage is not present. Binary 1 or 0 is an indication whether the device, in the gigantic processor, is on or not. That is binary is simply a representation of actual devices on in the system, known as ‘Digital Logic’.
A single binary number is a ‘Bit’ and set of 8 binary numbers is a ‘Byte’. This here is the reason why everything in the computer world is in the powers of 2 (1, 2, 4, 8, 16, 32, etc). The reason why only 8 bits make a byte is because during the early days of computing, memory cells were not cheap. A standard company could only afford 8 cells. Also, many applications at that time, confined between 0-255 bits. The main thing was 28 = 256 or 0 to 255. This then became a convention, that 8 bits would become a byte.
A specific single logic is a combination of binary numbers, indicating which devices are on or off. This defined an operation. As a result different digital logics, defined different operations. The definition of these operations is what we call as ‘Instructions’. Making of instructions was hence according to the devices in the processor. As a result, different processors had different instructions. These set of instructions are ‘Instruction Sets’.
Reduced Instruction set (in processor section), meant that the number of instructions defined for the processor were small and less complex compared to their CISC counterparts.
Instructions depend upon device architecture. As a result defining instructions happens during the designing phase of processors themselves. But we know, even with different processors, the applications that run on them can be same (I can run MS Word in i7 and i5 processors both). Despite the fact that they will have separate instruction sets. This is because of Machine Languages.
What are Machine/Programming Languages?
Programming languages is a way to inform the computer that which of its instructions to use to perform operation. It is a distinct grammatical vocabulary, that makes software, applications and algorithms. These specific grammatical vocabulary words are ‘Syntax’. When you write a program, it is a code that is written. A code is nothing but set of instructions. So in Programming you define a set of instructions for the task you want to perform. So basically machine languages had independence over different instruction sets and hence, we can write same program on different processors.
But we know that programming languages is nowhere near binary. And also that the computers understand Binary. Hence a conversion of code to binary needs doing. This is done by a component known as the ‘Compiler’. It is a special program, only responsible for one task, converting the code to binary instructions.
What is An Operating System (OS)?
The operating system is basically a mediator between the hardware and software components of the computer. It makes the two communicate. All the basic programs of computer, that is starting the computer, date and time, information of input output devices connected, etc is the part of the OS.
As the name itself suggests OS, manages the entire system’s working. It is like a manager at a department of an organisation. OS looks over the scheduling of operations, handles important errors, and also is responsible for assigning processor components to the codes. It also recognizes any I/O device newly connected. The OS basically directs which code to be done by what part of the processor in a nutshell.
You turn on your computer, the system first runs the OS (BIOS, Basic input output system, a part of OS) and starts the entire system. This is booting. Once you get the it started, you use your mouse (i/o device) to operate the system. You start a game, the game is a pre-made program that you paid for. As you start the game code of the game compiles. The compiled code of the game transfers to RAM. RAM gives it to CPU which then runs it according to the user.