Book Review MICI~OPI~OGRAlViMING AND FIRiVIWARE ENGINEERING METHODS Stanley Habib, Editor:, Van Nostrand Reinhold, 1988 reviewed by Veljko Milutinovic, Purdue University During the Spring Semester 89, I had the pleasure to teach the microprogramming course at Purdue University from two textbooks of which one was ~_i_icroprogramming and Firmware Engineering Methods." Contributing authors for this book were selected among the nation's leading experts in the field, which greatly contributes to the depth and breath of the coverage. Textbooks on microprogramming are not frequent today. Of the few textbooks around, only very few cover the topics other than the most basic ones. For quite some time now, there was a wide-spread feeling that there will never be a microprogramming book with a good educational coverage of a broad range of advanced topics, and that is why this book arrived as an extremely pleasant surprise. In my opinion, the editor and the contributing authors have done an excellent job in presenting some very "tough" topics in a very clear and well-structured way. I have found that the students really enjoyed the book, and having such a book finally in my hands, it made my life of an instructor much more pleasant, since I did not have any more to base most of my teaching on the papers from the open literature. I covered the basic topics from an introductory book, and then I quickly revisited the same basic topics using the Chapter 2 of the Habib book. When it comes to fundamental concepts, I always like when I have an opportunity to shed the light from two different sources. In schools where there exist two courses that treat microprogramming, the Habib book would ideally cover the second course. After the Chapter 2 was completed, I was able to take-off into the advanced topics, at the rate of approximately one chapter per week. C h a p t e r 1 written by Stanley Habib of the City University of New York, gives a chronological overview of the development of microprogramming. I have found, this was a good way to start, and to stress the impacts of the MICI~OPROGRAlVIR,HNG WORKSHOPS on the development of the field. C h a p t e r 2 written by Robert A. Mueller and Joseph Varghese introduces the basic concepts of microprogramming. It is well written, and with very little redundancy. C h a p t e r 3 written by Harold W. Lawson discusses various aspects of asynchronous microprogramming. This chapter can be particularly useful for those who have to design an asynchronous machine, since it is given in a form of a case study. C h a p t e r 4 written by Scott Davidson discusses various aspects of high-level microprogramming languages. Most microcode these days is written in microassemblers or low-level languages, not in high-level languages. This chapter investigates why is that the case, and presents a number of interesting solutions. C h a p t e r 5 written by Tom Weidner and John Stankovic presents the problem of vertical migration of functions. It successfully underlines that a considerable performance improvement can be achieved if the most frequently used operating system constructs are implemented in mlcrocode. C h a p t e r 6 written by Robert I. Winner is on the subject of dynamic microprogramming. Dynamic microprogramming implies that the microcode in a writable control store can be updated, from time to time, during the execution of the microcode. C h a p t e r 7 written by Charles J. Neuhauser and Michael J. F l y n n concentrates on the emulation and its application. Flexibilities of the emulation approach are nicely presented through a variety of different environments and applications. C h a p t e r 8 written by Will Tracz is about traditional microprogram development tools. It explains why the use of support software can facilitate the generation of microprograms, so that the efficiency of the microprogrammer can be considerably increased. C h a p t e r 9 written by Joseph L. Linn concentrates on the horizontal microcode compaction. The problem treated by this chapter is how to improve the speed of microcode. The chapter is very well written, and applicable to a number of current microprocessor design problems. C h a p t e r 10 written by Subrata Dasgupta discusses the issues of importance for firmware verification. It is very instructive, and concentrates on the problems of major importance. Overall, I did not notice in this book any of the inconsistencies and hetorogenities typical of edited books, at least not to the extent that would bother me, although some explanations were little difficult to follow. In conclusion, I am happy that we finally have a good textbook for microprogramming courses, and I definitely recommend it for a classroom use.
/lp/association-for-computing-machinery/book-review-microprogramming-and-firmware-engineering-methods-by-NVWHXsyWPm