Home Chemistry Physics HTML
Night More

Revise Now

GCE Subjects

Physics Chemistry CS Accounting

Coding Lessons

Learn HTML Learn SEO


What do you want
to do?

Contact us Support

more topic chapters

Hardware & Virtual Machines

There are 2 types of computers with different instruction sets depending on their functions and uses and structures

  • RISC / Reduced Instruction Set Computers
  • Uses the processors hardware such as use of registers and logic gates to execute instructions. So they have a hard-wired control unit

    It has a reduced simple instruction set as it handles very simple instructions

    Executes very simple and reduced instruction which takes one clock cycle to execute

    Uses mainly the registers to store data

    Uses Fewer addressing modes and fixed length instructions

    Supports pipelining which we will discuss later

  • CISC / Complex Intstruction Set Computer
  • Mainly uses coding and software to execute instructions so they have a microprogrammed control unit

    Uses a large instruction set as it handles very large complex instruction sets

    Each instruction will take many clock cycles

    Has more addressing modes

    Uses Less registers and mainly the memory

    Harder to pipeline


    The idea of pipelining is to make more efficient and faster way to execute instructions. Each instruction can be broken down to five steps:

    1. Instruction Fetch

    2. Decode

    3. Operand Fetch

    4. Execute

    5. Write Back

    In pipelining, each step is handled by a separate unit within the processor. So multiple steps could be done simultaneously. For this reason, pipelining is a form of instruction level parallelism

    Make note that a single instruction is divided into separate steps and handled by different units.

    We will discuss an example now:

    Note the image is a 6 stage pipelining system. You only are required to know the 5 stage one

    So for the first clock cycle, one step of the 1st instruction is processed. Then in the next cycle, the 2nd step of the 1st instuction is processed and the 1st step of the 2nd instruction is processed

    In another way, for each clock cycle, there are many parts of different instructions processed. It is important you understand the basics of this table above and how it increases the speed of the processor. Alternatively, there are 5 units proccesing each step, the speed is 5 times faster so if a processing of instruction with no pipelining is 0.1 then with pipelining it is 0.02sec. This is an average as there are 5 instructions completed every 0.1 so we assume it takes 0.02 but no need to go that in depth

    Limitation of Pipelining

    The main problem is that previous instructions may have to be fully completed for the current instruction to be executed

    For example:


    So this shows the first instruction must be completed to give the value for the 2nd instruction. Usually, this could be improved by changing the order of the instruction to make it more efficient

    Note that this problem is called data dependency and cause bubbles or holes to form in registers called stalling until the previous instruction is fully completed

    Another big problem is when there are interrupts generated by the CPU. In this case, the contents of the first 3 clock cycles are erased to load the base address of the ISR which can cause disruptions. If there many interrupts, there must be ways to avoid this...

    Computer Architecture

    This will discuss the types of processors:

  • SISD
  • Single Instruction Single Data Stream

    A processor that handles a single instruction at a time and fetches a single stream of data from the memory

    There is only a single unit or core. This is usually used for embedded systems such as washing machine where the instructions are simple

  • SIMD
  • Single Instruction Multiple Data Stream

    Has a single instruction that requires multiple data. For example, in vector and graphic processing, we need to collect data from different pixels to execute the instruction

    It has a single processor that is divided into many units, called cores but a different type of core. These cores are usually used in graphics GPU card where there can be more than 1000s of them

  • MISD
  • Multiple Instruction Single Data Stream

    There are many instructions applied to the data. There are no practical examples of these. The only one which is close is a video encoder that processes the data each time it processes the video

  • MIMD
  • Multiple Instruction Multiple Data Streams

    The Processor has many cores that can execute each instruction separately. Each Core has its own control unit

    Common examples are the intel processors in your laptops and supercomputers

    Massively parallel Computers

    A system in which the computers are linked towards performing a specific task. It is similar to a MIMD processor, but the cores are instead separate computers

    The main problem associated with Massively parallel computers is that a lot of wiring is required. Also, it will take a lot of space and it is very costly. There might be some delay when communicating between computers. The program must also be divided into many sections so that each computer can handle them and send signals between computers

    Virtual Machines

    These are not actual hardware systems but software systems. A virtual machine is a system that is able to host a different environment. The Virtual machine is hosted by the host OS. This is the original OS of your system. The Virtual machine is able to host many other guest OS that runs within the host OS. See the diagram below.

    Virtual machines diagram

    The software between the host OS and the Virtual Machine Software handles communications and signals between the host OS and the virtual machine.

    The Guest OS handles any request between the guest software ( software to be tested ) and the virtual machine. It also handles any virtual hardware

    The Host OS handles any request between the virtual machine software and the actual hardware of the computer. Note that there is a specific path of data flow.

    A very good example is JAVA. JAVA is a virtual machine that emulates a new environment. For you to run Minecraft ( testing software ) you need to run and have JAVA installed

    Advantages & Disadvantages of Virtual Machines

    1. It is efficient for testing software in different OS rather than having a separate computer with that OS so it saves cost

    2. Many Softwares can run in parallel so a different system can be running while another guest software is not working

    3. However, there are more lines of code due to the emulation code

    4. As many guest Operating Systems run in parallel, it reduces performances and slows them down.

    5. Sometimes the virtual hardware may not be compatible with the actual hardware

    You may have realized by now that Tlauncher, Myboy are common examples of virtual hardware software.


    These are things you might like. Clicking these ads can help us improve our free services in the future...

    Quick Recap
    Check your Knowledge with a Quick Recap

    Try out