WO2013159361A1 - 数据处理方法和相关装置 - Google Patents

数据处理方法和相关装置 Download PDF

Info

Publication number
WO2013159361A1
WO2013159361A1 PCT/CN2012/074911 CN2012074911W WO2013159361A1 WO 2013159361 A1 WO2013159361 A1 WO 2013159361A1 CN 2012074911 W CN2012074911 W CN 2012074911W WO 2013159361 A1 WO2013159361 A1 WO 2013159361A1
Authority
WO
WIPO (PCT)
Prior art keywords
base
butterfly operation
butterfly
data
result data
Prior art date
Application number
PCT/CN2012/074911
Other languages
English (en)
French (fr)
Inventor
周扬
刘彬
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2012/074911 priority Critical patent/WO2013159361A1/zh
Priority to CN201280000317.4A priority patent/CN103493039B/zh
Publication of WO2013159361A1 publication Critical patent/WO2013159361A1/zh

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

Definitions

  • the present invention relates to the field of data processing technologies, and in particular, to a data processing method and related apparatus. Background technique
  • the FFT operation processing unit in the existing data processing system can be implemented by various algorithms (e.g., base 2 butterfly operation, base 4 butterfly operation, and mixed basis algorithms).
  • base 2 butterfly operation e.g., base 2 butterfly operation
  • base 4 butterfly operation e.g., base 4 butterfly operation
  • mixed basis algorithms e.g., base 2 butterfly operation, base 4 butterfly operation, and mixed basis algorithms.
  • the utilization of butterfly computing resources is still relatively low.
  • 256-point data requires 4 levels of 4 butterfly operations, which requires 4 sets of computing circuits and storage resources, and resources are relatively expensive.
  • Embodiments of the present invention provide a data processing method and related apparatus to reduce resource consumption required for performing butterfly operations on data.
  • An embodiment of the present invention provides a data processing method, which may include:
  • the y-channel data to be subjected to the z-th order base y butterfly operation is input to the base y butterfly operator for the z-th order base y butterfly operation, wherein the y and z are positive integers;
  • the result data obtained by the z-th order base y butterfly operation is output;
  • the result data obtained by the z-th order base y butterfly operation is input to the base y butterfly operator Perform the z+1th order base y butterfly operation.
  • Another aspect of the embodiments of the present invention provides a data processing apparatus, including:
  • the controller is configured to input data of the y-way to the z-th order base y butterfly operation
  • the base y butterfly operator performs a z-th order base y butterfly operation, and outputs the z-th order base y butterfly in the case where the z-th order base y butterfly operation is the last-level base y butterfly operation Result data obtained by the shape operation; in the case where the z-th order base y butterfly operation is not the last-level base y butterfly operation, the result data obtained by the z-th order base y butterfly operation is input into the
  • the base y butterfly operator performs a z+1th order base y butterfly operation, wherein the y and z are positive integers.
  • Another aspect of the embodiment of the present invention further provides an access device, where the data processing device described in the foregoing embodiments is deployed.
  • Another aspect of the embodiment of the present invention further provides a user equipment, where the data processing apparatus described in the foregoing embodiments is deployed.
  • Another aspect of an embodiment of the present invention further provides a computer storage medium
  • the computer storage medium stores a program that, when executed, includes some or all of the steps of the data processing method described above.
  • the data of the z-th order base y butterfly operation is to be input, and the input base y butterfly operator performs the z-th order base y butterfly operation, in which the z-th order base y butterfly
  • the result data obtained by the z-th order base y butterfly operation is output; in the z-th order base y butterfly operation is not the last-level base y butterfly operation
  • the result data obtained by the z-th order base y butterfly operation is input to the base y butterfly operator for the z+1th base y butterfly operation.
  • the mechanism multiplexes the base y butterfly operator
  • the two-stage base y butterfly operation multiplexes the same base y butterfly operator, for example, the time multiplex base y butterfly operator of the data input can be used for operation. Therefore, it is beneficial to reduce the time of butterfly operation and reduce resource consumption.
  • FIG. 1-a is a schematic diagram of a base 2 butterfly operation model according to an embodiment of the present invention.
  • FIG. 1-b is a schematic diagram of a base 4 butterfly operation model according to an embodiment of the present invention.
  • FIG. 2 is a schematic structural diagram of a 4-level base 4 butterfly operation circuit according to an embodiment of the present invention
  • 3 is a schematic diagram of a read/write operation of a shift register
  • FIG. 4 is a schematic diagram of a data processing method according to an embodiment of the present invention.
  • FIG. 5 is a schematic diagram of a data processing apparatus according to an embodiment of the present invention.
  • FIG. 6 is a schematic diagram of a shift register operation according to an embodiment of the present invention.
  • 7-a is a schematic diagram of a butterfly operation sequence arrangement according to an embodiment of the present invention.
  • Figure 7-b is a schematic diagram of another butterfly operation sequence arrangement according to an embodiment of the present invention
  • Figure 8-b is a schematic diagram of a data processing apparatus according to an embodiment of the present invention
  • FIG. 8 is a schematic diagram of another data processing apparatus according to an embodiment of the present invention.
  • FIG. 9 is a schematic diagram of an electronic device according to an embodiment of the present invention.
  • Embodiments of the present invention provide a data processing method and related apparatus to reduce resource consumption required for performing butterfly operations on data.
  • the number of points of data for the FFT operation can be as shown in Figure 1-a.
  • the FFT pipeline of the data can be obtained by cascading the k-level base 2 butterfly operation
  • the two-stage base 2 butterfly operation is equivalent to the first-level base 4 butterfly operation, and the base 4 butterfly operation divides the N-point input data into four parts, and each time the corresponding data of each part is calculated, the base 4 butterfly operation mode Can be as shown in Figure 1-b.
  • ⁇ point data is carried out? ? ! ⁇ operation, requires k-level basis 4 butterfly operation cascade, for example 256 points of data FFT operation requires 4 levels of 4 butterfly.
  • FIG. 2 is a schematic structural diagram of an exemplary 4-level base 4 butterfly operation circuit.
  • N the number of points of data that need to perform the base 4 butterfly operation
  • one clock is required to write 1 point of data
  • the first 3N/4 cycles will have 3N/4 points of data.
  • the three shift registers are sequentially stored, and the last N/4 point data is input.
  • the base 4 butterfly operation circuit starts to operate on the data, so that the base 4 butterfly operation circuit has an idle state for nearly 3/4 of the time.
  • Resource utilization is relatively low. For example, 256 points of data require 4 levels of 4 butterfly operations, which requires 4 sets of arithmetic circuits and storage resources. It costs a lot.
  • the following takes the primary base 4 butterfly operation as an example, inputting a total of N points of data, assuming that each clock inputs a bit of data, requires N clock cycles; One clock cycle, buffer the input data to the shift register (R0); N/4 ⁇ N/2 clock cycles, buffer the input data to the shift register (R1); N/2 ⁇ 3N/4 clock cycles, The input data is buffered to the shift register (R2); in the last N/4 cycles, the data is read from the three shift registers and simultaneously input to the base 4 butterfly operator for butterfly synchronization with the last N/4 data.
  • the shape operation the operation simultaneously obtains 4 N/4 data, and needs to continue the N/4 point FFT operation, and sends the first N/4 obtained by the operation to the latter butterfly operator, and the other three channels are written back to In the corresponding buffer of the butterfly operation unit of this class, after the N/4 data of the first operation result is all sent to the rear stage base 4 butterfly operator, N/4 data is read out from the shift register-0. Send to the rear stage base 4 butterfly operator, and then read the corresponding N/4 from shift register-1 It is sent to the stage radix-4 butterfly operator, after the corresponding read-after-another -2-yl 4-level data to the butterfly operation from the shift register, and so on.
  • the base 4 butterfly operation of the 8-point data is used as an example, and the operation of the shift register can be shown in FIG.
  • A1 ⁇ A8 are 8 points of data
  • A_1 ⁇ A_8 are the data of A1 ⁇ A8 after the base 4 butterfly operation
  • the data is sequentially stored into 3 shifts in the first 3N/4 cycles.
  • the bit register here, using the shift register implementation as an example
  • N/4 cycles P7, P8
  • A7 and A8 do not send the shift register, but directly send the data to the previous saved data. 4 butterfly operator.
  • the last three of the four result data are sent back to the shift register (ie, backfill, as shown in P8), and the first one (ie, A_l, A_2) is sent to the next level for base 4 butterfly.
  • Shape operations such as P9.
  • N/4 data is sequentially taken out from the three shift registers and sent to the next-stage base 4 butterfly operator.
  • the next set of N-point input data can be written to the shift register at the same time (ie, B1 ⁇ B8, as shown by P10 and P11).
  • P1 ⁇ P6 are data preparation stages. At this time, the base 4 butterfly operator is idle, P7 ⁇ P9 are data operation stages, and P10 ⁇ P11 are data write-back status. The calculation of the data of other points is similar.
  • the solution proposed by the embodiment of the present invention is advantageous for reducing resource consumption required for performing butterfly operations on data.
  • An embodiment of the data processing method of the present invention may include: inputting data of the y-way to the z-th order base y butterfly operation, and inputting the base y butterfly operator to perform the z-th order base y butterfly operation
  • the y and z are positive integers
  • the result data obtained by the z-th order base y butterfly operation is output;
  • the result data obtained by the z-th order base y butterfly operation is input to the base y butterfly operator for z + 1 Level base y butterfly operation.
  • a data processing method may include the following contents: 401. Data of a y-way to be subjected to a z-th order base y butterfly operation, and inputting a base y butterfly operator to perform a z-th stage Base y butterfly operation;
  • y and z are positive integers.
  • y 256 points (4 4 ) of data are needed for FFT operation. If FFT operation is performed by base 2 butterfly operation, y is 2. If FFT operation is performed by base 4 butterfly operation, y is 4; 3 butterfly operation to perform FFT operation, then y is 3; if FFT operation is performed by base 8 butterfly operation, y is 8; if FFT operation is performed by base 16 butterfly operation, Bay' Jy is 16, to This type of push.
  • N is a positive power of 2
  • N can be added to the positive power of 2, for example, by adding 0, etc., in the original N point data.
  • N On the basis of the addition of a number of 0, so that the total number of points after the completion of 0 is a positive integer power of 2.
  • the z-th order base y butterfly operation is the last-level base y butterfly operation, outputting the result data obtained by the z-th order base y butterfly operation; in the z-th order base y butterfly operation In the case where the final stage y butterfly operation is not performed, the result data obtained by the z-th order base y butterfly operation is input to the base y butterfly operator for the z+1th base y butterfly operation.
  • the data of the z-th order base y butterfly operation is to be performed, and the input base y butterfly operator performs the z-th order base y butterfly operation, in which the z-th order base y butterfly
  • the result data obtained by the z-th order base y butterfly operation is output; in the z-th order base y butterfly operation is not the last-level base y butterfly operation
  • the result data obtained by the z-th order base y butterfly operation is input to the base y butterfly operator for the z+1th base y butterfly operation.
  • the butterfly operator is multiplexed, and the two-stage base y butterfly operation is multiplexed with the same base y butterfly operator.
  • the time-multiplexed base y butterfly operator of the data input can be used for calculation, thereby facilitating the reduction of the butterfly. Shape time and reduce resource consumption.
  • a buffer may also be introduced to store intermediate result data and the like of the base butterfly operation.
  • each of the obtained y-way result data of the z-th order base y butterfly operation may be used.
  • the result data is equally divided into y parts, and the y parts are respectively written into y buffer areas; then the y parts which are equally divided into the result data of each of the y buffer areas are respectively written.
  • the base y butterfly operator is input to perform the z+1th-level base y butterfly operation.
  • the result data of the z+1th base y butterfly operation may be output; and at the z+1th
  • the result data obtained by the z+1 level base y butterfly operation may be input to the base y butterfly operator (or other The base y butterfly operator performs the z+2th base y butterfly operation.
  • the obtained y-way result data of the z+1-th order base y butterfly operation may be Each result data is equally divided into y parts, and the y parts are respectively written into y buffer areas; then each of the result data written into the y buffer areas is equally divided.
  • y parts as the data of the y-way to be subjected to the z+2 level base y butterfly operation, input the base y butterfly operator to perform the z+2 level base y butterfly operation, if the result data is further required to be performed
  • the y butterfly operation can be cyclically processed to complete the base y butterfly operation of all stages.
  • the y cache areas may be located in the y caches respectively.
  • the y cache areas may be located in at least one buffer, where the buffer may be, for example, a shift register (such as a shift register or Other shift registers).
  • the loop processing can be performed based on the above mechanism. Reading out from the y cache areas respectively, writing y parts of each result data in the result data of the base y butterfly operation of the y cache area to the y buffer area, the y The part is used as the data of the y-way to perform the first-level base y butterfly operation, and the base y butterfly operator is input to perform the next-level base y butterfly operation. According to this, the loop processing will finally get the FFT operation result of the data.
  • 256 points (4 4 ) data requires a 4-level base 4 butterfly operation.
  • the first level performs 256 points of data on the base 4 butterfly operation to obtain 4 sets of data of 64 points of data/group;
  • the second stage performs 4 sets of data of 64 points of data/group to perform base 4 butterfly operation to obtain 16 points.
  • Data/group of 16 sets of data; and level 3 performs 16-point data of 16 points of data/group for base 4 butterfly operation, resulting in 64 data sets of 4 points of data/group; and level 4 will be 4 points of data/group
  • the 64 sets of data are subjected to a base 4 butterfly operation to obtain an FFT operation result of 256 points of data. It can be understood that the FFT operation of data of other points is similar.
  • the data processing operation device in FIG. 5 includes: 4 shift registers having a depth of at least 64 (ie, storing at least 64 points of data) and a base 4 butterfly operator, and the operation result data is completed each time the operation is completed.
  • Write back to the shift register when the next stage base 4 butterfly operation starts, read the data to be subjected to the lower base 4 butterfly operation from the shift register to perform the lower base 4 butterfly operation until the FFT operation is obtained. The result is output.
  • the data of all the base y butterfly operations to be performed may be performed.
  • the next level of base y butterfly operation for example, after all the data to be subjected to the base y butterfly operation of each stage is performed, the data of all the base y butterfly operations to be performed may be performed. The next level of base y butterfly operation.
  • each result data in the result data of the z+1th base y butterfly operation of the y*y path can be equally divided into y parts, the y parts
  • the base y butterfly operator (or other butterfly operator) is input to perform the z+2 level base y butterfly operation, for example,
  • Each result data in the obtained y*y path result data of the z+1th level base y butterfly operation is equally divided into y parts, and the y parts are respectively written into y buffer areas;
  • the y-parts of each of the result data written into the y buffers are equally divided into data of the y-way to be subjected to the z+2-level base
  • the z+2 stage base y butterfly operation is performed, and if the result data of the z+2 level base y butterfly operation needs to perform a base y butterfly operation, the loop processing can be performed according to this to complete the base y butterfly of all stages. Operation, all waiting After each level of the data line group are performed y of the butterfly operation stage butterfly operation y group, then a group of all the y butterfly operation to be performed under a group of y data butterfly operation.
  • the 256-point data needs to perform a 4-level base 4 butterfly operation, wherein the first stage completes the 256-point data base 4 butterfly operation to obtain 64 points of data/ Group 4 data; then base 4 butterfly operation of 4 sets of data of level 2 64 points/group (wherein each of the 4 sets of data of 64 points of data/group is equally divided into 4) In part, each group of data is equally divided into four parts as the data of the four-stage base 4 butterfly operation, and the input base 4 butterfly operator performs the second-order base 4 butterfly operation), and 16 is obtained.
  • the data of the base y butterfly operation of the kth stage may be divided into several. Part (for example, 2 parts, 3 parts or more), the k-th order base y butterfly operation of some part of the data is performed until the base y butterfly operation of all remaining stages of the part of the data After the calculation is completed, the k-th order base butterfly operation of another portion of the data of the k-th order base y butterfly operation is performed until the base y butterfly operation of all remaining stages of the other partial data is completed.
  • the k-th order base butterfly operation of the data to be subjected to the k-th order base y butterfly operation is performed until all the remaining data remains.
  • the level of the base y butterfly operation is calculated, and so on, and finally all the base y butterfly operations of all the data are completed, and the FFT calculation result is obtained.
  • the y-path result data obtained by performing the z-th order base y butterfly operation on the y-way data is first written to the m-path result data of the y-buffer area (the result data written into the y-buffer area is also That is, the y-parts of each of the data of the first calculated result data are equally divided, and the data of the y-way to be subjected to the z+1th-level base y butterfly operation is input to the base y butterfly operator.
  • the z+1 level base y butterfly operation can obtain the result data of the y*m path z+1 level base y butterfly operation; obtain the result data of the z+1 level base y butterfly operation of the y*m path Then, among the above-mentioned y-path result data, each of the remaining n-way result data written in the y-th buffer area is equally divided into y parts, and the y-way is to be subjected to the z+1th level.
  • the data of the base y butterfly operation is input to the base y butterfly operator for the z+1th base y butterfly operation, and the result data of the y*n path z+1 level base y butterfly operation can be obtained, wherein
  • the above m is smaller than y, and the sum of m and n is equal to y; the above m is less than or equal to or greater than n.
  • the y-path result data obtained by the z-th order base y butterfly operation is written to the y-path result data.
  • Each of the remaining n ways of the y buffers is equally divided into y parts, and the data of the y-way is to be subjected to the z+1th base y butterfly operation, and the base y butterfly is input.
  • the result data of the y*m path z+1 level base y butterfly operation is equally divided into y parts, and the y is divided into y parts.
  • the part is used as the data of the z+2 stage base y butterfly operation for the y way, and the base y butterfly operator is input to perform the z+2 level base y butterfly operation, and the y*y*m path is obtained.
  • the result data of the +2 level base y butterfly operation is obtained.
  • 256 points of data need to perform a 4-level base 4 butterfly operation, in which the base 4 butterfly operation of 256 points of data is completed in the first stage.
  • 4 sets of data of 64 points of data/group first perform base 4 butterfly operation of two sets of data of 4 sets of data of 2nd level 64 points/group, and obtain 8 sets of data of 16 points of data/group;
  • the base 4 butterfly operation of the two sets of data of the point data/group is completed, the third-order base 4 butterfly operation of the eight sets of data of the 16-point data/group is performed, and 32 sets of data of 4 points of data/group are obtained.
  • the base 4 butterfly operation of the two sets of data obtains 8 sets of data of 16 points of data/group; after the base 4 butterfly operation of the remaining 2 sets of data of the 64 points of data/group is completed, the obtained 16 points of data are/
  • the 3rd level 4 butterfly operation of the 8 sets of data of the group obtains 32 sets of data of 4 points of data/group, and then the obtained 4 sets of data/group of 32 sets of data Fourth stage radix-4 butterfly, to obtain FFT result data 128, thus, four radix-4 butterfly 256 point data needs to be fully completed. It can be understood that the FFT operation of data of other points can be deduced by analogy.
  • the data written in the buffer area may be first input into the base y butterfly operator.
  • the operation, after writing the data in the buffer area, is input into the base y butterfly operator for operation.
  • the shift register storage operation mechanism of the data processing apparatus of the architecture shown in FIG. 5 may be as follows, where, here, mainly using different buffers for buffering each channel of data as an example. Describe.
  • the four types of shading in Fig. 6 represent the four channels of data obtained by the base 4 butterfly operation.
  • the same channel data is equally divided into 4 parts to perform the base 4 butterfly operation of the next stage, and in order to simultaneously read 4 pieces of data of the same 1 channel (the same shading in the figure), the base 4 butterfly operation is performed.
  • the shift register storing the data can be switched, and finally the first 16 data in the first channel data are formed, and the lower 16 addresses of the shift register R0 are present.
  • the 17th to 32th data in the first channel data has the address 16 ⁇ address 31 of the shift register R1, and the 33 ⁇ 48th data in the first channel data has the address 32 ⁇ address 47 of the shift register R2.
  • the 49th to 64th data in the 1st channel data has the address 48 ⁇ address 63 of the shift register R3; the other way data (the other shading in the figure) is stored by analogy.
  • the portions of the same shading are respectively read from the four shift registers and sent to the base 4 butterfly operator, and the data obtained after the operation can be stored in the read-out.
  • Corresponding address if the shift register is large enough, the data obtained after the operation can also be stored in other idle positions.
  • the data obtained by the first 64-point data after the base 4 butterfly operation can still be stored in 0 ⁇ 15 address position of shift register R0, 16 ⁇ 31 address position of shift register R1, 32 ⁇ 47 address position of shift register R 2 and 48 ⁇ 63 address position of shift register R3, other ways of storage
  • the method and the like that is, the four channels obtained by the base 4 butterfly operation, the data of the same channel is divided into four different shift registers, so as to ensure that the subsequent can be simultaneously read out to perform the lower base 4 butterfly operation.
  • the address storage method of the data obtained by the third-level and fourth-level base 4 butterfly operations can be deduced by analogy, and will not be described here.
  • the base 4 butterfly operation priority order can be reasonably and skillfully arranged.
  • the following describes the manners for arranging the priority order of the base 4 butterfly operations provided by the embodiments of the present invention.
  • the premise of the butterfly operation of the latter stage is that the result of the pre-stage butterfly operation has been obtained, taking into account In the case of calculation delay and control delay, etc., the order of each stage of butterfly operation can be appropriately arranged according to needs.
  • one of the four channels of data (64 points of data/road) obtained by performing the 256-point level 1 base 4 butterfly operation is calculated.
  • the four channels of data obtained by the first stage base 4 butterfly operation can be calculated by the remaining three paths.
  • the first way data of the 4-way data is, for example, marked as:
  • the data M, N, 0, P to be used is 64 points.
  • the data of the 4 butterfly operator requires several clock cycles (generally greater than 4 clock cycles) to generate the operation results M, N, 0, and P.
  • the butterfly operation obtains data of 8 channels (16 points of data/road) to be subjected to the third-order base 4 butterfly operation;
  • Step (1) is performed once, then step (2) (3) (4) is performed once, and then step (3) (4) is performed once, and then step (2) is performed once (3) ) (4), and then execute again (3) (4). At this point, all data is completed and the operation result is calculated.
  • step (2) 32 cycles are used, and two of the four channels of data (64 points of data/road) obtained by performing the first-level base 4 butterfly operation are first executed, and two of the corresponding bases are executed. 4 butterfly operation, then The other two of the four channels of data (64-point data/road) obtained by performing the first-level base 4 butterfly operation on the 256-point data perform their corresponding post-base 4 butterfly operations. In this way, it can ensure that the execution of the base 4 butterfly operation of the next level is performed after the current level operation result is stored in the shift register, and at the same time, the duty cycle of the base 4 butterfly operator is fully utilized, and the idle time is reduced. , greatly improved the efficiency of the operation.
  • the controller may be used to control the execution of the foregoing solution in the embodiment of the present invention.
  • the controller may be independently deployed and connected to each buffer area and the base butterfly device, or may be directly deployed in the buffer area or the base butterfly operation. In the device.
  • the data of the z-th order base y butterfly operation is to be input, and the input base y butterfly operator performs the z-th order base y butterfly operation, in which the z-th order base y butterfly
  • the result data obtained by the z-th order base y butterfly operation is output; in the z-th order base y butterfly operation is not the last-level base y butterfly operation
  • the result data obtained by the z-th order base y butterfly operation is input to the base y butterfly operator for the z+1th base y butterfly operation.
  • the two-stage base y butterfly operation multiplexes the same base y butterfly operator, for example, the time multiplex base y butterfly operation of the data input can be utilized.
  • the operation of the device is beneficial to reduce the time of the butterfly operation and reduce resource consumption.
  • the embodiment of the present invention further provides a related device for implementing the above solution.
  • an embodiment of the present invention provides a data processing apparatus 800, which may include:
  • the controller 810 is configured to control data to be subjected to the z-th order base y butterfly operation, and the input base y butterfly operator 820 performs a z-th order base y butterfly operation, wherein the y and z are positive
  • the result data obtained by the z-th order base y butterfly operation is output; in the z-th order base y butterfly operation
  • the result data obtained by the z-th order base y butterfly operation is input to the base y butterfly operator 820 for the z+1th level.
  • Base y butterfly operation is configured to control data to be subjected to the z-th order base y butterfly operation, and the input base y butterfly operator 820 performs a z-th order base y butterfly operation, wherein the y and z are positive
  • the result data obtained by the z-th order base y butterfly operation is output; in the z-th order base y butterfly operation
  • the result data obtained by the z-th order base y butterfly operation is input to the base
  • the data processing apparatus 800 may further include y buffer areas 830;
  • the controller 810 is further configured to perform the z-th order base y butterfly operation on the data input base y butterfly operator 820 of the y way to perform the z-th order base y butterfly operation to obtain the y-way z-th order base.
  • each result data in the y-path result data obtained by the z-th order base y butterfly operation is equally divided into y parts, and the y parts are respectively written into y caches. In area 830.
  • the controller 810 may be specifically configured to perform a z-th order base y butterfly operation on the data input base y butterfly operator 820 of the y way to perform the z-th order base y butterfly operation.
  • the z-th order base y butterfly operation is the last-level base y butterfly operation
  • the result data obtained by the z-th order base y butterfly operation is output; in the z-th order base y butterfly operation is not the last stage
  • each result data in the y-path result data obtained by the z-th order base y butterfly operation is equally divided into y parts, and y parts are respectively written into y buffer areas 830.
  • the y-parts of the y-cavity 830 are equally divided into y-way data to be subjected to the z+1th-level base y butterfly operation, and the base y is input.
  • the butterfly operator 820 performs a z+1th order base y butterfly operation, where y and z are positive integers.
  • the controller 810 may, for example, control to divide the data of the base y butterfly operation to be performed at the kth stage (such as the 2nd or 3rd stage or the other stage of the last stage) into a few parts (for example, 2 parts, 3 parts or more parts), first perform the k-th order base y butterfly operation of some part of the data until the base y butterfly of all the remaining stages of the part of the data After the calculation is completed, the k-th order base y butterfly operation of another part of the data of the k-th order base y butterfly operation is performed until the base y butterfly operation of all remaining stages of the other part of the data is calculated.
  • the kth stage such as the 2nd or 3rd stage or the other stage of the last stage
  • a few parts for example, 2 parts, 3 parts or more parts
  • controller 810 may be specifically configured to input the data of the y-way to the z-th order base y butterfly operation into the base y butterfly operator 820 to perform the z-th order base y butterfly operation at the z-th order base.
  • the result data obtained by the z-th order base y butterfly operation is output; in the z-th order base y butterfly operation is not the last-level base y butterfly
  • the first Each result data in the y-path result data obtained by the z-stage base y butterfly operation is equally divided into y parts, and the y parts are respectively written into y buffer areas 830; first, the y-way result data is First, the y-parts of each of the m-path result data written into the y-cavity area 830 are equally divided into y-way data to be subjected to the z+1-th order base y butterfly operation.
  • each result data in the y way result data and the remaining n way result data written to the y buffer areas 830 are respectively equally divided.
  • the controller 810 may be specifically configured to: after the y way result data of the zth stage base y butterfly operation, the remaining n way result data written to the y buffer areas 830
  • the y-parts that are equally divided into, as the data of the y-way to be subjected to the z+1-th order base y- butterfly operation, before the input base y-sharp operator 820 performs the z+1-th order base y- butterfly operation,
  • Each result data in the result data of the y*m path z+1 level base y butterfly operation is equally divided into y parts, and the y part is used as the y way to perform the z+2 level base y butterfly shape
  • the calculated data is input to the base y butterfly operator 820 for the z+2th base y butterfly operation to obtain the result data of the y*y*m path z+2 level base y butterfly operation.
  • the controller 810 may also control all the data to be subjected to each level y butterfly operation to perform the level y butterfly operation, and then perform all the bases to be performed. The next-level base y butterfly operation of the data of the y butterfly operation.
  • the controller 810 can also be used to perform y*y road z+ after the result data of the z+1th base y butterfly operation of the y*y path obtained by the z+1th base y butterfly operation.
  • Each result data in the result data of the 1-stage base y butterfly operation is equally divided into y parts, and the y parts are used as the data of the y-way to be subjected to the z+2-level base y butterfly operation, and the base y is input.
  • the butterfly operator 820 performs a z+2th base y butterfly operation.
  • y buffers 830 may be located in y buffers respectively; or y buffers 830 may be located in at least one buffer.
  • controller 810 can be built in the base y butterfly operator 820, or can be built in the buffer area 830, and can of course be independently set.
  • the function of the controller 810 can also be partially or fully integrated
  • the base y butterfly operator 820 or the buffer 830 is located in the buffer.
  • the controller in the data processing apparatus 800 of this embodiment controls the data of the y-way to be subjected to the z-th order base y butterfly operation, and the input base y butterfly operator performs the z-th order base y butterfly operation.
  • the z-th order base y butterfly operation is the last-level base y butterfly operation
  • the result data obtained by the z-th order base y butterfly operation is output; in the z-th order base y butterfly operation is not the last
  • the result data obtained by the z-th order base y butterfly operation is input to the base y butterfly operator for the z+th order base y butterfly operation.
  • the mechanism multiplexes the base y butterfly operator
  • the two-stage base y butterfly operation multiplexes the same base y butterfly operator, for example, the time multiplexed base y butterfly operator of the data input can be used for the operation. Therefore, it is beneficial to reduce the time of butterfly operation and reduce resource consumption.
  • an embodiment of the present invention further provides an electronic device 900, wherein the electronic device is configured with a data processing device 800.
  • the electronic device 900 can be, for example, an access device (such as a base station, an access point, etc.), a user terminal (such as a mobile phone, a portable computer, etc.), or other electronic device that needs to perform data processing.
  • the embodiment of the present invention further provides a computer storage medium, wherein the computer storage medium can store a program, and the program includes some or all of the steps of the data processing method described in the foregoing method embodiments.
  • the data of the z-th order base y butterfly operation is to be performed, and the input base y butterfly operator performs the z-th order base y butterfly operation, in which the z-th order base y butterfly Operation as the last level of base y butterfly
  • the z-th stage outputting the result data obtained by the z-th order base y butterfly operation; in the case where the z-th order base y butterfly operation is not the last-level base y butterfly operation, the z-th stage
  • the result data obtained by the base y butterfly operation is input to the base y butterfly operator for the z+1th base y butterfly operation.
  • the mechanism multiplexes the base y butterfly operator
  • the two-stage base y butterfly operation multiplexes the same base y butterfly operator, for example, the time multiplex base y butterfly operator of the data input can be used for operation. Therefore, it is beneficial to reduce the time of butterfly operation and reduce resource consumption.
  • the program can be stored in a computer readable storage medium, for example, the storage medium can include : Read only memory, random access memory, disk or optical disk, and so on.

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Traffic Control Systems (AREA)
  • Complex Calculations (AREA)

