Monthly Archives: June 2017

Computer Input Devices

Once upon a time, the only way one could get data into computer memory, was through a keyboard. However, with the speed of technological advancement, newer and faster devices have been created. This helps one get loads of information transferred into the computer, without having to do much manual work.

What are Computer Input Devices?

These devices are hardware components that help you transfer information into a computer. Without them, your computer will be more or less like a television set. So an input device is any peripheral device that helps feed data and control signals to a computer. These devices can be broadly classified, according to the modality of input, discrete/continuous input, and the degrees of freedom involved. Some are classified according to their pointing ability, as follows:

  • Direct input devices, where the pointing is done directly in the space where the cursor is seen. Examples are touchscreen pointers and light pens.
  • Indirect pointer examples are a trackball or mouse.
  • Pointers for touchscreen, where the positional information is absolute or relative, when the mouse is lifted and positioned according to need.

List of Input Devices

These devices help in manipulating data on a computer. The following are some of the most commonly used input devices.

Keyboard: The oldest and most widely-used computer input device is the keyboard. It is available with desktop computers, laptops, etc. The computer keyboard contains all the alphabetical and numerical keys for input of data and commands. The keyboard is generally connected to the computer with a wire, but nowadays, wireless keyboards are also very common.

Mouse: The small hand-held computer device that helps make selection and navigation of the screen easy, is the mouse. The mouse displays a cursor on the screen that serves as a guide for opening files and folders, as well as making selections. The mouse, like the keyboard, is either connected with the computer through a wire, or has a wireless connection.

Stylus: The tablet uses a pen-like computer input device known as a stylus. This helps one write on tablets or touchscreens like a pen. Some tablets and styluses have buttons, that make their usage as a mouse possible. Many latest tablet models allow the user to use their fingers, instead of a stylus.

Joysticks: If you are an ardent fan of gaming, then you may be aware of what a joystick is. This is a movable stick with a button or two, that helps one control the movements of characters in a game. Many latest joystick models come with different buttons to help you make complex movements, with just a push of your fingers.

Scanners: Scanners help you make virtual photocopies of your documents or even a photograph. You can copy a digital image of the document you wish to copy, and save it on the computer, or take prints. This copy can be edited by running a graphics program.

Headsets: Headset devices have an earphone, as well as a microphone. This helps you record your voice, dictate data, or even send commands to the computer. Some headsets help you keep your hands free for working on different tasks. You can even add voice recognition software, so that only your voice will be accepted by the computer to dictate commands.


There are different devices that help you share information with your computer in different formats. The following are a few examples that help you digitize images and videos, from other devices, into your computer.

Video Input Devices

  • Web cam
  • Image scanner
  • Digital camera
  • Barcode reader
  • Fingerprint scanner
  • 3D scanner
  • Laser rangefinder
  • Video capture hardware
  • MIDI Keyboard

Medical Imaging Devices

  • Magnetic Resonance Imaging (MRI)
  • Computerized Tomography (CAT Scan)
  • Positron emission tomography
  • Ultrasonography

These are some of the devices that help you store data from other devices into your computer. Technology continues to come up with more advanced modes of data transfer, as computing becomes an integral part of our lives.

Difference between Software and Computer Hardware

While computer jargon can be hard to get to grips with, two terms that pop up extremely often in any computer discussion are the words “software” and “hardware”.

But what is the difference about computer software and hardware?

These two terms refer to the most fundamental parts of computer systems. Both of them are vital for any computer to operate, and they are also dependent on one another.

Definition of Computer Hardware and Software

When we talk about computer hardware, we mean the actual components of your computer. Such things as the computer’s motherboard, its CPU, the video card, the keyboard and mouse, these are all “hardware”.

The difference between computer software and hardware is that software refers to the coding and various programs that you have on your computer. These include your operating system (Windows etc), media players, Photoshop etc.


Computer hardware is usually multi-purpose in that it is able to perform lots of different tasks. For instance, your computer monitor doesn’t just display images on screen; it also shows videos, widgets and text. One difference between computer software and hardware is that software is normally only designed to perform one task.

