低位元率語音編碼專用處理器

A Low-bit Rate Speech Coding Processor

 

學生:謝龍吉

 

指導教授:林進燈

 

國立交通大學電機與控制工程學系(研究所)碩士班

 

        

 

語音傳輸是目前最主要也最普遍的通訊傳輸服務。在數位語音下的傳輸更有彈性,能夠降低價格、維持品質並提供保密的功能。由於使用者的增加與有限的頻寬,新的語音編碼傳輸位元率已由8KbpsCELP)與4.8KbpsCS-ACELP)發展至2.4KbpsMELP)。也因為傳輸位元率的降低,語音品質就只能由更複雜的演算法來提昇,這使得實現快速語音編解碼相當困難。

 

本論文針對壓縮率相當高的MELP,提出一個新的語音編碼技術處理器,使用軟體硬體雙重設計的方式使處理器的架構與指令集最佳化。處理器中使用五級的管線式架構來平衡處理速度與晶片面積,同時擁有兩個向量處理用的記憶體、四層迴圈、大範圍的記憶體資料暫存區、24 bits精確的浮點運算單元、整數運算單元、提供很大動態運算範圍8 bits的指數處理單元以及具有平行處理能力的指令。在指令長度固定為24 bits下,此處理器提供6種定址模式與三元運算。

 

此晶片以Cell-Based方式設計完成,使用TSMC 0.35μm製程之標準元件庫,預估能工作於60 MHz。晶片面積約為10.222

功能與規格說明

MELP處理器的特點:

l          多層記憶體Stack:提供24層的Memory Stack存放return address70層的MemoryStack存放暫存資料

l          單週期執行24 bits 浮點加減法。

l          四層迴圈運算:利用四層迴圈使用Function Call解決MELP中的複雜運算。

l          向量、平行運算:針對語音處理中所需的大量乘加動作做最佳運算。

l          五級管線式設計: IF(instruction fetch), ID(instruction decode), EXE1, EX2(executing), and WB(Write back)

l          向量定址,暫存器定址,直接定址, 間接定址, 立即定址, 控制模式。

l          24bits的指令寬度,提供2個或3Operands的運算及上述定址模式。

l          提供整數與浮點數的運算12bits

l          多點觀測電路。

l          指令長度24bits,資料長度24bits

下表為處理器內部所使用的MemoryRegisters的描述:

 

 

 

 

 

 

 

 

 

 

 


1 記憶體的使用

 

 

 

 

 

 

 

 

 

 

 

 


2 暫存器的使用

處理器基本架構

為了能夠完成即時編碼,再大幅修改電路架構,模擬結果顯示修改過後的CORE最快可跑到90MHz,但搭配記憶體之後,由於記憶體存取速度無法匹配上CORE的處理速度,因此整體的速度最快只能達到60MHz。另外,功率消耗約為180mW。目前電路應用在MELP語音編碼技術的實現,如圖1的修改架構。為節省運算時間,因此將乘法器分成兩級,第一級乘法器在EX1 Stage,第二級乘法器在EX2 Stage。IF Stage是從Instruction ROM中讀取指令;ID Stage處理指令解碼、指標運算與記憶體或暫存器的讀取;EX1 Stage、EX2 Stage處理算數運算與邏輯運算,其中中加減運算與邏輯運算都在EX1級會執行完成,而乘法必須等到EX2級才會有結果輸出;W Stage將運算的結果寫入暫存器或寫回記憶體中。處理流程如下:處理器利用PC值作為讀取Program ROM的位址,首先讀取指令進入控制單元中,控制單元會進行指令解碼,解譯出指令型態、資料來源與位址、讀寫模式等,並送出控制訊號至各個不同的模組。接下來利用管線檢測選擇出正確的輸入訊號,送到ALU中進行運算,最後再將運算後的結果依照控制單元中所得到的位址輸出寫入,完成一個指令週期的動作。

1 低位元率語音編碼處理器的五級架構

更正前一版的管線衝突的解決方式:

1. 發生Structural Hazard的情況與解決方法

2. 發生Register Data Hazard的情況與解決方法

情形 (I)

情形 (II)

情形 (III)

情形 (IV)

3. 發生Memory Data Hazard的情況與解決方法

情形 (I)

情形 (II)

MAC指令有關的迴圈處理

考量右邊的式子:

處理與MAC指令有關的迴圈時,需要跑幾次迴圈,則迴圈計數器的值就設多少,不需要多設一次。如處理上述例子時,只需將迴圈計數器設定為n即可。更改其Accumulator架構如下:

