Digital Signal Processing, Cellular Automata, and Parallelism Karl Schramm San José State University Computer Science Department CS 240 Spring 2003 Outline Introduction to digital signal processing Relationship of DSPs and CAs (Hint: parallelism) An overview of parallel computing The future? Introduction to Digital Signal Processing Manipulation of a signal Signals are waveforms Typically carried out in realtime Calculations are handled by Digital Signal Processors (DSP) DSP Uses Telecom: Military Sonar & Radar processing Visual tracking systems for laser-guided weapons Communication encryption/decryption Medical Multiplexing Signal encoding/decoding Compression CAT & MRI imaging Entertainment Audio & visual analysis and effects DSP Overview Receives a signal, processes it, and outputs result Several DSPs can be linked together in a serial chain Can be implemented in software or hardware Hardware is best for realtime performance Analog to Digital Conversion Converts a continuous, analog signal into a discrete, digital signal Analog signal is sampled at a regular interval Sampled values are stored as a data stream 1D array [6: page 37] Sampling Shannon’s sampling theorem A signal must be sampled at a rate at least 2x the of the maximum frequency component (Nyquist frequency) or else aliasing will occur [Nyquist (1928), Shannon (1949)] Aliasing is the inability to accurately reconstruct a signal from sampled data Low-pass analog filter (anti-aliasing filter) applied before sampling [6: page 41] DSPs vs. CAs Both perform the same function: A DSP chain is similar to the successive generations of a CA Receive data & process it DSP calculations are usually complex Calculations of CAs don’t usually change over time A DSP can be viewed as a 1D Continuous CA Signal is a continuous valued array CAs as DSPs CAs can be used in sound synthesis Quantized CA values can be used to play a tone or trigger a MIDI note (CAMUS) Continuous CA values can be used to generate a signal (CASound) top: [3]; bottom: [5] CAs and Parallelism Parallelism is an important aspect of CAs Parallelism allows CAs to be used to model: Fluid dynamics Cell & crystal growth Etc. CAs are parallel machines Cells are independent entities SIMD Shared Memory DSPs must exhibit parallelism to be like a CA Flynn’s Taxonomy SISD SIMD Single Instruction stream Multiple Data stream MIMD Single Instruction stream Single Data stream von Neumann architecture Multiple Instruction stream Multiple Data stream MISD Multiple Instruction stream Single Data Stream Pipelined architecture Parallel Computing Memory Configurations Shared Memory Processors share a single address space Processors communicate via memory Multicomputer Name is derived from the term message passing multiprocessors Processors don’t share a single address space Processors communicate by passing messages via an interconnection network Difficult to program can’t share memory message passing is error prone Typically scales better than a shared memory system Requirements for Parallelism Data must be parallelizable Divide and conquer Must have a parallel hardware architecture DSP Data Parallelism Digital signal is an array of values Arrays can be accessed in parallel Used in smoothing and simple low-pass filters Otherwise limited value in DSP Decomposition Divide a signal into many smaller, simpler signals Smaller, simpler signals can processed in parallel Used in many crucial DSP applications: Encoding/decoding information on a carrier signal Frequency analysis Advanced filtering Multi-band equalization Etc. Superpostion and Decomposition A signal can be decomposed into several smaller, simpler signals Decomposed signals can added together to form the original signal Processing decomposed signals has the same effect as processing the original signal if the system is linear [6: page 98] Linear Systems Homogeneity Modification in the input signal’s amplitude results in a corresponding modification in the output. f(x)t = ty Additivity For any two inputs, the sum of the outputs is the same as if the sum of the two inputs had been processed together. f(x1) = ky1 f(x2) = ky2 f(x1) + f(x2) = ky1 + ky2 f(x1 + x2) = ky1 + ky2 DSPs and Linearity Most DSP operations are linear Nonlinear DSP operations are parallelizable as well Subdivide the data array Emulate the nonlinear operation with a linear operation Fourier Decomposition Decomposes signal into sine & cosine signals Sinusoidal waves are easy to process Uniformity Simple representation (amplitude & phase) Sinusoidal fidelity If a sine wave is input to a linear system, the output will be a sine wave at the same frequency [6: page 105] Fourier Equations Continuous Fourier Transformation: X(f)= ∫ x(t)e-i2ft dt Discrete Fourier Transformation (DFT): X(m) = ∑x(n)e-i2nm / N Fast Fourier Transformation (FFT): Optimized DFT algorithm Euler’s relationship: e-i = cos() – isin() DSPs and Hardware Parallelism Minor hardware parallelism is achieved with Harvard architecture Adds a separate memory store and bus for instruction data Allows for concurrent retrieval of instructions and data [6: page 511] DSPs and Hardware Parallelism Several of the same type of DSP can be linked together into a multiprocessing array SIMD & MIMD Shared & multicomputer memory architectures Linking processors requires “glue” logic “Glue” logic controls data flow and task distribution Some DSPs are designed with “glue” logic built in Analog Devices SHARC family Texas Instruments TMS320 family Summary CAs are parallel computational devices SIMD, Shared Memory device DSPs can be parallel computational devices SIMD, Shared Memory device MIMD, Multicomputer Parallelism is the tie that binds The Future? Sony, IBM, and Toshiba’s “Cell Microprocessor” technology A single processor has 4 - 16 general-purpose processor cores, known as “cells” “Cell” processors are linked together via high speed communication bus Devices with “Cell” chips can be connected over a high-speed network to perform distributed computing May be first used in the Sony Playstation 3 video game console Process streaming video data over a network Earliest expected rollout date is 2005 References [1] Lyons, R. (2001). Understanding Digital Signal Processing. Upper Saddle River, NJ: Prentice Hall. [2] Margolus, N. (1993). “CAM-8: A Computer Architecture Based on Cellular Automata”. Cambridge, MA: MIT Laboratory of Computer Science. Available: http://www.ai.mit.edu/people/nhm/cam8.pdf [3] Miranda, E. (2002). “CAMUS: A Cellular Automata Music Generator”. Available: http://website.lineone.net/~edandalex/camus.htm [4] Rorabaugh, C. (1998). DSP Primer. New York: McGraw-Hill. [5] Schramm, K. (2003). “CASound: Sound Synthesizing 1D CA”. Available: http://sjsu.rudyrucker.com/~karl.schramm/applet/ [6] Smith, S. (1997). The Scientist and Engineer's Guide to Digital Signal Processing. San Diego, CA: California Technical Publishing. [7] Spooner, J., (August 6, 2002). “Chip trio allows glimpse into ‘Cell’”. CNET News.com Available: http://news.com.com/2100-1001-948493.html?tag=fd_top [8] Wilkinson, B. & Allen, M. (1998). Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Upper Saddle River, NJ: Prentice Hall. [9] Wolfram, S. (2001). A New Kind of Science. Champaign, IL: Wolfram Media, Inc.