Computer architecture is the engineering of a computer system through the careful design of its organization, using innovative mechanisms and integrating software techniques, to achieve a set of performance goals.
The most common goals in computer architecture revolve around the tradeoffs between cost and performance (i.e. speed), although other considerations, such as size, weight, reliability, feature set, expandability and power consumption, are important factors as well.
Designers of computer systems must understand the mechanisms that affect these tradeoffs throughout the system: processor instruction set, processor implementation (known as "microarchitecture"), multiprocessor organization, memory system, communication networks, input/output devices, compilers, operating systems, and application software. Courses in CAS give students a solid grounding in many of these areas, and students pursuing research have the opportunity to specialize and innovate in the areas that most interest them.
Another area of emphasis is the development of tools that enable the design of next-generation systems, such as processor simulators, full-system simulators, and computer-aided design (CAD) tools. Research in CAS typically involves a combination of experimental measurement, simulation, and analytical tools to understand and predict the behavior of complex computing systems.
Students are encouraged to interact with industry through funded research projects, internships, and participation in the Center for Efficient, Scalable, and Reliable Computing (CESR).