旗標設定處理

如下圖, 當處理的指令為CMPR時,E1_CMPR為1,新的設定值才會被寫入E2_TC裡,若指令不是CMPR則E2_TC維持原值。因為BCND指令是否要進行跳躍動作是依據旗標狀態,而在此處理器中,旗標設定的架構與前一版MELP處理器不太相同,因此在此處理器中處理BCND指令時,判斷指令是否跳躍的電路與前一版處理器中的架構也不太一樣。

模擬結果與比較

根據標準的MELP語音壓縮演算法,我們利用C語言實現,得到不錯的聲音品質。而本晶片是採用24 bits的資料格式,因此利用發展出來的Emulator進行模擬,以驗證組合語言的正確性,並且測試所設定的24 bits浮點數格式所實現的音質是否符合要求。比較在C語言環境下與利用Emulator所模擬出來的結果(亦即比較在32 bits24 bits資料格式下的模擬結果),以作為發展晶片的重要依據。經過比較之後,發現兩者(圖1、圖3)的結果相當接近,並且解碼之後的聲音品質也都符合要求。而之所以會有些許不同,是由於位元數不同所造成的精確度誤差,因為我們的組合語言程式與C語言所撰寫出來的程式是一致的,並無任何省略、刪除,因此可斷定差異是由位元數不同所導致。詳細的參數比較以及語音訊號結果如下所示:

 

 

Harmonic Magnitude

LPC

Coefficient1

LSF

Coefficient1

Pitch

Gain1

Gain2

Vbp

AF

Mode

C Language 32 bits

1.233587

0.057968

407.757812

49.806248

10.000

48.903229

1100

1

Voiced

Emulator 24 bits

1.315164

0.072861

391.101562

49.802734

10.000

48.902344

1100

1

Voiced

Processor 24 bits

1.315164

0.072861

391.101562

49.802734

10.000

48.902344

1100

1

Voiced

1  MELP軟體模擬結果比較

 

1 原音訊號

 

2C語言環境下模擬的語音波形

 

3 Emulator模擬的語音波形

 

4 MELP語音編碼晶片環境下模擬的語音波型

 

與其他處理器之比較

在設計此MELP語音編碼處理器的同時,另外還完成了一個不含Gated Clock設計的MELP語音編碼處理器,用以比較加上Gated Clock設計和沒有Gated Clock設計時的功率消耗。表2為比較的結果,可以發現Gated Clock的確能夠避免掉不必要的功率消耗。此外,表2也包括了與之前所設計的MELP語音解碼處理器之比較。

 

Processor

Process

Gate Count

Core Area

Transistor

Clock Rate

Supply Voltage

Power

MELP語音編碼處理器

(含Gated Clock設計)

0.35μm

26,042

10.22

492,742

0~60 MHz

3.3V

180mW

MELP語音編碼處理器(無Gated Clock設計)

0.35μm

23,792

102

480,511

0~60 MHz

3.3V

204mW

MELP語音解碼處理器

0.35μm

21,195

9.62

468,014

0~30 MHz

3.3V

161mW

2 MELP系列晶片之比較

 

Processor

Process

Metal Layers

Core Area

Transistor

Clock Rate

Supply Voltage

Power

MELP語音編碼處理器

(含Gated Clock設計)

0.35μm

4

10.22

492,742

0~60 MHz

3.3V

180mw

ARM710T

0.35μm

3

11.72

N/A

0~60 MHz

3.3V

240mW

ARM740T

0.35μm

3

9.82

N/A

0~60 MHz

3.3V

175mW

ARM810

0.5μm

3

762

836,022

0~72 MHz

3.3V

500mW

ARM920T

0.25μm

4

23~252

2,500,000

0~200 MHz

2.5V

560mW

ARM940T

0.25μm

3

8.12

802,000

0~200 MHz

2.5V

385mW

ARM1020E

0.18μm

5

122

7,000,000

0~400 MHz

1.5V

400mW

3 MELP語音編碼處理器與ARM系列處理器之比較

晶片照相圖

l          標準元件庫: Compass Standard Cell Library , TSMC 0.35 um Process

l          Die Size3.096*3.096(mm2)

l          通過DRC/ERC, and LVS

l          封裝:100 CQFP

l          有效腳位 : 90 pins

l          內部電源 : 8 pins, 外部電源 : 20 pins

l          輸入 : 8 pins, 輸出 : 30 pins

l          輸入/輸出(I/O): 24 pins

 

 

[回上一頁]