‘successful’ 8086/88 text for undergraduates: brey, b b8086/8088 microprocessor: architecture,...

2
Book reviews M UNAP: an unusual computer with clear implications Baba, T Microprogrammable parallel com- puters MIT Press, Cambridge, MA, USA (1987) £26.95 pp 290 The eighth addition to MIT Press's Computer Systems series in three years, this book describes work carried out at Utsunomiya University, Japan, on a microprogrammable parallel computer called MUNAP. MUNAP is a small-scale-parallel, two- level-microcodable machine. At the microprogram level, the machine executes a common instruction stream. However, individual micro- instructions may invoke different nanoprograms in each processor. At the second level of microcode (the register transfer level), the MUNAP machine is an MIMD (multiple input, multiple data) computer. The manner in which the two levels of micro- programmability interact is novel, and is described in some detail. The book is comprehensive and covers a range of interests, from architecture, implementation, through firmware engineering to applications studies. As the series preface suggests, this book should give insight into the design process of implementing computer systems architectures. The author takes the reader through the various design decisions that were reached in formulating the specification of MUNAP. At the hardware level, support is provided in the architecture for tagged data access, field handling and variable-length word access. At the system level, the prototype described comprises four processors connected by their memory buses through a shuffle exchange network, which performs intra- as well as interprocessor data permutations. The applications implemented and evaluated on MUNAP include emulation, programming language processing, database systems, graphics and numeric computation. The applications considered empha- size the areas where conventional Yon Neumann architectures suffer from drawbacks, such as applications involving abstract data types or requiring tagged architectures. In particular, two new language paradigms have been studied: logic programming and object-oriented languages, in the form of PROLOG and SMALLTALK. This section occupies approximately 50% of the book and provides detailed implementation and evaluation information. In conclusion, the application implementations should be of value to mainstream computer scientists and the architecture should be of interest to computer engineers. However, the use of the word parallel in the title of the book is a little misleading, as it is really only low- level, functional parallelism that is exploited in any of the applications. For example, in the implementation of PROLOG,OR and AND parallelism are ignored in favour of unification parallelism (expression parallelism). This is to be expected, given the limited hardware parallelism of the machine. I would like to have seen extrapolation of the applications to a more parallel implementation of MUNAP. The book is hard bound on good- quality paper and represents reasonable value for money at £26.95. The only criticism that I have on the presentation of the book is the rather poor quality of camera-ready copy used for production. Overall this is a very well conceived book; it describes the implementation and exploitation of an unusual and powerful computer, with clear implications given the current trends towards more abstract and dynamic architectures. Its readership will be limited to engineers in research and develop- ment laboratories, and to advanced course and research students. Chris ]esshope University of Southampton, UK 'Successful' 8086/88 text for undergraduates Brey, B B 8086/8088 microprocessor: architec- ture, programming and interfacing Merrill, Columbus, OH, USA (1987) $37.95 pp 526 Written for those with a prior understanding of basic electronics and, perhaps, some experience of 8-bit microprocessors, this weighty textbook is logically then also aimed at those on undergraduate degree courses in engineering or computer science, or practising professionals who wish to keep up with changes and the 8086/8088. In meeting this objective the book is thoroughly successful. The coverage of the 8086/8087 and many associated peripheral integrated circuits, including the 8089 and 8087, meets the book's claim to be complete and all encompassing, particularly regarding hardware, although software issues are also dealt with well. The text is well presented with many diagrams, including circuits and detailed timings, pin-outs, software listings and application-oriented circuits of practical use. Each of the 13 chapters is preceded by a synopsis and a list of objectives, in true American style, and followed by a summary of the main items and a lengthy list of questions. Every other question is answered in one of the four appendices for the benefit of baffled readers. The content is split roughly into one third on introduction to the 8086/8088 and programming considerations, one third on detailed hardware specification, memory and I/O interfacing, DMA and interrupts, and the remainder on the two coprocessors and outlines of the 80186 and 80286. Sadly, the 80386 only gets two pages even though the text was published during 1987. The first section of this 522-page book covers the instruction set (contained in full in an appendix, including details such as the number of clock cycles and bytes for each instruction) and programming model in considerable depth, and it is a masterly stroke of insight by the author to spare us the basics of binary (continuesopposite) 118 Microprocessors and Microsystems

