Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Q1.

Atom Processor

Intel Atom is the brand name for a line of ultra-low-voltage IA-32 and x86-
64 microprocessors by Intel Corporation. Atom is mainly used in netbooks, nettops, embedded
applications ranging from health care to advanced robotics, and mobile Internet devices (MIDs).
The line was originally designed in 45 nm complementary metaloxidesemiconductor (CMOS)
technology and subsequent models, codenamed Cedar, used a 32 nm process.

Instruction Set Architecture:


32-bit and 64-bit hardware support
All Atom processors implement the x86 (IA-32) instruction set; however, support for the Intel
64 instruction set was not added until the desktop Diamondville and desktop and
mobile Pineview cores. The Atom N2xx and Z5xx series Atom models cannot run x86-64
code.[25] The Centerton server processors will support the Intel 64 instruction set.[7]
Intel 64 software support
Intel states the Atom supports 64-bit operation only "with a processor, chipset, BIOS" that all
support Intel 64. Those Atom systems not supporting all of these cannot enable Intel 64.[26] As a
result, the ability of an Atom-based system to run 64-bit versions of operating systems such
as Ubuntu or Debian GNU/Linux may vary from one motherboard to another. Online retailer mini-
itx.com has tested Atom-based motherboards made by Intel and Jetway, and while they were able to
install 64-bit versions of Linux on Intel-branded motherboards with D2700 (Cedarview) processors,
Intel 64 support was not enabled on a Jetway-branded motherboard with a D2550 (Cedarview)
processor.

Q2. Branch Prediction

A branch predictor is a digital circuit that tries to guess which way a branch (e.g. an if-then-else
structure) will go before this is known for sure. The purpose of the branch predictor is to improve
the flow in the instruction pipeline. Branch predictors play a critical role in achieving high
effective performance in many modern pipelined microprocessor architectures such as x86.
Branch prediction is one of the ancient performance improving techniques which still finds
relevance into modern architectures. While the simple prediction techniques provide fast lookup
and power efficiency they suffer from high misprediction rate.
On the other hand, complex branch predictions either neural based or variants of twolevel branch
prediction provide better prediction accuracy but consume more power and complexity increases
exponentially
In addition to this, in complex prediction techniques the time taken to predict the branches is itself
very high ranging from 2 to 5 cycles which is comparable to the execution time of actual
branches.
Branch prediction is essentially an optimization (minimization) problem where the emphasis is on
to achieve lowest possible miss rate, low power consumption and low complexity with minimum
resources.
There really are three different kinds of branches:
Forward conditional branches - based on a run-time condition, the PC (Program Counter) is
changed to point to an address forward in the instruction stream.
Backward conditional branches - the PC is changed to point backward in the instruction stream.
The branch is based on some condition, such as branching backwards to the beginning of a program
loop when a test at the end of the loop states the loop should be executed again.
Unconditional branches - this includes jumps, procedure calls and returns that have no specific
condition. For example, an unconditional jump instruction might be coded in assembly language as
simply "jmp", and the instruction stream must immediately be directed to the target location pointed
to by the jump instruction, whereas a conditional jump that might be coded as "jmpne" would
redirect the instruction stream only if the result of a comparison of two values in a previous
"compare" instructions shows the values to not be equal.

Q3. Tournament Branch Predictor


Motivation for correlating branch predictors: 2-bit local predictor failed on important branches; by
adding global information, performance improved.
Tournament predictors: use two predictors, 1 based on global information and 1 based on local
information, and combine with a selector
Hopes to select right predictor for right branch (or right context of branch)
4K 2-bit counters to choose from among a global predictor and a local predictor
Global predictor also has 4K entries and is indexed by the history of the last 12 branches; each entry
in the global predictor is a standard 2-bit predictor

Q4. Trends in Computer Architechture

The Intel Pentium 4 was the first modern desktop processor to implement simultaneous
multithreading, starting from the 3.06 GHz model released in 2002, and since introduced into a
number of their processors. Intel calls the functionality Hyper-Threading Technology (HTT), and
provides a basic two-thread SMT (simultaneous multithreading) engine. Intel claims up to a 30%
speed improvement compared against an otherwise identical, non-SMT Pentium 4.
Parallel computing, on the other hand, uses multiple processing elements simultaneously to solve a
problem. This is accomplished by breaking the problem into independent parts so that each
processing element can execute its part of the algorithm simultaneously with the others. The
processing elements can be diverse and include resources such as a single computer with multiple
processors, several networked computers, specialized hardware, or any combination of the above.
Section 2 discusses the concept of Intelligent Ram (I-RAM) with its potential advantages; section 3
deals with parallel computing; section 4 centers on superscalar CPU as typically pipelined, but also
different performance enhancement techniques; Section 5 describes Simultaneous
multithreading as a technique for improving the overall efficiency of superscalar CPUs; section 6
discusses speculative execution as a technique which reduces the cost of conditional
branchinstructions using schemes that predict the execution path of a program based on the history
of branch executions.

1. Intelligent Ram
2. Parallel Computing
3. Superscalar Cpu
4. Simultaneous Multithreading
5. Speculative Execution

You might also like