Your media player for example, is only for accessing media like movies and songs. It cannot edit photos or browse the web. The only real exception to this is the operating system itself, which is a user-friendly interface designed to let you access all the other bits of software and files stored on your PC.

System Requirements

Computer software can only function on a computer if that computer meets the system requirements needed to run it properly. Such requirements include hard drive requirements, a minimum processor speed, RAM requirements and a supported operating system.

Occasionally a piece of software will have additional requirements, and these will normally be printed on the box when you purchase it, or else it will be displayed on the website you have downloaded it from.

Bit Rate 64 Bit vs 32 Bit

The transition in computers from operating systems of 32-bits to operating systems of 64-bits has become a recent issue with hardware and software. The difference between the two kinds of operating system are that 64-bit systems can access more RAM and are able to process much bigger data chunks than the old 32-bit systems.

In order to run software that is 64-bit, it is necessary to have a 64-bit CPU along with a motherboard that is compatible with the software. Because there are many computers that don’’t have the hardware necessary to run the 64-bit versions of software, many manufacturers release both 64-bit and 32-bit versions of their programs.


Both computer software and computer hardware are being constantly developed, with superior components and programs being released all the time. The development of hardware is usually focused on creating faster and more compact components through the use of new technology.

Meanwhile, developers of software are constantly striving to keep pace with these new advancements in hardware by building smoother running, better looking and more comprehensive programs. The result of this is that computer users are constantly being required to update their hardware to be able to run the latest pieces of software.

What is the Processor Cache

Main memory is a computer device with the slowest access rate. If the CPU needs a data item, a request is sent to the main memory via a memory bus. The main memory then searches for the data item and sends it back to the CPU. Lot of time is wasted in this entire cycle. What if the data item were stored somewhere close to the CPU? The working of processor cache is based on a similar concept. To understand the concept of cache memory, we will take an example of a library throughout this article.

Suppose, we have a library, with a single librarian. If a person comes and asks for Harry Potter Part I, then the librarian goes to the bookshelf and retrieves the book and gives it to the person. When the person is done with the book, it is restored to the shelf. If, any other person comes and asks for the same book, the cycle is repeated again. This is exactly how a system works without a cache memory.

Why do we need processor cache?
Now, let’s see what happens in the presence of a cache memory. In our library example, let’s consider a drawer at the librarian’s desk as a cache. The procedure remains the same, when the first person places a request for a book. But, when the book is returned, the librarian does not store it on the shelf, instead keeps it in her drawer. Now, when the next person comes and places a request for the same book, the librarian simply has to retrieve it from her drawer. In a similar way, cache memory stores the data items that are frequently required by the processor. Thus, every time, the data is requested, processor simply looks in the cache and retrieves it, saving a long trip to the main memory. This tremendously increases the processor speed.

Does cache memory store only the frequently used data items?
No, cache memory is a smart piece of memory that also looks for the data that is likely to be requested in the near future. Continuing with our library example; when the person requests for Harry Potter Part I, our intelligent librarian also fetches Harry Potter Part II along with it. Now, when the person is done with the first book, it is very likely that he might ask for the second part. And when he does, librarian has it ready in her drawer. Similarly, when the cache memory fetches data items from the main memory, it also fetches the items that are located at the addresses near the requested items. These adjacently located chunks of data which are transferred to the cache is called the cache line.

Two-level processor cache
Most hard drives and other components make use of a single-level cache. But a processor cache is a two-level cache, in which level 1 cache (L1) is smaller and faster; while level 2 cache (L2) is slightly slower, but anytime faster than the main memory. L1 cache is divided into two parts viz., instruction cache and data cache. Instruction cache stores the set of instructions that are required by the CPU for computing; while the data cache stores the values that are required for current execution. L2 cache is responsible for loading the data from the main memory. Again, coming back to our library example, consider a librarian’s drawer as L1 cache. On any busy day, when the demand for books is high and the librarian has already stored many books in her drawer, chances are that it might get full pretty quickly. This is where L2 cache comes into the picture. Consider a bookcase near the librarian’s desk as L2 cache. When the drawer fills up, the librarian starts storing the books in the bookcase. Now, whenever there is a demand for some popular book, the librarian first looks in her drawer; if the book is not found there, she searches it in the bookcase. Similarly, when L1 cache is full, data is stored in L2 cache. The processor first looks for the data in L1 cache, and if it is not found, then only L2 is searched. If the data is not found in L2 as well, a trip to main memory is inevitable.