Upload: ian-leslie

Post on 21-Jun-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Book reviews

M UNAP: an unusual computer with clear implications Baba, T Microprogrammable parallel com- puters MIT Press, Cambridge, MA, USA (1987) £26.95 pp 290

The eighth addition to MIT Press's Computer Systems series in three years, this book describes work carried out at Utsunomiya University, Japan, on a microprogrammable parallel computer called MUNAP. MUNAP is a small-scale-parallel, two- level-microcodable machine. At the microprogram level, the machine executes a common instruction stream. However, individual micro- instructions may invoke different nanoprograms in each processor. At the second level of microcode (the register transfer level), the MUNAP machine is an MIMD (multiple input, multiple data) computer. The manner in which the two levels of micro- programmability interact is novel, and is described in some detail.

The book is comprehensive and covers a range of interests, from architecture, implementation, through firmware engineering to applications studies. As the series preface suggests, this book should give insight into the design process of implementing computer systems architectures. The author takes the reader through the various design decisions that were reached in formulating the specification of MUNAP.

At the hardware level, support is provided in the architecture for tagged data access, field handling and variable-length word access. At the system level, the prototype described comprises four processors connected by their memory buses through a shuffle exchange network, which performs intra- as well as interprocessor data permutations.

The applications implemented and evaluated on MUNAP include emulation, programming language processing, database systems, graphics and numeric computation. The applications considered empha- size the areas where conventional Yon Neumann architectures suffer from drawbacks, such as applications involving abstract data types or

requiring tagged architectures. In particular, two new language paradigms have been studied: logic programming and object-oriented languages, in the form of PROLOG and SMALLTALK. This section occupies approximately 50% of the book and provides detailed implementation and evaluation information.

In conclusion, the application implementations should be of value to mainstream computer scientists and the architecture should be of interest to computer engineers. However, the use of the word parallel in the title of the book is a little misleading, as it is really only low- level, functional parallelism that is exploited in any of the applications. For example, in the implementation of PROLOG, OR and AND parallelism are ignored in favour of unification parallelism (expression parallelism). This is to be expected, given the limited hardware parallelism of the

machine. I would like to have seen extrapolation of the applications to a more parallel implementation of MUNAP.

The book is hard bound on good- quality paper and represents reasonable value for money at £26.95. The only criticism that I have on the presentation of the book is the rather poor quality of camera-ready copy used for production.

Overall this is a very well conceived book; it describes the implementation and exploitation of an unusual and powerful computer, with clear implications given the current trends towards more abstract and dynamic architectures. Its readership will be limited to engineers in research and develop- ment laboratories, and to advanced course and research students.

Chris ]esshope University of Southampton, UK

'Successful' 8086/88 text for undergraduates Brey, B B 8086/8088 microprocessor: architec- ture, programming and interfacing Merrill, Columbus, OH, USA (1987) $37.95 pp 526

Written for those with a prior understanding of basic electronics and, perhaps, some experience of 8-bit microprocessors, this weighty textbook is logically then also aimed at those on undergraduate degree courses in engineering or computer science, or practising professionals who wish to keep up with changes and the 8086/8088. In meeting this objective the book is thoroughly successful.

The coverage of the 8086/8087 and many associated peripheral integrated circuits, including the 8089 and 8087, meets the book's claim to be complete and all encompassing, particularly regarding hardware, although software issues are also dealt with well. The text is well presented with many diagrams, including circuits and detailed timings, pin-outs, software listings and application-oriented circuits of

practical use. Each of the 13 chapters is preceded by a synopsis and a list of objectives, in true American style, and followed by a summary of the main items and a lengthy list of questions. Every other question is answered in one of the four appendices for the benefit of baffled readers.

The content is split roughly into one third on introduction to the 8086/8088 and programming considerations, one third on detailed hardware specification, memory and I/O interfacing, DMA and interrupts, and the remainder on the two coprocessors and outlines of the 80186 and 80286. Sadly, the 80386 only gets two pages even though the text was published during 1987.

The first section of this 522-page book covers the instruction set (contained in full in an appendix, including details such as the number of clock cycles and bytes for each instruction) and programming model in considerable depth, and it is a masterly stroke of insight by the author to spare us the basics of binary

(continues opposite)

118 Microprocessors and Microsystems

