Although microprogramming has only been a research topic for the past 10 years, the concept is nearly as old as computers. 1 Wilkes originally defined microprogramming as a systematic and orderly approach to the design of the control section of a computer. Rather than using an ad hoc approach with counters and decoders to generate control signals, Wilkes proposed that the control be organized as a matrix. This memory like approach to control remained largely of academic interest until the late 1950s. The first large-scale microprogrammed computer was the IBM 7950 in 1961. However, it was the introduction of the IBM SystemJ360 line (with all but the largest system microprogrammed) that revived interest in microprogramming. The advance in speed and the reduction in cost of read-only memory (ROM) technology transformed microprogramming from an academic concept of mild theoretical interest to a practical approach to the design of commercial computers. 2 IBM was able to offer several internally different models with the same instruction set in order to provide a spectrum of cost and speed through the use of microprogramming. With the success of the 360, several microprogrammed computers were and are being built. In the late 60' s some manufacturers made microprogramming available to the users. Nearly all computer manufacturers have at least one computer implemented via microprogramming, and the expanding list of manufacturers that provide user microprogrammable computers include Burroughs (E 1700), Control Data Corporaton (Cyber-17), Data General (Eclipse), Digital Equipment Corporation (PDP-11160) and Hewlett Packard (HP-21MX). This has expanded the potential domain of microprogrammers from computer architects to systems and applications programmers. While microprogramming and "ordinary" programming have existed for almost the same amount of time, little of the considerable research in programming languages and methodologies has impacted the microprogramming field. Unfortunately, the following statement is a fairly accurate description of the state of the microprogramming: 3
[1]
Samir S. Husson,et al.
Microprogramming: principles and practices
,
1971,
SIGM.
[2]
Michael J. Flynn,et al.
Dynamic microprogramming: processor organization and programming
,
1971,
CACM.
[3]
David A. Patterson.
The design of a system for the synthesis of correct microprograms
,
1975,
MICRO 8.
[4]
Larry Calvin Ragland,et al.
A verified program-verifier.
,
1973
.
[5]
Richard J. Lipton,et al.
Social processes and proofs of theorems and programs
,
1977,
POPL.
[6]
David Andrew Patterson.
Verification of microprograms.
,
1976
.
[7]
Edsger W. Dijkstra,et al.
Notes on structured programming
,
1970
.
[8]
David A. Patterson.
Strum: structured microprogramming system for correct firmware
,
1976
.
[9]
Richard J. Lipton,et al.
Social processes and proofs of theorems and programs
,
1979,
CACM.