Is implementing more cache a good idea?
Yes and No. Implementing more cache will let you fetch data quickly, only in the cases, when the data is available in either L1 or L2. Coming back to our library example. If a person requests a popular book, which is not stored in the librarian’s drawer or the bookcase; she first looks for it in the drawer and then in the bookcase. This way, lot of time is wasted before she finally retrieves it from the bookshelf. Similarly, the processor checks first in L1 and then, in L2, and when the item is not found in either cache, then only sends a request to the main memory. As you must have realized, lot of processor time is wasted, in looking for the item in the two cache memories. When the processor finds the required data item in any of the cache memories, ‘cache hit’ is said to have occurred; on other occasions, a ‘cache miss’ takes place. Data items are periodically updated and replaced using various algorithms to maximize the instances of cache hit.

One might think that if cache memory is so fast, why not implement it large enough so as to store entire data of the main memory in it? The reason, is that, although cache memory offers fast access, the speed comes at a great expense. Hence, proper utilization of the available cache memory is must.

Computer Hardware Engineering

In simple words, computer hardware engineers are people, who take care of all computer hardware maintenance, they are assigned to. To enter this field, one obligatorily needs to have strong technical knowledge of computers. A software computer engineer may not know much about computer hardware, but a computer hardware engineer is well aware of how software works. This knowledge helps him solve hardware problems more efficiently and responsively.

Professionals in this field are responsible for carrying out research, contriving, participating in the development, and examining the installation, troubleshooting, and maintenance of all computer hardware. They are directly related to the care and maintenance of computer chips, motherboards, network components and devices, servers, databases, keyboards, modems, printers, scanners, and many more computer peripherals. The speedy advancements in information technology are predominately the outcomes of hardworking efforts made by these professionals.

Due to a rapid change in several technologies, computer hardware engineers are required to update their knowledge base accordingly, so that they can provide every possible service to their clients and customers. In this regards, they are offered technical trainings by companies which they work in. Companies also allow continuing technical education to upgrade their knowledge and skills. This all is done because the company needs their engineers to use their skills and provide maximum services, which may in turn have a good effect on other employees’ performance in the company.

The number of these engineers working at present is lower in comparison to other professionals in the IT field. According to a survey conducted in 2002, they collectively hold approximately 74,000 positions. Out of them, 40% engineers were operating in computer and electronics facilities, whereas 1/4th were providing their services in ‘scientific’ and ‘technical service’ companies that were associated to the IT industry. Others were catering to technical needs of several telecommunication giants. Nowadays, computer hardware engineers might have to pass through tough competition, as the number of degrees granted in the information technology sector has increased enormously. The job advancements principally depend on the years of experience in the same field along with required qualifications. If you desire to get into a computer hardware career, you are required to at least own a bachelor’s degree in the engineering field.

A prospective hardware engineer should also have a liking towards work and learning new technologies. Computer hardware engineers should have the capability of troubleshooting and finding potential problems as soon as possible to preclude severe loss in deliverables. Their working time is never fixed and may change according to the requirements of their services. They may be called upon by their respective employers in case of a technical problem in the server or database, which would be causing a problem to the company employees in carrying out their duties. Hardware engineers are required to have perceivable oral and acceptable written communication skills, to communicate with affected users, so as to interpret what issues they actually face. The main attraction in this profession is the pay scale. Referring to the salary survey stats of 2006, these engineers earned a handsome salary which was around $70,000 to $110,000 per annum.

With a rapid increase in the use of information technology among several industries around the globe, there is certainly a high possibility of an increase in the job opportunities of computer hardware engineers.