專利名稱:處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及能夠并列解釋并執(zhí)行多個(gè)指令的處理器。
背景技術(shù):
近年來,在能夠并列解釋并執(zhí)行多個(gè)指令的處理器中,提出了各種 有關(guān)對不能同時(shí)執(zhí)行的多個(gè)指令的控制方法的技術(shù)。
作為一例,設(shè)有控制單元,該控制單元將指令發(fā)送給執(zhí)行階段,在 執(zhí)行階段中的指令的處理中判斷是否依存于不可利用的數(shù)據(jù),在依存的 情況下僅使該指令停止而同時(shí)執(zhí)行其他指令。即,提出了在前進(jìn)到執(zhí)行 階段后不能同時(shí)執(zhí)行的情況下,發(fā)生風(fēng)險(xiǎn)而停止處理的技術(shù)(參照例如 專利文獻(xiàn)l)。
此外,通過對應(yīng)于指令緩沖器及各運(yùn)算器的指令寄存器的未發(fā)出的 指令數(shù)判斷是否能夠進(jìn)行指令的同時(shí)執(zhí)行,進(jìn)行寄存器的更新控制。即, 提出了在處理器中準(zhǔn)備監(jiān)視執(zhí)行狀態(tài)的電路,根據(jù)在運(yùn)算器中先行的指 令文是怎樣的執(zhí)行狀態(tài)的信息,在前進(jìn)到執(zhí)行階段之前控制指令供給來
停止處理的技術(shù)(參照例如專利文獻(xiàn)2)。
專利文獻(xiàn)l:日本特開平8-221273號公報(bào) 專利文獻(xiàn)2:日本特開平8-305567號公報(bào)
但是,在以往的技術(shù)中,在判斷執(zhí)行階段中的指令的數(shù)據(jù)依存性的 控制單元中,如果隨著省面積化而減少運(yùn)算器的數(shù)量,則有對于發(fā)生構(gòu) 造風(fēng)險(xiǎn)的多個(gè)指令不能適用的問題。它是為了在將指令發(fā)送給執(zhí)行階段 后判斷指令的同時(shí)執(zhí)行可能性。
此外,如果對于對1個(gè)指令代碼執(zhí)行多個(gè)操作的多循環(huán)指令準(zhǔn)備并
列數(shù)的計(jì)數(shù)器,則能夠同時(shí)執(zhí)行多個(gè)多循環(huán)指令,但如果伴隨著省面積 化而減少計(jì)數(shù)器的數(shù)量,則產(chǎn)生同樣的問題。
此外,在以往的根據(jù)指令緩沖器與指令寄存器的未發(fā)出的指令數(shù)判 斷同時(shí)執(zhí)行的可否的方法中,由于除了需要檢測運(yùn)算器中的指令執(zhí)行狀 態(tài),還有對于己經(jīng)具有并列地保持多個(gè)指令的指令緩沖器的處理器不能 適用的問題。
艮P,有在如隨著省面積化而減少了運(yùn)算器的數(shù)量的情況、或者隨著 高速化而將單循環(huán)指令變更為多循環(huán)指令的情況等那樣變更了架構(gòu)的情 況下,不能適用的問題。
發(fā)明內(nèi)容
所以,本發(fā)明是鑒于上述問題而做出的,目的是提供一種處理器, 該處理器在如隨著省面積化而減少了運(yùn)算器的數(shù)量的情況、或者隨著高 速化而將單循環(huán)指令變更為多循環(huán)指令的情況等那樣、變更了處理器的 構(gòu)造的情況下,也能夠不改變對變更前的架構(gòu)最適合化的目標(biāo)代碼而利 用。
在解決上述問題時(shí),有關(guān)本發(fā)明的處理器,(a)是能夠?qū)⒍鄠€(gè)指令并 列解釋的處理器,具備(b)指令緩沖器,保持可并列執(zhí)行的指令組;(c) 指令解釋單元,可同時(shí)解釋上述指令組的一部分或全部;(d)指令發(fā)出 控制單元,檢測在上述指令組中是否存在阻礙同時(shí)執(zhí)行上述指令組的原 因,在存在上述原因的情況下,依次供給上述指令組的指令,在不存在 上述原因的情況下,控制上述指令緩沖器向上述指令解釋單元供給上述 指令組,以同時(shí)供給上述指令組的所有指令。
由此,即使在存在指令執(zhí)行部的結(jié)構(gòu)最適合化于部分不同的其他處 理器用的指令程序、能夠同時(shí)執(zhí)行的指令的組合不同、在指令緩沖器中 保持有不能同時(shí)執(zhí)行的多個(gè)指令的情況下,通過由指令發(fā)出控制單元依 次供給,也能夠不改變程序或進(jìn)行指令緩沖器的保存方法的變更等、而 原樣地利用程序。
此外,能夠不檢測指令執(zhí)行部的動(dòng)作狀態(tài)等、僅通過指令的靜態(tài)信 息就能夠判斷可否同時(shí)執(zhí)行,有利于設(shè)計(jì)容易化以及設(shè)計(jì)周期的縮短。
進(jìn)而,上述指令發(fā)出控制單元基于從上述指令解釋單元輸入的上述 指令組的解釋結(jié)果,檢測出在上述指令組之中包含有發(fā)生構(gòu)造風(fēng)險(xiǎn)的指 令的組合的情況,作為上述原因。
此外,上述指令發(fā)出控制單元基于從上述指令解釋單元輸入的上述 指令組的解釋結(jié)果,檢測出在上述指令組之中包含有1個(gè)以上有可能發(fā) 生構(gòu)造風(fēng)險(xiǎn)的指令的情況,作為上述原因。
由此,能夠使構(gòu)造風(fēng)險(xiǎn)的檢測簡單化,能夠使檢測變得更高速,所 以也有利于處理器的動(dòng)作速度的高速化。
或者,上述指令發(fā)出控制單元基于簡單解釋從上述指令緩沖器輸入 的上述指令組的結(jié)果,檢測出在上述指令組之中包含有規(guī)定數(shù)量的多循 環(huán)指令的情況,作為上述原因。
或者,上述指令發(fā)出控制單元基于簡單解釋從上述指令緩沖器輸入 的上述指令組的結(jié)果,檢測出在上述指令組之中包含有1個(gè)以上多循環(huán) 指令的情況,作為上述原因。
由此,能夠使多循環(huán)指令的檢測簡單化,能夠使檢測變得更高速, 所以也有利于處理器的動(dòng)作速度的高速化。
或者,上述指令發(fā)出控制單元在依次供給上述指令組的指令的情況 下,利用以能夠由上述指令解釋單元同時(shí)解釋的最大指令數(shù)為最大值的 計(jì)數(shù)器,從上述指令組之中依次每次供給1個(gè)對應(yīng)于上述計(jì)數(shù)器的各個(gè) 值的指令。
由此,能夠不檢測指令執(zhí)行部的動(dòng)作狀態(tài)等而通過僅由指令緩沖器 的指令決定的計(jì)數(shù)器的計(jì)數(shù)器值進(jìn)行指令供給的控制,有利于設(shè)計(jì)容易 化以及設(shè)計(jì)期間的縮短。
或者,上述指令發(fā)出控制單元在依次供給上述指令組的指令的情況 下,利用以保持在上述指令緩沖器中的指令數(shù)為最大值的計(jì)數(shù)器,從上 述指令組之中依次每次供給1個(gè)對應(yīng)于上述計(jì)數(shù)器的各個(gè)值的指令。
由此,即使在指令緩沖器中沒有配置有指令解釋單元能夠同時(shí)解釋 的最大指令數(shù)的情況下,也能夠沒有冗余的設(shè)備周期而控制指令的供給, 有利于處理性能的提高。
或者,上述指令發(fā)出控制單元在依次供給上述指令組的指令的情況 下,將上述指令組分割為有可能發(fā)生上述構(gòu)造風(fēng)險(xiǎn)的指令為1個(gè)指令以 下的子指令組,利用以有可能發(fā)生上述構(gòu)造風(fēng)險(xiǎn)的指令數(shù)為最大值的計(jì) 數(shù)器,依次供給對應(yīng)于上述計(jì)數(shù)器的各個(gè)值的子指令組。
由此,能夠總是同時(shí)供給可同時(shí)執(zhí)行的最大指令數(shù),有利于處理性 能的提高。
或者,上述指令發(fā)出控制單元在依次供給上述指令組的指令的情況 下,將上述指令組分割為上述多循環(huán)指令為1個(gè)指令以下的子指令組, 利用以上述多循環(huán)指令數(shù)為最大值的計(jì)數(shù)器,依次供給對應(yīng)于上述計(jì)數(shù) 器的各個(gè)值的子指令組。
由此,能夠總是同時(shí)供給可同時(shí)執(zhí)行的最大指令數(shù),有利于處理性 能的提高。
另外,本發(fā)明不僅可以作為處理器實(shí)現(xiàn),也可以作為控制處理器的 方法等實(shí)現(xiàn)。
此外,也可以作為組裝有由處理器提供的功能的LSI、將其功能形成 在FPGA、 CPLD等的可編程邏輯設(shè)備中的IP核心、以及記錄有該IP核 心的記錄介質(zhì)等來實(shí)現(xiàn)。
以上,根據(jù)本發(fā)明的處理器,即使在存在有指令執(zhí)行部的結(jié)構(gòu)最適 合化于部分不同的其他處理器用的指令程序,能夠同時(shí)執(zhí)行的指令的組 合不同,在指令緩沖器中保持有不能同時(shí)執(zhí)行的多個(gè)指令的情況下,通 過由指令發(fā)出控制單元依次供給,也能夠不改變程序或進(jìn)行指令緩沖器 的保存方法的變更等、而原樣地利用程序。
此外,能夠不檢測指令執(zhí)行部的動(dòng)作狀態(tài)等、僅通過指令的靜態(tài)信 息就能夠判斷可否同時(shí)執(zhí)行,有利于設(shè)計(jì)容易化以及設(shè)計(jì)周期的縮短。
此外,在處理器在其他處理器中是單循環(huán)指令、能夠同時(shí)執(zhí)行多個(gè)
的指令變?yōu)槎嘌h(huán)指令而不能同時(shí)執(zhí)行多個(gè)的情況下,即使在存在有包 含該指令的最適合化于上述其他處理器用的程序的情況下,在指令緩沖 器中保持有不能同時(shí)執(zhí)行的多個(gè)多循環(huán)指令的情況下,通過由指令發(fā)出 控制部依次供給,也能夠不改變程序或進(jìn)行指令緩沖器的保存方法的變 更等、而原樣利用程序。
圖1是表示實(shí)施方式1的處理器的結(jié)構(gòu)的框圖。
圖2是表示實(shí)施方式1的指令解碼器的結(jié)構(gòu)的框圖。
圖3是表示實(shí)施方式1的指令發(fā)出控制部的結(jié)構(gòu)的框圖。
圖4A是表示用來說明實(shí)施方式1的程序例的圖。
圖4B是表示用來說明實(shí)施方式1的程序例的圖。
圖5A是用來說明實(shí)施方式1的動(dòng)作說明圖。
圖5B是用來說明實(shí)施方式1的動(dòng)作說明圖。
圖6是表示實(shí)施方式2的處理器的結(jié)構(gòu)的框圖。
圖7是表示實(shí)施方式2的指令發(fā)出控制部的結(jié)構(gòu)的框圖。
圖8A是表示用來說明實(shí)施方式2的程序例的圖。
圖8B是表示用來說明實(shí)施方式2的程序例的圖。
圖8C是表示用來說明實(shí)施方式2的程序例的圖。
圖9A是用來說明實(shí)施方式2的動(dòng)作說明圖。
圖9B是用來說明實(shí)施方式2的動(dòng)作說明圖。
圖9C是用來說明實(shí)施方式2的動(dòng)作說明圖。
圖10是表示實(shí)施方式3的處理器的結(jié)構(gòu)的框圖。
圖11是表示實(shí)施方式3的指令發(fā)出控制部的結(jié)構(gòu)的框圖。
圖12A是表示用來說明實(shí)施方式3的程序例的圖。
圖12B是表示用來說明實(shí)施方式3的程序例的圖。
圖13A是用來說明實(shí)施方式3的動(dòng)作說明圖。
圖13B是用來說明實(shí)施方式3的動(dòng)作說明圖。
圖14是表示實(shí)施方式4的處理器的結(jié)構(gòu)的框圖。 圖15是表示實(shí)施方式4的指令發(fā)出控制部的結(jié)構(gòu)的框圖。 圖16A是表示用來說明實(shí)施方式4的程序例的圖。 圖16B是表示用來說明實(shí)施方式4的程序例的圖。 圖17A是用來說明實(shí)施方式4的動(dòng)作說明圖。 圖17B是用來說明實(shí)施方式4的動(dòng)作說明圖。 圖18是表示實(shí)施方式5的處理器的結(jié)構(gòu)的框圖。 圖19是表示實(shí)施方式5的指令發(fā)出控制部的結(jié)構(gòu)的框圖。 圖20A是表示用來說明實(shí)施方式5的程序例的圖。 圖20B是表示用來說明實(shí)施方式5的程序例的圖。 圖20C是表示用來說明實(shí)施方式5的程序例的圖。 圖21A是用來說明實(shí)施方式5的動(dòng)作說明圖。 圖21B是用來說明實(shí)施方式5的動(dòng)作說明圖。 圖21C是用來說明實(shí)施方式5的動(dòng)作說明圖。 圖22是表示實(shí)施方式6的處理器的結(jié)構(gòu)的框圖。 圖23是表示實(shí)施方式6的指令發(fā)出控制部的結(jié)構(gòu)的框圖。 圖24是表示實(shí)施方式6的無效化指令選擇部的輸入輸出關(guān)系的真值 表的圖。
圖25A是表示用來說明實(shí)施方式6的程序例的圖。 圖25B是表示用來說明實(shí)施方式6的程序例的圖。 圖26A是用來說明實(shí)施方式6的動(dòng)作說明圖。 圖26B是用來說明實(shí)施方式6的動(dòng)作說明圖。 附圖標(biāo)記說明
101、 201、 301、 401、 501、 601處理器
102、 402指令緩沖器
103、 403指令解釋部
104、 404指令執(zhí)行部
105、 405指令解碼器
106、 406控制信號選擇部
107、 407算術(shù)邏輯運(yùn)算部
108、 408積和運(yùn)算部
109、 409存儲(chǔ)器訪問控制部
110、 410寄存器文件
111、 211、 311、 411、 511、 611指令發(fā)出控制部
112、 212構(gòu)造風(fēng)險(xiǎn)檢測部
113、 313、 41.4、 614指令無效化控制部 412多循環(huán)指令解釋管理部
413、 513、 613多循環(huán)指令檢測部
420除法運(yùn)算部
624無效化指令選擇部
具體實(shí)施方式
(實(shí)施方式l)
以下,參照附圖對本發(fā)明的實(shí)施方式l進(jìn)行說明。
實(shí)施方式1的處理器是能夠并列解釋多個(gè)指令并執(zhí)行的處理器,其 特征在于,其特征在于,保持可并列執(zhí)行的指令組,能夠同時(shí)解釋指令 組的一部分或全部,檢測在指令組中是否存在阻礙同時(shí)執(zhí)行指令組的原 因,在存在原因的情況下依次供給指令組的指令,在不存在原因的情況 下控制指令緩沖器而將指令組向指令解釋部供給,以將指令組的所有的 指令同時(shí)供給。
此外,實(shí)施方式1的處理器的特征還在于,基于從指令解釋部輸入 的指令組的解釋結(jié)果,檢測在指令組之中包含有發(fā)生構(gòu)造風(fēng)險(xiǎn)的指令的 組合的情況,作為原因。
此外,實(shí)施方式1的處理器的特征還在于,在依次供給指令組的指 令的情況下,利用以能夠由指令解釋部同時(shí)解釋的最大指令數(shù)為最大值 的計(jì)數(shù)器,從指令組中將對應(yīng)于各個(gè)計(jì)數(shù)器的值的指令每次供給1個(gè)。
遵循以上的點(diǎn),對實(shí)施方式1的處理器進(jìn)行說明。
圖1是表示本實(shí)施方式的處理器的結(jié)構(gòu)的框圖。這里是能夠同時(shí)執(zhí)
行3個(gè)指令的處理器的結(jié)構(gòu),但本發(fā)明的適用范圍并不限于3個(gè)指令。 如圖1所示,處理器101具備指令緩沖器組102、指令解釋部103、 指令執(zhí)行部104、指令發(fā)出控制部lll等。
指令緩沖器組102具備多個(gè)指令緩沖器,保持指令組。這里,假設(shè) 由指令緩沖器102-1 102-3構(gòu)成。指令緩沖器102-1保持有指令代碼 151-1和指令有效信息152-1。指令緩沖器102-2保持有指令代碼151-2 和指令有效信息152-2。指令緩沖器102-3保持有指令代碼151-3和指令 有效信息152-3。
指令解釋部103由指令解碼器105-1 105-3、控制信號選擇部106 構(gòu)成。
指令執(zhí)行部104由算術(shù)邏輯運(yùn)算部107、積和運(yùn)算部108、存儲(chǔ)器訪 問控制部109、和寄存器文件110構(gòu)成。通過算術(shù)邏輯運(yùn)算部107、積和 運(yùn)算部108、存儲(chǔ)器訪問控制部109執(zhí)行指令,將執(zhí)行而得到的結(jié)果保存 到寄存器文件110中。
圖2是表示本實(shí)施方式的指令解碼器105-1 105-3的結(jié)構(gòu)的框圖。 這里,對指令解碼器105-1進(jìn)行說明,對于指令解碼器105-2、 105-3,由 于是與指令解碼器105-1相同的結(jié)構(gòu),所以省略說明。
如圖2所示,指令解碼器105-1從指令緩沖器102-1接受指令代碼 151-1及指令有效信息152-1。此時(shí),如果指令有效信息152-1被肯定, 則將指令代碼151-1解碼。并且,將對應(yīng)于解碼結(jié)果的指令執(zhí)行控制信 號153-1向控制信號選擇部106輸出。此外,在檢測到有可能發(fā)生構(gòu)造 風(fēng)險(xiǎn)的指令時(shí),將對應(yīng)于解碼結(jié)果的發(fā)出控制指令檢測信號154-1向指 令發(fā)出控制部111輸出。另一方面,如果指令有效信息152-1被否定,則 不將指令代碼151-1解碼。
控制信號選擇部106從指令解碼器105-1 105-3接受指令執(zhí)行控制 信號153-1 153-3,從指令發(fā)出控制部111接受指令無效化信號155-1
155-3,將對應(yīng)于有效的指令的指令執(zhí)行控制信號157向指令執(zhí)行部104 輸出。具體而言,如果指令無效化信號155-1被否定,則對應(yīng)于指令執(zhí) 行控制信號153-1的指令執(zhí)行控制信號157被肯定。此外,對于指令無 效化信號155-2與指令執(zhí)行控制信號153-2、指令無效化信號155-3與指 令執(zhí)行控制信號153-3也同樣。假設(shè)指令無效化信號155-1 155-3都被 否定,則對應(yīng)于指令執(zhí)行控制信號153-1 153-3的全部的指令執(zhí)行控制 信號157被肯定。即,對應(yīng)于指令無效化信號155-1 155-3被否定的組 合,將指令執(zhí)行控制信號153-1 153-3組合、對應(yīng)于組合后的指令執(zhí)行 控制信號153-1 153-3的指令執(zhí)行控制信號157被肯定。
圖3是表示本實(shí)施方式的指令發(fā)出控制部111的結(jié)構(gòu)的框圖。如圖3 所示,指令發(fā)出控制部111具備構(gòu)造風(fēng)險(xiǎn)檢測部112、指令無效化控制部 113等。
構(gòu)造風(fēng)險(xiǎn)檢測部112從指令解碼器105-1 105-3接受發(fā)出控制指令 檢測信號154-1 154-3,由邏輯積電路114-1 3分別在發(fā)出控制指令檢 測信號154-1與發(fā)出控制指令檢測信號154-2、發(fā)出控制指令檢測信號 154-2與發(fā)出控制指令檢測信號154-3、發(fā)出控制指令檢測信號154-1與 發(fā)出控制指令檢測信號154-3之間檢測2個(gè)指令的發(fā)出控制對象的指令 的有無。進(jìn)而,由邏輯和電路115判斷2個(gè)指令以上的發(fā)出控制對象的 指令的有無,將對應(yīng)于判斷結(jié)果的依次發(fā)出指示信號162向指令無效化 控制部113輸出。此時(shí),如果有發(fā)出控制對象的指令,則依次發(fā)出指示 信號162被肯定。
指令無效化控制部113接受依次發(fā)出指示信號162,啟動(dòng)初始值0的 2-bit累加計(jì)數(shù)器116。接著,2-bit累加計(jì)數(shù)器116在依次發(fā)出指示信號 162被肯定的每個(gè)期間機(jī)器周期,更新計(jì)數(shù)器值163。
比較器117-1 117-3從2-bit累加計(jì)數(shù)器116接受計(jì)數(shù)器值163。進(jìn) 而,比較器117-1將值"0"與計(jì)數(shù)器值163比較,將比較結(jié)果164-1向 邏輯積電路118-1輸出。同樣,比較器117-2將值"1"與計(jì)數(shù)器值163 比較,將比較結(jié)果164-2向邏輯積電路118-2輸出。比較器117-3將值"2"
與計(jì)數(shù)器值163比較,將比較結(jié)果164-3向邏輯積電路118-3輸出。
邏輯積電路118-1 118-3從構(gòu)造風(fēng)險(xiǎn)檢測部112接受依次發(fā)出指示 信號162。進(jìn)而,邏輯積電路118-1從比較器117-1接受比較結(jié)果164-1, 將對應(yīng)于依次發(fā)出指示信號162與比較結(jié)果164-1的邏輯積的指令無效 化信號155-1輸出。同樣,邏輯積電路118-2從比較器117-2接受比較結(jié) 果164-2,將對應(yīng)于依次發(fā)出指示信號162與比較結(jié)果164-2的邏輯積的 指令無效化信號155-2輸出。邏輯積電路118-3從比較器117-3接受比較 結(jié)果164-3,將對應(yīng)于依次發(fā)出指示信號162與比較結(jié)果164-3的邏輯積 的指令無效化信號155-3輸出。此外,邏輯積電路118-3還將指令無效化 信號155-3作為指令緩沖器更新停止信號156輸出。 對于以上那樣構(gòu)成的處理器,以下說明其動(dòng)作。 圖4A、圖4B是用來進(jìn)行動(dòng)作說明的指令程序例,圖5A、圖5B是 其動(dòng)作說明圖。這里,在圖4A、圖4B、圖5A、圖5B中,add表示加法 指令,mac表示積和運(yùn)算指令,Id表示來自存儲(chǔ)器的裝載指令,能夠通 過算術(shù)邏輯運(yùn)算部107、積和運(yùn)算部108、存儲(chǔ)器訪問控制部109執(zhí)行。 這里,在實(shí)施方式1的處理器101中使用的程序中,假設(shè)所有指令配置 為,使得僅有可能發(fā)生對算術(shù)邏輯運(yùn)算部107的構(gòu)造風(fēng)險(xiǎn)、即在指令緩 沖器102中有可能配置有多個(gè)算術(shù)邏輯運(yùn)算指令,但不會(huì)發(fā)生除此以外 的構(gòu)造風(fēng)險(xiǎn)。
在圖4A所示的指令的組合(add, mac, ld)中,由于執(zhí)行這些指令 的運(yùn)算部的數(shù)量足夠,所以能夠同時(shí)執(zhí)行3個(gè)指令。指令解碼器105-1 檢測使用算術(shù)邏輯運(yùn)算部107的指令,將對應(yīng)于檢測結(jié)果的發(fā)出控制指 令檢測信號154-1向指令發(fā)出控制部111輸出。同樣,指令解碼器105-2 檢測使用算術(shù)邏輯運(yùn)算部107的指令,將對應(yīng)于檢測結(jié)果的發(fā)出控制指 令檢測信號154-2向指令發(fā)出控制部111輸出。指令解碼器105-3檢測使 用算術(shù)邏輯運(yùn)算部107的指令,將對應(yīng)于檢測結(jié)果的發(fā)出控制指令檢測 信號154-3向指令發(fā)出控制部111輸出。
在圖4A所示的指令的組合中,構(gòu)造風(fēng)險(xiǎn)檢測部112由于2個(gè)指令以
上的發(fā)出控制指令檢測信號沒有被肯定,所以不肯定依次發(fā)出指示信號
162。此外,指令無效化控制部113不肯定指令無效化信號155-l 155-3 以及指令緩沖器更新停止信號156。
隨之,控制信號選擇部106同時(shí)輸出與圖4A所示的全部3個(gè)指令對 應(yīng)的指令執(zhí)行控制信號157。并且,如圖5A所示,指令執(zhí)行部104同時(shí) 執(zhí)行這些指令。
另一方面,在圖4B所示的指令的組合(add, add, ld)中,由于能 夠執(zhí)行add指令的算術(shù)邏輯運(yùn)算部107只存在1個(gè),所以指令執(zhí)行部104 不能同時(shí)執(zhí)行。在該指令的組合中,由于構(gòu)造風(fēng)險(xiǎn)檢測部112不能肯定 兩個(gè)指令以上的發(fā)出控制指令檢測信號,所以肯定依次發(fā)出指示信號 162。此外,指令無效化控制部113接受依次發(fā)出指示信號162,依次肯 定指令無效化信號155-1 155-3,以使得每次1個(gè)指令成為有效。
隨之,控制信號選擇部106將對應(yīng)于每次1個(gè)指令的指令執(zhí)行控制 信號157向指令執(zhí)行部104輸出。并且,如圖5B所示,指令執(zhí)行部104 每次執(zhí)行一個(gè)指令。此時(shí),指令發(fā)出控制部111停止指令緩沖器組102 的更新直到全部指令被發(fā)出,所以肯定指令緩沖器更新停止信號156直 到第2個(gè)機(jī)器周期。
這樣,處理器101即使在指令緩沖器組102中配置有發(fā)生構(gòu)造風(fēng)險(xiǎn) 的指令的組合,也能夠在不知道指令執(zhí)行部104的動(dòng)作狀態(tài)的情況下, 僅通過指令緩沖器組102的內(nèi)容的信息避免構(gòu)造風(fēng)險(xiǎn)來執(zhí)行指令。
另外,在將指令組的指令依次供給的情況下,依次每次供給一個(gè)指 令,但在有多個(gè)運(yùn)算器的情況下,例如在有兩個(gè)算術(shù)邏輯運(yùn)算部的情況 下,也可以不只是依次每次供給1個(gè)指令,而是如包括兩個(gè)使用算術(shù)邏 輯運(yùn)算部的指令的組那樣、對將能夠分別獨(dú)立地同時(shí)處理的多個(gè)指令集 合為一個(gè)的指令組依次供給。
(實(shí)施方式2)
接著,參照附圖對有關(guān)本發(fā)明的實(shí)施方式2進(jìn)行說明。
在實(shí)施方式1的處理器101中,有時(shí)在來自指令解碼器105-1 105-3 的解碼結(jié)果輸出的時(shí)間中沒有富余、如果設(shè)置指令發(fā)出控制部111,則動(dòng) 作速度會(huì)降低而不能滿足用戶要求的動(dòng)作速度規(guī)格。相對于此,如圖6 所示,在實(shí)施方式2的處理器201中,其特征在于,代替指令發(fā)出控制 部111而具備指令發(fā)出控制部211,消除了這樣的問題。
艮P,實(shí)施方式2的處理器的特征在于,根據(jù)從指令解釋部輸入的指 令組的解釋結(jié)果,作為原因而檢測在指令組中包含1個(gè)以上有可能發(fā)生 構(gòu)造風(fēng)險(xiǎn)的指令的情況。
遵循以上的點(diǎn),對實(shí)施方式2的處理器進(jìn)行說明。另外,對于與實(shí) 施方式1的處理器101相同的結(jié)構(gòu)要素賦予相同的參考表及而省略說明。
圖7是表示本實(shí)施方式的指令發(fā)出控制部211的結(jié)構(gòu)的框圖。如圖7 所示,構(gòu)造風(fēng)險(xiǎn)監(jiān)測部212從指令解碼器105-1 105-3接受發(fā)出控制指 令檢測信號154-1 154-3,通過邏輯和電路214判斷有無1個(gè)指令以上 的發(fā)出控制對象的指令,將對應(yīng)于判斷結(jié)果的依次發(fā)出指示信號162向 指令無效化控制部113輸出。
對以上那樣構(gòu)成的處理器,以下說明其動(dòng)作。
圖8A 圖8C是用來進(jìn)行動(dòng)作說明的程序例,圖9A 圖9C是其動(dòng) 作說明圖。這里,在圖8A 圖8C、圖9A 圖9C中,rnd表示舍入運(yùn)算 指令,能夠在算術(shù)邏輯運(yùn)算部107中執(zhí)行,"一"表示沒有配置有指令的 情況。這里,被供給到實(shí)施方式2的處理器201中的程序有可能僅發(fā)生 舍入運(yùn)算處理對算術(shù)邏輯運(yùn)算部107的構(gòu)造風(fēng)險(xiǎn)。即,有可能多個(gè)舍入 運(yùn)算指令配置在指令緩沖器組102中、或者舍入運(yùn)算指令與算術(shù)邏輯運(yùn) 算指令的組合同時(shí)配置在指令緩沖器組102中,將全指令配置為使得除 此以外不會(huì)發(fā)生構(gòu)造風(fēng)險(xiǎn)。
在圖8A所示的指令組合(add, mac, ld)中,由于執(zhí)行這些指令的 運(yùn)算部的數(shù)量足夠,所以能夠同時(shí)執(zhí)行3個(gè)指令。指令解碼器105-1檢 測使用算術(shù)邏輯運(yùn)算部107的指令,將對應(yīng)于檢測結(jié)果的發(fā)出控制指令 檢測信號154-1向指令發(fā)出控制部211輸出。同樣,指令解碼器105-2檢
測使用算術(shù)邏輯運(yùn)算部107的指令,將對應(yīng)于檢測結(jié)果的發(fā)出控制指令 檢測信號154-2向指令發(fā)出控制部211輸出。指令解碼器105-3檢測使用 算術(shù)邏輯運(yùn)算部107的指令,將對應(yīng)于檢測結(jié)果的發(fā)出控制指令檢測信 號154-3向指令發(fā)出控制部211輸出。
在圖8A所示的指令的組合中,構(gòu)造風(fēng)險(xiǎn)監(jiān)測部212由于不能肯定1 個(gè)指令以上的發(fā)出控制指令檢測信號,所以不肯定依次發(fā)出指示信號 162。此夕卜,指令無效化控制部113不肯定指令無效化信號155-1 155-3 以及指令緩沖器更新停止信號156。
隨之,控制信號選擇部106將對應(yīng)于圖8A所示的全部3個(gè)指令的指 令執(zhí)行控制信號157同時(shí)向指令執(zhí)行部104輸出。接著,如圖9A所示, 指令執(zhí)行部104對該指令的組合同時(shí)執(zhí)行各個(gè)指令。
在圖8B所示的指令的組合(rnd, add, Id)中,由于能夠執(zhí)行rnd 指令或add指令的算術(shù)邏輯運(yùn)算部107在指令執(zhí)行部104中只存在1個(gè), 所以指令執(zhí)行部104不能同時(shí)執(zhí)行。在該指令的組合中,構(gòu)造風(fēng)險(xiǎn)檢測 部212由于1個(gè)指令以上的發(fā)出控制指令檢測信號被肯定,所以肯定依 次發(fā)出指示信號162。此外,指令無效化控制部113接受依次發(fā)出指示信 號162,依次肯定指令無效化信號155-l 155-3,以使得每次1個(gè)指令變 為有效。
隨之,控制信號選擇部106將對應(yīng)于每次1個(gè)指令的指令執(zhí)行控制 信號157向指令執(zhí)行部104輸出。接著,如圖9B所示,指令執(zhí)行部104 每次執(zhí)行1個(gè)指令。此時(shí),指令發(fā)出控制部211停止指令緩沖器組102 的更新直到全部指令被發(fā)出,所以肯定指令緩沖器更新停止信號156直 到第2機(jī)器周期。
在圖8C所示的指令的組合(md, ld,-)中,使用算術(shù)邏輯運(yùn)算部 107的指令只是md指令l個(gè)指令,不發(fā)生構(gòu)造風(fēng)險(xiǎn)。但是,構(gòu)造風(fēng)險(xiǎn)檢 測部212由于1個(gè)指令以上的發(fā)出控制指令檢測信號被肯定,所以肯定 依次發(fā)出指示信號162。此外,指令無效化控制部113接受依次發(fā)出指示 信號162,依次肯定指令無效化信號155-l 155-3,以使得每次1個(gè)指令
變?yōu)橛行А?br>
隨之,控制信號選擇部106將對應(yīng)于每次1個(gè)指令的指令執(zhí)行控制 信號157向指令執(zhí)行部104輸出。接著,如圖9C所示,指令執(zhí)行部104 每次執(zhí)行1個(gè)指令。此時(shí),指令發(fā)出控制部211停止指令緩沖器組102 的更新直到全部指令被發(fā)出,所以肯定指令緩沖器更新停止信號156直 到第2機(jī)器周期。
另外,如圖8C所示,在所有指令緩沖器中都沒有配置指令的情況下, 在有關(guān)本發(fā)明的實(shí)施方式1及實(shí)施方式2中,與沒有配置的指令數(shù)相等 的機(jī)器周期數(shù)的期間作為什么都不發(fā)出的冗余的期間存在。
這樣,處理器201即使在指令緩沖器組102中配置有發(fā)生構(gòu)造風(fēng)險(xiǎn) 的指令的組合,也不用知道指令執(zhí)行部104的動(dòng)作狀態(tài),并且通過構(gòu)造 風(fēng)險(xiǎn)檢測部212僅由1個(gè)邏輯和電路構(gòu)成,能夠僅通過指令緩沖器組102 的內(nèi)容的信息避免構(gòu)造風(fēng)險(xiǎn)來執(zhí)行指令。
(實(shí)施方式3)
接著,參照附圖對有關(guān)本發(fā)明的實(shí)施方式3進(jìn)行說明。
在實(shí)施方式1的處理器101中,在所有指令緩沖器中沒有配置有指 令的情況下存在冗長的期間。對此,如圖10所示,實(shí)施方式3的處理器 301中,其特征在于,代替指令發(fā)出控制部111而具備指令發(fā)出控制部 311,能夠消除這樣的問題。
艮P,實(shí)施方式3的處理器的特征在于,在依次供給指令組的指令的 情況下,利用以保持在指令緩沖器中的指令數(shù)為最大值的計(jì)數(shù)器,從指 令組之中將對應(yīng)于每個(gè)計(jì)數(shù)器的值的指令依次每次供給1個(gè)指令。
遵循以上的點(diǎn)對實(shí)施方式3的處理器301進(jìn)行說明。另外,對于與 實(shí)施方式1的處理器101相同的結(jié)構(gòu)要素賦予相同的標(biāo)號而省略說明。
圖11是表示本實(shí)施方式的指令發(fā)出控制部311的結(jié)構(gòu)的框圖。如圖 11所示,指令無效化控制部313接受依次發(fā)出指示信號162及指令有效 信息152-1 152-3,輸出指令無效化信號355-1 355-3以及指令緩沖器 更新停止信號356。
對以上那樣構(gòu)成的處理器,以下說明其動(dòng)作。
圖12A、圖12B是用來進(jìn)行動(dòng)作說明的程序例,圖13A、圖13B是 其動(dòng)作說明圖。這里,被供給到實(shí)施方式3的處理器301中的程序與有 關(guān)本發(fā)明的實(shí)施方式1同樣,假設(shè)僅有可能發(fā)生對算術(shù)邏輯運(yùn)算部107 的構(gòu)造風(fēng)險(xiǎn)。即,將全指令配置為,使得有可能配置有多個(gè)算術(shù)邏輯運(yùn) 算指令,除此以外不會(huì)發(fā)生構(gòu)造風(fēng)險(xiǎn)。
在圖12A所示的指令組合(add, add, ld)中,由于能夠執(zhí)行add 指令的算術(shù)邏輯運(yùn)算部107只存在1個(gè),所以不能同時(shí)執(zhí)行兩個(gè)add指 令。在該指令的組合中,由于構(gòu)造風(fēng)險(xiǎn)檢測部112不能肯定兩個(gè)指令以 上的發(fā)出控制指令檢測信號,所以肯定依次發(fā)出指示信號162。此外,指 令無效化控制部313接受依次發(fā)行指示信號162及指令有效信息152-2、 152-3。此時(shí),指令有效信息152-3也被肯定。由此,檢測到存在3個(gè)指 令,依次肯定指令無效化信號355-l 355-3,以每次使1個(gè)指令有效。
隨之,控制信號選擇部106將對應(yīng)于每次1個(gè)指令的指令執(zhí)行控制 信號157向指令執(zhí)行部104輸出。接著,如圖13A所示,指令執(zhí)行部104 每次執(zhí)行1個(gè)指令。此時(shí),指令發(fā)出控制部31停止指令緩沖器組102的 更新直到全部指令被發(fā)出,所以肯定指令緩沖器更新停止信號356直到 第2機(jī)器周期。
另一方面,在圖12B所示的指令的組合(add, add,-)中,構(gòu)造風(fēng) 險(xiǎn)檢測部112由于不能肯定兩個(gè)指令以上的發(fā)出控制指令檢測信號,所 以與圖12A所示的指令的組合同樣肯定依次發(fā)出指示信號162。
但是,指令無效化控制部313接受依次發(fā)出指示信號162及指令有 效信息152-2、 152-3。此時(shí),指令有效信息152-2被肯定,指令有效信息 152-3沒有被肯定。由此,檢測到存在兩個(gè)指令,依次肯定指令無效化信 號355-1 355-3以使每次1個(gè)指令變?yōu)橛行А?br>
隨之,控制信號選擇部106將對應(yīng)于每次1個(gè)指令的指令執(zhí)行控制 信號157向指令執(zhí)行部104輸出。接著,如圖13B所示,指令執(zhí)行部104
每次執(zhí)行1個(gè)指令。此時(shí),指令發(fā)出控制部311僅肯定第1機(jī)器周期的 指令緩沖器更新停止信號356,否定第2機(jī)器周期更新停止信號。由此, 在接著的機(jī)器周期中將新的指令保存到指令緩沖器組102中。
這樣,處理器301即使在指令緩沖器組102中配置有發(fā)生構(gòu)造風(fēng)險(xiǎn) 的指令的組合,也不用知道指令執(zhí)行部104的動(dòng)作狀態(tài),并且僅通過指 令緩沖器組102的內(nèi)容避免構(gòu)造風(fēng)險(xiǎn),能夠僅在配置在指令緩沖器中的 指令數(shù)量的機(jī)器周期數(shù)量的期間依次發(fā)出指令。
(實(shí)施方式4)
接著,參照附圖對有關(guān)本發(fā)明的實(shí)施方式4進(jìn)行說明。
在多循環(huán)指令解釋管理部從來自指令解碼器的多個(gè)指令選擇能夠解 釋的1個(gè)指令來進(jìn)行多循環(huán)指令的解釋管理的情況下,即使在實(shí)施方式1 的處理器101中單純地包含有多循環(huán)指令解釋管理部,如果配置有多個(gè) 多循環(huán)指令,則由于在多循環(huán)指令解釋管理部中的指令選擇時(shí)刻會(huì)發(fā)生 多個(gè)多循環(huán)指令的競爭,所以不能不進(jìn)行解釋管理而使用。對此,如圖 14所示,在實(shí)施方式4的處理器401中,其特征在于,代替指令緩沖器 組102、指令解釋部103、指令執(zhí)行部104、指令發(fā)出控制部111而具備 指令緩沖器組402、指令解釋部403、指令執(zhí)行部404、指令發(fā)出控制部 411、多循環(huán)指令解釋管理部412等,能夠消除這樣的問題。
艮P,實(shí)施方式4的處理器基于簡單解釋從指令緩沖器組輸入的指令 組的結(jié)果,以在指令組中包含有規(guī)定數(shù)量的多循環(huán)指令為原因來檢測。
這里,在簡單解釋時(shí),至少確定是否是多循環(huán)指令。
所謂的"多循環(huán)指令"是指對1個(gè)指令執(zhí)行多個(gè)運(yùn)算的指令。另外, 將此時(shí)執(zhí)行的運(yùn)算也稱作微操作。
遵循以上的點(diǎn),對實(shí)施方式4的處理器401進(jìn)行說明。另外,對于 與實(shí)施方式1的處理器101相同的結(jié)構(gòu)要素賦予相同的標(biāo)號而省略說明。
圖14是表示本實(shí)施方式的處理器的結(jié)構(gòu)的框圖。如圖14所示,處 理器401具備指令緩沖器組402、指令解釋部403、指令執(zhí)行部404、指令發(fā)出控制部411、多循環(huán)指令解釋管理部412等。
指令緩沖器組402具備多個(gè)指令緩沖器,保持指令組。這里,假設(shè) 由指令緩沖器402-1 402-3構(gòu)成。指令緩沖器402-1 402-3保持有指令 代碼451-1 451-3和指令有效信息452-1 452-3。
指令解釋部403由指令解碼器405-1 405-3、控制信號選擇部406 構(gòu)成。
指令解碼器405-1 405-3從指令緩沖器402-1 402-3接受指令代碼
451- 1 451-3,從指令發(fā)出控制部411接受指令有效信息462-1 462-3。 進(jìn)而,將該解碼結(jié)果中的多循環(huán)指令的檢測結(jié)果作為多循環(huán)指令信號 463-1 463-3向多循環(huán)指令解釋管理部412輸出,從多循環(huán)指令解釋管 理部412接受微操作指示信號464-1 464-3。并且,將來自指令緩沖器 402-1 402-3的信息和對應(yīng)于微操作指示信號464-1 464-3的指令執(zhí)行 控制信號457向指令執(zhí)行部404輸出。
控制信號選擇部406從指令解碼器405-1 405-3接受指令執(zhí)行控制 信號453-1 453-3,將對應(yīng)于有效的指令的指令執(zhí)行控制信號457向指 令執(zhí)行部404輸出。
指令執(zhí)行部404由算術(shù)邏輯運(yùn)算部407、積和運(yùn)算部408、存儲(chǔ)器訪 問控制部409、寄存器文件410、和除法運(yùn)算部420構(gòu)成,進(jìn)行指令的執(zhí) 行及執(zhí)行結(jié)果的保存。
多循環(huán)指令解釋管理部412從指令解碼器405-1 405-3接受多循環(huán) 指令信號463-1 463-3,將微操作指示信號464-1 464-3向指令解碼器 405-1 405-3輸出,向指令發(fā)出控制部411輸出計(jì)數(shù)器更新停止信號466。
圖15是表示本實(shí)施方式的指令發(fā)出控制部4H的結(jié)構(gòu)的框圖。如圖 15所示,指令發(fā)出控制部411具備多循環(huán)指令檢測部413、指令無效化 控制部414、邏輯和電路415、邏輯積電路416-l 416-3等。
并且,邏輯積電路416-1從指令緩沖器402-1接受指令有效信息
452- 1,從指令無效化控制部414接受指令無效化信號468-1。并且,將 指令有效信息462-1向指令解碼器405-1輸出,該指令有效信息462-1對
應(yīng)于使指令無效化信號468-1反轉(zhuǎn)后的信號與指令有效信息452-1的邏輯 積。同樣,邏輯積電路416-2將指令有效信息462-2向指令解碼器405-2 輸出,該指令有效信息462-2對應(yīng)于使從指令無效化控制部414接受到 的指令無效化信號468-2反轉(zhuǎn)后的信號與從指令緩沖器402-2接受到的指 令有效信息452-2的邏輯積。邏輯積電路416-3將指令有效信息462-3向 指令解碼器405-3輸出,該指令有效信息462-3對應(yīng)于使從指令無效化控 制部414接受到的指令無效化信號468-3反轉(zhuǎn)后的信號與從指令緩沖器 402-3接受到的指令有效信息452-3的邏輯積。
邏輯和電路415從多循環(huán)指令解釋管理部412接受計(jì)數(shù)器更新停止 信號466,從指令無效化控制部414接受指令緩沖器更新停止信號469。 并且,將指令緩沖器更新停止信號456向指令緩沖器組402輸出,該指 令緩沖器更新停止信號456對應(yīng)于計(jì)數(shù)器更新停止信號466與指令緩沖 器更新停止信號469的邏輯和。
多循環(huán)指令檢測部413從指令緩沖器402-1接受指令代碼451-1及指 令有效信息452-1 。并且,從指令緩沖器402-2接受指令代碼451-2及指 令有效信息452-2。從指令緩沖器402-3接受指令代碼451-3及指令有效 信息452-3。進(jìn)而,通過多循環(huán)指令檢測解碼器421-l 421-3檢測可配置 多個(gè)的多循環(huán)指令。通過邏輯積電路422-1 422-3檢測有無兩個(gè)指令的 多循環(huán)指令。通過邏輯和電路423判斷可配置兩個(gè)以上的多個(gè)多循環(huán)指 令的有無。并且,將對應(yīng)于判斷結(jié)果的依次發(fā)出指示信號465向指令無 效化控制部414輸出。
指令無效化控制部414從多循環(huán)指令檢測部413接受依次發(fā)出指示 信號465,從多循環(huán)指令解釋管理部412接受計(jì)數(shù)器更新停止信號466, 啟動(dòng)初始值0的2-bit累加計(jì)數(shù)器417。并且,2-bit累加計(jì)數(shù)器417在依 次發(fā)出指示信號465被肯定的期間、且計(jì)數(shù)器更新停止信號466被否定 的機(jī)器周期,更新計(jì)數(shù)器值。
比較器418-1 418-3從2-bit累加計(jì)數(shù)器417接受計(jì)數(shù)器值467。進(jìn) 而,比較器418-1將值"0"與計(jì)數(shù)器值467比較,將比較結(jié)果470-1向 邏輯積電路419-1輸出。同樣,比較器418-2將值"1"與計(jì)數(shù)器值467 比較,將比較結(jié)果470-2向邏輯積電路419-2輸出。比較器418-3將值"2" 與計(jì)數(shù)器值467比較,將比較結(jié)果470-3向邏輯積電路419-3輸出。
邏輯積電路419-1 419-3從多循環(huán)指令檢測部413接受依次發(fā)出指 示信號465。進(jìn)而,邏輯積電路419-1從比較器418-1接受比較結(jié)果470-1, 將指令無效化信號468-1向邏輯積電路416-1輸出,該指令無效化信號 468-1對應(yīng)于依次發(fā)出指示信號465與比較結(jié)果470-1的邏輯積。同樣, 邏輯積電路419-2從比較器418-2接受比較結(jié)果470-2,將指令無效化信 號468-2向邏輯積電路416-2輸出,該指令無效化信號468-2對應(yīng)于依次 發(fā)出指示信號465與比較結(jié)果470-2的邏輯積。邏輯積電路419-3從比較 器418-3接受比較結(jié)果470-3,將指令無效化信號468-3向邏輯積電路 416-3輸出,該指令無效化信號468-3對應(yīng)于依次發(fā)出指示信號465與比 較結(jié)果470-3的邏輯積。
對于以上那樣構(gòu)成的處理器,以下說明其動(dòng)作。
圖16A、圖16B是用來進(jìn)行動(dòng)作說明的指令程序例,圖17A、圖17B 是其動(dòng)作說明圖。這里,在圖16A、圖16B、圖17A、圖17B中,div表 示除法指令,是由多循環(huán)指令解釋管理部412管理的n循環(huán)的多循環(huán)指 令,能夠由除法運(yùn)算部420執(zhí)行。這里,在實(shí)施方式4的處理器401中 使用的程序中,多循環(huán)指令中的僅除法運(yùn)算有可能在指令緩沖器組402 中配置有多個(gè),對于除此以外的多循環(huán)指令配置為使其不會(huì)在指令緩沖 器組402中配置有多個(gè)。
在圖16A所示的指令的組合(add, div, ld)中,多循環(huán)指令檢測部 413由于作為多循環(huán)指令的div指令是一個(gè),所以否定依次發(fā)出指示信號 465。由此,由于指令有效信息462-l 462-3同時(shí)被肯定,所以指令代碼 451-1 451-3被指令解碼器405-1 405-3同時(shí)解碼。
此時(shí),多循環(huán)指令解釋管理部412接受1個(gè)多循環(huán)指令div的多循環(huán) 指令信號464-2而進(jìn)行解釋管理。并且,在多循環(huán)指令的解釋管理中, 并且在不是多循環(huán)指令的最終微操作的期間,多循環(huán)指令解釋管理部412
肯定計(jì)數(shù)器更新停止信號466。指令發(fā)出控制部411由于指令緩沖器更新 停止信號469被否定,所以將計(jì)數(shù)器更新停止信號466原樣作為指令緩 沖器更新停止信號456輸出。
隨之,控制信號選擇部406對于這些指令的組合,將對應(yīng)于各個(gè)指 令的指令控制信號457同時(shí)向指令執(zhí)行部404輸出。并且,如圖17A所 示,指令執(zhí)行部404對這些指令的組合同時(shí)執(zhí)行各個(gè)指令。
另一方面,在圖16B所示的指令的組合(add, div, div)中,多循 環(huán)指令檢測部413由于作為多循環(huán)指令的div指令是兩個(gè),所以肯定依次 發(fā)出指示信號465。由此,當(dāng)計(jì)數(shù)器值467為"0"時(shí),指令有效信息462-1 462-3中的僅對應(yīng)于add指令的指令有效信息462-1被肯定,所以僅將指 令代碼451-1用指令解碼器405-1進(jìn)行解碼。
進(jìn)而,多循環(huán)指令解釋管理部412由于不存在有效的多循環(huán)指令, 所以將計(jì)數(shù)器更新停止信號466否定。因此,在接著的機(jī)器周期將計(jì)數(shù) 器值467更新為"1"。由此,當(dāng)計(jì)數(shù)器值467為"1"時(shí),由于指令有效 信息462-1 462-3中的僅對應(yīng)于第1個(gè)div指令的指令有效信息462-2 被肯定,所以僅將指令代碼451-2用指令解碼器405-2進(jìn)行解碼。
進(jìn)而,多循環(huán)指令解釋管理部412由于存在有效的多循環(huán)指令div, 所以將計(jì)數(shù)器更新停止信號466肯定。因此,停止2-bit累加計(jì)數(shù)器417 的更新,直到第1個(gè)div的解釋管理結(jié)束。在成為第1個(gè)div的最終微操 作時(shí),多循環(huán)指令解釋管理部412將計(jì)數(shù)器更新停止信號466否定,所 以在接著的機(jī)器周期將計(jì)數(shù)器值467更新為"2"。由此,由于對應(yīng)于第2 個(gè)div指令的指令有效信息462-3被肯定,所以只有指令代碼451-3被指 令解碼器405-3解碼。
接著,多循環(huán)指令解釋管理部412由于存在有效的多循環(huán)指令div, 所以將計(jì)數(shù)器更新停止信號466肯定。因此,停止2-bit累加計(jì)數(shù)器417 的更新,直到第2個(gè)div的解釋管理結(jié)束。在成為第2個(gè)div的最終微操 作時(shí),多循環(huán)指令解釋管理部412由于將計(jì)數(shù)器更新停止信號466否定, 所以指令緩沖器更新停止信號456也被否定,在下一機(jī)器周期中更新指
令緩沖器組402。
隨之,控制信號選擇部401將對應(yīng)于每次1個(gè)指令的指令執(zhí)行控制 信號457向指令執(zhí)行部404輸出。接著,如圖17B所示,指令執(zhí)行部404 每次執(zhí)行1個(gè)指令。
這樣,處理器401即使在指令緩沖器組402中配置有多個(gè)多循環(huán)指 令,也不用知道指令執(zhí)行部404的動(dòng)作狀態(tài),通過僅根據(jù)指令緩沖器組 402的內(nèi)容和來自多循環(huán)指令解釋管理部412的計(jì)數(shù)器更新停止信號466 依次發(fā)出指令,能夠執(zhí)行指令。
(實(shí)施方式5)
接著,參照附圖對有關(guān)本發(fā)明的實(shí)施方式5進(jìn)行說明。 在實(shí)施方式4的處理器401中,有時(shí)在指令有效信息462-1 462-3 的輸出的時(shí)間中沒有富余,如果設(shè)置指令發(fā)出控制部411則動(dòng)作速度降 低,不能滿足用戶要求的動(dòng)作速度規(guī)格。相對于此,如圖18所示,在實(shí) 施方式5的處理器501中,代替指令發(fā)出控制部411而具備指令發(fā)出控 制部5U,能夠解決這樣的問題。
艮口,實(shí)施方式5的處理器的特征在于,基于將從指令緩沖器輸入的 指令組簡單解釋的結(jié)果,作為原因而檢測在指令組之中包含1個(gè)以上多 循環(huán)指令的情況。
這里,在簡單解釋時(shí),假設(shè)至少確定是否是多循環(huán)指令。 遵循以上的點(diǎn),對實(shí)施方式5的處理器501進(jìn)行說明。另夕卜,對于 與實(shí)施方式4的處理器401相同的結(jié)構(gòu)要素賦予相同的標(biāo)號而省略說明。 圖19是表示本實(shí)施方式的指令發(fā)出控制部511的結(jié)構(gòu)的框圖。如圖 19所示,多循環(huán)指令檢測部513從指令緩沖器402-1 402-3接受指令代 碼451-l 451-3以及指令有效信息452-l 452-3,通過多循環(huán)指令檢測 解碼器521-1~521-3檢測可配置多個(gè)的多循環(huán)指令。進(jìn)而,通過邏輯和 電路522判斷能夠配置1個(gè)指令以上的多個(gè)多循環(huán)指令的有無,將其判 斷結(jié)果作為依次發(fā)出指示信號465向指令無效化控制部414輸出。對于以上那樣構(gòu)成的處理器,以下說明其動(dòng)作。
圖20A 圖20C是用來進(jìn)行動(dòng)作說明的指令程序例,圖21A 圖21C 是其動(dòng)作說明圖。這里,在實(shí)施方式5的處理器501中使用的程序中, 假設(shè)配置為,使多循環(huán)指令中的僅除法運(yùn)算有可能在指令緩沖器組402 中配置有多個(gè),除此以外的多循環(huán)指令不會(huì)在指令緩沖器組402中配置 有多個(gè)。
在圖20A所示的指令的組合(add, mac, ld)中,多循環(huán)指令檢測 部513由于不能檢測到可配置多個(gè)的多循環(huán)指令,所以將依次發(fā)出指示 信號465否定。
隨之,控制信號選擇部406對這些指令的組合,將對應(yīng)于各個(gè)指令 的指令執(zhí)行控制信號457同時(shí)向指令執(zhí)行部404輸出。接著,如圖21A 所示,指令執(zhí)行部404對這些指令的組合同時(shí)執(zhí)行各自的指令。
另一方面,在圖20B所示的指令的組合(add, div, div)中,多循 環(huán)指令檢測部513由于可配置多個(gè)的多循環(huán)指令是兩個(gè),所以將依次發(fā) 出指示信號465肯定。
隨之,控制信號選擇部406將對應(yīng)于每次1個(gè)指令的指令執(zhí)行控制 信號457向指令執(zhí)行部404輸出。接著,如圖21B所示,指令執(zhí)行部404
每次執(zhí)行1個(gè)指令。
在圖20C所示的指令的組合(add, div, ld)中,在多循環(huán)指令檢測 部513中,可配置多個(gè)的多循環(huán)指令只是1個(gè),即使對指令解釋部405 供給圖20C所示的指令的組合也能夠通過多循環(huán)指令解釋管理部412進(jìn) 行控制。但是,多循環(huán)指令檢測部513檢測出可配置多個(gè)的1個(gè)指令以 上的多循環(huán)指令,將依次發(fā)出指示信號465予以肯定。
隨之,控制信號選擇部406將對應(yīng)于每次1個(gè)指令的指令執(zhí)行控制 信號457向指令執(zhí)行部404輸出。接著,如圖21C所示,指令執(zhí)行部404
每次執(zhí)行1個(gè)指令。
這樣,處理器501即使在指令緩沖器402中配置有多個(gè)多循環(huán)指令, 也不用知道指令執(zhí)行部404的動(dòng)作狀態(tài)、且多循環(huán)指令檢測部513通過
多循環(huán)指令檢測解碼器521-1 521-3和1個(gè)邏輯和電路522的結(jié)構(gòu),能 夠在指令緩沖器組402的內(nèi)容中避免構(gòu)造風(fēng)險(xiǎn)來執(zhí)行指令。
另外,在所有指令緩沖器中沒有配置有指令的情況下,在本發(fā)明的 實(shí)施方式4及實(shí)施方式5中與沒有配置的指令數(shù)相等的機(jī)器周期數(shù)量的 期間作為什么都不能發(fā)出的冗余期間存在,但相對于此,通過將指令有 效信息452-2 452-3向指令無效化控制部414追加、進(jìn)行與本發(fā)明的實(shí) 施方式3中的指令發(fā)出控制部313同樣的控制,能夠?qū)⑷哂嗟钠陂g去除。
(實(shí)施方式6)
接著,參照附圖對本發(fā)明的實(shí)施方式6進(jìn)行說明。
在實(shí)施方式4的處理器401中,在多循環(huán)指令檢測部413中,如果 依次發(fā)出指示信號465被肯定,則不僅是多循環(huán)指令,能夠與多循環(huán)指 令同時(shí)執(zhí)行的單循環(huán)指令也被每次1個(gè)指令地依次供給。相對于此,如 圖22所示,在實(shí)施方式6的處理器601中,其特征在于,代替指令發(fā)出 控制部411而具備指令發(fā)出控制部611,能夠消除這樣的問題。
遵循以上的點(diǎn),對實(shí)施方式6的處理器601進(jìn)行說明。另外,對于 與實(shí)施方式4的處理器401相同的結(jié)構(gòu)要素賦予相同的標(biāo)號而省略說明。
圖23是表示本實(shí)施方式的指令發(fā)出控制部611的結(jié)構(gòu)的框圖。如圖 23所示,指令發(fā)出控制部611由多循環(huán)指令檢測部613、指令無效化控 制部614構(gòu)成。
多循環(huán)指令檢測部613從指令緩沖器402-1 402-3接受指令代碼 451-1 451-3及指令有效信息452-1 452-3,通過多循環(huán)指令檢測解碼 器421-l 421-3檢測可配置多個(gè)的多循環(huán)指令。進(jìn)而,將多循環(huán)指令檢 測信號472-1 472-3向指令無效化控制部614輸出。此外,通過以多循 環(huán)指令檢測信號472-1 472-3為輸入的邏輯積電路422-1 422-3檢測兩 個(gè)指令的多循環(huán)指令的有無,通過邏輯和電路423判斷可配置多個(gè)兩指 令以上的多循環(huán)指令的有無。并且將其判斷結(jié)果作為依次發(fā)出指示信號 465向指令無效化控制部614輸出。 指令無效化控制部614從多循環(huán)指令檢測部613接受依次發(fā)出指示 信號465以及多循環(huán)指令檢測信號472-l 472-3,從多循環(huán)指令解釋管 理部412接受計(jì)數(shù)器更新停止信號466。進(jìn)而,啟動(dòng)初始值"0"的2-bit 累加計(jì)數(shù)器417。并且,2-bit累加計(jì)數(shù)器417在依次發(fā)出指示信號465 被肯定的期間、并且計(jì)數(shù)器更新停止信號466被否定的機(jī)器周期,更新 計(jì)數(shù)器值。
比較器418-1 418-3從2-bit累加計(jì)數(shù)器417接受計(jì)數(shù)器值467,將 各個(gè)值"0"、 "1"、 "2"與計(jì)數(shù)器值467比較,將比較結(jié)果470-l 470-3 向邏輯積電路419-l 419-3輸出。
邏輯積電路419-1 419-3從比較器418-1 418-3接受比較結(jié)果 470-1 470-3,從多循環(huán)指令檢測部613接受依次發(fā)出指示信號465,取 比較結(jié)果470-1 470-3與依次發(fā)出指示信號465的邏輯積,將其結(jié)果作 為子指令組無效化信息674-1 674-3向無效化指令選擇部624供給。
無效化指令選擇部624基于圖24所示的真值表,按照多循環(huán)指令檢 測信號472-1 472-3從子指令組無效化信息674-1 674-3中選擇1個(gè), 作為指令無效化信息468-1 468-3輸出。
邏輯積電路625 627及邏輯和電路628構(gòu)成為,在多循環(huán)指令是兩 個(gè)指令的情況下、當(dāng)計(jì)數(shù)器值467為"0"時(shí),在多循環(huán)指令是3個(gè)指令 的情況下、當(dāng)計(jì)數(shù)器值467為"0"或"1"時(shí),將緩沖器更新信號456 予以肯定。
對于以上那樣構(gòu)成的處理器,以下說明其動(dòng)作。
圖25A、圖25B是用來進(jìn)行動(dòng)作說明的指令程序例,圖26A、圖26B 是其動(dòng)作說明圖。這里,在實(shí)施方式6的處理器601中使用的程序假設(shè) 配置為,使多循環(huán)指令中的僅除法運(yùn)算有可能在指令緩沖器組402中配 置有多個(gè),除此以外的多循環(huán)指令不會(huì)在指令緩沖器組402中配置有多個(gè)。
在圖25A所示的指令的組合(add, mac, ld)中,多循環(huán)指令檢測 部613由于沒有檢測到可配置多個(gè)的多循環(huán)指令,所以將依次發(fā)出指示
信號465予以否定。由此,指令有效信息462-l 462-3同時(shí)被肯定,所 以指令代碼451-l 451-3被指令解碼器405-1 405-3同時(shí)解碼。
隨之,控制信號選擇部406對于這些指令的組合,將對應(yīng)于各個(gè)指 令的指令控制信號457同時(shí)向指令執(zhí)行部404輸出。并且,如圖26A所 示,指令執(zhí)行部404對這些指令的組合同時(shí)執(zhí)行各個(gè)指令。
在圖25B所示的指令的組合(add, div, div)中,多循環(huán)指令檢測 部613檢測出可配置多個(gè)的多循環(huán)指令存在兩個(gè)指令以上,肯定依次發(fā) 出指示信號465。此時(shí),多循環(huán)指令檢測部613將多循環(huán)指令檢測信號 472-2及472-3也予以肯定。
此外,指令無效化控制部614由于多循環(huán)指令是兩個(gè)指令,所以僅 在計(jì)數(shù)器值467是"0"時(shí)肯定緩沖器更新停止信號456。
無效化指令選擇部624由于多循環(huán)指令檢測信號472-1 472-3分別 是"0"、"1"、"1",所以如圖24所示,對于指令無效化信息468-l 468-3, 分別選擇子指令組無效化信息674-1、 674-1、 674-2并輸出。
由此,如圖26B所示,首先add指令與第ldiv指令被向指令解釋部 403供給,接著第2div指令被向指令解釋部403供給。另夕卜,作為與第 ldiv信號同時(shí)被供給的單循環(huán)指令的add指令在與第ldiv指令同時(shí)被向 指令解釋部403供給后,由多循環(huán)指令解釋管理部412與div指令的最終 微操作同時(shí)發(fā)出。
這樣,處理器601即使在指令緩沖器組402中配置有多個(gè)多循環(huán)指 令的情況下,也不用知道指令執(zhí)行部404的動(dòng)作狀態(tài),通過僅根據(jù)指令 緩沖器組402的內(nèi)容的信息避免構(gòu)造風(fēng)險(xiǎn)、將可同時(shí)執(zhí)行的最大數(shù)量的 指令同時(shí)供給,能夠以可執(zhí)行的最小的循環(huán)數(shù)執(zhí)行指令。
另外,在本發(fā)明的實(shí)施方式3的處理器中,也將發(fā)出控制指令檢測 信號154-1 154-3作為指令無效化控制部313的輸入追加,通過將指令 無效化控制部313做成與指令無效化控制部614同樣的結(jié)構(gòu),通過將可 同時(shí)執(zhí)行的最大數(shù)量的指令同時(shí)供給,能夠以可執(zhí)行的最小循環(huán)數(shù)執(zhí)行 指令。
另外,如實(shí)施方式6的處理器那樣,在實(shí)施方式1的處理器中,在 依次供給指令組的指令的情況下,也可以將指令組分割為有可能發(fā)生構(gòu) 造風(fēng)險(xiǎn)的指令為1個(gè)指令以下的子指令組,利用以有可能發(fā)生構(gòu)造風(fēng)險(xiǎn) 的指令數(shù)為最大值的計(jì)數(shù)器,依次供給對應(yīng)于每個(gè)計(jì)數(shù)器值的子指令組。
(其他)
另外,有關(guān)本發(fā)明的處理器也可以通過全定制LSI (Large Scale Integration)實(shí)J見。此夕卜,也可以通過ASIC (Application Specific Integrated Circuit)等那樣的半定制LSI實(shí)現(xiàn)。此外,也可以通過FPGA (Field Programmable Gate Array ) 、 CPLD (Complex Programmable Logic Device)
等那樣的可編程邏輯設(shè)備實(shí)現(xiàn)。此外,也可以作為可動(dòng)態(tài)改寫電路結(jié)構(gòu) 的動(dòng)態(tài)可重構(gòu)設(shè)備來實(shí)現(xiàn)。
進(jìn)而,將構(gòu)成本發(fā)明的處理器的1個(gè)以上的功能形成在這些LSI中 的設(shè)計(jì)數(shù)據(jù)也可以做成通過VHDL (Very high speed integrated circuit Hardware Description Language)、 Verilog-HDL、 SystemC等另卩樣的石更"[牛描 述語言描述的程序(以下稱作HDL程序)。此外,也可以做成將HDL程 序邏輯合成而得到的門級的網(wǎng)絡(luò)列表。此外,也可以做成在門級的網(wǎng)絡(luò) 列表中附加了配置信息、過程條件等的微單元信息。此外,也可以做成 尺寸、定時(shí)等被規(guī)定的掩碼數(shù)據(jù)。
進(jìn)而,設(shè)計(jì)數(shù)據(jù)也可以記錄在光學(xué)記錄介質(zhì)(例如CD-ROM等)、 磁記錄介質(zhì)(例如硬盤等)、光磁記錄介質(zhì)(例如MO等)、半導(dǎo)體存儲(chǔ) 器(例如存儲(chǔ)卡等)等那樣的計(jì)算機(jī)可讀取的記錄介質(zhì)中,以便能夠被 計(jì)算機(jī)系統(tǒng)、內(nèi)嵌系統(tǒng)等的硬件系統(tǒng)讀出。
或者,設(shè)計(jì)數(shù)據(jù)也可以保持在傳送路徑上的硬件系統(tǒng)中,以便能夠 經(jīng)由網(wǎng)絡(luò)等的傳送路徑由其他硬件系統(tǒng)得到。進(jìn)而,從硬件系統(tǒng)經(jīng)由傳 送路徑被其他硬件系統(tǒng)取得的設(shè)計(jì)數(shù)據(jù)也可以經(jīng)由下載線纜被下載到可 編程邏輯設(shè)備中。
或者,被邏輯合成、配置、布線的設(shè)計(jì)數(shù)據(jù)也可以記錄在串行ROM
中,以便在通電時(shí)能夠被傳送給FPGA。并且,記錄在串行ROM中的設(shè) 計(jì)數(shù)據(jù)也可以在通電時(shí)直接被下載到FPGA中。
工業(yè)實(shí)用性
本發(fā)明可以作為如下的處理器等來使用,該處理器在如伴隨著省面 積而減少運(yùn)算器的數(shù)量的情況、或者隨著高速化而將單循環(huán)指令變更為 多循環(huán)指令的情況等那樣變更了構(gòu)架的情況下,也能夠不改變而利用最 適于變更前的構(gòu)架的目標(biāo)碼。
權(quán)利要求
1、一種處理器,能夠?qū)⒍鄠€(gè)指令并列解釋并執(zhí)行,其特征在于,具備指令緩沖器,保持可并列執(zhí)行的指令組;指令解釋單元,可同時(shí)解釋上述指令組的一部分或全部;指令發(fā)出控制單元,檢測在上述指令組中是否存在阻礙同時(shí)執(zhí)行上述指令組的原因,在存在上述原因的情況下,依次供給上述指令組的指令,在不存在上述原因的情況下,控制上述指令緩沖器向上述指令解釋單元供給上述指令組,以同時(shí)供給上述指令組的所有指令。
2、 如權(quán)利要求1所述的處理器,其特征在于,上述指令發(fā)出控制單元基于從上述指令解釋單元輸入的上述指令組 的解釋結(jié)果,檢測出在上述指令組之中包含有發(fā)生構(gòu)造風(fēng)險(xiǎn)的指令的組 合的情況,作為上述原因。
3、 如權(quán)利要求1所述的處理器,其特征在于,上述指令發(fā)出控制單元基于從上述指令解釋單元輸入的上述指令組 的解釋結(jié)果,檢測出在上述指令組之中包含有1個(gè)以上有可能發(fā)生構(gòu)造 風(fēng)險(xiǎn)的指令的情況,作為上述原因。
4、 如權(quán)利要求1所述的處理器,其特征在于,上述指令發(fā)出控制單元基于簡單解釋從上述指令緩沖器輸入的上述 指令組的結(jié)果,檢測出在上述指令組之中包含有規(guī)定數(shù)量的多循環(huán)指令 的情況,作為上述原因。
5、 如權(quán)利要求1所述的處理器,其特征在于,上述指令發(fā)出控制單元基于簡單解釋從上述指令緩沖器輸入的上述 指令組的結(jié)果,檢測出在上述指令組之中包含有1個(gè)以上多循環(huán)指令的 情況,作為上述原因。
6、 如權(quán)利要求1所述的處理器,其特征在于,上述指令發(fā)出控制單元在依次供給上述指令組的指令的情況下,利用以能夠由上述指令解釋單元同時(shí)解釋的最大指令數(shù)為最大值的計(jì)數(shù) 器,從上述指令組之中依次每次供給1個(gè)對應(yīng)于上述計(jì)數(shù)器的各個(gè)值的 指令。
7、 如權(quán)利要求1所述的處理器,其特征在于,上述指令發(fā)出控制單元在依次供給上述指令組的指令的情況下,利 用以保持在上述指令緩沖器中的指令數(shù)為最大值的計(jì)數(shù)器,從上述指令 組之中依次每次供給1個(gè)對應(yīng)于上述計(jì)數(shù)器的各個(gè)值的指令。
8、 如權(quán)利要求2所述的處理器,其特征在于,上述指令發(fā)出控制單元在依次供給上述指令組的指令的情況下,將 上述指令組分割為有可能發(fā)生上述構(gòu)造風(fēng)險(xiǎn)的指令為1個(gè)指令以下的子 指令組,利用以有可能發(fā)生上述構(gòu)造風(fēng)險(xiǎn)的指令數(shù)為最大值的計(jì)數(shù)器, 依次供給對應(yīng)于上述計(jì)數(shù)器的各個(gè)值的子指令組。
9、 如權(quán)利要求3所述的處理器,其特征在于,上述指令發(fā)出控制單元在依次供給上述指令組的指令的情況下,將 上述指令組分割為有可能發(fā)生上述構(gòu)造風(fēng)險(xiǎn)的指令為1個(gè)指令以下的子 指令組,利用以有可能發(fā)生上述構(gòu)造風(fēng)險(xiǎn)的指令數(shù)為最大值的計(jì)數(shù)器, 依次供給對應(yīng)于上述計(jì)數(shù)器的各個(gè)值的子指令組。
10、 如權(quán)利要求4所述的處理器,其特征在于, 上述指令發(fā)出控制單元在依次供給上述指令組的指令的情況下,將上述指令組分割為上述多循環(huán)指令為1個(gè)指令以下的子指令組,利用以 上述多循環(huán)指令數(shù)為最大值的計(jì)數(shù)器,依次供給對應(yīng)于上述計(jì)數(shù)器的各 個(gè)值的子指令組。
11、 如權(quán)利要求5所述的處理器,其特征在于, 上述指令發(fā)出控制單元在依次供給上述指令組的指令的情況下,將上述指令組分割為上述多循環(huán)指令為1個(gè)指令以下的子指令組,利用以 上述多循環(huán)指令數(shù)為最大值的計(jì)數(shù)器,依次供給對應(yīng)于上述計(jì)數(shù)器的各 個(gè)值的子指令組。
全文摘要
本發(fā)明的處理器(101)具備指令緩沖器(102),保持可并列執(zhí)行的指令組;指令解釋單元(103),可同時(shí)解釋指令組的一部分或全部;指令發(fā)出控制單元(111),檢測在指令組中是否存在阻礙同時(shí)執(zhí)行指令組的原因,在存在原因的情況下依次供給指令組的指令,在不存在原因的情況下控制指令緩沖器(102)將指令組向指令解釋部(103)供給,以將指令組的所有指令同時(shí)供給。
文檔編號G06F9/38GK101180607SQ20068001781
公開日2008年5月14日 申請日期2006年3月9日 優(yōu)先權(quán)日2005年6月15日
發(fā)明者細(xì)木哲 申請人:松下電器產(chǎn)業(yè)株式會(huì)社