Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS for the TMS320C32 DSP
|
|
|
- Gertrude Anis Wilcox
- 9 years ago
- Views:
Transcription
1 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS for the TMS320C32 DSP APPLICATION REPORT: SPRA355 Authors: Susan Yim Yinong Ding E.Bryan George DSP Research and Development Center P.O. BOX , MS 446 Dallas, TX Digital Signal Processing Solutions January 1998
2 IMPORTANT NOTICE Texas Instruments (TI) reserves the right to make changes to its products or to discontinue any semiconductor product or service without notice, and advises its customers to obtain the latest version of relevant information to verify, before placing orders, that the information being relied on is current. TI warrants performance of its semiconductor products and related software to the specifications applicable at the time of sale in accordance with TI s standard warranty. Testing and other quality control techniques are utilized to the extent TI deems necessary to support this warranty. Specific testing of all parameters of each device is not necessarily performed, except those mandated by government requirements. Certain application using semiconductor products may involve potential risks of death, personal injury, or severe property or environmental damage ( Critical Applications ). TI SEMICONDUCTOR PRODUCTS ARE NOT DESIGNED, INTENDED, AUTHORIZED, OR WARRANTED TO BE SUITABLE FOR USE IN LIFE-SUPPORT APPLICATIONS, DEVICES OR SYSTEMS OR OTHER CRITICAL APPLICATIONS. Inclusion of TI products in such applications is understood to be fully at the risk of the customer. Use of TI products in such applications requires the written approval of an appropriate TI officer. Questions concerning potential risk applications should be directed to TI through a local SC sales office. In order to minimize risks associated with the customer s applications, adequate design and operating safeguards should be provided by the customer to minimize inherent or procedural hazards. TI assumes no liability for applications assistance, customer product design, software performance, or infringement of patents or services described herein. Nor does TI warrant or represent that any license, either express or implied, is granted under any patent right, copyright, mask work right, or other intellectual property right of TI covering or relating to any combination, machine, or process in which such semiconductor products or services might be or are used. Copyright 1997, Texas Instruments Incorporated
3 TRADEMARKS TI is a trademark of Texas Instruments Incorporated. Other brands and names are the property of their respective owners.
4 CONTACT INFORMATION US TMS320 HOTLINE (281) US TMS320 FAX (281) US TMS320 BBS (281) US TMS320
5 Contents Abstract...7 Product Support on the World Wide Web...8 Introduction...9 System Components...11 MIDI Interface to Host Computer...12 Description of the Microsoft Windows MIDI Application Software...13 Parameter Update Problem (Handshake between PC and DSP)...14 PC Interrupt...16 Floating-Point Format Conversion (UNIX to PC IEEE, IEEE to DSP)...17 Key Mapper...17 MIDI Message Processor...17 Music Synthesis Engine...19 Music Synthesis Algorithms...20 Descriptions of Music Synthesis Algorithms...20 Analysis-By-Synthesis OverLap-Add (ABS/OLA)...21 Spectral Modeling System (SMS)...21 TMS320C32 Implementation and Optimization...22 Compiler Optimization...22 Code Optimization...22 Reduction on External Memory Fetches...24 Hand Assembly Coding...25 Discussion and Summary...26 ABS/OLA Resources Usage...27 SMS Resources Usage...28 Conclusion...28 References...29
6 Figures Figure 1. MIDI Music Synthesis System...11 Figure 2. Interface between the MIDI Device, Host, and DSP...14 Figure 3. Handshake between PC and DSP...16 Figure 4. Key Mapping for Music Synthesis...17 Tables Table 1. Computational Loading for ABS/OLA (5 ms Frame Rate)...27 Table 2. Memory Usage for ABS/OLA (5 ms Frame Rate)...27 Table 3. Computational Loading for SMS (2.5 ms Frame Rate)...28 Table 4. Memory Usage for SMS (2.5 ms Frame Rate)...28
7 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS for the TMS320C32 DSP Abstract This application report describes a real-time MIDI music synthesis system using a low cost digital signal processor (DSP) such as the Texas Instruments (TI ) TMS320C32 in a PC environment. The system consists of a MIDI device with a MIDI interface, an IBM compatible personal computer, and a TMS320C32 development board where the core of the music synthesis engine resides. The MIDI device generates music synthesis commands. The host computer handles communications between the MIDI device and the DSP, where music samples are synthesized using sinusoidal modeling-based music synthesis techniques. Two sinusoidal model-based music synthesis algorithms are discussed: the Spectral Modeling System (SMS) and the Analysis-By-Synthesis and OverLap-Add (ABS/OLA). This report details the interoperability of the three processes, the control and handshake for data flow, the input file structure, and the mechanism used for synthesis. Keywords: DSPRDC, MIDI, Music Synthesis, Digital Audio Signal Processing, TMS320C32, DSP Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS 7
8 Product Support on the World Wide Web Our World Wide Web site at contains the most up to date product information, revisions, and additions. Users registering with TI&ME can build custom information pages and receive new product updates automatically via . 8 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS
9 Introduction Music synthesis plays an important role in multimedia applications, modern entertainment, and professional music systems. Popular music synthesis techniques used in the market include Sampling/wavetable synthesis Frequency modulation (FM) Physical modeling Most PC sound cards in the market use a combination of FM and sampling technology where only limited control capabilities are provided. In the REALMS (Real-time Environment and ALgorithms for Music Synthesis) project, we aim to contribute to this rapidly growing market by combining TI s proprietary music synthesis algorithms with TI s state-of-the-art DSP technologies. We designed this MIDI-driven real time music synthesis system to demonstrate our music synthesis algorithms using a TI TMS320C3X digital signal processor as a music synthesis engine. This system is intended to provide a foundation and a reference design for future development of a music synthesis card or single music synthesis IC, as well as for low cost fixed-point implementation of music synthesis engines for the moderate quality music synthesis market. One challenge in implementing the MIDI-driven real time music synthesis system is to integrate MIDI signal with the music synthesis engine and the necessary Input/Output control. The other challenge is to synthesize music samples using our music synthesis algorithms in real time on the TI TMS320C3X digital signal processor. The MIDI-driven real-time music synthesis system consists of three major components: MIDI device that generates the MIDI data stream TMS320C3X development card IBM compatible PC (a sound generator that receives MIDI data stream) Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS 9
10 The communications or handshake between the MIDI device and DSP are controlled by the host computer running under the Windows 3.1/95 operating environment. Hence, the MIDI device is the initiator, the host computer is the recipient of the MIDI data which interprets the received MIDI messages and drive the DSPbased synthesis engine accordingly. The Music Instrument Digital Interface (MIDI) is simply a data communications protocol for music equipment, computers and software to exchange information and control signals to synthesize music [1]. It symbolically describes instructions for synthesizers to generate sounds. The MIDI data stream is a unidirectional asynchronous bit stream at kbits/sec with 10 bits transmitted per byte (a start bit, 8 data bits, and one stop bit). A MIDI message is made up of an eight-bit status byte which is generally followed by one or two data bytes. For example, a MIDI message can include the type of instruments, the notes, the loudness or effects and many other types of control information that the user has selected/issued. The quality of the actual sound is dependent on the algorithms that the synthesizer adopts. Some of the popular methods that are currently used in the market are the sampling/wavetable synthesis, FM synthesis, physical modeling using waveguides. Another promising technology is the sinusoidal model-based music analysis and synthesis. We have been investigating and evaluating two of the approaches, the Spectral Modeling System (SMS) and the Analysis-By-Synthesis and OverLap-Add (ABS/OLA). Currently, we have implemented a signal-note synthesizer in real-time using either the ABS/OLA or SMS synthesis algorithm. The paper is organized as follows: System Components describes the real-time MIDI driven music synthesis system. MIDI Interface to Host Computer introduces the MIDI keyboard and Opcode Note1/++ external MIDI interface. Description of the Microsoft Windows MIDI Application Software describes the MIDI application software. Music Synthesis Engine describes how music synthesis is performed on the TMS320C32 DSP. Music Synthesis Algorithms describes the music synthesis algorithms using sinusoidal modeling. Discussion and Summary includes results and discussion. 10 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS
11 System Components Our MIDI-driven real-time music synthesis system consists of three major components: MIDI device We use the Yamaha W7 MIDI keyboard with an external MIDI interface Note/1++ from Opcode. TMS320C3X development board Tiger32EVM board with the TMS320C32 low cost DSP operating as the music synthesis engine Host machine IBM compatible PC (Pentium) Figure 1. MIDI Music Synthesis System The MIDI device initiates the music synthesis process by generating MIDI data. The host computer receives MIDI data, interprets the received MIDI messages, and drives the DSP-based synthesis engine accordingly. That is, the MIDI device communicates with the DSP via the host computer under the Windows 3.1/95 operating environments. Figure 1 shows the system setup. MIDI KEYBOARD PC MIDI data MIDI INTERFACE SPEAKERS MIDI data-->midi message 1. Interpret MIDI message 2. Load parameter files 3. Modify parameters Send parameters (Interrupt) TM S320C32DSP Music Synthesis Engine (DMA) (DMA) A/D Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS 11
12 MIDI Interface to Host Computer In this system, the MIDI keyboard generates a stream of serial MIDI data. The fundamental function of a MIDI interface is to convert the serial MIDI data to parallel data bytes, perform the necessary buffering (along with the required start and stop bits) and then transmit the data stream to the host computer. The Opcode Note1/++ is an external MIDI interface which communicates to the host computer via the printer port. 12 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS
13 Description of the Microsoft Windows MIDI Application Software A MIDI application must handle two levels of communications: Signal path from the MIDI interface to the host computer Handshake between the host computer and the DSP-based music synthesizer We have developed MIDI application software under Windows 3.1 (this can be upgraded to Windows 95 if necessary). Microsoft Windows applications address hardware devices (such as MIDI interfaces and synthesizers) by means of device drivers. Device drivers provide application software with a common interface through which hardware can be accessed. This simplifies the hardware compatibility issue and increases the flexibility of the application software. That is, the application software can be used with any MIDI device that has a standard Windows device driver. The MIDI interface comes with a multi-client Windows device driver that provides low level control over the received MIDI data stream and decodes and exports incoming MIDI messages to the Windows operating system. The application software is responsible for system initialization, such as: Loading parameter files Receiving MIDI events (for example, musical instrument type, note on/off, key pressure, etc.) Invoking appropriate responses by modifying synthesis parameters Delivering synthesis parameters to the DSP at the request of the DSP Figure 2 shows the software organization. Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS 13
14 Figure 2. Interface between the MIDI Device, Host, and DSP MIDI INTERFACE HOST PC Open and Read Parameter files DSP MIDI Data MIDI Message DSP Message Request Data MIDI event Perform Music Synthesis Modify Parameters Send Data to DSP Audio Playback Parameter Update Problem (Handshake between PC and DSP) There are two problems concerning the data communications or parameter update. The fixed rate parameter update required at a certain sample period (since we cannot load the entire parameter file into onboard RAM due to limited memory available on the current Tiger32EVM board) The burst of information generated by the MIDI events. The rate of data flow between the PC and DSP is greatly limited by the I/O bandwidth available on the hardware. There is only one 16-bit data transfer register (TXREG) on the Tiger32EVM board [2] for this purpose. We chose the most basic update mechanism by updating all parameters at the beginning of the sample computation cycle. We incorporated synthesis commands and changes to existing parameter values in the new information. 14 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS
15 One problem with this approach is that the duration of the update period is fixed. Therefore, only a certain number of updates can take effect on any one cycle. If the rate of the updating process is higher than the rate of the incoming MIDI events, there is no audible erratic or delayed musical response. Based on our experiments, we found that this update delay might be acceptable within the range of 2-5 ms for some applications. The sequence of operations involved in the handshaking between the host PC and the DSP is illustrated in Figure 3. In the initialization phase, the user selected input parameter files are loaded into PC memory. A signal is sent to the DSP to indicate that the PC is ready for operation. Two types of parameter, global data and frame data have to be transmitted. Global data is transmitted once during initialization, whereas frame data is updated in every frame when the DSP requests for data by interrupting the host PC. In the interrupt service routine, a DSP DATA REQUEST message is posted to the window operating system. Interrupt to the PC occurs when the DSP writes to TXREG and conversely, the host PC can interrupt the DSP (external hardware interrupt 0) when it writes data to TXREG. Data transfer is triggered by interrupting the host (since the host cannot dedicate its processing power to poll for only one event) and using DMA on the remote DSP (reserve CPU power for synthesis). In our data transfer scheme, the DSP requests data by writing to TXREG, which interrupts the PC. When the application receives a DSP DATA REQUEST message, it will update the new frame data by writing data to TXREG. This generates an interrupt to the DMA controller on the DSP, which in turn causes a 16-bit DMA data transfer from TXREG to another specified memory location [3]. Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS 15
16 Figure 3. Handshake between PC and DSP PC Load parameter files to PC memory Set READY FLAG = 1 TXREG DSP Download DSP COFF file Idle until PC is ready Request for global data Send global data TXREG Receive global data Interrupt PC Enable INT to DMA controller TXREG Request for frame data Interrupt DMA controller Send Frame data TXREG Receive frame data via DMA PC Interrupt Three steps are involved in using interrupts: Generating interrupts Enabling interrupts Servicing interrupts Interrupts are generated when the DSP writes to TXREG. We can select the IRQ line (IRQ10-12,14,15) on the host PC by setting a jumper on the Tiger32EVM board [2]. There are two programmable interrupt controllers (PIC) on most PCs. IRQ0-IRQ7 are enabled by masking the corresponding bit of PIC1 and IRQ8- IRQ15 uses PIC2. Disabling IRQ2 disables IRQ8-IRQ15 [4][5]. A DSP DATA REQUEST message is posted to the window operating system during the interrupt service routine indicating that DSP is ready for new parameter update. When the application receives a DSP DATA REQUEST message, it sends frame data to the DSP. 16 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS
17 Floating-Point Format Conversion (UNIX to PC IEEE, IEEE to DSP) Key Mapper The parameter files required by the music synthesis algorithms are obtained by analyzing the music signal under the UNIX environment. Two conversions are required when reading a floating-point value from a binary file produced from UNIX to the DSP. Byte swapping and then word swapping are required for a 32-bit floating-point value in converting from big-endian format to little-endian format. Then, another conversion from IEEE floatingpoint format to TI TMS320C3x floating-point format has to be performed as well [3]. It is not practical to store analysis parameters for each note across the entire keyboard due to large memory requirements. Typically, one set of parameters generated from the analysis of one note is stored and used for a range of notes by applying pitch shifting. An example of this strategy using parameters from two notes is given in Figure 4. The original note is mapped to the base key covering a range from the low key to the high key. Figure 4. Key Mapping for Music Synthesis Parfile 1 Parfile 2 low1 base 1 high1 low2 base 2 high2 MIDI Message Processor The process begins with initializing and opening the specified device for MIDI input. The incoming MIDI input received from the Windows drivers is handled by internal buffers embedded in the API (application programming interface). The window handle for the application will only receive two different types of messages. One is the MIDI event related message and the other is the MIDI device closing message. Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS 17
18 When the application software receives a MIDI message, it translates the 3-bytes of data into a meaningful MIDI event according to the MIDI protocol. The list of MIDI event data bytes can be found in reference [1]. The MIDI event is then decoded into synthesis commands and transmitted to the DSP along with the appropriate modified synthesis parameters. 18 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS
19 Music Synthesis Engine Frame-based music synthesis is performed on the DSP. At the beginning of each frame, the DSP requests a set of synthesis parameters from the host PC by sending an interrupt message to the operating system. It transfers the synthesis parameters to the DSP memory using the DMA mode so that the DSP processing power can be reserved for music synthesis. The synthesized music samples are sent to the digital-to-analog converter (DAC) via the serial port using the DMA mode as well. Music synthesis is carried out by the music synthesis engine processing on the TI TMS320C32 digital signal processor. Synthesis is driven by the synthesis commands and the parameters received from the host computer. At the end of each computation cycle, audio samples are generated and playback through the audio codec. Audio interface uses DMA to shift samples to the audio buffer. Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS 19
20 Music Synthesis Algorithms At present, two music synthesis algorithms are implemented on this system SMS (Spectral Modeling System) algorithm ABS/OLA (Analysis-By-Synthesis/OverLap-Add) algorithm The SMS algorithm employs a sinusoidal plus stochastic model. Synthesis of the sinusoidal components is accomplished using an oscillator bank. Synthesis of the stochastic part is achieved by using inverse FFT or driving a formant filter with white Gaussian noise [6]. The ABS/OLA algorithm uses an analysis-by-synthesis approach based on a pure sinusoidal model. Synthesis is performed by inverse FFT [7]. The real-time implementation of the two sinusoidal model-based music synthesis approaches, ABS/OLA and SMS, has been demonstrated for the REALMS project. The heart of the music synthesis engine is the TMS320C32 DSP. Currently, we chose this low cost floating-point DSP, the TMS320C32, as our platform since the music synthesis algorithms are sensitive to numerical precision. Both algorithms were initially simulated on an SGI workstation in C and later ported to the TMS320C32 DSP (Tiger32EVM board incorporates a TMS320C32 yielding a throughput of 25 MIPS and two memory banks of 128 kbytes of zero wait state static RAM). It is essential to use the most effective algorithm in terms of speed and memory in order to meet the constraints imposed by the real time system. We have achieved single-note music synthesis driven by MIDI-device at 44.1 khz sampling rate on this system. The implementation of system level issues can be referred to reference [8]. In this section, we discuss the issues involved in real-time implementation of the two music synthesis algorithms, ABS/OLA and SMS, which include code and memory optimization. Descriptions of Music Synthesis Algorithms Music signals can be analyzed using either ABS/OLA or SMS algorithm. Both approaches are based on sinusoidal models. Information regarding the number of sinusoids, amplitude, frequency and phase of each sinusoid is extracted from the music signal during analysis phase and used in the synthesis stage. 20 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS
21 Analysis-By-Synthesis OverLap-Add (ABS/OLA) Spectral Modeling System (SMS) The ABS/OLA algorithm uses an analysis-by-synthesis approach based on a pure sinusoidal model. Synthesis is performed by inverse FFT. In the synthesis stage, a frequency spectrum is constructed by summing the sinusoidal components extracted in the analysis stage along with the necessary time scale or frequency modifications. Since the frequency obtained from analysis does not necessarily lie exactly on the DFT bin, we use two frequency components at the DFT bins closest to the extracted frequency to form an approximation by solving a set of normal equations [7]. The time-domain signal can simply be synthesized by performing an inverse FFT on the reconstructed spectrum on a frame-by-frame basis with 50% overlap-add. The frame length is 220 samples at 44.1 khz sampling rate which corresponds to approximately 5 ms. The computational loading for the ABS/OLA algorithm is dominated by the inverse FFT if we can minimize the overhead required by the approximation of sinusoidal components. We have attempted to reduce the complexity of constructing the spectrum by exploiting the psychoacoustic model. It is known that we do not perceive a shift in higher frequencies as well as lower frequencies. Therefore, it is possible to form the spectrum by approximating sinusoids as described above for lower frequency components and quantizing the sinusoidal component to the closest DFT bin in high frequency region. In our experiments, there is no audible distortion when a cut-off frequency of 4 khz was used. One advantage of ABS/OLA is that only one inverse FFT has to be computed during synthesis for any number of sinusoids and any number of notes. The SMS algorithm employs a sinusoidal plus stochastic model to synthesize music on a frame-by-frame basis. The synthesis frame length in our current system is approximately 2.5 ms at 44.1 khz sampling rate. Each sinusoidal component is constructed by an oscillator with given amplitude, frequency and phase extracted from the analysis and then summed together. The phase continuity at frame boundaries is conserved by using a cubic polynomial interpolation algorithm. The stochastic component can be synthesized by using inverse FFT or driving a formant filter with white Gaussian noise. However, we have omitted the stochastic component in our implementation. The oscillator bank is simple. However, if the number of sinusoids and the number of notes grow, the computational loading will increase linearly. Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS 21
22 TMS320C32 Implementation and Optimization Compiler Optimization Code Optimization The process required for implementing the music synthesis algorithms in real time involves porting the simulated C code from a UNIX environment to a DSP by compiling the code using the target DSP s C cross-compiler, TI TMS320C3x compiler in this case. We will discuss some of the effective ways that we applied to speed up our music synthesis process in the following sections. The compiler provides optimizations if we enable optimization in the compiling command line such as -o3 where the compiler will assign registers to variables whenever possible to minimize memory fetches according to some cost functions, utilize pipeline delay, repeat blocks with zero overhead, autoincrement addressing and conditional loading. We have also found some of the compiling options which are effective, such as -mc option Provides a one instruction float to integer conversion and vice versa -x2 option For function inlining to reduce function call overheads and allow the compiler to optimize in the context of the function body Further details and options on the compiler are given in references [9][10]. Code optimization includes reducing function calls inside critical loops and assigning reference pointer to loop invariant long pointer expression outside critical loop [10]. We also tried to minimize some of the more expensive DSP operations such as division, power and to calculate sine, cosine and sinc values using table look-up. 22 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS
23 Table Look-Up for Sine, Cosine and Sinc Functions Approximation of Polynomial The sine, cosine and sinc functions are pre-calculated and stored from 0 to 2π. For example, let M be the size of the table COSTAB and M/2π be the scale where M is a power of 2. Then, cos(θ) can be obtained from COSTAB[(int)(θ (2π/M))&(M-1)] where the &(M-1) term gives modulo of 2π. We have found that a sine-table of size 4096 provides enough resolution for both synthesis algorithms. The necessary accuracy can be traded off with memory consumption. The pre-storage of sinc table provides us even greater savings on computational time since normally a computation of sine followed by a division is required. The sinc function is used in the reconstruction of sinusoidal components in the frequency domain for the ABS/OLA algorithm. Due to the special property of the sinc function where more significant values lie in the main lobe, we have used a high resolution table for arguments within ±4 and a low resolution table for values outside this range. In general, look-up tables can be used to reduce computational loading whenever incremental values have to be computed over and over again. However, there is a trade off between speed and memory. The phase of a sinusoid in the SMS algorithm is represented by a cubic polynomial as: () θ t = a + bt + ct + dt 2 3 (1) It is possible to approximate θ (t) by accumulating its previous value θ (t-1) with a time varying term in order to reduce computations. However, the accumulated error also propagates along the time scale. Hence, we only use this approximation up to the quadratic term and an exact value is used for the cubic term. Equation(1) can be re-written as follows: () () θ t = p t + dt where p(t) is approximated as: () = ( 1) + () () = ( 1) + pt pt Qt, Qt Qt Q 3 where the initial condition for equation (3) is: ( 0) ( 0) p = a, Q = b c, Q = 2c (2) (3) (4) Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS 23
24 Equation (1) requires 3-additions and 3-multiplications assuming table-look up is used for the quadratic and cubic term with two memory fetches. Now, by substituting equation (3) into equation (2), the number of instructions is reduced to 3-additions and 1- multiplications with one memory fetch. Memory fetches can be significant if external memory has to be accessed due to conflicts and contentions on the external bus. The look-up table most likely has to be stored in external memory due to the limited internal RAM available on TMS320C32. In general, any polynomials can be approximated as described above where accuracy is compromised with speed. Reduction on External Memory Fetches There is usually a penalty on speed whenever an external memory fetch is involved. Hence, it is natural to store all the codes and data for a time critical loop in internal memory. However, the TMS320C32 DSP only provides two 256-words internal RAM which is impossible to fit all the critical codes and data. We try to maximize the performance first by enabling instruction caching to reduce repeat-loop instruction fetches and second by moving data into the internal RAM whenever operations are being performed on the data. However, we will introduce an overhead when copying data to and from the internal RAM. Therefore, we have to choose the best balance between the amount of time saved by operating data in internal RAM and the amount of overhead required for copying data. In the ABS/OLA algorithm, the most expensive computation is the 1024-point IFFT. Since the largest continuous block of data that can be stored in internal RAM is 256 words, we split the IFFT algorithm into four 256-point IFFT. A 1024-point IFFT can be divided into 10-stages. Since our frequency spectrum is symmetric, an IFFT can be nicely computed using frequency decimation. There will be four 256-point IFFT remained after the second stage. In order to reduce the number of external memory fetches, we perform the first two stages of IFFT with data in the external memory. Then, the first 256-points is moved to the internal memory and an 256-point IFFT is performed. The results are copied back to the original external memory. This is followed by the same operations on the second, third and fourth set of 256 data points. Finally, bit-reversed addressing is performed on the 1024 data points. The overhead for moving data between internal and external memory is insignificant compared to the time spent on accessing external memory during the operation of an IFFT. We have further reduce the computational loading by storing the sine and cosine factors used by the IFFT in internal memory as well. These operations led us to a reduction of 30% in computational time for the inverse FFT. 24 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS
25 Hand Assembly Coding In general, instructions and data involved in an interrupt service routine is also critical in most real time system. Hence, we have assigned the codes and data involved in the interrupt service routine to internal memory. Hand assembly coding can be used to take advantage of the special architecture of DSP hardware such as bit-reversed addressing, circular addressing and other parallel instructions which are not supported by C language. In the ABS/OLA algorithm, the inverse FFT routine is written in assembly language in order to fully exploit bit-reversing, zero-overhead loops, parallel multiply-add, parallel store and parallel load instructions. Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS 25
26 Discussion and Summary Real time systems are always constrained by the limited resources available to perform certain operations. Two major issues we addressed in this report are data transfer from the host computer to DSP and the complexity of synthesis algorithms. The rate at which data can be transferred between the PC and the DSP is mainly limited by the I/O bandwidth of the hardware (or the communications between the development board and PC). The Tiger32 EVM has only one data transfer register (16 bits) for this purpose. It is time consuming to transmit a block of more than 300 floating-point (32 bits) values in each frame. Initially, we used polling on both the host and the remote processor, which exhausted more than 80% of the total CPU power. We alleviated this problem by using interrupt on the host machine and DMA on the remote processor. However, an ideal solution is to have a large block of PC mapped memory for high bandwidth data transfer, such as synthesis parameters, and a mapped register for rapid small bandwidth transfer, such as the burst of MIDI information or other control signal. We attempted to reduce the computational time of the music synthesis algorithms by optimizing our code and hand assembly coding some of the critical functions, such as inverse FFT, by taking advantage of the special architecture of the DSP. We are also working on optimizing the complexity of the algorithms, such as exploring the use of split-radix FFT for lower computational loading; as well as developing more efficient high quality music synthesis. Currently, we are using a floating-point DSP because music synthesis algorithms require parameters with very accurate precision. We have achieved single-note music synthesis in realtime at 44.1 khz sampling rate for both ABS/OLA and SMS on our system [11]. At the present time, this system only supports single note synthesis. to demonstrate and test our synthesizer designs fully, we need to be able to implement polyphonic synthesis in the REALMS system. To accomplish this, we will investigate new algorithm implementations that perform similar functions more efficiently. The current system was intended to provide reference designs for future development of music system (cards or even a single music synthesis IC; we will eventually wish to study lowcost fixed-point DSP implementations as well). Our exercise has achieved this goal where most of the major system-level issues have been resolved. 26 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS
27 We ported the two music synthesis algorithms to the TMS320C32 DSP. We achieved single note music synthesis using either the ABS/OLA or SMS approaches in real time on the TMS320C32 at 44.1 khz sampling rate by applying the optimization discussed in the previous sections. Currently, we are using 20 sinusoids for ABS/OLA and 7 sinusoids for SMS. We plan to implement polyphonic music synthesis and with more sinusoids in the future, but on a more flexible platform. A summary of the usage on memory and computational loading to date for both ABS/OLA and SMS are provided in the following sections. ABS/OLA Resources Usage The computational loading for the ABS/OLA algorithm can be broadly divided into the approximation of frequency spectrum using the sinusoidal components obtained in the analysis stage and the computation of inverse FFT. The spectrum approximation requires a few sine, cosine and sinc table look-ups, divisions and solving a set of 2 2 normal equations. The processing power consumption and memory usage for 5 ms frame rate at 44.1 khz sampling rate are tabulated in Table 1 and Table 2. Table 1. Computational Loading for ABS/OLA (5 ms Frame Rate) Routines Timing in Instruction Cycles Spectrum Approximation (20 sinusoids) Inverse FFT: initial 2 stages pt bit-reversed addressing memory update Others (system interface, audio & midi) Total Table 2. Memory Usage for ABS/OLA (5 ms Frame Rate) Codes and Data Number of Words in Decimal Program: Spectrum Approximation Inverse FFT Others (system, audio & midi) Data: Sine Table Cosine Table Sinc Table Buffer for Spectrum and IFFT Buffer for Output Samples Input Parameters Others 2441 Total Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS 27
28 SMS Resources Usage The core of SMS includes phase interpolation using a cubic polynomial to maintain continuity at frame boundaries and the construction of oscillator bank by generating an oscillator from the information obtained in the analysis stage and summing the contributions from each sinusoidal components. The computational loading and memory usage for 2.5 ms frame rate at 44.1 khz sampling rate is tabulated in Table 3 and Table 4. The core consumes approximately 35% of the processing power. Table 3. Computational Loading for SMS (2.5 ms Frame Rate) Routines Timing in Instruction Cycles Oscillator bank (7 sinusoids) Others (system interface, audio & midi) 8128 Total Table 4. Memory Usage for SMS (2.5 ms Frame Rate) Codes and Data Number of Words in Decimal Program: Oscillator Bank Others (system, audio & midi) Data: Cosine Table Index Table (cubic term) Buffer for Output Samples Input Parameters Others 1567 Total Conclusion We achieved real-time single note music synthesis driven by a MIDI-device at 44.1 khz sampling rate on a TMS320C32 DSP by using the optimizations we discussed in this report. The computational loading and memory usage shown are the performance to date only. There is still room for improvement in speed and memory usage for both ABS/OLA and SMS algorithms. 28 Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS
29 References [1] Joseph Rothstein, MIDI - A Comprehensive Introduction, A-R Editions, [2] Tiger32EVM User s Manual [3] TI TMS320C3x User s Guide [4] Al. Williams, DOS 5: A Developer s Guide-Advanced Programming Guide to DOS,1991 [5] Thom Hogan, The programmer s PC Source Book, 1991 [6] X. Serra and J. O. Smith, Spectral modeling synthesis: A sound analysis/synthesis system based on a deterministic plush stochastic decomposition, Computer Music J., vol. 14, no. 4, pp , Winter [7] E.B.George and M.J.T.Smith, Analysis-by-Synthesis/OverLap-Add sinusoidal modeling applied to the analysis and synthesis of musical tones, J.Audio Eng. Soc., vol. 40, no. 6, pp , June [8] Susan Yim, A MIDI-driven Real Time Music Synthesis System Using the TMS320C3x Digital Signal Processor Family, TI TAR, October 11, [9] Mark E.Paley and David H.Bartley, C-Language style optimizations for the TMS320C30, TI TAR, May 6, [10] TMS320 Floating-Point DSP Optimising C Compiler [11] S.Yim, Y.Ding & E.B.George, Real-time implementation of Music synthesis algorithms, ABS/OLA and SMS on a TI TMS320C32, TI TAR, October, Implementing Real-Time MIDI Music Synthesis Algorithms, ABS/OLA, and SMS 29
Implementing an In-Service, Non- Intrusive Measurement Device in Telecommunication Networks Using the TMS320C31
Disclaimer: This document was part of the First European DSP Education and Research Conference. It may have been written by someone whose native language is not English. TI assumes no liability for the
Binary Search Algorithm on the TMS320C5x
TMS320 DSP DESIGNER S NOTEBOOK Binary Search Algorithm on the TMS320C5x APPLICATION BRIEF: SPRA238 Lawrence Wong Digital Signal Processing Products Semiconductor Group Texas Instruments May 1994 IMPORTANT
Floating Point C Compiler: Tips and Tricks Part I
TMS320 DSP DESIGNER S NOTEBOOK Floating Point C Compiler: Tips and Tricks Part I APPLICATION BRIEF: SPRA229 Karen Baldwin Digital Signal Processing Products Semiconductor Group Texas Instruments June 1993
Teaching DSP through the Practical Case Study of an FSK Modem
Disclaimer: This document was part of the First European DSP Education and Research Conference. It may have been written by someone whose native language is not English. TI assumes no liability for the
Fast Logarithms on a Floating-Point Device
TMS320 DSP DESIGNER S NOTEBOOK Fast Logarithms on a Floating-Point Device APPLICATION BRIEF: SPRA218 Keith Larson Digital Signal Processing Products Semiconductor Group Texas Instruments March 1993 IMPORTANT
Using C to Access Data Stored in Program Space Memory on the TMS320C24x DSP
Application Report SPRA380 April 2002 Using C to Access Data Stored in Program Space Memory on the TMS320C24x DSP David M. Alter DSP Applications - Semiconductor Group ABSTRACT Efficient utilization of
SN54165, SN54LS165A, SN74165, SN74LS165A PARALLEL-LOAD 8-BIT SHIFT REGISTERS
The SN54165 and SN74165 devices SN54165, SN54LS165A, SN74165, SN74LS165A PRODUCTION DATA information is current as of publication date. Products conform to specifications per the terms of Texas Instruments
EDI s x32 MCM-L SRAM Family: Integrated Memory Solution for TMS320C3x DSPs
EDI s x32 MCM-L RAM Family: Integrated Memory olution for TM320C3x DPs APPLICATION REPORT: PRA286 Tim tahley Electronic Designs, Inc. Digital ignal Processing olutions March 1997 IMPORTANT NOTICE Texas
EDI s x32 MCM-L SRAM Family: Integrated Memory Solution for TMS320C4x DSPs
EDI s x32 MCM-L RAM Family: Integrated Memory olution for TM320C4x DPs APPLICATION REPORT: PRA288 Tim tahley Electronic Designs, Inc. Digital ignal Processing olutions March 1997 IMPORTANT NOTICE Texas
Guidelines for Software Development Efficiency on the TMS320C6000 VelociTI Architecture
Guidelines for Software Development Efficiency on the TMS320C6000 VelociTI Architecture WHITE PAPER: SPRA434 Authors: Marie Silverthorn Leon Adams Richard Scales Digital Signal Processing Solutions April
Computer Performance. Topic 3. Contents. Prerequisite knowledge Before studying this topic you should be able to:
55 Topic 3 Computer Performance Contents 3.1 Introduction...................................... 56 3.2 Measuring performance............................... 56 3.2.1 Clock Speed.................................
Analysis of Filter Coefficient Precision on LMS Algorithm Performance for G.165/G.168 Echo Cancellation
Application Report SPRA561 - February 2 Analysis of Filter Coefficient Precision on LMS Algorithm Performance for G.165/G.168 Echo Cancellation Zhaohong Zhang Gunter Schmer C6 Applications ABSTRACT This
Non-Data Aided Carrier Offset Compensation for SDR Implementation
Non-Data Aided Carrier Offset Compensation for SDR Implementation Anders Riis Jensen 1, Niels Terp Kjeldgaard Jørgensen 1 Kim Laugesen 1, Yannick Le Moullec 1,2 1 Department of Electronic Systems, 2 Center
MP3 Player CSEE 4840 SPRING 2010 PROJECT DESIGN. [email protected]. [email protected]
MP3 Player CSEE 4840 SPRING 2010 PROJECT DESIGN Zheng Lai Zhao Liu Meng Li Quan Yuan [email protected] [email protected] [email protected] [email protected] I. Overview Architecture The purpose
AN3998 Application note
Application note PDM audio software decoding on STM32 microcontrollers 1 Introduction This application note presents the algorithms and architecture of an optimized software implementation for PDM signal
Using C to Access Data Stored in Program Memory on the TMS320C54x DSP
Application Report SPRA177A August 2005 Using C to Access Data Stored in Program Memory on the TMS320C54x DSP David M. Alter DSP Applications - Semiconductor Group ABSTRACT Efficient utilization of available
Chapter 1 Computer System Overview
Operating Systems: Internals and Design Principles Chapter 1 Computer System Overview Eighth Edition By William Stallings Operating System Exploits the hardware resources of one or more processors Provides
Monitoring TMS320C240 Peripheral Registers in the Debugger Software
TMS320 DSP DESIGNER S NOTEBOOK Monitoring TMS320C240 Peripheral Registers in the Debugger Software APPLICATION BRIEF: SPRA276 Jeff Crankshaw Digital Signal Processor Solutions May 1997 IMPORTANT NOTICE
Intel Data Direct I/O Technology (Intel DDIO): A Primer >
Intel Data Direct I/O Technology (Intel DDIO): A Primer > Technical Brief February 2012 Revision 1.0 Legal Statements INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE,
etpu Host Interface by:
Freescale Semiconductor Application Note AN2821 Rev. 2, 08/2007 etpu Host Interface by: David Paterson Ming Li MCD Applications 1 Introduction This application note discusses the enhanced Time Processing
Serial Communications
Serial Communications 1 Serial Communication Introduction Serial communication buses Asynchronous and synchronous communication UART block diagram UART clock requirements Programming the UARTs Operation
MICROPROCESSOR AND MICROCOMPUTER BASICS
Introduction MICROPROCESSOR AND MICROCOMPUTER BASICS At present there are many types and sizes of computers available. These computers are designed and constructed based on digital and Integrated Circuit
Audio Tone Control Using The TLC074 Operational Amplifier
Application Report SLOA42 - JANUARY Audio Tone Control Using The TLC74 Operational Amplifier Dee Harris Mixed-Signal Products ABSTRACT This application report describes the design and function of a stereo
DSPDemo. By Moe Wheatley MoeTronix.
DSPDemo By Moe Wheatley MoeTronix www.moetronix.com Sept. 10, 2004 Table of Contents 1 Introduction... 3 1.1 The Idea... 3 1.2 Hardware... 3 1.2.1 Block Diagram... 3 1.3 Software... 4 1.3.1 Basic Modules...
A Low-Cost, Single Coupling Capacitor Configuration for Stereo Headphone Amplifiers
Application Report SLOA043 - December 1999 A Low-Cost, Single Coupling Capacitor Configuration for Stereo Headphone Amplifiers Shawn Workman AAP Precision Analog ABSTRACT This application report compares
6 Output With 1 kω in Series Between the Output and Analyzer... 7 7 Output With RC Low-Pass Filter (1 kω and 4.7 nf) in Series Between the Output
Application Report SLAA313 December 26 Out-of-Band Noise Measurement Issues for Audio Codecs Greg Hupp... Data Acquisition Products ABSTRACT This report discusses the phenomenon of out-of-band noise, and
AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE
Atmel AVR 8-bit Microcontroller AVR151: Setup and Use of the SPI APPLICATION NOTE Introduction This application note describes how to set up and use the on-chip Serial Peripheral Interface (SPI) of the
Electronic Communications Committee (ECC) within the European Conference of Postal and Telecommunications Administrations (CEPT)
Page 1 Electronic Communications Committee (ECC) within the European Conference of Postal and Telecommunications Administrations (CEPT) ECC RECOMMENDATION (06)01 Bandwidth measurements using FFT techniques
150127-Microprocessor & Assembly Language
Chapter 3 Z80 Microprocessor Architecture The Z 80 is one of the most talented 8 bit microprocessors, and many microprocessor-based systems are designed around the Z80. The Z80 microprocessor needs an
AN10850. LPC1700 timer triggered memory to GPIO data transfer. Document information. LPC1700, GPIO, DMA, Timer0, Sleep Mode
LPC1700 timer triggered memory to GPIO data transfer Rev. 01 16 July 2009 Application note Document information Info Keywords Abstract Content LPC1700, GPIO, DMA, Timer0, Sleep Mode This application note
How To Close The Loop On A Fully Differential Op Amp
Application Report SLOA099 - May 2002 Fully Differential Op Amps Made Easy Bruce Carter High Performance Linear ABSTRACT Fully differential op amps may be unfamiliar to some designers. This application
A Sound Analysis and Synthesis System for Generating an Instrumental Piri Song
, pp.347-354 http://dx.doi.org/10.14257/ijmue.2014.9.8.32 A Sound Analysis and Synthesis System for Generating an Instrumental Piri Song Myeongsu Kang and Jong-Myon Kim School of Electrical Engineering,
FFT Frequency Detection on the dspic
FFT Frequency Detection on the dspic by Jac Kersing Nov 2012 Abstract In this article Jac explains how he solved a practical challenge using powerful dspic devices and Fast Fourier Transform algorithms.
Sample Project List. Software Reverse Engineering
Sample Project List Software Reverse Engineering Automotive Computing Electronic power steering Embedded flash memory Inkjet printer software Laptop computers Laptop computers PC application software Software
TSL213 64 1 INTEGRATED OPTO SENSOR
TSL 64 INTEGRATED OPTO SENSOR SOES009A D4059, NOVEMBER 99 REVISED AUGUST 99 Contains 64-Bit Static Shift Register Contains Analog Buffer With Sample and Hold for Analog Output Over Full Clock Period Single-Supply
USER GUIDE EDBG. Description
USER GUIDE EDBG Description The Atmel Embedded Debugger (EDBG) is an onboard debugger for integration into development kits with Atmel MCUs. In addition to programming and debugging support through Atmel
Chapter 11: Input/Output Organisation. Lesson 06: Programmed IO
Chapter 11: Input/Output Organisation Lesson 06: Programmed IO Objective Understand the programmed IO mode of data transfer Learn that the program waits for the ready status by repeatedly testing the status
Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2
Lecture Handout Computer Architecture Lecture No. 2 Reading Material Vincent P. Heuring&Harry F. Jordan Chapter 2,Chapter3 Computer Systems Design and Architecture 2.1, 2.2, 3.2 Summary 1) A taxonomy of
Motor Speed Measurement Considerations When Using TMS320C24x DSPs
Application Report SPRA771 - August 2001 Motor Speed Measurement Considerations When Using TMS320C24x DSPs Shamim Choudhury DCS Applications ABSTRACT The TMS320C24x generation of DSPs provide appropriate
An Optimised Software Solution for an ARM Powered TM MP3 Decoder. By Barney Wragg and Paul Carpenter
An Optimised Software Solution for an ARM Powered TM MP3 Decoder By Barney Wragg and Paul Carpenter Abstract The market predictions for MP3-based appliances are extremely positive. The ability to maintain
Current-Transformer Phase-Shift Compensation and Calibration
Application Report SLAA122 February 2001 Current-Transformer Phase-Shift Compensation and Calibration Kes Tam Mixed Signal Products ABSTRACT This application report demonstrates a digital technique to
A Comparison of Speech Coding Algorithms ADPCM vs CELP. Shannon Wichman
A Comparison of Speech Coding Algorithms ADPCM vs CELP Shannon Wichman Department of Electrical Engineering The University of Texas at Dallas Fall 1999 December 8, 1999 1 Abstract Factors serving as constraints
Application Report. 1 Introduction. 2 Resolution of an A-D Converter. 2.1 Signal-to-Noise Ratio (SNR) Harman Grewal... ABSTRACT
Application Report SLAA323 JULY 2006 Oversampling the ADC12 for Higher Resolution Harman Grewal... ABSTRACT This application report describes the theory of oversampling to achieve resolutions greater than
White Paper Streaming Multichannel Uncompressed Video in the Broadcast Environment
White Paper Multichannel Uncompressed in the Broadcast Environment Designing video equipment for streaming multiple uncompressed video signals is a new challenge, especially with the demand for high-definition
PCM Encoding and Decoding:
PCM Encoding and Decoding: Aim: Introduction to PCM encoding and decoding. Introduction: PCM Encoding: The input to the PCM ENCODER module is an analog message. This must be constrained to a defined bandwidth
Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com
Best Practises for LabVIEW FPGA Design Flow 1 Agenda Overall Application Design Flow Host, Real-Time and FPGA LabVIEW FPGA Architecture Development FPGA Design Flow Common FPGA Architectures Testing and
İSTANBUL AYDIN UNIVERSITY
İSTANBUL AYDIN UNIVERSITY FACULTY OF ENGİNEERİNG SOFTWARE ENGINEERING THE PROJECT OF THE INSTRUCTION SET COMPUTER ORGANIZATION GÖZDE ARAS B1205.090015 Instructor: Prof. Dr. HASAN HÜSEYİN BALIK DECEMBER
S7 for Windows S7-300/400
S7 for Windows S7-300/400 A Programming System for the Siemens S7 300 / 400 PLC s IBHsoftec has an efficient and straight-forward programming system for the Simatic S7-300 and ern controller concept can
SINGLE-SUPPLY OPERATION OF OPERATIONAL AMPLIFIERS
SINGLE-SUPPLY OPERATION OF OPERATIONAL AMPLIFIERS One of the most common applications questions on operational amplifiers concerns operation from a single supply voltage. Can the model OPAxyz be operated
Designing Gain and Offset in Thirty Seconds
Application Report SLOA097 February 2002 Designing Gain and Offset in Thirty Seconds Bruce Carter High Performance Linear ABSTRACT This document discusses how to design an operational amplifier (op amp)
Voice Dialer Speech Recognition Dialing IC
Speech Recognition Dialing IC Speaker Dependent IC for Voice Dialing Applications GENERAL DESCRIPTION The IC, from the Interactive Speech family of products, is an application specific standard product
WHAT DESIGNERS SHOULD KNOW ABOUT DATA CONVERTER DRIFT
WHAT DESIGNERS SHOULD KNOW ABOUT DATA CONVERTER DRIFT Understanding the Components of Worst-Case Degradation Can Help in Avoiding Overspecification Exactly how inaccurate will a change in temperature make
Department of Electrical and Computer Engineering Ben-Gurion University of the Negev. LAB 1 - Introduction to USRP
Department of Electrical and Computer Engineering Ben-Gurion University of the Negev LAB 1 - Introduction to USRP - 1-1 Introduction In this lab you will use software reconfigurable RF hardware from National
Using Code Coverage and Multi-event Profiler in Code Composer Studio v2.3 for Robustness and Efficiency Analyses
Application Report SPRA868A April 2004 Using Code Coverage and Multi-event Profiler in Code Composer Studio v2.3 for Robustness and Efficiency Analyses Amit Rangari, N.Pradeep Software Development Systems
CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson
CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,
SDLS068A DECEMBER 1972 REVISED OCTOBER 2001. Copyright 2001, Texas Instruments Incorporated
SN54174, SN54175, SN54LS174, SN54LS175, SN54S174, SN54S175, SN74174, SN74175, SN74LS174, SN74LS175, SN74S174, SN74S175 PRODUCTION DATA information is current as of publication date. Products conform to
Instruction Set Architecture (ISA)
Instruction Set Architecture (ISA) * Instruction set architecture of a machine fills the semantic gap between the user and the machine. * ISA serves as the starting point for the design of a new machine
Introduction to Digital Audio
Introduction to Digital Audio Before the development of high-speed, low-cost digital computers and analog-to-digital conversion circuits, all recording and manipulation of sound was done using analog techniques.
Central Processing Unit
Chapter 4 Central Processing Unit 1. CPU organization and operation flowchart 1.1. General concepts The primary function of the Central Processing Unit is to execute sequences of instructions representing
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC6504 - Microprocessor & Microcontroller Year/Sem : II/IV
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC6504 - Microprocessor & Microcontroller Year/Sem : II/IV UNIT I THE 8086 MICROPROCESSOR 1. What is the purpose of segment registers
evm Virtualization Platform for Windows
B A C K G R O U N D E R evm Virtualization Platform for Windows Host your Embedded OS and Windows on a Single Hardware Platform using Intel Virtualization Technology April, 2008 TenAsys Corporation 1400
Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs
Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs AN033101-0412 Abstract This describes how to interface the Dallas 1-Wire bus with Zilog s Z8F1680 Series of MCUs as master devices. The Z8F0880,
High-Speed Gigabit Data Transmission Across Various Cable Media at Various Lengths and Data Rate
Application Report SLLA091 - November 2000 High-Speed Gigabit Data Transmission Across Various Cable Media at Various Lengths and Data Rate Boyd Barrie, Huimin Xia ABSTRACT Wizard Branch, Bus Solution
(Refer Slide Time: 00:01:16 min)
Digital Computer Organization Prof. P. K. Biswas Department of Electronic & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture No. # 04 CPU Design: Tirning & Control
Simplifying System Design Using the CS4350 PLL DAC
Simplifying System Design Using the CS4350 PLL 1. INTRODUCTION Typical Digital to Analog Converters (s) require a high-speed Master Clock to clock their digital filters and modulators, as well as some
Ethernet/IP Explicit Messaging Using Unity Software
Data Bulletin 8000DB1025 07/2010 Raleigh, NC, USA Ethernet/IP Explicit Messaging Using Unity Software Retain for future use. Overview Presumption Requirements This data bulletin illustrates how to setup
Computer Network. Interconnected collection of autonomous computers that are able to exchange information
Introduction Computer Network. Interconnected collection of autonomous computers that are able to exchange information No master/slave relationship between the computers in the network Data Communications.
MACHINE ARCHITECTURE & LANGUAGE
in the name of God the compassionate, the merciful notes on MACHINE ARCHITECTURE & LANGUAGE compiled by Jumong Chap. 9 Microprocessor Fundamentals A system designer should consider a microprocessor-based
Using the RDTSC Instruction for Performance Monitoring
Using the Instruction for Performance Monitoring http://developer.intel.com/drg/pentiumii/appnotes/pm1.htm Using the Instruction for Performance Monitoring Information in this document is provided in connection
Appendix D Digital Modulation and GMSK
D1 Appendix D Digital Modulation and GMSK A brief introduction to digital modulation schemes is given, showing the logical development of GMSK from simpler schemes. GMSK is of interest since it is used
An Introduction to the ARM 7 Architecture
An Introduction to the ARM 7 Architecture Trevor Martin CEng, MIEE Technical Director This article gives an overview of the ARM 7 architecture and a description of its major features for a developer new
Developing applications under CODE COMPOSER STUDIO
Developing applications under CODE COMPOSER STUDIO 1. General Overview Code Composer Studio (CCS ) is a very efficient instrument for the fast development of applications that are written for the DSP families
Web-Conferencing System SAViiMeeting
Web-Conferencing System SAViiMeeting Alexei Machovikov Department of Informatics and Computer Technologies National University of Mineral Resources Mining St-Petersburg, Russia [email protected] Abstract
Architectures and Platforms
Hardware/Software Codesign Arch&Platf. - 1 Architectures and Platforms 1. Architecture Selection: The Basic Trade-Offs 2. General Purpose vs. Application-Specific Processors 3. Processor Specialisation
Eight Ways to Increase GPIB System Performance
Application Note 133 Eight Ways to Increase GPIB System Performance Amar Patel Introduction When building an automated measurement system, you can never have too much performance. Increasing performance
Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A
Application Note Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A AN026701-0308 Abstract This application note demonstrates a method of implementing the Serial Peripheral Interface
Introduction to PCI Express Positioning Information
Introduction to PCI Express Positioning Information Main PCI Express is the latest development in PCI to support adapters and devices. The technology is aimed at multiple market segments, meaning that
Theory of Operation. Figure 1 illustrates a fan motor circuit used in an automobile application. The TPIC2101. 27.4 kω AREF.
In many applications, a key design goal is to minimize variations in power delivered to a load as the supply voltage varies. This application brief describes a simple DC brush motor control circuit using
Switch Fabric Implementation Using Shared Memory
Order this document by /D Switch Fabric Implementation Using Shared Memory Prepared by: Lakshmi Mandyam and B. Kinney INTRODUCTION Whether it be for the World Wide Web or for an intra office network, today
SN54HC191, SN74HC191 4-BIT SYNCHRONOUS UP/DOWN BINARY COUNTERS
Single Down/Up Count-Control Line Look-Ahead Circuitry Enhances Speed of Cascaded Counters Fully Synchronous in Count Modes Asynchronously Presettable With Load Control Package Options Include Plastic
USB 3.0 CDR Model White Paper Revision 0.5
USB 3.0 CDR Model White Paper Revision 0.5 January 15, 2009 INTELLECTUAL PROPERTY DISCLAIMER THIS WHITE PAPER IS PROVIDED TO YOU AS IS WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY,
COMPUTER HARDWARE. Input- Output and Communication Memory Systems
COMPUTER HARDWARE Input- Output and Communication Memory Systems Computer I/O I/O devices commonly found in Computer systems Keyboards Displays Printers Magnetic Drives Compact disk read only memory (CD-ROM)
(Cat. No. 6008-SI) Product Data
(Cat. No. 6008-SI) Product Data 1 Because of the variety of uses for this product and because of the differences between solid state products and electromechanical products, those responsible for applying
Optimizing VCO PLL Evaluations & PLL Synthesizer Designs
Optimizing VCO PLL Evaluations & PLL Synthesizer Designs Today s mobile communications systems demand higher communication quality, higher data rates, higher operation, and more channels per unit bandwidth.
DAC Digital To Analog Converter
DAC Digital To Analog Converter DAC Digital To Analog Converter Highlights XMC4000 provides two digital to analog converters. Each can output one analog value. Additional multiple analog waves can be generated
Figure 1.Block diagram of inventory management system using Proximity sensors.
Volume 1, Special Issue, March 2015 Impact Factor: 1036, Science Central Value: 2654 Inventory Management System Using Proximity ensors 1)Jyoti KMuluk 2)Pallavi H Shinde3) Shashank VShinde 4)Prof VRYadav
Computer Systems Structure Input/Output
Computer Systems Structure Input/Output Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output Ward 1 Ward 2 Examples of I/O Devices
TMS320C67x FastRTS Library Programmer s Reference
TMS320C67x FastRTS Library Programmer s Reference SPRU100A October 2002 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections,
APPLICATION NOTE BUILDING A QAM MODULATOR USING A GC2011 DIGITAL FILTER CHIP
SLWA022 APPLICATION NOTE BUILDING A QAM MODULATOR USING A GC2011 DIGITAL CHIP October 6, 1994 1.0 INTRODUCTION This report describes how one can use the GC2011 Digital Filter chip to build digital modulators
Chapter 2 Logic Gates and Introduction to Computer Architecture
Chapter 2 Logic Gates and Introduction to Computer Architecture 2.1 Introduction The basic components of an Integrated Circuit (IC) is logic gates which made of transistors, in digital system there are
Freescale Semiconductor, Inc. Product Brief Integrated Portable System Processor DragonBall ΤΜ
nc. Order this document by MC68328/D Microprocessor and Memory Technologies Group MC68328 MC68328V Product Brief Integrated Portable System Processor DragonBall ΤΜ As the portable consumer market grows
Understanding CIC Compensation Filters
Understanding CIC Compensation Filters April 2007, ver. 1.0 Application Note 455 Introduction f The cascaded integrator-comb (CIC) filter is a class of hardware-efficient linear phase finite impulse response
PRODUCT INFORMATION. Insight+ Uses and Features
PRODUCT INFORMATION Insight+ Traditionally, CAE NVH data and results have been presented as plots, graphs and numbers. But, noise and vibration must be experienced to fully comprehend its effects on vehicle
High-speed image processing algorithms using MMX hardware
High-speed image processing algorithms using MMX hardware J. W. V. Miller and J. Wood The University of Michigan-Dearborn ABSTRACT Low-cost PC-based machine vision systems have become more common due to
Management Challenge. Managing Hardware Assets. Central Processing Unit. What is a Computer System?
Management Challenge Managing Hardware Assets What computer processing and storage capability does our organization need to handle its information and business transactions? What arrangement of computers
Synchronization of sampling in distributed signal processing systems
Synchronization of sampling in distributed signal processing systems Károly Molnár, László Sujbert, Gábor Péceli Department of Measurement and Information Systems, Budapest University of Technology and
AN10866 LPC1700 secondary USB bootloader
Rev. 2 21 September 2010 Application note Document information Info Content Keywords LPC1700, Secondary USB Bootloader, ISP, IAP Abstract This application note describes how to add a custom secondary USB
Intel Media Server Studio - Metrics Monitor (v1.1.0) Reference Manual
Intel Media Server Studio - Metrics Monitor (v1.1.0) Reference Manual Overview Metrics Monitor is part of Intel Media Server Studio 2015 for Linux Server. Metrics Monitor is a user space shared library
Motorola 8- and 16-bit Embedded Application Binary Interface (M8/16EABI)
Motorola 8- and 16-bit Embedded Application Binary Interface (M8/16EABI) SYSTEM V APPLICATION BINARY INTERFACE Motorola M68HC05, M68HC08, M68HC11, M68HC12, and M68HC16 Processors Supplement Version 2.0
