Design of a library with C and assembly language subroutines. Software engineering concepts and techniques. Use of debugger and in-circuit emulators to troubleshoot software. The student's existing knowledge of digital circuits is combined with a view of computers at the assembly language level to build a complete understanding of how modern processors work. Topics include single and multiple bus architectures, RISC vs. CISC, pipelining, pipeline hazards, data forwarding, ALU design, microprogramming, cache memory systems, register transfer level description languages, processor simulation in a high level language, and other topics pertinent to modern processor architecture.
Students learn what constitutes an engineering project, and how to work in a project team.
Students work as a team to produce a project proposal. The proposal must describe the project requirements, conceptual design, management plan and project cost. Use of resources within and outside of the team to accomplish the project objectives. Demonstration of compliance with requirements. Presentation of results and submission of comprehensive written report.