Unit 1 Merged
Unit 1 Merged
Computer
• A computer is a device that can perform calculations and operations based on
instructions from a software or hardware program. It can accept data, process it, and
then produce outputs. Modern computers can be divided roughly into four general
categories:
• Embedded computers are integrated into a larger device or system in order to
automatically monitor and control a physical process or environment. They are used for a
specific purpose rather than for general processing tasks. Typical applications include
industrial and home automation, appliances, telecommunication products, and vehicles.
• Personal computers have achieved widespread use in homes, educational institutions,
and business and engineering office settings, primarily for dedicated individual use. They
support a variety of applications such as general computation, document preparation,
computer-aided design, audiovisual entertainment, interpersonal communication, and
Internet browsing.
• Servers and Enterprise systems are large computers that are meant to be shared by a
potentially large number of users who access them from some form of personal
computer over a public or private network. Such computers may host large databases
and provide information processing for a government agency or a commercial
organization.
• Supercomputers normally offer the highest performance. They are the most expensive
and physically the largest category of computers. Supercomputers are used for the highly
demanding computations needed in weather forecasting, engineering design and
simulation, and scientific work. They have a high cost.
Introduction to Digital Computer
• A computer consists of five functionally independent main parts:
input, memory, arithmetic and logic, output, and control unit, as
shown in Figure 1.
Memory
Arithmetic
Input and logic
Interconnection
network
Output Control
I/O Processor
Figure 1
Input Unit
• Computers accept coded information
through input units. The most common
input device is the keyboard. Whenever
a key is pressed, the corresponding
letter or digit is automatically
translated into its corresponding binary
code and transmitted to the processor.
• Many other kinds of input devices for
human-computer interaction are
available, including the touchpad,
mouse, joystick, and trackball.
Microphones can be used to capture
audio input which is then sampled and
converted into digital codes for storage
and processing. Similarly, cameras can
be used to capture video input.
Memory Unit
• The function of the memory unit is to store programs and data. There are
two classes of storage, called primary and secondary.
• Primary Memory
• Primary memory, also called main memory, is a fast memory that operates at
electronic speeds. Programs must be stored in this memory while they are being
executed.
• The memory consists of a large number of semiconductor storage cells, each capable
of storing one bit of information.
• Instructions and data can be written into or read from the memory under the control
of the processor.
• A memory in which any location can be accessed in a short and fixed amount of time
after specifying its address is called a random-access memory (RAM). The time
required to access one word (2 bytes) is called the memory access time. This time is
independent of the location of the word being accessed. It typically ranges from a
few nanoseconds (ns) to about 100 ns for current RAM units.
Memory Unit Contd…
• Cache Memory
• As an adjunct to the main memory, a smaller, faster RAM unit, called a cache,
is used to hold sections of a program that are currently being executed, along
with any associated data. The cache is tightly coupled with the processor and
is usually contained on the same integrated-circuit chip. The purpose of the
cache is to facilitate high instruction execution rates.
• At the start of program execution, the cache is empty. All program
instructions and any required data are stored in the main memory. As
execution proceeds, instructions are fetched into the processor chip, and a
copy of each is placed in the cache. When the execution of an instruction
requires data located in the main memory, the data are fetched and copies
are also placed in the cache.
Memory Unit Contd…
• Secondary Storage
• Although primary memory is essential, it tends to be expensive and does not
retain information when power is turned off. Thus additional, less expensive,
permanent secondary storage is used when large amounts of data and many
programs have to be stored, particularly for information that is accessed
infrequently.
• Access times for secondary storage are longer than for primary memory. A
wide selection of secondary storage devices is available, including magnetic
disks, optical disks (DVD and CD), and flash memory devices.
Arithmetic and Logic Unit
• Computer operations are executed in the arithmetic and logic unit
(ALU) of the processor. Any arithmetic or logic operation, such as
addition, subtraction, multiplication, division, or comparison of
numbers, is initiated by bringing the required operands (quantity on
which an operation is to be done) into the processor, where the
operation is performed by the ALU. For example, if two numbers
located in the memory are to be added, they are brought into the
processor, and the addition is carried out by the ALU.
• When operands are brought into the processor, they are stored in
high-speed storage elements called registers. Each register can store
one word of data. Access times to registers are even shorter than
access times to the cache unit on the processor chip.
Output Unit
• The output unit is the counterpart of the input unit. Its function is to
send processed results to the outside world. A familiar example of
such a device is a printer.
Control Unit
• The memory, arithmetic and logic, and I/O units store and process
information and perform input and output operations. The operation
of these units must be coordinated in some way. This is the
responsibility of the control unit. The control unit is effectively the
nerve center that sends control signals to other units and senses their
states.
• Data transfers between the processor and the memory are also
managed by the control unit through timing signals.
Bus Structure
• A bus is a collection of electrical pathways or conductors that carry data,
addresses, and control signals between different hardware components.
• The bus shown in Figure 2 is a simple structure that implements the
interconnection network. Only one source/destination pair of units can use this
bus to transfer data at any one time.
Processor Memory
Bus
Example-3
Decimal to Binary Number
Example-1
Example-2
Example-3
Example-1
Example-2
Example-1
Example-2
Example-1
Example-1
Example-1
Example-1
Example-1
Example-1
Example-1
Example-1
Complements
• Complements are used in digital computers for simplifying the
subtraction operation and for logical manipulation.
• There are two types of complements for each base r system: the r ’s
complement and the (r — l)’s complement.
• When the value of the base r is substituted in the name, the two
types are referred to as the 2’s and l’s complement for binary
numbers and the 10’s and 9’s complement for decimal numbers.
(r — l)’s Complement
• Given a number N in base r having n digits, the (r — l)’s complement
of N is defined as (rn — 1) — N.
• 9’s Complement
• For decimal numbers r = 10 and r — 1 = 9, so the 9’s complement of N is (10n
— 1) — N. Now, 10n represents a number that consists of a single 1 followed
by n 0’s. 10n — 1 is a number represented by n 9’s.
• For example, with n = 4 we have 104 = 10000 and 104 — 1 = 9999. It follows
that the 9’s complement of a decimal number is obtained by subtracting each
digit from 9.
• For example, the 9’s complement of 546700 is 999999 — 546700 = 453299
and the 9’s complement of 12389 is 99999 — 12389 = 87610.
1’s Complement
• For binary numbers, r = 2 and r — 1 = 1, so the 1’s complement of N is (2n
—1) — N. Again, 2n is represented by a binary number that consists of a 1
followed by n 0’s. 2n — 1 is a binary number represented by n 1’s. For
example, with n = 4, we have 24 = (10000)2 and 24 — 1 = (1111)2. Thus the
1’s complement of a binary number is obtained by subtracting each digit
from 1.
• However, the subtraction of a binary digit from 1 causes the bit to change
from 0 to 1 or from 1 to 0. Therefore, the 1’s complement of a binary
number is formed by changing 1’s into 0’s and 0’s into 1’s. For example, the
1’s complement of 1011001 is 0100110 and the 1’s complement of
0001111 is 1110000.
• The (r — l)’s complement of octal or hexadecimal numbers are obtained by
subtracting each digit from 7 or F (decimal 15) respectively.
(r ’s) Complement
• 10’s Complement
• The r’s complement of an n -digit number N in base r is defined as rn - N for N
≠ 0 and 0 for N = 0. Comparing with the (r - 1)’s complement, we note that the
r’s complement is obtained by adding 1 to the (r - 1)’s complement since rn - N
= [(rn - 1) - N ] + 1. Thus the 10’s complement of the decimal 2389 is 7610 + 1
= 7611 and is obtained by adding 1 to the 9’s complement value.
• The 2’s complement of binary 101100 is 010011 + 1 = 010100 and is obtained
by adding 1 to the l’s complement value.
2’s Complement
• Since 10n is a number represented by a 1 followed by n 0’s, then 10n - N,
which is the 10’s complement of N, can be formed also be leaving all least
significant 0’s unchanged, subtracting the first nonzero least significant
digit from 10, and then subtracting all higher significant digits from 9. The
10’s complement of 246700 is 753300 and is obtained by leaving the two
zeros unchanged, subtracting 7 from 10, and subtracting the other three
digits from 9. Similarly, the 2’s complement can be formed by leaving all
least significant 0’s and the first 1 unchanged, and then replacing 1’s by 0’s
and 0’s by 1’s in all other higher, significant bits.
• The 2’s complement of 1101100 is 0010100 and is obtained by leaving the
two low-order 0’s and the first 1 unchanged, and then replacing 1’s by 0’s
and 0’s by 1’s in the other four most significant bits.
Subtraction of Unsigned Numbers
• The subtraction of two n -digit unsigned numbers M N(N 0) in base r
can be done as follows:
1. Add the minuend M to the r’s complement of the subtrahend N. This
performs M + (rn - N) = M - N + rn.
2. If M ≥ N, the sum will produce an end carry rn which is discarded,
and what is left is the result M - N.
3. If M < N, the sum does not produce an end carry and is equal to rn -
(N - M), which is the r’s complement of (N - M). To obtain the answer in
a familiar form, take the r’s complement of the sum and place a
negative sign in front.
Example
• Consider, for example, the subtraction 72532 - 13250 = 59282. The
10’s complement of 13250 is 86750. Therefore:
Figure 4
Register Transfer
• Information transfer from one register to another is designated in
symbolic form by means of a replacement operator.
• is the symbol for the 1’s complement of R2. Adding 1 to the 1’s
complement produces the 2’s complement. Adding the contents of R1
to the 2’s complement of R2 is equivalent to R1 - R2.
Summary of Arithmetic Microoperations
Logic Microoperations
• Logic microoperations specify binary operations for strings of bits
stored in registers. These operations consider each bit of the register
separately and treat them as binary variables. For example, the
exclusive-OR microoperation with the contents of two registers R1
and R2 is symbolized by the statement
Summary of Logic Operations
Shift Microoperations
• Shift microoperations are used for serial transfer of data.
• The contents of a register can be shifted to the left or the right.
• During a shift-left operation the serial input transfers a bit into the
rightmost position. During a shift-right operation the serial input
transfers a bit into the leftmost position.
• There are three types of shifts: logical, circular, and arithmetic.
logical shift
• A logical shift is one that transfers 0 through the serial input.
• For Example:
• are two microoperations that specify a 1-bit shift to the left of the
content of register R1 and a 1-bit shift to the right of the content of
register R2. The register symbol must be the same on both sides of
the arrow. The bit transferred to the end position through the serial
input is assumed to be 0 during a logical shift.
circular shift
• The circular shift (also known as a rotate operation) circulates the bits
of the register around the two ends without loss of information. This
is accomplished by connecting the serial output of the shift register to
its serial input.
arithmetic shift
• An arithmetic shift is a microoperation that shifts a signed binary
number to the left or right. An arithmetic shift-left multiplies a signed
binary number by 2. An arithmetic shift-right divides the number by
2.
• The leftmost bit in a register holds the sign bit, and the remaining bits
hold the number. The sign bit is 0 for positive and 1 for negative.
Negative numbers are in 2’s complement form.
Summary of Shift Microoperations
Arithmetic Logic Shift Unit
Memory
• Memory is an essential component of a microcomputer system. It
stores binary instructions and data for the microprocessor. There are
various types of memory, and they can be classified into two groups:
primary (or main) memory and storage memory.
Classification of Memory
ROM (Read Only Memory)
The first classification of memory is ROM. The data in this memory can
only be read, no writing is allowed. It is used to store permanent
programs. It is a nonvolatile type of memory.
The classification of ROM memory is as follows:
It required the power to retain the It does not require power to retain
data in primary memory. the data in secondary memory.
SRAM DRAM
It is a Static Random-Access Memory. It is a Dynamic Random Access Memory.
The access time of SRAM is slow. The access time of DRAM is high.
It uses flip-flops to store each bit of information. It uses a capacitor to store each bit of information.
It does not require periodic refreshing to preserve It requires periodically refreshing to preserve the
the information. information.
It uses in cache memory. It is used in the main memory.
The cost of SRAM is expensive. The cost of DRAM is less expensive.
It has a complex structure. Its structure is simple.
It requires low power consumption. It requires more power consumption.
DDR RAM
• DDR stands for double data rate
• It means the RAM can transfer data two times per clock cycle.
• DDR RAM ran two data transfers per clock cycle, DDR2 RAM can
produce four transfers per cycle instead. DDR3 takes this even further,
as it can produce eight transfers for every clock cycle.
• DDR4 runs at an even lower voltage than DDR3, at just 1.2V. It's also
capable of more operations per second, ranging from 1,600MT/s to
3,200MT/s.
What is Flash Memory?
• Flash memory is a non-volatile memory storage device that can be
electrically erased and reprogrammed.
• Non-volatile memory means that the memory device will retain the
stored data even when the system is powered off.
• Because Flash memory needs to be erased before it can be
programmed, this helps expedite the process and allows for faster
programming.
• There are several different types of Flash memory, but the most
commonly used include NOR and NAND Flash.
NOR Flash vs NAND Flash
Unit II:
Control Unit
Design
Stored Program Organization
• Memory unit with 4096 words require 12 bits to specify an address since 212 = 4096.
• To store each instruction code in one 16-bit memory word, four bits are allotted for the operation code
(abbreviated opcode) to specify one out of 16 possible operations, and 12 bits to specify the address of an
operand.
Direct and Indirect Address
Instruction Cycle
• A program consists of a sequence of instructions.
• The program is executed in the computer by going through a cycle for each instruction.
• Each instruction cycle consists of the following phases:
1. Fetch an instruction from memory.
2. Decode the instruction.
3. Read the effective address from memory if the instruction has an indirect address.
4. Execute the instruction.
• Upon the completion of step 4, the control goes back to step 1 to fetch, decode, and execute the
next instruction. This process continues indefinitely unless a HALT instruction is encountered.
Control Unit Design
Instruction Cycle
• Fetch and decode
• Initially,the program counter PC is loaded with the address of the firstinstruction
in the program. The sequence counter SC is cleared to 0, providing a decoded timing signal
To.
• After each clock pulse, SC is incremented by one, so that the timing signals go through a
sequence T0, T1, T2, and so on.
• The microoperations for the fetch and decode phases can be specified by the following register
transfer statements.
Control Unit Design
• InstructionFetch, decodeand
execution.
CISC RISC
Emphasis on hardware Emphasis on software
Includes multi-clock Single-clock,
complex instructions reduced instruction only
Memory-to-memory: Register to register:
”LOAD” and ”STORE” ”LOAD” and ”STORE”
incorporated in instructions are independent instructions
https://cs.stanford.edu/people/eroberts/courses/soco/projects/risc/risccisc/
Control Unit Design
Computer Instructions
• The computer instruction format consists of three fields:
• a 1-bit field for indirect addressing symbolized by I,
• a 4-bit operation code (opcode), and
• an 11-bit address field.
Computer Instructions
• The ADD instruction adds the content of the operand found in the effective address to the content
of AC.
• The BRANCH instruction causes a branch to the effective address if the operand in AC is
negative. The program proceeds with the next consecutive instruction if AC is not negative. The
AC is negative if its sign bit (the bit in the leftmost position of the register) is a 1.
• The STORE instruction transfers the content of AC into the memory word specified by the
effective address.
• The EXCHANGE instruction swaps the data between AC and the memory word specified by the
effective address.
Microprogramming
• No more than three microoperations can be chosen for a microinstruction, one from each field.
• If fewer than three microoperations are used, one or more of the fields will use the binary code 000 for no operation.
• All transfer-type microoperations symbols use five letters. The first two letters designate the source register, the third
letter is always a T, and the last two letters designate the destination register. For example, the microoperation that
specifies the transfer AC ← DR (F1=100) has the symbol DRTAC, which stands for a transfer from DR to AC.
Control Unit Design
Microprogramming
• Symbols and Binary Code for Microinstruction Fields:
• A microinstruction can specify two simultaneous microoperations. For example,
• We will use the symbols U, I, S, and Z for the four status bits when we write microprograms in symbolic
form.
• The BR (branch) field consists of two bits. It is used, in conjunction with the address field AD, to choose the
address of the next microinstruction.
Control Unit Design
Microprogramming
• When BR=00, the control performs a jump (JMP) operation (which is similar to a branch), and when
BR=01, it performs a call to subroutine (CALL) operation. The two operations are identical except that
a call microinstruction stores the return address in the subroutine register SBR.
• The jump and call operations depend on the value of the CD field. If the status bit condition specified in
the CD field is equal to 1, the next address in the AD field is transferred to the control address register
CAR. Otherwise, CAR is incremented by 1.
• The return from subroutine is accomplished with a BR field equal to 10. This causes the transfer of the
return address from SBR to CAR.
• The mapping from opcode bits (4-bits) to the address for CAR is done when BR field is equal to 11.
Control Unit Design
Nano programming (or microprogramming)
0000000
Routines are relatively independent of the
remaining code. They are often used to execute
Opcode routines
repetitive tasks, such as saving a file. Routines
make programs shorter and easier to write and read.
Subroutines are programs that are used by other
routines to accomplish a particular task. A 128 words in
subroutine can be called from any point within the the control
main body of the micro-program. memory
Total 32 routines.
Each routine is equal to 4 words.
16->opcode routines Sub-routines
16->sub-routines
1111111
Control Unit Design
Microprogramming
• Fetch Routine
• The microinstructions needed for the fetch routine are:
Control Unit Design
Microprogramming
• Fetch Routine
• The address of the instruction is transferred from PC to AR.
• The instruction is read from memory into DR.
• The address part is transferred to AR and then control is transferred to one of 16 routines by
mapping the operation code part of the instruction from DR into CAR.
Control Unit Design
Microprogramming
• Fetch Routine
• The symbolic microprogram for the fetch routine:
LOAD A AC = M[A]
ADD B AC = AC + M[B]
STORE T M[T] = AC
LOAD C AC = M[C]
ADD D AC = AC + M[D]
MUL T AC = AC * M[T]
STORE X M[X] = AC
Two Address Instructions
MUL R1, R2 R1 = R1 * R2
MOV X, R1 M[X] = R1
Three Address Instructions
Execute cycle Processor gets data from memory or I/O devices and
perform specific operation
Time
A Typical Fetch Cycle
• Execute Operation
• After the instruction is being decoded, execution
begins.
• If the operand is in the GPR (one byte instruction),
then execution is immediately performed and the time
taken is one clock cycle.
• If the instruction contains data or memory address
(two or three byte instruction).
• Processor performs read operation and gets data from
the memory.
• In some instruction write operation is performed.
Instruction Cycle
Instruction Cycle Steps
Computer Registers
• A register is a very small amount of very fast memory that is built
into the CPU (central processing unit) in order to speed up its
operations by providing quick access to commonly used values.
• Small, permanent storage locations within the CPU used for a
particular purpose
• Manipulated directly by the Control Unit
• Wired for specific function
• Size in bits or bytes (not MB like memory)
• Can hold data, an address or an instruction
• Scratchpad for currently executing program
• Holds data needed quickly or frequently
• Stores information about status of CPU and currently executing program
• Address of next program instruction
• Registers are normally measured by the number of bits they can hold.
• Registers are used to store data temporarily during the execution of a
program.
• Some of the registers are accessible to the user through instructions.
• Data and instructions must be put into the system. So we need registers
for this.
General Purpose Registers:
• There are four General Purpose Registers named as follows:
• 1. AX (Accumulator Register): is commonly used for arithmetic &
logic data transfer.
• 2. BX (Base Address Register): is used to save the address of memory
location from where data is being read from or written to.
• 3. CX (Count Register): keeps record of iterations while a LOOP
instruction is running.
• 4. DX (Data Register): holds data of the instruction currently being
executed.
Pointer Registers:
• There are three pointer registers that are used to point towards a
particular memory address.
• BP (Base Pointer): points to the base element of the stack.
• SP (Stack Pointer): always points to the top element of the stack.
• IP (Instruction Pointer): stores the address of the next instruction to be
executed.
• Index Registers: An index register is a crucial component in a computer's
CPU that facilitates efficient data management and quick access to memory
locations. By holding offsets, it streamlines the process of calculating
addresses, enhancing program execution.
• Most commonly, an index register holds the current offset of a memory
location, with another register holding the base address, so the combination
of the two registers creates a completed memory address.
• There are two sets of index registers:
• SI (Source Index): used as source index for string operations.
• DI (Destination Index): used as destination index for string operations.
• Segment Registers: Segments are specific areas for containing data,
code and stack.
• There are three main segments:
• Code Segment: It contains all the instructions to be executed. CS
register stores the starting address of the code segment.
• Data Segment: It contains data, constants and work areas. DS register
stores the starting address of the data segment.
• Stack Segment: It contains data and return addresses of procedures or
subroutines. The Stack Segment register or SS register stores the
starting address of the stack.
Flag Registers:
• The FLAG register is the status register that contains the current state of a
CPU.
• The common flag bits are:
• Overflow Flag (OF)
• Direction Flag (DF)
• Interrupt Flag (IF)
• Trap Flag (TF)
• Sign Flag (SF)
• Auxiliary Carry Flag (AF)
• Parity Flag (PF)
• Carry Flag (CF)
• Zero Flag (ZF)
• Overflow Flag: The overflow flag is set when the arithmetic result is too
large to fit in the allocated space. the overflow flag (sometimes called the V
flag) is usually a single bit in a system status register used to indicate when
an arithmetic overflow has occurred in an operation, indicating that the
signed two's-complement result would not fit in the number of bits used for
the result.
• Direction Flag: The direction flag (DF) is a CPU flag that controls the
direction of string processing in CPUs.
• If directional flag is set (1), then access the string data from higher memory
location towards lower memory location. If directional flag is reset (0), then
access the string data from lower memory location towards higher memory
location.
• Interrupt Flag: This flag is for interrupts. If interrupt flag is set (1), the
microprocessor will recognize interrupt requests from the peripherals. If
interrupt flag is reset (0), the microprocessor will not recognize any interrupt
requests and will ignore them.
• Trap Flag: This flag is used for on-chip debugging. If trap flag is set (1),
the CPU automatically generates an internal interrupt after each instruction,
allowing a program to be inspected as it executes instruction by instruction.
If trap flag is reset (0), no debugging is performed.
• Flag Register
– 8 bit register – shows the status of the microprocessor before/after
an operation
– S (sign flag), Z (zero flag), AC (auxillary carry flag), P (parity flag) &
CY (carry flag)
D7 D6 D5 D4 D3 D2 D1 D0
S Z X AC X P X CY
– Sign Flag
• Used for indicating the sign of the data in the accumulator
• The sign flag is set if negative (1 – negative)
• The sign flag is reset if positive (0 –positive)
• Zero Flag
– Is set if result obtained after an operation is 0
10110011
+ 01001101
1
• Carry Flag 00000000
– Is set if there is a carry or borrow from arithmetic
operation
• Parity Flag
– Is set if parity is even
– Is cleared if parity is odd
LXI H, 2500 2500 is 16 bit data and is loaded into H-L pair
Register addressing mode
• Operand is one of the GPR or the accumulator.
• Opcode specifies the operation to be performed and
address of the registers.
• Operation takes place between registers.
• Example-
MOV A, B Move the content of the register B to register A
MOV A,M Move the content of the memory location whose address is
in H-L pair to the accumulator
HLT Halt
• Indirect Addressing Mode
• Using data in memory directly (without loading
first into a Microprocessor’s register) is called
Indirect Addressing.
• ARM: Operand will remain in the register until another value is loaded in
its place. More number of code lines. RAM used is more. It requires less
transistors so less hardware space therefore power consumption is less
• Intel x86 v/s ARM Intel x86:
• More emphasis on speed and performance than power
consumption.
• Is compatible with most of the operating systems like Windows 7,
Windows XP, LINUX, Android, Windows Vista, etc.. And these
consumes loads of power.
• Intel x86 is used in laptops, desktops and servers.
• ARM: Focuses mainly on low power consumption.
• It supports LINUX and Android.
• It is used in all smart phones, iPads tablets etc.
References(processor 86 and ARM)
• [1] Emily Blem and Jaikrishnan Menon A Detailed Analysis of Contemporary ARM and
x86 Architectures University of Wisconsin – Madison
• [2] Mjfern (December 21, 2012) The End of x86? An Update (Online) available from<
http://fernstrategy.com/2012/12/21/the-end-of-x86-an-update/ >[22nd February 2013]
• [3] TECH POWER UP (1st December 2011) The Move Away From x86 To ARM Processors
On The Desktop To Start Soon – Survey (Online) available from<
http://www.techpowerup.com/156056/The-Move-Away-From-x86-To-ARMProcessors-O
n-The-Desktop-To-Start-Soon-Survey.html> [22nd February 2013]
• [4] Rachel Courtland (May 2012) The Battle Between ARM and Intel Gets Real (Online)
available from<
http://spectrum.ieee.org/semiconductors/processors/the-battlebetween-arm-and-intel
-gets-real> [23rd February 2013]
• [5] Van’s Hardware Journal (n.d) Mirror The Coming War ARM versus x86 (Online)
available from<
http://vanshardware.com/2010/08/mirror-the-coming-war-arm-versusx86/ > [23rd
February 2013]