Studies the design and organization of computer systems, including the instruction set and interconnection of hardware components. Topics include computer performance, assembly language programming, microprocessor architecture, pipeline processing, memory and storage organization, and multiprocessor computers. Prerequisite: C.S. 2156 and C.S. 3316. (2nd)
Expectations:
E1. Students have experience with assembly language programming. (C.S. 2156)
E2. Students have a high-level understanding of how a computer processor operates. (C.S. 2156)
E3. Students know how to use numbers in binary, hexadecimal, and decimal and are to convert numbers between these bases. (C.S. 2156)
E4. Students can program in a high-level programming language. (C.S. 3316)
Course Outcomes:
R1. Students are familiar with historical developments in computer hardware and associated performance improvements. (CS/SE8)
R2. Students know how to evaluate hardware performance and are able to choose the best system or hardware design given a set of alternatives. (CS/SE3)
R3. Students know the MIPS instruction set, including the different instruction formats, addressing modes and relationships to higher languages. (CS/SE15)
R4. Students understand how procedures, pointers and arrays are implemented in assembly and machine code. (CS/SE15)
R5. Students know the characteristics of a good instruction set. (CS/SE15)
R6. Students can design and implement an assembler (CS/SE11, CS/SE15)
R7. Students will research and make a presentation on a computer architecture/system not covered in lecture. All students will know major differences between various computer architectures. (CS/SE5, CS/SE9)
R8. Students understand how arithmetic and logic operations are designed and implemented (CS14).
R9. Students understand single cycle and multi cycle data paths and can modify either to implement additional MIPS instructions. (CS/SE11)
R10. Students understand pipelining, its associated hazards and techniques to best handle hazards. (CS/SE3)
R11. Students understand memory hierarchy, basics of caches, system buses, and how they affect computer performance. (CS/SE3)
R12. Students are familiar with different multiprocessor architectures. (CS/SE3)
|