Required Capabilities in Self-Navigating Vehicle-Processing Architectures

This article is adapted from my new book, Modern Computer Architecture and Organization. Second Edition, published by Packt Publishing. For more detail on the mathematics and economics of self-driving vehicle architectures, including details on implementing the CNN image recognition architecture discussed in this article using TensorFlow, please see Chapter 16 of the book.

Overview of Self-Driving Vehicles

Several major motor vehicle manufacturers and technology companies are actively pursuing the development and sale of fully self-driving, or autonomous, motor vehicles. The utopian vision of safe, entirely self-driving vehicles beckons us to a future in which commuters are free to relax, read, or even sleep while in transit and the likelihood of being involved in a serious traffic accident is drastically reduced from the hazardous situation of today.

The RISC-V Architecture

This article introduces the exciting, relatively new RISC-V (pronounced risk five) processor architecture and its instruction set. RISC-V is a completely open source specification for a reduced instruction set processor. A complete user-mode (non-privileged) instruction set specification has been released and several inexpensive hardware implementations of this architecture are currently available. 

Work is ongoing to develop specifications for a number of instruction set extensions to support general-purpose computing, high-performance computing, and embedded applications that require minimal code size. Commercially available processors implement many of these developmental extensions.

The Genius of Babbage’s Analytical Engine

In the early 1800s, a ship’s navigator used a sextant to measure sightlines to the Sun, Moon, and other celestial bodies and, with the assistance of nautical tables, computed the ship’s position. Unfortunately, the numerical values in the tables had been prepared using the finest technology available at the time, which consisted of humans working through tedious calculations by hand. Because of this, the tables were riddled with errors, which could easily lead to catastrophe for a ship at sea.

In 1820, Charles Babbage, as a founding member of the Astronomical Society of London, undertook to improve the accuracy of nautical tables. Babbage came to believe it would be possible to construct a machine capable of computing the numeric values for the tables and printing the results. His proposal to develop a machine called the Difference Engine for this purpose led to an effort that terminated after ten years without producing a working apparatus.