專利名稱:用于計(jì)算硬件預(yù)提取地址及算術(shù)運(yùn)算值的雙功能加法器的制作方法
技術(shù)領(lǐng)域:
本文所揭示的發(fā)明概念的實(shí)施例大體上涉及數(shù)據(jù)處理系統(tǒng)的領(lǐng)域。更確切地說, 本文所揭示的發(fā)明概念的實(shí)施例涉及一種雙功能加法器。
背景技術(shù):
在一些常規(guī)計(jì)算系統(tǒng)中,由處理器執(zhí)行的操作包括加載/存儲(chǔ)、硬件預(yù)提取及算 術(shù)運(yùn)算。加載/存儲(chǔ)是將來自存儲(chǔ)器(例如,同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)的值加載到寄存 器堆或?qū)碜约拇嫫鞫阎械募拇嫫鞯闹荡鎯?chǔ)到存儲(chǔ)器的操作。硬件預(yù)提取是將來自存儲(chǔ)器 的數(shù)據(jù)預(yù)先加載到寄存器堆中以便在被請(qǐng)求之前預(yù)備好數(shù)據(jù)。預(yù)提取減少了與存儲(chǔ)器讀取 相關(guān)聯(lián)的等待時(shí)間,因?yàn)槿绻呀?jīng)將操作數(shù)預(yù)先加載到寄存器堆中則處理器不等待操作數(shù) 被載入。算術(shù)運(yùn)算為整數(shù)運(yùn)算,其包括(例如)兩個(gè)操作數(shù)之間的加法及減法。在執(zhí)行加載/存儲(chǔ)操作時(shí),處理器可計(jì)算一加載/存儲(chǔ)地址。加載/存儲(chǔ)地址是 從其加載一值到寄存器堆或?qū)碜约拇嫫鞫训闹荡鎯?chǔ)到其的存儲(chǔ)器地址。在執(zhí)行硬件預(yù)提 取時(shí),處理器可計(jì)算一硬件預(yù)提取地址。硬件預(yù)提取地址是在數(shù)據(jù)被請(qǐng)求用于線程執(zhí)行之 前將從其預(yù)先加載數(shù)據(jù)的存儲(chǔ)器地址。在執(zhí)行算術(shù)運(yùn)算時(shí),處理器可計(jì)算一算術(shù)運(yùn)算值,其 為算術(shù)運(yùn)算的結(jié)果(例如,操作數(shù)A加操作數(shù)B的和)。圖1的現(xiàn)有技術(shù)示意圖說明一常規(guī)系統(tǒng)100。如所說明,常規(guī)系統(tǒng)100可包括至 少三個(gè)加法器(106、112及114),其中一個(gè)加法器用于計(jì)算加載/存儲(chǔ)地址(地址產(chǎn)生加 法器106),第二加法器用于計(jì)算硬件預(yù)提取地址(硬件預(yù)提取加法器112),且第三加法器 用于計(jì)算算術(shù)運(yùn)算值(算術(shù)邏輯單元{ALU}加法器114)。參看圖1,地址產(chǎn)生加法器106 在計(jì)算加載/存儲(chǔ)地址時(shí)可接收一來自寄存器堆的存儲(chǔ)器地址操作數(shù)102及一立即操作數(shù) 104(例如,常數(shù))。立即操作數(shù)可為由操作的操作數(shù)列出的常數(shù)值,而非列出地址的操作 數(shù)。加法器106將存儲(chǔ)器地址操作數(shù)102與立即操作數(shù)104求和以產(chǎn)生加載/存儲(chǔ)地 址,其被發(fā)送到多路復(fù)用器108。如果執(zhí)行加載/存儲(chǔ)操作,則多路復(fù)用器108將加載/存 儲(chǔ)地址發(fā)送到多路復(fù)用器110。另一方面,如果正在執(zhí)行算術(shù)運(yùn)算,則多路復(fù)用器108可將 來自寄存器堆的第一 ALU操作數(shù)102轉(zhuǎn)發(fā)到ALU加法器114,而非將加載/存儲(chǔ)地址轉(zhuǎn)發(fā)到 多路復(fù)用器108。如果除執(zhí)行加載/存儲(chǔ)操作外或替代于執(zhí)行加載/存儲(chǔ)操作要執(zhí)行硬件 預(yù)提取,則多路復(fù)用器108可將來自地址產(chǎn)生加法器106的加載/存儲(chǔ)地址轉(zhuǎn)發(fā)到硬件預(yù) 提取加法器112,以便確定硬件預(yù)提取地址。如圖1的示意圖中所說明,硬件預(yù)提取加法器112進(jìn)一步經(jīng)配置以確定算后增量 地址。算后增量地址是等于先前執(zhí)行循環(huán)中使用的存儲(chǔ)器地址加上一常數(shù)的地址。舉例來 說,在當(dāng)前執(zhí)行循環(huán)中的操作執(zhí)行之后或期間,可將直接或間接地指向操作的操作數(shù)的地 址遞增一常數(shù)以產(chǎn)生所述算后增量地址。所述算后增量地址可直接或間接地指向要在隨后 執(zhí)行循環(huán)中處理的操作的操作數(shù)。在圖1的示意圖中,加法器112通過將加載/存儲(chǔ)地址與多路復(fù)用器116的輸出相加來確定算后增量地址,當(dāng)計(jì)算算后增量地址時(shí),多路復(fù)用器116選擇算后增量常數(shù) (pconstant)1180 pconstant 118可經(jīng)預(yù)定義及/或由系統(tǒng)100硬連線或存儲(chǔ)。當(dāng)加法器 112確定一硬件預(yù)提取地址時(shí),則多路復(fù)用器116在硬件預(yù)提取減量地址120與硬件預(yù)提取 增量地址122之間選擇,通過所述硬件預(yù)提取減量地址120及所述硬件預(yù)提取增量地址122 來使加載/存儲(chǔ)地址遞增或遞減。加法器112輸出算后增量地址或硬件預(yù)提取地址124, 其可在當(dāng)前執(zhí)行循環(huán)被發(fā)送到寄存器堆,或在下一執(zhí)行循環(huán)被發(fā)送到多路復(fù)用器110的輸 入。在下一執(zhí)行循環(huán)輸入到多路復(fù)用器110的硬件預(yù)提取地址124可用以存取數(shù)據(jù)高速緩 沖存儲(chǔ)器136,以用于預(yù)提取在存儲(chǔ)器地址134處的值。因此,多路復(fù)用器110視正在執(zhí)行 加載/存儲(chǔ)操作還是硬件預(yù)提取而在當(dāng)前執(zhí)行循環(huán)的加載/存儲(chǔ)地址與先前執(zhí)行循環(huán)的硬 件預(yù)提取地址之間選擇。如果要計(jì)算一算術(shù)運(yùn)算,則除多路復(fù)用器108將第一 ALU操作數(shù)102發(fā)送到ALU加 法器114的輸入外,多路復(fù)用器126視所述算術(shù)運(yùn)算而發(fā)送從來自寄存器堆的第二 ALU操 作數(shù)128及立即ALU操作數(shù)130 (亦即,常數(shù))中所選擇的輸出。舉例來說,一算術(shù)運(yùn)算可 將存儲(chǔ)于寄存器堆中的兩個(gè)值相加。因此,指令的輸入操作數(shù)可指向寄存器堆的存儲(chǔ)要相 加的值的兩個(gè)寄存器。在另一實(shí)例中,一個(gè)操作數(shù)可指向一存儲(chǔ)于寄存器堆中的值,而另一 操作數(shù)列出一預(yù)定義的常數(shù)。加法器114接著將多路復(fù)用器126的輸出與ALU第一操作數(shù) 102相加以輸出一算術(shù)運(yùn)算值132。系統(tǒng)100的一個(gè)問題是需要三個(gè)加法器來處理操作,因此增加了電路面積及處理 器的功率消耗。
發(fā)明內(nèi)容
在一實(shí)施例中,描述一種包括雙功能加法器的系統(tǒng)。在一項(xiàng)實(shí)施例中,所述系統(tǒng)包 括加法器。所述加法器經(jīng)配置以針對(duì)第一指令在所述第一指令為硬件預(yù)提取指令的情況下 確定用于硬件預(yù)提取的地址。所述加法器進(jìn)一步經(jīng)配置以針對(duì)所述第一指令在所述第一指 令為算術(shù)運(yùn)算指令的情況下確定來自算術(shù)運(yùn)算的值。本文所揭示的一個(gè)或一個(gè)以上實(shí)施例的優(yōu)點(diǎn)可包括減少硅中用于處理器的面積 及功率節(jié)省。提及此說明性實(shí)施例并不是要限制或界定本文所揭示的發(fā)明概念,而是為了提供 實(shí)例以輔助對(duì)其的理解。在審閱整個(gè)申請(qǐng)案之后,本發(fā)明的其它方面、優(yōu)點(diǎn)及特征將變得顯 而易見,整個(gè)申請(qǐng)案包括以下部分
具體實(shí)施方式
及權(quán)利要求書。
當(dāng)參看隨附圖式閱讀以下具體實(shí)施方式
時(shí)將更好地理解本文所揭示的本發(fā)明的 概念的這些及其它特征、方面及優(yōu)點(diǎn),其中圖1為說明用于計(jì)算加載/存儲(chǔ)地址、硬件預(yù)提取地址及算術(shù)運(yùn)算值的常規(guī)電路 的現(xiàn)有技術(shù)示意圖。圖2為說明包括經(jīng)配置以計(jì)算硬件預(yù)提取地址及算術(shù)運(yùn)算值的雙功能加法器的 示范性系統(tǒng)的示意圖。圖3為說明經(jīng)配置以在不存取寄存器堆的情況下使用由圖2的示意圖中的雙功能加法器所計(jì)算的算后增量地址的示范性系統(tǒng)的示意圖。圖4為說明包括經(jīng)配置以計(jì)算硬件預(yù)提取地址及加載/存儲(chǔ)值的雙功能加法器的 示范性系統(tǒng)的示意圖。圖5為說明經(jīng)配置以在不存取寄存器堆的情況下使用由圖4的示意圖中的雙功能 加法器所計(jì)算的算后增量地址的示范性系統(tǒng)的示意圖。圖6為說明多線程處理器的指令管線的圖。圖7為說明用于通過圖2及圖3的示意圖中所說明的系統(tǒng)執(zhí)行硬件預(yù)提取、加載 /存儲(chǔ)或算術(shù)運(yùn)算的示范性方法的流程圖。圖8為說明用于通過圖4及圖5的示意圖中所說明的系統(tǒng)執(zhí)行硬件預(yù)提取、加載 /存儲(chǔ)或算術(shù)運(yùn)算的示范性方法的流程圖。圖9為說明用于通過圖3及圖5的示意圖中所說明的系統(tǒng)計(jì)算并使用算后增量地 址的示范性方法的流程圖。圖10為說明并入有可包括雙功能加法器的數(shù)字信號(hào)處理器的實(shí)例便攜式通信裝 置的總圖。圖11為說明并入有可包括雙功能加法器的數(shù)字信號(hào)處理器的實(shí)例蜂窩式電話的 總圖。圖12為說明并入有可包括雙功能加法器的數(shù)字信號(hào)處理器的實(shí)例無線因特網(wǎng)協(xié) 議電話的總圖。圖13為說明并入有可包括雙功能加法器的數(shù)字信號(hào)處理器的實(shí)例便攜式數(shù)字助 理的總圖。圖14為說明并入有可包括雙功能加法器的數(shù)字信號(hào)處理器的實(shí)例音頻文件播放 器的總圖。
具體實(shí)施例方式在以下描述中,為解釋的目的,闡述眾多特定細(xì)節(jié)以便提供對(duì)本文中所揭示的發(fā) 明概念的全面理解。然而,所屬領(lǐng)域的技術(shù)人員將顯而易見本文中所揭示的發(fā)明概念可在 無這些特定細(xì)節(jié)中的一些的情況下來實(shí)踐。在其它情況中,眾所周知的結(jié)構(gòu)及裝置以框圖 的形式來展示以避免模糊本文中所揭示的發(fā)明概念的基本原理。本文中所揭示的發(fā)明概念的實(shí)施例涉及一種雙功能加法器。在一項(xiàng)實(shí)施例中,所 述雙功能加法器經(jīng)配置以針對(duì)處理器中的系統(tǒng)計(jì)算用于硬件預(yù)提取的硬件預(yù)提取地址及 從執(zhí)行算術(shù)運(yùn)算而計(jì)算算術(shù)運(yùn)算值。因此,所述加法器(例如,來自圖1的加法器112、114) 中的一者可從系統(tǒng)中移除,從而減少系統(tǒng)的大小及功率消耗。為了移除加法器,將到兩個(gè)加 法器112及114的輸入組合以輸入到一個(gè)加法器中。在一項(xiàng)實(shí)施例中,雙功能加法器為與 兩個(gè)常規(guī)加法器中的一者相同類型的加法器。共享一用于硬件預(yù)提取地址計(jì)算及算術(shù)運(yùn)算值計(jì)算的加法器的優(yōu)點(diǎn)在于未常規(guī) 地在同一執(zhí)行循環(huán)期間執(zhí)行所述兩個(gè)計(jì)算。舉例來說,硬件預(yù)提取常規(guī)地在不執(zhí)行算術(shù)運(yùn) 算的執(zhí)行循環(huán)中發(fā)生。結(jié)果,一加法器可在不由雙功能加法器產(chǎn)生顯著定時(shí)損失的情況下 執(zhí)行所述兩種類型的操作。除了從系統(tǒng)中移除一加法器外,在一項(xiàng)實(shí)施例中,系統(tǒng)還經(jīng)配置以在當(dāng)前執(zhí)行循環(huán)中使用來自先前執(zhí)行循環(huán)的所計(jì)算的算后增量地址(例如,由圖1中的加法器112計(jì)算) 而無需存取寄存器堆以加載算后增量地址。常規(guī)地,算后增量地址存儲(chǔ)于寄存器堆中,接著 在稍后時(shí)間被檢索。來自先前執(zhí)行循環(huán)的算后增量地址可指向要在當(dāng)前執(zhí)行循環(huán)中執(zhí)行的 操作的操作數(shù)。為了不需要存取寄存器堆以加載先前計(jì)算的算后增量地址,系統(tǒng)包含一反 饋路徑,其經(jīng)配置以將先前計(jì)算的算后增量地址輸入到多路復(fù)用器108 (圖1)中以供當(dāng)前 執(zhí)行循環(huán)中使用以存取數(shù)據(jù)高速緩沖存儲(chǔ)器136。結(jié)果,來自先前執(zhí)行循環(huán)的算后增量地址 是可用的,因?yàn)槠浔惠斎牖氐较到y(tǒng)中以用于當(dāng)前執(zhí)行循環(huán)。在不存取寄存器堆的情況下使用算后增量地址的優(yōu)點(diǎn)在于節(jié)省了處理器將暫停 執(zhí)行以讀取寄存器堆以獲得算后增量地址的時(shí)間。因此,包含系統(tǒng)的處理器的速度得以提
尚ο雙功能加法器的說明件實(shí)施例圖2到圖5中的示意圖說明包括一雙功能加法器的電路的示范性實(shí)施例。圖2的 示意圖說明一包括雙功能加法器224的示范性系統(tǒng)200,雙功能加法器224經(jīng)配置以計(jì)算硬 件預(yù)提取地址226并計(jì)算算術(shù)運(yùn)算值226。在一項(xiàng)實(shí)施例中,系統(tǒng)200在處理器的執(zhí)行單元 及/或加載/存儲(chǔ)單元中。圖3的示意圖說明一經(jīng)配置以在不存取寄存器堆的情況下使用 由雙功能加法器224計(jì)算的算后增量地址的示范性系統(tǒng)300。圖4的示意圖說明一包括雙 功能加法器414的示范性系統(tǒng)400,雙功能加法器414經(jīng)配置以計(jì)算硬件預(yù)提取地址并計(jì)算 加載/存儲(chǔ)地址。圖5的示意圖說明一經(jīng)配置以在不存取寄存器堆的情況下使用由圖4中 的示意圖的加法器422計(jì)算的算后增量地址的示范性系統(tǒng)500。參看圖2,到兩個(gè)單獨(dú)加法器(圖1中的112及114)的輸入經(jīng)組合且輸入到一個(gè) 加法器224中。如圖1的示意圖所說明,到兩個(gè)加法器112、114(圖1)的一個(gè)輸入源自多 路復(fù)用器108。因此,到共享加法器224的第一輸入耦合到多路復(fù)用器208的輸出。在一 項(xiàng)實(shí)施例中,多路復(fù)用器126 (圖1)由多路復(fù)用器218替代以在以下兩者之間切換(i)用 于硬件預(yù)提取及算后增量地址計(jì)算的多路復(fù)用器210的輸出;及(ii)來自寄存器堆的第二 ALU操作數(shù)222或用于算術(shù)運(yùn)算的立即ALU操作數(shù)220。多路復(fù)用器218的輸出耦合到共 享加法器224的第二輸入。在圖2的示意圖中,加載/存儲(chǔ)地址的計(jì)算類似于圖1的示意圖中的內(nèi)容。為了 由系統(tǒng)200對(duì)硬件預(yù)提取地址進(jìn)行計(jì)算,系統(tǒng)200可包括經(jīng)配置以視計(jì)算算后增量地址還 是硬件預(yù)提取地址而切換的多路復(fù)用器210。多路復(fù)用器218接收多路復(fù)用器210的輸出, 且經(jīng)配置以視正計(jì)算硬件預(yù)提取/算后增量地址還是算術(shù)運(yùn)算值234而切換。由系統(tǒng)200 進(jìn)行的算術(shù)運(yùn)算值的計(jì)算可用與圖1的示意圖中相同的方式計(jì)算,除以下內(nèi)容除外經(jīng)配 置以在來自寄存器堆的第二 ALU操作數(shù)222與立即ALU操作數(shù)220之間選擇的多路復(fù)用器 218進(jìn)一步接收由多路復(fù)用器210輸出的算后增量或硬件預(yù)提取信息,以便視要執(zhí)行什么 操作而將信息輸出到共享加法器224。在計(jì)算硬件預(yù)提取或算后增量地址234后,可在隨后執(zhí)行循環(huán)中經(jīng)由反饋環(huán)路 226將所述地址輸入到多路復(fù)用器228中。多路復(fù)用器228為用于在當(dāng)前執(zhí)行循環(huán)的加載 /存儲(chǔ)地址或先前執(zhí)行循環(huán)的硬件預(yù)提取地址之間選擇以便存取數(shù)據(jù)高速緩沖存儲(chǔ)器232 的控制邏輯的一項(xiàng)實(shí)施例。其它實(shí)施例可包括(但不限于)比較器、切換器或用于在加載 /存儲(chǔ)地址與硬件預(yù)提取地址之間選擇的其它數(shù)字邏輯。
參看圖3,與圖2的示意圖中一樣,系統(tǒng)300包括雙功能加法器224。系統(tǒng)300進(jìn) 一步包括在先前執(zhí)行循環(huán)中所計(jì)算的算后增量地址到多路復(fù)用器302的輸入的反饋環(huán)路 226。在一項(xiàng)實(shí)施例中,多路復(fù)用器302經(jīng)配置以用于第三輸入,以便接收算后增量地址 234。因此,多路復(fù)用器302可經(jīng)配置以視正由處理器執(zhí)行的操作而在算后增量地址234、 ALU第一運(yùn)算204及來自加法器206的加載/存儲(chǔ)地址之間選擇。舉例來說,如果處理器使 用算后增量地址以存取數(shù)據(jù)高速緩沖存儲(chǔ)器232以獲得一值,則多路復(fù)用器302將算后增 量地址輸出到多路復(fù)用器228以輸出存儲(chǔ)器地址230以存取數(shù)據(jù)高速緩沖存儲(chǔ)器232。參看圖4,系統(tǒng)400包括一經(jīng)配置以計(jì)算硬件預(yù)提取地址并計(jì)算加載/存儲(chǔ)地址 的雙功能加法器414。在一項(xiàng)實(shí)施例中,多路復(fù)用器410在用以計(jì)算加載/存儲(chǔ)地址的信 息(立即操作數(shù)408)與用以計(jì)算硬件預(yù)提取地址的信息(多路復(fù)用器406的輸出)之間 選擇。為了計(jì)算加載/存儲(chǔ)地址,多路復(fù)用器412將來自寄存器堆的存儲(chǔ)器地址432輸出 到雙功能加法器414。多路復(fù)用器410可選擇立即操作數(shù)408以用于到加法器414中的第 二輸入。接著可通過加法器414來計(jì)算加載/存儲(chǔ)地址,并將其輸出到多路復(fù)用器416。在 一項(xiàng)實(shí)施例中,多路復(fù)用器416可進(jìn)一步從加法器414接收硬件預(yù)提取地址。當(dāng)處理器正 執(zhí)行加載/存儲(chǔ)操作時(shí),多路復(fù)用器416可選擇加載/存儲(chǔ)地址。接著將加載/存儲(chǔ)地址 作為存儲(chǔ)器地址418從多路復(fù)用器416輸出以用于存取數(shù)據(jù)高速緩沖存儲(chǔ)器420。為了計(jì)算硬件預(yù)提取地址,首先在第一執(zhí)行循環(huán)中由加法器414計(jì)算加載/存儲(chǔ) 地址,接著在第二執(zhí)行循環(huán)中由多路復(fù)用器412來選擇在第一執(zhí)行循環(huán)中所計(jì)算的加載存 儲(chǔ)地址并將其輸入到地址產(chǎn)生加法器414中。用于計(jì)算硬件預(yù)提取地址的到加法器414的 其它輸入為硬件預(yù)提取減量地址402或硬件預(yù)提取增量地址404。多路復(fù)用器406在硬件 預(yù)提取減量地址402與硬件預(yù)提取增量地址404404之間選擇。在系統(tǒng)400中,ALU加法器422計(jì)算算后增量地址。因此,因?yàn)殡p功能加法器414 并不計(jì)算算后增量地址,所以多路復(fù)用器406不需要算后增量426。當(dāng)加法器414正計(jì)算硬 件預(yù)提取地址時(shí),多路復(fù)用器410可選擇多路復(fù)用器406的輸出。加法器414接著將增量 地址/減量地址402、404與加載/存儲(chǔ)地址相加以產(chǎn)生硬件預(yù)提取地址,其被輸出到多路 復(fù)用器416。因?yàn)橛布A(yù)提取地址及加載/存儲(chǔ)地址由雙功能加法器414來計(jì)算且由多路復(fù)用 器416來輸出,所以系統(tǒng)400不需要多路復(fù)用器以在加載/存儲(chǔ)地址與硬件預(yù)提取地址之 間選擇。在一項(xiàng)實(shí)施例中,將由多路復(fù)用器416輸出的地址用作存儲(chǔ)器地址418以存取數(shù) 據(jù)高速緩沖存儲(chǔ)器420而與所述地址是硬件預(yù)提取地址還是加載/存儲(chǔ)地址無關(guān)。為了計(jì)算算術(shù)運(yùn)算值,加法器422可在第一輸入處接收來自寄存器堆的第一操作 數(shù)432,并在第二輸入處接收來自寄存器堆的立即操作數(shù)(亦即,常數(shù))428或第二操作數(shù) 430。為了接收來自寄存器堆的第一操作數(shù)432,多路復(fù)用器412將操作數(shù)432輸出到多路 復(fù)用器416。因?yàn)殡p功能加法器414可接收兩種不同類型的輸入(亦即,來自寄存器堆的存 儲(chǔ)器操作數(shù)432或先前由加法器414計(jì)算的加載/存儲(chǔ)地址),所以系統(tǒng)400包含多路復(fù)用 器412。因此,多路復(fù)用器412視系統(tǒng)正在處理(i)加載/存儲(chǔ)或算術(shù)運(yùn)算還是(ii)硬件 預(yù)提取而選擇來自寄存器堆的操作數(shù)(存儲(chǔ)器或ALU) 432或加載/存儲(chǔ)地址。除了計(jì)算算術(shù)運(yùn)算值外,ALU加法器422可進(jìn)一步計(jì)算算后增量地址。為了計(jì)算算 后增量地址,加法器422還可接收算后增量426。因此,多路復(fù)用器424視加法器422正在計(jì)算算后增量地址還是算術(shù)運(yùn)算值而在ALU操作數(shù)428及430與算后增量426之間選擇。參看圖5,與圖4的示意圖中一樣,系統(tǒng)500包括雙功能加法器414。系統(tǒng)500進(jìn) 一步包括一在先前執(zhí)行循環(huán)中由ALU加法器422計(jì)算的算后增量地址到多路復(fù)用器502的 輸入的反饋環(huán)路。在一項(xiàng)實(shí)施例中,多路復(fù)用器502經(jīng)配置以用于第三輸入,以便接收算后 增量地址。因此,多路復(fù)用器502經(jīng)配置以視正由處理器執(zhí)行的操作而在算后增量地址、來 自寄存器堆的存儲(chǔ)器或ALU操作數(shù)414與所計(jì)算的加載/存儲(chǔ)地址之間選擇。舉例來說, 如果處理器使用算后增量地址以存取數(shù)據(jù)高速緩沖存儲(chǔ)器420以獲得一值,則多路復(fù)用器 502將算后增量地址作為存儲(chǔ)器地址418輸出以存取數(shù)據(jù)高速緩沖存儲(chǔ)器420。在圖2到圖5的示意圖中所說明的每一實(shí)施例中,包含兩個(gè)加法器(其中一者為 雙功能加法器)的系統(tǒng)經(jīng)配置以計(jì)算硬件預(yù)提取地址、加載/存儲(chǔ)地址及來自算術(shù)運(yùn)算的 值。已關(guān)于單線程處理器架構(gòu)描述圖2到圖5的示意圖,但如下文所描述,所述示意圖可用 于多線程處理器中。多線稈處理器中的說明件實(shí)施例的操作在一示范性實(shí)施例中,圖2到圖5的示意圖中所說明的系統(tǒng)200、300、400、500可 在多線程處理器架構(gòu)中操作。圖6為一說明多線程處理器的指令管線600的圖。參看圖6, 所述圖說明在六個(gè)線程618-628的時(shí)鐘602循環(huán)X到X+6 (604-616)上的管線600。在所 述實(shí)例中,指令(亦即,指令循環(huán))的處理被分成六個(gè)操作循環(huán)解碼(DE)、寄存器堆存取 (RF)、第一執(zhí)行循環(huán)(XI)、第二執(zhí)行循環(huán)(X2)、第三執(zhí)行循環(huán)(X3)及回寫(WB)。管線中的 另一可能存在但未展示的操作循環(huán)為提取。在所述實(shí)例中,每一操作循環(huán)可在一個(gè)時(shí)鐘循 環(huán)中執(zhí)行。在一項(xiàng)實(shí)施例中,一個(gè)指令循環(huán)為用以完成一個(gè)指令的每一操作循環(huán)的時(shí)間。舉 例來說,線程0618的一個(gè)指令循環(huán)可為時(shí)鐘循環(huán)X(604)到X+5 (614),或六個(gè)時(shí)鐘循環(huán)。如 果管線包括一提取操作循環(huán),則所述指令循環(huán)可為七個(gè)時(shí)鐘循環(huán)。因此,對(duì)于系統(tǒng)200到 300(圖2到圖3),一個(gè)指令循環(huán)可包括管線的每一操作循環(huán),例如,解碼(DE)、寄存器堆存 取(RF)、第一執(zhí)行循環(huán)(XI)、第二執(zhí)行循環(huán)(X2)、第三執(zhí)行循環(huán)(X3)及回寫(WB)。在描述實(shí)例加載指令的指令循環(huán)中包括的操作循環(huán)時(shí),提取操作循環(huán)(未圖示) 可為一管線操作循環(huán),其中處理器檢索并加載指令以用于執(zhí)行。舉例來說,關(guān)于圖2到圖3 的示意圖中所說明的系統(tǒng)200及300,可提取線程0 618的用以執(zhí)行存儲(chǔ)器地址A加某常數(shù) 的加載的實(shí)例指令,以便由處理器執(zhí)行。DE(630、644、656、666、674、680)為處理器將加載指 令解碼成操作數(shù)的操作循環(huán)。因此,在先前加載指令實(shí)例中,處理器在DE 630期間將指令 解碼以收集立即操作數(shù)及/或寄存器堆的存儲(chǔ)操作數(shù)的寄存器堆地址。RF(632、646、658、 668、676、682)為處理器從寄存器堆檢索操作數(shù)的操作循環(huán)。因此,處理器可從寄存器堆檢 索存儲(chǔ)器操作數(shù)204(圖2到圖3)。XI、X2 及 X3(634-638、648-2652、660-664、670-672、678)為處理器分別完成指令 的執(zhí)行的第一部分、第二部分及第三部分的操作循環(huán)。對(duì)于加載操作指令,操作循環(huán)X1634 可包括由地址產(chǎn)生加法器206 (圖2到圖3)計(jì)算加載/存儲(chǔ)地址。操作循環(huán)X2636可包括 由多路復(fù)用器208、302及多路復(fù)用器228 (圖2到圖3)將加載/存儲(chǔ)地址選擇為存儲(chǔ)器地 址230以用于存取數(shù)據(jù)高速緩沖存儲(chǔ)器232(圖2到圖3)。X3638可包括存取數(shù)據(jù)高速緩 沖存儲(chǔ)器232以執(zhí)行加載。WB(640、654)為可將操作數(shù)回寫到寄存器堆的操作循環(huán)。舉例來說,如果計(jì)算算后增量地址或算術(shù)運(yùn)算值,則在管線操作循環(huán)WB期間將算后增量地址或 算術(shù)運(yùn)算值寫入到寄存器堆。對(duì)于加載指令,處理器可在所述指令的WB期間不將值回寫到 寄存器堆。再次參看圖2到圖3的示意圖及圖6的圖中所說明的管線600,地址產(chǎn)生加法器 206可在管線操作循環(huán)Xl期間操作,多路復(fù)用器208、210、218、228及302可在管線操作循 環(huán)X2期間操作,且在管線操作循環(huán)X3期間加法器224可操作且可存取數(shù)據(jù)高速緩沖存儲(chǔ) 器232。舉例來說,在系統(tǒng)200 (圖2)中,為了計(jì)算硬件預(yù)提取地址,在管線操作循環(huán)Xl期 間由加法器206計(jì)算加載/存儲(chǔ)地址,在管線操作循環(huán)X2期間由多路復(fù)用器208將加載/ 存儲(chǔ)地址發(fā)送到加法器224的第一輸入,還在管線操作循環(huán)X2期間由多路復(fù)用器210、218 將硬件預(yù)提取減量地址212或硬件預(yù)提取增量地址214發(fā)送到加法器224的第二輸入,且 在管線操作循環(huán)X3期間由加法器224計(jì)算硬件預(yù)提取地址。在多線程架構(gòu)中,可同時(shí)對(duì)來自不同線程的指令執(zhí)行不同管線操作循環(huán)。如所說 明,在時(shí)鐘循環(huán)X+2 608期間,線程0 618可在操作循環(huán)Xl 634中,線程1 620可在操作循 環(huán)RF 646中,且線程2 622可在操作循環(huán)DE 656中。結(jié)果,用于多個(gè)線程的數(shù)據(jù)可同時(shí)在 系統(tǒng)200、300、400、500中。因?yàn)閿?shù)據(jù)可從單個(gè)線程的一個(gè)操作循環(huán)持續(xù)到另一操作循環(huán) (例如,可在下一操作循環(huán)中將硬件預(yù)提取地址或算后增量地址輸入回到系統(tǒng)中)且來自 不同線程的多個(gè)數(shù)據(jù)可同時(shí)存在于系統(tǒng)中,所以系統(tǒng)200、300、400、500可包括在系統(tǒng)的不 同位置中的臨時(shí)存儲(chǔ)設(shè)備,以便存儲(chǔ)線程的值,直到線程的下一執(zhí)行循環(huán)為止。舉例來說, 當(dāng)多路復(fù)用器228可選擇硬件預(yù)提取地址以存取數(shù)據(jù)高速緩沖存儲(chǔ)器136時(shí),可存儲(chǔ)在操 作循環(huán)X3 638(時(shí)鐘循環(huán)X+4 612)期間在線程0中由圖3的示意圖中的加法器224所計(jì) 算的硬件預(yù)提取地址,直到下一操作循環(huán)X2 (例如,時(shí)鐘循環(huán)X+9)。在一項(xiàng)實(shí)施例中,將觸 發(fā)器插入到系統(tǒng)中,且觸發(fā)器經(jīng)配置以存儲(chǔ)預(yù)定數(shù)目的時(shí)鐘循環(huán)的值(例如,存儲(chǔ)五個(gè)時(shí) 鐘循環(huán)的一硬件預(yù)提取地址)。存儲(chǔ)設(shè)備的其它實(shí)施例包括緩沖器、存儲(chǔ)器或其它存儲(chǔ)裝 置。結(jié)果,圖2到圖5的示意圖中所說明的系統(tǒng)的示范性實(shí)施例可經(jīng)配置以在單線程 架構(gòu)及多線程架構(gòu)中執(zhí)行。說明性實(shí)施例的操作的示范性方法圖7到圖9為說明圖2到圖5的示意圖中所說明的系統(tǒng)200、300、400、500的操作
的示范性方法的流程圖。圖7的流程圖說明一用于由圖2及圖3的示意圖中所說明的系統(tǒng) 200,300執(zhí)行硬件預(yù)提取、加載/存儲(chǔ)或算術(shù)運(yùn)算的示范性方法700。圖8的流程圖說明一 用于由圖4及圖5的示意圖中所說明的系統(tǒng)400、500執(zhí)行硬件預(yù)提取、加載/存儲(chǔ)或算術(shù)運(yùn) 算的示范性方法800。圖9的流程圖說明用于由圖3及圖5的示意圖中所說明的系統(tǒng)300、 500計(jì)算并使用算后增量地址的示范性方法900。參看圖7,流程圖說明由雙功能加法器224 (圖2到圖3)計(jì)算硬件預(yù)提取地址及算 術(shù)運(yùn)算值的方法700。在702處開始,處理器確定是否要執(zhí)行加載/存儲(chǔ)操作。如果要執(zhí)行 加載/存儲(chǔ)操作,則在704中加法器206通過將來自寄存器堆的存儲(chǔ)器操作數(shù)204與立即 操作數(shù)220相加而計(jì)算加載/存儲(chǔ)地址。在于704中計(jì)算加載/存儲(chǔ)地址后,在706中多 路復(fù)用器208及228 (圖2)或302及228 (圖3)選擇加載/存儲(chǔ)地址作為存取數(shù)據(jù)高速緩 沖存儲(chǔ)器232時(shí)的存儲(chǔ)器地址230。
如果在702中處理器確定不將執(zhí)行加載/存儲(chǔ),則在708中處理器確定是否要執(zhí) 行硬件預(yù)提取。如果要執(zhí)行硬件預(yù)提取,則在710中加法器206通過將來自寄存器堆的存 儲(chǔ)器操作數(shù)204與立即操作數(shù)204相加來計(jì)算加載/存儲(chǔ)地址。在計(jì)算加載/存儲(chǔ)地址 后,在712中多路復(fù)用器210及218選擇要與所計(jì)算的加載/存儲(chǔ)地址相加的硬件預(yù)提取 減量地址212或硬件預(yù)提取增量地址214。進(jìn)行到714,雙功能加法器224將來自712的選 定值與加載/存儲(chǔ)地址相加以產(chǎn)生硬件預(yù)提取地址。在于714中計(jì)算硬件預(yù)提取地址后, 在716中多路復(fù)用器228可選擇硬件預(yù)提取地址以存取數(shù)據(jù)高速緩沖存儲(chǔ)器232。如先前 所述,可在隨后執(zhí)行循環(huán)中執(zhí)行由多路復(fù)用器228進(jìn)行的硬件預(yù)提取地址的選擇及硬件預(yù) 提取的繼續(xù)執(zhí)行。如果在708中處理器確定不將執(zhí)行硬件預(yù)提取,則過程流到718。在718中,多路 復(fù)用器218從來自寄存器堆的第二 ALU操作數(shù)222或立即ALU操作數(shù)220中選擇。在一項(xiàng) 實(shí)施例中,操作列出所述操作數(shù)是要從寄存器堆檢索(例如,通過列出操作數(shù)的寄存器堆 地址)還是為常數(shù)(例如,操作數(shù)為常數(shù),而非寄存器堆地址)。多路復(fù)用器208選擇來自 寄存器堆的第一 ALU操作數(shù)204。在選擇要被相加以用于算術(shù)運(yùn)算的不同操作數(shù)后,在720 中雙功能加法器224將來自多路復(fù)用器218的選定操作數(shù)與來自寄存器堆的操作數(shù)204相 加以執(zhí)行算術(shù)運(yùn)算并產(chǎn)生算術(shù)運(yùn)算值。參看圖8,流程圖說明其中由雙功能加法器414(圖4到圖5)計(jì)算硬件預(yù)提取地址 及加載/存儲(chǔ)地址的方法800。在802處開始,處理器確定是否要執(zhí)行加載/存儲(chǔ)操作。如 果要執(zhí)行加載/存儲(chǔ)操作,則在804中多路復(fù)用器412選擇來自寄存器堆的存儲(chǔ)器操作數(shù) 432,且多路復(fù)用器410選擇立即操作數(shù)428。進(jìn)行到806,雙功能加法器414將多路復(fù)用器 412的輸出與多路復(fù)用器410的輸出(分別為存儲(chǔ)器操作數(shù)432及立即操作數(shù)428)相加以 產(chǎn)生加載/存儲(chǔ)地址。在于806中計(jì)算加載/存儲(chǔ)地址后,在808中多路復(fù)用器416 (圖4) 或502 (圖5)選擇加載/存儲(chǔ)地址作為存取數(shù)據(jù)高速緩沖存儲(chǔ)器420時(shí)的存儲(chǔ)器地址418。如果在802中處理器確定將不執(zhí)行加載/存儲(chǔ),則在810中處理器確定是否要執(zhí) 行硬件預(yù)提取。如果要執(zhí)行硬件預(yù)提取,則在812中多路復(fù)用器412選擇來自寄存器堆的 存儲(chǔ)器操作數(shù)432且多路復(fù)用器410選擇立即操作數(shù)428。進(jìn)行到814,雙功能加法器414 將多路復(fù)用器412的輸出與多路復(fù)用器410的輸出(分別為存儲(chǔ)器操作數(shù)432及立即操作 數(shù)428)相加以產(chǎn)生加載/存儲(chǔ)地址。在計(jì)算加載/存儲(chǔ)地址后,在816中多路復(fù)用器406 及410選擇要與所計(jì)算的加載/存儲(chǔ)地址相加的硬件預(yù)提取減量地址402或硬件預(yù)提取增 量地址404。在一項(xiàng)實(shí)施例中,多路復(fù)用器412選擇所計(jì)算的加載/存儲(chǔ)地址??稍陔S后執(zhí) 行循環(huán)中執(zhí)行在計(jì)算加載/存儲(chǔ)地址后由多路復(fù)用器412進(jìn)行的加載/存儲(chǔ)地址的選擇及 繼續(xù)執(zhí)行硬件預(yù)提取。進(jìn)行到818,雙功能加法器414將來自816的選定硬件增量/減量地 址與加載/存儲(chǔ)地址相加以產(chǎn)生硬件預(yù)提取地址。在于818中計(jì)算硬件預(yù)提取地址后,在 820中多路復(fù)用器416 (圖4)或502 (圖5)可選擇硬件預(yù)提取地址以存取數(shù)據(jù)高速緩沖存 儲(chǔ)器420。如果在810中處理器確定不將執(zhí)行硬件預(yù)提取,則過程流到822。在822中,多路 復(fù)用器424從來自寄存器堆的第二 ALU操作數(shù)128或立即ALU操作數(shù)130中選擇。在一項(xiàng) 實(shí)施例中,操作列出所述操作數(shù)是要從寄存器堆檢索(例如,通過列出操作數(shù)的寄存器堆 地址)還是為常數(shù)(例如,操作數(shù)為常數(shù),而非寄存器堆地址)。多路復(fù)用器412及416 (圖4)或502(圖5)選擇來自寄存器堆的第一 ALU操作數(shù)102。在選擇要相加以用于算術(shù)運(yùn)算 的不同操作數(shù)后,在824中ALU加法器422將來自多路復(fù)用器424的選定操作數(shù)與來自寄 存器堆的操作數(shù)102相加以執(zhí)行算術(shù)運(yùn)算并產(chǎn)生算術(shù)運(yùn)算值。參看圖9,流程圖說明系統(tǒng)300 (圖3)及系統(tǒng)500 (圖5)包括用于算后增量地址的 反饋環(huán)路以便在不存取寄存器堆以讀取算后增量地址的情況下計(jì)算并使用算后增量地址 的方法900。在902處開始,加法器224 (圖3)或加法器422 (圖5)計(jì)算要寫入到寄存器堆 的算后增量地址。處理器接著可將所計(jì)算的算后增量地址存儲(chǔ)于寄存器堆中。在計(jì)算算后 增量地址后,在904中處理器確定算后增量地址是否指向要從存儲(chǔ)器加載或要用于隨后執(zhí) 行循環(huán)的值。舉例來說,如果算后增量地址指向存儲(chǔ)器中的用于隨后指令的輸入操作數(shù),則 輸入操作數(shù)為要被加載以供隨后執(zhí)行循環(huán)期間使用的值。如果算后增量地址指向要加載的操作數(shù),則在906中使用所計(jì)算的算后增量地址 以在不存取寄存器堆的情況下存取數(shù)據(jù)高速緩沖存儲(chǔ)器232 (圖3)或420 (圖5)。因此,處 理器通過使用在系統(tǒng)300或500中持續(xù)的算后增量地址而略過從寄存器堆讀取算后增量地 址。對(duì)于系統(tǒng)300 (圖3),將在先前執(zhí)行循環(huán)期間由加法器224所計(jì)算的算后增量地址輸入 到多路復(fù)用器302中,以由多路復(fù)用器302及228選擇以存取數(shù)據(jù)高速緩沖存儲(chǔ)器232以 檢索所需的操作數(shù)。對(duì)于系統(tǒng)500 (圖5),將在先前執(zhí)行循環(huán)期間由加法器422所計(jì)算的算 后增量地址輸入到多路復(fù)用器502中,以由多路復(fù)用器502選擇以存取數(shù)據(jù)高速緩沖存儲(chǔ) 器420以檢索所需的操作數(shù)。如果在904中所計(jì)算的算后增量地址不指向要加載的操作數(shù),則系統(tǒng)300 (圖3) 或500 (圖5)視要執(zhí)行的操作的類型而在下一執(zhí)行循環(huán)中無需算后增量地址且因此存取寄 存器堆以獲得所需的操作數(shù)。包括上文描述的特征的實(shí)例裝置包括雙功能加法器及算后增量地址反饋環(huán)路的系統(tǒng)可包括于任何處理器中,例 如,數(shù)字信號(hào)處理器。圖10到圖14的總圖說明可并入雙功能加法器及/或算后增量反饋 環(huán)路以輔助執(zhí)行加載/存儲(chǔ)操作及硬件預(yù)提取、硬件預(yù)提取及算術(shù)運(yùn)算或在不存取處理器 的寄存器堆的情況下使用算后增量地址的實(shí)例裝置。所述圖被說明為在實(shí)例裝置的處理器 中包括雙功能加法器。圖10為說明便攜式通信裝置1000的示范性實(shí)施例的圖。如圖10的總圖中所說 明,便攜式通信裝置包括一包括數(shù)字信號(hào)處理器(DSP) 1004的芯片上系統(tǒng)1002。圖10的總 圖還展示一耦合到數(shù)字信號(hào)處理器1004及顯示器1008的顯示器控制器1006。此外,輸入 裝置1010耦合到DSP 1004。如圖所示,存儲(chǔ)器1012耦合到DSP 1004。另外,編碼器/解 碼器(CODEC) 1014可耦合到DSP 1004。揚(yáng)聲器1016及麥克風(fēng)1018可耦合到CODEC 1014。圖10的總圖進(jìn)一步說明一耦合到數(shù)字信號(hào)處理器1004及無線天線1022的無線 控制器1020。在一特定實(shí)施例中,電力供應(yīng)1024耦合到芯片上系統(tǒng)602。此外,在一特定 實(shí)施例中,如圖6中所說明,顯示器626、輸入裝置630、揚(yáng)聲器1016、麥克風(fēng)1018、無線天線 1022及電力供應(yīng)1024在芯片上系統(tǒng)1002的外部。然而,每一者耦合到芯片上系統(tǒng)1002的 一組件。在一特定實(shí)施例中,DSP 1004包括一雙功能加法器1080以計(jì)算硬件預(yù)提取地址 與算術(shù)運(yùn)算值兩者或硬件預(yù)提取地址與加載/存儲(chǔ)地址兩者,如先前所描述。圖11為說明蜂窩式電話1100的示范性實(shí)施例的圖。如圖所示,蜂窩式電話1100包括一包括耦合在一起的數(shù)字基帶處理器1104及模擬基帶處理器1106的芯片上系統(tǒng) 1102。在一特定實(shí)施例中,數(shù)字基帶處理器1104為數(shù)字信號(hào)處理器。如圖11的總圖中所 說明,顯示器控制器1108及觸摸屏幕控制器1110耦合到數(shù)字基帶處理器1104。接著,在芯 片上系統(tǒng)1102外部的觸摸屏幕顯示器1112耦合到顯示器控制器1108及觸摸屏幕控制器 1110。圖11的總圖進(jìn)一步說明視頻編碼器1114(例如,逐行倒相(PAL)編碼器、順序傳 送彩色與記憶制(sequential couleur a memo ire, SECAM)編碼器或美國(guó)國(guó)家電視制式委 員會(huì)(NTSC)編碼器)耦合到數(shù)字基帶處理器1104。此外,視頻放大器1116耦合到視頻編 碼器1114及觸摸屏幕顯示器1112。又,視頻端口 1118耦合到視頻放大器1116。如圖11 的總圖中所描繪,通用串行總線(USB)控制器1120耦合到數(shù)字基帶處理器1104。又,USB 端口 1122耦合到USB控制器1120。存儲(chǔ)器1124及用戶身份模塊(SIM)卡1126還可耦合 到數(shù)字基帶處理器1104。此外,如圖11的總圖中所示,數(shù)字相機(jī)1128可耦合到數(shù)字基帶處 理器1104。在示范性實(shí)施例中,數(shù)字相機(jī)1128為電荷耦合裝置(CXD)相機(jī)或互補(bǔ)金屬氧化 物半導(dǎo)體(CMOS)相機(jī)。如圖11的總圖中所進(jìn)一步說明,立體聲音頻CODEC 1130可耦合到模擬基帶處理 器1106。此外,音頻放大器1132可耦合到立體聲音頻CODEC 1130。在一示范性實(shí)施例中, 第一立體聲揚(yáng)聲器1134及第二立體聲揚(yáng)聲器1136耦合到音頻放大器1132。麥克風(fēng)放大器 1138還可耦合到立體聲音頻CODEC 1130。另外,麥克風(fēng)1140可耦合到麥克風(fēng)放大器1138。 在特定實(shí)施例中,調(diào)頻(FM)無線電調(diào)諧器1142可耦合到立體聲音頻CODEC 1130。又,F(xiàn)M天 線1144耦合到FM無線電調(diào)諧器1142。此外,立體聲耳機(jī)1146可耦合到立體聲音頻CODEC 1130。圖11的總圖進(jìn)一步說明射頻(RF)收發(fā)器1148,其可耦合到模擬基帶處理器 1106。RF切換器1150可耦合到RF收發(fā)器1148及RF天線1152。小鍵盤1154可耦合到模 擬基帶處理器1106。又,具有麥克風(fēng)1156的單聲道耳機(jī)可耦合到模擬基帶處理器1106。此 外,振動(dòng)器裝置1158可耦合到模擬基帶處理器1106。圖11的總圖還展示一可耦合到芯片 上系統(tǒng)1102的電力供應(yīng)1160。在特定實(shí)施例中,電力供應(yīng)1160為將電力提供到蜂窩式電 話1100的各種組件的直流(DC)電力供應(yīng)。此外,在特定實(shí)施例中,電力供應(yīng)為可充電DC 電池或源自耦合到交流(AC)電源的AC到DC變壓器的DC電源。如圖11的總圖中所描繪,觸摸屏幕顯示器1112、視頻端口 1118、USB端口 1122、相 機(jī)1128、第一立體聲揚(yáng)聲器1134、第二立體聲揚(yáng)聲器1136、麥克風(fēng)1140、FM天線1144、立體 聲耳機(jī)1146、RF切換器1150、RF天線1152、小鍵盤1154、單聲道耳機(jī)1156、振動(dòng)器1158及 電力供應(yīng)1160可在芯片上系統(tǒng)1102的外部。在特定實(shí)施例中,數(shù)字基帶處理器1104包括 一用以計(jì)算硬件預(yù)提取地址與算術(shù)運(yùn)算值兩者或硬件預(yù)提取地址與加載/存儲(chǔ)地址兩者 的雙功能加法器1180,如先前所描述。圖12為說明無線因特網(wǎng)協(xié)議(IP)電話1200的示范性實(shí)施例的圖。如圖所示,無 線IP電話1200包括一包括數(shù)字信號(hào)處理器(DSP) 1204的芯片上系統(tǒng)1202。顯示器控制器 1206可耦合到DSP 1204,且顯示器1208耦合到顯示器控制器1206。在示范性實(shí)施例中,顯 示器1208為液晶顯示器(IXD)。圖12進(jìn)一步展示小鍵盤1210可耦合到DSP 1204??扉W存儲(chǔ)器1212可耦合到DSP 1204。同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM) 1214、靜
13態(tài)隨機(jī)存取存儲(chǔ)器(SRAM) 1216及電可擦除可編程只讀存儲(chǔ)器(EEPROM) 1218也可耦合到 DSP 1204。圖12的總圖還展示發(fā)光二極管(LED) 1220可耦合到DSP 1204。另外,在特定 實(shí)施例中,語音CODEC 1222可耦合到DSP 1204。放大器1224可耦合到語音CODEC 1222, 且單聲道揚(yáng)聲器1226可耦合到放大器1224。圖12的總圖進(jìn)一步說明一耦合到語音CODEC 1222的單聲道耳機(jī)1228。在特定實(shí)施例中,單聲道耳機(jī)1228包括麥克風(fēng)。無線局域網(wǎng)(WLAN)基帶處理器1230可耦合到DSP 1204。RF收發(fā)器1232可耦合 到WLAN基帶處理器1230,且RF天線1234可耦合到RF收發(fā)器1232。在特定實(shí)施例中,藍(lán)牙 控制器1236還可耦合到DSP 1204,且藍(lán)牙天線1238可耦合到控制器1236。圖12的總圖 還展示USB端口 1240也可耦合到DSP 1204。此外,電力供應(yīng)1242耦合到芯片上系統(tǒng)1202 且將電力提供到無線IP電話1200的各種組件。如圖12的總圖中所指示,顯示器1208、小鍵盤1210、LED 1220、單聲道揚(yáng)聲器 1226、單聲道耳機(jī)1228、RF天線1234、藍(lán)牙天線1238、USB端口 1240及電力供應(yīng)1242可在 芯片上系統(tǒng)1202的外部且耦合到芯片上系統(tǒng)1202的一個(gè)或一個(gè)以上組件。在特定實(shí)施例 中,DSP 1204包括雙功能加法器1280以計(jì)算硬件預(yù)提取地址與算術(shù)運(yùn)算值兩者或硬件預(yù) 提取地址與加載/存儲(chǔ)地址兩者,如先前所描述。圖13為說明便攜式數(shù)字助理(PDA)900的示范性實(shí)施例的圖。如圖所示,PDA 1300 包括一包括數(shù)字信號(hào)處理器(DSP) 1304的芯片上系統(tǒng)1302。觸摸屏幕控制器1306及顯示 器控制器1308耦合到DSP 1304。此外,觸摸屏幕顯示器1310耦合到觸摸屏幕控制器1306 并耦合到顯示器控制器1308。圖13的總圖還指示小鍵盤1312可耦合到DSP1304。在特定實(shí)施例中,立體聲音頻CODEC 1326可耦合到DSP 1304。第一立體聲放大器 1328可耦合到立體聲音頻CODEC 1326,且第一立體聲揚(yáng)聲器1330可耦合到第一立體聲放 大器1328。另外,麥克風(fēng)放大器1332可耦合到立體聲音頻CODEC 1326,且麥克風(fēng)1334可 耦合到麥克風(fēng)放大器1332。圖13的總圖進(jìn)一步展示第二立體聲放大器1336可耦合到立體 聲音頻CODEC 1326且第二立體聲揚(yáng)聲器1338可耦合到第二立體聲放大器1336。在特定實(shí) 施例中,立體聲耳機(jī)1340還可耦合到立體聲音頻CODEC 1326。圖13的總圖還說明802. 11控制器1342可耦合到DSP 1304且802. 11天線1344 可耦合到802. 11控制器1342。此外,藍(lán)牙控制器1346可耦合到DSP 1304,且藍(lán)牙天線1348 可耦合到藍(lán)牙控制器1346。USB控制器1350可耦合到DSP 1304,且USB端口 1352可耦合 到USB控制器1350。另外,智能卡1354 (例如,多媒體卡(MMC)或安全數(shù)字卡(SD))可耦合 到DSP 1304。此外,電力供應(yīng)1356可耦合到芯片上系統(tǒng)1302且可將電力提供到PDA 1300 的各種組件。如圖13的總圖中所指示,顯示器1310、小鍵盤1312、IrDA端口 1322、數(shù)字相機(jī) 1324、第一立體聲揚(yáng)聲器1330、麥克風(fēng)1334、第二立體聲揚(yáng)聲器1338、立體聲耳機(jī)1340、 802. 11天線1344、藍(lán)牙天線1348、USB端口 1352及電力供應(yīng)1350可在芯片上系統(tǒng)1302外 部且耦合到芯片上系統(tǒng)上的一個(gè)或一個(gè)以上組件。在特定實(shí)施例中,DSP 1304包括雙功能 加法器1380以計(jì)算硬件預(yù)提取地址與算術(shù)運(yùn)算值兩者或硬件預(yù)提取地址與加載/存儲(chǔ)地 址兩者,如先前所描述。圖14為說明音頻文件播放器(例如,MP3播放器)1400的示范性實(shí)施例的圖。如 圖所示,音頻文件播放器1400包括一包括數(shù)字信號(hào)處理器(DSP) 1404的芯片上系統(tǒng)1402。顯示器控制器1406可耦合到DSP 1404,且顯示器1408耦合到顯示器控制器1406。在示范 性實(shí)施例中,顯示器1408為液晶顯示器(IXD)。小鍵盤1410可耦合到DSP 1404。如圖14的總圖中進(jìn)一步描繪,快閃存儲(chǔ)器1412及只讀存儲(chǔ)器(ROM) 1414可耦合 到DSP 1404。另外,在特定實(shí)施例中,音頻CODEC 1416可耦合到DSP 1404。放大器1418可 耦合到音頻CODEC 1416,且單聲道揚(yáng)聲器1420可耦合到放大器1418。圖14的總圖進(jìn)一步 指示麥克風(fēng)輸入1422及立體聲輸入1424也可耦合到音頻CODEC 1416。在特定實(shí)施例中, 立體聲耳機(jī)1426也可耦合到音頻CODEC 1416。USB端口 1428及智能卡1430可耦合到DSP 1404。另外,電力供應(yīng)1432可耦合到 芯片上系統(tǒng)1402,且可將電力提供到音頻文件播放器1400的各種組件。如圖14的總圖中所指示,顯示器1408、小鍵盤1410、單聲道揚(yáng)聲器1420、麥克風(fēng) 輸入1422、立體聲輸入1424、立體聲耳機(jī)1426、USB端口 1428及電力供應(yīng)1432在芯片上系 統(tǒng)1402的外部且耦合到芯片上系統(tǒng)1402上的一個(gè)或一個(gè)以上組件。在特定實(shí)施例中,DSP 1404包括雙功能加法器1480以計(jì)算硬件預(yù)提取地址與算術(shù)運(yùn)算值兩者或硬件預(yù)提取地址 與加載/存儲(chǔ)地址兩者,如先前所描述。鐘已僅出于說明及描述的目的而呈現(xiàn)對(duì)本文所揭示的發(fā)明概念的實(shí)施例的前述描 述,且所述描述并不希望是詳盡的或?qū)⒈疚乃沂镜陌l(fā)明概念限于所揭示的精確形式。在 不脫離本文所揭示的發(fā)明概念的精神及范圍的情況下,所屬領(lǐng)域的技術(shù)人員將顯而易見眾 多修改及調(diào)適。
權(quán)利要求
一種系統(tǒng),其包含經(jīng)配置以針對(duì)第一指令確定以下內(nèi)容的第一加法器在所述第一指令為硬件預(yù)提取指令的情況下,確定用于硬件預(yù)提取的地址;以及在所述第一指令為算術(shù)運(yùn)算指令的情況下,確定來自算術(shù)運(yùn)算的值。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其進(jìn)一步包含可通信地耦合到所述第一加法器的第二 加法器,其中所述第二加法器經(jīng)配置以確定用于加載/存儲(chǔ)操作的地址。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其進(jìn)一步包含控制邏輯,其可通信地耦合到所述第一加法器及所述第二加法器,其中所述控制邏輯 經(jīng)配置以從先前執(zhí)行循環(huán)期間所述第一加法器的輸出及當(dāng)前執(zhí)行循環(huán)期間所述第二加法 器的輸出中選擇。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其進(jìn)一步包含可通信地耦合到所述控制邏輯的數(shù)據(jù)高 速緩沖存儲(chǔ)器,其中所述控制邏輯進(jìn)一步經(jīng)配置以使用所述第一加法器的所述輸出或所述 第二加法器的所述輸出中的一者來存取所述數(shù)據(jù)高速緩沖存儲(chǔ)器。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述第一加法器進(jìn)一步經(jīng)配置以確定算后增量地址。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其進(jìn)一步包含可通信地耦合到所述第二加法器的旁 路,其中所述旁路經(jīng)配置以將在所述先前執(zhí)行循環(huán)期間由所述第一加法器輸出的所述算后 增量地址發(fā)送到所述當(dāng)前執(zhí)行循環(huán)期間所述第二加法器的輸入。
7.根據(jù)權(quán)利要求3所述的系統(tǒng),其進(jìn)一步包含可通信地耦合到所述第一加法器及所述 第二加法器的寄存器堆,其中所述寄存器堆經(jīng)配置以接收來自所述第一加法器的所述輸出; 將存儲(chǔ)器操作數(shù)發(fā)送到所述第二加法器;以及 將算術(shù)邏輯單元(ALU)操作數(shù)發(fā)送到所述第二加法器。
8.根據(jù)權(quán)利要求3所述的系統(tǒng),其中所述系統(tǒng)是在多線程架構(gòu)中。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述系統(tǒng)經(jīng)配置以存儲(chǔ)在線程的先前時(shí)鐘循環(huán)期 間確定的所述第二加法器的所述輸出,直到所述線程的所述當(dāng)前時(shí)鐘循環(huán)為止。
10.一種方法,其包含在第一指令為硬件預(yù)提取指令的情況下,由第一加法器確定用于硬件預(yù)提取的地址;以及在所述第一指令為算術(shù)運(yùn)算指令的情況下,由所述第一加法器確定來自算術(shù)運(yùn)算的值。
11.根據(jù)權(quán)利要求10所述的方法,其進(jìn)一步包含由可通信地耦合到所述第一加法器的第二加法器確定用于加載/存儲(chǔ)操作的地址;以及由可通信地耦合到所述第一加法器及所述第二加法器的控制邏輯從先前執(zhí)行循環(huán)期 間所述第一加法器的輸出及當(dāng)前執(zhí)行循環(huán)期間所述第二加法器的輸出中選擇。
12.根據(jù)權(quán)利要求11所述的方法,其進(jìn)一步包含使用所述第一加法器的所述輸出或所 述第二加法器的所述輸出中的一者來存取可通信地耦合到所述控制邏輯的數(shù)據(jù)高速緩沖 存儲(chǔ)器。
13.根據(jù)權(quán)利要求12所述的方法,其進(jìn)一步包含由所述第一加法器確定算后增量地址。
14.根據(jù)權(quán)利要求13所述的方法,其進(jìn)一步包含將在所述先前執(zhí)行循環(huán)期間由所述第 一加法器輸出的所述算后增量地址發(fā)送到所述當(dāng)前執(zhí)行循環(huán)期間所述第二加法器的輸入。
15.根據(jù)權(quán)利要求11所述的方法,其進(jìn)一步包含由可通信地耦合到所述第一加法器的 寄存器堆存儲(chǔ)從所述第一加法器接收的輸出。
16.一種系統(tǒng),其包含用于確定以下內(nèi)容的裝置在第一指令為硬件預(yù)提取指令的情況下,確定用于硬件預(yù)提取的地址;以及在所述第 一指令為算術(shù)運(yùn)算指令的情況下,確定來自算術(shù)運(yùn)算的值。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其進(jìn)一步包含用于確定用于加載/存儲(chǔ)操作的地址的裝置;以及用于從在當(dāng)前執(zhí)行循環(huán)期間確定的所述加載/存儲(chǔ)操作的所述地址及在先前執(zhí)行循 環(huán)期間確定的所述硬件預(yù)提取的所述地址中選擇的裝置。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其進(jìn)一步包含用于使用選定地址存取數(shù)據(jù)高速緩沖 存儲(chǔ)器的裝置。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述用于確定用于所述加載/存儲(chǔ)操作的所述 地址的裝置進(jìn)一步包含用于確定算后增量地址的裝置。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其進(jìn)一步包含用于將在所述先前執(zhí)行循環(huán)期間由所 述第一加法器輸出的所述算后增量地址發(fā)送到所述當(dāng)前執(zhí)行循環(huán)期間所述第二加法器的 輸入的裝置。
全文摘要
本發(fā)明描述一種包括雙功能加法器的系統(tǒng)。在一項(xiàng)實(shí)施例中,所述系統(tǒng)包括加法器。所述加法器經(jīng)配置以針對(duì)第一指令在所述第一指令為硬件預(yù)提取指令的情況下確定用于硬件預(yù)提取的地址。所述加法器進(jìn)一步經(jīng)配置以針對(duì)所述第一指令在所述第一指令為算術(shù)運(yùn)算指令的情況下確定來自算術(shù)運(yùn)算的值。
文檔編號(hào)G06F9/38GK101960422SQ200980107479
公開日2011年1月26日 申請(qǐng)日期2009年2月23日 優(yōu)先權(quán)日2008年3月4日
發(fā)明者盧奇安·科德雷斯庫(kù), 埃里克·J·普隆德克, 阿賈伊·A·英格爾 申請(qǐng)人:高通股份有限公司