IP Library Granted Patent US 7,003,450
Granted Patent B2
US 7,003,450 · App. 10/013,908 · Granted Feb 21, 2006

Methods and apparatus for efficient vocoder implementations

Assignee: PTS Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,003,450
App. No.
10/013,908
Granted
Feb 21, 2006
Kind
B2
Abstract

Techniques for implementing vocoders in parallel digital signal processors are described. A preferred approach is implemented in conjunction with the BOPS® Manifold Array (ManArray™) processing architecture so that in an array of N parallel processing elements, N channels of voice communication are processed in parallel. Techniques for forcing vocoder processing of one data-frame to take the same number of cycles are described. Improved throughput and lower clock rates can be achieved.

Claims (21)

1. A digital signal processor having:

N parallel processing elements;

a cluster switch mechanism connecting the N parallel processing elements;

converted code which has been converted from a standard vocoder code implementation by removing conditional jumps found in the standard vocoder code implementation said conditional jumps jump from one part of a function to another depending on the evaluation of a condition;

a sequence processor running a first portion of the converted code to control the N parallel processing elements to operate as a single instruction multiple data parallel processor array; and

N channels of voice communication, one of said channels connected to each one of said parallel processing elements, the N parallel processing elements running a second portion of the converted code to process the N channels of voice communication in parallel.

2. The digital signal processor of claim 1 wherein the first portion of the converted code has a loop control for determining a number of cycles of execution performed by a parallel processing element, the loop control having a constant which is utilized to set the number of cycles, upon executing the first portion of the converted code, each parallel processing element takes the same set number of cycles of execution regardless of the data being processed by each parallel processing element.

3. The digital signal processor of claim 1 wherein the first portion of the converted code is separated from the second portion of the converted code.

4. The digital signal processor of claim 1 wherein power savings are achieved by turning a processing element off when it has finished processing its data while another processing element is still processing its data.

5. The digital signal processor of claim 1 wherein N equals four.

6. A method for efficiently implementing a vocoder in a digital signal processor comprising the steps of:

converting a standard vocoder code implementation to converted code by removing conditional jumps found in the standard vocoder code implementation, said conditional jumps causing a jump from one part of a function to another depending on the evaluation of a condition;

providing N channels of voice communication;

connecting one of said channels to one of N parallel processing elements;

communicating between the N parallel processing elements utilizing a cluster switch mechanism connecting the N parallel processing elements;

running a first portion of the converted code in a sequence processor to control the N parallel processing elements to operate as a single instruction multiple data parallel processor array; and

running a second portion of the converted code in the N parallel processing elements to process the voice communication channels in parallel.

7. The method of claim 6 wherein the first portion of the converted code has a loop control for determining a number of cycles of execution performed by a parallel processing element, the loop control having a constant which is utilized to set the number of cycles so that each parallel processing element takes the same set number of cycles regardless of the data being processed by each parallel processing element.

8. The method of claim 6 wherein the first portion of the converted code is separated from the second portion of the converted code.

9. The method of claim 6 wherein power savings are achieved by turning a processing element off when it has finished processing its data while another processing element is still processing its data.

10. The method of claim 6 wherein N equals four.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2006
From: PTS CORPORATION
To: ALTERA CORPORATION
Reel/Frame 018184/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2003
From: ALTERA CORPORATION
To: PTS CORPORATION
Reel/Frame 014683/0914 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2003
From: BOPS, INC.
To: ALTERA CORPORATION
Reel/Frame 014683/0894 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2002
From: SADRI, ALI SOHEIL; JAFFER, NAVIN; SILIVRA, ANISSIM A.; HUANG, BIN; PLONSKI, MATTHEW
To: BOPS, INC.
Reel/Frame 012835/0370 →
Continuity (2)
Provisional Application 6024194000 · Oct 20, 2000
Related Publication 20020165709A1 · Nov 7, 2002