220 Class Manual All - Minnesota State University Computer...

Info icon This preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon
Minnesota State University Computer Science Department CS 220 – Machine Structures and Programming SPRING 2008 Class Manual © 2008 by Julio Sanchez
Image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
1 Chapter I Elements of Computer Architecture Lecture notes for a course in Machine Structures and Programming (CS 220) taught at Minnesota State University by Julio Sanchez. Chapter Summary The term "architecture" in relation to computers was coined by Lyle Johnson and Frederick Brooks of IBM in 1959. The first use of this term was in the context of characterizing a level of detail regarding a complex computer system at Los Alamos Scientific Laboratory. Johnson noted the term "architecture" was more suitable than "organization" in describing instructions, parameters, and hardware types. Later Brooks wrote: “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.” Some authors have objected to the word "architecture" stating that it implies a static construct while in reality the contents described are dynamic since they include the interaction between the various components. The term system architecture has sometimes been used as a synonym. In this sense system architecture is the discipline that describes the components of a computer system and their interaction. 1.0 Abstraction Layers Architecture can loosely be defined as a vision of the different abstraction layers of a computer system, It includes the conceptual structure and functional behavior. Architecture does not include the data flow, logical design, or hardware elements of the system, although often internal mechanisms such as memory addressing and instruction fetching are included in the context of computer architecture. The typical list of abstraction layers include: hardware. firmware. assembler and development software. kernel. operating system.
Image of page 2