Softmodem



A software modem, commonly referred to as a softmodem, is a modem with minimal hardware that uses software running on the host computer, and the computer's resources (especially the central processing unit, random access memory, and sometimes audio processing), in place of the hardware in a conventional modem.

Softmodems are also sometimes called winmodems due to limited support for platforms other than Windows. By analogy, a linmodem is a softmodem that can run on Linux.

Softmodems are sometimes used as an example of a hard real-time system. The audio signals to be transmitted must be computed on a tight interval (on the order of every 5 or 10 milliseconds); they cannot be computed in advance, and they cannot be late or the receiving modem will lose synchronization.

History
The first generations of hardware modems (including acoustic couplers) and their protocols used relatively simple modulation techniques such as FSK or ASK at low speeds. Under these conditions, modems could be built with the analog discrete component technology used during the late 70s and early 80s.

As more sophisticated transmission schemes were devised, the circuits grew in complexity substantially. New modulation required mixing analog and digital components, and eventually incorporating multiple integrated circuits (ICs) such as logical gates, PLLs and microcontrollers. Later techniques used in modern V.34, V.90 and V.92 protocols (such as a 1664-point QAM constellation) are so complex that implementing them with discrete components or general purpose ICs became impractical.

Furthermore, improved compression and error correction schemes were introduced in the newest protocols, requiring extra processing power in the modem itself. This made the construction of a mainly analog/discrete component modem impossible. Finally, compatibility with older protocols using completely different modulation schemes would have required a modem made with discrete electronics to contain multiple complete implementations.

Initially the solution was to use LSI ASICs which shrank the various implementations into a small number of components, but since standards continued to change, there was a desire to create modems that could be upgraded.

In 1993, Digicom marketed the Connection 96 Plus, a modem based around a DSP which was programmed by an application on startup. Because the program was replaceable, the modem could be upgraded as standards improved. Digicom branded this technology SoftModem, perhaps originating the term.

Likewise, the term "Winmodem" may have originated with USRobotics' Sportster Winmodem, a similarly upgradable DSP-based design.

In 1996, two types of modem began to reach the market: host-based modems, which offloaded some work onto the host CPU, and software-only modems which transferred all work onto the host system's CPU. In 1997, the AC'97 standard for computer audio would introduce channels for modem use, making software modem technology common in PCs.

Since then, some softmodems have been created as standalone software projects utilizing standard sound card interfaces, such as an experimental open-source 96 kbit/s leased-line softmodem called AuDSL from 1999, and the Minimodem project which implements several FSK modem standards.

Types
Softmodems can be separated into two classes: controllerless modems and pure software modems.

Controllerless modems utilize a DSP on the modem itself to perform modulation, demodulation and other tasks. Some, known as "host-based" modems, may still use some amount of the host's CPU power for some tasks.

Pure software modems perform all modem tasks on the host PC's CPU, while the hardware provides only analog-digital conversion and connection to the telephone network.

Advantages and disadvantages
The original stated purpose of the DSP-based softmodem was to provide for upgradeability, a concern in an era when modem standards were changing rapidly. Both DSP and pure software modems offer this feature.

A downside of either type of softmodem is that drivers must be provided, and the terms "softmodem" and "winmodem" have gained negative connotations, particularly within the open-source community, due to drivers for Linux often being omitted or provided only as unmaintainable binaries.

While DSP-based softmodems usually only require host attention during startup, pure software modems consume some CPU cycles on the host, which can conceivably slow down application software on older computers. This was a major issue in the 1990s, when CPUs were not nearly as powerful as today's typical hardware.

DSL softmodems
Although "softmodem" typically applies to PSTN modems, there are some software-based DSL modems or even routers, which work on the same principles but at higher bandwidth and with more complex encoding schemes. One of the first software based DSL modem chipsets was Motorola's SoftDSL chipset.

The term WinDSL has been coined to describe this kind of technology. DSL softmodems generally require the same interfaces as PSTN softmodems, such as USB or PCI.