24-05-2022 | | By Robin Mitchell
Recently, researchers have developed an organic transistor that can be electrically programmed to perform different logic functions. What challenges does hardware present, what did the researchers develop, and what advantages would programmable hardware present?
One major convenience of software is that any change can be made by adjusting the source code, recompiling, and replacing the older software version with the updated version. While getting updates out into the world on devices outside of the developers' control can be problematic, the freedom to do so enables software to adapt, whether it is to improve its performance, fix a bug, or provide new features.
Hardware, however, is very different to software in that most devices, once manufactured, cannot be changed. With the exception of FPGAs and CPLDs, hardware circuitry consists of immutable parts whose function is decided by the original manufacturer and cannot be changed. For example, a linear regulator (such as the AMS1117) may be designed to provide a fixed 3.3V output. If it turns out later in the manufacturing stage that a lower voltage is needed, there is absolutely nothing that can be done without an entire redesign and remanufacture.
This problem was commonly seen in old computers from the 1980s, where the first production runs of a machine would be found to have a specific glitch. Instead of rebuilding these machines, additional components would be soldered with wires on top of the board. While this saves money, it can be a labour-intensive task and can only be used to solve small errors.
The inability to change the physical design of a circuit once in use can also introduce serious security vulnerabilities. These types of vulnerabilities have become increasingly more common, with one famous example being the Intel Spectre bug that takes advantage of speculative instruction execution to retrieve data from protected areas of memory. Once discovered, there are very few options that designers have (if any), and devices can require physical replacement.
Recently, researchers from Tokyo University done whose functions can be changed electrically to perform different logic functions. The new anti-ambipolar transistor incorporates two separate gates that are used as logic inputs, while the drain voltage is used to carefully tune the transistor into a specific logic function. As such, the researchers were able to create a single transistor with the ability to perform AND, OR, NAND, NOR, and XOR functions.
The researchers noted in their paper that the ability to shrink a NAND gate into a single transistor from a traditional four transistor CMOS design could present significant semiconductor shrinking while maintaining transistor sizes. Additionally, using an organic transistor can also help reduce the size of current organic designs (which are significantly larger than their silicon counterparts).
In order for the transistor to function, the voltages at the gates and drain need to be adjusted depending on the desired logic function. While this does allow for electrical programmability on the fly, it also means that connecting such transistors together is problematic as voltage levels need to be adjusted (the output voltage of the NAND configuration may not be correct for use with a NOR gate after).
Transistor layout next to AND function with gate voltage levels
As previously discussed, one of the most significant advantages of programmable hardware is the ability to make changes after manufacture. Mistakes and/or vulnerabilities found in a device can be pushed to devices as a software update whereby the internal configuration of hardware is changed. This is something that can already be done with FPGAs and CPLDs, but these devices are incredibly complex, and their low logic density means that they are unable to efficiently replace dedicated silicon (for example, the silicon space taken by a microcontroller in an FPGA is significantly more than that of a dedicated piece of silicon).
The use of programmable hardware could also enable hardware to adopt new protocols on-the-fly. For example, a device that integrates USB may be needed to support I2C or SPI without any additional bus converters. This could easily be done with programmable hardware whereby the USB port is reprogrammed into an I2C or SPI bus controller. Additionally, the ability to reprogram older hardware would help reduce e-waste by breathing new life into older circuits that can be updated with newer designs.
Programmable hardware is still in its infancy, and FPGAs and CPLDs remain the only option, but their expensive nature rarely sees their use in off-the-shelf products. If researchers can find ways to reduce the size of programmable units, it is possible for future hardware to be reprogrammable and present devices with new opportunities.