|
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
2.
Kernel
3.
Assembler
4.
Firmware
5.
Hardware
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 IBM’s 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 computer’s 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:
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. Accumulator Advantages:
Short instructions. GPR Advantages:
Makes code generation easy. Data can be stored for long periods in
registers. 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
|
|||||||||||||||