WO2013098638A2 - Method and device for data buffering for multiple-stream - Google Patents

Method and device for data buffering for multiple-stream Download PDF

Info

Publication number
WO2013098638A2
WO2013098638A2 PCT/IB2012/002819 IB2012002819W WO2013098638A2 WO 2013098638 A2 WO2013098638 A2 WO 2013098638A2 IB 2012002819 W IB2012002819 W IB 2012002819W WO 2013098638 A2 WO2013098638 A2 WO 2013098638A2
Authority
WO
WIPO (PCT)
Prior art keywords
buffer
addresses
address
fft
read
Prior art date
Application number
PCT/IB2012/002819
Other languages
French (fr)
Other versions
WO2013098638A3 (en
Inventor
Liang C WANG
Xiaojun A LV
Jun P WANG
Xin Wei
Original Assignee
Alcatel Lucent
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alcatel Lucent filed Critical Alcatel Lucent
Publication of WO2013098638A2 publication Critical patent/WO2013098638A2/en
Publication of WO2013098638A3 publication Critical patent/WO2013098638A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes
    • H04L27/2601Multicarrier modulation systems
    • H04L27/2626Arrangements specific to the transmitter only
    • H04L27/2627Modulators
    • H04L27/2628Inverse Fourier transform modulators, e.g. inverse fast Fourier transform [IFFT] or inverse discrete Fourier transform [IDFT] modulators
    • H04L27/263Inverse Fourier transform modulators, e.g. inverse fast Fourier transform [IFFT] or inverse discrete Fourier transform [IDFT] modulators modification of IFFT/IDFT modulator for performance improvement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes
    • H04L27/2601Multicarrier modulation systems
    • H04L27/2647Arrangements specific to the receiver only
    • H04L27/2649Demodulators
    • H04L27/265Fourier transform demodulators, e.g. fast Fourier transform [FFT] or discrete Fourier transform [DFT] demodulators
    • H04L27/2651Modification of fast Fourier transform [FFT] or discrete Fourier transform [DFT] demodulators for performance improvement

Definitions

  • the invention relates to FFT/IFFT buffer, and more particular to method and device for data buffering for multiple- stream.
  • FFT Fast Fourier Transform
  • IFFT Inverse Fast Fourier Transform
  • VLSI Very Large Scale Integrated Circuit
  • MIMO-OFDM Multi-Input Multi-Output- Orthogonal Frequency Division Multiplexing
  • Pipeline-based FFT/IFFT is a preferred way for high data throughput application because of its advantage of minimized silicon area and maximized processing efficiency.
  • Fig. 1 shows the frequently used Ping-Pong buffer based multiple- stream FFT system.
  • multiple-stream FFT-based system simultaneous parallel FFT symbols are converted to one serial high-throughput FFT stream by Parallel-to-Serial converter, then to feed one pipeline FFT processor in pipelined way, as shown in Fig . 1.
  • two buffers for even stream and odd stream are usually used to unload current serial stream in pipelined way, collect and load next parallel FFT symbols at the same time.
  • This kind of buffer pair is often named as ping-pong buffer or double buffer.
  • a ping-pong buffer is also needed to unload current parallel IFFT symbols, load next serial stream simultaneously.
  • Fig. 2 shows the frequently used IFFT system based on Ping-Pong buffer.
  • a compact FFT/IFFT buffer is designed in multiple-stream FFT/IFFT system to replace conventional ping-pong buffer or double buffer.
  • a new memory addressing scheme is designed to save the memory size by 50% compared with ping-pong buffer.
  • a method of buffering for multi-stream wherein, the read operation and write operation share one common buffer, the method comprises: I. performing read operation on the buffer to flush the content in a part of the addresses of the buffer; II. writing data into the part of addresses that have been flushed.
  • a data buffer device for multi-stream, the read operation and write operation share one common buffer the device comprises:
  • Fig. 1 shows the frequently used Ping-Pong buffer based multiple- stream FFT system in the prior art
  • Fig. 2 shows the frequently used Ping-Pong buffer based multiple- stream IFFT system in the prior art
  • Fig. 3 shows a schematic flow chart of the multiple- stream FFT system according to an embodiment of the present invention
  • Fig. 4 shows a multiple- stream FFT system according to an embodiment of the present invention
  • Fig. 5 shows a multiple- stream FFT system according to an embodiment of the present invention
  • Fig. 6-Fig. 8 show a schematic view for FFT buffer for 4-stream 16-point FFT.
  • Pipeline FFT/IFFT processor need to work symbol by symbol continuously so as to achieve maximized efficiency.
  • pipeline FFT/IFFT processor referring to Fig. 4, for FFT system, it works by unloading symbol serially from buffer and at the same time incoming multiple symbols are loaded into buffer.
  • FIG. 5 shows a schematic flow chart of the multiple- stream FFT system according to an embodiment of the present invention. Wherein, four streams are alternately written into the buffer in parallel, while these data are read out in serial.
  • the folio wings give the description of the buffer entity and corresponding addressing control scheme.
  • a geometric model is also illustrated as example of buffering four simultaneous 16-Point symbols' FFT processing shown in Fig. 6(a)- Fig. 8(b).
  • BufferSize 2 m+n B (bits)
  • ⁇ and Ak in write address are circularly shifted by m bits compared with those of stream ' - 1 . Whether the circular shift is left shifted or right shifted are decided by FFT or IFFT application. For the i-th stream, the address is expressed as
  • the figures 6-8 are show below to illustrate an example of proposed FFT buffer for 4-stream 16-point FFT.
  • a cubic geometric model is used as description of FFT buffer, and index A is used to indicate different stream and index S is to indicate different sample.
  • P is equal to 3, so 3 iterations are needed for different write/read addressing, after that this kind of addressing pattern are repeated periodically.
  • the figure show that if the current stream's read operation and next stream's write operation happen simultaneously, the memory access collision can be avoided effectively.
  • write operation is first carried out to the buffer.
  • the write operation is carried out along the z axis, sequentially write into 16 addresses.
  • 16 addresses A0S0-A0S3 , A1 S0-A1 S3 , A2S0-A2S3 , A3S0-A3S3 are written in parallel, then another 16 addresses A0S4-A0S7 , A1 S4-A1 S7 , A2S4-A2S7 , A3S4-A3S7 are written in parallel; then another 16 addresses A0S8-A0S 1 1 .
  • A1 S8-A1 S 1 1 , A2S8-A2S 1 1 , A3S8-A3S 1 1 are written in parallel; then another 1 6 addresses A0 S 12-A0S 15 , A1 S 12-A1 S 15 , A2S 12-A2S 15 , A3S 12-A3S 15 are written in parallel.
  • the written data is read out in serial along the x axis, and the part of flushed addresses are written according to predetermined sequence.
  • the 16 addresses A0S1 , A0S2 AOS 15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with A0S0-A0S3 , A1S0-A1S3 ,
  • the 16 addresses Al SI , A1S2 A1S15 are read out in serial.
  • the 16 flushed addresses are again written with A0S4-A0S7 ,A1S4-A1S7 , A2S4-A2S7 , A3S4-A3S7 in parallel.
  • the 16 addresses A2S1 , A2S2 A2S15 are read out in serial.
  • the 16 flushed addresses are again written with A0S8-A0S11 , A1S8-A1S11 , A2S8-A2S11 ,A3S8-A3S11 in parallel. Then, the 16 addresses A3 SI ,A3S2 A3S15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with AOS 12- AOS 15 , A1S12-A1S15 , A2S12-A2S15 , A3S12-A3S 15 in parallel.
  • the written data is read out in serial along the y axis, and the part of flushed addresses are written according to predetermined sequence.
  • the 16 addresses A0S1 , A0S2 AOS 15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with A0S0-A0S3 , A1S0-A1S3 ,
  • the 16 addresses A1S1 , A1S2 A1S15 are read out in serial.
  • the 16 flushed addresses are again written with A0S4-A0S7 ,A1S4-A1S7 , A2S4-A2S7 , A3S4-A3S7 in parallel.
  • the 16 addresses A2S1 , A2S2 A2S15 are read out in serial.
  • the flushed part of addresses are again written with A0S8-A0S11 , A1S8-A1S11 ,
  • the written data is read out in serial along the z axis, that is to say, first, the 16 addresses A0S1 , A0S2 A0S15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with A0S0-A0S3 ,
  • A1S15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with AO S4-A0S7 , A1S4-A1S7 , A2S4-A2S7 , A3S4-A3S7 in parallel. Then, the 16 addresses A2S 1 , A2S2 A2S 15 are read out in serial. After these 16 addresses are flushed, the flushed part of addresses are again written with AOS 8- AOS 1 1 , A1 S8-A1 S 1 1 , A2S8-A2S 1 1 , A3S8-A3S1 1 in parallel. Then, the 16 addresses A3S 1 ,
  • A3S2 A3S 15 are read out in serial. After these 16 addresses are flushed, the flushed part of addresses are again written with A0S 12-A0S 15 , A1 S 12-A1 S 15 , A2S 12-A2S 15 , A3S 12-A3S 15 in parallel, after the above three round of cycle, the buffer restore to the initial state.
  • the above parts describe the method of the embodiments of the present invention.
  • the folio wings will describe the device embodiments of the present invention.
  • the invention also discloses a data buffer device for multi-stream, the read operation and write operation share one common buffer, the device comprises: reading unit, for performing read operation on the buffer to flush the content in a part of the addresses of the buffer; writing unit, for writing data into the part of addresses that have been flushed.
  • the reading unit is further used for: performing, in serial, read operation on the buffer, to flush the content in the part of the addresses; and the writing unit is further used for: writing, in parallel, the data into the part of addresses.
  • the reading unit and the writing unit are configured for repeating its own operation respectively, until all content in the buffer is flushed, or until re-initialization of the buffer.
  • the buffer is used for FFT operation or IFFT operation
  • the device further comprises: a re-initializing unit, for re-initializing the buffer when the FFT operation or IFFT operation is idle.
  • the device may further comprise a control unit, for determining the need to performing read operation or write operation to the buffer;
  • Aj aj[n - 1], ...,a/[0] denotes N samples
  • Ak a/ [m - 1], ..., a/ [0] denotes M streams
  • the re-initializing unit is used for:
  • the reading unit and the writing unit are further used for:
  • the writing unit cyclic shifts address Addraui by m bit so as to obtain Addra and
  • the reading unit obtains the read address
  • the writing unit is further used for:

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Input (AREA)

Abstract

The invention proposes a method of buffering for multi-stream, wherein, the read operation and write operation share one common buffer, the method comprises: I. performing read operation on the buffer to flush the content in a part of the addresses of the buffer; II. writing data into the part of addresses that have been flushed.

Description

Method and Device for Data Buffering for Multiple-Stream
Technical field
The invention relates to FFT/IFFT buffer, and more particular to method and device for data buffering for multiple- stream.
Background of the invention
Fast Fourier Transform (FFT) and Inverse Fast Fourier Transform (IFFT) are widely used in digital signal processing application such as digital communication, radar system and image processing and so on.
As number of parallel data stream increases and integration level of implemented system become higher, the silicon area occupied by FFT/IFFT related Very Large Scale Integrated Circuit (VLSI) implementation become not negligible any longer. A typical example is multiple stream FFT/IFFT application in Multi-Input Multi-Output- Orthogonal Frequency Division Multiplexing (MIMO-OFDM) communication system. To implement high throughput FFT or IFFT, technical requirements are raised to satisfy higher data throughput with cost and area effective VLSI design methodology. Pipeline-based FFT/IFFT is a preferred way for high data throughput application because of its advantage of minimized silicon area and maximized processing efficiency. However, for efficient use of the kind of Pipeline FFT/IFFT architecture, continuous input data streams are required and buffer has to been used to balance different data rate and data format between input data and output data of FFT/IFFT. The buffer will consume large number of memory and the size is proportional to number of parallel data streams.
Fig. 1 shows the frequently used Ping-Pong buffer based multiple- stream FFT system. In multiple-stream FFT-based system, simultaneous parallel FFT symbols are converted to one serial high-throughput FFT stream by Parallel-to-Serial converter, then to feed one pipeline FFT processor in pipelined way, as shown in Fig . 1. In order to continuously process current stream and next stream, two buffers for even stream and odd stream are usually used to unload current serial stream in pipelined way, collect and load next parallel FFT symbols at the same time. This kind of buffer pair is often named as ping-pong buffer or double buffer.
On the other hand, the counterpart is multiple stream IFFT-based system, a ping-pong buffer is also needed to unload current parallel IFFT symbols, load next serial stream simultaneously. Fig. 2 shows the frequently used IFFT system based on Ping-Pong buffer.
Summary of the invention
In this description, a compact FFT/IFFT buffer is designed in multiple-stream FFT/IFFT system to replace conventional ping-pong buffer or double buffer. A new memory addressing scheme is designed to save the memory size by 50% compared with ping-pong buffer.
According to a first aspect of the present invention, there is provided a method of buffering for multi-stream, wherein, the read operation and write operation share one common buffer, the method comprises: I. performing read operation on the buffer to flush the content in a part of the addresses of the buffer; II. writing data into the part of addresses that have been flushed.
According to a second aspect of the present invention, there is provided a data buffer device for multi-stream, the read operation and write operation share one common buffer, the device comprises:
- reading unit, for performing read operation on the buffer to flush the content in a part of the addresses of the buffer;
- writing unit, for writing data into the part of addresses that have been flushed.
By using the solution of the present invention, only one buffer is needed which save 50%) buffer size compared with the ping-pang buffer.
Brief description of drawings
Features, aspects and advantages of the present invention will become obvious by reading the following description of non-limiting embodiments with the aid of appended drawings.
Fig. 1 shows the frequently used Ping-Pong buffer based multiple- stream FFT system in the prior art;
Fig. 2 shows the frequently used Ping-Pong buffer based multiple- stream IFFT system in the prior art;
Fig. 3 shows a schematic flow chart of the multiple- stream FFT system according to an embodiment of the present invention;
Fig. 4 shows a multiple- stream FFT system according to an embodiment of the present invention;
Fig. 5 shows a multiple- stream FFT system according to an embodiment of the present invention;
Fig. 6-Fig. 8 show a schematic view for FFT buffer for 4-stream 16-point FFT.
Wherein, same or similar reference numerals refer to the same or similar steps or means.
Detailed description of embodiments
Normally there are multiple low data rate FFT/IFFT symbols which are transferred at the same time for multiple-stream system. It is assumed that the number of multiple low rate FFT/IFFT symbols is M. Without loss of generality, if one high-throughput FFT/IFFT processor is used, its sample rate is required to be more than M times of sample rate of one of parallel FFT/IFFT symbols so as to satisfy the total throughput requirement of system. Here possible overhead are excluded, for example, in some FFT/IFFT based system, like OFDM-based modulation or demodulation, some data overhead like cyclic prefix (CP) or data gap are introduced in the system.
Pipeline FFT/IFFT processor need to work symbol by symbol continuously so as to achieve maximized efficiency. With regard to pipeline FFT/IFFT processor, referring to Fig. 4, for FFT system, it works by unloading symbol serially from buffer and at the same time incoming multiple symbols are loaded into buffer.
As shown in Fig. 5, accordingly pipeline IFFT processor works and loads symbol serially into buffer and simultaneously multiple low rate symbols are unloaded from the buffer. The proposed scheme is to use the same buffer when loading incoming data by reusing the available memory space which has been unloaded at the same time, that is to say, loading data (perform write operation to the buffer) and unloading data (performing read operation to the buffer) use the same buffer. Fig. 3 shows a schematic flow chart of the multiple- stream FFT system according to an embodiment of the present invention. Wherein, four streams are alternately written into the buffer in parallel, while these data are read out in serial.
The folio wings give the description of the buffer entity and corresponding addressing control scheme. A geometric model is also illustrated as example of buffering four simultaneous 16-Point symbols' FFT processing shown in Fig. 6(a)- Fig. 8(b).
It is assumed that the Number of parallel stream is denoted as ^ = 2m ? sample size of FFT symbol is denoted as N = 2" ? and bit-width of each sample is denoted as B . So the total buffer memory size can be computed as
BufferDepth = M N = 2m+"
BufferWidth = B (bits)
BufferSize = 2m+n B (bits)
In order to guarantee simultaneous write and read operation, a buffer which has individual write port and read port with different address has to be used in this kind of application.
The address of write port is expressed with binary encoding style as Addra = a[m + n - a[m + n - 2],...,a[ ] ^ among which Aj = aj[n - 1], ...,a [0] are used for addressing N samples and ^ ~ a^ m ~ Ό >■■■ > 3/ [0] are use(j or a(jdressmg M parallel streams.
Accordingly the address of read port is expressed as Addrb = b[m + n - ^,b[m + n - 2],...,b[0]
The addressing scheme is described as below:
Proposed Pipeline FFT/IFFT buffer addressing control :
Stagel : Initialization
At the first time to buffer incoming data, initialize the address of stream 0 with
write : Addra0 = Aj,Ak
read : Addrb0 = Addra0
Stage2 : Iteration
For the data buffering of stream ' , ^ and Ak in write address are circularly shifted by m bits compared with those of stream ' - 1 . Whether the circular shift is left shifted or right shifted are decided by FFT or IFFT application. For the i-th stream, the address is expressed as
[Addra, = CircularLeftShiftlAddra: m), for FFT processing write : <
[Addrai = CircularRightShift(Addrai _v m), for IFFT processing read : Addrty = Addra{ Stage3 : Reinitialization
During the time when FFT operation become idle, reinitialize the read and write address as initial value. This is especially useful when FFT buffer is needed to be initialized periodically.
write : Addra0 = Aj,Ak
read : Addrb0 = Addra0
denote 9cd(x,y) as me greatest common divisor of integer number x and y, and denote the iteration number of the address which can automatically return to initial value as P , then
P can be computed as:
p _ n + m
gcd(n + m,m)
So intentional periodical initialization or automatic initialization are both feasible and the selection is implementation specific.
The figures 6-8 are show below to illustrate an example of proposed FFT buffer for 4-stream 16-point FFT. A cubic geometric model is used as description of FFT buffer, and index A is used to indicate different stream and index S is to indicate different sample. Here P is equal to 3, so 3 iterations are needed for different write/read addressing, after that this kind of addressing pattern are repeated periodically. The figure show that if the current stream's read operation and next stream's write operation happen simultaneously, the memory access collision can be avoided effectively. Figure 6 (a) and (b) represent that write/read addressing of stream index, mod(index,3) = 0; Figure 7 (a) and (b) represent that write/read addressing of stream index, mod(index,3) = 1 and Figure 8 (a) and (b) represent that write/read addressing of stream index, mod(index,3) = 2.
As shown in Fig. 6(a), write operation is first carried out to the buffer. The write operation is carried out along the z axis, sequentially write into 16 addresses. First, 16 addresses A0S0-A0S3 , A1 S0-A1 S3 , A2S0-A2S3 , A3S0-A3S3 are written in parallel, then another 16 addresses A0S4-A0S7 , A1 S4-A1 S7 , A2S4-A2S7 , A3S4-A3S7 are written in parallel; then another 16 addresses A0S8-A0S 1 1 . A1 S8-A1 S 1 1 , A2S8-A2S 1 1 , A3S8-A3S 1 1 , are written in parallel; then another 1 6 addresses A0 S 12-A0S 15 , A1 S 12-A1 S 15 , A2S 12-A2S 15 , A3S 12-A3S 15 are written in parallel.
Then, as shown in Fig. 6(b), the written data is read out in serial along the x axis, and the part of flushed addresses are written according to predetermined sequence. First, the 16 addresses A0S1 , A0S2 AOS 15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with A0S0-A0S3 , A1S0-A1S3 ,
A2S0-A2S3 , A3S0-A3S3 in parallel. Then, the 16 addresses Al SI , A1S2 A1S15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with A0S4-A0S7 ,A1S4-A1S7 , A2S4-A2S7 , A3S4-A3S7 in parallel. Then, the 16 addresses A2S1 , A2S2 A2S15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with A0S8-A0S11 , A1S8-A1S11 , A2S8-A2S11 ,A3S8-A3S11 in parallel. Then, the 16 addresses A3 SI ,A3S2 A3S15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with AOS 12- AOS 15 , A1S12-A1S15 , A2S12-A2S15 , A3S12-A3S 15 in parallel.
Then, as shown in Fig.7(b), the written data is read out in serial along the y axis, and the part of flushed addresses are written according to predetermined sequence. First, the 16 addresses A0S1 , A0S2 AOS 15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with A0S0-A0S3 , A1S0-A1S3 ,
A2S0-A2S3 , A3S0-A3S3 in parallel. Then, the 16 addresses A1S1 , A1S2 A1S15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with A0S4-A0S7 ,A1S4-A1S7 , A2S4-A2S7 , A3S4-A3S7 in parallel. Then, the 16 addresses A2S1 , A2S2 A2S15 are read out in serial. After these 16 addresses are flushed, the flushed part of addresses are again written with A0S8-A0S11 , A1S8-A1S11 ,
A2S8-A2S11 ,A3S8-A3S11 in parallel. Then, the 16 addresses A3S1 ,A3S2 A3S15 are read out in serial. After these 16 addresses are flushed, the flushed part of addresses are again written with AOS 12-A0S15 , A1S12-A1S15 , A2S12-A2S15 , A3S12-A3S15 in parallel. The buffer after the operation is shown in Fig.8(a).
Then, as shown in Fig.8(b), the written data is read out in serial along the z axis, that is to say, first, the 16 addresses A0S1 , A0S2 A0S15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with A0S0-A0S3 ,
A1S0-A1S3 ,A2S0-A2S3 .A3S0-A3S3 in parallel. Then, the 16 addresses A1S1 ,A1S2
A1S15 are read out in serial. After these 16 addresses are flushed, the 16 flushed addresses are again written with AO S4-A0S7 , A1S4-A1S7 , A2S4-A2S7 , A3S4-A3S7 in parallel. Then, the 16 addresses A2S 1 , A2S2 A2S 15 are read out in serial. After these 16 addresses are flushed, the flushed part of addresses are again written with AOS 8- AOS 1 1 , A1 S8-A1 S 1 1 , A2S8-A2S 1 1 , A3S8-A3S1 1 in parallel. Then, the 16 addresses A3S 1 ,
A3S2 A3S 15 are read out in serial. After these 16 addresses are flushed, the flushed part of addresses are again written with A0S 12-A0S 15 , A1 S 12-A1 S 15 , A2S 12-A2S 15 , A3S 12-A3S 15 in parallel, after the above three round of cycle, the buffer restore to the initial state.
The above parts describe the method of the embodiments of the present invention. The folio wings will describe the device embodiments of the present invention.
The invention also discloses a data buffer device for multi-stream, the read operation and write operation share one common buffer, the device comprises: reading unit, for performing read operation on the buffer to flush the content in a part of the addresses of the buffer; writing unit, for writing data into the part of addresses that have been flushed.
The reading unit is further used for: performing, in serial, read operation on the buffer, to flush the content in the part of the addresses; and the writing unit is further used for: writing, in parallel, the data into the part of addresses.
The reading unit and the writing unit are configured for repeating its own operation respectively, until all content in the buffer is flushed, or until re-initialization of the buffer.
The buffer is used for FFT operation or IFFT operation, and the device further comprises: a re-initializing unit, for re-initializing the buffer when the FFT operation or IFFT operation is idle.
The device may further comprise a control unit, for determining the need to performing read operation or write operation to the buffer;
controlling the reading unit to perform its operation when read operation is needed to perform to the buffer;
controlling the writing unit to perform its operation when write operation is needed to perform to the buffer.
In another embodiment, the number of the streams written into the buffer is denoted as M = 2m , the number of the samples of the FFT or IFFT written into the buffer is denoted N = 2" , the write address is denoted as Addra = a[m + n - ^,a[m + n - 2],...,a[0] , wherein Aj = aj[n - 1], ...,a/[0] denotes N samples, and Ak = a/ [m - 1], ..., a/ [0] denotes M streams, and the read address is denoted as Addrb = b[m + n - b[m + n - 2],...,b[0] , the re-initializing unit is used for:
- for stream 0, respectively initializing the write address as Addrao=Aj, Ak, and initializing the read address as Addrbo= Addrao;
the reading unit and the writing unit are further used for:
- for stream i,
with respect to write operation, the writing unit cyclic shifts address Addraui by m bit so as to obtain Addra and
with respect to read operation, the reading unit obtains the read address
Figure imgf000009_0001
Addrcii.
In another embodiment, the writing unit is further used for:
- left cyclic shifting address Addraui by m bit so as to obtain Addra when the buffer is used for FFT;
- right cyclic shifting address Addraui by m bit so as to obtain Addra when the buffer is used for IFFT.
Those ordinary skilled in the art could understand and realize modifications to the disclosed embodiments, through studying the description, drawings and appended claims. All such modifications which do not depart from the spirit of the invention are intended to be included within the scope of the appended claims. The word "comprising" does not exclude the presence of elements or steps not listed in a claim or in the description. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. In the practice of present invention, several technical features in the claim can be embodied by one component. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim

Claims

What is claimed is:
1. A method of buffering for multi-stream, wherein, the read operation and write operation share one common buffer, the method comprises:
I. performing read operation on the buffer to flush the content in a part of the addresses of the buffer;
II. writing data into the part of addresses that have been flushed.
2. A method according to claim 1, wherein, said step I further comprises:
- performing, in serial, read operation on the buffer, to flush the content in the part of the addresses;
said step II further comprises:
- writing, in parallel, the data into the part of addresses.
3. A method according to claim 1, further comprising:
- repeating said steps I and II, until all content in the buffer is flushed, or until re-initialization of the buffer.
4. A method according to claim 3, wherein the buffer is used for FFT operation or IFFT operation, and the re-initialization comprises:
- re-initializing the buffer when the FFT operation or IFFT operation is idle.
5. A method according to claim 1, further comprising the step before said step I:
- determining the need to performing read operation or write operation to the buffer;
- performing said step I when read operation is needed to perform to the buffer;
- performing said step II when write operation is needed to perform to the buffer.
6. A method according to claim 3, wherein the number of the streams written into the buffer is denoted as M = 2m, the number of the samples of the FFT or IFFT written into the buffer is denoted N = 2" , the write address is denoted as Addra = a[m + n - ^,a[m + n - 2],...,a[0], wherein Aj = aj[n -1],...,a/[0] denotes N samples, and Ak = ak[m - \,...,ak[0] denotes M streams, and the read address is denoted as Addrb = b[m + n - b[m + n -2],...,b[0] , the method further comprises the step before said step I:
- for stream 0, respectively initializing the write address as Addrao=Aj, Ak, and initializing the read address as Addrbo= Addrao.
7. A method according to claim 6, wherein, repeating said steps I and II further comprises:
- for stream i,
with respect to write operation, cyclic shifting address Addraui by m bit so as to obtain Addra and
with respect to read operation, obtaining the read address
Figure imgf000011_0001
Addrai.
8. A method according to claim 7, wherein the cyclic shifting by m bit further comprises:
- left cyclic shifting address Addraui by m bit so as to obtain Addrau when the buffer is used for FFT;
- right cyclic shifting address Addraui by m bit so as to obtain Addrau when the buffer is used for IFFT.
9. A data buffer device for multistream, the read operation and write operation share one common buffer, the device comprises:
- reading unit, for performing read operation on the buffer to flush the content in a part of the addresses of the buffer;
- writing unit, for writing data into the part of addresses that have been flushed.
10. A device according to claim 9, wherein, said reading unit is further used for:
- performing, in serial, read operation on the buffer, to flush the content in the part of the addresses;
said writing unit is further used for:
- writing, in parallel, the data into the part of addresses.
1 1. A device according to claim 9, wherein:
the reading unit and the writing unit are configured for repeating its own operation respectively, until all content in the buffer is flushed, or until re-initialization of the buffer.
12. A device according to claim 1 1 , wherein the buffer is used for FFT operation or IFFT operation, and the device further comprises:
a re-initializing unit, for re-initializing the buffer when the FFT operation or IFFT operation is idle.
13. A device according to claim 9, further comprising:
- a control unit, for determining the need to performing read operation or write operation to the buffer ;
- controlling the reading unit to perform its operation when read operation is needed to perform to the buffer;
- controlling the writing unit to perform its operation when write operation is needed to perform to the buffer.
14. A device according to claim 11, wherein the number of the streams written into the buffer is denoted as M = 2m , the number of the samples of the FFT or IFFT written in to the buffer is denoted N = 2" , the write address is denoted as Addra = a[m + n - ^,a[m + n - 2],...,a[0], wherein Aj = aj[n -1],...,a/[0] denotes N samples, and Ak = ak[m - \,...,ak[0] denotes M streams, and the read address is denoted as Addrb = b[m + n - 1] , b[m + n-2],..., b[0] , the re-initializing unit is used for:
- for stream 0, respectively initializing the write address as Addrao=Aj, Ak, and initializing the read address as Addrbo= Addrao;
the reading unit and the writing unit are further used for:
- for stream i,
with respect to write operation, the writing unit cyclic shifts address Addraui by m bit so as to obtain Addra and
with respect to read operation, the reading unit obtains the read address
Figure imgf000012_0001
Addrcii.
15. A device according to claim 14, wherein the writing unit is further used for:
- left cyclic shifting address Addraui by m bit so as to obtain Addra when the buffer is used for FFT;
- right cyclic shifting address Addraui by m bit so as to obtain Addra when the buffer is used for IFFT.
PCT/IB2012/002819 2011-12-30 2012-11-28 Method and device for data buffering for multiple-stream WO2013098638A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110457144.6A CN103186476B (en) 2011-12-30 2011-12-30 A kind of data cache method and device for multithread
CN201110457144.6 2011-12-30

Publications (2)

Publication Number Publication Date
WO2013098638A2 true WO2013098638A2 (en) 2013-07-04
WO2013098638A3 WO2013098638A3 (en) 2014-02-06

Family

ID=47722312

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2012/002819 WO2013098638A2 (en) 2011-12-30 2012-11-28 Method and device for data buffering for multiple-stream

Country Status (2)

Country Link
CN (1) CN103186476B (en)
WO (1) WO2013098638A2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105607888A (en) * 2014-11-25 2016-05-25 中兴通讯股份有限公司 Data bit width conversion method and device
US9759808B2 (en) * 2015-11-12 2017-09-12 Texas Instruments Incorporated Buffer sample size control for variable chirp radar
DE102019128073A1 (en) * 2019-10-17 2021-04-22 Infineon Technologies Ag Processing of radar signals

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040059766A1 (en) * 2002-09-23 2004-03-25 Yeou-Min Yeh Pipelined low complexity FFT/IFFT processor
US7693034B2 (en) * 2003-08-27 2010-04-06 Sasken Communication Technologies Ltd. Combined inverse fast fourier transform and guard interval processing for efficient implementation of OFDM based systems
CN101719117A (en) * 2009-04-15 2010-06-02 江苏芯动神州科技有限公司 FFT arithmetic device and manufacturing method thereof
CN101650706B (en) * 2009-06-30 2012-02-22 重庆重邮信科通信技术有限公司 Method and device for calculating FFT branch
CN102652315B (en) * 2009-12-16 2015-10-21 瑞典爱立信有限公司 Messaging device and control method thereof
CN101887406B (en) * 2010-06-10 2012-10-03 北京创毅讯联科技股份有限公司 FFT/IFFT processing method and FFT/IFFT processor
CN102122971B (en) * 2011-01-07 2013-09-11 中国电子科技集团公司第十研究所 Method for quickly capturing broadband carrier signal

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None

Also Published As

Publication number Publication date
WO2013098638A3 (en) 2014-02-06
CN103186476B (en) 2017-07-28
CN103186476A (en) 2013-07-03

Similar Documents

Publication Publication Date Title
US9342479B2 (en) Systems and methods of data extraction in a vector processor
JP5945831B2 (en) Adaptive equalizer
US20040001557A1 (en) Modulation apparatus using mixed-radix fast fourier transform
US8917588B2 (en) Fast Fourier transform and inverse fast Fourier transform (FFT/IFFT) operating core
Wang et al. A High-Throughput Low-Complexity Radix-$2^{\textbf {4}} $-$2^{\textbf {2}} $-$2^{\textbf {3}} $ FFT/IFFT Processor With Parallel and Normal Input/Output Order for IEEE 802.11 ad Systems
US9727531B2 (en) Fast fourier transform circuit, fast fourier transform processing method, and program recording medium
US20170149589A1 (en) Fully parallel fast fourier transformer
CN111737638A (en) Data processing method based on Fourier transform and related device
WO2013098638A2 (en) Method and device for data buffering for multiple-stream
US7685220B2 (en) Circular fast fourier transform
US20060200513A1 (en) Fast Fourier transform processor and method capable of reducing size of memories
US20100011046A1 (en) Apparatus and method for variable fast fourier transform
US20120166507A1 (en) Method and apparatus of performing fast fourier transform
US7979485B2 (en) Circuit for fast fourier transform operation
US9164959B1 (en) Discrete fourier transform calculation method and apparatus
US8484273B1 (en) Processing system and method for transform
US7675847B2 (en) Hardware implementation of a programmable FFT based on a half length FFT core
US20210255804A1 (en) Data scheduling register tree for radix-2 fft architecture
Long et al. A low-complexity generalized memory addressing scheme for continuous-flow fast Fourier transform
JP5131346B2 (en) Wireless communication device
KR102505022B1 (en) Fully parallel fast fourier transform device
CN108140017B (en) Method and apparatus for linear phase finite impulse response decimation filter
CN113094639A (en) DFT parallel processing method, device, equipment and storage medium
KR20080062003A (en) Apparatus and method of pipelined fast fourier transform using radix 2 square supporting variable input sizes
US20060235918A1 (en) Apparatus and method to form a transform

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12824799

Country of ref document: EP

Kind code of ref document: A2

122 Ep: pct application non-entry in european phase

Ref document number: 12824799

Country of ref document: EP

Kind code of ref document: A2