[go: up one dir, main page]

TWI225640B - Voice recognition device, observation probability calculating device, complex fast fourier transform calculation device and method, cache device, and method of controlling the cache device - Google Patents

Voice recognition device, observation probability calculating device, complex fast fourier transform calculation device and method, cache device, and method of controlling the cache device Download PDF

Info

Publication number
TWI225640B
TWI225640B TW092110116A TW92110116A TWI225640B TW I225640 B TWI225640 B TW I225640B TW 092110116 A TW092110116 A TW 092110116A TW 92110116 A TW92110116 A TW 92110116A TW I225640 B TWI225640 B TW I225640B
Authority
TW
Taiwan
Prior art keywords
memory
register
data
address
block
Prior art date
Application number
TW092110116A
Other languages
English (en)
Other versions
TW200400488A (en
Inventor
Jong-Ho Kim
Hyun-Woo Park
Tae-Su Kim
Mi-Jung Noh
Byung-Ho Min
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR10-2002-0037052A external-priority patent/KR100464420B1/ko
Priority claimed from KR10-2002-0047581A external-priority patent/KR100464428B1/ko
Priority claimed from KR10-2002-0047583A external-priority patent/KR100498447B1/ko
Priority claimed from KR10-2002-0047582A external-priority patent/KR100486252B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of TW200400488A publication Critical patent/TW200400488A/zh
Application granted granted Critical
Publication of TWI225640B publication Critical patent/TWI225640B/zh

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/14Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
    • G10L15/142Hidden Markov Models [HMMs]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • G10L2015/025Phonemes, fenemes or fenones being the recognition units

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Complex Calculations (AREA)

Description

九、發明說明: 術領域 本發明是有關於一種語音辨識裝置,且特別是有關於 種具有算術操作之專用算術計算模組之語音辨識裝置, 利用語音辨識而觀察預選字元之各音節之音位之觀察機率 計算裝置,對複變資料進行複變快速傅立葉變換(Fast F〇unei*Transf〇rm,FFT)之複變快速傅立葉變換計算裝置與 方法,快取裝置以及控制快取裝置的方法 現可應用語音辨識在人類日常生活之大部份電子產 口口中。語苜辨識之應用係開始於低成本電子玩具中,現在 則預期要擴展至複雜,高科技電腦應用中。 IBM(國際商茉彳幾益公司)曾提出一種使用語音辨識之 技術且耢由應用隱藏馬可夫模型(hidden Markvo model, HMM)於語音辨識以改善語音辨識率,此技術揭露於美國專 利號5636291中,其獲權日爲1997年6月3曰。 揭露於美國專利號5636291中之此語音辨識裝置包括 一預處理器,一前端電路與一模型電路。該預處理器辨別 所有字之詞彙。該前端電路從所辨別出之詞彙取出特徵値 或參數。該模型電路進行訓練階段以根據所取出之特徵値 或參數而產生一模型,該模型係當成下一辨別字元之準確 判別標準。此外,該模型電路根據所辨別之詞彙而決定在 預選字元中之哪一個字元必需當成已辨別字元。 稍後,IBM也揭露更能廣泛使用之應用隱藏馬可夫模 11330pifl.doc 7
1225640 型之語音辨識系統與方法,此技術揭露於美國專利號 5799278中,其獲權日爲1 998年8月25日。此語音辨識系 統與方法對分隔出之字元使用隱藏馬可夫模型,該隱藏馬 可夫模型係用以接受訓練以辨識發音不相似之字元並用以 辨識數個字元。 語音辨識系統可架構成軟體或硬體。在語音辨識軟體 系統中,安裝一語音辨識程式並使用一處理器。該軟體系 統需要大量處理或計算時間,但具有彈性以輕易更換功能。 專用之硬體裝置也可用於語音辨識硬體系統中◦相比 於語音辨識軟體系統,此硬體系統提供較快之處理速度與 較小之功率消耗。然而,此硬體系統使用專用之電路且不 容易更換功能。 因而,需要有一種語音辨識裝置,能達成如同語音辨 識硬體系統所具之快速處理及語音辨識軟體系統之功能更 換便利性。 發明內容 根據本發明之一實施例,提供一種語音辨識裝置,雖 然利用一般處理器以軟體方式處理資料卻能提供快速處理 速度。 根據本發明之另一實施例,提供一種適合於語音辨識 裝置之觀察機率算術單元。 根據本發明之又一實施例,提供一種適合於語音辨識 裝置之改良型複變FFT計算裝置。 在另一實施例中,提供一種適合於複變FFT計算裝置 11330pifl.doc 8 [蔡—
1225640 之複變FFT計算方法。 根據本發明之又一實施例,提供一種適合於複變FFT 計算裝置之電腦程式記錄媒介。 在本發明之另一實施例中,提供一種適合於語音辨識 裝置之快取裝置。 在本發明之另一實施例中,提供一種以硬體或軟體方 式控制該快取裝置之更新之改良型方法。 根據本發明之一觀點,提供一種語音辨識裝置,從一 輸入語音信號取出一已決定信號區,從該已決定信號區取 出用於語音辨識之特徵値,比較該特徵値與一預存字元之 特徵値,並將具最大機率之一字元辨識成一輸入語音。該 δ吾苜辨識裝置包括:一 c〇DEC(編碼器/解碼器),一暫存器 檔單元,一快速傅立葉變換(FFT)單元,一觀察機率計算模 組,一程式記憶體,以及一控制單元。該CODEC取樣從一 麥克風輸入之一語音信號,將對取樣資料區分割成方塊且 在既定時間輸出。該暫存器檔單元將從該CODEC接收之有 關於該已決定語音區之資料方塊緩衝。該快速傅立葉變換 (FFT)單元將從該暫存檔器單元輸出之該資料方塊變換至 頻域或進行頻域變換之一逆操作,並儲存該變換結果於該 暫存檔器單元內。該觀察機率計算模組根據該FFT單元所 得之頻譜而比較從該輸入語苜信號取出之該特徵値與一預 存字元之音位之特徵値以計算一觀察機率。該程式記憶體 從該CODEC輸出之該資料方塊取出有關於該已決定語音 區之資料方塊,將所取出之該資料方塊存於該暫存器檔單 11330pifl.doc 9 1225640
元中,從存於該暫存器檔單元中內之該頻譜計算一隱藏馬 可夫模型(HMM)之特徵値,並根據該觀察機率計算模組所 計算之各音位之觀察機率而儲存一語音辨識程式。該控制 單元利用存於該程式記憶體內之該語音辨識程式來控制該 語音辨識裝置之操作。 根據本發明實施例之語音辨識裝置包括用以執行在 語音辨識系統中佔去大部份計算之觀察機率計算與FFT計 算之專用算術裝置,該專用算術裝置無關於處理器。該算 術裝置解譯從該處理器輸出之指令並執行所指定之操作。 爲讓本發明之上述和其他目的、特徵、和優點能更明 顯易懂,下文特舉一較佳實施例,並配合所附圖式,作詳 細說明如下: 實施方式: 第1圖是習知語音辨識系統之方塊圖。在第1圖內, 類比數位變換器(ADC)l(H將連續語音信號變換成數位信 號以輕易計算該語音信號。 一預加強(pre-emphasis)單元102加強一語音之高頻成 份以清楚區分出發音。該數位語音信號係以既定數量取樣 値之單位接受分割與處理。比如,該數位語音信號係分割 成240取樣値(30ms)之單位。 因爲從頻譜所產生之倒頻譜(cepstrum)與能量一般當 成隱藏馬可夫模型中之特徵向量,必需計算此倒頻譜與能 量。一能量計算方塊103計算此倒頻譜與能量。爲得到能 量,該能量計算方塊103利用在時域中之能量計算公式來 11330pifl.doc 10 1225640 重正 計算30ms之瞬間能量。此能量計算公式是等式 239 \^(Χ(Ψ_ΚΑΤΕ-ί^/))2 γ⑴=1丨^--,0$ J - 239
W SIZE (1) 利用等式1所計算所η個能量値係用以決定目前之輸 入信號是語音信號或雜訊。爲在頻域中計算頻譜,在信號 處理中係廣泛使用FFT。此種FFT可表示於等式2 : X(k) = _ Ο jt Ο jr O jt- O jt- + y{n)sm{-^^kn)] + jSUM[y(n)con(-^r^kn) - (n)kn)] 256 、256 256 、256 (2) 如果根據該能量計算結果而決定目前之輸入信號是 一語音信號,必需決定此語音信號之開頭與結尾,此操作 進行於一找終點(FindEndPoint)單元104內。依此,如果決 定一有效字元,只有相關於已決定之有效字元之頻譜資料 會儲存於一緩衝單元105中。因此,該緩衝單元105只儲 存對說話者所發音之字元去除雜訊後所得之有效語音信 號。 一梅爾(mel)濾波器106進行梅爾濾波,其爲一種預處 理步驟,藉由使用32頻帶之頻寬來對頻譜濾波以得到倒頻 透過梅爾濾波,可計算32頻帶之頻譜値。藉由將所 討算出之頻域中之頻譜値變換成時域中之頻譜値,可得到 倒頻譜,其爲隱藏馬可夫模型中之一種參數。將頻域變換 成時域之操作係利用一 IDCT單元107中之反相離散離弦變 換(Inverse Discrete Cosine Transform,IDCT)所進行。 11330pifl.doc 11 因爲所得之倒頻譜與能量値(可利用隱藏馬可夫模型 而使用於語音辨識中)具相當大的差異(比如,約100倍), 必需g周整之。此調整係由一大小調整單元(scaler)108使用 對數操作而進行。一倒頻視窗單元109從此梅爾倒頻値分 隔出周期性與能量,並利用等式3來改善雜訊特徵: Υ[ι][]]-8ιη_ΤΑΒίΕυ]*Χ([ι]υ + ΐ]) 0$ NoFrames,0$ j S 7 (3) 其中NoFrames代表框(frame)之數量。Sin—TABLE可 由等式4得到:
Sin_TABLE[j]二 I+4*Sin(^^til) ⑷ 8 在上述計算之後,一正規器110將各框中之第9個資 料正規化成存在於既定範圍內之値。爲達正規化,首先, 利用等式5在各框之第9個資料中找出最大値:
Max
MaxEnergy= WindCepstrum[i] [8] (5) 0 < /, NoFrames 接著,正規化之能量可由將所有框之能量資料減去該 最大値而得,如等式6所示:
Cepstrum[i][8]=WindCepstrum[ij[8]-MaxEnergy)*WEIGHT_ FACTOR 〇 ^ i<Nor*Ram (6) 語音辨識之語音率一般可由增加參數(比如特徵値)之 類型而提高。爲此,除了各框之特徵値外,各框間之特徵 値之差異也當成另一種特徵値。一動態特徵値單元m計 算此種差量倒頻譜參數(delta cep strum)並將所g十算之差量 倒頻譜參數爲一特徵値。倒頻譜參數間之差異可用等式7 計算: 11330pifl.doc 12
1225640
Recp(i)=F(i)=^(2*Scep[i+4][j]+l*Scep[i+3][j]+ 0*Scep[i+2][j]-l*Scep[i+l]D]-2*Scep[i]) (7) 一般來說,係對兩相鄰框進行此種計算。如果完成計 算,係產生等於倒頻譜數量之差量倒頻譜數量。透過上述操作, 可取出利用隱藏馬可夫模型而用在字元搜尋中之特徵値。 根據所取出之特徵値,透過下列三個步驟可進行利用 既定隱藏馬可夫模型之字元捜尋。第一步驟係進行於一觀 察機率計算單元112中◦基本上,係根據機率而進行搜尋 與決定操作。亦即,係根據機率來找出最相近於所說出字 元之音節。此種機率包括一觀察機率與一變換機率’累積 此兩種機率以選擇具最大機率之音節順序。該觀察機率可 利用等式8而得到 t n Max Max )pr〇b|m]= dbxM}-^ dbx.[i] L J 0<i<9 0 0<i<9 其中(status[m]= 1 ),0 $ ni ‘ s ( 8 ) 其中dbx代表一參考平均値與從一輸入信號取出之各 特徵値間之機率間距。當該機率間距變小時’該觀察機$ 變大。該機率間距可由等式9得到: Σ - Feature[k][0][j])2 dx0 [i]=lw_ —-- Σ p[U][jl * (m[i}[j] - Feature[k][\][j]f dx i [i] = lw- —----(9) 其中m代表參數之平均値;Feature代表從一輸入仏5虎所侍 11330pifl.doc 13 1225640
飞表準確度,其代表一散佈度(比如,散佈,1/σ2); 1 W r 、女加權數;而i代表混合項(mixture)”,其代 曰U〜裂。如果從許多人得到以增加辨識正確度之代表 &曰係分類成數個群組,各群組包括相似類型之音 ^ \虽成代袠各群組之因子◦在等式9中,k代表框之數 里而j代表参數之數量。框之數量係隨著字元類型而改變, 而S亥混合項坷根據由人類發音類型而分類成數種類型◦當 線丨生域中之加權數之計算改變成對數域中之加權數之計算 時,該對數加權數會降低。 所計算之觀察機率係有關於可觀察到字元之預選音 節之音位之機率。各別音位具有不同觀察機率値。在決定 各音位之觀察機率後,該些觀察機率係輸入至一狀態機台 113以得到最適當音位順序。獨立字元辨識之隱藏馬可夫模 型之各狀態順序係根據待辨識字元之各音位之特徵値而形 成。 第2圖顯示得到音節 3 ”之狀態順序之方法。假設苜 節“彐”包括三個狀態SI,S2與S3,第2圖顯示狀態從初 始態S0開始,通過狀態S1與S2,最後到達狀態S3之過 程。在第2圖中,在相同狀態階上之往右方移動代表由說 話者決定之延遲。亦即,音節“3”可發短音或發長音。當 音節之發音時間變長時’各狀態階之延遲變長。在第2圖 中,SU代表靜音。 如第2圖所示,對於包括三個順序狀態SI,S2與S3 之音節“3”存在有許多狀態順序,而對一輸入信號之各狀 11330pifl.doc 14 態順序進行機率計算。因此,需要大量計算。 當對所有音位之機率計算(亦即,處理各音位之狀態順 序)已完成時,可得到各音位之機率。在第2圖中,狀態前 進之方式係先得到各狀態之a (alpha)値接著選擇具最大α 値之支節。利用等式10,該α値係由累積前一觀察機率及 透過實驗而預先得到之內音位(mter-phoneme)轉態機率而 得到: . Adcix
State[i]. Alpha- 〇。St ate [i]· Alpha—prev+State [i].trans—pr ob[0]?State[i-l].Alpha_prev+State[i].trans_prob[l] + *(State[i ]·〇—prob) (10) 其中State.Alpha代表目前累積之機率値;State.Alpha_prev 代表先前累積之機率値;trans—prob[〇]代表狀態sn轉態至 狀Pj Sn之機率(比如SO—SO); trans、pr〇b[1]代表狀態Sn 轉態至狀態Sn+1之機率(比如S0—Sl);而〇 pr〇b代表目 前狀態所計算出之觀察機率。最大可能性尋找器1M係選 擇出根據等式10之各苜位之最終累積機率^直而辨識之二字 元。具最大機率之字元係選擇爲已辨識字元。 現將描述辨識字元” KBS”之處理。 字元”KBS”包括三個音節“汛〇卜、“ 、 音節“汧0Γ具有三個音位“彐”、“ Q]卜、“ Q|,,, 具有二個音位“拦”、“〇丨 ‘‘〇|,,、 “ 训,,、“ △,’。 而首節“Qj|仝,,具有三個音位 因此,字元”KBS”包括八個 ,、“〇|,,、 “ 〇|,,、 “ 011 ’,、 位 “ 3 ”〇|丨,,、‘‘〇丨,,、 ’且根據各音位之觀 11330pifl.doc
1225640 察機率與相鄰音位間之轉態機率而辨識。 爲正確辨識字元”KBS”,上述8個音位必需儘可能正 確地辨識,且必需選擇音位順序最相似於該字元”KBS”之音 位順序之字元。 首先,對一輸入語音信號之各音位計算觀察機率。爲 達此,係計算各音位對儲存於一資料庫內之各音位樣本之 相似程度(比如機率),且決定最相似音位取樣之機率爲各音 位之該觀察機率。比如,比較音位“3”與存於該資料庫內 之音位樣本,且選擇具最大機率之音位樣本“3”。 如果計算該輸入語音信號之各音位觀察機率,亦即, 如果已決定該輸入語音信號之各音位之音位樣本,對該輸 入語音信號應用包括已確定之音位樣本之一狀態順序以決 定最適當順序。該狀態順序包括8個音位“Η”、“0Γ’、 “〇丨”、“ ϋ ”、“〇丨”、“〇丨”、“训”“ 。選擇具各音 位之最大觀察機率與最大順序累積値之一順序”KBS”。此8 個音位之各音立係包括三個狀態。 第3圖顯示字元辨識處理。爲辨識字元”KBS”,該觀 察機率計算裝置112計算8個音位“Η”、“0]|”、“01”、 “Μ”、“〇|,,、“〇|”,‘、“Q1I,,、“△,,之觀察機率,且該狀 態機台113選擇具各音位之最大觀察機率與最大觀察機率 累積値之字元”KBS”。 一般,許多現有之語音辨識產品以軟體(C/C++語言) 或組合語言來設計上述操作並利用一般用途處理器來進行 該些功能。 11330pifl.doc 16
年月日 1225640 另外,現有之語音辨識產品可用專用硬體(比如特殊應 用積體電路ASIC)來進行上述操作。上述語音辨識之設計 與進行各有優點與缺點。軟體實施方式花費相當長的計算 時間並具有彈性能輕易改變操作。 另一方面,比起軟體實施方式,專用硬體實施方式提 供快速處理速度與較少之功率消耗。然而,硬體實施方式 較不具彈性,故無法改變功能。 本發明提供一種語音辨識裝置,其能提供快速處理速 度但又能適應於能輕易改變功能之軟體實施方式。 在使用一般用途處理器之該軟體實施方式中,進行各 功能所需之計算數量顯示於表1中。在此,計算數量必非 指令字元之數量而是計算次數之數量,計算比如爲乘法, 加法,對數運算,指數運算等。 11330pifl.doc 1225640 :r. ^ ·!*· LI5L·立」· 計 預處理 梅爾 -濾波&倒譜數 HMM 總計 算 預 能 FFT 梅 IDCT 調 倒譜 觀察 狀 加 量 爾- 整 數 機率 態 強 計 濾 大 機 算 波 小 台 乘 160 240 4096 234 288 9 36 43200 0 48263 法 加 160 239 6144 202 279 0 1 45600 600 53225 法 除 0 1 0 0 0 0 9 0 0 10 法 取 0 1 0 0 0 0 0 0 0 1 平 方 根 對 數 運 算 0 0 0 32 0 0 0 1 1 33 計 329 481 10240 468 567 46 88800 601 601 101532 總 計 由表1可看出,一*般語苜辨識所需之5十昇總數重約 18 1 1330pifl.doc
1225640 100000,其中約88.8%是觀察機率計算所需,而約10.1 %是 FFT計算所需。 因此,如果利用專用計算裝置來進行佔據整個系統之 總計算之大部份之計算,比如,觀察機率計算或FFT計算, 可明顯地改良系統之性能。亦即,即使以低時脈操作之裝 置也可達良好之語音辨識。 本發明提供一種改良後語音辨識裝置,藉由包括用於 進行觀察機率計算與FFT計算之專用計算裝置來改良語音 處理速度。 根據本發明實施例之該語音辨識裝置包括:用以進行 多位元位移(barrel shift),乘法,累積與取得平方根之專用 計算裝置;以及用以進行觀察機率計算與FFT計算之專用 計算裝置。 根據本發明實施例之該語音辨識裝置連接於一外部 電腦而操作,因而包括一記憶體介面裝置以接收該外部電 腦傳來之程式或送出一語音辨識結果至該外部電腦。 根據本發明實施例之該語音辨識裝置包括:一程式記 憶體,儲存該外部電腦傳來之程式;一中央處理單元 (CPU);以及一快取裝置以克服儲存於該程式記憶體內之資 料處理速度之偏差。 2讀取-1寫入之3條匯流排系統係廣泛使用成一般用 途處理器之內部匯流排。因此,根據本發明實施例之該語 音辨識裝置係設計成具有適合於3條匯流排系統之架構。 在根據本發明實施例之該語音辨識裝置內,構成模組 11330pifl.doc 19 1225640 修 东· ;Ί日Ί ψ it-1-r- -Ι- .ΤΤΤ-Γΐ ^0,^,· .^«^«#.*1. , .^,.4»·^^^, ^βφ^-fuaii 透過一指令字元匯流排來接收指令字元,而一解碼器則解 譯所接收之指令字元並進行解碼後操作。 第4圖是本發明實施例之語音辨識裝置之方塊圖,其 爲系統單晶片(SOC,system-on-chip)裝置。第4圖之該語 音辨識裝置使用3條匯流排系統做爲無關於說話者語音辨 識之特殊用途處理器。構成模組共享3條匯流排(2條讀取 匯流排與1條寫入匯流排)之兩運算元(opcode)匯流排。 參考第4圖,一控制(CTRL)單元402係由一般用途處 理器實施。一暫存器檔(register file)單元404代表進行一暫 存器檔操作之一模組。一算術運算單元(ALU)406代表進行 算術運算之模組。一乗法與累積(MAC)單元4Ό8代表進行 計算觀察機率所需之重複MAC之模組。一多位元移位器 (B)410代表進行多位元移位操作之模組。FFT單元412代 表進行本發明FFT計算之模組◦平方根(SQRT)計算器414 代表進行平方根計算操作之模組。計時器416代表進行計 時操作之模組。時脈產生器(CLKGEN)418代表產生時脈與 控制時脈速度以達低功率消耗之模組。 PMEM420代表一程式記憶體模組;一 PMIF422代表 一程式記憶體介面模組;一 EXIF424代表一外部介面模 組;一 MEMIF426代表一記憶體介面模組;一 HMM428代 表一隱藏馬可夫模型計算模組;一 SIF430代表一同步串列 介面模組;一 UART43 2代表一萬用非同步接收器/發送器 介面模組;一 GPI0434代表一般用途輸出入模組;一 CODECIF430代表一編解碼介面模組;以及一 CODEC(編碼 11330pifl.doc 20 1225640 f正替換頁 年a 器/解碼器)440代表進行CODEC(編碼器/解碼器)操作之模 組。一外部匯流排452對一外部記憶體進行資料收發。該 EXIF424支援動態記憶體存取(DMA)。雖然第4圖未詳細 顯示,該些匯流排442,444,446,448與450係連接至模 組 402〜440 ◦ 內建於各模組之一未示出控制器(解碼器)透過專用指 令(OPcode)匯流排448與450來接收指令並解碼所接收之 指令。資料係透過兩條讀取匯流排442與444輸入,或透 過一寫入匯流排446輸出。 第4圖之該語音辨識裝置包括該PMEM420,程式係 透過該EXIF424而載入至該PMEM420內。 第5圖顯示在第4圖之該語音辨識裝置內之接收一控 制指令與資料之操作方塊圖。該控制單元402直接解碼一 控制指令並控制該些模組以執行指定於該控制指令內之操 作。另外,該控制單元402透過OPcode匯流排0與1(該 OPcode匯流排448與450)而輸出一控制指令至模組,並間 接地控制各模組之操作。該些模組共享OPcode匯流排〇與 1以及讀取匯流排A與B(該讀取匯流排442與444)。 特別是,爲直接控制操作之執行,該控制單元402從 該ΡΜΕΜβΟ擷取一控制指令,解碼所擷取之該控制指令, 讀取指定於該控制指令內之操作所需之資料並儲存所讀之 資料於該暫存器檔單元404內。之後,如果所指定操作是 一控制邏輯操作,此操作執行於該ALU406內。如果所指 定操作是一 MAC操作,此操作執行於該MAC408內◦如果 11330pifl.doc 21 1225640 一 -_ r- -「γπγ-.·ι『 —*—***—1*i*l>·"*1·****^ \ψ n月曰 所指^11桑作是一多位元位移操作,此操作執行於該B位移 器410內。如果所指定操作是一平方根取得操作,此操作 執行於該SQRT計算器414內。指定操作之結果係儲存於 該暫存器檔單元404內。 爲間接控制操作之執行,·該控制單元402利用該 OPcode匯流排0與1。該控制單元402依序輸入從該 PMEM420擷取到之一控制指令至該OPcode匯流排0與1 但不解碼所擷取之該控制指令。 該控制指令先輸入至該OPcode匯流排0,並在該控制 指令首次輸入後之一個時脈才輸入至該OPcode匯流排1。 如果該控制指令輸入至該OPcode匯流排0,該些模組決定 所輸入之該控制指令是否有關於本身。如果該些模組接收 到有關於本身之控制指令,該些模組利用內建解碼器來解 碼控制指令並進入待命狀態以執行指定於該控制指令內之 操作。如果上述控制指令在輸入至該OPcode匯流排該0後 之一個時脈也輸入至該OPcode匯流排1,則第一次執行指 定於該控制指令內之操作。也配置RT與ET信號線(未顯示) 以代表輸入至該OPcode匯流排0與1之一控制指令是否被 致能。 ‘‘ 第6圖顯示在第4圖之該語音辨識裝置內之接收一控 制指令與資料之操作時序圖。參考第6圖,最上端信號是 一時脈信號CLK,往下依序爲輸入至該OPcode匯流排 0(〇Pc〇de448)之一控制指令;輸入至該OPcode匯流排 l(OPcode450)之一控制指令;一 RT信號;一 ET信號;輸 11330pifl.doc 22 1225640 | 更:^破10^8\ I 午—__^ 入至該讀取匯流排A之資料;以及輸入至該讀取匯流排B 之資料。 如果一控制指令係輸入至該OPcode匯流排0且該 OPcode匯流排0被該RT信號致能,第4圖之某一模組辨 識並解碼該控制指令接著進入至待命狀態。之後,如果相 同之該控制指令輸入至該OPcode匯流排1且該OPcode匯 流排1被該ET信號致能,該待命模組執行指定於該控制指 令之操作。特別是,該待命模組從該讀取匯流排A與B讀 取資料,執行指定於該控制指令之操作並透過一寫入匯流 排而輸出該操作結果。 執行於第4圖之該語音辨識裝置內之語音辨識將參考 第1圖而描述。參考第4圖,透過一麥克風(未示出)接收之 一語音信號係在該CODEC440(參考第1圖之該ADC101)內 變換成一數位信號。 由ADC得到之取樣資料係於既定時間之期間分割成 方塊(block),比如,以30ms爲單位。如果時間軸上所產生 之部份重疊之取樣資料依序標示爲d0,dL···且一資料方塊 內之資料點之數量爲240,則分割該取樣資料且兩相鄰資料 方塊之8 0個取樣資料係彼此重疊。比如,第一資料方塊具 d0〜d239,而第二資料方塊具d80〜d319。 資料依此方式分割成方塊之理由在於,目前方塊之某 些資料重疊於下一方塊之某些資料以減少複變FFT計算之 誤差。 在複變FFT計算中,要增加計算速度可藉由應用目前 11330pifl.doc 23
1225640 正在計算之資料方塊至該計算之貫數部份以及應用下一次 要計算之資料方塊至虛數部份以一次得到兩個FFT結果。 在此,應用至實數部份之該資料値必需相似於應用至虛數 部份之該資料値。 符合主馬可夫模型之聲音資料或影像資料由相似於 相鄰資料値之資料値所組成。因此,聲音資料與影像資料 適合於上述計算方法。 配置相同資料至兩個資料方塊可更進一步減少FFT計 算之誤差範圍。 該CODECIF436控制該CODEC440之操作。
如等式1所示,計算各方塊之自發性能量,比如 30ms。此外,計算等式1所需之MAC與平方根取得係分別 執行於第4圖之該ALU406,該MAC單元408與該SQRT 計算器414內。 同樣地,如等式2所示,對各資料方塊之FFT計算係 執行於該FFT單元412內。因此,可得到頻域之頻譜(參考 第1圖之該能量計算器103)。 利用所得之能量計算結果,可決定一語音信號(比如一 字元)之起點與終點(參考第1圖之找終點單元104)。 當決定一有效聲音區(比如一有效字元)時,只暫存(緩 衝,buffer)相關於該有效聲音區之頻譜資料。第4圖之該 暫存器檔單元404提供緩衝之儲存空間。 對於從該頻譜資料得到倒頻譜之預處理步驟而言,利 用包括32頻帶之一頻譜來濾波之梅爾濾波係執行於第1圖 11330pifl.doc 24
1225640 之該梅爾濾波器106內。因而,可得到該32頻帶之各頻帶 之頻譜値。 當成HMM參數之倒頻譜可由將在頻域得到之頻譜値 變換成時域上之頻譜値◦因爲將頻域變換成時域之IDCT 操作係有關於FFT操作之逆操作,該iDCT操作可利用第1 圖之該IDCT單元107內之第4圖之FFT單元412來執行。 該能量値與各倒頻譜値間之差異係由第1圖之該大小 調整單元1〇8來調整大小。另’從梅爾倒頻譜値分隔出周 期性與能量及減少雜訊係利用等式3而由第1圖之該倒頻 譜視窗單元109執行。 當完成上述計算時,包括於各框之第9筆資料內之能 量値係被被第1圖之該正規化器110正規化以位於既定範 圍內。 要得到正規化後之能量値可由:如等式5所示之在各 框之第9筆資料中找出最大能量値以及如等式6所示之從 各框之能量資料減去該最大能量値。 在第1圖之該動態特徵値單元111,利用等式7來計 算差量倒頻譜參數並選擇之做爲一特徵値。 在該些計算之後‘,可得到相等於倒頻譜數量之差量倒 頻譜之數量。 透過此過程,可取得根據HMΜ之字兀搜尋所用之特 徵値。 利用所得之特徵値,可執行利用既定ΗΜΜ之字元搜 11330pifl.doc 25
1225640 觀察機率與計算係利用等式8與9而執行於該 HMM428(參考第1圖之該觀察機率計算裝置112)內。所計 算出之觀察機率代表可觀察到既定字元之各音位。該些音 位具不同機率値。
該MAC單元408之操作有關於該HMM428,且該MAC 單元408交替地執行乘法與累積以計算該觀察機率。 當有效聲音區內之各音位之觀察機率已決定時,該觀 察機率係應用至一狀態順序以得到最適當音位順序,此執 行於第1圖之該狀態機台113內。 獨立字元辨識之HMM之各狀態順序一般是根據待辨 識字元之各音位之特徵値而形成之一順序。 當完成各音位之機率計算(比如,各音位之狀態順序處 理)時,得到各別音位之機率値。如等式10所示,係選擇 出根據各別音位所累積之最終機率値而辨識之字元。在 此,於第1圖之最大可能性尋找器114內,具最大機率之 字元係選擇成已辨識字元。 第4圖之該語音辨識裝置根據儲存於該PMEM420內 之程式而操作。爲快取記憶體之該PMIF422係用以避免該 語音辨識裝置之性能由於該控制(CTRL)辨識402與該 PMEM420間之資料存取速度差而下降。 如上述,本發明實施例之該語音辨識裝置使得必要之 語音辨識計算中之經常性計算執行於專用裝置中,因而能 大大地改良該語音辨識裝置之性能。 由表1可看出,一般語音辨識所需之總計算數量約 11330pifl.doc 26
1225640 100000,其中觀察機率佔了約88.8% ◦ 如上述演算法係安裝且執行於爲一般用途處理器之 常見ARM處理器中,可處理約3千6百萬個指令字元。已 發現,在3千6百萬個指令字元中約有3千3百萬個指令 字元是有用於HMM搜尋中。表2顯-示利用ARM處理器來 執行語音辨識真正所需之指令字元,其中該些指令字元係 以功能來分類。 11330pifl.doc 27 1225640
, 月 EJ 表2 功能 指令字元之周期數 百分比(%) 觀察機率計算 22267200 61.7% 狀態機台更新 11183240 30.7% FFT言十算 910935 2.50% 最大可能性找尋 531640 1.46% 梅爾濾波”〇017調整大小 473630 1.30% 動態特徵値決定 283181 0.78% 預加強&能量計算 272037 0.75% 倒頻譜視窗&正規化 156061 0.43% 終點找尋 123050 0.30% 總計 36400974 100% 由表2可看出,觀察機率計算需要約62%的指令字 元。因此,將一專用裝置當成觀察機率計算器,以處理大 部份指令字元,因而改良處理速度並減少功率消耗。 本發明也提供一種專用之觀察機率計算裝置,可用小 量指令字元(亦即小量周期數)來計算觀察機率。 爲改良觀察機率計算率,本發明也提供一種能計算最 常計算到之機率間距計算等式之等式9與10之裝置,其只 使用一個指令字元: pU][j] * {^ean[i][j} - feature[k][j]y 〇 ” 其中P[i][J]代表散佈度(比如,散佈(dispersion),1/σ2) 之準確度,mean[i][j]代表音位之平均値,而feature[k][j] 是音位之參數且代表能量與倒譜頻。在等式11中, 11330pifl.doc 28 I -年93, ,-8日丨 '------------------- 一一—广 j (mean[i][j]-feature[k][j])代表音位之可能性輸入參數與一 預定義參數樣本間之差異(間距)。將(mean[i][j]-feature[;k;|[;j;|) 之結果平方以計算絕對可能性間距。 (mean[i][j]-feaUire[k][j])之平方乘上該散佈値來預測目標 之真實間距。在此,該參數樣本可由許多語音資料中實驗 而得。當從許多人得到之語音資料之數量增加時,可改良 辨識率。 然而,在本發明中,可利用等式12來克服硬體之限 制特徵(比如資料位元之限制(16位元))來將辨識率最大化: {p[i][j]*(mean[i][j]-feature[k][j])}2 (12) 其中Ρ[Πϋ]代表散佈度(l/σ),不同於等式11之散佈値 1/^。現將描述爲何用散佈度(l/σ)來取代散佈値1/σ2 ^ 在等式 9 中,將(m[i][j]-feature[i][j])平方,而 (m[i][j]-feature[i][j])之平方係乘上p[i][j]。然而,在等式 12 中,(m[i]|J]-feature[i][j])乘上 pWU],接著再將乘法結 果方平。 另’在等式9中’需要局達(m[i][j]-feature[i][j])之平 方之位元解析度來表示ρ[ι]ϋ]。然而,在等式12中,只需 要相等於(m[i][j]-feature[i][j])之位元解析度。 亦即,爲維持16位元解析度,根據等式9之計算需 要32位元來表示p[i][j],而根據等式12之計算只需要16 位元來表示 p[i][j] ◦ 在等式 12 中,因爲將 {p[i][j]*(mean[i][j]-featiire[k][J])}之結果平方,可得到相近 於使用l/σ2之等式9之計算效果。 11330pifl.doc 29 第7圖顯示用於本發明實施例之語音辨識裝置中之觀 察機率計算裝置之方塊圖。第7圖之該裝置係實施於第4 圖之該HMM428中。將於底下描述,該HMM428包括:第 7圖之該觀察機率計算裝置與一控制器(未示出),該控制器 解碼一指令字元以控制第7圖之該觀察機率計算裝置。 第7圖之該觀察機率計算裝置包括:一減法器705, 一乘法器706,一平方器707與一累積器708。參考符號 702,703與704代表暫存器。 爲一資料庫之一外部記憶體701儲存各音位樣本之準 確度,平均値與特徵値。在此,準確度代表一散佈度(l/σ), 平均値代表各音位樣本參數(能量+倒頻譜)之平均値,而特 徵値代表音位之參數(能量+倒頻譜)。 在第7圖之該觀察機率計算裝置中,首先,該減法器 705計算平均値與特徵値間之差異値。接著,該乘法器706 將所計算出之差異値乘上散佈度(l/σ)以得到真實間距。接 著,.該平方器707將乘法結果平方以得到絕對差異値。之 後,該累積器708將所得之平方累積至前一參數。 亦即,等式12中之結果係由該乘法器706得到,而 等式9中之Σ計算結果係由該累積器708得到。 該外部記憶體701儲存p[i][j],mean[i][j]與 featur^HU],並依既定順序將之連續輸出至該些暫存器 702,703與704。預先定義該既定順序使得!與」能連續增 加。 當交替 1 與 j 時,P[i][j],meanmu]與 featuremu]係 11330pifl.doc 30
1225640 連續輸出至暫存器702,703與704 ◦該暫存器709得到最 終累積之觀察機率。藉由此機率累積,最相似於輸入音位 之一音位樣本係具有最大機率。在第7圖之該觀察機率計 算裝置之前端與後端之該些暫存器702,703,704與709 係用以穩定資料。 第7圖之g亥乘法器706與g亥累積器708可由第4圖之 該MAC單元408支援。 在第7圖之該觀察機率計算裝置內,資料之位元解析 度可能因爲處理器架構而有變化。當位元數增加時,可計 算更詳細結果。然而,因爲位元解析度有關於電路之大小, 必需考量辨識率來選擇適當解析度。 爲方便於了解位元解析度之選擇,第8圖顯示具16 位元解析度之處理器之內部位元解析度。在此,各階之切 割處理係根據16位元之資料寬度限制,且有關於儘可能避 免令性能下降之一選擇處理。相比於只使用一般用途處理 器,如果使用本發明實施例之該觀察機率計算裝置,可大 大地改良處理速度。 特徵値與平均値係分別包括4位元整數與12位元小 數。該減法器705將該特徵値減去該平均値以得到包括4 位元整數與12位元小數之一値。 準確度係包括7位元整數與9位元小數。該乘法器706 將該準確度乘上減法結果以得到包括10位元整數與6位元 小數之一値。 該平方器707將該乘法器706之結果平方以得到包括 11330pifl.doc 31 1225640 修 n:' ’v, 'rr 更」〜慨10·㈣ 二 ΐ 丨 ρί 20位元整數與12位元小數之一値。該累積器708將此値加 至前一値並調整大小(scale)以得到包括20位元整數與11 位元小數之一値。 表3比較當使用常用HMM之一語音辨識演算法執行 於ARM系列之一般處理器中以及當語音辨識演算法執行 於應用本發明實施例之該觀察機率計算裝置之一專用處理 器中。 處理器 周期數 時間(20M CLK) ARM處理器 36400974 1.82s 應用觀察機率計算裝置之處 理器 15151534 0.758s 由表3可看出,一般用途處理器執行約3千6百萬個 周期以執行語音辨識,而應用觀察機率計算裝置之專用處 理器只執行約1千5百萬個周期,約一般用途處理器之周 期數之一半。因此,可進行即時語音辨識。亦即,即使在 低時脈頻率下,該專用處理器性能相同於一般用途處理 器。因此,可大大地減少功率消耗。功率消耗與時脈頻率 間之關係可表示於等式13 : P = (l/2)*C*f*V2 (13) 其中P代表功率消耗量,而C代表爲電路特徵値之一之電 容値。在等式13中,f代表電路內之信號之總轉態程度。 轉態有關於時脈速度。在等式13中,V代表所施加之電壓。 因此,如果減半時脈速度,理論上,功率消耗量也會減半。 在第4圖之該語音辨識裝置中,該CLKGEN418產生 11330pifl.doc 32 1225640 要輸入至該語音辨識裝置之其他模組之一時脈信號並支援 時脈速度改變以達低功率消耗。 第7圖之本發明實施例之該觀察機率計算裝置儲存以 實驗法預先得到各種人類之音位樣本之平均値;音位樣本 間之轉態機率;散佈度;以及從該外部記憶體701內之新 輸入語音所得之參數。這些資料係存於該專用觀察機率計 算裝置之暫存器702,703與704內以將由於外部資料變動 所導致之信號變動減至最小。將資料儲存於該專用觀察機 率計算裝置係十分相關於功率消耗。在存於於該專用觀察 機率計算裝置之內部暫存器內之該些資料中,從輸入語音 信號取得之參數(比如特徵値)與預存平均値間之該差値係 由該減法器705得到。 該乘法器706將所得之差値係乘上代表該散佈度(1/σ) 之準確度。該平方器707將乘法結果平方以得到基本機率 間距。因爲該基本機率間距只相關於從字元得到之眾多語 音參數框中之一目前參數,該累積器708必需將該基本機 率間距加至前一機率間距以累積機率間距値。爲進行累 積,存於該暫存器709內之資料係輸出至該累積器708使 得該資料能用於下一次計算。 該些暫存器不只用於累積操作中,也可用於將信號轉 態最小化。該累積操作係同時應用至所有既定音位,而得 到之累積値係存於各別音位或各別狀態之適當位置。因 此,如果已完成相關於該輸入語音之所有參數之累積計 算,字元之各音位之最大累積値可辨識爲最可能之相似音 11330pifl.doc 33
1225640 位◦利用該累積値來決定最終辨識字元之操作可由現有處 理器來執行。 第4圖之該HMM428有關於第4圖之該專用觀察機率 計算裝置◦該HMM428利用對一輸入語音之特徵値預先決 定出之HMM來進行字元搜尋。. 亦即,該HMM428透過該OPcode匯流排〇與1(OPc〇de 匯流排4M與450)接收一指令,解碼該指令,並控制第7 圖之該專用觀察機率計算裝置以執行觀察機率計算。觀察 機率計算所需之資料係透過兩讀取匯流排442與444而輸 入,並透過該寫入匯流排446而輸出。 該HMM428透過該OPcode匯流排448與450接收從 第4圖之該控制單元403輸出之一控制指令,利用內部控 制器(未示出)解碼該控制指令,並控制第7圖之該專用觀察 機率計算裝置以執行觀察機率計算。 本發明實施例之一專用觀察機率計算裝置利用上述 HMM搜尋方法可有效執行佔去總計算數之大部份之觀察 機率計算。 此外,本發明實施例之該專用觀察機率計算裝置可將 指令字元之數量減少.·5〇%或更多。因此,觀察機率計算所 必需之操作可以低時脈速度執行,且可減少功率消耗量。 甚至,本發明實施例之該專用觀察機率計算裝置可根 據ΗΜΜ而執行機率計算。 FFT是執行頻域與時域間信號變換之一種演算法,且 一般以軟體方式實施。然而,最近趨勢是FFT可用硬體方 11330pifl.doc 34 1225640
[:年月_9 式實施反S成快速郎時處理。 最近,歐洲數位廣播標準應用包括傅立葉變換之 C〇FDM(Coded Orthogonal Frequency Division Multiplex,垂直正交碼頻 率分割多工器)以增加對通道雜訊之抗性。另,各種測量器 (比如,頻譜分析儀),語音辨識裝置等使用一 FFT裝置。 離散信號之傅立葉變換可利用離散傅立葉變換(DFT) 或FFT而達成。離散傅立葉變換會降低對策之效率,因爲 需要N*N個計算。然而,FFT可有效執行,因爲只需要 (N/2)log(N)個計算量。特別是,當信號數量增加時,計算 數量會大幅增加。因此,FFT係廣泛應用於快速即時處理 之領域中。 FFT計算可表示於等式14 : yV = ^ x(n)^e Ν + Υ^χ{η)^ e~Jl7 η ”=〇 α/=0 η^Ν/2 Λ//2 -1 — ^ / 2~~1 .2 7Γ 2 κ —^ χ{η) * e J Ν + ^ χ(Ν Ι2-\-η)^ e J Ν η ^ e J^n η (⑷ η=0 η=0 如果k是偶數,k可表示爲2r。如果將2r代入等式14 中之k,等式14可重寫成等式15 : Λ^/2-l _ ;z±lr*n Ν!2-\ . 2/r X(2r)= ^ x{n)^ e N +; ^ x(N /2 + n)^ e N " * e JVn2r*n "二0 "=〇 =[Λ乂")*e Λ, + ^ χ(Ν /2-l· η)^ e Ν η=0 // = 〇 /V/2-1 _ '—2/·*/? =[{ι⑻+ χ(τΥ/2+ η=0 =TV(扣(體(15) 1 1330pifl.doc 35 1225640
如果k是奇數,k可表示爲2r+1。如果將2r+1代入等 式14·中之k’寺式14可重寫成等式16: N !2~\ X(2r+1)— ^ x(n)^e
N .2/r _'叫—(2r+\ )*// - j^+1)*// X x{N /2 +n)^e N *e ' N/2 yV/2-l -^ x(N / 2 + e _.jV爾 /;=0 n=0 N/1 [{4«)-jc(7V/2 + w)}*e '〜 *e ^ // = 0 iV/2-l · 2兀产" __ ,2π_ =^ {x(n) - x(N / 2-l· n)} ^ e N/1 *e;"” (16) n-0 因此,X(k)可重排於等式17 : X(k)=X(2r)+X(2r+l) Λ^_^·1 _ j ^n—r*n N^l;\ __j ~π r*n -j—n
=[{jc〇) + x(A/72 + /7)}*e "/2 + ^ {x(n) - x(N / 2-l· n)} ^ e N'2 *e N /1=0 n=0 (17) 等式Π顯示對N個點(比如,N個取樣資料)之離散傅 立葉變換(DFT)可分割成對N/2個點(比如,N個取樣資料) 之兩個DFT,重複該分割以得到具基本架構之DFT,且該 基本DFT係重複進行以完成FFT。 在等式17中,可去除//777rw因其係計算於下一 FFT計算中。 如果對〆應用傳統歐拉(Euler)公式,則〆可表示於等式 18 : /V/2 :cos( 2π Ν η) (18) 因此,等式17可重寫成等式19 : Χ(η)== { {.\·(Π) - JC(| + ”)} COS(·^· /2) + 儿τ〇) - + ") } sm( j ( 1 9) 36 11330pifl.doc 將z(n)代入等式19中之x(n),具複數之信號 z(n)=x(n)+」y(n)之複變FFT可表示於等式20中: z(n)= {{z(n) - z(y + n)}cos(^n) + j{z(n) ~ z(y -f n)}sm(^-n)} (20) 將z(n) = x(n)+」y(n)代入等式20中,等式20可重寫成等式 21 : z(n)= {W") _ x(了 + ”)} C0S(~^T") - {少⑷-少(| + ")} sin(|")} + j{y(n) - y(~Y + n)) cos(—n) - {^(n) ~ + n)} sm{^-n)} (21) 其中x(n)是實數,而y(n)是虛數。 {{x⑷-x今+ /7)}cos(勞幻-炒⑷-< + A〇}sin(专π)}代表複變FFT所 得 之輸出値之實數部份,而 7.{少⑻-少今+岣一(爭/2)-{X⑷-< + /7)}sin(穿咐代表複變FFT所 得之輸出値之虛數部份。 將目前資料方塊代入複變FFT之實數部份並將0代入 複變FFT之虛數部份可進行實數FFT。因此,虛數FFT是 不必要的。爲避免計算不必要的FFT,將下一資料方塊, 而非〇,代入複變FFT之虛數部份。因此,可一次得到兩 個FFT結果。此種複變FFT計算所得之値不同於各別計算 資料方塊之FFT之磁。然而,如果兩資料方塊彼此沒有顯 著不同,比如語音信號,FFT可進行於小誤差範圍內。比 如,如果時間軸上之連續資料方塊由D(T),j^H),D(T_2)… 代表’而對D(T)之FFT可由分別將以”與代入該第 一 FFT之實數部份與虛數部份而計算。對d(t-1)之FFT可 由分別將D(T-l)與D(T-2)代入該第二FFT之實數部份與虛 1 1330pifl.doc 37
1225640 數邰份而計算。對各別資料方塊進行重複FFT計算可更進 一步縮小誤差範圍。 亦即,在對包括一第一實數與一第一虛數之一第一複 數及包括一第二實數與一第二虛數之一第二複數所進行之 FFT計算中,分別有關於x(n)與x(N/2)之該第一與第二實 數係加入一實數資料方塊。分別有關於y(n)與y(N/2)之該 第一與第二虛數係加入一虛數資料方塊。 第9圖顯示用以進行2根(radix 2)之複變FFT之裝置 之基本架構。弟9圖之裝置一般稱爲蝴蝶(butterfly)計算器。 在第9圖中,箭頭代表資料流向,圓圈中之+/x代表 加法與乘法,而方塊中之內容代表輸入或計算結果(比如, 輸出)。左方的方塊中之內容代表輸入,而右方的方塊中之 內容代表輸出,而中間的方塊中之內容代表得到輸出所必 要之中間値。 與Xn/2+π是實數輸入,而}^與yN/2 + n是虛數輸入。 實際上’ xn與xn/2+n*別是資料方塊D(T-l)之第η個與第 (N/2+n)個資料,而^與yN/2+n*別是資料方塊d(T-2)之第 η個與第(N/2+n)個資料。如果從沒有顯著變化之信號(比如 語音信號)取樣出兩個連資料方塊D(T-l)與D(T-2),複變 FFT可進行於小誤差範圍內。 中間値 a)是 χ(η) + χ(Ν/2+η) 中間値 b)是 y(n) + y(N/2+n) 中間値 c)是 x(n)-x(N/2+n) 中間値 d)是 y(n)-y(N/2+n) 11330pifl.doc 38 f正替换頁 ’、.年--¾ 輸出値 e)^ {{χ{η) - χ(γ + /7)} cos(^^2) - {y{n) - γ(γ + n)} sm^n)} 輸出 ill 〇是{少0)-少(| + ")} c〇s(^^W-{x〇) — x(| + A〇}sm(^^")} 輸出値e)與f)用於下一階之DFT中,但實際上會回至 第9圖中之基本架構。 如値e)與f)所示,輸入四個輸入項與兩個係數,爲基 本FFT計算實施之2根之複變FFT導致四個値。 此種FFT計算可粗略分類成使用一般用途處理器之軟 體與使用專用FFT計算裝置之軟體。一般用途處理器,比 如爲CPU或數位信號處理器(DSP) —般使用三條匯流排系 統。在三條匯流排系統中,計算兩個輸入項而得一個結果 値之計算(比如加法或乘法)可使用管線化進行於一個周期 內。然而,輸入四個輸入項與兩個係數(比如,正弦與餘弦 係數)而得到四個結果値之計算(比如,2根之複變FFT)需要 許多周期。因此,在三條匯流排系統中,即使此種計算所 必需之操作係以管線化進行,也無法快速計算。 爲解決此問題,傳統FFT計算裝置應用一係數專用記 憶體,一位址計算器與一專用匯流排◦另外,一傳統FFT 計算裝置應用兩條寫入匯流排。然而,此兩種習知傳之缺 點在於晶片體積,功率消耗等◦另,因爲傳統FFT計算裝 置之獨特結構會導致良率下降。甚至,因爲傳統FFT計算 裝置不相容於一般用途處理器,無法立即應用於[P產業。 本發明實施例提供改良後之複變FFT計算裝置,可將 FFT計算速度提高至最大。 第10圖顯示用於本發明實施例之語音辨識裝置中之 39 1 1330pifl .doc iIL赫ϋ頁 !£ ' 93.10:^
丨年月日I 複變FFT計算裝置之方塊圖。第10圖之複變FFT計算裝 置係用於具兩條讀取匯流排與一條寫入匯流排之三條匯流 排系統中,且實施於第4圖之該FFT單元412中。 第10圖之複變FFT計算裝置包括:第一與第二輸入 暫存器1002與1004,載入從讀取匯流排A與B(讀取匯流 排442與444)輸出之複變FFT計算必需之資料;第一與第 二係數暫存器1006與1008,載入從讀取匯流排A與B(讀 取匯流排442與444)輸出之複變FFT計算之正弦與餘弦 値;一加法器1 〇 14; —減法器1016;第一與第二乘法器101 8 與1020,將該減法器1016之輸出分別乘上該第一與第二係 數暫存器1006與1008之輸出;四個儲存暫存器1024, 1026,1028與1030,用於進行複變FFT計算時;第一與第 二多工器1010與1012,支援該加法器1014與該減法器1016 之操作;第二多工器1032,控制一輸出操作;以及一控制 器1034,控制第10圖之該複變FFT計算裝置之元件之操 作。 第11圖顯示第10圖;Z複變FFT計算裝置之時序圖。 第10圖之複變FFT計算裝置之2根複變FFT計算係執行 於第四與第五周期。·‘ 在第一周期中,複變FFT計算所用之正弦係數與餘弦 係數係分別透過讀取匯流排A與B而載入至第一與第二係 數暫存器1006與1008。 在第二周期中,載入複變FFT計算所用之實數部份並 進行加法與減法。特別是,〜透過讀取匯流排A而載入於 11330pifl.doc 40
1225640 該第一輸入暫存器1002而乂^2+11透過讀取匯流排B而載入 於該第二輸入暫存器1004。該加法器1014將χη加上 XN/2 + n ;該減法器1016將χη減去χΝ/2 + η ◦因爲該加法器1014 與該減法器1016在接收輸入時會自動進行操作,故不需要 額外操作周期。該加法器1014之輸出係輸入至該第三多工 器1 032,而該減法器1016之輸出係輸入至該第三多工器 1032與該第一與第二乘法器1018與1020。 S亥第一乘法器1018將該減法器1016之輸出(χη-χΝ/2+η) 乘上載入於該第一係數暫存器1006內之該正弦係數以得到 表示第 9 圖之該値 〇之該公式之第二項 ({咖)-<| + 〃)}81!^^))。該第一乘法器1〇18之輸出係存於該 第一儲存暫存器1024內。 該第二乘法器1020將該減法器1〇16之輸出(χη-χΝ/2+η) 乘上載入於該第二係數暫存器1008內之該餘弦係數以得到 表示第9圖之該値e)之該公式之第一項 ({X⑷-+ 。該第二乘法器1 〇20之輸出係存於該 第二儲存暫存器1026內。 在第三周期內,_入用於複變FFT計算中之虛數資料 接著進行加法與減法。特別是,yn透過讀取匯流排A而載 入至該第一輸入暫存器1002而yN/2 + n透過讀取匯流排B而 載入至該第二輸入暫存器1004。該加法器10] 4將yn加上 yNm ;該減法器1016將yn減去yN/2+n。因爲該加法器1014 與該減法器1 〇 16在接收輸入時會自動進行操作,故不需要 11330pifl.doc 41
1225640 額外操作周期。該加法器1014之輸出係輸入至該第三多工 器1032,而該減法器1016之輸出係輸入至該第三多工器 1032與該第一與第二乘法器1018與1020。 該第一乘法器1018將該減法器1016之輸出(yn-yN/2 + n) 乘上載入於該第一係數暫存器1006內之該正弦係數以得到 表示第 9 圖之該値 e)之該公式之第二項 ({少⑻-+ 。該第一乘法器1018之輸出係存於該 第三儲存暫存器1028內。 該第二乘法器1020將該減法器1016之輸出(yn-yN/2+n) 乘上載入於該第二係數暫存器1008內之該餘弦係數以得到 表示第 9圖之該値 f)之該公式之第一項 ({少⑷-J7(# + 〃)}CQS(¥;7))。該第二乘法器1020之輸出係存於該
2 N 第四儲存暫存器1030內。 在第四周期內,2根之複變FFT之實數値(比如,第9 圖之値e))係利用存於該第二與第三儲存暫存器1026與 1028內之値而計算。 特別是,存於該第二儲存暫存器1026內之 {X⑷—x(令+ 與存於該第三儲存暫存器1〇28內之 {〆,?)- + 係透過該第二多工器1〇12而輸入至該 減法器1016 ◦該減法器1016將{x〇)-J(y + «)}c〇S(^^)減去
LV⑷-少(! +咐通(竺,祕將結果輸出至該第三多工器1 〇32 〇要 2 N 注意,該減法器101 6之輸出是第9圖之値e),亦即2根之 複變FFT之實數値。 該減法器1016之輸出透過該第三多工器1〇32而輸入 1 1330pifl.doc 42
更、93:10: 4、 年月曰 至一輸出暫存器1036並透過一寫入匯流排C而存於一記憶 體(未示出)。 在第五周期內,2根之複變FFT之虛數値(比如,第9 圖之値f))係利用存於該第一與第四儲存暫存器1024與 1030內之値而計算。 特別是,存於該第一儲存暫存器1024內之 {X⑷+ 與存於該第四儲存暫存器1030內之 {jKn)-j<f + n)}c〇s(^^)係透過該第一多工器1010而輸入至該 加法器1014。該加法器1014將{x〇)-x(f + «)}sin(|〃)加上 {少(”)—jK 了 + ")} c〇s(^~")並將結果輸出至δ亥弟二多工益1032。要 注意,該加法器1014之輸出是第9圖之値f),亦即2根之 複變FFT之虛數値。 該加法器1014之輸出透過該第二多工器1032而輸入 至該輸出暫存器1036並透過一寫入匯流排C而存於一記憶 體(未示出)。 爲利用第10圖所示之2根之蝴蝶計算裝置對N點進 行複變FFT計算,必需進行(N/2)log(N)階。在此,N爲2 的次方,而一點代表存於一資料方塊內之資料量之單位。 在對16點進行複變FFT計算之例中,需要4階。在 對256點進行複變FFT計算之例中,需要8階。 第11圖顯示對16點進行複變FFT計算之例中各階之 資料流向。在完成複變FFT計算後,最終得到之FFT係數 之輸出順序不同於第一階中之資料點之輸入順序。因此, 11330pifl.doc 43 1225640 需要再度排列FFT係數,這將於底下詳述。 之後’將計算對256點進行複變FFT計算之第1〇圖 之該2根蝴蝶計算裝置所需之周期數。 在對N點方塊進行複變FFT計算之各階中,對前一階 之m點(m代表正偶數且等於或小於N)資料方塊之DFT係 變換成對m/2點資料方塊之兩個DFT。因此,各階需要N/2 個2根複變FFT計算◦在對256點進行複變FFT計算之例 中,重複128次相同操作,而利用第1〇圖之該裝置在各階 中改變一資料點。 複變FFT計算所需之周期數是5 120,這可由底下公式 得到: 周期數气載入係數所需之1周期+計算與輸出所需之i 周期)*128(此爲在一階內重複FFT之次數)*8(此爲256點之 FFT之階之數量)。 此計算是根據計算方塊之複變FFT之方塊固定式演算 法,其中每一階之方塊數會加倍。 弟1 2 Η頒不方塊固定式演算法之流程圖。在F F T計 算中’目前階之方塊數量是前一階之方塊數量之兩倍,但 同一階中之所有方塊,共享係數◦比如,每一階之方塊數會 加倍’比如從目前階之Ν/2增加成下一階之Ν/2*2,但各方 塊之大小會每一階減半。 在方塊固定式演算法中,對各別方塊進行各別操作。 特別是’每次計算一資料方塊之FFT,都需載入必要性係 11330pifl.doc 44 1225640 1水 202中,g曼疋弟—*階(stageO)之變數。變數 numb(代表方塊之數量)設爲},而變數㈣(代劾塊之長 度)設爲N/2。 ^導水 〇4中,疋址(addressing)實數資料之變數」! f初始値設爲〇,而定址虛數資料之變數J·2之初始値設爲 變數1enb之値。假設該實數資料(比如資料方塊D(T-l))與 該虛數資料(比如資料細擊2))賴紐—記憶體內。變 數wstep代表變數w之基本部份。 在步驟S 1206中,各資料方塊之變數w之初始値設爲 在步驟S 1204之變數ji之初始値與變數lenb之初始値之總 和◦各資料方塊之變數」2之初始値設爲在步驟s 1204之變 數之初始値與變數lenb之初始値之總和。變數w設爲〇。 變數k2代表待處理之資料方塊。 在步驟S1208中,進行蝴蝶計算◦對各別資料方塊之 FFT係利用桌1 〇圖之該裝置而計算。變數^ 1代表處理資 料之順序。 在步驟S 1210中,指定待處理之下一資料。將變數kl 加1 ’而更新後變數kl之値係相比於變數lenb之値。如果 變數kl之値小於變數ienb之値,比如,如果待處理資料仍 處於目前資料方塊內,該流程回至步驟S 1208。另一方面, 如果變數kl之値等於或大於變數lenb之値,比如,如果目 前資料方塊內之所有資料已處理完畢,該流程跳至步驟 S1212。 在步驟S 1212中,指定待處理之下一資料方塊。將變 11330pifl.doc 45 1225640 數k2加1,而更新後變數k2之値係相比於變數numb之値。 如果變數k2之値小於變數numb之値,比如,如果待處理 之方塊仍處於目前階內,該流程回至步驟S1206。另一方 面,如果變數k2之値等於或大於變數numb之値,比如, 如果目前階內之所有資料方塊已處理完畢,該流程跳至步 驟 S 1 2 1 4。 在步驟S1214中,指定待處理之下一階。將變數numb 之値加倍,而將變數lenb之値減半。 在步驟S1216中,要決定是否已處理完所有階。將變 數stage加1,而更新後變數stage之値係相比於l〇g2N之 値。如果更新後變數stage之値小於l〇g2N,該流程回至步 驟S1 204。另一方面,如果更新後變數stage之値等於或大 於log2N,則結束目前的FFT計算。 在方塊固定式演算法中,各資料都需要載入係數所用 之周期,但因爲下一資料點可透過單簡加法操作而定址, 故可簡化各方塊內之定址資料點之操作。因此,方塊固定 式演算法適合於處理小量方塊之前階。 在方塊固定式演算法中,每次計算資料方塊之FFT時 都要載入係數◦也可應用係數固定式演算法,其中在載入 共孚係數後,才取出與進彳了使用各貧料方塊之共享係數之 操作。 FFT所需之最大周期數是435 1,這可由計算而得 ^ ^1^ + 4*128*8 ·、.吨e-] stages] ^ 第13圖顯示係數固定式演算法之流程圖。在係數固 11330pifl .doc 46 1225640 定式演算法中’取出與集合使用各 一
货錢料方塊之±t呈係數夕 操作,載入共享係數,且所集合之子保敷Z 之已取出操作係同時進行。 在FFT計算中,下一階之資料 寸l仃 ^ ^ rw ^ ^ ^ 〜枓方塊處理量是目前階之 資料方賴理星之薩,但各方❿資麵之數量卻減 半。然而’同P自中所處理之所有方塊使用共享係數。如 果計算256點資料方塊之FFT,stage〇所處理之資料方塊 之數量是2,各方塊之資料點之數量是128,而各方塊所用 之係數之數量是1428,則該些係數被該些資料方塊所共享 且決定爲n/N(n是0,2,4,…256,在此爲128)。亦即, 如將各資料方塊之資料點排序’同一序上之資料方塊之資 料點可使用共享係數。 在係數固定式演算法中,先載入共享係數’且依照資 料方塊之順序來計算在該些資料方塊共享係數之資料點之 FFT。 在步驟Sl3〇2中,設定第一階(stage 0)之變數。變數 numb(代表方塊之數量)設爲1,而變數lenb與hlenb(代_ 方塊之長度)分別設爲N爲lenb/2。 在步驟S1304中,係數定址用之變數w與wstep係分 別設爲〇爲2stage,而資料定址之變數jp設爲0。變數stage 代表目前正在處理之階,而變數W“eP代表變數W之基本部 份。 在步驟S1306中,將變數%_加至變數w,將變數 加1,而資料定址之變數jl與j·2分別設爲變數川之値與 jp+hlenb之値。在此,變數jl用於定址實數資料,而變數 11330pifl.doc 47
1225640 j 2用於定址虛數資料。變數k丨代表資料處理之順序。 在步驟S1308中’進行蝴蝶計算。各階之FFT與各別 資料方塊之FFT係利用第1〇圖之該裝置而計算。 在步驟S1 3 10中,指定待處理之下一資料◦將變數kl 加1,而更新後變數kl之値係相比於變數numb之値。如 果變數kl之値小於變數numb之値,比如,如果待處理資 料仍處於目前資料方塊內,該流程回至步驟s丨3〇8 ◦另一方 面’如果變數kl之値等於或大於變數numb之値,比如, 如果目前資料方塊內之所有資料已處理完畢,該流程跳至 步驟S1312。 在步驟S 13 12中,指定待處理之下一資料方塊。將變 數k2加1,而更新後變數k2之値係相比於變數hlenb之値。 如果變數k2之値小於變數hlenb之値,比如,如果待處理 之方塊仍處於目前階內,該流程回至步驟S 1306。另一方 面,如果變數k2之値等於或大於變數hlenb之値,比如, 如果目前階內之所有資料方塊已處理完畢,該流程跳至步 驟S1314 ◦變數k2代表待處理之方塊。 在步驟S 13 14中,重設下一階所要用到之變數。將變 數numb之値加倍,而將變數lenb與hlenb之値減半。 在步驟S13 16中,要決定是否已處理完所有階。將變 數stage力Π 1,而更新後變數stage之値係相比於l〇g2N之 値。如果更新後變數stage之値小於l〇g2N,該流程回至步 驟S1 304。另一方面,如果更新後變數stage之値等於或大 於log2N,則結束目前的FFT計算。 1 1330pifl.doc 48
!;-:. 93.10, nI I懷kisr定算法中,載入係數之周期數會減半, 但對該些資料方塊中共享係數之資料點進行定址之操作之 周期數會增加。因此,係數固定式演算法更適合於處理小 量方塊之前段階,而非處理大量方塊之後段階。 根據分析,方塊固定式演算法需約6200周期。 更可使用分階法於方塊固定式演算法中。如果將階7 分離,需約5500周期◦如果將階7分離於階6,需約5200 周期。 在此,分階代表只對某些階進行迴圏(代表周期性重複 邏輯,比如,for-while操作或do-while操作)。特別是,如 果將階7分離,對階0〜階6之演算法係以迴圏進行,而對 階7之演算法則不以迴圈進行。 可發現,係數固定式演算法需約5400周期。也可使 用分階法於係數固定式演算法中◦如果將階〇分離於其他 階,需約5430周期。如果將階0分離於階1,需約5420 周期。所需之周期數雖然不像方塊固定式演算法中減少得 那麼顯著,但仍有減少。 如果倂用此兩演算法,比如對第一〜第四階使用係數 固定式演算法而對後續階使用方塊固定式演算法,所需之 周期數可減少至約4800周期。 另,如果考慮下一次計算之係數可輸入於上述周期中 之第四或第五周期內,複變FFT計算所需之周期數更可減 少至約4500周期。 在第10圖之該裝置中,該加法器1014與該減法器 11330pifl.doc 49 1225640 : 1016可同時使用於實數部份之計算與虛數部份之計算中。 因爲加法器與該減法器之操作不會影響FFT計算所需之周 期數,故不額外安裝計算第9圖之値e)與f)之額外加法器 與減法器,而可以使用儲存暫存器1024,1026,1028與 1030,該第一與第二多工器1010與1012,該加法器1014 與該減法器1016。 雖然多工器會佔據晶片不少面積,使用兩個多工器來 同時動作,這可提供相當大的優點。 該控制器1034透過該讀取匯流排A或B或專用指令 匯流排來接收該控制單元402輸出之一指令,解碼該指令, 並控制操作器(該加法器1014,該減法器1016,該第一與 第二乘法器1018與1020),該輸入/係數/儲存暫存器1002, 1004,1006,1008,1024,1026,1028 與 1030 以及該第一 至第三多工器1010,1012與1032以進行FFT。當將等式 17之指數部份之符號改爲相反符號,可達成逆FFT(IFFT)。 亦即,藉由改變透過該儲存暫存器1024, 1026, 1028與1030 以及該第一與第二多工器1010與1012而輸入至該加法器 1014與該減法器1016之値可達成IFFT ◦ 因爲該輸出暫存‘器1036可能會溢位(overflow),該輸 出暫存器1036之輸出値之各別位元可被該控制器1034位 移至低位元,比如,以達成1/2之大小調整。 第4圖之該FFT單元412應用第10圖之本發明實施 例之該複變FFT計算裝置。在第10圖之該複變FFT計算 裝置中,該控制器1034透過專用指令匯流排(OPcode匯流 1 1330pifl.doc 50 1225640 紙 排〇與1)來接收一指令,解碼該指令,並控制操作器(該加 法器1014,該減法器1016,該第一與第二乘法器1018與 1020), 該輸入/係數/儲存暫存器 1002&1004/1006&1008/1024,1026,1028&1030 以及該第 一至第三多工器1010,1012與.1032以進行FFT。必要資 料係透過第4圖之讀取匯流排442與444而輸入,並透過 第4圖之該寫入匯流排446而輸出。 該FFT單元412透過該OPcode匯流排448與450來 接收第4圖之該控制單元402輸出之一指令。第1 〇圖之該 控制器1034解碼該指令,並控制操作器(加法器,減法器 與乘法器),輸入/係數/儲存暫存器以及多工器以進行FFT。 比如,在第1〇圖之該FFT計算裝置中,該控制器1034 解碼所接收之一控制指令,控制操作器(加法器,減法器與 乘法器),輸入/係數/儲存暫存器以及多工器以進行FFT’ 並透過該輸出暫存器1036而將結果輸出至外部。 FFT計算裝置需要下列的6個控制指令。 首先,指令A2FFT代表係數(正弦與餘弦)之輸入,且 有關於第一周期。 第二,指令FFTfR(FFT Front Real)代表實數資料之輸 入,計算與輸出’且有關於第二周期。 第三,指令FFTFI(FFT Front Imaginary)代表虛數資料 之輸入,計算與輸出’且有關於第三周期。 第四,指令FFTSR(FFT Secondary Rea〇代表實數値之 輸入,計算與輸出,且有關於第四周期。 11330pifl.doc 51 1225640 第五,指令 FFTSI(FFT Secondary Imaginary)代表虛數 値之輸入,計算與輸出,且有關於第五周期。 第六,指令FFTSIC代表在計算時之係數輸入以及實 數/虛數値之輸。特別是,指令FFTSIC代表在第四或第五 周期時,下一次計算之係數載入於該係數暫存器1006與 1008中。指令FFTSIC係有用於減少計算所需之周期數。 第14圖顯示執行FFTFR指令之時序圖。在第14圖 中,最頂端信號是時脈信號CK1,接著依序爲:輸入至該 OPcode匯流排0之一控制指令;輸入至該OPcode匯流排1 之一控制指令;信號RT ;信號ET ;輸入至讀取匯流排A 與B之資料;輸入至該輸入暫存器1002與1004之資料; 輸入至該加法器1014與該減法器1016之資料;輸入至該 乘法器1018與1020之資料;輸入至該第一與第二儲存暫 存器1024與1026之資料;輸入至該輸出暫存器1036之資 料;以及一輸出致能信號FFT_EN。 當一控制指令輸入至該OPcode匯流排0且該控制器 1034被信號RT致能時,該控制器1034解碼控制指令並進 入FFT計算之待命狀態。之後,如果指令FFTSR輸入至該 OPcode匯流排1且該‘控制器1034被信號ET致能,該控制 器1034進行一控制操作以進到第二周期。 特別是,該控制器1034控制該輸入暫存器1002與 1〇〇4以儲存透過該讀取匯流排A與B傳來之資料。存於該 輸入暫存器1002與1004之實數資料係輸入至該加法器 1014與該減法器1016。該控制器1034控制該加法器1014 11330pifl.doc 52 與該減法器1016以進行加法與減法。該減法器1016之操 _結果係輸入至該乘法器1018與1020。該控制器1034控 _該乘法器1018與1〇2〇以進行乘法;控制儲存暫存器1〇24 _ 1026以儲存該乘法器1018與1020之操作結果,並控制 爹第三多工器1032以儲存該減祛器1016之操作結果於該 _出暫存器1036內。 接著,該控制器1034輸出該輸出致能信號FFT_EN 使得其他模組可得到存於該輸出暫存器1036內之資料(複 變FFT之實數値)。比如,如第4圖所示,當該FFT單元 412產生該輸出致能信號FFT_EN時,該控制單元402控制 該FFT單元412之輸出資料來存於該暫存器檔單元404內。 因爲指令FFTFI之執行相似於指令FFTFR之執行,故 不詳細描述。 第15圖顯示執行FFTSR指令之時序圖。在第15圖 中,最頂端信號是時脈信號CK1,接著依序爲:輸入至該 OPc.ode匯流排0之一控制指令;輸入至該OPcode匯流排1 之一控制指令;信號RT ;信號ET ;輸入至讀取匯流排A 與B之資料;輸入至該輸入暫存器1024,1026 ’ 1028與 1030之資料;輸入至該加法器1014與該減法器1016之資 料;輸入至該輸出暫存器1036之資料;以及一輸出致能信 號 FFT_EN。
當一控制指令FFTSR輸入至該OPcode匯流排0且該 控制器1034被信號RT致能時,該控制器1034解碼該控制 指令並進入FFT計算之待命狀態。之後,如果指令FFTFR 11330pifl.doc 53 輸入至該OPcode匯流排1且該控制器1034被信號ET致 能,該控制器1034進行一控制操作以進到第四周期。 特別是,該控制器1034控制該第一與第二多工器1〇1〇 與1012以輸出存於該儲存暫存器1024與1026內之資料至 該減法器1016。該控制器1034.也控制該減法器1〇16以進 行減法,並控制該第三多工器1032以儲存該減法器1016 之操作結果於該輸出暫存器1036內。 接著,該控制器1034輸出該輸出致能信號FFT_EN 使得其他模組可得到存於該輸出暫存器1036內之資料(複 變FFT之實數値)◦ 因爲指令FFTSI之執行相似於指令FFTSR之執行,故 不詳細描述。 該輸出暫存器1〇36依序儲存並輸出在第四周期內得 到之實數値並第五周期內得到之虛數値。如果存於該輸出 暫存器1〇36內之値溢位,可將之調整大小後再輸出。
弟16A興16B 離七八 κ呀,此装置揭 足各於日本專利公告號he〗06-060107內。第16a與i6b 裝置係爲硬體’其中實施有蝴蝶計算器。該蝴蝶,算= 需要一專用係數記憶體與該專用係數記憶體之一係 計算器。爲計算2資料 FFT,第16A圖㈣ I6個周期’而桌1όΒ圖之g亥裝置需要6個周期 第圖顯示另-種習知FFT計算_ 1 於韓國專利公告號i999_o〇79m內。第η ^ ".路 丨」弟17圖之裝置只有 -個乘法器麵個腿器但酵-專職_憶體,該專 11330pifl.doc 54 1225640 ... - - * · ^ ..,」 用係數記憶體之一係數位址暫存器以及用以定址資料之次 料位址暫存器。爲計算2資料點之FFT,第1? _之該裝= 需要9個周期。 @ ^ 第18圖顯示又一種習知FFT計算裝置,壯壯 礼衣置揭露 於韓國專利公告號2001-0036860。第18圖之裝置包括四個 乘法器,兩個加法器,兩個ALU,一條讀取/寫入匯流排, 與用於傳輸係數之兩條讀取匯流排且需要至少6個|周[_。 第19圖顯示又另一種習知FFT計算裝置,此裝置揭 露於日本專利公告號sh〇63-086048。第19圖之裝置應用一 英特爾(intel)記憶體X處理器,該處理器包括四個乘法器, 兩個加法器與一額外加法器(U與V管線)且需要16周_ /2(管線)◦ 第20圖顯示使用第10圖之該複變FFT計算裝置對 256點資料方塊進行FFT計算之結果,並與習知裝置進行 比較。在第10圖之圖式中,縱軸代表FFT計算所需之周期 數。.參考第20圖,TIC54X需要8542個周期數,TIC55X 需要4960個周期數,AD12100需要7372個周期數,ADIFrio 需要4 Γΐ 7個周期數,而本發明實施例之該ρρτ計算裝置需 要4500個周期數。, 本發明實施例之該FFT計算裝置約爲TIC54X之處理 速度的1.9倍,且爲ADI2100之處理速度的ι.6倍,且性 能高於如TIC55X之5條匯流排系統(3條讀取匯流排+2條 讀取匯流排)。 同時,因爲TIC55X具3條讀取匯流排與2條讀取匯 1 1330pifl.doc 55 1225640 - 流排’ TIC5 5X應用一對的一般用途3條匯流排系統。因此, 顯然的,本發明實施例之該FFT計算裝置在相容性與架構 簡單性上優於TIC55X ◦ 亦即,本發明實施例之該FFT計算裝置可將FFT計算 所需之周期數減至最低而仍能維持對一般用途3條匯流排 系統之相容性◦ 傳統CPU與主記憶體間之資料處理速度約有1〇0倍或 以上的差異,此差異係由一快取記憶體補償。 一快取記憶體首先從主記憶體讀取預期CPU下次會 需要之一串資料,接著儲存該資料。快取記憶體之存取速 度快於主記憶體。 在存取主記憶體之前,該CPU存取快取記憶體以得到 所需資料。快取記憶體之預期命中率非常高,因而有利於 程式之快速執行。 在一般快取記憶體之處理方法中,具快取錯失之方塊 是由主記憶體讀取出並與新方塊交換。在此,考量到快取 記憶體之大小,方塊對映法,方塊交換法與寫入法等來有 效設計快取記憶體。一般來說,係根據命中率(或方塊之使 用率)來交換方塊。’‘ 一般來說,重複的指令具高命中率◦然而,包括一串 重複之長程式碼(比如中斷向量或中斷服務程序)之程式之 命中率低於重複指令之命中率。 當使用根據命中率之快取策略時,中斷向量或中斷服 務程序在中斷延遲上可能會有很大差異,這是因爲非周期 11330pifl.doc 56 1225640 性與非具體出現之中斷之屬性造成。在此,中斷延遲代表 從中斷發生到有關於該中斷之服務開始之間所經過的時 間。另,中斷可具不同中斷延遲。 因此,根據命中率之快取策略並不適合於永遠需要矢巨 中斷延遲之既時處理系統。 因爲以硬體方式來控制傳統快取記憶體,無法隨著ϊ暑 境改變而使用適當的快取策略。 比如,以硬體方式來控制快取記憶體意味著以內建演 算法來控制快取記憶體。因爲快取記憶體之內建演算法被 快取記憶體之製造固定,不管環境未來改變如何,只能以 固定方式來控制快取記憶體。 上述限制需要能以軟體方式來控制的快取記憶體。亦 即’對於能使用不同快取策略之快取記憶體,需要一種能 自由改變快取控制方式,其不同於於預設於快取記憶體內 之硬體控制方式。 然而,快取記憶體可分類成指令快取記憶體或資料快 取記憶體。資料快取記憶體處理待操作之資料,而指令快 取記憶體處理控制CPU之指令。 該資料快取記憶體可當成在影像處理裝置中逐視框 地(frame-by-frame)處理影像資料之緩衝記憶體或者當成在 影像處理裝置中控制輸出入速度之緩衝記憶體。 該指令快取記憶體用於處理下一指令以減少既時處 理系統中之中斷延遲。 在LSI(大型積體)裝置之整合度增加高,板層次(board 11330pifl.doc 57 level)之傳統嵌入系統係實施成系統單晶片(s〇c)。s〇c減 少晶片間之資料傳輸延遲故能快速傳輸,且功率消耗量能 減少爲板層次之傳統嵌入系統之功率消耗量之—半或更 低。因此,SOC可視爲次世代半導體設計技術。 特別是,由於系統性能改良與晶片整合導致之板體積 縮小,以成本面來看,SOC能減少2〇%或以上的系統製造 成本。 爲此,SOC已廣泛使用於網路設備,通訊裝置,個人 數位助理(PDA)’機上盒,DVD及pc的繪圖控制器。因此, 主要的半導體製造商已主動發展。 如果板層次之傳統嵌入系統以S〇C實施,可預期根據 中 之即日寸作棄系統(real time operating system,RTOS)將 會普遍使用。 另一方面’如果在板層次之傳統嵌入系統內使用傳統 快取記憶體,因爲傳統快取記憶體不包括處理控制方塊 (PCB,proce信號contr〇l block)也不包括中斷服務程序,整 個系統之性能會下降。 因此’需要單晶片即時作業系統來減少中斷延遲。 本發明實施例之快取記憶體可以軟體方式控制各種 快取策略。 本發明實施例之快取控制方法之特徵在於使用更新 手旨標(pointer)。實際上,快取記憶體之內部記憶體係分成方 塊’且該更新指標指向各記憶體方塊。該更新指標所指之 記憶體方塊可被另一記憶體方塊交換。亦即,該更新指標 11330pifl.doc 58 代表被分割成方塊之內部記憶體之記憶體方塊,而當發生 快取錯失時,該更新指標所指之記憶體方塊可被另一記憶 體方塊交換。 第21 A與21 B圖顯示用於本發明實施例之語音辨識裝 置中之控制快取裝置之方法之方塊圖。在第21A圖中,參 考符號2100代表CPU,參考符號2200代表快取記憶體, 參考符號2300代表主記憶體,參考符號2400代表快取控 制程式。 該快取記憶體2200首先從該主記憶體2300讀取預期 下次該CPU2100可能會需要之一串資料,接著儲存該資料。 該快取記憶體2200包括一控制器22002,一寫入方塊 儲存暫存器22004與一內部記憶體22006。一旦在該內部記 憶體22006內部發生方塊交換時,該寫入方塊儲存暫存器 22004指向待更新之方塊位置。 該內部記憶體22006係被分割成方塊。在記憶體方塊 中,.被該寫入方塊儲存暫存器22004或該更新指標24002 指向之記憶體方塊係交換於新的記憶體方塊。 第21B圖顯示有關於該更新指標24002與該寫入方塊 儲存暫存器22004之一方塊交換操作。該內部記憶體22006 包括複數個記憶體方塊。該更新指標24002,爲該快取控制 程式2400之一變數,指向複數記憶體方塊中之一方塊。當 該快取記憶體2200被該快取控制程式2400控制時,該更 新指標24002所指向之該記憶體方塊可被新記憶體方塊交 換。 1 1330pifl.doc 59 該更新指標24002在一程式內是可變的,且該更新指 標24002之値(比如,指向待交換記憶體方塊之一値)可由該 操作於快取記憶體2200外部之軟體決定(比如,由該快取 控制程式2400決定)。 待交換之記憶體方塊可以硬體方式決定。以硬體方式 決定此記憶體方塊代表由該快取記憶體2200之演算法決 定,亦即在製造該快取記憶體2200時設計好之演算法。因 此,該快取記憶體2200本身之設計彈性不足以反應環境之 改變,因爲操作演算法在製造該快取記憶體2200時已固 定。然而,如果一外部程式決定是否要更新記憶體方塊’ 該快取記憶體2200能彈性地反應環境之改變。 該快取控制程式2400可載入於該主記憶體22300 內,從該主記憶體22300載至該快取記憶體2200內,或載 入於一特殊記憶體內。 第21 B圖顯示該更新指標24002與該寫入方塊儲存暫 存器22004。存於該寫入方塊儲存暫存器22004內之値代表 由該快取記憶體2200本身所決定之待交換記憶體方塊。 因此,必需對該更新指標24002與該寫入方塊儲存暫 存器22004排出優先順序。在本發明中,該更新指標24002 之優先權高於該寫入方塊儲存暫存器22004。因此,如果該 快取記憶體2200被該快取控制程式2400控制,存於該寫 入方塊儲存暫存器22004內之資訊係被忽略。 在某些情況下,必需禁止對各記憶體方塊之更新◦比 如,存有必需資料之記憶體方塊必需設成不能被更新。 11330pifl .doc 60 1225640 一記憶體方塊寫入模式暫存器22008顯示於第21 A圖 中。該記憶體方塊寫入模式暫存器22008之値可用硬體或 軟體方式改變。比如,一旦初始化該快取記憶體2200,此 初始化操作爲驅動具第21A圖之構成元件之一系統之眾多 初始化操作之一,該主記憶體2300輸出之最基本資料與必 需資料係載入於該內部記憶體22006之第一記憶體方塊, 同時該第一記憶體方塊設爲不可寫入。 存於該記憶體方塊寫入模式暫存器22008內之內容永 遠用硬體更新。然而,如果該快取記憶體2200被操作於該 快取記憶體2200外部之該快取控制程式2400控制,用硬 體控制之該記憶體方塊寫入模式暫存器22008內之內容係 被忽略。 快取記憶體用硬體或軟體方式控制係由CPU決定。比 如,CPU監視快取命中率並決定該快取命中率是否維持於 既定値或更大,即使用硬體快取控制方式控制,比如,利 用快取記憶體之內建演算法控制。如果該快取命中率降低 至既定値或更小,該CPU控制該快取記憶體以軟體方式進 行方塊交換,比如利用操作於該快取記憶體外部之一程式。 該快取控制程式‘ 2400根據一指令來控制該快取記憶 體2200。該快取控制程式2400所產生之一指令係輸入至該 快取記憶體2200。該快取記憶體2200之該控制器22002 解碼該指令並根據所解出之指令來控制該快取記憶體2200 之操作。 透過此指令,該快取控制程式2400控制該快取記憶 11330pifl.doc 61 1225640
年月旦 體2200之方塊交換操作,並決定各記憶體方塊是否要從允 許寫入設成不可寫入。 在本發明實施例之快取控制方法中,根據方塊交換之 待交換記憶體方塊可由一快取記憶體外部操作之一程式適 應性決定。因此,可彈性地根據環境改變來改變快取策略。 第22圖顯示用於本發明實施例之語音辨識裝置中之 一快取裝置之方塊圖。第22圖之該快取記憶體2200係實 施於第4圖之該PMIF422內。 第22圖之該快取記憶體包括:一比較器2202,比較 輸入至該快取記憶體2200之一外部位址與存於該內部記憶 體2206內之一外部位址;一位址變換器2204,將一外部位 址變換成存取該內部記憶體2206之一內部位址;一指令字 元儲存控制器2208,從一外部記憶體載入資料至該內部記 憶體2206 ;以及一匯流排介面(I/F)2210,將該內部記憶體 2206耦合至一匯流排。 .在此,該外部記憶體一般代表一主記憶體,但不受限 於此。該外部位址代表當CPU存取一主記憶體時所用之位 址。該內部位址代表存取一快取記憶體內之該內部記憶體 2206時所用之位址。·‘ 第23圖顯示在第22圖之快取裝置中之該內部記憶體 2206之儲存內容。如第23圖所示,該內部記憶體2206儲 存一外部記憶體之位址(比如一外部位址)以及該位址之資 料。存於該內部記憶體2206內之該外部位址係相比於輸入 至該快取記憶體2200之該外部位址。 11330pifl.doc 62 1225640 該內部記憶體2206包括複數記憶體方塊#1〜#n。 第21 A圖之該CPU21 00在存取該主記憶體2300之前 會先存取該快取記憶體2200 ◦亦即’該CPU2 100藉由輸入 存取該主記憶體2300之一外部位址至該快取記憶體2200 以從該快取記憶體2200需求資料。該快取記憶體2200比 較所接收該外部位址與存於該內部記憶體2206內之該外部 位址◦如果從該內部記憶體2206偵測出相同於所接收該外 部位址之該外部位址,該快取記憶體2200從該內部記憶體 2206讀取出有關於該外部位址之資料,並將該資料輸入至 該CPU2100或記錄該CPU2100所提供之資料。 因爲該快取記憶體2200之存取速度快於該主記憶體 2300,該CPU2100對該快取記憶體2200之存取速度會快 於對該主記憶體2300之存取速度。 另一方面,如果該內部記憶體2206沒有相同於所接 收該外部位址之該外部位址,發生快取錯失。在此情況下, 該CPU2100存取該主記憶體2300。 如果發生快取錯失,該CPU2100存取該主記憶體 2 300,從有關於發生快取錯失處(比如,一外部位址所指之 位置)讀取資料,並每次更新該內部記憶體2206的一*個記 憶體方塊。 傳統快取記憶體以固定順序交換記憶體方塊。比如, 每次發生快取錯失時,記憶體方塊依序交換,比如,從該 第一記憶體方塊開始,接著是該第二記憶體方塊,第三記 憶體方塊到最後一個記憶體方塊。根據此種記憶體方塊交 11330pifl.doc 63 1225640 93.10/-8 換方式,即使當待交換之記憶體方塊存有具尚命中率之資 料或重要資料,該記憶體方塊仍必需被交換。 然而,參考第28圖,本發明實施例之一快取記憶體 可根據資料之重要性或優先性來適當地選擇待交換記憶體 方塊。| 在第22圖之快取中,將該內部記憶體2206分割成方 塊,且各記憶體方塊儲存一串資料,比如,中斷向量或中 斷服務程序。 第24圖更詳細顯示第22圖之該比較器2202之方塊 圖◦該比較器2202包括代表性位址暫存器2402a〜2402η ’ 比較器2404a〜2404η以及一相等偵測器2406。該比較器 2404a〜240411比較外部位址與分別存於該代表性位址暫存 器2402a〜2402η內之第一〜第η個代表性位址以產生代表該 外部位址是否等於第一〜第η個代表性位址之第一〜第η個 選擇信號◦該相等偵測器2406偵測存於該內部記憶體2206 內之該外部位址是否等於輸入至該快取記憶體2200之該外 部位址◦在此,η是該內部記憶體2206之記憶體方塊之數 量。 該代表性位址暫存器2402a〜2402η由第22圖之該指 令字元儲存控制器2208控制,並儲存該指令字元儲存控制 器2208所提供之代表性位址。 在代,一代表性位址代表存於該記憶體方塊內之該外 部位址間之一表頭(head)位址。一般來說,主記憶體之組成 單位爲位元組(8位元),而匯流排之組成單位則多於一個位 11330pifl.doc 64 1225640 祖沒:义 元組。如果匯流排之組成單位爲4個位元組(32位元),一 次會讀取4個位元組(4個位址)以改良存取速度。如果只指 向表頭位址,可自動與連續處理包括該表頭位址之四個位 址。 亦即,可視爲,主記憶體可分割成至少跟匯流排寬度 一樣大之方塊。然而,因爲4個位元組非常小,經常會發 生記憶體方塊交換。因此,主記憶體之組成單位一般遠大 於4個位元組。 因此,各該代表性位址暫存器具有存於各記憶體方塊 內之該外部位址中之該表頭位址。特別是,表頭位址之高 階位址存於各該代表性位址暫存器內。 該比較器2404a〜2404η分別比較外部位址之上半部與 存於各該代表性位址暫存器2402a〜2402η內之表頭位址之 上半部。根據比較結果,會產生代表該外部位址是否等於 該代表性位址之第一〜第η選擇信號◦所產生之第一〜第η 選擇信號輸入至第22圖之該位址變換器2204。 所產生之第一〜第η選擇信號也輸入至該相等偵測器 2406,該相等偵測器2406根據第一〜第η選擇信號來決定 是否發生快取錯失。如果所有選擇信號代表外部位址不相 同於代表位址,則發生快取錯失。 該相等偵測器2406輸出之一相等偵測信號係輸入至 第22圖之該位址變換器2204,該位址變換器2204決定是 否要存取該內部記憶體2206或一外部記憶體(比如,該主 記憶體2300)。 11330pifl.doc 65
1225640 該相等偵測器2406輸出之該相等偵測信號也輸入至 第22圖之該指令字元儲存控制器22〇8。根據該相等偵測信 號,該指令字元儲存控制器2208決定是否發生快取錯失。 根據決定結果,進行記憶體方塊交換。 第25圖顯示第22圖之該位址變換器2204之方塊圖。 參考第25圖,該位址變換器2204接收〜外部址位,該比 較器2404a〜2404η所輸出第一〜第η選擇信號,該指令字元 儲存控制器2208所輸出第一〜第η選擇信號,以及一寫入 位址,並產生該內部記憶體2206之一位址及一讀取/寫入 控制信號。 現將描述發生快取命中時之該位址變換器2204之操 作◦是否發生快取命中係由第22圖與第24圖之該比較器 2202所輸出之該相等偵測信號決定。如果發生快取命中, 比如,該比較器2202所輸出之該相等偵測信號代表相等, 該位址變換器2204參考該比較器2404a〜2404η所輸出第一 〜第η選擇信號而將所接收之外部位址變換成該內部記憶體 2206之一內部位址,並將該內部位址提供至該內部記憶體 2206。該位址變換器2204也產生一內部記憶體控制信號, 比如,一讀取/寫入信號。 因爲根據該內部記憶體2206所用之記憶體類型及設 計時之其他考量點,外部位址與內部位址之映對可隨時改 變,現將描述映對方式。 是否發生快取錯失係由第22圖與第24圖之該比較器 2202所輸出之該相等偵測信號決定。如果發生快取錯失, 11330pifl.doc 66 1225640
該CPUMOO會接著存取一外部記憶體,比如該主記憶體 2300。之後,第22圖之該指令字元儲存控制器2208執行 方塊交換。一旦發生方塊交換,該位址變換器2204參考該 指令字元儲存控制器2208所輸出之該第一〜第n選擇信號 與S亥馬入位址來產生存取δ亥內部記憶體2 2 0 6之一'內部g己憶 體位址。在此,該指令字元儲存控制器2208所輸出之該第 一〜第η選擇信號決定該內部位址之高階位址,而該指令字 元儲存控制器2208所輸出之該寫入位址決定該內部位址之 低階位址。 第26圖顯示第22圖之該指令字元控制器22〇8之方 塊圖。該指令字元控制器2208包括一記憶體載入控制器 26〇2,一高階位址產生器2604,一低階位址產生器2606 ’ 一控制模式暫存器2608, 一記憶體方塊寫入模式暫存器 2610以及一記憶體方塊寫入位址儲存暫存器2612。 該指令字元控制器2208之操作係由第24圖之該相等 偵測器24〇6輸出之該相等偵測信號決定。如果該相等偵測 信號代表不相等,該指令字元控制器2208進行方塊交換。 方塊交換可以硬體方式(硬體控制模式)或軟體方式 (軟體控制模式)進行; 在硬體控制模式下,記憶體方塊以既定順序進行交 換。 有關於下次要交換之記憶體方塊之資訊係存於該g己 憶體方塊寫入位址儲存暫存器2612內。該記憶體載入控制 器2602參考存於該記憶體方塊寫入位址儲存暫存器2612 11330pifl.doc 67 內之資訊,產生要輸入至第24圖之該代表性位址暫存器 24〇2a〜24〇2n之第一〜第n代表性位址以及要輸入至第25 圖之該位址變換器2204之該寫入位址。 待交換記憶體方塊係由該記憶體方塊寫入位址儲存 暫存器2612通知。該記憶體載入控制器26〇2參考存於該 記憶體方塊寫入位址儲存暫存器2612之資訊來從該代表性 位址暫存器2402a〜2402η選出一記億體方塊。該記憶體方 塊與該代表性位址暫存器2402a〜2402η具一對一關係。 該高階位址產生器2604參考該外部位址而產生要存 於被選之該代表性位址暫存器內之一代表性位址。特別 是’該高階位址產生器2604取出該外部位址之該高階位址 而產生該代表性位址。產生之該代表性位址係輸出至被選 之該代表性位址暫存器。 該低階位址產生器2606在該記憶體載入控制器2602 之控制下產生要輸出至該位址變換器2204之一寫入位址。 該低階位址產生器2606之初始値爲”0”,且每次資料從該 外部記憶體載入時,該低階位址產生器2606之値會加1。 該快取記憶體2200用以存取該外部記憶體(比如該主 記憶體2300)之該外·部位址係由合倂該高階位址產生器 2604所產生之該高階位址與該低階位址產生器26〇6所產 生之該低階位址而得。 該記憶體載入控制器2602產生一外部記憶體控制信 號,比如,一讀取/寫入信號。 第27圖顯示第22圖之該快取裝置於硬體控制模式下 11330pifl.doc 68 之操作流程。第27圖顯示記憶體方塊依第一記憶體方塊至 第η記憶體方塊之順序依序交換之記憶體方塊操作之最簡 單例。 在步驟S2702中,進行初始載入◦該初始載入係由將 於底下描述之一初始載入控制信號驅動且執行於系統之初 始階段中。 在指定該初始載入後,在步驟S2704中,資料載入於 該第一記憶體方塊內。亦即,多達一個方塊之資料從第21A 圖之該主記憶體2300讀出並載入於該內部記憶體22006之 該第一記憶體方塊內。 在步驟S2706中,第二方塊視爲一寫入方塊。有關於 此寫入方塊判斷之資訊係存於該記憶體方塊寫入位址儲存 暫存器2612內。 在步驟S2708中,決定是否偵測到不相等。如果第24 圖之該相等偵測器2406所產生之該相等偵測信號代表不相 等,則決定爲已偵測到不相等。 在步驟S2710中,參考第26圖之該控制模式暫存器 2608內之內容來決定是否應用硬體控制模式。 如果應用硬體控制模式,在步驟S2712與S2714中決 定一讀取方塊是否相同於一寫入方塊◦執行步驟S2712與 S2714是爲避免誤寫。 在步驟S2716中,決定待寫入方塊是否可寫入。可參 考第2 6圖之該記憶體方塊寫入模式暫存器2 61 0來做此決 定◦如果決定待寫入方塊設爲不可寫入,在步驟S2718中, 11330pifl.doc 69 ί年月日 下一記憶體方塊設爲一寫入方塊。 待寫入方塊設爲可寫入,在步驟S272〇中,資料載入 於該寫入方塊內◦亦即,多達〜個方塊之資料從第21A圖 之該主記憶體23 00讚出並載入於該內部記憶體22〇〇6之一一 寫入記憶體方塊內。 在步驟S〗722中,將下—記憶體方塊設成一寫入方塊。 現將描述根據軟體控制模式之方塊交換。在軟體控制 f旲式下,彳寸父換記彳思體方塊係根據爲軟體方式之所有事件 來決定。 如果應用軟體控制模式,可避免覆寫到具高命中率之 g己憶體方塊或具重要貧料之記憶體方塊。因此,可有效操 作該快取記憶體2200。 當應用硬體控制模式時,該高階位址產生器2604只 是一個緩衝記憶體。然而,當應用硬體控制模式時,該高 階位址產生器2604扮演重要角色。 第28圖顯示第22圖之一快取裝置22〇〇於軟體控制 模式下之操作流程。在第28圖之軟體控制模式下,不論該 記憶體方塊寫入位址儲存暫存器2612之內容爲何,所有記 1意體方塊都設爲可寫入,且各記憶體方塊之可寫入模式可 以軟體方式來完全管理。此外,可只執行指令而不決定是 否相等來將資料載入於該內部記憶體2206內。 在步驟S2802中,進行初始載入。該初始載入係由將 於底下描述之一初始載入控制信號驅動且執行於系統之初 始階段中。 11330pifl.doc 70 1225640
在指定該初始載入後,在步驟S2804中,資料載入於 該第一記憶體方塊內。亦即,多達一個方塊之資料從第21 A 圖之該主記憶體2300讀出並載入於該內部記憶體22006之 該第一記憶體方塊內。 在步驟S2 806中,第二方塊視爲一寫入方塊。 在步驟S2808中,設定軟體控制模式。在軟體控制模 式下,不論該記憶體方塊寫入位址儲存暫存器2612之內容 爲何,所有記憶體方塊都設爲可寫入,且各記憶體方塊之 可寫入模式可以軟體方式來完全管理。此外,也可以只執 行指令而不決定是否相等來將資料載入於該內部記憶體 22006 內◦ 在步驟S2810中,決定是否已收到一載入指令。 在步驟S2812中,決定是否已設定軟體控制模式。 在步驟S2814中,從一外部記憶體讀出之資料載入於 該內部記憶體22006內。 在步驟S2816中,下一次要將資料載入之一記憶體方 塊係設爲一寫入方塊◦下一次要將資料載入之該記憶體方 塊係以軟體方式決定,故而該記憶體方塊不必相鄰著該第 二記憶體方塊。 ·‘ 要使用硬體控制模式或軟體控制模式是由第26圖之 該控制模式暫存器2608決定◦如果該控制模式暫存器2608 指定軟體控制模式,存於該記憶體方塊寫入位址儲存暫存 器2612內之資訊係被忽略,而待交待記憶體方塊係由特殊 程式決定。 11330pifl.doc 71 1225640 蔓正麵_藤·哥 年月 曰 特別是,待交待記憶體方塊係由一外部控制器所提供 之指令或控制信號決定。在此,該外部控制器一般爲CPU, 但不受限。該指令是微處理器級之指令,比如操作碼 (OPcode) 〇 現將描述根據外部控制器所提供之指令來進行之方 塊交換操作。第29圖顯示方塊交換之指令字元之一例。位 於第29圖之頂端之該指令字元之第一例包括用以指定一方 塊交換操作之一運算元(operand),一目的(destination)與一 來源(somxe)。在此,該來源代表一外部記憶體,而該目的 代表一內部記憶體。 亦即,在該指令字元之第一例內,在一外部記憶體與 一內部記憶體間有多達一記憶體方塊儲存容量之資料在進 行交換。該資料交換可爲從該內部記憶體載入資料至該內 部記憶體,反之亦然。 位於第29圖之底部之該指令字元之第二例包括用以 指定一方塊交換操作之一運算元,一目的,一來源以及方 塊數量。 亦即,在該指令字元之第二例內,在一外部記憶體與 一內部記憶體間有高達指定數量之記憶體方塊之儲存容量 之資料在進行交換。 現將描述根據一控制信號來進行之方塊交換操作。在 此,該控制信號代表由一內部控制器所產生之信號,用以 控制快取記憶體。將於底下描述,顯然地,實施第22圖之 該快取記憶體2200之一模組包括:解碼一控制指令並控制 1 1330pifl.doc 72 1225640
該快取記憶體2200之一內部控制器22101。此種利用一內 部控制器來實施快取記憶體之一模組可獨立地控制快取。 在第26圖之該字元儲存控制器2208內,一初始載入 信號當成一重設信號’且該信號產生於系統之初始操作階 段內。當產生該初始載入信號時,該記憶體載入控制器2602 初始化該系統,且從該主記憶體2300讀取既定資料並載入 至於該內部記憶體2206內。待初始載入之資料可爲具最常 使用頻率與最高優先順序之資料,比如,一處理控制方塊。 第26圖之該記憶體方塊寫入模式暫存器2610係將各 記憶體方塊設爲可寫入/不可寫入。該記憶體方塊寫入模式 暫存器2610內之資訊係可被硬體控制模式及軟體控制模式 參考。如果參考該記憶體方塊寫入模式暫存器2610內之資 訊而將一記憶體方塊設爲不可寫入,可從該記憶體方塊讀 取資料並不能寫入至該記憶體方塊。 在此,設爲不可寫入之記憶體方塊是不可交換的。 .比如,在初始載入中,從第21A圖之該主記憶體2300 讀出之資料量有關於一方塊之既定資料係載入至該內部記 憶體2206之該第一記憶體方塊。該第一記憶體方塊設爲不 可寫入。 第30圖顯示第22圖之匯流排介面(I/F)22 10之架構。 如第3 0圖所示,記憶體方塊之輸出係透過一多工器或二狀 緩衝器而連接至一匯流排。匯流排I/F可包括一栓鎖器或一 匯流排保持器(bus holder)。 在此,該匯流排保持器避免匯流排進入浮接狀態’且 11330pifl.doc 73
包括如第30圖所示之一傳統緩衝器。該匯流排保持器具有 彼此連接之兩反相器使得一反相器之輸入至耦合至另一反 相器之輸出,而一反相器之輸出至耦合至另一反相器之輸 入。輸入至具此種架構之該匯流排保持器之信號會由於此 兩反相器之緣故而維持於相同狀態。因此’該匯流排保持 器可避免匯流排進入浮接狀態。 匯流排進入浮接狀態意味著未決定信號之電位。比 如,MOS電晶體之閘極可連接至該匯流排。在此例下’大 量電流係消耗於〇與1間之轉態區。當匯流排進入浮接狀 態時,信號之電位設定於轉態區內◦因此,大量功率會透 過該MOS電晶體而消耗。 根據本發明實施例,如第22圖所示,第4圖之該 PMIF422包括一快取記憶體◦該PMIF422透過該控制指令 匯流排(OPcode匯流排〇與1)而接收一控制指令’解碼該 控制指令,並根據本發明實施例而控制該快取記憶體以執 行快取操作。同時,資料透過兩讀取匯流排442與444而 輸入並透過寫入匯流排446而輸出◦另,該PMIF422之一 控制器(未示出)解碼所接收之控制指令並控制該快取記憶 體來執行方塊交換。 第31圖顯示一習知快取記憶體之一例,此乃揭露於 曰本專利公告號he: 10-214228中。第31圖之該快取記憶體 能讓使用者決定該快取記憶體可否使用語音辨識裝置之主 記憶體。可以硬體或軟體方式來決定。特別是,該快取記 憶體安裝於CPU之快取致能輸入端,只有當具一快取致能 1 1330pifl.doc 74 1225640
信號與各記憶體方塊之可快取(cacheable)資訊之一頁表之 兩側都是可快取的時候,該快取記憶體才能操作。 然而,在第21 A圖之該裝置中,當更新一內部記憶體 之記憶體方塊時,利用一記憶體方塊寫入位址儲存暫存器 來更新之一記憶體方塊可用硬體或軟體方式來選擇。依 此,第31圖之該快取記憶體不同於第21A圖之該裝置。 第32圖顯示一習知快取記憶體之另一例,此乃揭露 於曰本專利公告號sho60-1 83 65 2中。在第32圖之該快取記 憶體內,記憶體方塊能否更新係利用記憶資料以逐方塊式 存於主記憶體之一單位及記憶該主記憶體之位址之一單位 而以軟體方式控制一記憶體方塊更新控制旗標(flag),該旗 標稱爲標籤(tag)。 然而,在第21A圖之該裝置中,各記憶體方塊可用硬 體或軟體方式來控制用以更新記憶體方塊之一選擇指標, 比如一記憶體方塊寫入位址儲存暫存器。因此,第32圖之 該快取記憶體不同於第21 A圖之該裝置。 第3 3圖顯不一習知快取記憶體之又一例,此乃揭露 於曰本專利公告號hd6-67976中。第33圖之該快取記憶體 利用存於主記憶體內:之一微程式(micro-program)來改良指 令字元快取之性能。 特別是,在第33圖之該快取記憶體中,方塊載入、 更新預防與方塊載入預防之頻率係分別由三種微程式指令 字元來控制,此三種微程式指令字元所具之高等重要性, 中等重要性與低等重要性在處理硬體之控制軟體之前,當 11330pifl.doc 75
1225640 下與之後皆是獨立的。 相比於第21 A圖之該裝置,本發明實施例之快取記憶 體可用硬體與軟體方式來決定是否要更新記憶體方塊,且 也可只執行排優先順序或改變指令之方法。 第34圖顯示一習知快取記憶體之又另一例,此乃揭 露於日本專利公告號sho63-86048中◦第34圖之該裝置根 據快取之區域而將資料分成動態配置之資料與靜態配置之 資料,因而改善快取之命中率。 特別是,需要經常更新之動態資料係存於該快取記憶 體之第一區內,且該第一區係以硬體方式一次更新數個字 元。靜態資料係存於該快取記憶體之第二區內,且該第二 區係以軟體方式一次更新數個字元。 然而,本發明實施例之快取記憶體可決定各記憶體方 塊之資料是否爲動態配置或靜態配置因此,可彈性建構語 音辨識裝置。 .如上述,在既定處理系統中之本發明實施例之快取記 憶體可將中斷反應時間減至最低。另,本發明實施例之快 取記憶體可用硬體控制方法與軟體控制方法來執行數種快 取方法。 : 甚至,相比於包括約10000個閘數,本發明實施例之 快取記憶體可包括約2500個閘釋,故而適用於VLSI。因 而,可增強產量並降低製造成植。 本發明實施例之語音辨識裝置包括用以執行語音辨 識常用計算之專用計算裝置,因而大大地改良語音辨識之 11330pifl.doc 76 1225640 t正替換頁 計算速度。 此外,本發明實施例之語音辨識裝置適合於能輕易改 變操作並快速處理語音之一軟體系統。 本發明實施例之語音辨識裝置應用2條讀取1條寫入 實施方式,因而適合於一般用途處理器。 本發明實施例之語音辨識裝置以SOC方式製成,因而 能增強系統性能並降低電路板之體積。故而,可降低製造 成本。 甚至,本發明實施例之語音辨識裝置包括模組化之專 用計算裝置,各裝置透過一指令字元匯流排來接收指令字 元並利用內建解碼器來解碼該指令字元以執行操作。因 此,本發明實施例之語音辨識裝置能改良性能,故而能在 低時脈下執行語音辨識。 本發明實施例之觀察機率計算裝置可利用HMM搜尋 方法來有效執行最長使用之觀察機率計算。 .用以執行HMM搜尋方法之專用觀察機率計算裝置可 增加語音辨識速度並減少所用指令字元之數量至50%,相 比於不用專用觀察機率計算裝置之情況。因而,如果在既 定時期內執行一操作<‘,該操作可在低時脈、功率消耗減半 的情況下執行。 此外,該專用觀察機率計算裝置可根據HMM而使用 機率計算。 本發明實施例之FFT計算裝置可將FFT計算所需周期 數量降低至4-5周期,故而降低FFT計算所需時間。 11330pifl.doc 77
此外’因爲本發明實施例之FFT計算裝置可相容於— 般用途之3條匯流排系統,LSI系統可輕易應用至Ip,' 提供相當大的工業效應。 本發明實施例之快取記憶體可降低即時處理系統對 中之反應時間。另,本發明實施例之快取記憶體可用硬 體控制方法與軟體控制方法來執行數種快取方法f 甚至’因爲本發明實施例之快取可實施於體積相當小 之邏輯電路內,可改良產量並降低製造成本。 雖然本發明已以數較佳實施例揭露如上,然其並非用 以限定本發明,任何熟習此技藝者,在不脫離本發明之精 神和範圍內,當可作些許之更動與潤飾,因此本發明之= 護範圍當視後附之申請專利範圍所界定者爲準。 圖式簡單說明_ 第1圖是習知語音辨識系統之方塊圖; 第2圖顯不得到音節之狀態順序之方法; 第3圖顯示字元辨識處理; 收一控 第4圖是本發明實施例之語音辨識裝置之方塊圖· 第5圖顯示在第4圖之該語音辨識裝置內之接 制指令與資料之操作方塊圖; 控 第6圖顯示在第4圖之該語音辨識裝置內之接 制指令與資料之操作時序圖; 第7圖顯示用於本發明實施例之語音辨識裝 察機率計算裝置之方塊圖; 第8圖顯示利於了解選擇位元解析度; 11330pifl.doc 78
第9圖顯示用以進行2根(radix 2)之複變FFT之裝置 之基本架構; 第10圖顯示用於本發明實施例之語音辨識裝置中之 複變FFT計算裝置之方塊圖; 第11圖顯示第10圖之複變FFT計算裝置之時序圖; 第12圖顯示方塊固定式演算法之流程圖; 第13圖顯示係數固定式演算法之流程圖; 第14圖顯示執行指令FFTFR之時序圖; 第15圖顯示執行指令FFTSR指令之時序圖; 第16A與16B圖顯示習知FFT計算裝置; 第17圖顯示另一種習知FFT計算裝置; 第18圖顯示又一種習知FFT計算裝置; 第19圖顯示又另一種習知FFT計算裝置; 第20圖顯示使用第10圖之該複變FFT計算裝置對 256點資料方塊進行FFT計算之結果; .第21A與21B圖顯示用於本發明實施例之語音辨識裝 置中之控制一快取裝置之方法之方塊圖; 第22圖顯示用於本發明實施例之語音辨識裝置中之 一快取裝置之方塊圖。 第23圖顯示在第22圖之快取裝置中之內部記憶體之 儲存內容; 第24圖更詳細顯示第22圖之比較器之方塊圖; 第25圖顯示第22圖之位址變換器之方塊圖; 第26圖顯示第22圖之指令字元控制器之方塊圖; 1 1330pifl.doc 79 1225640
第27圖顯示第22圖之該快取裝置於硬體控制模式下 之操作流程; 第28圖顯示第22圖之該快取裝置於軟體控制模式下 之操作流程; 第29圖顯示方塊交換之指令字元之一例; 第30圖顯示第22圖之匯流排介面(I/F)之架構; 第31圖顯示一習知快取記憶體之一例; 第32圖顯示一習知快取記憶體之另一例; 第33圖顯示一習知快取記憶體之又一例;以及 第34圖顯示一習知快取記憶體之又另一例。 B式標示說明: 101 類比數位變換器 102 預加強單元 103 能量計算方塊 104 找終點單元 105 緩衝單元 106 梅爾(mel)濾波器 107 IDCT單元 108 大小調整單元 109 倒頻視窗單元 1 10 正規器 111 動態特徵値單元 1 12 觀察機率計算單元 1 13 狀態機台 11330pifl.doc 80 1225640 93_ 10. - 线 __________ ...... α. 114 :最大可能性尋找器 402 :控制單元 404 :暫存器檔單元 406 :算術運算單元 408 :乘法與累積單元 410 :多位元移位器 412 : FFT 單元 414 :平方根計算器 4 1 6 · g十時益 418 :時脈產生器 420 : ΡΜΕΜ
422 : PMIF
424 : EXIF
426 : MEMIF
428 : HMM
430 : SIF
432 : UART
434 : GPIO
436 : CODECIF
440 : CODEC 442,444,446,448,450 :匯流排 452 :外部匯流排 70L外部記憶體 702,703,704,709 :暫存器 81 11330pifl.doc 1225640 93· R-8 705,1016 :減法器 706,1018,1020 :乘法器 707 :平方器 708 :累積器 1002,1004 :輸入暫存器 1006,1008 :係數暫存器 1014 :加法器 1010,1012,1032 :多工器 1024,1026,1028,1030 :儲存暫存器 1034,22002 :控制器 1036 :輸出暫存器
2100 : CPU 2200 :快取記憶體 2202,2404a〜2404η :比較器 2204 :位址變換器 2206,22006 :內部記憶體 2208 :指令字元儲存控制器 2210 :匯流排介面 2300 :主記憶體 ·‘ 2400 :快取控制程式 2402a〜2402η :代表性位址暫存器 2406 :相等偵測器 2602 :記憶體載入控制器 2604 :高階位址產生器 82 11330pifl.doc 1225640 93.10.-8 2606 :低階位址產生器 2608 :控制模式暫存器 2610,22008 :記憶體方塊寫入模式暫存器 2612 :記憶體方塊寫入位址儲存暫存器 22004 :寫入方塊儲存暫存器 22008 :記憶體方塊寫入模式暫存器 22101 :內部控制器 24002 :更新指標器 83 11330pifl.doc

Claims (1)

1225640 十、申請專利範圍: 1.一種語音辨識裝置,從一輸入語音信號取出一已決 定信號區,從該已決定信號區取出用於語音辨識之特徵 値,比較該特徵値與=預存字元之特徵値,並將具最大機 率之一字元辨識成一輸入語音,該語音辨識裝置包括: 一 CODEC(編碼器/解碼器),取樣從一麥克風輸入之 一語音信號,對取樣資料區分割成方塊且在既定時間輸出; 一暫存器檔單元,緩衝從該CODEC接收之有關於該 已決定語音區之資料方塊; 11330pifl.doc 83 一快速傅立葉變換(FFT)單元,將從該暫存檔器單元輸 出之該資料方塊變換至頻域或進行頻域變換之一逆操作, 並儲存該變換結果於該暫存檔器單元內; 一觀察機率計算模組,根據該FFT單元所得之頻譜而 比較從該輸入語音信號取出之該特徵値與一預存字元之音 位之特徵値以計算一觀察機率; 一程式記憶體,從該CODEC輸出之該資料方塊取出 有關於該已決定語音區之資料方塊,將所取出之該資料方 塊存於該暫存器檔單元中,從存於該暫存器檔單元中內之 該頻譜計算一隱藏馬可夫模型(HMM)之特徵値,並根據該 觀察機率計算模組所計算之各音位之觀察機率而儲存一語 音辨識程式;以及 一控制單元,利用存於該程式記憶體內之該語音辨識 程式來控制該語音辨識裝置之操作。 2. 如申請專利範圍第1項所述之語音辨識裝置,更包 括:‘ 兩讀取匯流排; 一寫入匯流排;以及 一指令字元匯流排,傳輸一指令至該語音辨識裝置。 3. 如申請專利範圍第2項所述之語音辨識裝置,其中 該FFT單元與該觀察機率計算模組各具有一控制器,以解 碼透過該指令字元匯流排接收之一指令字元並控制待執行 之該指令字元之所指定之操作。 4. 如申請專利範圍第1項所述之語音辨識裝置,更包 11330pifl.doc 84 1225640 括一快取記憶體,從該程式記憶體讀取預期下次需要之一 串指令字元,儲存該些指令字元,並輸出該些指令字元至 該控制單元。 5. 如申請專利範圍第4項所述之語音辨識裝置,其中 存於該快取記憶體內之該些指令字元係中斷向量及中斷服 務程序。 6. 如申請專利範圍第4項所述之語音辨識裝置,其中 一旦初始化後,初始化該快取記憶體以將該些指令字元載 入於該程式記憶體之既定區內。 7. 如申請專利範圍第4項所述之語音辨識裝置,其中 控制該快取記憶體之一程式係載入於該程式記憶體內並控 制該快取記憶體以執行方塊交換。 8. 如申請專利範圍第1項所述之語音辨識裝置,更包 括一記憶體介面,做爲程式與從一外部記憶體輸出之資料 之介面。 .9.如申請專利範圍第8項所述之語音辨識裝置,更包 括一外部介面,接收從該語音辨識裝置輸出之需求以存取 該外部記憶體,對該些需求排優先順序,並根據該些需求 之該優先順序連接至語音辨識裝置至該外部記憶體。 10. 如申請專利範圍第1項所述之語音辨識裝置,更包 括一乘法與累積單元,該乘法與累積單元之操作係有關於 該觀察機率計算模組並重複地進行必需之乘法與累積以計 算一觀察機率。 11. 如申請專利範圍第1項所述之語音辨識裝置,更包 1 1330pifl.doc 85 1225640 93』λ - :-ν:: 括一時脈產生器,產生要輸入至該語音辨識裝置之一時脈 信號,其中該時脈產生器降低該時脈信號之頻率以達低功 率消耗。 12. —種觀察機率計算裝置,用於一語音辨識裝置內, 該觀察機率計算裝置計算在語音辨識時可各別觀察之既定 字元之音位之機率,該觀察機率計算裝置包括: 一記憶體,儲存從音位樣本得到之參數平均値及該平 均値之散佈度(l/σ ),其中該散佈度是一準確度; 一減法器,計算從該記憶體得到之該平均値與從待辨 識之一語音信號得到之一特徵値間之差;以及 一乘法器,將該減法器之該輸出乘上該記憶體輸出之 該散佈度。 13. 如申請專利範圍第12項所述之觀察機率計算裝 置,其中1代表一音位之一代表性類型之指標,而:i代表一 音位之參數數量之指標,該記憶體儲存一 precision[i][j]與 一 meanfnU]並將之依既定順序輸出該減法器,該減法器依 該既定順序計算該mean[i][j]與一 feature[i][j]間之差値,且 該乘法器依該既定順序將該減法器所計算之該差値乘上該 precision[i][j] ° 14. 如申請專利範圍第13項所述之觀察機率計算裝 置,更包括一平方器,將該乘法器之該乘法結果平方。 15. 如申請專利範圍第14項所述之觀察機率計算裝 置,更包括一暫存器,分別暫存該precnsicmnHj],該 mean[i][j]與該 feature[i][j]。 11330pifl.doc 86 1225640
16. 如申請專利範圍第14項所述之觀察機率計算裝 置,更包括一累積器,累積該平方器之輸出。 17. 如申請專利範圍第16項所述之觀察機率計算裝 置,更包括一暫存器,暫存該累積器之該累積結果。 18. —種複變FFT(快速傅立葉變換)計算裝置,計算包 括一第一實數與一第一虛數之第一複數資料之複變FFT及 包括一第二實數與一第二虛數之第二複數資料之複變 FFT,該複變FFT計算裝置包括: 第一與第二輸入暫存器,載入該第一與第二實數及該 第一與第二虛數; 第一與第二係數暫存器,分別載入一正弦係數與一餘 弦係數; 一加法器與一減法器,分別對存於該第一與第二輸入 暫存器之該些値進行加法與減法; 第一與第二乘法器,分別將該減法器之該輸出乘上該 第一係數暫存器之該輸出以及將該減法器之該輸出乘上該 第二係數暫存器之該輸出; 第一與第二儲存暫存器,儲存該第一乘法器之該輸 出,以及第三與第四儲存暫存器,儲存該第二乘法器之該 輸出; 第一與第二多工器,分別控制輸入至該加法器與該減 法器之該第一〜第四儲存暫存器之該輸出之路徑; 一輸出暫存器,儲存該FFT計算之結果; 一第三多工器,提供該加法器之輸出與該減法器之輸 11330pifl.doc 87 出之一至該輸出暫存器;以及 一控制器,控制該第一〜第三多工器之選擇操作,該 加法器之加法操作,該減法器之減法操作,該乘法器之乘 法操作,及該第一〜第四儲存暫存器之儲存操作。 19. 如申請專利範圍第18項所述之複變FFT計算裝 置,更包括: 一第一讀取匯流排,輸出該第一實數或該第一虛數至 該第一輸入暫存器並輸出該正弦係數至該第一係數暫存 器; 一第二讀取匯流排,輸出該第二實數或該第二虛數至 該第二輸入暫存器並輸出該餘弦係數至該第二係數暫存 器;以及 一寫入匯流排,將形成載入於該輸出暫存器內之一所 得複變FFT結果之一實數部份與一虛數部份輸出。 20. —種計算包括一第一實數與一第一虛數之第一複 數資料之複變FFT(快速傅立葉變換)及包括一第二實數與 一第二虛數之第二複數資料之複變FFT之方法,該方法包 括下列步驟: (a) 分別透過第=與第二讀取匯流排而分別載入一正 弦係數與一餘弦係數於第一與第二係數暫存器內之步驟; (b) 透過該第一讀取匯流排載入該第一實數於一第一 輸入暫存器內,透過該第二讀取匯流排載入該第二實數於 一第二輸入暫存器內,利用一減法器計算該第一與第二實 數間之差値,將該減法器之該輸出乘上該第一係數暫存器 11330pifl.doc 88 之該正弦係數’儲存該乘法結果於一第一儲存暫存器內’ 將該減法器之該輸出乘上該第二係數暫存器之該餘弦係 數,並儲存該乘法結果於一第二儲存暫存器內之步驟; (C)透過該第一讀取匯流排載入該第一虛數於該第一 輸入暫存器內,透過該第二讀取匯流排載入該第二虛數於 該第二輸入暫存器內,利用該減法器計算該第一與第二虛 數間之差値,將該減法器之該輸出乘上該第一係數暫存器 之該正弦係數,儲存該乘法結果於一第三儲存暫存器內, 將該減法器之該輸出乘上該第二係數暫存器之該餘弦係 數,並儲存該乘法結果於一第四儲存暫存器內之步驟; (d) 利用該減法器計算存於該第二儲存暫存器內之該 値與存於該第三儲存暫存器內之該値之差値以得到一複變 FFT之一實數部份並儲存該實數部份於一輸出暫存器之步 驟;以及 (e) 利用一加法器計算存於該第一儲存暫存器內之該 値與存於該第四儲存暫存器內之該値之總和以得到一複變 FFT之一虛數邰份並儲存該虛數部份於一輸出暫存器之步 驟。 21.如申請專利範圍第20項所述之方法,更包括: (0在步驟(d)或(e)時,載入下次操作所用之一係數於 談第一與第二係數暫存器內之步驟。 22·如申請專利範圍第20項所述之方法,其中步驟 (a)〜(e)之各步驟係執行於一個周期內。 23.如申請專利範圍第2〇項所述之方法,其中在步驟 H330pifl.doc 89 93*^0. -g, j J::.一…;:]」:ij (a) 中,該正弦係數透過該第一讀取匯流排載入於該第一係 數暫存器內;而該餘弦係數透過該第二讀取匯流排載入於 該第二係數暫存器內。 24. 如申請專利範圍第20項所述之方法,其中在步驟 (b) 中,該第一實數透過該第一讀取匯流排載入於該第一輸 入暫存器內;而該第二實數透過該第二讀取匯流排載入於 該第二輸入暫存器內。 25. 如申請專利範圍第20項所述之方法,其中在步驟 (c) 中,該第一虛數透過該第一讀取匯流排載入於該第一輸 入暫存器內;而該第二虛數透過該第二讀取匯流排載入於 該第二輸入暫存器內。 26. 如申請專利範圍第20項所述之方法,更包括: (g) 每次在構成該複變FFT計算之(N/2)log(N)階之各 階中對一資料方塊進行FFT計算時,載入係數之步驟;其 中N代表各資料方塊之資料數,而目前階所需之資料方塊 數是前一階所需之資料方塊數的2倍。 27. 如申請專利範圍第20項所述之方法,更包括: (h) 每次一資料方塊受到FFT計算時,載入各階所需係 數並參考所載入係數:之步驟,其中該複變FFT計算包括 (N/2)log(N)階,N代表各資料方塊之資料數,而目前階所 需之資料方塊數是前一階所需之資料方塊數的2倍。 28. —種記錄媒介,儲存有用於計算包括一第一實數與 一第一虛數之第一複數資料之複變FFT(快速傅立葉變換) 及包括一第二實數與一第二虛數之第二複數資料之複變 11330pifl.doc 90 i〇# -g FFT之一電腦程式,該電腦程式包括下列步驟: (a) 分別透過第一與第二讀取匯流排而分別載入一正 弦係數與一餘弦係數於第一與第二係數暫存器內之步驟; (b) 透過該第一讀取匯流排載入該第一實數於一第一 輸入暫存器內,透過該第二讀取匯流排載入該第二實數於 一第二輸入暫存器內,利用一減法器計算該第一與第二實 數間之差値,將該減法器之該輸出乘上該第一係數暫存器 之該正弦係數,儲存該乘法結果於一第一儲存暫存器內’ 將該減法器之該輸出乘上該第二係數暫存器之該餘弦係 數,並儲存該乘法結果於一第二儲存暫存器內之步驟; (c) 透過該第一讀取匯流排載入該第一虛數於該第一 輸入暫存器內,透過該第二讀取匯流排載入該第二虛數於 該第二輸入暫存器內,利用該減法器計算該第一與第二虛 數間之差値,將該減法器之該輸出乘上該第一係數暫存器 之該正弦係數,儲存該乘法結果於一第三儲存暫存器內’ 將該減法器之該輸出乘上該第二係數暫存器之該餘弦係 數,並儲存該乘法結果於一第四儲存暫存器內之步驟; (d) 利用該減法器計算存於該第二儲存暫存器內之該 値與存於該第三儲存暫存器內之該値之差値以得到一複變 FFT之一實數部份並儲存該實數部份於一輸出暫存器之步 驟;以及 (e) 利用一加法器計算存於該第一儲存暫存器內之該 値與存於該第四儲存暫存器內之該値之總和以得到一複變 FFT之一虛數部份並儲存該虛數部份於一輸出暫存器之步 11330pifl.doc 91 1225640 93* 10. ~ 8 驟。 29. —種快取記憶體,從一外部記憶體讀取一中央處理 單元之下次預期所需之一串資料,儲存該資料,且在該中 央處理單元存取該外部記憶體之前先被存取,該快取記憶 體包括: 一內部記憶體,儲存已存於該外部記憶體內之資料以 及存於該外部記憶體內之資料之位址; 一比較器,比較用以存取該外部記憶體之外部位址以 及存於該內部記憶體之該外部位址以產生代表相等或不相 等之一相等代表信號; 一位址變換器,根據用以存取該外部記憶體之該外部 位址、從一指令字兀儲存控制器接收之一寫入位址以及各 外部位址之一高階位址以產生用以存取該內部記憶體之一 內部位址並產生一內部記憶體讀取/寫入控制信號;以及 該指令字元儲存控制器,控制存於該外部記憶體內之 資料以載入於該內部記憶體,其中該控制可自發生完成或 回應於從該快取記憶體外部接收之一指令而完成。 30. 如申請專利範圍第29項所述之快取記憶體,其中 該比較器包括: ‘‘ 代表性位址暫存器,各暫存器儲存有存於各記憶體方 塊內之該外部位址中之一表頭位址,該內部記憶體係分割 成各記憶體方塊;以及 代表性位址比較器,比較用於存取該外部記憶體之該 外部位址及存於該代表性位址暫存器內之該表頭位址。 11330pifl.doc 92 1225640
31. 如申請專利範圍第30項所述之快取記憶體,其中 各代表性位址暫存器儲存從該內部記憶體之各記憶體方塊 之該外部位址得到之該表頭位址之一高階位址。 32. 如申請專利範圍第31項所述之快取記憶體,其中 該代表性位址暫存器之數量與該比較器之數量係相等於該 內部位址之記憶體方塊之數量。 33. 如申請專利範圍第32項所述之快取記憶體,更包 括一相等偵測器,接收該位址比較器輸出之選擇信號,如 果任一選擇信號代表相等的話,產生代表一快取命中之該 相等偵測信號。 34. 如申請專利範圍第30項所述之快取記憶體,其中 當存於該外部記憶體內之資料載入於該內部記憶體時,包 括於該資料內之外部位址係在該指令字元儲存控制器之控 制下存於該代表性位址暫存器內。 35. 如申請專利範圍第31項所述之快取記憶體,其中 當存於該外部記憶體內之資料載入於該內部記憶體時,包 括於該資料內之各外部位址之該高階位址係在該指令字元 儲存控制器之控制下存於該代表性位址暫存器內。 36. 如申請專利範圍第29項所述之快取記憶體,其中 該指令字元儲存控制器包括: 一高階位址產生器,產生用於存取該外部記憶體之各 外部位址之一高階位址並將該高階位址當成代表性位址而 輸出至該比較器,使得當存於該外部記憶體內之資料載入 於該內部記憶體時,該代表性位址係於該比較器內比較; 11330pifl.doc 93 一低階位址產生器,產生用於存取該外部記憶體之各 外部位址之一低階位址並,當存於該外部記憶體內之資料 載入於該內部記憶體時,將該低階位址當成寫入位址而輸 出至該位址變換器;以及 一記憶體載入控制器,控制該高階位址產生器與該低 階位址產生器自發性或回應於一外部指令字元與一控制信 號使得存於該外部記憶體內之該資料載入於該內部記憶 體,產生該外部記憶體之一讀取控制信號,並控制該高階 位址產生器所產生之該高階位址存於該比較器內。 37. 如申請專利範圍第36項所述之快取記憶體,其中 該記憶體載入控制器接收該比較器輸出之該相等偵測信號 以決定是否發生快取命中;而且如果發生快取錯失的話, 控制該內部記憶體之載入操作。 38. 如申請專利範圍第37項所述之快取記憶體,更包 括一記憶體方塊寫入位址儲存暫存器,儲存該內部記憶體 之寫入方塊資訊,其中該記憶體載入控制器參考存於該記 憶體方塊寫入位址儲存暫存器內之該寫入方塊資訊來執行 一內部記憶體載入操作;在該內部記憶體載入操作完成之 後,根據一既定規則·來計算下一次要載入於該內部記憶體 之一寫入方塊;並儲存所計算出之該寫入方塊於該記憶體 方塊寫入位址儲存暫存器內。 39. 如申請專利範圍第38項所述之快取記憶體,更包 括一控制模式暫存器,儲存該記憶體載入控制器之控制模 式資訊,其中如果存於該控制模式暫存器內之該控制模式 1 1330pifl.doc 94 資訊代表一硬體模式,該記憶體載入控制器取決於該相等 偵測信號之値而控制該內部記憶體之一載入操作。 40. 如申請專利範圍第39項所述之快取記憶體,其中 如果存於該控制模式暫存器內之該控制模式資訊代表一軟 體模式,該記憶體載入控制器忽略存於該記憶體方塊寫入 位址儲存暫存器之該寫入方塊資訊。 41. 如申請專利範圍第37項所述之快取記憶體,更包 括一記憶體方塊寫入模式暫存器,儲存該內部記憶體之各 記憶體方塊之寫入模式資訊,其中該記憶體載入控制器參 考存於該記憶體方塊寫入模式暫存器內之各記憶體方塊之 該寫入模式資訊來控制該內部記憶體之一載入操作;在該 內部記憶體載入操作完成後,根據一既定規則來計算各記 憶體方塊之該寫入模式資訊;並儲存所計算出之各記憶體 方塊之該寫入模式資訊於該記憶體方塊寫入模式暫存器 內。 .42.如申請專利範圍第41項所述之快取記憶體,更包 括一控制模式暫存器,儲存該記憶體載入控制器之控制模 式資訊,其中如果存於該控制模式暫存器內之該控制模式 資訊代表一硬體模式該記憶體載入控制器取決於該相等 偵測信號之値而控制該內部記憶體之一載入操作;而如果 存於該控制模式暫存器內之該控制模式資訊代表一軟體模 式,該記憶體載入控制器解譯從該快取記憶體外部接收之 一指令並根據所解譯出之該指令而控制該內部記憶體之一 載入操作。 1 1330pifl.doc 95 1225640 (J3.10· - 8 43. 如申請專利範圍第42項所述之快取記憶體,其中 如果存於該控制模式暫存器內之該控制模式資訊代表一軟 體模式,該記憶體載入控制器忽略存於該記憶體方塊寫入 模式暫存器內之該寫入模式資訊。 44. 如申請專利範圍第36項所述之快取記憶體,其中 該記憶體載入控制器係規劃成回應於一初始載入信號而將 該外部記憶體輸出之既定資料載入於該內部記憶體之既定 區內。 45. 如申請專利範圍第36項所述之快取記憶體,更包 括一控制器,解譯該指令並產生一控制信號以控制該記憶 體載入控制器。 46. —種語音辨識系統,包括: 一主記憶體,載入操作該系統必需之一程式及一快取 控制程式; 一中央處理單元,根據存於該主記憶體內之該程式來 控制該系統之操作;以及 一快取記憶體,從該主記憶體讀取該中央處理單元之 預期下次所需之一串資料,儲存該資料,且在該中央處理 單元存取該主記憶體之前先被存取,該快取記憶體包括: 一內部記憶體,儲存已存於該主記憶體內之資料以及 存於該主記憶體內之該資料之位址; 一比較器,比較用以存取該主記憶體之外部位址以及 存於該內部記憶體之該外部位址以產生代表相等或不相等 之一相等代表信號; 11330pifl.doc 96 I年月曰 一位址變換器,根據用以存取該主記憶體之該外部位 址、從一指令字元儲存控制器接收之一寫入位址以及各外 部位址之一高階位址以產生用以存取該內部記憶體之一內 部位址並產生一內部記憶體讀取/寫入控制信號;以及 該指令字元儲存控制器,控制存於該主記憶體內之資 料以載入於該內部記憶體,其中該控制可自發生完成或回 應於從該快取記憶體外部接收之一指令而完成。 47. —種控制一快取記憶體之快取控制方法,該快取記 憶體從該外部記憶體讀取該中央處理單元之預期下次所需 之一串資料,儲存該資料,且該中央處理單元存取該外部 記憶體之前係先存取該快取記憶體,該方法包括下列步驟: 設定一更新指標以指向該快取記憶體之一內部記憶 體之任一區之步驟; 計算待交換於該外部記憶體之一方塊之該快取記憶 體之該內部記憶體之一方塊來設定該更新指標之値之步 驟;以及 從該更新指標所指向之該內部記憶體之該區,逐方塊 地將該快取記憶體之該內部記憶體交換於該外部記憶體之 步驟。 , 48. 如申請專利範圍第47項所述之快取控制方法,更 包括下列步驟: 設定該快取記憶體使得如果該快取記憶體內發生快 取錯失的話,從該更新指標所指向之該內部記憶體之該區 交換於該外部記憶體之步驟。 11330pifl.doc 97 1225640 j修, i - 鲁-'一…一'•.w·内_*·—* J ' < ίΕ ·管H M j ii. *y a! 一 49.如申請專利範圍第47項所述之快取控制方法,更 包括下列步驟= 產生一指令,該指令包括指示有關於該快取記憶體之 一方塊交換之一運算元;代表待交換之該快取記憶體之一 區之一目的;以及代表待交換之該外部記憶體之一區之一 來源。 11330pifl.doc 98
TW092110116A 2002-06-28 2003-04-30 Voice recognition device, observation probability calculating device, complex fast fourier transform calculation device and method, cache device, and method of controlling the cache device TWI225640B (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2002-0037052A KR100464420B1 (ko) 2002-06-28 2002-06-28 은닉 마코프 모델 탐색을 위한 관측 확률 연산 장치
KR10-2002-0047581A KR100464428B1 (ko) 2002-08-12 2002-08-12 음성 인식 장치
KR10-2002-0047583A KR100498447B1 (ko) 2002-08-12 2002-08-12 복소 FFT(Fast Fourie Transform) 연산 장치, 복소 FFT연산 방법, 그리고 이에 적합한 기록매체
KR10-2002-0047582A KR100486252B1 (ko) 2002-08-12 2002-08-12 캐쉬 장치 및 이에 적합한 캐쉬 제어 방법

Publications (2)

Publication Number Publication Date
TW200400488A TW200400488A (en) 2004-01-01
TWI225640B true TWI225640B (en) 2004-12-21

Family

ID=29783301

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092110116A TWI225640B (en) 2002-06-28 2003-04-30 Voice recognition device, observation probability calculating device, complex fast fourier transform calculation device and method, cache device, and method of controlling the cache device

Country Status (2)

Country Link
US (1) US20040002862A1 (zh)
TW (1) TWI225640B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694314B2 (en) 2006-09-14 2014-04-08 Yamaha Corporation Voice authentication apparatus
US10481870B2 (en) 2017-05-12 2019-11-19 Google Llc Circuit to perform dual input value absolute value and sum operation

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2556575C (en) 2004-03-01 2013-07-02 Dolby Laboratories Licensing Corporation Multichannel audio coding
WO2009027980A1 (en) * 2007-08-28 2009-03-05 Yissum Research Development Company Of The Hebrew University Of Jerusalem Method, device and system for speech recognition
EP2498509B1 (en) * 2008-04-07 2018-08-15 Koss Corporation Wireless earphone that transitions between wireless networks
US8798983B2 (en) * 2009-03-30 2014-08-05 Microsoft Corporation Adaptation for statistical language model
EP2341425A1 (en) * 2009-12-30 2011-07-06 STMicroelectronics (Grenoble 2) SAS control of electric machines involving calculating a square root
US9992745B2 (en) 2011-11-01 2018-06-05 Qualcomm Incorporated Extraction and analysis of buffered audio data using multiple codec rates each greater than a low-power processor rate
US9633654B2 (en) * 2011-12-06 2017-04-25 Intel Corporation Low power voice detection
IN2014CN04097A (zh) 2011-12-07 2015-07-10 Qualcomm Inc
US9704486B2 (en) * 2012-12-11 2017-07-11 Amazon Technologies, Inc. Speech recognition power management
CN105933635A (zh) * 2016-05-04 2016-09-07 王磊 一种对音频或视频内容附加标签的方法
CN105931639B (zh) * 2016-05-31 2019-09-10 杨若冲 一种支持多级命令词的语音交互方法
CN109799786A (zh) * 2019-01-10 2019-05-24 湖南科技大学 一种能有效预测机床加工能效的方法
US11016885B2 (en) * 2019-02-26 2021-05-25 Micron Technology, Inc. Memory sub-system for decoding non-power-of-two addressable unit address boundaries
CN115827548B (zh) * 2023-02-16 2023-04-28 北京乐研科技股份有限公司 一种基于lpc总线的mdio接口方法及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014624A (en) * 1997-04-18 2000-01-11 Nynex Science And Technology, Inc. Method and apparatus for transitioning from one voice recognition system to another
EP1055227B1 (en) * 1998-12-21 2004-09-01 Koninklijke Philips Electronics N.V. Language model based on the speech recognition history
US6526380B1 (en) * 1999-03-26 2003-02-25 Koninklijke Philips Electronics N.V. Speech recognition system having parallel large vocabulary recognition engines
US6542866B1 (en) * 1999-09-22 2003-04-01 Microsoft Corporation Speech recognition method and apparatus utilizing multiple feature streams
EP1098297A1 (en) * 1999-11-02 2001-05-09 BRITISH TELECOMMUNICATIONS public limited company Speech recognition
JP2003514260A (ja) * 1999-11-11 2003-04-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ スピーチ認識のための音調特徴
EP1169678B1 (en) * 1999-12-20 2015-01-21 Nuance Communications Austria GmbH Audio playback for text edition in a speech recognition system
US6889190B2 (en) * 2001-01-25 2005-05-03 Rodan Enterprises, Llc Hand held medical prescription transcriber and printer unit
US7010558B2 (en) * 2001-04-19 2006-03-07 Arc International Data processor with enhanced instruction execution and method
US7027983B2 (en) * 2001-12-31 2006-04-11 Nellymoser, Inc. System and method for generating an identification signal for electronic devices

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694314B2 (en) 2006-09-14 2014-04-08 Yamaha Corporation Voice authentication apparatus
US10481870B2 (en) 2017-05-12 2019-11-19 Google Llc Circuit to perform dual input value absolute value and sum operation
US10719295B2 (en) 2017-05-12 2020-07-21 Google Llc Circuit to perform dual input value absolute value and sum operation

Also Published As

Publication number Publication date
TW200400488A (en) 2004-01-01
US20040002862A1 (en) 2004-01-01

Similar Documents

Publication Publication Date Title
KR100464428B1 (ko) 음성 인식 장치
TWI225640B (en) Voice recognition device, observation probability calculating device, complex fast fourier transform calculation device and method, cache device, and method of controlling the cache device
US7983919B2 (en) System and method for performing speech synthesis with a cache of phoneme sequences
US8924453B2 (en) Arithmetic logic unit architecture
KR101623465B1 (ko) 변환 색인 버퍼(tlb)에 대한 중첩 체크
US6237083B1 (en) Microprocessor including multiple register files mapped to the same logical storage and inhibiting sychronization between the register files responsive to inclusion of an instruction in an instruction sequence
CN118586448A (zh) 文本任务处理方法及其模型训练方法、设备、介质、产品
US20070112566A1 (en) Method and system for Gaussian probability data bit reduction and computation
US9483265B2 (en) Vectorized lookup of floating point values
CN108847251B (zh) 一种语音去重方法、装置、服务器及存储介质
Price Energy-scalable speech recognition circuits
Jo et al. 23.7 broca: A 52.4-to-559.2 mw mobile social agent system-on-chip with adaptive bit-truncate unit and acoustic-cluster bit grouping
Janin Speech recognition on vector architectures
KR100464420B1 (ko) 은닉 마코프 모델 탐색을 위한 관측 확률 연산 장치
Cornu et al. An ultra low power, ultra miniature voice command system based on hidden markov models
US7356466B2 (en) Method and apparatus for performing observation probability calculations
Rajput et al. Speech in Mobile and Pervasive Environments
Le-Huu et al. Towards a vliw architecture for the 32-bit digital signal processor core
Hanani et al. Language identification using multi-core processors
KR100498447B1 (ko) 복소 FFT(Fast Fourie Transform) 연산 장치, 복소 FFT연산 방법, 그리고 이에 적합한 기록매체
Miranda et al. A platform of distributed speech recognition for the European Portuguese Language
de Sousa Miranda Speech Recognition system for mobile devices

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees