This course provides a foundation for understanding and evaluating the design principles incorporated in contemporary computer systems. Although the field of computer architecture is constantly changing, this course stresses design ideas embodied in many machines, the techniques to evaluate these ideas, and the means to achieve balance and efficiency in the context of any device technology. The first part of the course provides the principles incorporated in single processor systems. Topics include memory system design, instruction and arithmetic pipelining, reduced instruction set versus complex instruction set architectures, and storage systems. The second part of the course presents basic techniques for designing multiprocessor and multicomputer systems.
Lectures cover a variety of interconnection networks and the application of parallel architectures.
The course concludes with new architectural ideas such as systems based on biological concepts and fuzzy set theory. Throughout the semester, basic principles are presented and illustrated with examples of existing computer systems and real applications with their architectural requirements. In these positions, he is responsible for the application of high-performance computing and communications to biomedical problems including the areas of image processing, structural biology, computational chemistry, medical imaging, telemedicine, scientific visualization, signal processing, genetic database searching, and genetic linkage analysis. In addition, he serves as the NIH representative to the national, multiagency High Performance Computing and Communications program. He has been a member of the graduate school faculty of the Part-Time Programs of the Whiting School of Engineering at the Johns Hopkins University since 1982.