Abstract

一种数据处理方法和相关装置。其中,一种数据处理方法可包括:将y路待进行第z级基y蝶形运算的数据,输入基y蝶形运算器进行第z级基y蝶形运算,其中,y和z为正整数;在述第z级基y蝶形运算为最后一级基y蝶形运算的情况下,输出第z级基y蝶形运算得到的结果数据;在第z级基y蝶形运算不为最后一级基y蝶形运算的情况下,将第z级基y蝶形运算得到的结果数据,输入基y蝶形运算器进行第z+1级基y蝶形运算。本发明实施例提供的技术方案,有利用减少对数据进行蝶形运算所需的资源消耗。

Description

数据处理方法和相关装置
技术领域
本发明涉及数据处理技术领域, 具体涉及数据处理方法和相关装置。 背景技术
目前,在通信领域中的信道估计、信号分析及信号比较等过程中需要进行 数据处理, 需要广泛的运用到傅立叶分析的方法, 并对傅里叶分析后的数据进 行相应的处理, 使得信道估计、 信号分析等过程得到筒化。 傅里叶分析可以通 过快速傅里叶变换(FFT, Fast Fourier Transform )运算处理单元来实现, 在其 它数据处理领域也有类似应用。
现有的数据处理***中的 FFT运算处理单元可以通过多种算法 (例如基 2 蝶形运算、 基 4蝶形运算和混合基等算法) 来实现。 但是, 目前蝶形运算资源 利用率还相对较低, 例如 256点数据需要 4级基 4蝶形运算, 则需要耗费 4套运算 电路和存储资源, 资源耗费相对较多。 发明内容
本发明实施例提供一种数据处理方法和相关装置,以减少对数据进行蝶形 运算所需的资源消耗。
本发明实施例一方面提供一种数据处理方法, 可包括:
将 y路待进行第 z级基 y蝶形运算的数据输入基 y蝶形运算器进行第 z级基 y 蝶形运算, 其中, 所述 y和 z为正整数;
在所述第 z级基 y蝶形运算为最后一级基 y蝶形运算的情况下,输出所述 第 z级基 y蝶形运算得到的结果数据;
在所述第 z级基 y蝶形运算不为最后一级基 y蝶形运算的情况下,将所述 第 z级基 y蝶形运算得到的结果数据,输入所述基 y蝶形运算器进行第 z+1级 基 y蝶形运算。
本发明实施例另一方面还提供一种数据处理装置, 包括:
控制器和基 y蝶形运算器;
其中, 所述控制器, 用于将 y路待进行第 z级基 y蝶形运算的数据输入所 述基 y蝶形运算器进行第 z级基 y蝶形运算,在所述第 z级基 y蝶形运算为最 后一级基 y蝶形运算的情况下,输出所述第 z级基 y蝶形运算得到的结果数据; 在所述第 z级基 y蝶形运算不为最后一级基 y蝶形运算的情况下, 将所述第 z 级基 y蝶形运算得到的结果数据, 输入所述基 y蝶形运算器进行第 z+1级基 y 蝶形运算, 其中, 所述 y和 z为正整数。
本发明实施例另一方面还提供一种接入设备,所述接入设备中部署有如上 述实施例所述的数据处理装置。
本发明实施例另一方面还提供一种用户设备,所述用户设备中部署有如上 述实施例所述的数据处理装置。
本发明实施例另一方面还提供一种计算机存储介质,
所述计算机存储介质存储有程序,所述程序执行时包括如上述数据处理方 法的部分或全部步骤。
由上可见, 本发明实施例将 y路待进行第 z级基 y蝶形运算的数据, 输入基 y 蝶形运算器进行第 z级基 y蝶形运算, 在该第 z级基 y蝶形运算为最后一级基 y蝶 形运算的情况下, 输出该第 z级基 y蝶形运算得到的结果数据; 在该第 z级基 y 蝶形运算不为最后一级基 y蝶形运算的情况下, 将该第 z级基 y蝶形运算得到的 结果数据,输入该基 y蝶形运算器进行第 z+1级基 y蝶形运算。 由于该机制对基 y 蝶形运算器进行了复用, 两级基 y蝶形运算复用同一个基 y蝶形运算器, 例如可 利用数据输入的时间复用基 y蝶形运算器进行运算, 故而有利于减少蝶形运算 的时间并减少资源消耗。 附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描 述中所需要使用的附图作筒单地介绍, 显而易见地, 下面描述中的附图仅仅是 本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性 的前提下, 还可以根据这些附图获得其它的附图。
图 1-a是本发明实施例提供的一种基 2蝶形运算模型示意图;
图 1-b是本发明实施例提供的一种基 4蝶形运算模型示意图;
图 2是本发明实施例提供的一种 4级基 4蝶形运算电路的架构示意图; 图 3是一种移位寄存器的读写操作的示意图;
图 4是本发明实施例提供的一种数据处理方法的示意图;
图 5是本发明实施例提供的一种数据处理装置的示意图;
图 6是本发明实施例提供的一种移位寄存器操作的示意图;
图 7-a是本发明实施例提供的一种蝶形运算顺序安排的示意图;
图 7-b是本发明实施例提供的另一种蝶形运算顺序安排的示意图; 图 8-a是本发明实施例提供的一种数据处理装置的示意图;
图 8-b是本发明实施例提供的另一种数据处理装置的示意图;
图 9是本发明实施例提供的一种电子设备的示意图。
具体实施方式
本发明实施例提供一种数据处理方法和相关装置,以减少对数据进行蝶形 运算所需的资源消耗。
为使得本发明的发明目的、 特征、 优点能够更加的明显和易懂, 下面将结 合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、 完整地描 述, 显然, 下面所描述的实施例仅仅是本发明一部分实施例, 而非全部的实施 例。基于本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提 下所获得的所有其它实施例, 都属于本发明保护的范围。
首先, 由 FFT公式可推得:
W— 1
Figure imgf000005_0001
N ,
2 N
j kn
[x(n) +WN N
n=0
.2π j
, - /—— kn kN r i i,,kc为偶数
wkn = e N
其中, WN 2 = (-l = k k为为奇苛数数 , Q≤k≤N - 1 为待 FFT运算的数据, 为 O)的 FFT运算结果数据, N为待
FFT运算的数据的点数。 其中, 由上可得基 2蝶形运算方式可如图 1-a所示。
可以理解, 2^、数据的 FFT流水可由 k级基 2蝶形运算级联得到;
两级基 2蝶形运算等价于一级基 4蝶形运算, 基 4蝶形运算将 N点输入数据 等分成 4部分,每次取各部分的相应数据进行计算,基 4蝶形运算方式可如图 1-b 所示。 其中, ^点数据进行??!^运算, 需 k级基 4蝶形运算级联, 例如 256点数据 FFT运算需要 4级基 4蝶形。
参见图 2, 图 2是举例的一种 4级基 4蝶形运算电路的架构示意图。一般在对 数据进行基 4蝶形运算过程中, 假设有 N点数据需要进行基 4蝶形运算, 且写入 1点数据需要 1个时钟, 则前 3N/4个周期将 3N/4点数据依次存入三个移位寄存 器, 输入最后 N/4点数据开始, 基 4蝶形运算电路开始对数据进行运算, 如此则 基 4蝶形运算电路有近 3/4的时间处于闲置状态, 运算资源利用率相对较低, 例 如 256点数据需要 4级基 4蝶形运算, 则需要耗费 4套运算电路和存储资源, 资源 耗费相对较多。
为便于理解图 2所示架构的工作机制,下面以进行一级基 4蝶形运算过程为 例, 输入共 N点数据, 假设每个时钟输入一点数据, 需要 N个时钟周期; 前 N/4 个时钟周期, 将输入数据緩存至移位寄存器(R0 ); N/4~N/2个时钟周期, 将 输入数据緩存至移位寄存器( R1 ); N/2~3N/4个时钟周期, 将输入数据緩存至 移位寄存器(R2 ); 最后 N/4个周期, 同时从三个移位寄存器中读出数据并与 最后的 N/4个数据同步输入到基 4蝶形运算器进行蝶形运算, 运算同时得到 4路 N/4个数据, 需要继续做 N/4点的 FFT运算, 将运算得到的第一路 N/4送往后级 蝶形运算器, 其余三路回写到本级蝶形运算器的对应緩存中, 等第一路的运算 结果 N/4个数据全部送到后级基 4蝶形运算器后, 再从移位寄存器 -0读出 N/4个 数据送往后级基 4蝶形运算器, 然后再从移位寄存器 -1读取对应 N/4个数据送往 后级基 4蝶形运算器,之后再从移位寄存器 -2读取对应数据送往后级基 4蝶形运 算器, 以此类推。
下面以后级做 8点数据的基 4蝶形运算为例, 对移位寄存器的操作可如图 3 示。 如图 3中 P1~P6状态所示, A1~A8为 8点数据, A_1~A_8为 A1~A8经过基 4 蝶形运算后的数据, 前 3N/4个周期将数据依次存入 3个移位寄存器(此处以用 移位寄存器实现为例), 后 N/4个周期 (P7, P8 ) 完成蝶形运算, A7和 A8不送 移位寄存器, 而是直接同之前保存的数据送往基 4蝶形运算器。 每次运算后将 得到的 4个结果数据中的后 3个送回移位寄存器 (即回填, 如 P8所示), 将第 1 个(即 A_l , A_2 )送入下 1级进行基 4蝶形运算(如 P9 )。 然后依次从 3个移位 寄存器取出 N/4个数据送入下一级基 4蝶形运算器运算, 此时, 可同时往移位寄 存器写入下一组的 N点输入数据 (即 B1~B8, 如 P10和 P11所示)。
其中, 图 3中, P1~P6为数据准备阶段, 此时基 4蝶形运算器空闲, P7~P9 为数据运算阶段, P10~P11为数据回写状态。 其它点数的数据的计算过程则以 此类推。
本发明实施例提出的方案有利于减少对数据进行蝶形运算所需的资源消 耗。
下面通过具体实施例, 分别进行详细的说明。 本发明的数据处理方法的一个实施例, 其中, 该方法可包括: 将 y路待进 行第 z级基 y蝶形运算的数据, 输入基 y蝶形运算器进行第 z级基 y蝶形运算, 其 中, 该 y和 z为正整数; 在该第 z级基 y蝶形运算为最后一级基 y蝶形运算的情况 下, 输出该第 z级基 y蝶形运算得到的结果数据; 在该第 z级基 y蝶形运算不为最 后一级基 y蝶形运算的情况下, 将该第 z级基 y蝶形运算得到的结果数据, 输入 该基 y蝶形运算器进行第 z+ 1级基 y蝶形运算。
参见图 4, 本发明实施例提供的一种数据处理方法, 可包括以下内容: 401、 将 y路待进行第 z级基 y蝶形运算的数据, 输入基 y蝶形运算器进行第 z 级基 y蝶形运算;
可以理解, y和 z为正整数。 假设需 256点( 44 )数据进行 FFT运算, 若是通 过基 2蝶形运算来进行 FFT运算, 则 y为 2, 若是通过基 4蝶形运算来进行 FFT运 算, 则 y为 4; 若是通过基 3蝶形运算来进行 FFT运算, 则 y为 3; 若是通过基 8蝶 形运算来进行 FFT运算, 则 y为 8; 若是通过基 16蝶形运算来进行 FFT运算, 贝' Jy 为 16, 以此类推。
在本发明的一些实施例中, 例如存在 N点 FFT运算, 若采用基 y蝶形运算器 进行处理, 则共需要进行 M ( M = logyN )级基 y蝶形运算, z小于等于^1。 一般 的, 此处 N为 2正整数次幂, 当 N不为 2的正整数次幂时, 可将 N补充为 2的正整 数次幂, 例如可通过补 0法等, 在原有 N点数据的基础上补若干个 0, 使得补 0 后的数据总点数为 2的正整数次幂。
402、在该第 z级基 y蝶形运算为最后一级基 y蝶形运算的情况下, 输出该第 z级基 y蝶形运算得到的结果数据; 在该第 z级基 y蝶形运算不为最后一级基 y蝶 形运算的情况下, 将该第 z级基 y蝶形运算得到的结果数据, 输入该基 y蝶形运 算器进行第 z+1级基 y蝶形运算。
可以看出, 本实施例中将 y路待进行第 z级基 y蝶形运算的数据, 输入基 y 蝶形运算器进行第 z级基 y蝶形运算, 在该第 z级基 y蝶形运算为最后一级基 y蝶 形运算的情况下, 输出该第 z级基 y蝶形运算得到的结果数据; 在该第 z级基 y 蝶形运算不为最后一级基 y蝶形运算的情况下, 将该第 z级基 y蝶形运算得到的 结果数据,输入该基 y蝶形运算器进行第 z+1级基 y蝶形运算。 由于该机制对基 y 蝶形运算器进行了复用, 两级基 y蝶形运算复用同一个基 y蝶形运算器, 例如可 利用数据输入的时间复用基 y蝶形运算器进行运算, 故而有利于减少蝶形运算 的时间并减少资源消耗。
在本发明的一些实施例中, 还可以引入緩存器来存储基 y蝶形运算的中间 结果数据等。 举例来说, 在上述第 z级基 y蝶形运算不为最后一级基 y蝶形运算 的情况下, 可将该第 z级基 y蝶形运算的得到的 y路结果数据中的每路结果数据 等分为 y个部分, 并将该 y个部分分别写入 y个緩存区中; 而后将分别写入到该 y 个緩存区中的该每路结果数据所等分为的 y个部分,作为 y路待进行第 z+1级基 y 蝶形运算的数据, 输入该基 y蝶形运算器进行第 z+ 1级基 y蝶形运算。
此外,在第 z+1级基 y蝶形运算为最后 1级基 y蝶形运算的情况下, 可输 出上述第 z+1级基 y蝶形运算的结果数据;而在该第 z+1级基 y蝶形运算不为 最后一级基 y蝶形运算的情况下,又可将该第 z+1级基 y蝶形运算得到的结果 数据, 输入上述基 y蝶形运算器(或其它基 y蝶形运算器 )进行第 z+2级基 y 蝶形运算。其中,在上述第 z+1级基 y蝶形运算不为最后一级基 y蝶形运算的 情况下,例如可将该第 z+1级基 y蝶形运算的得到的 y路结果数据中的每路结 果数据等分为 y个部分, 并将该 y个部分分别写入 y个緩存区中; 而后将分别 写入到该 y个緩存区中的该每路结果数据所等分为的 y个部分,作为 y路待进 行第 z+2级基 y蝶形运算的数据, 输入该基 y蝶形运算器进行第 z+2级基 y 蝶形运算, 若结果数据后续还需进行基 y蝶形运算, 可据此循环处理以完成所 有级的基 y蝶形运算。
其中, 上述 y个緩存区可分别位于 y个緩存器中; 或者, 该 y个緩存区也可 位于至少一个緩存器中, 其中, 该緩存器例如可选用移位緩存器(例如移位寄 存器或其它移位緩存器)。
可以理解, 若进行本级基 y蝶形运算后还未能得到 FFT运算结果, 即在本 级基 y蝶形运算不是最后一级基 y蝶形运算的情况下, 可基于上述机制循环处 理, 分别从上述 y个緩存区中读取出, 写入该 y个緩存区到中的本级基 y蝶形运 算的结果数据中的每路结果数据所等分为的 y个部分, 将该 y个部分作为 y路待 进行下 1级基 y蝶形运算的数据, 输入该基 y蝶形运算器进行下一级基 y蝶形运 算, 据此循环处理最终将得到数据的 FFT运算结果。
举例来说, 以对 256点 (44点)数据进行 FFT运算为例, 256点 ( 44 )数据 需要进行 4级基 4蝶形运算。 其中, 第 1级将 256点数据进行基 4蝶形运算, 得到 64点数据 /组的 4组数据; 第 2级将 64点数据 /组的 4组数据进行基 4蝶形运算, 得 到 16点数据 /组的 16组数据; 而第 3级将 16点数据 /组的 16组数据进行基 4蝶形运 算, 得到 4点数据 /组的 64组数据; 而第 4级将 4点数据 /组的 64组数据进行基 4蝶 形运算, 得到 256点数据的 FFT运算结果。 可以理解, 其它点数的数据的 FFT 运算方式以此类推。
参见图 5 , 图 5中的数据处理运算装置包括: 4个深度至少为 64 (即至少存 储 64点数据) 的移位寄存器和一个基 4蝶形运算器, 每次完成运算后将运算结 果数据写回该移位寄存器中, 当下一级基 4蝶形运算开始时, 再从该移位寄存 器中读取待进行下级基 4蝶形运算的数据进行下级基 4蝶形运算, 直到得到 FFT 运算结果输出。
在本发明的一些实施例中, 例如可以在所有待进行每级基 y蝶形运算的数 据都进行该级基 y蝶形运算后,再进行所有待进行下一级基 y蝶形运算的数据的 下一级基 y蝶形运算。
举例来说, 在进行上述第 z+1级基 y蝶形运算得到的 y*y路第 z+1级基 y 蝶形运算的结果数据之后,在第 z+1级基 y蝶形运算不是最后一级基 y蝶形运 算的情况下,可将该 y*y路第 z+1级基 y蝶形运算的结果数据中的每路结果数 据等分为 y个部分,将该 y个部分作为 y路待进行第 z+2级基 y蝶形运算的数 据, 输入上述基 y蝶形运算器(或其它蝶形运算器 )进行第 z+2级基 y蝶形运 算, 例如, 可将该第 z+1级基 y蝶形运算的得到的 y*y路结果数据中的每路结 果数据等分为 y个部分, 并将该 y个部分分别写入 y个緩存区中; 而后将分别 写入到该 y个緩存区中的该每路结果数据所等分为的 y个部分,作为 y路待进 行第 z+2级基 y蝶形运算的数据, 输入该基 y蝶形运算器进行第 z+2级基 y 蝶形运算, 若第 z+2级基 y蝶形运算的结果数据还需进行基 y蝶形运算, 可据 此循环处理以完成所有级的基 y蝶形运算,所有待进行每级基 y蝶形运算的数 据都进行该级基 y蝶形运算后,再进行所有待进行下一级基 y蝶形运算的数据 的下一级基 y蝶形运算。 以对 256点 (44点)数据进行 FFT运算为例, 256点数据需要进行 4级基 4蝶 形运算, 其中, 第 1级完成 256点数据的基 4蝶形运算后得到 64点数据 /组的 4组 数据; 而后进行第 2级 64点数据 /组的 4组数据的基 4蝶形运算(其中, 64点数据 /组的 4组数据中的每组数据被等分为的 4个部分, 每组数据都被等分为的 4个部 分作为 4路待进行第 2级基 4蝶形运算的数据,输入基 4蝶形运算器进行第 2级基 4 蝶形运算),得到 16点数据 /组的 16组数据; 在 64点数据 /组的 4组数据的基 4蝶形 运算都完成之后, 再进行第 3级的 16点数据 /组的 16组数据的基 4蝶形运算, 得 到 4点数据 /组的 64组数据; 在 16点数据 /组的 16组数据的基 4蝶形运算都完成之 后, 再进行第 4级的 4点数据 /组的 64组数据的基 4蝶形运算, 得到 256点数据的 FFT运算结果。 其它点数的数据的 FFT运算方式以此类推。
在本发明的另一些实施例中, 例如也可以在先将待进行第 k级(如第 2 或第 3级或非最后 1级的其它级)基 y蝶形运算的数据的划分为几个部分(例 如 2个部分、 3个部分或更多部分),先进行其中的某部分数据的该第 k级基 y 蝶形运算, 直到该某部分数据的剩余所有级的基 y蝶形运算都计算完成后,再 进行待进行第 k级基 y蝶形运算的数据的另一部分的第 k级基 y蝶形运算,直 到该另一部分数据的剩余所有级的基 y蝶形运算都计算完成,若还有在待进行 第 k级的再一部分数据,再进行该待进行第 k级基 y蝶形运算的数据的再一部 分的第 k级基 y蝶形运算,直到该再一部分数据的剩余所有级的基 y蝶形运算 都计算完成, 以此类推, 最终完成所有数据所有级基 y蝶形运算, 得到 FFT 计算结果。
例如, 先将 y路数据进行第 z级基 y蝶形运算得到的 y路结果数据中, 先 写入到 y个緩存区的其中 m路结果数据(写入到 y个緩存区的结果数据也就 是先计算出的结果数据)的每路数据所分别等分为的 y个部分,作为 y路待进 行第 z+1级基 y蝶形运算的数据以输入上述基 y蝶形运算器进行第 z+1级基 y 蝶形运算, 可得到 y*m路第 z+1级基 y蝶形运算的结果数据; 在得到该 y*m 路第 z+1级基 y蝶形运算的结果数据之后,将上述 y路结果数据中,后写入到 该 y个緩存区的剩余 n路结果数据中的每路数据所分别等分为的 y个部分,作 为 y路待进行第 z+1级基 y蝶形运算的数据, 输入该基 y蝶形运算器进行第 z+1级基 y蝶形运算, 可得到 y*n路第 z+1级基 y蝶形运算的结果数据, 其中 上述 m小于 y, 上述 m与 n之和等于 y; 上述 m小于或等于或大于 n。
其中,在第 z+1级基 y蝶形运算不是最后一级基 y蝶形运算的情况下,在 将上述第 z级基 y蝶形运算得到的 y路结果数据中,后写入到该 y个緩存区的 剩余 n路结果数据中的每路结果数据所分别等分为的 y个部分,作为 y路待进 行第 z+1级基 y蝶形运算的数据, 输入所述基 y蝶形运算器进行第 z+1级基 y 蝶形运算之前, 将 y*m路第 z+1级基 y蝶形运算的结果数据中的每路结果数 据等分为 y个部分,将该 y个部分作为 y路待进行第 z+2级基 y蝶形运算的数 据, 输入该基 y蝶形运算器进行第 z+2级基 y蝶形运算, 可得到 y*y*m路第 z+2级基 y蝶形运算的结果数据。
例如, 仍以对 256点(44点)数据进行 FFT运算为例, 256点数据需要进行 4 级基 4蝶形运算, 其中,在第 1级完成 256点数据的基 4蝶形运算后得到 64点数据 /组的 4组数据; 先进行第 2级 64点数据 /组的 4组数据中的其中两组数据的基 4蝶 形运算,得到 16点数据 /组的 8组数据;在 64点数据 /组的 2组数据的基 4蝶形运算 都完成后, 再进行 16点数据 /组的 8组数据的第 3级基 4蝶形运算, 得到 4点数据 / 组的 32组数据, 而后再进行 4点数据 /组的 32组数据的第 4级基 4蝶形运算, 得到 128点数据的 FFT运算结果; 然后, 在进行第 2级 64点数据 /组的 4组数据中的剩 余两组数据的基 4蝶形运算, 得到 16点数据 /组的 8组数据; 在 64点数据 /组的剩 余 2组数据的基 4蝶形运算都完成后,再进行得到的 16点数据 /组的 8组数据的第 3级基 4蝶形运算, 得到 4点数据 /组的 32组数据, 而后再进行得到的 4点数据 /组 的 32组数据的第 4级基 4蝶形运算, 得到 128点数据的 FFT运算结果, 至此, 256 点数据需要进行的 4级基 4蝶形运算全部完成。 可以理解, 其它点数的数据的 FFT运算方式可以此类推。
其中, 本发明实施例方案在对待进行同一级基 y蝶形运算的数据进行同一 级基 y蝶形运算的过程中,可将先写入緩存区中的数据先输入基 y蝶形运算器进 行运算, 将后写入緩存区中的数据后输入基 y蝶形运算器进行运算。
可以理解的是, 上述方案中的步骤可在控制器的控制下实施, 该控制器可 独立于基 y蝶形运算器和緩存器,也可将其部分或全部功能集成在基 y蝶形运算 器和緩存器中。 为便于更好的理解和实施上述方案,下面以进行 256点数据的基 4蝶形运算 的过程为例进行描述。
参见图 6,在一种可行的实施方式中, 图 5所示架构的数据处理装置的移位 寄存器存储操作机制可以如下, 其中, 此处主要以每路数据利用不同的緩存器 进行緩存为例进行描述。
首先, 输入 64点数据 /路的 4路数据进行 256点数据的基 4蝶形运算, 得到 4 路计算结果分别存放于四个移位寄存器中 (移位寄存器 R0~ R3 )。
图 6中的 4种底纹分别表示基 4蝶形运算得到的 4路数据。 其中, 同 1路数据 等分成 4份来进行下一级的基 4蝶形运算, 为了能同时的读取同 1路(图中相同 底纹) 的 4份数据进行基 4蝶形运算, 在存放数据时, 每存完 1路的 16个数据后 就可对存储该路数据的移位寄存器进行切换, 最终形成第 1路数据中的前 16个 数据存在移位寄存器 R0的低 16个地址中, 第 1路数据中的第 17~32个数据存在 移位寄存器 R1的地址 16~地址31 , 第 1路数据中的第 33~48个数据存在移位寄存 器 R2的地址 32~地址47,第 1路数据中的第 49~64个数据存在移位寄存器 R3的地 址 48~地址63; 其它路数据(图中其它底纹) 的存储方式以此类推。
当需要进行下级基 4蝶形运算的时候,分别从 4个移位寄存器中读出同一种 底纹的部分送入基 4蝶形运算器, 运算后得到的数据可再存放在读取出来的对 应地址(若移位寄存器足够大, 则运算后得到的数据亦可存放在其它空闲位 置), 举例来说, 第 1路 64点数据进行基 4蝶形运算后得到的数据, 仍可存储在 移位寄存器 R0的 0~15地址位置、 移位寄存器 R1的 16~31地址位置、 移位寄存器 R 2的 32~47地址位置和移位寄存器 R3的 48~63地址位置, 其它几路的存储方式 以此类推, 即基 4蝶形运算得到的 4路中, 同 1路的数据分成 4份存在不同的移位 寄存器中, 以保证后续能够同时读取出来以进行下级基 4蝶形运算。 第三级和 第四级基 4蝶形运算得到的数据的地址存储方式可以此类推, 此处不再赘述。
为获得尽量高的运算效率, 还可对基 4蝶形运算优先级顺序进行合理巧妙 的安排。 下面介绍本发明实施例提供的几种安排基 4蝶形运算优先级顺序的方 式。
可以理解,后级蝶形运算的前提是前级蝶形运算结果已经得到, 考虑到计 算延迟和控制延迟等情况,可根据需要来适当的安排各路数据进行每级蝶形运 算的先后顺序。
下面以对 256点数据(44 )进行 FFT运算为例, 一种蝶形计算的顺序安排例 如图 7-a所示。
①执行 256点的第一级基 4蝶形运算, 得到 64点数据 /路的 4路数据, 需 64个 时钟周期(Cyde );
②执行其中 1路(例如第 1路) 的 64点数据的第二级基 4蝶形运算, 得到 16 点数据 /路的 4路数据, 需 16个 cycle;
③执行上述 16点数据 /路的 4路数据的第三级基 4蝶形运算, 得到 4点数据 / 路的 16路数据, 需 16个 cycle;
④执行上述 16路 4点数据的基 4蝶形运算, 需要 16个 cycle;
至此, 执行 256点的第 1级基 4蝶形运算得到的 4路数据 (64点数据 /路) 的 其中 1路数据计算完毕。 以此类推, 重复执行 3遍步骤②③④, 便可将第 1级基 4 蝶形运算得到的 4路数据得其余三路运算完毕。
假设 64点基 4蝶形运算, 相当于图 5中步骤②中的运算过程, 输入 4路数据 需要 16cycles, 64个数据标号例如可如下:
0、 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 11、 12、 13、 14、 15
16、 17、 18、 19、 20、 21、 22、 23、 24、 25、 26、 27、 28、 29、 30、 31 32、 33、 34、 35、 36、 37、 38、 39、 40、 41、 42、 43、 44、 45、 46、 47 48、 49、 50、 51、 52、 53、 54、 55、 56、 57、 58、 59、 60、 61、 62、 63 进行基 4蝶形运算得到 4路数据的第 1路数据为例如标记为:
A、 B、 C、 D、 E、 F、 G、 H、 I、 J、 K、 L、 M、 N、 0、 P, 该 16个数据 需要进行下 1级的基 4蝶形运算;
进行下 1级基 4蝶形运算的 4路共 16个输入数据如下:
A、 B、 C、 D
E、 F、 G、 H
1、 J、 K、 L
M、 N、 0、 P 考虑到在进行蝶形运算时加减、旋转因子乘法需若干个时钟周期,在进行 上述 16点数据的基 4蝶形运算中, 需用到的数据 M、 N、 0、 P是由 64点数据进 行基 4蝶形运算时对应由数据 12、 13、 14、 15、 28、 29、 30、 31、 44、 45、 46 及 47、 60、 61、 62、 63计算产生的, 而刚输入基 4蝶形运算器的这些数据需要 若干时钟周期 (一般大于 4个时钟周期) 才会生成运算结果 M、 N、 0、 P, 因 此, 若从移位寄存器中读得 64点蝶形运算需要的 4路各 16个数后立即进行下一 级 16点基 4运算可能还不行, 因为数据 12、 28、 44、 60输入基 4蝶形运算器才过 了 3个时钟(该 3个时钟为将 13、 14、 15输入基 4蝶形运算器), 数据 M此时可能 还未能计算得到并存入移位寄存器中, 同理 N、 0、 P此时也未计算完毕。 因此, 可进行一定的延迟处理,使得进行后级蝶形运算所需数据, 已在相应前级蝶形 运算后得到并存入了移位寄存器中。
下面仍以对 256点数据(44 )进行 FFT运算为例, 本发明实施例提供的另一 种蝶形计算的顺序安排例如图 7-b所示。
(1)执行 256点数据第 1级的基 4蝶形运算, 得到 4路(64点数据 /路)待进行 第 2级基 4蝶形运算的数据;
(2)执行步骤 (1)得到的 4路(64点数据 /路)待进行第 2级基 4蝶形运算的数据 中的其中 2路(64点数据 /路)数据的第 2级基 4蝶形运算, 得到 8路(16点数据 / 路)待进行第 3级基 4蝶形运算的数据;
(3)执行步骤 (2)中得到的 8路待进行第 3级基 4蝶形运算数据中的其中 4路( 16 点数据 /路)数据的第 3级基 4蝶形运算, 得到 16路(4点数据 /路)待进行第 4级 基 4蝶形运算的数据;
(4)执行步骤 (3)得到的 16路(4点数据 /路)数据的第 4级基 4蝶形运算, 得到 64个输出数据 (FFT运算结果)。
其中, 步骤 (1)执行 1次, 而后再执行 1次步骤 (2)(3)(4), 而后再执行 1次步骤 (3)(4), 而后再执行 1次步骤 (2)(3)(4), 而后在再执行 1次 (3)(4), 至此, 所有数据均 完成运算输出运算结果。
在步骤 (2)中用了 32个 cycle,先将 256点数据进行第一级基 4蝶形运算得到的 4路数据 (64点数据 /路) 中的其中两路执行其对应的后级基 4蝶形运算, 而后 再对 256点数据进行第 1级基 4蝶形运算得到的 4路数据 ( 64点数据 /路) 中的另 外两路执行其对应的后级基 4蝶形运算。 如此, 既能够保证下 1级的基 4蝶形运 算的执行是在当前级运算结果存入移位寄存器后才进行,同时又充分利用了基 4蝶形运算器的工作周期, 减少了闲置时间, 较大的提高了运算效率。
可以理解的是, 上述举例主要是以对数据进行基 4蝶形运算为例来进行描 述的, 而对数据进行其它蝶形运算的过程可以此类推, 此处不再赘述。 可以利 用控制器来控制本发明实施例上述方案的执行,该控制器例如可独立部署并与 各个緩存区和基 y蝶形运算器连接,或者也可直接部署于緩存区或基 y蝶形运算 器中。
由上可见, 本实施例中将 y路待进行第 z级基 y蝶形运算的数据, 输入基 y 蝶形运算器进行第 z级基 y蝶形运算, 在该第 z级基 y蝶形运算为最后一级基 y蝶 形运算的情况下, 输出该第 z级基 y蝶形运算得到的结果数据; 在该第 z级基 y 蝶形运算不为最后一级基 y蝶形运算的情况下, 将该第 z级基 y蝶形运算得到的 结果数据,输入该基 y蝶形运算器进行第 z+1级基 y蝶形运算。 由于该机制对基 y 蝶形运算器和緩存区进行了复用, 两级基 y蝶形运算复用同一个基 y蝶形运算 器, 例如可利用数据输入的时间复用基 y蝶形运算器进行运算, 故而有利于减 少蝶形运算的时间并减少资源消耗。
并且, 通过巧妙安排数据的各级基 y蝶形运算顺序, 有利于减少延迟等待 时间, 进一步提高运算效率。 为便于更好的实施本发明实施例的相关装置,本发明实施例还提供用于实 施上述方案的相关装置。
参见图 8-a, 本发明实施例提供一种数据处理装置 800, 可包括:
控制器 810和基 y蝶形运算器 820;
其中控制器 810, 用于控制将 y路待进行第 z级基 y蝶形运算的数据, 输入基 y蝶形运算器 820进行第 z级基 y蝶形运算, 其中, 该 y和 z为正整数; 在该第 z级 基 y蝶形运算为最后一级基 y蝶形运算的情况下,输出该第 z级基 y蝶形运算得到 的结果数据; 在该第 z级基 y蝶形运算不为最后一级基 y蝶形运算的情况下, 将 该第 z级基 y蝶形运算得到的结果数据, 输入该基 y蝶形运算器 820进行第 z+1级 基 y蝶形运算。
参见图 8-b , 在本发明的一些实施例中, 数据处理装置 800还可包括 y个緩 存区 830;
控制器 810还可进一步用于,在将 y路待进行第 z级基 y蝶形运算的数据输入 基 y蝶形运算器 820进行第 z级基 y蝶形运算, 得到 y路第 z级基 y蝶形运算的结果 数据之后, 将该第 z级基 y蝶形运算得到的 y路结果数据中的每路结果数据等分 为 y个部分, 并将该 y个部分分别写入 y个緩存区 830中。
在本发明的一些实施例中, 控制器 810可具体用于, 将 y路待进行第 z级基 y 蝶形运算的数据输入基 y蝶形运算器 820进行第 z级基 y蝶形运算, 在第 z级基 y 蝶形运算为最后一级基 y蝶形运算的情况下, 输出第 z级基 y蝶形运算得到的结 果数据; 在第 z级基 y蝶形运算不为最后一级基 y蝶形运算的情况下, 将第 z级基 y蝶形运算得到的 y路结果数据中的每路结果数据等分为 y个部分,并将 y个部分 分别写入 y个緩存区 830中,将分别写入到 y个緩存区 830中的该每路结果数据所 等分为的 y个部分, 作为 y路待进行第 z+1级基 y蝶形运算的数据, 输入该基 y蝶 形运算器 820进行第 z+1级基 y蝶形运算, 其中, y和 z为正整数。
在本发明的一些实施例中, 控制器 810 例如可以控制在先将待进行第 k 级(如第 2或第 3级或非最后 1级的其它级)基 y蝶形运算的数据的划分为几 个部分(例如 2个部分、 3个部分或更多部分), 先进行其中的某部分数据的 该第 k级基 y蝶形运算,直到该某部分数据的剩余所有级的基 y蝶形运算都计 算完成后, 再进行待进行第 k级基 y蝶形运算的数据的另一部分的第 k级基 y 蝶形运算, 直到该另一部分数据的剩余所有级的基 y蝶形运算都计算完成, 若 还有在待进行第 k级的再一部分数据,再进行该待进行第 k级基 y蝶形运算的 数据的再一部分的第 k级基 y蝶形运算,直到该再一部分数据的剩余所有级的 基 y蝶形运算都计算完成,以此类推,最终完成所有数据所有级基 y蝶形运算, 得到 FFT计算结果。
举例来说,控制器 810可具体用于, 将 y路待进行第 z级基 y蝶形运算的 数据输入基 y蝶形运算器 820进行第 z级基 y蝶形运算,在第 z级基 y蝶形运 算为最后一级基 y蝶形运算的情况下,输出该第 z级基 y蝶形运算得到的结果 数据; 在该第 z级基 y蝶形运算不为最后一级基 y蝶形运算的情况下, 将该第 z级基 y蝶形运算得到的 y路结果数据中的每路结果数据等分为 y个部分, 并 将该 y个部分分别写入 y个緩存区 830中; 先将该 y路结果数据中,先写入到 该 y个緩存区 830的其中 m路结果数据中的每路结果数据所分别等分为的 y 个部分,作为 y路待进行第 z+1级基 y蝶形运算的数据以输入该基 y蝶形运算 器 820进行第 z+1级基 y蝶形运算, 得到 y*m路第 z+1级基 y蝶形运算的结 果数据; 在得到所述 y*m路第 z+1级基 y蝶形运算的结果数据之后, 将该 y 路结果数据中,后写入到该 y个緩存区 830的剩余 n路结果数据中的每路结果 数据所分别等分为的 y个部分,作为 y路待进行第 z+1级基 y蝶形运算的数据, 输入该基 y蝶形运算器 820进行第 z+1级基 y蝶形运算, 得到 y*n路第 z+1 级基 y蝶形运算的结果数据, 其中该 m小于 y, 该 m与该 n之和等于y。
在本发明的一些实施例中, 控制器 810可具体用于, 在将第 z级基 y蝶形 运算的 y路结果数据中,后写入到该 y个緩存区 830的剩余 n路结果数据所分 别等分为的 y个部分,作为 y路待进行第 z+1级基 y蝶形运算的数据,输入基 y蝶形运算器 820进行第 z+1级基 y蝶形运算之前,先将 y*m路第 z+1级基 y 蝶形运算的结果数据中的每路结果数据等分为 y个部分, 将该 y个部分作为 y 路待进行第 z+2级基 y蝶形运算的数据,输入所述基 y蝶形运算器 820进行第 z+2级基 y蝶形运算, 得到 y*y*m路第 z+2级基 y蝶形运算的结果数据。
在本发明的另一些实施例中, 例如控制器 810也可以控制在所有待进行每 级基 y蝶形运算的数据都进行该级基 y蝶形运算后,再进行所有待进行下一级基 y蝶形运算的数据的下一级基 y蝶形运算。
例如, 控制器 810还可用于, 在进行第 z+1级基 y蝶形运算得到的 y*y 路第 z+1级基 y蝶形运算的结果数据之后,将 y*y路第 z+1级基 y蝶形运算的 结果数据中的每路结果数据等分为 y个部分,将该 y个部分作为 y路待进行第 z+2级基 y蝶形运算的数据, 输入该基 y蝶形运算器 820进行第 z+2级基 y蝶 形运算。
在本发明的一个实施例中, y个緩存区 830可分别位于 y个緩存器中; 或者, y个緩存区 830位于至少一个緩存器中。
可以理解,控制器 810可内置于基 y蝶形运算器 820中, 或可内置于緩存 区 830中, 当然亦可独立设置。 控制器 810的功能, 也可部分或全部的集成于 基 y蝶形运算器 820或緩存区 830所在緩存器中。
可以理解的是,本实施例的数据处理装置 800的各个功能模块的功能可以 根据上述方法实施例介绍的方法具体实现,其具体实现过程可以参见上述实施 此不再赘述。
可以看出, 本实施例数据处理装置 800中的控制器控制将 y路待进行第 z级 基 y蝶形运算的数据, 输入基 y蝶形运算器进行第 z级基 y蝶形运算, 在该第 z级 基 y蝶形运算为最后一级基 y蝶形运算的情况下,输出该第 z级基 y蝶形运算得到 的结果数据; 在该第 z级基 y蝶形运算不为最后一级基 y蝶形运算的情况下, 将 该第 z级基 y蝶形运算得到的结果数据, 输入该基 y蝶形运算器进行第 z+ 1级基 y 蝶形运算。 由于该机制对基 y蝶形运算器进行了复用, 两级基 y蝶形运算复用同 一个基 y蝶形运算器, 例如可利用数据输入的时间复用基 y蝶形运算器进行运 算, 故而有利于减少蝶形运算的时间并减少资源消耗。
参见图 9, 本发明实施例还提供一种电子设备 900, 其中, 该电子设备中部 署有数据处理装置 800。 其中, 电子设备 900例如可以是接入设备(如基站、 接 入点等)、 用户终端(如手机、 便携电脑等)、 或其它需要进行数据处理的电子 设备。
本发明实施例还提供一种计算机存储介质, 其中, 该计算机存储介质可存 储有程序,该程序执行时包括上述方法实施例中记载的数据处理方法的部分或 全部步骤。
需要说明的是, 对于前述的各方法实施例, 为了筒单描述, 故将其都表述 为一系列的动作组合,但是本领域技术人员应该知悉, 本发明并不受所描述的 动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。 其次, 本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施 例, 所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重, 某个实施例中没有详 述的部分, 可以参见其他实施例的相关描述。
综上, 本发明实施例中将 y路待进行第 z级基 y蝶形运算的数据, 输入基 y 蝶形运算器进行第 z级基 y蝶形运算, 在该第 z级基 y蝶形运算为最后一级基 y蝶 形运算的情况下, 输出该第 z级基 y蝶形运算得到的结果数据; 在该第 z级基 y 蝶形运算不为最后一级基 y蝶形运算的情况下, 将该第 z级基 y蝶形运算得到的 结果数据,输入该基 y蝶形运算器进行第 z+1级基 y蝶形运算。 由于该机制对基 y 蝶形运算器进行了复用, 两级基 y蝶形运算复用同一个基 y蝶形运算器, 例如可 利用数据输入的时间复用基 y蝶形运算器进行运算, 故而有利于减少蝶形运算 的时间并减少资源消耗。
并且,通过巧妙安排数据的各级基 y蝶形运算顺序,有利于减少延迟等待 时间, 进一步提高运算效率。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步 骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读 存储介质中, 存储介质例如可以包括: 只读存储器、 随机存储器、 磁盘或光盘 等。
以上对本发明实施例所提供的一种数据处理方法和相关装置进行了详细 施例的说明只是用于帮助理解本发明的方法及其核心思想; 同时,对于本领域 的一般技术人员,依据本发明的思想, 在具体实施方式及应用范围上均会有改 变之处, 综上, 本说明书内容不应理解为对本发明的限制。

Claims

权 利 要 求
1、 一种数据处理方法, 其特征在于, 包括:
将 y路待进行第 z级基 y蝶形运算的数据输入基 y蝶形运算器进行第 z级基 y 蝶形运算, 其中, 所述 y和 z为正整数;
在所述第 z级基 y蝶形运算为最后一级基 y蝶形运算的情况下,输出所述 第 z级基 y蝶形运算得到的结果数据;
在所述第 z级基 y蝶形运算不为最后一级基 y蝶形运算的情况下,将所述 第 z级基 y蝶形运算得到的结果数据,输入所述基 y蝶形运算器进行第 z+1级 基 y蝶形运算。
2、 根据权利要求 1所述的方法, 其特征在于,
所述将 y路待进行第 z级基 y蝶形运算的数据输入基 y蝶形运算器进行第 z级 基 y蝶形运算之后, 还包括: 将所述第 z级基 y蝶形运算得到的 y路结果数据中的 每路结果数据等分为 y个部分, 并将所述 y个部分分别写入 y个緩存区中。
3、 根据权利要求 2所述的方法, 其特征在于,
所述将所述第 z级基 y蝶形运算得到的结果数据,输入所述基 y蝶形运算 器进行第 z+1级基 y蝶形运算, 包括: 将分别写入到所述 y个緩存区中的所述 每路结果数据所等分为的 y个部分,作为 y路待进行第 z+1级基 y蝶形运算的 数据, 输入所述基 y蝶形运算器进行第 z+1级基 y蝶形运算。
4、 根据权利要求 2或 3所述的方法, 其特征在于,
所述方法还包括:
在所述第 z+1级基 y蝶形运算为最后一级基 y蝶形运算的情况下,输出所 述第 z+1级基 y蝶形运算的结果数据;
在所述第 z+1级基 y蝶形运算不为最后一级基 y蝶形运算的情况下,将所 述第 z+1级基 y蝶形运算得到的结果数据, 输入所述基 y蝶形运算器进行第 z+2级基 y蝶形运算。
5、 根据权利要求 2或 3所述的方法, 其特征在于,
所述将分别写入到所述 y 个緩存区中的所述每路结果数据所等分为的 y 个部分,作为 y路待进行第 z+1级基 y蝶形运算的数据,输入所述基 y蝶形运 算器进行第 z+1级基 y蝶形运算, 包括: 先将所述 y路结果数据中, 先写入到所述 y个緩存区的其中 m路结果数 据中的每路结果数据所分别等分为的 y个部分, 作为 y路待进行第 z+1级基 y 蝶形运算的数据以输入所述基 y蝶形运算器进行第 z+1级基 y蝶形运算,得到 y*m路第 z+1级基 y蝶形运算的结果数据;
在得到所述 y*m路第 z+1级基 y蝶形运算的结果数据之后, 将所述 y路 结果数据中,后写入到所述 y个緩存区的剩余 n路结果数据中的每路结果数据 所分别等分为的 y个部分,作为 y路待进行第 z+1级基 y蝶形运算的数据,输 入所述基 y蝶形运算器进行第 z+1级基 y蝶形运算, 得到 y*n路第 z+1级基 y 蝶形运算的结果数据,
其中, 所述 m小于所述 y, 所述 m与所述 n之和等于所述 y。
6、 根据权利要求 5所述的方法, 其特征在于,
所述方法还包括: 在所述将所述 y路结果数据中,后写入到所述 y个緩存 区的剩余 n路结果数据中的每路结果数据所分别等分为的 y个部分, 作为 y 路待进行第 z+1级基 y蝶形运算的数据, 输入所述基 y蝶形运算器进行第 z+1 级基 y蝶形运算之前, 将 y*m路第 z+1级基 y蝶形运算的结果数据中的每路 结果数据等分为 y个部分,将该 y个部分作为 y路待进行第 z+2级基 y蝶形运 算的数据, 输入所述基 y蝶形运算器进行第 z+2级基 y蝶形运算。
7、 根据权利要求 5或 6所述的方法, 其特征在于,
所述 m小于或等于所述 n。
8、 根据权利要求 2或 3所述的方法, 其特征在于,
所述方法还包括:
在进行所述第 z+1级基 y蝶形运算得到的 y*y路第 z+1级基 y蝶形运算的 结果数据之后,将所述 y*y路第 z+1级基 y蝶形运算的结果数据中的每路结果 数据等分为 y个部分,将该 y个部分作为 y路待进行第 z+2级基 y蝶形运算的 数据, 输入所述基 y蝶形运算器进行第 z+2级基 y蝶形运算。
9、 根据权利要求 2至 8任一项所述的方法, 其特征在于,
所述 y个緩存区分别位于 y个緩存器中;
或者, 所述 y个緩存区位于至少一个緩存器中。
10、 一种数据处理装置, 其特征在于, 包括: 控制器和基 y蝶形运算器;
其中, 所述控制器, 用于将 y路待进行第 z级基 y蝶形运算的数据输入所述 基 y蝶形运算器进行第 z级基 y蝶形运算, 在所述第 z级基 y蝶形运算为最后一级 基 y蝶形运算的情况下, 输出所述第 z级基 y蝶形运算得到的结果数据; 在所述 第 z级基 y蝶形运算不为最后一级基 y蝶形运算的情况下, 将所述第 z级基 y蝶形 运算得到的结果数据, 输入所述基 y蝶形运算器进行第 z+1级基 y蝶形运算, 其 中, 所述 y和 z为正整数。
11、 根据权利要求 10所述的数据处理装置, 其特征在于,
所述数据处理装置还包括 y个緩存区;
所述控制器还用于,在将 y路待进行第 z级基 y蝶形运算的数据输入基 y蝶形 运算器进行第 z级基 y蝶形运算之后, 将所述第 z级基 y蝶形运算得到的 y路结果 数据中的每路结果数据等分为 y个部分, 并将所述 y个部分分别写入 y个緩存区 中。
12、 根据权利要求 11所述的数据处理装置, 其特征在于,
所述控制器具体用于,将 y路待进行第 z级基 y蝶形运算的数据输入所述 基 y蝶形运算器进行第 z级基 y蝶形运算,在所述第 z级基 y蝶形运算为最后 一级基 y蝶形运算的情况下, 输出所述第 z级基 y蝶形运算得到的结果数据; 在所述第 z级基 y蝶形运算不为最后一级基 y蝶形运算的情况下, 将所述第 z 级基 y蝶形运算得到的 y路结果数据中的每路结果数据等分为 y个部分,并将 所述 y个部分分别写入 y个緩存区中,将分别写入到所述 y个緩存区中的所述 每路结果数据所等分为的 y个部分,作为 y路待进行第 z+1级基 y蝶形运算的 数据, 输入所述基 y蝶形运算器进行第 z+1级基 y蝶形运算, 其中, 所述 y 和 z为正整数。
13、 根据权利要求 11或 12所述的数据处理装置, 其特征在于,
所述控制器具体用于,将 y路待进行第 z级基 y蝶形运算的数据输入所述 基 y蝶形运算器进行第 z级基 y蝶形运算,在所述第 z级基 y蝶形运算为最后 一级基 y蝶形运算的情况下, 输出所述第 z级基 y蝶形运算得到的结果数据; 在所述第 z级基 y蝶形运算不为最后一级基 y蝶形运算的情况下, 将所述第 z 级基 y蝶形运算得到的 y路结果数据中的每路结果数据等分为 y个部分,并将 所述 y个部分分别写入 y个緩存区中; 先将所述 y路结果数据中,先写入到所 述 y个緩存区的其中 m路结果数据中的每路结果数据所分别等分为的 y个部 分,作为 y路待进行第 z+1级基 y蝶形运算的数据以输入所述基 y蝶形运算器 进行第 z+1级基 y蝶形运算,得到 y*m路第 z+1级基 y蝶形运算的结果数据; 在得到所述 y*m路第 z+1级基 y蝶形运算的结果数据之后, 将所述 y路结果 数据中,后写入到所述 y个緩存区的剩余 n路结果数据中的每路结果数据所分 别等分为的 y个部分,作为 y路待进行第 z+1级基 y蝶形运算的数据,输入所 述基 y蝶形运算器进行第 z+1级基 y蝶形运算,得到 y*n路第 z+1级基 y蝶形 运算的结果数据,其中,所述 m小于所述 y,所述 m与所述 n之和等于所述 y。
14、 根据权利要求 13所述的数据处理装置, 其特征在于,
所述控制器还用于,在将所述 y路结果数据中,后写入到所述 y个緩存区 的剩余 n路结果数据所分别等分为的 y个部分, 作为 y路待进行第 z+1级基 y 蝶形运算的数据, 输入所述基 y蝶形运算器进行第 z+1级基 y蝶形运算之前, 将 y*m路第 z+1级基 y蝶形运算的结果数据中的每路结果数据等分为 y个部 分,将该 y个部分作为 y路待进行第 z+2级基 y蝶形运算的数据,输入所述基 y蝶形运算器进行第 z+2级基 y蝶形运算,得到 y*y*m路第 z+2级基 y蝶形运 算的结果数据。
15、 根据权利要求 11或 12所述的数据处理装置, 其特征在于,
所述控制器还用于, 在进行所述第 z+1级基 y蝶形运算得到的 y*y路第 z+1级基 y蝶形运算的结果数据之后, 将所述 y*y路第 z+1级基 y蝶形运算的 结果数据中的每路结果数据等分为 y个部分,将该 y个部分作为 y路待进行第 z+2级基 y蝶形运算的数据, 输入所述基 y蝶形运算器进行第 z+2级基 y蝶形 运算。
16、 根据权利要求 11至 15任一项所述的数据处理装置, 其特征在于, 所述 y个緩存区分别位于 y个緩存器中;
或者, 所述 y个緩存区位于至少一个緩存器中。
17、 一种接入设备, 其特征在于, 所述接入设备中部署有如权利要求 11 至 17任一项所述的数据处理装置。
18、 一种用户设备, 其特征在于, 所述用户设备中部署有如权利要求 11 至 17任一项所述的数据处理装置。
19、 一种计算机存储介质, 其特征在于,
所述计算机存储介质存储有程序, 所述程序执行时包括如权利要求 1至 9 任一项所述的步骤。
PCT/CN2012/074911 2012-04-28 2012-04-28 数据处理方法和相关装置 WO2013159361A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2012/074911 WO2013159361A1 (zh) 2012-04-28 2012-04-28 数据处理方法和相关装置
CN201280000317.4A CN103493039B (zh) 2012-04-28 2012-04-28 数据处理方法、数据处理装置、接入设备和用户设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/074911 WO2013159361A1 (zh) 2012-04-28 2012-04-28 数据处理方法和相关装置

Publications (1)

Publication Number Publication Date
WO2013159361A1 true WO2013159361A1 (zh) 2013-10-31

Family

ID=49482181

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/074911 WO2013159361A1 (zh) 2012-04-28 2012-04-28 数据处理方法和相关装置

Country Status (2)

Country Link
CN (1) CN103493039B (zh)
WO (1) WO2013159361A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106970895B (zh) * 2016-01-14 2023-10-03 普天信息技术有限公司 基于fpga的fft装置及方法
CN109117188B (zh) * 2018-08-06 2022-11-01 合肥工业大学 一种多路混合基fft可重构蝶形运算器
CN112051446A (zh) * 2020-08-18 2020-12-08 许继集团有限公司 一种电力***宽频测量的混合基fft实现方法及装置
CN113570612B (zh) * 2021-09-23 2021-12-17 苏州浪潮智能科技有限公司 一种图像处理方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072218A (zh) * 2007-03-01 2007-11-14 华为技术有限公司 一种fft/ifft成对处理***、方法及其装置与方法
CN101300572A (zh) * 2005-03-11 2008-11-05 高通股份有限公司 快速傅里叶变换旋转乘法
CN101833540A (zh) * 2010-04-07 2010-09-15 华为技术有限公司 信号处理方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011133957A (ja) * 2009-12-22 2011-07-07 Hitachi Kokusai Electric Inc 演算装置
US20120041996A1 (en) * 2010-08-16 2012-02-16 Leanics Corporation Parallel pipelined systems for computing the fast fourier transform
KR101036873B1 (ko) * 2010-09-13 2011-05-25 심흥섭 플래그를 이용한 저복잡도, 고확장성의 스플리트 라딕스 고속 푸리에 변환 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101300572A (zh) * 2005-03-11 2008-11-05 高通股份有限公司 快速傅里叶变换旋转乘法
CN101072218A (zh) * 2007-03-01 2007-11-14 华为技术有限公司 一种fft/ifft成对处理***、方法及其装置与方法
CN101833540A (zh) * 2010-04-07 2010-09-15 华为技术有限公司 信号处理方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SON, BYUNG S. ET AL.: "A HIGH-SPEED FFT PROCESSOR FOR OFDM SYSTEMS.", ISCAS 2002, 29 May 2002 (2002-05-29), pages 281 AND 282 *

Also Published As

Publication number Publication date
CN103493039A (zh) 2014-01-01
CN103493039B (zh) 2016-06-29

Similar Documents

Publication Publication Date Title
CN110892393A (zh) 用于在同态加密下加速安全计算的同态处理单元(hpu)
JP3228927B2 (ja) プロセッサエレメント、プロセッシングユニット、プロセッサ、及びその演算処理方法
US20220255721A1 (en) Acceleration unit and related apparatus and method
WO2010108371A1 (zh) 一种实现fft/ifft变换的电路及方法
CN103984677A (zh) 基于大规模粗粒度嵌入式可重构***及其处理方法
CN113628094A (zh) 一种基于gpu的高吞吐量sm2数字签名计算***及方法
WO2018027706A1 (zh) Fft处理器及运算方法
WO2013159361A1 (zh) 数据处理方法和相关装置
CN1731345A (zh) 可扩展高基蒙哥马利模乘算法及其电路结构
JP4160564B2 (ja) 処理速度の向上した高速フーリエ変換装置およびその処理方法
CN103793199A (zh) 一种支持双域的快速rsa密码协处理器
WO2022199459A1 (zh) 一种可重构处理器及配置方法
CN111737638A (zh) 基于傅里叶变换的数据处理方法及相关装置
US20140330880A1 (en) Methods and devices for multi-granularity parallel fft butterfly computation
CN101021777A (zh) 基于除数(2n-1)的有效求模操作运算
CN113031920A (zh) 一种芯片和用于芯片的批量模运算方法
CN109144472B (zh) 一种二元扩域椭圆曲线的标量乘法及其实现电路
US7693926B2 (en) Modular multiplication acceleration circuit and method for data encryption/decryption
WO2013097436A1 (zh) 一种fft/dft的倒序排列***与方法及其运算***
CN113055165A (zh) 一种非对称密码算法装置、方法、设备及存储介质
CN113505383A (zh) 一种ecdsa算法执行***及方法
TWI402695B (zh) ***基數-2/8快速傅立葉轉換裝置及方法
CN101615114B (zh) 完成两次乘法两次加法两次位移的微处理器实现方法
Meletis et al. High-speed pipeline implementation of radix-2 DIF algorithm
Pezzarossa et al. Interfacing hardware accelerators to a time-division multiplexing network-on-chip

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: 12874935

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12874935

Country of ref document: EP

Kind code of ref document: A1