WELCOME TO MY HOMEPAGE

 

 

 

 

 

 

 

 

 

Computer architecture

What is computer architecture?

Since we are talking about computer architechtre that sound like a reasonable question to ask for a start and here what did my findings lead me too.

Computer architecture is the internal design operational structure of a computer system ,the architecture depends on the essential purpose of this computer ,an example of such controlling requirements :

The type of input / output used

Storage space needed

Control ways that are required

Processing acquired

…..etc

More technical definition (wikipedia):

Computer architecture is also viewed as a serious of abstraction layers that consists of :hardware, firmware, assembler, kernel, operating system and application. 

abstraction layer: is a software that translates a high-level request into the low-level commands required to perform the operation)

 More about the layers mentioned :

1.      Operating System (OS) and Applications
- the software component of the computer

2.      Kernel
- the core component of the OS that manages the system resources and is the lowest abstraction layer for programs

3.      Assembler
- converts high level language statements into machine instructions and data

4.      Firmware
- a computer program embedded in the hardware that works specifically with that hardware

5.      Hardware
- the physical components of the computer

 

Historical of computer architecture

Early usage in computer context

The term computer architecture first started with Lyle R. Johnson and Frederick P. Brooks, Jr.,who were members in 1959 of the Machine Organization department in IBMs main research center. Johnson for the start had a chance to access  and work on an IBM-developed supercomputer for Los Alamos Scientific Laboratory; and he needed at the moment to work on some modifications and try to change the “level of detail for instruction types, hardware parameters, and speed enhancements aimed at the level of “system architecture” – a term that seemed more useful than “machine organization.” ”

And later on Brooks, one of the IBM supercomputer  (Stretch) designers, wrote in his book  (Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962) by writing, “Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints.”

The first time that term architecture popped up  in a computer technical document was in a 1964 article describing the IBM System/360. The article defined architecture as the set of “attributes of a system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flow and controls, the logical design, and the physical implementation.” .Only later on did internals such as “the way by which the CPU performs internally and accesses addresses in memory,” mentioned and was added to the computer architecture definition.

The sub categories of computer architecture:

Instruction set architecture, or ISA, is the abstract image of a computing system that is seen by a machine language (or assembly language) programmer, including the instruction set, memory address modes, processor registers, and address and data formats.

Microarchitecture, also known as Computer organization is a lower level, more concrete and detailed, description of the system that involves how the constituent parts of the system are interconnected and how they interoperate in order to implement the ISA.[2] The size of a computers cache for instance, is an organizational issue that generally has nothing to do with the ISA.

System Design which includes all of the other hardware components within a computing system such as:

system interconnects such as computer buse

. Assembly language is a symbolic representation (using mnemonics defined by the hardware manufacturer, instructions and operands) of the numerical machine codes. The assembler is a utility used to translate machine language into the target computers machine code.

The Instruction Set Architecture (ISA) is the part of the processor that is available to the programmer . The ISA serves as the boundary between software and hardware.

The 3 most common types of ISAs are:

Stack - The operands are implicitly on top of the stack.

Accumulator - One operand is implicitly the accumulator.

General Purpose Register (GPR) - All operands are explicitely mentioned, they are either registers or memory locations.

Lets look at the assembly code of

A = B + C;

in all 3 architectures:

Stack

Accumulator

GPR

PUSH A

LOAD A

LOAD R1,A

PUSH B

ADD B

ADD R1,B

ADD

STORE C

STORE R1,C

POP C

-

-

 

 

 

Not all processors can be neatly tagged into one of the above categories …..What are the advantages and disadvantages of each of these approaches?

Stack

Advantages: Simple Model of expression evaluation (reverse polish). Short instructions.
Disadvantages: A stack can't be randomly accessed This makes it hard to generate efficient code. The stack itself is accessed every operation and becomes a bottleneck.

Accumulator

Advantages: Short instructions.
Disadvantages: The accumulator is only temporary storage so memory traffic is the highest for this approach.

GPR

Advantages: Makes code generation easy. Data can be stored for long periods in registers.
Disadvantages: All operands must be named leading to longer instructions.

Earlier CPUs were of the first 2 types but in the last 15 years all CPUs made are GPR processors. The 2 major reasons are that registers are faster than memory, the more data that can be kept internally in the CPU the faster the program will run. The other reason is that registers are easier for a compiler to use.

 

Questions:

what is pipelining ?

what is the difference between multitasking?

 

Resources :

http://www.cc.gatech.edu/classes/cs6751_97_fall/projects/gacha/daniels_essay.html

http://www.iu.hio.no/~mark/os/os.html

http://www.rcet.org/ubicomp/what.htm

http://www.hermans.org/agents2/ch4_1.htm