TWI419048B - 具有位址產生器之處理器 - Google Patents
具有位址產生器之處理器 Download PDFInfo
- Publication number
- TWI419048B TWI419048B TW096110192A TW96110192A TWI419048B TW I419048 B TWI419048 B TW I419048B TW 096110192 A TW096110192 A TW 096110192A TW 96110192 A TW96110192 A TW 96110192A TW I419048 B TWI419048 B TW I419048B
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- processor
- offset value
- generate
- fractional
- Prior art date
Links
- 230000008901 benefit Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001154 acute effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
- G06F9/3552—Indexed addressing using wraparound, e.g. modulo or circular addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Saccharide Compounds (AREA)
- Debugging And Monitoring (AREA)
Description
本發明係關於一種處理器,其包括用於根據基底位址及分步而產生一位址的位址產生器。
可以將一處理器用於處理資料。可將資料(例如)儲存在可由該處理器存取的一記憶體中。為從該記憶體存取資料,該處理器需要其中儲存資料的一位址。可產生獲得用於某一應用的資料所需要之位址並將其暫時儲存在一位址暫存器中。該位址暫存器可在應用進行期間採用新位址加以連續更新。
在許多應用中,每次執行更新運算時,用於更新位址暫存器之位址的步驟並不相同。該步驟可以係增量或減量。不同應用可將不同策略用於該等步驟。此外,一步驟甚至可以係分數(例如非整數值),即使將記憶體之位址始終定位在整數位置上亦如此。例如,若需要0.75的步驟,則當開始位址之數值係0時可產生下列位址序列:[0].75、[1].5、[2].25、[3].0、[3].75、[4].5、…,其中括弧內指示的位址序列之整數部分將用於記憶體存取。此處,可以看出將使用兩次具有數值3的位址。使用分數更新的某些應用係內插、比例縮放、重新取樣、同步化及查表。
更新用於位址暫存器的位址達分數數量通常由處理器所管理的軟體指令或一序列軟體指令加以完成。另外,在該技術中已知處理器外部的硬體單元根據分步執行內插。因此在處理器本身外部執行內插。產生為內插法之部分的位址並非由軟體指令而存取。藉由硬體單元僅執行預定內插具有下列結果:其他單元可存取獲得的內插資料而非用於內插的位址。因此,位址僅可用於預定目的,例如預定內插法。此使得硬體單元具有不靈活性。
在US 2004/0003199 A1中,揭示一記憶體介面器件,其提供資料處理器與記憶體系統之間的分數位址介面。記憶體介面提供資料值的內插。記憶體介面包含一位址產生器,其用於產生第一及第二記憶體位址;與一記憶體存取單元,其用於取回第一及第二資料值並用於內插在第一與第二資料值之間。
藉由處理器所管理的軟體來更新用於位址暫存器的一位址之一問題係,通常在核心部分(例如軟體之內部迴路)中完成該位址之更新。通常而言,頻繁地執行內部迴路。因此,用於更新核心部分中的位址暫存器之任何額外執行的指令均具有對系統性能的直接負面影響。此問題對於採用分步更新用於位址暫器之一位址而言尤其嚴重,因為所有可用的處理器架構均需要執行少數額外軟體指令以藉由分步而更新該位址。
在將分步用於更新一位址的應用中,處理器之中心部分的瓶頸通常從資料儲存庫輸入及輸出資料。輸入及輸出資料的一個問題係有效率地更新一位址。舉例而言,基本上係內插器的一合成波振盪器需要分步以更新用於來自一表格之所有輸入樣本與所有係數的位址。因此,即使在採用分步而更新位址中的較小性能改良仍可提供系統性能之實質改良,其中利用位址產生。
依據本發明之一具體實施例,用於處理資料的一處理器包括一位址產生器。該位址產生器可運算以根據一基底位址及一偏移數值而產生一位址,並藉由分步而更新該偏移數值。該處理器可以係一主要處理器,其包括其中心部分中的位址產生器。或者,處理器可以包括一主要處理器及至少一個共處理器,其可在運算中與該主要處理器連接。該共處理器包括該位址產生器。
該位址產生器可運算以根據基底位址及偏移數值而產生位址。藉由分步更新該偏移數值。
該位址產生器可運算以根據係分數基底位址的基底位址而產生位址。
該位址產生器可包括一量化器,其可運算以根據基底位址加偏移數值的總和而產生位址。
該位址產生器可運算以根據係整數基底位址的基底位址而產生位址。
該位址產生器可包括一量化器,其可運算以根據基於分步的偏移數值而產生整數偏移數值。該位址產生器可運算以根據整數偏移數值而產生位址。
該位址產生器可包括一加法器,其可運算以產生基底位址加偏移數值的總和。
該位址產生器可包括一加法器,其可運算以產生並輸出一偏移數值(其係基於分步的偏移數值與一輸入偏移數值之一)加分步的總和。另外,該位址產生器可包括一模數計數器,其可運算以產生一隨後的偏移數值以用於根據來自該加法器的輸出及最大偏移數值而產生一隨後的位址。
該位址產生器可包括一多工器,其可運算以輸出該偏移數值。該偏移數值可以係輸入偏移數值及由該模數計數器產生的一偏移數值之一。
該位址產生器可運算以回應至少一個軟體指令。
依據另一具體實施例,一電子裝置包括如請求項1至12中任一項之處理器。
該電子裝置可以係一行動電話。本發明之另外的具體實施例係定義在獨立請求項中。
應該強調,術語"包括/包含"在用於此說明書時係用於指定所述特徵、整數、步驟或組件之存在,但並不排除一或更多其他特徵、整數、步驟、組件或其群組之存在或添加。
本發明之具體實施例提供用於產生可從任一類型的程序、應用或運算存取的一位址之一有效率的器件。因此,不僅可採用預定方法存取該位址。
現在參考附圖說明本發明之具體實施例。然而,本發明可採用許多不同形式加以具體化而不應該視為限於本文提出的具體實施例;更確切而言,提供此等具體實施例以便此揭示案係全面且完整的,而且向熟習技術人士全面傳達本發明之範疇。附圖中說明的特定具體實施例之詳細說明中使用的術語並非意欲限制本發明。在該等圖式中,相同編號指相同元件。
圖1說明用於處理資料的一處理器1a之一具體實施例。處理器1a包括一位址產生器2。在圖1a之具體實施例中,位址產生器2係整合在處理器1a之中心部分3中。在硬體中實施中心部分3。在此具體實施例中,處理器1a係一主要處理器,其中整合中心部分3。中心部分3包括處理器1a之功能單元,位址產生器2係與該等功能單元整合。該等功能單元可包括一算術單元、一暫存器檔案及一資料存取單元。
圖2說明用於處理資料的一處理器1b之另一具體實施例。在此具體實施例中,處理器1b包括一主要處理器5及一共處理器6。在硬體中實施共處理器6。共處理器6係與主要處理器5耦合。在此具體實施例中,共處理器6係採用使主要處理器5可代表對該共處理器執行某些軟體指令的方式與主要處理器5耦合。因此,主要處理器5可以讓軟體指令流中的某些軟體指令由共處理器6執行。在圖2之具體實施例中,共處理器6包括位址產生器2。共處理器6係在運算中與主要處理器5連接。主要處理器5及共處理器6可在運算中依靠共處理器介面7加以連接。主要處理器5可包括一中心部分(未顯示),其不包括用於更新基底位址的任一位址產生器。
位址產生器2可運算以根據基底位址及分步而產生位址8(圖3及4)。本發明之具體實施例提供一處理器1a、1b,其可有效率地產生位址8,因為位址產生器2係包括在處理器1a、1b中。因此,與預定硬體單元相比,依據本發明之具體實施例的處理器1a、1b可提供性能改良,(例如)因為位址可存取並由處理器1a、1b所管理的軟體指令加以控制。此外,位址產生器2比使用執行軟體指令的先前技術處理器之基於分步的產生位址更有效率,因為(例如)執行更少的軟體指令。依據本發明之一具體實施例執行更少的指令,因為與使用執行軟體指令的先前技術處理器之基於分步的產生位址相比,可用支援分數位址產生的特殊軟體指令以得到執行。
一步驟可以係一增量。或者,該步驟可以係一減量。本文所用的分步係一步驟,其係一整數或非整數數量或數值。分步可用於從一序列位址中的第一位址更新為隨後的第二位址。因此,更新可以係增量或減量的。非整數值可以係定點數目或浮點數目。可採用二進制形式代表整數值與非整數值。
處理器1a及主要處理器5可以係例如CPU(中央處理單元)、DSP(數位信號處理器)或GPU(圖形處理單元)。共處理器可以係專用處理器,其協助主要處理器5執行某些運算。共處理器6擴大主要處理器5的指令集。因此,(例如)改良由主要處理器5及共處理器6定義的整個系統之效率。在圖2之具體實施例中,共處理器6可運算以協助主要處理器5根據基底位址及分步而產生位址8。
圖2之具體實施例可(例如)在主要處理器5無法根據分步而處理運算的情況下有用。然後,可提供共處理器6以執行基於分步的任何運算。此外,圖2之具體實施例可在主要處理器5並不包括任一模數計數器的情況下有用。然後,可將模數計數器整合於共處理器6中。此外,圖2之具體實施例允許使用可與共處理器連接的一標準主要處理器。此提供處理器1b之容易實施方案。共處理器介面7之使用提供主要處理器5與該共處理器之間有效率的通信。共處理器6提供軟體指令集之擴大及功能單元之擴大。軟體指令集之擴大允許(例如)引入支援分數位址產生的特殊軟體指令。功能單元之擴大支援(例如)分數位址模式。指令集之擴大(例如)提供基於分步之更有效率的位址產生。
圖1之具體實施例提供(例如)高度整合的解決方式,例如在將位址產生器2整合於處理器1a之中心部分3中的情況下。
圖3說明用於整合在處理器1a、1b中的位址產生器100之一具體實施例。在此具體實施例中,位址產生器100包括第一加法器101、量化器102、第二加法器103、模數計數器104、暫存器105、多工器106、第一輸入端子107、第二輸入端子108、第三輸入端子109、第四輸入端子110及第五輸入端子111。
第一加法器101之第一輸入端子係在運算中與位址產生器100之第一輸入端子107連接。第一加法器101之第二輸入端子係在運算中與多工器106之輸出端子連接。第一加法器101之輸出端子係在運算中與量化器102之輸入端子連接。
量化器102之輸出端子係在運算中與位址產生器100之輸出端子連接。
第二加法器103之第一輸入端子係在運算中與多工器106之輸出端子連接。第二加法器103之第二輸入端子係在運算中與位址產生器100之第五輸入端子111連接。第二加法器103之輸出端子係在運算中與模數計數器104之第一輸入端子連接。
模數計數器104之第二輸入端子係在運算中與位址產生器100之第四輸入端子110連接。模數計數器104之輸出端子係在運算中與暫存器105之輸入端子連接。
暫存器105之輸出端子係在運算中與多工器106之第一輸入端子連接。
多工器106之第二輸入端子係在運算中與位址產生器100之第二輸入端子108連接。多工器106之第三輸入端子係在運算中與位址產生器100之第三輸入端子109連接。
位址產生器100可運算以根據基底位址及分步而產生位址8。在該等圖式中,分步係表示為△。
在圖3之具體實施例中,在位址產生器100之第五輸入端子111中提供分步。在位址產生器100之第一輸入端子107中提供基底位址。
基底位址可指向應該產生之一序列位址中的第一位址。當產生不同序列的位址時,基底位址可以不同。可適應性地設定基底位址。
在圖3之具體實施例中,位址產生器100可運算以根據基底位址及偏移數值而產生位址8。偏移數值係基於分步。因此,產生的位址將係間接地基於分步。分步係用於更新偏移數值。因此,不需要在每個存取週期中更新基底位址,而相反地,根據分步來更新偏移數值。在本發明之某些具體實施例中,代表偏移數值所必需的位元之數目係小於代表基底位址及產生的位址(8)所必需的位元之數目。因此,在每個存取週期中更新偏移數值而非基底位址的一個益處係較小的計算複雜性,及因此較小的功率消耗、較少的延遲時間及/或所需處理資源的減少。當更新偏移數值時,根據分步而對偏移數值進行增量(或減量)。此運算係(例如)藉由加法器來執行。接著,可執行模數運算或其他限制運算。此舉可(例如)限制產生的位址之範圍。若更新基底位址,則將執行同一類型的運算。更新偏移數值而非基底位址的益處因此係,當執行偏移數值而非基底位址時,在更新位址產生器以輸出新產生的位址之程序中執行的運算在計算方面的複雜性較小。
第一加法器101可運算以產生基底位址加偏移數值的總和。在圖3之具體實施例中,第一加法器101所運算的偏移數值係一分數偏移數值。第一加法器101所運算的基底位址係一整數基底位址或一分數基底位址。分數基底位址係具有第一整數位址之數值與第二整數位址之數值之間的一數值之位址,其係隨一序列位址中的第一整數位址之後。整數基底位址係具有整數值的位址。第一加法器101之輸出(即基底位址之數值與偏移數值的總和)可因此根據至第一加法器101的輸入數值而為分數值,即非整數值。然而,由位址產生器100產生的位址8應該係整數。因此,量化器102可運算以根據第一加法器101之輸出而產生位址8。量化器102可運算以擷取來自第一加法器101的輸出之整數部分。由量化器102輸出擷取的數值,作為由位址產生器100產生的位址8。量化器可執行下列運算:位址:=Q(基底位址+偏移數值),其中基底位址及偏移數值可以係具有正或負符號的非整數值,Q係擷取運算元之整數部分的運算,以及位址係具有非分數值之獲得的位址8。
在圖3之具體實施例中,由多工器106提供偏移數值。偏移數值可由位址產生器100產生或接收為位址產生器100之第二輸入端子108上的輸入偏移數值。輸入偏移數值可以係分數偏移數值。多工器106可回應提供在位址產生器100之第三輸入端子109上的控制信號。根據控制信號之數值(例如"0"或"1"),由多工器106輸出該輸入偏移數值或由暫存器105保持的一累積偏移數值。每次存取位址產生器100時輸入偏移數值可以不同。
為產生一序列位址之第一位址,可使用輸入偏移數值。因此,可使用來自暫存器105的偏移數值,作為欲產生的位址序列之任一隨後的偏移數值。可在欲產生一序列位址之前設定暫存器105。暫存器105之最初數值可以係0。
第二加法器103可以係步驟加法器。第二加法器103可運算以將分步添加至由多工器106提供的偏移數值中。因此,將偏移數值更新一分數數量。將第二加法器103之輸出轉遞至模數計數器104。第二加法器103可運算以產生並輸出偏移數值加分步之總和。偏移數值可以係基於分步的偏移數值與輸入偏移數值之一。
模數計數器104可運算以產生隨後的偏移數值,從而用於產生隨後的位址。模數計數器104可運算以根據由第二加法器103提供的更新偏移數值而對模數N進行計數。模數計數器104可(例如)執行下列更新運算:偏移數值n+1
:=mod(偏移數值n
+△n
,Nn
),其中mod代表模數運算,△代表分步,以及n指定每個存取週期。更新運算可以但不必加以執行為讀取產生的位址之部分。
模數計數器104可運算以確定偏移數值將係非負數值並且將保持為小於最大偏移數值N。因此,可以確定未產生具有超過最大數值的一數值之位址。因此,將由位址產生器100產生僅在由基底位址與最大偏移數值N所決定之某一位址範圍內的位址。例如,假定N=4。因此,若模數計數器104所運算的偏移數值係3.75,則模數計數器104將輸出偏移數值3.75。然而,若模數計數器104所運算的偏移數值係4.75,則模數.計數器104將輸出偏移數值0.75。
暫存器105可運作以暫時儲存一或若干偏移數值,直至其為多工器106所需要。
圖4說明的位址產生器200之具體實施例係類似於圖3之具體實施例。因此,已由相同的參考數字表示圖3之具體實施例的組件,其具有與圖4之具體實施例的組件相同或類似之功能。因此,亦由圖4之具體實施例的對應組件來提供針對圖3說明的某一組件所說明的任一功能或效應。此外,若未另外陳述,則組件之連接係相同的。
圖3及4之具體實施例之間的基本差異係,與圖3之具體實施例的量化器102相比,已重新定位圖4之具體實施例的量化器202。量化器202之輸入端子係在運算中與多工器106之輸出端子連接。量化器202之輸出端子係在運算中與第一加法器201之第二輸入端子連接。第一加法器201之輸出端子係在運算在與位址產生器200之輸出端子連接。量化器202對由多工器106提供的偏移數值進行運算。量化器202可運算以輸出輸入其中的偏移數值之整數部分。此可採用與已針對量化器102說明的相同方式來執行。
量化器202可運算以提供基於分步的整數偏移數值。在圖4之具體實施例中,基底位址之數值可以僅為整數值。
圖4之具體實施例的第一加法器201僅需要運算以添加整數值,因為偏移數值及基底位址之數值係整數值。因此,由量化器202提供的基底位址及整數偏移數值的總和將係整數值,其係由位址產生器200產生的位址8。
將基底位址及偏移數值提供為整數值提供(例如)第一加法器201之較不複雜的實施方案。因此,與提供依據圖3的位址產生器100相比,包括圖4之位址產生器200的處理器1a、1b較不複雜。因此,可減小處理器1a、1b之成本。
分步可以係正或負分步。此外,當允許負分步時,基底位址數值可以係一定範圍的位址之任一位址。
在圖4之具體實施例中,位址產生器200可運算以根據基底位址及量化偏移數值而產生位址8。量化偏移數值係基於分步。因此,產生的位址將係間接地基於分步。類似於圖3之具體實施例,不需要在每個存取週期中更新基底位址,而相反地,根據分步來更新(非量化)偏移數值。更新偏移數值而非基底位址的益處因此係,當執行偏移數值而非基底位址時,在更新位址產生器以輸出新產生的位址之程序中執行的運算(例如增量/減量、模數運算與量化)在計算方面的複雜性較小。因此,更新偏移數值而非基底位址的一個益處係較小的計算複雜性,及因此較小的功率消耗、較少的延遲時間及/或所需處理資源的減少。
在某些具體實施例中,N可以係整數或分數值。因此,模數計數器104可對係一整數的N及/或分數N進行運算。在其他具體實施例中,模數計數器104僅對係一整數值的N進行運算。後者模數計數器在實施中較不複雜,從而與使用具有分數值的N相比,提供較不複雜的處理器1a、1b。
該位址產生器100、200可運算以回應至少一個軟體指令。位址產生器所回應的軟體指令可以(例如)包括第一輸入端子107、第二輸入端子108、第三輸入端子109、第四輸入端子110及第五輸入端子111之任一者中的輸入數值。或者或另外,位址產生器100、200所回應的軟體指令可以(例如)從(例如)一暫存器明確或間接地提供第一輸入端子107、第二輸入端子108、第三輸入端子109、第四輸入端子110及第五輸入端子111中的輸入數值。或者或另外,軟體指令可以係用於請求位址8的指令。因此,處理器1a、1b具有下列優點:可產生位址8以回應任一程序、應用或運算之軟體指令,從而達到高度靈活性。
可由處理器1a、1b提供位址產生器100、200之第一輸入端子107、第二輸入端子108、第三輸入端子109、第四輸入端子110及第五輸入端子111中的輸入數值。當處理器1a、1b管理用於(例如)某一程序、應用或運算的軟體指令時,可產生輸入數值。在某些具體實施例中,於輸入用於程序、應用或運算的指令迴路之前產生所有輸入數值。接著,產生位址以回應施加於第三輸入端子109的控制信號。可產生控制信號以回應執行一指令,例如在內部指令迴路期間。在某些具體實施例中,於輸入用於程序、應用或運算的若干內部指令迴路之前產生除分步以外的所有輸入數值。接著,在內部指令迴路內適應性地產生分步。接著可產生一位址以回應提供分步。因此,在本發明之具體實施例中,包括分步或控制信號的單一指令係足以提供一新位址。位址產生器100、200所回應的軟體指令可包括讀取產生的位址8及提供一新分步。此提供位址8之有效率的產生。對於包括少數指令的內部指令迴路而言,此提供實質的性能加強,因為與使用僅執行軟體指令的先前技術處理器而產生位址(其中完全在內部迴路中產生位址)相比,實質上可減小與在內部指令迴路中產生位址8相關的指令之百分比。因此,將實質上採用本發明之具體實施例而改良性能。此外,可與由處理器1a(參見圖1)之中心部分3或由處理器1b(參見圖2)之主要處理器5及共處理器6執行的其他運算並列執行位址產生。
由本發明之具體實施例提供之產生的位址(8)可(例如)由處理器(1a、1b)用於存取記憶體及/或暫存器。記憶體/暫存器之存取可(例如)提供從記憶體/暫存器讀取及/或寫入記憶體及/或暫存器。
本發明之具體實施例提供並非隨後的位址之產生位址。此係(例如)藉由下列方式而達到:相應地調整分步及/或基底位址之數值,例如藉由獲得分步>1。然而,此提供(例如)改良式內插可行性,因為其提供並非相鄰的資料值之間的內插。相鄰資料值係儲存在記憶體之相鄰位址中的資料值。若位址係隨後的位址,則其係相鄰的。亦可使用其他內插法,例如使用來自隨後位址的資料值。若使用該等數值,則可將同一分步用於產生多個位址。因此,依據本發明之具體實施例的處理器1a、1b可用於若干不同的內插法而無需修改硬體,此(例如)提供靈活性。
本發明之具體實施例亦根據分數偏移及分步而提供產生位址。在某些具體實施例中,基底位址之數值亦係分數值。因為可採用複數個不同方式提供至位址產生器2、100、200的輸入數值,所以位址產生器2、100、200及因此處理器1a、1b具有靈活性。分數基底位址可用於藉由將基底位址增加(例如)0.5而獲得圍繞最近整數位址的位址。
可(例如)由程序、應用或運算提供至位址產生器2、100、200的輸入數值。位址產生器2、100、200可與應該使用產生的位址8之目的無關。因此,本發明之具體實施例提供使用單一位址產生器2、100、200以根據分步而產生位址,該等位址係用於多個目的。因此,可從多個及/或不同程序、應用或運算請求該等位址。因此,本發明之具體實施例提供便宜且節省空間的設計,因為不需要多個位址產生器。
可在包括固線式組件的硬體中提供處理器1a、1b及位址產生器2、100、200。
圖5說明包括處理器1a、1b的電子裝置300。可將處理器1a、1b包括在需要使用分步而產生位址的任何電子裝置中。在圖5中,將電子裝置300具體化為行動電話。在其他具體實施例中,將處理器1a、1b包括在固定、可攜式或手持式行動無線電通信設備、行動無線電終端機、行動電話、呼叫器、通信器、電子記事薄、智慧電話或電腦中。此等僅係範例而並非限制本發明。
已參考特定具體實施例而說明本發明。然而,在本發明之範疇內除以上說明的具體實施例以外的具體實施例也可行。可將本發明之不同特徵組合在除以上說明的組合以外之組合中。本發明之範疇僅受所附申請專利範圍的限制。
1a...處理器
1b...處理器
2...位址產生器
3...中心部分
5...主要處理器
6...共處理器
7...共處理器介面
8...位址
100...位址產生器
101...第一加法器
102...量化器
103...第二加法器
104...模數計數器
105...暫存器
106...多工器
107...第一輸入端子
108...第二輸入端子
109...第三輸入端子
110...第四輸入端子
111...第五輸入端子
200...位址產生器
201...第一加法器
202...量化器
300...電子裝置
參考附圖,從以上詳細說明可瞭解本發明之具體實施例的另外目的、特徵及優點,在該等圖式中:圖1係包括位址產生器的處理器之一具體實施例的方塊圖;圖2係包括位址產生器的處理器之另一具體實施例的方塊圖;圖3係位址產生器之一具體實施例的方塊圖;圖4係位址產生器之另一具體實施例的方塊圖;以及圖5係包括處理器之電子裝置的正視圖。
1a...處理器
2...位址產生器
3...中心部分
Claims (15)
- 一種處理器,其用於處理資料,該處理器包括:一位址產生器,其可運算以根據一基底位址及一分數偏移數值而產生具有量化非分數值之一序列位址,並由該序列位址中的一位址至一隨後位址之產生而藉由一分步(△)而更新該分數偏移數值,並暫時儲存該已更新分數偏移數值以用於該隨後位址之產生;及一量化器,其可運算以根據該基底位址與該分數偏移數值的總和而產生該位址。
- 如請求項1之處理器,其中該處理器係一主要處理器,其包括其一中心部分中的該位址產生器。
- 如請求項1之處理器,其包括一主要處理器及可在運算中與該主要處理器連接的至少一個共處理器,其中該共處理器包括該位址產生器。
- 如請求項1之處理器,其中該基底位址係一分數基底位址。
- 如請求項1之處理器,其中該基底位址係一整數基底位址。
- 如請求項5之處理器,其中該量化器可運算以根據基於該分步的該分數偏移數值而產生一整數偏移數值,並且該位址產生器可運算以根據該整數偏移數值而產生該位址。
- 如請求項1之處理器,其中該量化器可運算以根據基於該分步的該分數偏移數值而產生一整數偏移數值,並且 該位址產生器可運算以根據該整數偏移數值而產生該位址。
- 如請求項7之處理器,其中該位址產生器包括一加法器,其可運算以產生該基底位址加該分數偏移數值的該總和。
- 如請求項1之處理器,其中該位址產生器包括一加法器,其可運算以產生該基底位址加該分數偏移數值的該總和。
- 如請求項9之處理器,其中該位址產生器包括一加法器,其可運算以產生並輸出係基於該分步的該分數偏移數值與一輸入偏移數值之一的一偏移數值加該分步的該總和;以及一模數計數器,其可運算以產生一隨後的偏移數值以用於根據來自該加法器的該輸出及一最大偏移數值而產生一隨後的位址。
- 如請求項1之處理器,其中該位址產生器包括一加法器,其可運算以產生並輸出係基於該分步的該分數偏移數值與一輸入偏移數值之一的一偏移數值加該分步的該總和;以及一模數計數器,其可運算以產生一隨後的偏移數值以用於根據來自該加法器的該輸出及一最大偏移數值而產生一隨後的位址。
- 如請求項11之處理器,其中該位址產生器包括一多工器,其可運算以輸出該分數偏移數值,其係該輸入偏移數值與由該模數計數器產生的一偏移數值之一。
- 如請求項1之處理器,其中該位址產生器可運算以回應 至少一個軟體指令。
- 如請求項1之處理器,其係一電子裝置之部分。
- 如請求項14之處理器,其中該電子裝置係一行動電話。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06111687A EP1840734A1 (en) | 2006-03-24 | 2006-03-24 | Processor with address generator |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200807293A TW200807293A (en) | 2008-02-01 |
TWI419048B true TWI419048B (zh) | 2013-12-11 |
Family
ID=36704478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096110192A TWI419048B (zh) | 2006-03-24 | 2007-03-23 | 具有位址產生器之處理器 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20090292898A1 (zh) |
EP (2) | EP1840734A1 (zh) |
AT (1) | ATE490502T1 (zh) |
DE (1) | DE602007010917D1 (zh) |
ES (1) | ES2354229T3 (zh) |
TW (1) | TWI419048B (zh) |
WO (1) | WO2007110393A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8219782B2 (en) * | 2008-09-18 | 2012-07-10 | Xilinx, Inc. | Address generation |
GB2536211B (en) * | 2015-03-04 | 2021-06-16 | Advanced Risc Mach Ltd | An apparatus and method for executing a plurality of threads |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1102164A2 (en) * | 1999-11-22 | 2001-05-23 | Nec Corporation | Microprocessor system |
US6330373B1 (en) * | 1999-03-05 | 2001-12-11 | The United States Of America As Represented By The Secretary Of The Navy | Real-time detailed scene convolver |
US20040003199A1 (en) * | 2002-06-28 | 2004-01-01 | May Philip E. | Memory interface with fractional addressing |
TW589574B (en) * | 2001-03-28 | 2004-06-01 | Intel Corp | Use of a future file for data address calculations in a pipelined processor |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5342990A (en) * | 1990-01-05 | 1994-08-30 | E-Mu Systems, Inc. | Digital sampling instrument employing cache-memory |
US5303309A (en) * | 1990-09-18 | 1994-04-12 | E-Mu Systems, Inc. | Digital sampling instrument |
US5837914A (en) * | 1996-08-22 | 1998-11-17 | Schulmerich Carillons, Inc. | Electronic carillon system utilizing interpolated fractional address DSP algorithm |
US6704871B1 (en) * | 1997-09-16 | 2004-03-09 | Safenet, Inc. | Cryptographic co-processor |
US6430671B1 (en) * | 1998-02-10 | 2002-08-06 | Lucent Technologies, Inc. | Address generation utilizing an adder, a non-sequential counter and a latch |
US6275239B1 (en) * | 1998-08-20 | 2001-08-14 | Silicon Graphics, Inc. | Media coprocessor with graphics video and audio tasks partitioned by time division multiplexing |
US6646680B1 (en) * | 1998-09-30 | 2003-11-11 | Foveon, Inc. | Focusing method and apparatus for high resolution digital cameras |
GB2359967B (en) * | 2000-02-29 | 2004-05-12 | Virata Ltd | Qamd |
US6972362B2 (en) * | 2002-01-09 | 2005-12-06 | Rohm Co., Ltd. | Method and device for generating electronic sounds and portable apparatus utilizing such device and method |
US20050246502A1 (en) * | 2004-04-28 | 2005-11-03 | Texas Instruments Incorporated | Dynamic memory mapping |
US7502909B2 (en) * | 2005-10-11 | 2009-03-10 | Motorola, Inc. | Memory address generation with non-harmonic indexing |
US7457932B2 (en) * | 2005-12-30 | 2008-11-25 | Intel Corporation | Load mechanism |
TWI326433B (en) * | 2006-09-19 | 2010-06-21 | Ind Tech Res Inst | Method for saving interpolation data |
US7634633B2 (en) * | 2006-11-30 | 2009-12-15 | Motorola, Inc. | Method and apparatus for memory address generation using dynamic stream descriptors |
-
2006
- 2006-03-24 EP EP06111687A patent/EP1840734A1/en not_active Withdrawn
-
2007
- 2007-03-23 EP EP07727294A patent/EP2013711B1/en active Active
- 2007-03-23 WO PCT/EP2007/052820 patent/WO2007110393A1/en active Application Filing
- 2007-03-23 TW TW096110192A patent/TWI419048B/zh not_active IP Right Cessation
- 2007-03-23 US US12/293,508 patent/US20090292898A1/en not_active Abandoned
- 2007-03-23 AT AT07727294T patent/ATE490502T1/de not_active IP Right Cessation
- 2007-03-23 DE DE602007010917T patent/DE602007010917D1/de active Active
- 2007-03-23 ES ES07727294T patent/ES2354229T3/es active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330373B1 (en) * | 1999-03-05 | 2001-12-11 | The United States Of America As Represented By The Secretary Of The Navy | Real-time detailed scene convolver |
EP1102164A2 (en) * | 1999-11-22 | 2001-05-23 | Nec Corporation | Microprocessor system |
TW589574B (en) * | 2001-03-28 | 2004-06-01 | Intel Corp | Use of a future file for data address calculations in a pipelined processor |
US20040003199A1 (en) * | 2002-06-28 | 2004-01-01 | May Philip E. | Memory interface with fractional addressing |
Also Published As
Publication number | Publication date |
---|---|
US20090292898A1 (en) | 2009-11-26 |
ES2354229T3 (es) | 2011-03-11 |
WO2007110393A1 (en) | 2007-10-04 |
TW200807293A (en) | 2008-02-01 |
DE602007010917D1 (de) | 2011-01-13 |
EP2013711B1 (en) | 2010-12-01 |
EP1840734A1 (en) | 2007-10-03 |
EP2013711A1 (en) | 2009-01-14 |
ATE490502T1 (de) | 2010-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7617388B2 (en) | Virtual instruction expansion using parameter selector defining logic operation on parameters for template opcode substitution | |
EP2261814A2 (en) | Multithreaded processor with efficient processing for convergence device applications | |
US20030028844A1 (en) | Method and apparatus for implementing a single cycle operation in a data processing system | |
JP2001256038A (ja) | 柔軟な乗算ユニットを有するデータ・プロセッサ | |
JP2015144002A (ja) | 単一方向回転子のためのレジスタベースのシフト | |
JP2009514097A (ja) | 改善されたパイプライン化デジタル信号プロセッサ | |
EP1258802A2 (en) | Address generation instruction | |
JP2001184336A (ja) | マトリックス演算装置及びマトリックス演算機能を有するデジタル信号処理装置 | |
TWI419048B (zh) | 具有位址產生器之處理器 | |
JP4078243B2 (ja) | 繰返しブロック命令を入れ子ループに沿ってゼロ・サイクル・オーバヘッドで実行する方法及び装置 | |
JP3831396B2 (ja) | データ処理装置及びicカード | |
JP2011513858A (ja) | ハードウェア・プリフェッチ・アドレス及び算術演算値を計算するための二重機能加算器 | |
TW201140318A (en) | Multi-stage multiplexing operation including combined selection and data alignment or data replication | |
JP3867804B2 (ja) | 集積回路装置 | |
JPS63113634A (ja) | プログラムカウンタ相対アドレス計算方式 | |
Tsao et al. | Low-power embedded DSP core for communication systems | |
Tsao et al. | Hardware nested looping of parameterized and embedded DSP core | |
JP2001043084A (ja) | プロセッサ装置 | |
JP4339468B2 (ja) | 消費電力を低減したアドレス生成回路 | |
JP2002116951A (ja) | アドレス生成回路 | |
JP2862969B2 (ja) | プロセッサ | |
JP2003084972A (ja) | 条件付減算命令の実行速度を改善し、命令が正しく実行されるオペランドの範囲を拡大する方法 | |
JPWO2007094256A1 (ja) | キュープロセッサおよびキュープロセッサによるデータ処理方法 | |
JP2008299501A (ja) | プロセッサ | |
JP2008176136A (ja) | 剰余演算装置及び剰余演算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |