Automatic Synthesis of Device Drivers for Hardware/Software Co-design

Automatically synthesizing device drivers, the hardware and software needed to interface a device to a processor, is an important element of hardware/software co-design. Driver software consists of the sequences of instructions needed for the processor to control its interactions with the device. Driver hardware consists of the digital logic necessary to physically connect the devices and generate signal events while meeting timing constraints. We describe an approach that begins with device speci cations in the form of timing and state diagrams and determines which signals can be controlled directly from software and which require indirect control through intervening hardware. Minimizing this hardware requires solving a simultaneous scheduling and partitioning problem whose goal is to limit the number of wires whose events are not directly generated by the processor software. We show that even the simplest version of this problem is NP-hard and discuss a heuristic solution that should work well in practical situations. Supported in part by an NSF Graduate Fellowship. y Supported by PYI Award (MIP-8858782) and by the DARPA/CSTO Microsystems Program under an ONR monitored contract (N00014-91-J-4041).

[1]  Giovanni De Micheli,et al.  Relative scheduling under timing constraints: algorithms for high-level synthesis of digital circuits , 1992, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[2]  Gaetano Borriello,et al.  Synthesis of the hardware/software interface in microcontroller-based systems , 1992, 1992 IEEE/ACM International Conference on Computer-Aided Design.

[3]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[4]  Randy H. Katz,et al.  A new interface specification methodology and its application to transducer synthesis , 1988 .

[5]  小島 政夫 測定精度に及ぼすトラヒック変動の影響(The Bell System Technical Journal,April 1977)(最近の外誌から-67-) , 1978 .

[6]  Frank Thomson Leighton,et al.  Improving the Performance of the Kernighan-Lin and Simulated Annealing Graph Bisection Algorithms , 1989, 26th ACM/IEEE Design Automation Conference.

[7]  Edward Solari ISA and EISA Theory and Operation , 1992 .

[8]  Frank Thomson Leighton,et al.  Graph bisection algorithms with good average case behavior , 1984, Comb..

[9]  Gaetano Borriello,et al.  Formalized timing diagrams , 1992, [1992] Proceedings The European Conference on Design Automation.

[10]  TWO-WEEK Loan COpy,et al.  University of California , 1886, The American journal of dental science.

[11]  David S. Johnson,et al.  Two-Processor Scheduling with Start-Times and Deadlines , 1977, SIAM J. Comput..

[12]  Gaetano Borriello,et al.  Scheduling for reactive real-time systems , 1994, IEEE Micro.

[13]  Brian W. Kernighan,et al.  An efficient heuristic procedure for partitioning graphs , 1970, Bell Syst. Tech. J..