From: marni@VNET.IBM.COM ("Marni Goldshlag   marni@vnet.ibm.com")
Newsgroups: comp.dsp
Subject: Mwave
Date: 28 Aug 92 17:31:14 GMT

The following is a description of Mwave:


                        Marni Goldshlag
                        Team Mwave
                        IBM
                        Research Triangle Park, NC

 IBM and TI have announced an alliance and disclosed information
 about Mwave which is an open platform for multi-media computing.
 The Mwave technology is the merging of an innovative multi-media
 Digital Signal Processor (DSP) and a realtime software
 scheduling environment.  Mwave enables multiple DSP tasks to
 execute in a realtime environment and to be dynamically scheduled
 to GUARANTEE no loss of data, image, or sound objects.  Mwave has
 the unique capabilities of being able to load and unload tasks
 into the DSP while other tasks are currently executing.

 The Mwave technology is an OPEN architecture that allows 3rd-party
 programmers to write new DSP tasks and PC drivers/applications
 and add them to the existing library.

      ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?
      | Mwave Operating System (Mwave/OS) Overview |
      @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY

 The Mwave signal-processing subsystem has been specifically designed
 to meet the demanding performance requirements of multimedia
 applications.  This performance capability is achieved by a high
 level of synergism between the core signal processor, Mwave Operating
 System (Mwave/OS), and multitasking host interface components.
 These resources and the host software are effectively VIRTUALIZED
 so that each task may operate independently of other tasks running
 in the system.  The result is a robust application environment
 in which signal processing tasks for speech, audio, video,
 telecommunications, and other diverse sources can be started
 and terminated on a dynamic real-time basis.


               ZDDDDDDDDDDDDDDDDDDDD?
               | Mwave Task Library |
               @DDDDDDDDDDDDDDDDDDDDY

 The Mwave task library contains a collection of digital signal
 processor (DSP) tasks to support common multimedia applications.
 These tasks utilize many of the features of the Mwave processor
 and operate on the Mwave demonstration card.  Each of the Mwave
 tasks can be loaded dynamically and run concurrently with other
 tasks under the Mwave Operating System (Mwave/OS).  The functions
 performed by these tasks include audio, telephony, and image
 processing.  A separate group of system support tasks provide a
 common software interface to the hardware components of the
 demonstration card.  A complete multimedia application consists of
 the application software, device driver(s), Mwave Manager, Mwave/OS,
 and the appropriate Mwave DSP tasks.

 Audio Tasks
   Moving high fidelity data quickly and reliably between a
   PC and its audio subsystem is a major problem in the design
   of multimedia PCs.  Mwave solves this problem by providing
   direct memory access (DMA) of PC memory to the Mwave tasks.
   Consequently, Mwave is capable of mixing 32 channels of 16-bit,
   44.1k samples/second audio data from PC memory and playing it to
   a stereo output.

   In addition, the Mwave audio tasks along with the on-chip MIDI
   port provide all the hardware function required for Multimedia
   PC (MPC) compatibility.  Mwave audio tasks include a sampled-sound
   synthesizer, CD-XA decompression, mu-law and A-law expansion,
   and 8-bit and 16-bit stereo PCM playback and recording at sample
   rates of up to 44.1k samples/second.

 Telephony Tasks
   The telephony functions include tasks for asynchronous modems, FAX,
   and a telephone answering machine.  The asynchronous modems support
   speeds from 50 bps to 9600 bps including Bell-103, Bell-212A,
   CCITT V.21, V.22bis, and V.32 protocols.  Also included are tasks
   that perform MicroCom Networking Protocol (MNP) classes 1 through
   5 and call progress detection.  The modems utilize the Mwave
   Processor serial communications port hardware to provide an
   industry-standard interface to existing communication programs.
   A device driver provides compatibility with the Attention (AT)
   command set.

   The library includes a collection of tasks to support G3 FAX and
   telephone answering machine functions.  The FAX support tasks
   include a FAX T.30 protocol manager, FAX image
   compression/decompression, and FAX modems (CCITT V.21, V.27ter,
   V29). The telephone answering machine tasks include the phone
   line manager, microphone manager, DTMF receiver, voice sub band
   coder/decoder, and a time-domain harmonic scaling task to allow
   playback of speech at variable speeds without altering the pitch.
   In addition, a task is provided that allows the Mwave demonstration
   card to be used as a speaker phone.

 Image Processing Tasks
   The Mwave Task Library includes two tasks to accelerate the
   processing of images. They perform the 8x8 two-dimensional discrete
   cosine transform and the inverse transform. Included with the
   transforms are the quantization, dequantization, and color space
   conversion functions. These tasks perform a portion of the
   computation required to display JPEG images.  Combined with a
   device driver and DMA support they can decompress and display
   a moderately complex 640x480 image in less than one second
   on a 33 Mhz 386 system.

 Mwave System Support Tasks
   The system support tasks provide common software interfaces
   between system hardware and other DSP tasks.  The functions
   supported by these tasks include telephone interface
   control and dialing, handset control and status,
   CD-quality stereo output, CD-quality microphone input,
   serial communications port control and data flow, DMA
   data flow, analog configuration control, sample rate conversion,
   and MIDI port interface control.In general, these tasks are
   known as DSP BIOS tasks because they provide a basic input
   and output service for Mwave.


             ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?
             | Mwave Technology Demonstration |
             @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY

 The Mwave technology demonstration on March 10th executed on a
 prototype card inside an IBM PS/2 microchannel machine that
 includes the Mwave digital signal processor (DSP). The Mwave
 Operating System (Mwave/OS) can concurrently run a number of
 tasks with the ability to dynamically add tasks or remove
 tasks without affecting the execution of other tasks. This is a
 feature known as hard-real-time dynamic configurability. The
 Mwave processor can execute software that replaces many
 physical devices.  Some of these devices are emulated in
 this demonstration, others are yet to be defined.  The Mwave
 processor is even capable of emulating more than one physical
 device simultaneously.  The Mwave processor and Mwave/OS are
 designed to create a standard base upon which new software
 packages can be readily created.

  Automated Mwave Demonstrations:

    A CD-XA dual stereo decoder demo was shown with 2 stereo channels
    (4 total channels): one channel is a voice recording at level C
    (9.45k bytes/sec) at "AM" quality, and a second channel is
    a music recording at level B (18.9k bytes/sec) at "FM" quality.
    The Mwave processor decodes these channels and mixes them
    together for playback.

    A 3-Dimensional fast Fourier transform (FFT) power spectrum display
    of a CD audio disk's audio output (stereo 44.1kHz, 16 bit data) was
    shown. The PC display shows the real-time frequency response
    versus time.

    A sampled sound synthesizer was shown emulating different musical
    instruments, like pianos, guitars, horns, etc. CD quality
    (44.1kHz, 16 bit) recordings of notes from real instruments
    provide the sound. The synthesizer is driven by standard
    MIDI files stored on PC disk. The combination of MIDI files
    and this synthesizer allow HiFi music to effectively be
    represented in a form that is 1000 times more condensed than
    a CD quality recording.

    A JPEG (Joint Photographic Experts Group) still frame full color
    image decompression demo was shown with JPEG images decompressed
    from hard disk to display in less than 1 second for resolutions
    of 640 by 480 pixels with 256 colors. This decompression time
    allows images to be retrieved and displayed faster in compressed
    form from disk than in uncompressed form, and take a fraction
    of the disk space.  The JPEG compression algorithm compresses 24
    bit RGB 640 by 480 pixel files from about 900k bytes down to
    about 35k bytes or about 25 to 1 compression.

  Escorted Mwave Demonstrations

    A V.32 modem/Prodigy application is shown using the Mwave V.32
    function (9600bits/sec Full Duplex Modem) that works with
    any PC application that uses a PC serial port. This
    demonstration shows how the Mwave processor fully implements
    a standard PC serial port. It also shows a prototype Prodigy
    system operating at 9600bps speeds.

    A G-3 facsimile receiver demo shows reception of a page
    from a standard G-3 facsimile machine and a real-time display
    of the page on the PS/2 monitor as it is received. The Mwave
    processor implements the V.2/V.27ter modems (2400, 4800, 7200,
    and 9600 bits/second), the T.30 protocol, and the image
    decompression (or compression if transmitting).

    A V.32/MNP modem file transfer at 19,200 bits/second is
    shown using MNP Class 5 compression. A file is received by the
    demo machine and displayed in real-time to show the speed of
    the V.32/MNP modem.

    A V.22bis modem and the Prodigy application is shown
    using the Mwave V.22bis function (2400 bits/second Full Duplex
    Modem). This is the same as the V.32 modem with Prodigy, just
    not as fast.

    A 3-Dimensional FFT of a HiFi microphone input is shown.
    This is the same as the other 3-D demo except its input is
    from a live microphone.

    A JPEG plus V.32 modem with Prodigy application demo is shown
    which is the same as the V.32 modem with Prodigy demo, but the
    JPEG image decompression is done at the same time as the modem
    is communicating using Prodigy.

    A sampled sound synthesizer, V.22bis modem with Prodigy
    application, plus a HiFi microphone input, are all shown
    simultaneously with a 3 input mixer combining all three independent
    audio sources, i.e., the synthesizer output, the sound of the
    modem on the telephone line, and the HiFi microphone input. The
    output of the mixer is sent to the HiFi outputs.

    A V.22bis/MNP modem is shown running concurrently with
    JPEG image decompression, which is synchronized with
    Sub Band Decoding decompression on an audio file from disk.
    The audio stream additionally can be speeded up or slowed down
    using time domain harmonic scaling (TDHS) without altering the
    pitch of the audio source. This is an example of extensive
    multitasking with 18 tasks running simultaneously on the Mwave
    processor under Mwave/OS. The Procomm Plus application program
    transmits a file through the Mwave V.22bis/MNP modem at
    4800 bits/second. Simultaneous with this, a multimedia video
    and audio presentation is given.

  Other Possible Mwave Applications that the Mwave architecture could
  support with future tasks and/or enhancements.

    Telephone answering machine and speaker phone
    Other Modems like: V.32bis, V.17, V.FAST, cellular
    Other Modem Protocols like SDLC, V.42, V.42bis
    Speech synthesis
    Speech recognition
    MPEG audio processing
    Picture phone
    Windowed motion video


      ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?
      | Mwave Digital Signal Processor (DSP) Overview|
      @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY

 The Mwave Processor has been developed to meet the increasing
 performance demands imposed by a growing list of real-time
 applications.  The processor consists of a core digital signal
 processor (DSP) plus peripheral elements that enhance its ability
 to efficiently support Mwave/OS and interface to the host system.
 Key components of the Mwave Processor include:

    Micro Channel Busmaster DMA capability provides applications
    with virtual DMA channels.  This allows concurrent applications
    to have individual high-speed data transfer paths between
    the host and the Mwave Processor's core DSP.

    Hardware I/O circuits were designed to automatically stream
    data between peripheral devices and data buffers in the Mwave
    Processor's memory space without involving the Mwave Processor
    directly.  This provides efficient data movement between the
    Mwave Processor and its peripherals.

    Virtual interrupt channels provide concurrent applications
    with efficient communication paths between the Mwave Processor
    and the PS/2 host processor.

 Certain fundamental architectural features characterize the
 architecture of the Mwave Processor's DSP core.
 They include:

    Deterministic Instruction Execution
      Real-time signal processing applications run in a
      very deterministic environment, not a statistical one.
      That is, the time limits set for tasks in real-time signal
      processing applications must typically be adhered to absolutely,
      not just on average.  The requirement this imposes is that it
      be possible to measure the maximum run time of each real-time
      signal processing task to determine if particular combinations
      of tasks can run concurrently.  Hardware features within the
      Mwave processor, along with features of Mwave/OS, make this
      task determinism possible.

    Harvard Architecture
      A simple technique for reducing instruction execute latency
      is to separate the data and instruction memories (the
      Harvard architecture) and provide totally separate data
      and instruction buses.


      ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?
      | Mwave Digital Signal Processor (DSP) Details |
      @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY

  * Peak performance of 51 Million Operations Per Second (MOPS)
  * Up to 3 operations per instruction  (17 MIPS guaranteed)
     * 51 MOPS = 17 MIPS * 3 operations/instruction
  * Specific features for the handling of realtime multi-media objects
  * Integrated UART registers emulating current modem interfaces
     * Compatible with industry standard communication software
     * FIFO capability
     * Can be disabled for future high speed modems using DMA
  * MIDI port with function extensions
     * 3 modes (PS/1,smart,snoop)
     * Integrated DMA support
  * Serial port for 196 kHz DAC audio output
     * Stereo, 16 bit, oversampled (DSP output is 44.1 kHz)
  * Serial port for 44.1 kHz ADC audio input
     * Stereo, 16 bit
  * Serial ports to control telephony functions
     * US telephony attachment with status/control features
     * Seperate Telephone/Handset support
     * Features for world-trade support
  * General-purpose ports for future card functions
     * Two 4-Mbit Full-duplex ports
  * Complete Bus control logic for Microchannel or AT bus
     * Support for virtual DMA channels (packet chaining)
  * High-Performance Bus Master capability for Microchannel and AT



   ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?
   | Illustrated below is a high level functional overview    |
   | of a prototype "non-production" single-slot microchannel |
   | card that was used to demonstrate the Mwave technology.  |
   |DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD|
   | This drawing is not to be misconstrued as a product      |
   | commitment or plan by IBM or TI.  Its sole purpose is    |
   | to be used as a "protoboard" when discussing different   |
   |    possible market segments and customer demands.        |
   @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY

                                                   Midi Breakout Cable
                                                         ZD?
      ZDDDDDDDDDDDDD?                ZDDDDDDDDDDD? Jack  | |DD IN
      |             |DDDDDDDDDDDDDDDD|   MIDI    |DD<<DDD| |DD OUT
      |  Mwave DSP  |   ZDDDDDDDDDD? | Interface |       | |DD THRU
      |  Processor  |   |  16 bit  | @DDDDDDDDDDDY       @DY
      |             |   | 196 kHz  |DDDDDDDDDDDDDDDDDDDDDDDDDD> L out
      |             |DDD|Oversample|DDDDDDDDDDDDDDDDDDDDDDDDDD> R out
      |   51 MOP    |   |Stereo DAC|  ZDDDDDDDDDDDD?       Audio Jacks
      | Multi-Media |   @DDDDDDDDDDY  |   16 bit   |DDDDDDDDDD< L in
      |     DSP     |                 |  44.1 kHz  |DDDDDDDDDD< R in
      |             |DDDDDDDDDDDDDDDDD| Stereo ADC |
      |             |                 @DDDDDDDDDDDDY
      |             |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDD?
      |             |DD| 32Kx16 Static Data RAM    |
      |             |  |DDDDDDDDDDDDDDDDDDDDDDDDDDD|
      |             |DD| 32Kx24 Static Instruc RAM |     Telephony
      |             |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDY     Daughter-card
      |DDDDDDDD?    |             ZDDDDDDDDDDDDDDDDDDDDDDDD?
      |Micro   |    |      ZD?  ZD|                        |
DDDDDD| Channel|    |      |C|  |C|    ZDDDDDDD?   ZDDDDDDD|
System|        |    |      |O|  |O|DDDD| Codec |DDD| RJ-11 | Phone
 BUS  |  or    |    |      |N|  |N|    @DDDDDDDY   |  Jack |Company
DDDDDD|        |    |DDDDDD|N|  |N|    ZDDDDDDD?   |DDDDDDD|
      |  ISA   |    |DDDDDD|E|  |E|DDDD| Codec |DDD| RJ-11 |Telephone
      |DDDDDDDDY    |      |C|  |C|    @DDD+DDDY   |  Jack |
      |             |      |T|  |T|        |       @DDDDDDD|
      |             |      |O|  |O|  ZDDDDD+DDDDDD?        |
      |             |      |R|  |R|DD|   Stuff    |        |
      |             |      @DY  @D|  @DDDDDDDDDDDDY        |
      @DDDDDDDDDDDDDY             @DDDDDDDDDDDDDDDDDDDDDDDDY