Things to Note in DSP Implementation
A.2 Emails Concerning Four DMA Channels and One DMA BusDMA Bus
“I’m a NCTU student using Quatro6x DSP board. Now, there are problems about DMA channels.
• Background:
There are four DMA channels at TMS320C6x01 DSP. There are four TMS320C6x01 on Quatro6x Board. TI’s on-chip memory: two blocks, four banks each. II’s dma copy mem, dma port to mem, and dma mem to port used for data movement.
• Goal:
We want to pipeline the five actions: one computing under background of four DMA channels moving data simultaneously.
• Status:
Up to now, it is OK to pipeline one CPU and one DMA using double buffering at
separate block. However, it is NG to pipeline one CPU and four DMA background movements simultaneously.
• Problem:
1) Could the four DMA channels move data simultaneously, or not?
2) If yes, how to do? Need to set data at separate bank?
3) Set by Data alignment or Structure for interleave LSB address?
4) If no, why could not? Limit from only one DMA controller having only one DMA bus?
5) Any suggestion for my goal in Q6x board?”
Reply from [email protected]
“I do not fully understand your problem. There are four DMA channels on each processor of the Q6x. Each processor is responsible for there own DMAs. DMA uses the same data bus as the processor so this is a time shared operation. If you have multiple DMA running they also time share the bus. The DMA when complete calls a DMA interrupt so you can use this to set flags and/or reset the DMA for new addresses. You can use the DMA with any of TI or II setup routines. If you have special needs then use the TI functions and if they have what you need then you will not have to build your own. At any time you can set the DMA for any special needs of data flow. We just give you the most common in the libraries. DSP0 does use one of the DMA channels for the BusMaster and this should not be changed unless you are not Busmastering data to or from the host.”
Reply from TI teacher George Hsieh
“DMA in ’C6x01 has only one controller and one 32-bit bus. Access priorities are fixed for each channel. Although you can pre-configure 4 different memory access configu-ration through 4 channels, only the highest priority channel can use the bus if started simultaneously, once this channel completes, the next highest priority channel would be-gin, and so on. If double buffer works for you, with a little modification, you can make
it as many buffer you want. Try to increase the frame count, and allocate more buffers as required, use frame and element index mechanism to direct the input to 4 different buffers, this can be done with only ONE channel of DMA. For details, please refer to the C6000 peripheral reference guide (SPRU190). It’s difficult to use DMA to move data in to/out from another DSP without a share memory. But simply for this case, I guess 3 channel will do, theoretically.”
Reply from [email protected]
“Thank you for contacting Texas Instruments Technical Support. Your email has been received and a case number 35347272 has been assigned to your inquiry. Regarding your query, it is not possible to have 4 DMA channels move data simultaneously. There is only one 32-bit DMA bus to the data access controller of C6201 which is the limitation. Please refer to figure 1-1 of SPRU577. Note that the 4 DMA channels have fixed priorities with channel 0 having highest priority and channel 3 having lowest priority. For more details on this please refer to section 2.7 of DMA Reference Guide - SPRU577. For your application, you can use Split-channel operation as described in section 2.6 of SPRU577. Also CPU and DMA has separate buses for memory and hence they can have simultaneous access.
Also refer to the following: Chapter 3 of SPRU577 TMS320C620x/TMS3206701 DMA and CPU: Data Access Performance - SPRA614A Hope this helps. Please get back to us if you have any further questions.”
Bibliography
[1] 3GPP, Technical Specification Group Radio Access Network; UE Radio Transmis-sion and Reception (FDD), doc. no. 3G TS 25.101 verTransmis-sion 4.1.0, June 2001.
[2] 3GPP, Technical Specification Group Radio Access Network: Physical Channels and Mapping of Transport Channels onto Physical Channels (FDD), doc. no. 3G TS 25.211 version 4.1.0, June 2001.
[3] 3GPP, Technical Specification Group Radio Access Network; Spreading and Modu-lation (FDD), doc. no. 3G TS 25.213 version 4.1.0, June 2001.
[4] H. M. Ahmed, “The generalized convergence computation method,” in Proc. IEEE Int. Conf. Acoust Speech Signal Processing, 1989, Glasgow, UK, pp. 849–852.
[5] B. Ahn, “A study on high-speed Gaussian random number generator,” in Proc. IEEE Asia Pacific Conf. Circuits Syst., Nov. 1996, Seoul, Korea, pp. 30–32.
[6] R. Andraka, “A survey of CORDIC algorithms for FPGA based computers,” in Proc.
ACM/SIGDA Sixth Int. Symp. FPGAs, Feb. 1998, Monterey, CA, pp. 191–200, also available at http://www.andraka.com/files/crdcsrvy.pdf.
[7] Yu-Jung Chang, “Study and DSP implementation of successive interference cancel-lation (SIC) receiver for 3GPP wideband-CDMA uplink transmission,” M.S. thesis, Department of Electronics Engineering, National Chiao Tung University, Hsinchu, Taiwan, R.O.C., June 2002.
[8] R. Chassaing, DSP Applications Using C and the TMS320C6x DSK. New York:
Wiley, 2002.
[9] S. G. Chen, C. C. Li, and Y. D. Hou, “Compatible CORDIC and CCM algorithm for small area realization,” VLSI Signal Processing VIII, IEEE Press, pp. 572–579, 1995.
[10] T. C. Chen, “Automatic computation of exponentials, logarithms, ratios and square roots,” IBM J. Res. and Dev., pp. 380–388, July 1972.
[11] Wei-Yu Chen, “Study and DSP implementation of 3GPP WCDMA uplink multi-plexing and channel coding methods,” M.S. thesis, Department of Electronics Engi-neering, National Chiao Tung University, Hsinchu, Taiwan, R.O.C., June 2002.
[12] N. Dahnoun, Digital Signal Processing Implementation Using the TMS320C6000TM DSP Platform. Prentice Hall, 2000.
[13] P. Dent, G. E. Bottomley, and T. Croft, “Jakes’ fading model revisited,” Electron.
Lett., vol. 29, no. 13, June 1993.
[14] Jian-Hau Her, “DSP implementation of CDMA based on parallel interference can-cellation receiver,” M.S. thesis, Department of Electronics Engineering, National Chiao Tung University, Hsinchu, Taiwan, R.O.C., June 2001.
[15] Yuan-Der Hou, “Unified design of an efficient CORDIC/CCM Processor,” M.S.
thesis, Department of Electronics Engineering, National Chiao Tung University, Hsinchu, Taiwan, R.O.C., June 1995.
[16] X. Hu, R. G. Harber, and S. C. Bass, “Expanding the range of convergence of CORDIC algorithm,” IEEE Trans. Computers, vol. 40, no. 1, pp. 13–21, Jan. 1991.
[17] Y. H. Hu, “CORDIC-based VLSI architecture for digital signal processing,” IEEE Signal Processing Mag., pp. 16–35, July 1992.
[18] The official web site of Innovative Integration, http://www.innovative-dsp.com/.
[19] Innovative Intergration, Quatro6x Development Package Manual. Jan. 2001.
[20] M. C. Jeruchim, P. Balaban, and K.S. Shanmugan, Simulation of Communication Systems: Modeling, Methodology, and Techniques, 2nd ed. Kluwer Academic, 2000.
[21] Dong-U Lee, “Reconfigurable hardware for function evaluation and LDPC coding,”
MPhil/PhD Transfer Report, Department of Computing, Imperial College, London, United Kingdom, July 2003.
[22] Y. Li and X. Huang, “The simulation of independent Rayleigh faders,” IEEE Trans.
Commun., vol. 50, no. 9, pp. 1503–1514, Sep. 2002.
[23] Jia-Ching Lin, “DSP implementation of uplink code synchronization for WCDMA wireless system,” M.S. thesis, Department of Electronics Engineering, National Chiao Tung University, Hsinchu, Taiwan, R.O.C., June 2002.
[24] Jing-Shyong Lin, “DSP implementation and error performance study on speech source/channel coding,” M.S. thesis, Department of Electronics Engineering, Na-tional Chiao Tung University, Hsinchu, Taiwan, R.O.C., June 2002.
[25] D. E. Metafas, G. A. Krikis, and C. E. Goutis, “VLSI design of 8-bit fixed point CORDIC processor with extended operation set,” in Proc. EURO ASIC, 1991, Paris, pp. 158–161.
[26] A. V. Oppenhiem and R. W. Schafer, Discrete-Time Signal Processing. Upper Saddle River, New Jersey: Prentice Hall, 1989.
[27] B. Parhami, Computer Arithmetic: Algorithms and Hardware Designs. New York:
Oxford University Press, 2000.
[28] S. Y. Park and N. I. Cho, “Fixed point error analysis of CORDIC processor based on the variance propagation,” in Proc. IEEE Int. Conf. Acoust. Speech Siginal Process-ing, Apr. 2003, pp. 565–568.
[29] R. Parris, “Elementary functions and calculators,” Phillips Exeter Academy, http://www.swarthmore.edu/NatSci/smaurer1/Math6B/calculatorsParris-rev.pdf.
[30] M. F. Pop and N. C. Beaulieu, “Design of wide-sense stationary sum-of-sinusoids fading channel simulators,” in Conf. Rec., IEEE Int. Conf. Commun., April 2002, pp.
709–716.
[31] M. F. Schollmeyer and W. H. Tranter, “Noise generator for the simulation of digital communication systems,” in Proc. 24th Ann. Simulation Symp., pp. 264–275, 1991.
[32] Song-Ling Tsai, “Study and DSP implementation of 3GPP wideband-CDMA trans-mission signal processing and wireless channel simulation,” M.S. thesis, Depart-ment of Electronics Engineering, National Chiao Tung University, Hsinchu, Taiwan, R.O.C., June 2002.
[33] The official web site of Texas Instruments, http://www.ti.com/.
[34] Texas Instruments, Using TI FIFOs to Interface High-Speed Data Converters With TI TMS320TMDSPs. Literature number SDMA003, June 2001.
[35] Texas Instruments, Parallel 2-D FFT Implementation With TMS320C4x DSPs. Lit-erature number SPRA027A, Feb. 1994.
[36] Texas Instruments, TMS320C620x/TMS320C6701 DMA and CPU: Data Access Performance. Literature number SPRA614A, Aug. 2000.
[37] Texas Instruments, C Implementation of the TMS320C62xx Intrinsic Operators. Lit-erature number SPRA616, Dec. 1999.
[38] Texas Instruments, TMS320C6000TMDSP Multiprocessing with a Crossbar Switch.
Literature number SPRA725, Feb. 2001.
[39] Texas Instruments, TMS320C6000 Optimizing Compiler User’s Guide. Literature number SPRU187I, Apr. 2001.
[40] Texas Instruments, TMS320C6000 CPU and Instruction Set Reference Guide. Liter-ature number SPRU189F, Oct. 2000.
[41] Texas Instruments, TMS320C6000 Peripherals Reference Guide. Literature number SPRU190D, Mar. 2001.
[42] Texas Instruments, TMS320C6000 Technical Brief. Literature number SPRU197D, Feb. 1999.
[43] Texas Instruments, TMS320C6000 Programmer’s Guide. Literature number SPRU198F, Feb. 2001.
[44] Texas Instruments, TMS320C620x/C670x DSP Program and Data Memory Con-troller/ Direct Memory Access (DMA) Controller Reference Guide. Literature num-ber SPRU577, July 2003.
[45] J. E. Volder, “The CORDIC trigonometric computing technique,” IRE Trans. Elec-tronic Computers, vol. 8, no. 3, pp. 330–334, Sep. 1959.
[46] J. S. Walther, “A unified algorithms for elementary functions,” in AFIPS Spring Joint Computer Conference, pp. 379–385, 1971.
[47] J. Wang et al., “Comparison of statistical properties between an improved Jakes’
model and the classical one,” in Proc. IEEE PIMRC, pp. 380–384, Sep. 2003.
[48] Y. R. Zheng and C. Xiao, “Simulation models with correct statistical properties for rayleigh fading channels,” IEEE Trans. Commun., vol. 51, no. 6, pp. 920–928, June 2003.
作者簡歷
李建興,民國五十九年生於台南市。民國八十四年畢業於國立台灣科技大學電 子系,民國八十八年進入國立交通大學電機資訊學院碩士在職專班電子與光電 組,民國九十三年取得碩士學位,論文題目為:在多數位訊號處理器系統上進行 高效率無線通道模擬之研討。