| Description |
What is computer architecture?
Computer architecture is the science and art of selecting and interconnecting hardware components to create a computer that meets functional, performance and cost goals. This course introduces the basic hardware structure of modern programmable computer. We will learn, for example, how to design the control and data path hardware for a processor in Verilog, how to make machine instructions execute simultaneously, and how to design fast memory and storage systems. Learning to design programmable systems requires that you already have the knowledge of building register transfer (RT) systems, program in assembly language as is taught in the important prerequisite 18-240. Knowledge of the behavior storage hierarchies (e.g., cache memories) and virtual memory as taught in the introduction to computer systems 15-213 is recommended.Who should take 18-347?
18-347 is the first in a series of computer architecture courses offered at Carnegie Mellon. The course is best suited for students who have completed 18-240 but also have a knowledge of computer system software and programming, and hardware description programming in Verilog. The course will include lectures, homeworks, labs and recitations.To hone the students skills in computer architecture design and implementation, the students will implement a dual-issue superscalar pipelined processor with caches and branch prediction in Verilog. The processor will implement a subset of the MIPS instruction set and run MIPS-based binaries provided as test benchmarks to completion.
What knowledge does 18-347 assume?
18-347 assumes that you are familiar with the following material:
- Basic RT system design (18-240)
- Basic RT system implementation in Verilog (18-240)
- Basic assembly language programming (18-240)
- High-level languages and data structures
- Knowledge of memory and storage systems (15-213) recommended