Large-Scale systems design: a revolutionary new approach in software hardware co-design

  • Authors:
  • Sumit Ghosh

  • Affiliations:
  • Department of Electrical & Computer Engineering, Stevens Institute of Technology, Hoboken, NJ

  • Venue:
  • AIS'04 Proceedings of the 13th international conference on AI, Simulation, and Planning in High Autonomy Systems
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

The need for a revolutionary new approach to software hardware co-design stems from the unique demands that will be imposed by the complex systems in the coming age of networked computational systems (NCS). In a radical departure from tradition, tomorrow's systems will include analog hardware, synchronous and asynchronous discrete hardware, software, and inherently asynchronous networks, all governed by asynchronous control and coordination algorithms. There are three key issues that will guide the development of this approach. First, conceptually, it is difficult to distinguish hardware fro m software. Although intuitively, semiconductor ICs refer to hardware while software is synonymous to programs, clearly, any piece of hardware may be replaced by a program while any software code may be realized in hardware. The truth is that hardware and software are symbiotic, i.e., one without the other is useless, and the difference between them is that hardware is faster but inflexible while software is flexible and slow. Second, a primary cause underlying system unreliability lies at the boundary of hardware and software. Traditionally, software engineers focus on programming while hardware engineers design and develop the hardware. Both types of engineers work off a set of assumptions that presumably define the interface between hardware and software. In reality, these assumptions are generally ad hoc and rarely understood in depth by either types of engineers. As a result, during the life of a system, when the original hardware units are upgraded or replaced for any reason or additional software functions are incorporated to provide new functions, systems often exhibit serious behavior problems that are difficult to understand and repair. For example, in the telecommunications community, there is serious concern over the occurrence of inconsistencies and failures in the context of “feature interactions” and the current inability to understand and reason about these events. While private telephone numbers are successfully blocked from appearing on destination caller Id screens under normal operation, as they should be, these private numbers are often unwittingly revealed during toll-free calls. It is hypothesized that many of these problems stem from the continuing use of legacy code from previous decades where timer values were determined corresponding to older technologies and have never been updated for today's much faster electronics. In TCP/IP networking technology, the values of many of the timer settings and buffer sizes are handed down from the past and the lack of a scientific methodology makes it difficult to determine their precise values corresponding to the current technology. The mismatch at the hardware software interface represent vulnerabilities that tempt perpetrators to launch system attacks. Third, while most traditional systems employ synchronous hardware and centralized software, complex systems in the NCS age must exploit asynchronous hardware and distributed software executing asynchronous on geographically dispersed hardware to meet performance, security, safety, reliability, and other requirements. In addition, while many complex systems in the future including those in automobiles and space satellites will incorporate both analog and discrete hardware subsystems, others will deploy networks in which interconnections may be dynamic and a select set of entities mobile.