Book reviews

More books about assembler and 16-bit micros Krantz, D and Stanley, J 68000 assembly language: techniques for building programs Addison- Wesley, Reading, /viA, USA (1986) £15.95 pp 402

Turpin, R W The 8086 and assembly language programming BSP Professional Books, Oxford, UK (1987) £12.95 pp 259

There are now a plethora of books on assembly language programming for all the major microprocessors available on the market. However, none has produced a major leap forward since the Osborne/ McGraw-Hill series by Lance Leventhal et al. in the late 1970s and early 1980s. It has taken a long time for the rest of the (publishing) world to catch up.

The books under review cover two of the major 16-bit microprocessors, both of which have now been around for the best part of a decade. The 68000 book is aimed at the programmer who already has some knowledge of assembler pro- gramming. The other book claims to provide an introduction to the hardware and assembly language of 8086-based systems for engineering

Brey (continued)

arithmetic, so often belaboured in any text like this.

The hardware chapters cover each of the major areas in a lot of detail and include plenty of examples of real techniques for practical implemen- tations.

The assembler and its assumed use on an IBM PC are described, reflecting a change from earlier years when the semiconductor companies were the prime suppliers of proprietary development systems.

In conclusion I would recommend this book as a reference text for engineering design departments or students alike. It is a useful addition to any collection of texts.

lan Leslie Log/ca Space and Defence Systems,

Cobham, Surrey, UK

students at undergraduate level, but it too seems to assume a certain amount of prior knowledge. Details about hexadecimal notation, for example, are not covered in either book.

The typeface of the 68000 book is reasonable, whereas the 8086 book uses a monospaced typewriter-style font for the main text and rather patchy dot-matrix listings for the programming examples. This is less than easy on the eye. Surely publishers should be aiming for a better standard now that laser printers are reasonably cheap.

Both books have lists of the instructions. However, these are not as comprehensive in their details as most manufacturers' manuals. The operation of the instructions and their effect on condition code flags are only described in English, which could give rise to ambiguity; pseudocode and diagrams can be very useful when describing instructions. To be fair, the 68000 book does mention that a manual such as Motorola's excellent 16-bit microprocessor user's manual would be a good investment. The 68000 instructions are organized by family, whereas the 8086 instructions are ordered alphabetically. One plus point is that both lists give examples of each instruction in use.

As one would expect, each book includes programming examples. The 8086 has a chapter of mostly one-page programs which demon- strate a number of simple programming techniques. The number of lines of code with comments is extremely low; this is not a good example of programming practice for students. In contrast, about half of the 68000 book is devoted to a real screen editor which demonstrates many assembler programming principles and shows how to construct a large assembler program in a modular fashion. Additionally, virtually every line of code has a meaningful comment next to it.

An important area of assembly language programming is debugging. This is dismissed in half a page in the

8086 book. The 68000 book includes five pages briefly describing software and hardware tools available to aid debugging. The chapter entitled 'On the bare metal' also gives a sometimes rather colloquial descrip- tion of how debugging is done.

The books cover interrupts and low-level I/O as would be expected in any serious book on assembly language. The 8086 book includes more information on the hardware site, as the title might suggest. It also has questions (but no answers) at the end of many of the chapters. The books include the usual array of appendices with data-sheet-style information. The 68000 book has a reasonable index, but the one in the 8086 book is rather skimpy.

Each book offers a chapter on more recent processors such as the Intel 80186 and 80286 (but no newer than this) and the Motorola 68010 and 68020. Extra instructions are only listed very briefly (except for the 68010, for which a little more information is given). Thus anyone using these processors would certainly need more information than is contained here to make use of any of their additional features. The chapters act rather as a taster for these processors.

In conclusion, I cannot recom- mend the 8086 highly for the multifarious reasons outlined above. It is cheap for a book of this sort, but I cannot say that is is good value. It is certainly more suitable for student use than for professional pro- grammers.

The 68000 book, on the other hand, provides a reasonably good guide to assembler programming for this processor if used in conjunction with a 68000 manual, assuming the reader has a background in assembler programming on at least one other processor. This book could easily be used by a professional assembly language programmer to learn about the 68000. It is as good as any of its type on the market today.

Jonathan Bowen Programming Research Group,

Oxford University, UK

Vol 12 No 2 March 1988 119