IP Library Patent Application 10948544
Patent Application
App. No. 10/948,544

Methods and systems for Viterbi decoding

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 None
App. No.
10/948,544
Abstract

An execution unit and a new set of instructions for performing Viterbi decoding are provided. The instructions can be built into an execution unit which executes other instructions, or in their own execution unit. In an example implementation, the new set of instructions are used in implementing a modem for a high bit rate single-pair high speed digital subscriber line (“SHDSL”) system. In the example implementation, the execution unit includes registers to hold the input metrics, so the same metrics do not need to be supplied for each instruction that uses them. The execution unit also includes registers to accumulate decision values, so that as many can be retrieved at once as makes best use of the data path out of the execution unit. The instructions may employ modulo arithmetic to avoid the necessity to rescale the state metrics.

Claims (46)

1 . An execution unit for performing a Viterbi decoding algorithm, comprising within a processor having general purpose registers:

an execution module including a set of Viterbi decoding instructions that determines updated state metrics and decision values for the Viterbi decoding algorithm;

a plurality of input registers for holding input metrics; and

a plurality of decision registers for holding decision values.

2 . The execution unit of claim 1 , wherein said input and decision registers are eight bit registers.

3 . The execution unit of claim 1 , wherein said set of Viterbi decoding instructions use modulo arithmetic to avoid the necessity to rescale state metrics.

4 . The execution unit of claim 1 , wherein said set of Viterbi decoding instructions comprise:

at least one first command to put metrics into a set of input registers;

a second command to calculate new state metrics and decision values used to determine a transmitted codeword based on the metrics placed into the set of said input registers; and

at least one third command to read decisions for a set of decision registers that contain the decisions values.

5 . The execution unit of claim 4 , wherein said set of Viterbi decoding instructions further comprise:

at least one fourth command to get metrics from a set of said input registers; and

at least one fifth command to put decision values into a set of said decision registers.

6 . The execution unit of claim 1 , wherein said set of Viterbi decoding instructions comprises:

a VAC0 out0, out1, out2, out3, in0, in1, in2, in3, de0, de1 instruction;

a VAC1 out0, out1, out2, out3, in0, in1, in2, in3, de0, de1 instruction;

a VAC2 out0, out1, out2, out3, in0, in1, in2, in3, de0, de1 instruction;

a VAC3 out0, out1, out2, out3, in0, in1, in2, in3, de0, de1 instruction;

a VPUTMX metrics instruction;

a VPUTMY metrics instruction;

a VGETDX decisions instruction; and

a VGETDY decisions instruction.

7 . The execution unit of claim 6 , wherein said set of Viterbi decoding instructions further comprises:

a VGETMX metrics instruction;

a VGETMY metrics instruction;

a VPUTDX decisions instruction; and

a VPUTDY decisions instruction.

8 . An execution unit for performing a Viterbi decoding algorithm, comprising:

an execution module including a VAC instruction; and

a plurality of registers for holding input metrics, state metrics and decision values.

9 . A method for performing a Viterbi decoding algorithm, comprising:

(a) putting input metrics into one or more input registers;

(b) putting state metrics into one or more state registers;

(c) calculating new state metrics;

(d) calculating decisions values;

(e) writing new state metrics into one or more state registers; and

(f) writing decision values into one or more decision registers.

10 . The method of claim 9 , wherein step (a) further comprises placing the input metrics in one or more registers, whereby the same input metrics do not need to be supplied for each instruction that uses them.

11 . The method of claim 9 , wherein step (f) further comprises optimizing the number of registers used to hold decision values, whereby maximizing the number of decision values that can be retrieved based on a data path out of the execution unit.

12 . The method of claim 9 , wherein steps (c), (d), (e) and (f) further comprise issuing a VAC instruction.

13 . The method of claim 12 , wherein issuing a VAC instruction further comprises splitting a VAC instruction into four independent sub operations.

14 . The method of claim 12 , wherein issuing a VAC instruction further comprises partitioning the VAC instruction across two or more independent execution units.

15 . A method for decoding a codeword received over an SHDSL communications channel, comprising:

(a) supplying an execution unit with input metrics;

(b) issuing a VAC<n> instruction for each block of thirty-two states; and

(c) retrieving decision values from decision registers.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2004
From: BURR, ALEXANDER J.; DOBSON, TIMOTHY M.; WILSON, SOPHIE
To: BROADCOM CORPORATION
Reel/Frame 015839/0500 →