Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
INTRODUCTION TO COMPUTER ORGANIZATION CS 2505-2506 I – Catalog Description An introduction to the design and operation of digital computers. 2505: Works up from the logic gate level to combinational and sequential circuits, information representation, computer arithmetic, arithmetic/logic units, control unit design, basic computer organization, relationships between high level programming languages and instruction set architectures. 2506: Instruction formats and construction, addressing modes, instruction execution, memory hierarchy operation and performance, pipelining, input/output, and the relationships between high level programming languages and machine language. Pre (2505): A grade of C or better in 1114 or 1124. Co (2505): Math 2534. Pre (2506): A grade of C or better in CS prerequisites 2505, 2114; Math 2534. (3H, 3C) Course Number: 2505-2506 ADP TITLE: Intro to Computer Organization II - Learning Objectives 2505: Having successfully completed this course, the student will be able to: Design combinational and sequential circuits that realize different aspects of a digital computer, particularly the control unit, Represent and manipulate information in arbitrary number systems, including binary, Design and analyze finite state automata, Explain the different layers of abstraction in a computing system, i.e., logic design, computer architecture, machine language, assembly language, high level language, Write simple programs in machine language, assembly language and C, Describe the characteristics of an instruction set and how it maps to underlying hardware, Explain the basics of instruction execution on a computer, i.e., the instruction cycle, Define the relationship between hardware and software. 2506: Having successfully completed this course, the student will be able to: Design and analyze instruction sets and their impact on processor design, Identify and analyze the design and function of the basic instruction execution elements of a modern processor, Apply finite state automata to computer design, Describe the basic elements of computer architecture and their impact on the performance of a modern processor, Explain the design and function of each element in a memory hierarchy, Identify and explain the different methods of I/O in a computer system, Explain the relationship between the computer hardware, the operating system that runs on it, and the applications that are compiled to it, Compare computer architectures and organizations based on quantifiable performance metrics. III - Justification This course sequence provides the basic concepts that underlie computer design and operation, both from a hardware and software perspective. Students need the material from this sequence in order to build a proper understanding of modern computer organization, including control pipelining, caches, translation look-aside buffers, and I/O systems. Understanding computer organization aids developing the software that controls computers in electronic devices. This course sequence provides the fundamental knowledge needed to understand the design, operation, and performance characteristics of a computer system. This is necessary to successfully implement efficient software systems. Finally, in preparation for later operating systems courses, this sequence lays out the basic functions of an operating system as they relate to computer hardware. This sequence is given at the sophomore level since it requires freshman and sophomore-level programming and math courses as prerequisites. IV - Prerequisites and Corequisites 2505: This course requires an understanding of the process of programming as provided by an introductory programming course such as 1114 or 1124. A grade of C or better is required in 1114 or 1124 because they provide an essential foundation for the material covered in 2505. Students without sufficient mastery of this essential material are at increased risk of failing 2505. Knowledge of Boolean logic provided in Math 2534 is assumed later in the course, thus Math 2534 should be taken prior or during the semester in which 2505 is taken. 2506: A grade of C or better is required in 2505 because the material in that course provides an essential foundation for the material covered in 2506. Students without sufficient mastery of this essential material are at increased risk of failing 2506. Content in Boolean logic, set theory, and induction proofs as provided by Math 2534 is required. Experience with intermediate level programming and basic data structures, as provided by 2114, also is required. V - Texts and Special Teaching Aids 2505: Patt, Yale and Sanjay Patel, INTRODUCTION TO COMPUTING SYSTEMS: FROM BITS AND GATES TO C AND BEYOND, New York, NY: McGraw-Hill, 2003, iv, 656. 2506: Patterson, D.A. and J. L. Hennessy, COMPUTER ORGANIZATION AND DESIGN: THE HARDWARE/SOFTWARE INTERFACE, 3RD ED., San Francisco, CA: Morgan Kaufmann, 2007, xvii, 621. VI - Syllabus 2505: 1. 2. 3. 4. 5. 6. 7. 8. Number systems, base conversion and codes Boolean logic and combinational logic structures Sequential logic circuits Basic computer structure, instruction cycle Instruction set architecture, assembly language I/O, traps, and the run time stack C language and its relationship to hardware Bridging I/O, traps, and the run time stack for C 10% 10% 10% 10% 15% 10% 20% 15% 100% 2506: 1. Introduction to computer systems and performance evaluation 10% 2. Processor design and analysis 30% a. single cycle implementation b. multi cycle implementation c. pipelined implementation d. hazards e. forwarding 3. Memory design and analysis 20% a. cache block size and associativity b. virtual memory 4. I/O design and analysis 20% a. parity b. ECC c. scheduling 5. Basic OS functions 20% 100% VII - Old (current) Syllabus NA VIII - Core Curriculum guidelines NA