everything.study
CSE 20321

Computer Organization

(3 Credit Hours) · Undergraduate

By the end of this course, students will have a foundational understanding of the design of a digital computer. The course begins by exploring how computer systems represent and process information via basic Boolean operations made out of logic gates, continuing to a simple datapath design that implements a RISC instruction set. From there, students will learn key techniques used in modern computing systems that sit at the intersection of hardware and software, including caches, virtual memory, and system calls. Students will approach each of these topics from a software practitioner's perspective, focusing on what is necessary to effectively use, program, and provision computer systems. Specific Learning Objectives By the end of this course students will be able to: 1. Formulate logic expressions using basic Boolean logic operations (e.g., AND, OR, NOT) and implement these expressions with logic gates. 2. Understand the behavior of and use for combinational logic circuits such as decoders, multiplexors, and adders. 3. Understand the behavior of and use for sequential logic circuits such as latches, flip flops, and registers. 4. Explain the organization of a simple RISC processor (namely, the datapath) and write simple assembly language programs for that processor. 5. Explain the need for, organization of, and data movement within a memory hierarchy including the register file, a first-level direct-mapped data cache, and a main memory. 6. Explain the purpose of virtual memory and the behavior of a modern (basic) virtual memory system. 7. Construct programs that use low-level functions or system calls to allocate memory, process input and output, manage processes and threads, and manipulate files and directories.

Sources