專利名稱:處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及提取并執(zhí)行存儲在指令高速緩沖存儲器的指令的處理器等,尤其涉及一種處理器,在執(zhí)行循環(huán)(loop)部分的指令時,即使在不必訪問指令高速緩沖存儲器的情況下也可以提供指令。
技術(shù)背景近幾年,移動電話、數(shù)字視頻照相機、數(shù)字視頻刻錄機等數(shù)字家 電產(chǎn)品越來越普及。并且,對于安裝在這些產(chǎn)品的處理器,需要低功 耗且高處理能力的處理器。對此,例如提出了一種處理器,通過縮短因轉(zhuǎn)移預(yù)測錯誤而引起的損失(penalty)周期,從而實現(xiàn)低功耗且高處理能力(例如,參照非專 利文獻1)。具體而言, 一般該處理器在管理指令獲取的部分包括兩個指令緩 沖器,使用任一個指令緩沖器來存儲并提供從指令高速緩沖存儲器獲 取后的指令。而且,在執(zhí)行轉(zhuǎn)移指令時,使用兩種指令緩沖器分別存 儲從指令高速緩沖存儲器獲取的后續(xù)指令及轉(zhuǎn)移目的地指令,并按照 轉(zhuǎn)移目的地從任一個指令緩沖器提供指令。例如,在此,在作為指令的提供源使用第一指令緩沖器的情況下, 若在轉(zhuǎn)移指令的譯碼階段預(yù)測為轉(zhuǎn)移目的地指令(TAKEN),則將轉(zhuǎn)移 目的地指令從指令高速緩沖存儲器獲取并存儲到第二緩沖器,從而提 供指令。而且,若在轉(zhuǎn)移指令的執(zhí)行階段發(fā)生預(yù)測錯誤,即在實際轉(zhuǎn)移過程為后續(xù)指令(NOT TAKEN),則將第一指令緩沖器的指令投入到 流水線,并廢棄第二指令緩沖器的指令,從而縮短因指令獲取的延遲 (latency)而導致的損失周期。再者,該處理器除了包括這些指令緩沖器以外還包括第三指令緩 沖器。而且,在執(zhí)行轉(zhuǎn)移指令之前,執(zhí)行可以確定該轉(zhuǎn)移指令的轉(zhuǎn)移 目的地地址的指令,預(yù)先讀取該轉(zhuǎn)移目的地地址的指令并存儲到第三 指令緩沖器,從而縮短因指令獲取的延遲而導致的損失周期。非專利文獻1 : Naohiko IRIE, Fumio ARAKAWA, Kunio UCHIYAMA, Shinichi YOSHIOKA, Atsushi HASEGAWA, Kevin IADONATE, Mark DEBBAGE, David SHEPHERD, and MargaretGEARTY,"Branch Micro-Architecture of an Embedded Processor with Split Branch Architecture for Digital Consumer Products,"IEICE TRANS. ELECTRON., VOL.E85-C, NO.2 FEBRUARY 2002, pp.315-322.然而,由于該存儲器包括的兩種指令緩沖器性質(zhì)不同,因此即使 是相同的轉(zhuǎn)移指令也需要按照轉(zhuǎn)移預(yù)測的錯誤靈活地使用指令緩沖 器。其結(jié)果是,使切換指令緩沖器時的控制變得復雜。并且,由于在 轉(zhuǎn)移指令的譯碼階段,將轉(zhuǎn)移目的地指令從指令高速緩沖存儲器獲取 并存儲到第二指令緩沖器,因此導致可以獲取的時間變小,從而難以 充分存儲并提供指令。其結(jié)果是,存在如下問題,即,為了進一步以
低功耗且高速度執(zhí)行循環(huán)處理等,即使將指令緩沖器的容量變大來試 圖減少訪問指令高速緩沖存儲器的頻度,也不會有很好的效果。發(fā)明內(nèi)容于是,本發(fā)明鑒于上述問題,其目的在于提供一種處理器,能夠 以低功耗且以高速度執(zhí)行循環(huán)處理等。為了實現(xiàn)上述目的,本發(fā)明涉及的處理器的特點是,(a)—種處理器,提取并執(zhí)行存儲在指令高速緩沖存儲器的指令,包括(b)主指令緩沖器,存儲并提供從所述指令高速緩沖存儲器提取的一個以上的指令;(c揮一子指令緩沖器,存儲并輔助提供從所述指令高速緩沖存儲 器提取的一個以上的指令;(d)選擇器,選擇所述主指令緩沖器及所述 第一子指令緩沖器中的任一個,以作為指令提供源;以及(e)指令獲取 控制單元,在通過所述選擇器使所述主指令緩沖器提供指令、并執(zhí)行 第一填充指令的情況下,從第一地址提取一個以上的指令并存儲到所 述第一子指令緩沖器,并在反復提供從所述第一地址提取的一個以上 的指令時,控制所述選擇器來選擇所述第一子指令緩沖器,通過所述 選擇器使所述第一子指令緩沖器提供指令,所述第一填充指令表示將 從所述指令高速緩沖存儲器的第一地址提取的一個以上的指令填充到 所述第一子指令緩沖器。據(jù)此,除了包括主要使用的主指令緩沖器以外還包括輔助使用的 第一子指令緩沖器等,從而可以在不必反復訪問指令高速緩沖存儲器 的情況下獲取循環(huán)部分等的指令。而且,通過從第一子指令緩沖器提供指令,從而可以縮短流水線的損失周期,并可以填充因轉(zhuǎn)移而產(chǎn)生 的流水線的空白。再者,通過不必訪問指令高速緩沖存儲器,可以避 免等待訪問等,從而可以提高執(zhí)行處理的性能。并且,根據(jù)第一填充 指令來調(diào)整獲取期間,從而可以調(diào)整存儲到第一子指令緩沖器的期間。 據(jù)此,為了將指令緩沖器的容量變大并可以充分發(fā)揮此效果,預(yù)先估 計充分的期間來執(zhí)行第一填充指令,從而可以充分存儲并提供指令。 根據(jù)該結(jié)果,可以減少訪問指令高速緩沖存儲器的頻度,并以低功耗 且以高速度執(zhí)行循環(huán)處理等。而且,不僅可以作為處理器來實現(xiàn)本發(fā)明,也可以作為控制處理 器的方法(以下,稱為指令填充方法)等來實現(xiàn)本發(fā)明。并且,也可以如下實現(xiàn)本發(fā)明,即具備由本發(fā)明涉及的處理器所提供的功能(以下,稱為指令填充功能)的LSI (Large Scale Integration :大規(guī)模集成電路); IP芯片(以下,稱為指令填充芯片),在FPGA(Field Programmable Gate Array :現(xiàn)場可編程門陣列)、CPLD(Complex Programmable Logic Device :復雜可編程邏輯器)等可編程邏輯器形成指令填充功能;以及 存儲有指令填充芯片的存儲介質(zhì)等。如上所述,根據(jù)本發(fā)明涉及的處理器,除了包括主要使用的主指 令緩沖器以外還包括輔助使用的第一子指令緩沖器等,從而可以在不 必反復訪問指令高速緩沖存儲器的情況下獲取循環(huán)部分及子程序的返 回部分等的指令。而且,從第一子指令緩沖器及第二子指令緩沖器提 供指令,從而可以縮短流水線的損失周期,并可以填充因轉(zhuǎn)移而產(chǎn)生 的流水線的空白。再者,通過不必訪問指令高速緩沖存儲器,可以避 免等待訪問等,從而可以提高執(zhí)行處理的性能。并且,根據(jù)第一填充 指令來調(diào)整獲取期間,從而可以調(diào)整存儲到第一子指令緩沖器的期間。 據(jù)此,為了將指令緩沖器的容量變大并可以充分發(fā)揮此效果,預(yù)先估 計充分的期間來執(zhí)行第一填充指令,從而可以充分存儲并提供指令。 其結(jié)果是,可以減少訪問指令高速緩沖存儲器的頻度,并以低功耗且 以高速度執(zhí)行循環(huán)處理等。
圖1是本發(fā)明涉及的實施例1中的處理器的結(jié)構(gòu)圖。圖2是示出本發(fā)明涉及的實施例1中的向處理器提供的指令串的 例子的圖。圖3A是本發(fā)明涉及的實施例1中的通知處理器的TRA用指令緩 沖器的填充結(jié)束的邏輯電路圖。圖3B是本發(fā)明涉及的實施例1中的針對通知處理器的TRA用指 令緩沖器的填充結(jié)束的邏輯電路的邏輯表。圖4是示出本發(fā)明涉及的實施例1中的TAR用指令緩沖器及LR 用指令緩沖器的各狀態(tài)遷移的圖。圖5是示出本發(fā)明涉及的實施例1中的處理器在填充指令時執(zhí)行 的指令填充處理的第一圖。圖6A是示出本發(fā)明涉及的實施例1中的的處理器在填充指令時執(zhí)行的指令填充處理的第二圖。圖6B是示出本發(fā)明涉及的實施例1中的的處理器在填充指令時執(zhí)
行的指令填充處理的第三圖。圖7是示出本發(fā)明涉及的實施例1中的處理器在提供指令時執(zhí)行 的指令提供處理的第一圖。圖8A是示出本發(fā)明涉及的實施例1中的處理器在提供指令時執(zhí)行 的指令提供處理的第二圖。圖8B是示出本發(fā)明涉及的實施例1中的處理器在提供指令時執(zhí)行 的指令提供處理的第三圖。圖9是示出本發(fā)明涉及的實施例1中的處理器的填充指令時的工 作例子的圖。圖10是本發(fā)明涉及的實施例2中的處理器的結(jié)構(gòu)圖。 圖11是示出本發(fā)明涉及的實施例2中的向處理器提供的指令串的 第一個例子的圖。圖12是示出本發(fā)明涉及的實施例2中的向處理器提供的指令串的第二個例子的圖。圖13是示出本發(fā)明涉及的實施例2中的向處理器提供的指令串的第三個例子的圖。圖14是本發(fā)明涉及的其它實施例中的處理器的結(jié)構(gòu)圖。符號說明10指令高速緩沖存儲器 100、 200、 300處理器 101指令執(zhí)纟亍部 102、 202、 302指令獲取控制部 111、 211、 311選擇器112 —般指令地址寄存器113TAR用指令地址寄存器114LR用指令地址寄存器121、 221、 321選擇器122 —般指令緩沖器123TAR用指令緩沖器124LR用指令緩沖器213、 313第一TAR用指令地址寄存器214、 314第二TAR用指令地址寄存器223、 323第一TAR用指令緩沖器224、 324第二TAR用指令緩沖器具體實施例 (實施例1)以下,參照
本發(fā)明涉及的實施例1。本實施例的處理器的特點是,除了包括存儲一般指令的指令緩沖 器以外還包括存儲循環(huán)部分的指令的指令緩沖器,在執(zhí)行循環(huán)部分的 指令時,從一次獲取并存儲循環(huán)部分的指令的指令緩沖器提供指令, 而不是反復從指令高速緩沖存儲器獲取。進一步,該特點是,除了包括這些指令緩沖器以外還包括存儲子 程序的返回部分的指令的指令緩沖器,在執(zhí)行子程序的返回部分的指 令時,從一次獲取并存儲返回部分的指令的指令緩沖器提供指令。根據(jù)上述內(nèi)容說明本實施例的處理器。首先,說明本實施例的處理器的結(jié)構(gòu)。如圖1所示,處理器100,除了包括存儲一般指令的一般指令緩沖 器122以外還包括TAR用指令緩沖器123,該TAR用指令緩沖器123 存儲在指令高速緩沖存儲器10的指令串中的循環(huán)部分的指令。而且, 在執(zhí)行循環(huán)部分的指令的情況下,向指令執(zhí)行部101提供存儲在TAR 用指令緩沖器123的指令。再者,處理器100,除了包括一般指令緩沖器122以及TAR用指 令緩沖器123以外還包括LR用指令緩沖器124,該LR用指令緩沖器 124存儲子程序的返回部分的指令。而且,在執(zhí)行子程序的返回部分的 指令的情況下,向指令執(zhí)行部101提供存儲在LR用指令緩沖器124 的指令。在此,作為一個例子,處理器100包括指令執(zhí)行部101、指令獲 取控制部102、選擇器lll、 一般指令地址寄存器112、 TAR用指令地 址寄存器113、 LR用指令地址寄存器114、選擇器121、 一般指令緩沖 器122、 TAR用指令緩沖器123、以及LR用指令緩沖器124等。 指令執(zhí)行部101,執(zhí)行通過選擇器121所提供的指令。 在指令執(zhí)行部101未執(zhí)行TAR用填充指令以及LR用填充指令的 情況下,若有可能在一般指令緩沖器122發(fā)生空白,則指令獲取控制 部102控制選擇器111來選擇一般指令地址寄存器112。而且,從指令 高速緩沖存儲器10獲取設(shè)定在一般指令地址寄存器112的地址的指 令,并將獲取后的指令存儲到一般指令緩沖器122。并且,若在指令執(zhí)行部101執(zhí)行TAR用填充指令,則指令獲取控 制部102從指令執(zhí)行部101接受設(shè)定為TAR用填充指令的填充開始地 址,并將接受后的填充幵始地址設(shè)定到TAR用指令地址寄存器113。 再者,在將一般指令填充到一般指令緩沖器122的過程中,將由TAR 用填充指令確定的循環(huán)部分的指令填充到TAR用指令緩沖器123。此 時,在該過程中,指令獲取控制部102控制選擇器111來選擇TAR用 指令地址寄存器113。而且,在指令執(zhí)行部101執(zhí)行由TAR用填充指 令確定的循環(huán)部分的指令時,從TAR用指令緩沖器123向指令執(zhí)行部 101提供指令。與此相同,若在指令執(zhí)行部101執(zhí)行LR用填充指令,則指令獲取 控制部102從指令執(zhí)行部101接受設(shè)定為LR用填充指令的填充開始地 址,并將接受后的填充開始地址設(shè)定到LR用指令地址寄存器114。再 者,在填充到一般指令緩沖器122的過程中,將由LR用填充指令確定 的子程序的返回部分填充到LR用指令緩沖器124。此時,在該過程中, 指令獲取控制部102控制選擇器111來選擇LR用指令地址寄存器114。 而且,在指令執(zhí)行部101執(zhí)行由LR用填充指令確定的子程序的返回部 分的指令時,從LR用指令緩沖器124向指令執(zhí)行部101提供指令。"TAR用填充指令"是一種指令,例如下述TAR用填充指令所示, 從由"LABEL"確定的地址開始循環(huán)部分,并將該循環(huán)部分存儲到TAR 用指令緩沖器123。[TAR用填充指令]SETTAR LABEL例如圖2所示的TAR用填充指令"SETTAR#1",指示將從地址 "LABEIJl"的指令"I#9"到TAR用轉(zhuǎn)移指令"JUMPTAR#1"為止的循環(huán)部分填充到TAR用指令緩沖器123。在此,進一步,地址 "LABEIJ1"是設(shè)定為轉(zhuǎn)移指令"JUMPTAR#1"的轉(zhuǎn)移目的地地址,也是由TAR用填充指令"SETTAR#1"開始填充的地址(以下,也稱為填充開始地址)。而且,在此,如圖2所示,在執(zhí)行循環(huán)部分之前,即,在執(zhí)行圖 中以粗大的方框來圍繞的指令串之前,執(zhí)行TAR用填充指令。并且, 在此,為了簡化說明,從指令高速緩沖存儲器IO獲取的指令長度為固 定長度,并按每一周期從指令高速緩沖存儲器10獲取一個指令,但也 可以是指令長度為可變長度,并按每一周期從指令高速緩沖存儲器10 獲取一個以上的指令,例如獲取四個指令。而且,若在指令執(zhí)行部101執(zhí)行TAR用填充指令"SETTAR#1", 則將包含TAR用轉(zhuǎn)移指令"JUMPTAR#1"的、圖中以粗大的方框來 圍繞的指令串填充到TAR用指令緩沖器123。而且,也可以存在兩個指令,即,表示將循環(huán)部分存儲到TAR用 指令緩沖器123的指令以及表示該循環(huán)部分的開始地址的指令,來代 替一個TAR用填充指令。"LR用填充指令"是一種指令,例如下述LR用填充指令所示, 從由子程序的返回目的地地址確定的地址開始返回部分,并將該返回 部分存儲到LR用指令緩沖器124。[LR用填充指令]SETLR例如圖2所示的LR用填充指令"SETLR#1",指示將從地址 "LABEL#2"的指令"I#18"到規(guī)定數(shù)量的指令的返回部分填充到LR 用指令緩沖器124,例如規(guī)定數(shù)量為四個指令,則將從"1#18"到"1#21" 為止的返回部分填充到LR用指令緩沖器124。在此,進一步,地址 "LABEL#2"是設(shè)定為返回指令"RETLR#1"所設(shè)定的返回目的地地 址,也是由LR用填充指令"SETLR#1"開始填充的地址(以下,也稱 為填充開始地址)。而且,在此,如圖2所示,在執(zhí)行返回部分之前,即,在執(zhí)行圖 中以粗大的方框來圍繞的指令串之前,執(zhí)行LR用填充指令。而且,若在指令執(zhí)行部101執(zhí)行LR用填充指令"SETLR#1",則 將包含CALLLR弁1的后續(xù)指令"I#18"的、圖中以粗大的方框來圍繞 的指令串填充到LR用指令緩沖器124。而且,也可以存在兩個指令,即,表示將返回部分存儲到LR用指 令緩沖器124的指令以及表示該返回部分的開始地址的指令,來代替 一個LR用填充指令。選擇器lll,按照來自指令獲取控制器102的指示,選擇一般指令 地址寄存器112、 TAR用指令地址寄存器113以及LR用指令地址寄存 器114中的任一個指令地址寄存器。而且,將設(shè)定在選擇后的指令地 址寄存器的地址輸出到指令高速緩沖存儲器10。一般指令地址寄存器112是一種指令地址寄存器,用于提取一般 指令。TAR用指令地址寄存器113是一種指令地址寄存器,用于提取由 TAR用填充指令確定的循環(huán)部分的指令。LR用指令地址寄存器114是一種指令地址寄存器,用于提取由LR 用填充指令確定的返回部分的指令。"地址寄存器"是一種寄存器,從指令高速緩沖存儲器10等提取 指令時登記該指令的地址。選擇器lll,按照來自指令獲取控制器102的指示,選擇一般指令 指令緩沖器122、 TAR用指令緩沖器123以及LR用指令緩沖器124中 的任一個指令緩沖器。并且,向指令執(zhí)行部101提供填充在選擇后的 指令緩沖器的指令。一般指令緩沖器122是一種指令緩沖器,存儲并提供一般指令。TAR用指令緩沖器123是一種指令緩沖器,存儲并提供由TAR用 填充指令確定的循環(huán)部分的指令。LR用指令緩沖器124是一種指令緩沖器,存儲并提供由LR用填 充指令確定的返回部分的指令。而且,如圖3A及圖3B所示,TAR用指令緩沖器123,被選擇為 指令提供源,但是正在將循環(huán)部分的指令填充到TAR用指令緩沖器 123、或未執(zhí)行填充時,通過選擇器121將保持在Valid bitl33的值"0" (F143)輸出到指令執(zhí)行部101,從而通知填充未結(jié)束(R141)。另一方面, 若填充結(jié)束,則輸出作為Valid bit的值"1",從而通知填充結(jié)束。而 且,在指令執(zhí)行部101執(zhí)行TAR用填充指令、并且填充開始地址被設(shè) 定到TAR用指令地址寄存器113的情況下,從指令獲取控制部102向 TAR用指令地址寄存器113輸出寫入請求信號"1"。此時,如圖3B所 示,根據(jù)邏輯表140,即使Valid bit被設(shè)定為值"0"、并TAR用指令 緩沖器123被選擇,也通過選擇器121向指令執(zhí)行部101通知未填充 (R145),并TAR用指令緩沖器123不提供指令。而且,LR用指令緩沖 器124也與此相同。接著,說明本實施例的處理器的工作。如圖4所示,若在指令執(zhí)行部101執(zhí)行TAR用填充指令,則指令 獲取控制部102從指令執(zhí)行部101接受設(shè)定為TAR用填充指令的填充 開始地址,并將接受后的填充開始地址設(shè)定到TAR用指令地址寄存器 113。而且,在將一般指令填充到一般指令緩沖器122的過程中,將由 TAR用填充指令確定的循環(huán)部分的指令填充到TAR用指令緩沖器 123(填充狀態(tài)Sll)。此時,在該過程中,指令獲取控制部102控制選 擇器111來選擇TAR用指令地址寄存器113。再者,在指令執(zhí)行部101執(zhí)行與TAR用填充指令相對應(yīng)的TAR 用轉(zhuǎn)移指令、并執(zhí)行循環(huán)部分的指令時,指令獲取控制部102使TAR 用指令緩沖器123向指令執(zhí)行部101提供指令(提供狀態(tài)S12)。此時, 指令獲取控制部102控制選擇器121來選擇TAR用指令緩沖器123, 并將TAR用指令緩沖器123作為指令提供源。再者,在指令執(zhí)行部101反復執(zhí)行循環(huán)部分的情況下,指令獲取 控制部102反復使TAR用指令緩沖器123提供指令。而且,在指令執(zhí) 行部101執(zhí)行TAR用轉(zhuǎn)移指令,并通過循環(huán)部分,從一般指令緩沖器 122向指令執(zhí)行部101提供指令(一般狀態(tài)SIO)。此時,指令獲取控制部102控制選擇器121來選擇一般指令緩沖器122,并將一般指令緩沖 器122作為指令提供源。與此相同,若在指令執(zhí)行部101執(zhí)行LR用填充指令,則指令獲取 控制部102從指令執(zhí)行部IOI接受設(shè)定為LR用填充指令的填充開始地 址,并將接受后的填充開始地址設(shè)定到LR用指令地址寄存器114。而 且,在填充到一般指令緩沖器122的過程中,將由LR用填充指令確定 的返回部分的指令填充到LR用指令緩沖器124(填充狀態(tài)S11)。此時, 在該過程中,指令獲取控制部102控制選擇器111來選擇LR用指令地 址寄存器114。再者,在指令執(zhí)行部101執(zhí)行與LR用填充指令相對應(yīng)的LR用返 回指令、并執(zhí)行返回部分的指令時,指令獲取控制部102使LR用指令 緩沖器124向指令執(zhí)行部101提供指令(提供狀態(tài)S12)。此時,指令獲 取控制部102控制選擇器121來選擇LR用指令緩沖器124,并將LR 用指令緩沖器124作為指令提供源。再者,在指令執(zhí)行部101執(zhí)行LR用返回指令,并通過返回部分后, 從一般指令緩沖器122向指令執(zhí)行部101提供指令(一般狀態(tài)SIO)。此時,指令獲取控制部102控制選擇器121來選擇一般指令緩沖 器122,并將選擇一般指令緩沖器122作為指令提供源。接著,說明在本實施例的指令獲取控制部102的指令填充時的處 理(以下,稱為指令填充處理)。如圖5所示,在指令執(zhí)行部101未執(zhí)行TAR用填充指令及LR用填充指令的情況下(sioi :否,si02 :否),若有可能在一般指令緩沖器
122發(fā)生空白(S103 :是),則指令獲取控制部102控制選擇器111來選 擇一般指令地址寄存器112(S104)。而且,從指令高速緩沖存儲器10 獲取設(shè)定在一般指令地址寄存器122的地址的指令(S105),并將獲取后 的指令存儲到一般指令緩沖器(S106)。另一方面,如圖5及圖6A所示,在指令執(zhí)行部101執(zhí)行TAR用 填充指令的情況下(SIOI :是),若到TAR用指令的填充結(jié)束為止 (S107 :否)在一般指令緩沖器122沒有可能發(fā)生空白(S108 :否),則指 令獲取控制部102控制選擇器111來選擇TAR用指令地址寄存器 113(S109)。而且,從指令高速緩沖存儲器IO獲取設(shè)定在TAR用指令 地址寄存器U3的地址的指令(SllO),并將獲取后的指令存儲到TAR 用指令緩沖器123(S1U)。與此相同,如圖5及圖6B所示,在指令執(zhí)行部101執(zhí)行LR用填 充指令的情況下(S102 :是),若到LR用指令的填充結(jié)束為止(S112 :否) 在一般指令緩沖器122沒有可能發(fā)生空白(S113 :否),則指令獲取控制 部102控制選擇器111來選擇LR用指令地址寄存器114(S114)。而且, 從指令高速緩沖存儲器10獲取設(shè)定在LR用指令地址寄存器113的地 址的指令(S115),并將獲取后的指令存儲到LR用指令緩沖器 124(S116)。接著,說明在本實施例的指令獲取控制部102的指令提供時的處 理(以下,稱為指令提供處理)。如圖7所示,指令獲取控制部102控制選擇器121來選擇一般指 令緩沖器122(S121),從而使選擇后的指令緩沖器向指令執(zhí)行部101提 供指令(S122)。而且,按照在指令執(zhí)行部101所執(zhí)行的指令執(zhí)行下述 (1) (5)的處理。(1) 在指令執(zhí)行部101所執(zhí)行的指令為TAR用填充指令的情況下, 指令獲取控制部102從指令執(zhí)行部101接受設(shè)定為TAR用填充指令的 填充開始地址,并將接受后的填充開始地址設(shè)定到TAR用指令地址寄 存器U3(S124)。而且,從選擇后的指令緩沖器提供指令(S122)。(2) 在指令執(zhí)行部101所執(zhí)行的指令為LR用填充指令的情況下, 指令獲取控制部102從指令執(zhí)行部101接受設(shè)定為LR用填充指令的填 充開始地址,并將接受后的填充開始地址設(shè)定到LR用指令地址寄存器 114(S125)。而且,從選擇后的指令緩沖器提供指令(S122)。(3) 在指令執(zhí)行部101所執(zhí)行的指令為TAR用轉(zhuǎn)移指令(第一次)的 情況下,在不轉(zhuǎn)移到轉(zhuǎn)移目的地地址時,指令獲取控制部102使選擇 后的指令緩沖器即一般指令緩沖器122提供指令(S122)。另一方面,在轉(zhuǎn)移到轉(zhuǎn)移目的地地址時,指令獲取控制部102控 制選擇器121來選擇TAR用指令緩沖器123(S127)。再者,如圖8A所 示,到將由TAR用填充指令確定的循環(huán)部分填充到TAR用指令緩沖器 123為止(S131 :否),控制選擇器111來選擇TAR用指令地址寄存器 113(S133),從指令高速緩沖存儲器10獲取設(shè)定在TAR用指令地址寄 存器113的地址的指令(S133),將獲取后的指令存儲到TAR用指令緩 沖器123(S134)。而且,若填充了由TAR用填充指令確定的循環(huán)部分 (S131 :是),則從選擇后的指令緩沖器即TAR用指令緩沖器123提供 指令(S122)。 (4) 在指令執(zhí)行部101所執(zhí)行的指令為TAR用轉(zhuǎn)移指令(第二次以 后)的情況下,在轉(zhuǎn)移到轉(zhuǎn)移目的地地址時(S128 :是),指令獲取控制 部102使選擇后的指令緩沖器即TAR用指令緩沖器123提供指令 (S122)。另一方面,在不轉(zhuǎn)移到轉(zhuǎn)移目的地地址時(S128 :否),指令獲 取控制部102控制選擇器121來選擇一般指令緩沖器122(S129)。而且, 從選擇后的指令緩沖器即一般指令緩沖器122提供指令(S122)。(5) 在指令執(zhí)行部101所執(zhí)行的指令為LR用轉(zhuǎn)移指令的情況下, 指令獲取控制部102控制選擇器121來選擇LR用指令緩沖器 124(S130)。再者,如圖8B所示,到將由LR用填充指令確定的返回部 分填充到LR用指令緩沖器124為止(S135 :否),控制選擇器111從而 選擇LR用指令地址寄存器114(S136),從指令高速緩沖存儲器10獲取 設(shè)定在LR用指令地址寄存器114的地址的指令(S137),將獲取后的指 令存儲到LR用指令緩沖器124(S13S)。而且,若填充了包含LR用填 充指令的返回指令的返回部分(S135 :是),則從選擇后的指令緩沖器即 LR用指令緩沖器124提供指令(S122)。接著,說明本實施例的處理器的工作例子。在此,如圖9所示,作為一個例子,用三個指令緩沖器來可以填 充三個指令,所述三個指令緩沖器是一般指令緩沖器122、 TAR用指 令緩沖器123以及LR用指令緩沖器124。而且,在圖9中的IB表示一般指令緩沖器122。并且,IAR112表 示一般指令地址寄存器112。再者,TAR113表示TAR用指令地址寄存 器113。
并且,存儲在指令獲取地址"AO" "A2"的指令為"I#A0" "I#A2",存儲在指令獲取地址"BO" "B2"的指令為"I#B0" "TO2"。"指令獲取地址"是一種地址,存儲獲取對象的指令。 再者, 一般指令緩沖器122存儲指令"I#A0" "I#A2", TAR用 指令緩沖器123存儲指令"I#B0" "I紐2"。 而且,按照下述(1) (7)的順序進行存儲。(1) 在時間T1 T2,由于有可能在一般指令緩沖器122發(fā)生空白, 因此指令獲取控制部102將指令獲取地址"AO"設(shè)定到一般指令地址 寄存器112。(2) 在時間T2 T3,指令獲取控制部102控制選擇器111來選擇一 般指令地址寄存器112,并將設(shè)定在選擇后的一般指令地址寄存器112 的指令獲取地址"AO"輸出到指令高速緩沖存儲器10。而且,從指令 高速緩沖存儲器IO獲取由指令獲取地址"AO"確定的指令"I#A0"。并且,由于沒有可能在一般指令緩沖器122發(fā)生空白,因此指令 獲取控制部102將指令獲取地址"B0"設(shè)定到TAR用指令地址寄存器 113。(3) 在時間T3 T4,指令獲取控制部102將獲取后的指令"I#A0" 存儲到一般指令緩沖器122。并且,指令獲取控制部102控制選擇器111來選擇一般指令地址 寄存器112,將設(shè)定在選擇后的一般指令地址寄存器112的指令獲取地 址"B0"輸出到指令高速緩沖存儲器10。而且,從指令高速緩沖存儲
器10獲取由指令獲取地址"B0"確定的指令"I#B0"。并且,由于有可能在一般指令緩沖器122發(fā)生空白,因此指令獲 取控制部102將指令獲取地址"A1"設(shè)定到一般指令地址寄存器112。(4) 在時間T4 T5,指令獲取控制部102將從指令高速緩沖存儲器 IO獲取后的指令"I#BO"存儲到TAR用指令緩沖器123。并且,指令獲取控制部102控制選擇器111來選擇一般指令地址 寄存器112,將設(shè)定在選擇后的一般指令地址寄存器112的指令獲取地 址"A1"輸出到指令高速緩沖存儲器10。而且,從指令高速緩沖存儲 器10獲取由指令獲取地址"A1"確定的指令"I#A1"。并且,由于沒有可能在一般指令緩沖器122發(fā)生空白,因此指令 獲取控制部102將指令獲取地址"B1"設(shè)定到TAR用指令地址寄存器 113。(5) 在時間T5 T6,指令獲取控制部102將從指令高速緩沖存儲器 IO獲取后的指令"說A1"存儲到一般指令緩沖器122。并且,指令獲取控制部102控制選擇器111來選擇TAR用指令地 址寄存器113,將設(shè)定在選擇后的TAR用指令地址寄存器113的指令 獲取地址"B1"輸出到指令高速緩沖存儲器10。而且,從指令高速緩 沖存儲器10獲取由指令獲取地址"B1"確定的指令"MB1"。并且,由于沒有可能在一般指令緩沖器122發(fā)生空白,因此指令 獲取控制部102將指令獲取地址"B2"設(shè)定到TAR用指令地址寄存器 113。(6) 在時間T6 T7,指令獲取控制部102將從指令高速緩沖存儲器10獲取后的指令"I#B1 "存儲到TAR用指令緩沖器123。并且,指令獲取控制部102控制選擇器111來選擇TAR用指令地 址寄存器113,將設(shè)定在選擇后的TAR用指令地址寄存器113的指令 獲取地址"B2"輸出到指令高速緩沖存儲器10。而且,從指令高速緩 沖存儲器10獲取由指令獲取地址"B2"確定的指令"I#B2"。并且,由于有可能在一般指令緩沖器122發(fā)生空白,因此指令獲 取控制部102將指令獲取地址"A2"設(shè)定到一般指令地址寄存器112。(7)在時間T7 T8,指令獲取控制部102將從指令高速緩沖存儲器 IO獲取后的指令"I#B2"存儲到TAR用指令緩沖器123。并且,指令獲取控制部102控制選擇器111來選擇一般指令地址 寄存器112,將設(shè)定在選擇后的一般指令地址寄存器112的指令獲取地 址"A2"輸出到指令高速緩沖存儲器IO。而且,從指令高速緩沖存儲 器IO獲取由指令獲取地址"A2"確定的指令"I#A2"。如上所述,根據(jù)本實施例的處理器,除了包括主要使用的主指令 緩沖器122以外還包括輔助使用的TAR用指令緩沖器123及LR用指 令緩沖器124等,從而可以在不必反復訪問指令高速緩沖存儲器的情 況下獲取循環(huán)部分及子程序的返回部分等的命令。而且,從TAR用指 令緩沖器123及LR用指令緩沖器124等提供指令,從而可以縮短流水 線的損失周期,也可以填充因轉(zhuǎn)移而產(chǎn)生的流水線的空白。再者,通 過不必訪問指令高速緩沖存儲器,可以避免等待訪問等,從而可以提 高執(zhí)行處理的性能。并且,根據(jù)TAR用填充指令來調(diào)整獲取期間,從 而可以調(diào)整存儲到TAR用指令緩沖器123的期間,據(jù)此,為了將指令 緩沖器的容量變大并可以充分發(fā)揮此效果,預(yù)先估計充分的期間來執(zhí)行TAR用填充指令,從而可以充分存儲并提供指令。根據(jù)該結(jié)果,可 以減少訪問指令高速緩沖存儲器的頻度,來以低功耗且以高速度執(zhí)行 循環(huán)處理等。與此相同,可以根據(jù)LR用填充指令來調(diào)整存儲到LR用 指令緩沖器124的期間。 (實施例2)下面,參照
本發(fā)明涉及的實施例2。 本實施例的處理器,其特點是,包括存儲循環(huán)部分的指令的多個 指令緩沖器,并提供多個循環(huán)部分的指令。 根據(jù)上述來說明本實施例的處理器。而且,對于與實施例1的結(jié)構(gòu)部分相同的結(jié)構(gòu)部分,附上相同參 照符號而省略說明。首先,說明實施例的處理器的結(jié)構(gòu)。如圖10所示,處理器200與處理器100之間的不同之處為下述 (1) (7)。(l)包括指令獲取控制部202來代替指令獲取控制部102。 若在指令執(zhí)行部101執(zhí)行第一TAR用填充指令,則在將指令填充 到一般指令緩沖器122的過程中,指令獲取控制部202將由第一 TAR 用填充指令確定的第一循環(huán)部分的指令填充到第一TAR用指令緩沖器 223。而且,在指令執(zhí)行部101執(zhí)行由第一 TAR用填充指令確定的第 一循環(huán)部分的指令時,從第一TAR用指令緩沖器223向指令執(zhí)行部101提供指令。
再者,若在指令執(zhí)行部101執(zhí)行第二TAR用填充指令,則在從第 一 TAR用指令緩沖器223提供指令的過程中,指令獲取控制部202將 由第二 TAR用填充指令確定的第二循環(huán)部分的指令填充到第二 TAR 用指令緩沖器224。而且,在指令執(zhí)行部101執(zhí)行由第一TAR用填充 指令確定的第二循環(huán)部分的指令時,從第二 TAR用指令緩沖器224向 指令執(zhí)行部101提供指令。(2) 包括選擇器211來代替選擇器111。選擇器211,按照來自指令獲取控制部202的指示,選擇一般指令 地址寄存器112、第一TAR用指令地址寄存器213以及第二TAR用指 令地址寄存器214中的任一個指令地址寄存器。而且,將設(shè)定在選擇 后的指令地址寄存器的地址輸出到指令高速緩沖存儲器10。(3) 包括第一 TAR用指令地址寄存器213來代替TAR用指令地址 寄存器113。第一指令地址寄存器213是一種指令地址寄存器,用于提取由第一 TAR用填充指令確定的循環(huán)部分的指令。(4) 包括第二 TAR用指令地址寄存器214來代替LR用指令地址寄 存器114。第二指令地址寄存器214是一種指令地址寄存器,用于提取由第二 丁AR用填充指令確定的循環(huán)部分的指令。(5) 包括選擇器221來代替選擇器121。選擇器2U,按照來自指令獲取控制部202的指示,選擇一般指令 緩沖器122、第一 TAR用指令緩沖器223以及第二 TAR用指令緩沖器 224中的任一個指令緩沖器。而且,向指令執(zhí)行部101提供填充在選擇 后的指令緩沖器的指令。(6) 包括第一 TAR用指令緩沖器223來代替TAR用指令緩沖器123。第一 TAR用指令緩沖器223是一種指令地址寄存器,用于存儲并 提供由第一 TAR用填充指令確定的循環(huán)部分的指令。如圖11所示,由第一 TAR用填充指令"SETTAM1"確定的第一 循環(huán)部分填充到第一 TAR指令緩沖器223,該第一循環(huán)部分是從地址 "LABEIJ1"的指令到第一TAR用轉(zhuǎn)移指令"JUMPTAR#1" 為止的部分。(7) 包括第二 TAR用指令緩沖器224來代替LR用指令緩沖器124。 第二 TAR用指令緩沖器223是一種指令地址寄存器,用于存儲并提供由第二 TAR用填充指令確定的第二循環(huán)部分的指令。如圖11所示,由第二 TAR用填充指令"SETTAR#2"確定的第二 循環(huán)部分填充到第二 TAR指令緩沖器224,該第二循環(huán)部分是從地址 "LABEIJ2"的指令"1#22"到第二TAR用轉(zhuǎn)移指令"JUMPTAR粒" 為止的部分。并且,如圖12所示,在雙重循環(huán)的情況下,由第一TAR用填充 指令"SETTAR#1"確定的第一循環(huán)部分填充到第一 TAR指令緩沖器 223,該第一循環(huán)部分是從地址"LABEU1"的指令"說17"到第一 TAR 用轉(zhuǎn)移指令"JUMPTARJ1"為止的內(nèi)側(cè)循環(huán)部分。再者,從指令"M20" 到第二 TAR用轉(zhuǎn)移指令"JUMPTA貼2"的外側(cè)循環(huán)部分的一部分也 填充到第一 TAR指令緩沖器223。并且,由第二 TAR用填充指令"SETTAR#2"確定的第二循環(huán)部 分填充到第二 TAR指令緩沖器224,該第二循環(huán)部分是從地址 "LABEU2"的指令到第二TAR用轉(zhuǎn)移指令"JUMPTAR#2" 為止的外側(cè)循環(huán)部分。而且,在指令執(zhí)行部101執(zhí)行由第一 TAR用指令緩沖器223所提 供的第二TAR用轉(zhuǎn)移指令"JUMPTAR#2"而轉(zhuǎn)移到地址"LABEU2" 的情況下,指令獲取控制部202控制選擇器221來選擇第二 TAR用指 令緩沖器224。并且,在指令執(zhí)行部101執(zhí)行由第二 TAR用指令緩沖器224所提 供的第一TAR用轉(zhuǎn)移指令"JUMPTAR#1"而轉(zhuǎn)移到地址"LABEU1" 的情況下,指令獲取控制部202控制選擇器221來選擇第一 TAR用指 令緩沖器223。與此相同,如圖13所示,由第一TAR用填充指令"SETTAR弁1" 確定的第一循環(huán)部分填充到第一 TAR指令緩沖器223,該第一循環(huán)部 分是從地址"LABEL#1"的指令到第一 TAR用轉(zhuǎn)移指令 "JUMPTAR#1"為止的循環(huán)部分。再者,從指令"I#20"到第二TAR 用轉(zhuǎn)移指令"JUMPTAI^2"的部分也填充到第一 TAR指令緩沖器223。 并且,由第二 TAR用填充指令"SETTAR粒"確定的第二循環(huán)部 分填充到第二 TAR指令緩沖器224,該第二循環(huán)部分是從地址 "LABEIJ2"的指令"I#17"到第二TAR用轉(zhuǎn)移指令"JUMPTAR粒" 為止的部分。
而且,在指令執(zhí)行部101執(zhí)行由第一TAR用指令緩沖器223所提 供的第二TAR用轉(zhuǎn)移指令"JUMPTAR#2"而轉(zhuǎn)移到地址"LABEU2" 的情況下,指令獲取控制部202控制選擇器221來選擇第二 TAR用指 令緩沖器224。并且,在指令執(zhí)行部10執(zhí)行由第二 TAR用指令緩沖器224所提 供的第二TAR用轉(zhuǎn)移指令"JUMPTAR#1"而轉(zhuǎn)移到地址"LABEU1" 的情況下,指令獲取控制部20控制選擇器221來選擇第一 TAR用指 令緩沖器223。如上所述,根據(jù)本實施例的處理器,除了包括主要使用的主指令 緩沖器122以外還包括輔助使用的多個指令緩沖器等,從而可以在不 必反復訪問指令高速緩沖存儲器的情況下獲取多個循環(huán)部分的命令。 而且,從第一 TAR用指令緩沖器223及第二 TAR用指令緩沖器224 等提供指令,從而可以縮短流水線的損失周期,也可以填空因轉(zhuǎn)移而 產(chǎn)生的流水線的空白。再者,通過不必訪問指令高速緩沖存儲器,可 以避免等待訪問等,從而可以提高執(zhí)行處理的性能。并且,根據(jù)第一 TAR用填充指令來調(diào)整獲取期間,從而可以調(diào)整存儲到第一 TAR用指 令緩沖器223的期間,并根據(jù)第二TAR用填充指令來調(diào)整獲取期間, 從而可以調(diào)整存儲到第二TAR用指令緩沖器224的期間,據(jù)此,為了 將指令緩沖器的容量變大并可以充分發(fā)揮此效果,預(yù)先估計充分的期 間來執(zhí)行第一 TAR用填充指令及第二 TAR用填充指令,從而可以充分 存儲并提供指令。根據(jù)該結(jié)果,可以減少訪問指令高速緩沖存儲器的 頻度,來以低功耗且以高速度執(zhí)行循環(huán)處理等。可以通過使訪問頻度
減少來控制功耗的增加。 (其它)再者,如圖14所示,處理器300也可以包括指令執(zhí)行部101、 指令獲取控制部302、選擇器311、 一般指令地址寄存器112、第一TAR 用指令地址寄存器313、第二TAR用指令地址寄存器314、 LR用指令 地址寄存器114、選擇器321、 一般指令緩沖器122、第一TAR用指令 緩沖器323、第二 TAR用指令緩沖器324以及LR用指令緩沖器124。 即,也可以包括多個TAR用指令緩沖器以及LR用指令緩沖器,并提 供多個循環(huán)部分的指令以及子程序部分的指令。再者,處理器100、 300也可以包括可兼用TAR用指令緩沖器和 LR用指令緩沖器的指令緩沖器,來代替LR用指令緩沖器124。進一 步,也可以包括可兼用TAR用指令地址寄存器和LR用指令地址寄存 器的指令地址寄存器,來代替LR用指令地址寄存器114。再者,通過全定制(fbll custom)LSI(Large Scale Integration :大規(guī)模 集成電路)來也可以實現(xiàn)處理器。并且,通過ASIC(Application Specific Integrated Circuit :專用集成電路)等半定制(semi custom)LSI來也可以 實現(xiàn)處理器。并且,通過FPGA(Field Programmable Gate Array :現(xiàn)場 可編程門陣列)、CPLD(Complex Programmable Logic Device :復雜可編 程邏輯器)等可編程邏輯器來也可以實現(xiàn)處理器。并且,通過動態(tài)可重 配置器件來也可以實現(xiàn)處理器,該動態(tài)可重配置器件可以動態(tài)地改寫 電路結(jié)構(gòu)。進一步,設(shè)計數(shù)據(jù)也可以是通過VHDL(Very high speed integratedcircuit Hardware Description Language :超高速集成電路硬件描述語 言)、Verilog-HDL以及SystemC等硬件描述語言來描述的程序(以下稱 為HDL程序),該設(shè)計數(shù)據(jù)用于在這些LSI形成構(gòu)成處理器的一個以 上的功能。并且,設(shè)計數(shù)據(jù)也可以是門級的網(wǎng)表,該門級的網(wǎng)表是對 HDL程序進行邏輯合成來獲得的。并且,設(shè)計數(shù)據(jù)也可以是向門級的 網(wǎng)表附加配置信息以及程序條件等的宏單元信息。并且,設(shè)計數(shù)據(jù)也 可以是規(guī)定了尺寸、時機等的掩模數(shù)據(jù)。進一步,也可以在光學存儲介質(zhì)(例如,CD-ROM等)、磁存儲介 質(zhì)(例如,硬盤等)、磁光存儲介質(zhì)(例如,MO(Magneto optical disk :磁 光盤)等)以及半導體存儲器(例如,存儲卡)等計算機可讀取的存儲介質(zhì) 記錄設(shè)計數(shù)據(jù),以便由計算機系統(tǒng)、安裝系統(tǒng)等硬件系統(tǒng)來讀取。而 且,也可以設(shè)計數(shù)據(jù)通過下載電纜來下載到可編程邏輯器,該設(shè)計數(shù) 據(jù)是通過這些存儲介質(zhì)由其它硬件系統(tǒng)來讀取的?;蛘?,也可以將設(shè)計數(shù)據(jù)保持在傳輸電路上的硬件系統(tǒng),以便通 過網(wǎng)絡(luò)等傳輸電路被其它硬件系統(tǒng)讀取。進一步,設(shè)計數(shù)據(jù)也可以通 過下載電纜來下載到可編程邏輯器,該設(shè)計數(shù)據(jù)是通過傳輸電路從硬 件系統(tǒng)被其它硬件系統(tǒng)讀取的?;蛘?,將邏輯合成后的、配置后的以及布線后的設(shè)計數(shù)據(jù)記錄在 串行ROM,以便在通電時傳送到FPGA。而且,將記錄在串行ROM 的設(shè)計數(shù)據(jù)也可以在通電時直接下載到FPGA。本發(fā)明可以作為提取并執(zhí)行存儲在指令高速緩沖存儲器的指令的 處理器來使用,尤其作為一種處理器來使用,該處理器,執(zhí)行循環(huán)部
分的指令時,通過提供存儲在循環(huán)部分用指令緩沖部的指令,從而減 少訪問指令高速緩沖存儲器的頻度,所以可以提高執(zhí)行處理能力,還 可以控制功耗的增加。
權(quán)利要求
1、一種處理器,提取并執(zhí)行存儲在指令高速緩沖存儲器的指令,其特征在于,包括主指令緩沖器,存儲并提供從所述指令高速緩沖存儲器提取的一個以上的指令;第一子指令緩沖器,存儲并輔助提供從所述指令高速緩沖存儲器提取的一個以上的指令;選擇器,選擇所述主指令緩沖器及所述第一子指令緩沖器中的任一個,以作為指令提供源;以及指令獲取控制單元,在通過所述選擇器使所述主指令緩沖器提供指令、并執(zhí)行第一填充指令的情況下,從第一地址提取一個以上的指令并存儲到所述第一子指令緩沖器,并在反復提供從所述第一地址提取的一個以上的指令時,控制所述選擇器來選擇所述第一子指令緩沖器,通過所述選擇器使所述第一子指令緩沖器提供指令,所述第一填充指令表示將從所述指令高速緩沖存儲器的第一地址提取的一個以上的指令填充到所述第一子指令緩沖器。
2、如權(quán)利要求1所述的處理器,其特征在于, 所述指令獲取控制單元,進一步,在所述第一填充指令被執(zhí)行的情況下,在將從所述指令高速緩沖 存儲器提取的一個以上的指令存儲到所述主指令緩沖器的過程中,從 所述第一地址提取一個以上的指令,并將該指令存儲到所述第一子指 令緩沖器。
3、 如權(quán)利要求1所述的處理器,其特征在于, 所述處理器,進一步包括,第二子指令緩沖器,存儲并輔助提供從所述指令高速緩沖存儲器 提取的一個以上的指令, 所述選擇器,進一步,選擇所述主指令緩沖器、所述第一子指令緩沖器及所述第二子指 令緩沖器中的任一個,以作為指令提供源, 所述指令獲取控制單元,進一步,在第二填充指令被執(zhí)行的情況下,從第二地址提取一個以上的指 令,并將該指令存儲到所述第二子指令緩沖器,并在反復執(zhí)行從所述 第二地址提取的一個以上的指令時,控制所述選擇器來選擇所述第二 子指令緩沖器,通過所述選擇器使所述第二子指令緩沖器提供指令, 所述第二填充指令表示將從所述指令高速緩沖存儲器的第二地址提取 的一個以上的指令填充到所述第二子指令緩沖器。
4、 如權(quán)利要求3所述的處理器,其特征在于, 針對存儲在所述指令高速緩沖存儲器的指令串,所述第一地址是轉(zhuǎn)移指令的轉(zhuǎn)移目的地地址,所述第二地址是從子程序返回的返回目 的地地址,所述第一子指令緩沖器,存儲所述第一地址中的規(guī)定數(shù)量的指令,所述第二子指令緩沖器,存儲所述第二地址中的規(guī)定數(shù)量的指令。
5、 如權(quán)利要求1所述的處理器,其特征在于, 針對存儲在所述指令高速緩沖存儲器的指令串,所述第一地址是轉(zhuǎn)移指令的轉(zhuǎn)移目的地地址,所述第一子指令緩沖器,存儲所述第一^k址中的規(guī)定數(shù)量的指令, 所述獲取控制單元,在反復提供從所述第一地址提取的一個以上 的指令的情況下,在從所述第一地址規(guī)定數(shù)量的指令未被填充到所述 第一子指令緩沖器的情況下,結(jié)束填充所述循環(huán)部分后,從所述第一 地址提供規(guī)定數(shù)量的指令。
6、 一種指令填充方法,提取并執(zhí)行存儲在指令高速緩沖存儲器的指令,其特征在于,控制主指令緩沖器,存儲并提供從所述指令高速緩沖存儲器提取的一個以上的指令;第一子指令緩沖器,存儲并輔助提供從所述指令高速緩沖存儲器 提取的一個以上的指令;以及選擇器,選擇所述主指令緩沖器及所述第一子指令緩沖器中的任 一個,以作為指令提供源,在通過所述選擇器使所述主指令緩沖器提供指令、并執(zhí)行第一填 充指令的情況下,從所述第一地址提取一個以上的指令,并將該指令 存儲到所述第一子指令緩沖器,并在反復提供從所述第一地址提取的 一個以上的指令時,控制所述選擇器來選擇所述第一子指令緩沖器, 通過所述選擇器使所述第一子指令緩沖器提供指令,所述第一填充指 令表示將從所述指令高速緩沖存儲器的第一地址提取的一個以上的指 令填充到所述第一子指令緩沖器。
全文摘要
本發(fā)明的處理器(100)包括主指令緩沖器(122),存儲并提供從所述指令高速緩沖存儲器(10)提取的一個以上的指令;TAR用指令緩沖器(123),存儲并輔助提供從所述指令高速緩沖存儲器(10)提取的一個以上的指令;選擇器(121),將一般指令緩沖器(122)及TAR用指令緩沖器(123)中的任一個選擇為指令提供源;以及指令獲取控制部(102),在執(zhí)行TAR用充指令的情況下,提取由TAR用充指令確定的一個以上的指令并存儲到TAR用指令緩沖器(123),在反復提供所提取的指令時,控制選擇器(121)從而選擇TAR用指令緩沖器(123),通過選擇器(121)使TAR用指令緩沖器(123)提供指令。
文檔編號G06F9/38GK101156134SQ200680011388
公開日2008年4月2日 申請日期2006年3月7日 優(yōu)先權(quán)日2005年4月8日
發(fā)明者檜垣信生, 瓶子岳人, 田中哲也 申請人:松下電器產(chǎn)業(yè)株式會社