Академический Документы
Профессиональный Документы
Культура Документы
Computer Architecture
Computer Architecture is the theory behind the operational design of a computer system This is a term which is applied to a vast array of computer disciplines ranging from low level instruction set and logic design, to higher level aspects of a computers design such as the memory subsystem and bus structure
Fetch-Decode-Execute Architecture.
It has three basic hardware subsystems: a CPU, a main memory system, and an I/O system. It is a storedprogram computer. Programs (together with data) are stored in main memory during execution. It carries out instructions sequentially. It has, or at least appears to have, a single path between the main memory and the control unit of the CPU.
streams) is the most universally accepted method of classifying computers. Instruction Stream (IS) a sequence of instructions as executed by a machine. Data Stream (DS) a sequence of data including input, partial, or temporary results, called for by the instruction stream.
Single Data stream) SIMD (Single Instruction Stream over a Multiple Data stream) MIMD (Multiple Instruction Stream over a Multiple Data stream) MISD (Multiple Instruction Stream over a Single Data stream)
sequential machine (Von Neumann). A program executed by the processor constitutes the single instruction stream, and the sequence of data items that it operates on constitutes the single data stream.
A single stream of instructions is broadcast to a number of processors. Each processor operates on its own data. The multiple data streams are the sequences of data items accessed by the individual processors in their own memories. In other words, an SIMD computer has several processors running the same program in lockstep but each operating on different sets of data. This type of processing is also called array processing.
(multiprocessor and multiple computer systems). They involve a number of independent processors, each executing a different program and accessing its own sequence of data items (or the same program and the same data but not in lockstep as in SIMD machines).
by separate processors, and each executes a different program. This is also known as systolic arrays for pipelined execution of specific algorithms. This form of computation does not arise often in practice.
The Clock
The
clock is a signal that keeps the control unit moving. At each clock tick, control unit moves to the next machine cycle -- may be next instruction or next phase of current instruction.
on crystal oscillator Generates regular sequence of 0 and 1 logic levels Clock cycle (or machine cycle) -- rising edge to rising edge
Clock Cycles
Instead
Clock
ticks indicate when to start activities (one abstraction): time = time between ticks = seconds per cycle clock rate (frequency) = cycles per second (1 Hz. = 1cycle/sec)
cycle
Turnaround Time
The simplest measure of program
performance is the turnaround time (the interval from the time of submission to the time of completion. It is the sum of the periods spent for disk and memory accesses, I/O activities, compilation time, OS overhead, and CPU time).
The size of the program is determined by its Instruction Count (Ic), in terms of the number of machine instructions to be executed in the program. The inverse of the clock rate is the period or cycle time ( = 1/f in seconds). The CPU Time (T in seconds/program) needed to execute the program is estimated by finding the product of the three contributing factors: CPU Time (T) = Ic CPI
Some Definitions
CPI
Examples
A 40-MHz processor was used to execute
a program with 50,000 instructions. The average CPI is estimated to be 3.5 cycles/instruction. Calculate the total execution time. Solution #1
Example
A 40-MHz processor was used to execute a
benchmark program with the following instruction mix and clock cycle counts:
Examples
A
Pentium has a 233 MHz clock 2.33 x 108 clock cycles per second (MHz = 106). What is the cycle time? Solution#3 My 80486 computer runs at 66MHz. What is the cycle time?Solution#4 A computer has a 2.5ns cycle time. What is the number of cycles per second? Solution#5
Memory Cycle
defined as the time needed to complete
one memory reference (read or write). Usually, a memory cycle is k times the processor cycle . The value of k depends on the speed of the memory technology and processor-memory interconnection scheme used.
The CPI of an instruction can be divided into two component terms corresponding to the total processor cycles and memory cycles needed to complete the execution of the instruction. CPU Time (T) = Ic (p + m k) where: p is the number of processor cycles needed for the instruction decode and execute m is the number of memory references needed k is the ratio between memory cycle and processor cycle
system bus connects the microprocessors to the memory and I/O subsystems It is comprised of three major busses: address bus, the data bus, and the control bus Both address and data busses come in variety of sizes.
Cont.
Address busses generally range from 20 to 36 bits (1 MB address space 64 GBytes) Data busses are either 8, 16, 32, or 64 bits wide The control bus on the other hand varies amongst processors. It is a collection of control signals with which the processor communicates with the rest of the system
The following are generally part of the Control Bus: Read/Write signal, which specify the direction of data flow Byte Enable signals, which allow 16, 32, and 64 bit busses deal with smaller chunks of data Some processors have signaling which identifies between memory and I/O addresses Other signals include interrupt lines, parity lines, bus clock, and status signals
Solution#1
1.
Solution #2
Solution#3
Solution#4
Solution#5
Given:
= 2.5 ns f= ?
f= 1 / f = 1 / 2.5 ns f= ?
MIPS Rate
The
processor speed is often measured in terms of million instructions per second. Let C be the total number of clock pulses or cycles needed to execute a given program. C = Ic x CPI
=Cx =C/f
/ (T x 106)
x CPI x (cycle time), then the second equation for MIPS is: MIPS = f / (CPI x 106) Since CPI = C / Ic, then a third equation for MIPS is: MIPS = (f x Ic) / (C x 106)
Since T = Ic
Example
A 40-MHz processor was used to execute
a benchmark program with the following instruction mix and clock cycle counts:
Solution
From the previous example
MIPS = Ic
/ (T x 106)