專利名稱:半導(dǎo)體集成電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種半導(dǎo)體集成電路,進(jìn)一步涉及用于謀求容易地管理其所包含的處理器和可由上述處理器訪問的IP(設(shè)計資產(chǎn))模塊的技術(shù)。
背景技術(shù):
近年來,伴隨著信息處理設(shè)備的普及和對高性能化、高功能化的要求,逐漸在一個半導(dǎo)體芯片上搭載多個處理器和IP模塊。在這些芯片中,通過對多個處理器和IP模塊分配處理,在低頻率也能得到高的性能。由于半導(dǎo)體制造技術(shù)的進(jìn)步,能用半導(dǎo)體芯片實(shí)現(xiàn)的電路規(guī)模擴(kuò)大,出現(xiàn)了有效使用多個處理器和IP模塊的半導(dǎo)體芯片。在這些半導(dǎo)體芯片、特別是搭載多個不同的處理器的非對稱多級處理器芯片中,是以一個核為主部件來對其他核分配處理進(jìn)行控制的方式或者分別獨(dú)立進(jìn)行動作的方式等,人們正在尋求簡單且有效地使用所搭載的處理器和IP模塊的方法。另外,由于多個程序由多個處理器同時執(zhí)行,所以也在尋求防止由其他處理器執(zhí)行中的程序的破壞或者防止存儲區(qū)域被偷看這樣的安全性的對策。
對于此,在專利文獻(xiàn)1和專利文獻(xiàn)2公開了用于容易管理、使用處理器和IP模塊等的模塊并將其有效活用的硬件和方式。
在相關(guān)的現(xiàn)有技術(shù)中,提出了由專用電路和軟件來管理模塊、提高性能的方法,但是并沒有考慮在搭載有多個處理器時較為重要的分級管理、即某個處理器將允許其自身使用的處理器和IP模塊的使用許可給予其他處理器這種情況。另外,如上述那樣的安全性的側(cè)面也沒有特別考慮。
專利文獻(xiàn)1日本特開2004-192052號公報專利文獻(xiàn)2日本特開2001-167058號公報發(fā)明內(nèi)容在專利文獻(xiàn)1和專利文獻(xiàn)2所示的現(xiàn)有的方法中,假想了比較少的處理器和IP模塊,關(guān)于分級管理沒有被考慮。另外,關(guān)于執(zhí)行不能信任的程序、尤其是執(zhí)行像管理其他處理器或存儲器的讀/寫那樣的程序的情況,沒有被特別地考慮。
在該情況下,必須通過操作系統(tǒng)或其他軟件來解決上述問題,能考慮到處理和程序的復(fù)雜化和由與此相關(guān)的處理帶來的管理費(fèi)用的增大等。另外,也能考慮到對于不能信任的程序,用軟件也不能完全解決。
今后,伴隨嵌入式設(shè)備的高性能化和高功能化,將搭載更多的處理器和IP模塊,所以,能考慮到像上述那樣的問題會變得顯著。
本發(fā)明的目的在于,提供在搭載有多個處理器和可由其訪問的模塊的半導(dǎo)體集成電路中使上述處理器和模塊的管理容易的技術(shù)。
另外,本發(fā)明的另一個目的在于,提供用于容易地實(shí)現(xiàn)處理器和IP模塊的分級管理和每個處理器的存儲區(qū)域的訪問控制的技術(shù)。
進(jìn)而,本發(fā)明的又一目的在于,提供使搭載了多個處理器和IP模塊的半導(dǎo)體芯片容易使用和削減管理費(fèi)用的技術(shù)。
并且,本發(fā)明的又一目的在于謀求提高在使用時的安全性。
本發(fā)明的上述以及其他目的和新的特征從本說明書的記述和附圖可以明確。
在本申請所公開的發(fā)明中,簡要說明具有代表性的概要如下。
即,在包括多個處理器和可由上述處理器進(jìn)行訪問的模塊,而構(gòu)成半導(dǎo)體集成電路時,設(shè)置處理器管理單元,該處理器管理單元能將給予一個上述處理器的使用其它處理器或者上述模塊的許可變更到其他處理器。
采用上述手段,處理器管理單元能將給予一個上述處理器的使用其它處理器或者上述模塊的許可變更到其他處理器。這能實(shí)現(xiàn)使處理器和模塊的管理容易。
此時,在上述半導(dǎo)體集成電路中,可以包括總線,用于連接上述多個處理器和上述模塊;和總線控制器,可對經(jīng)由上述總線進(jìn)行的數(shù)據(jù)通信進(jìn)行控制。在該情況下,上述處理器管理單元能配置在上述總線和上述總線控制器之間。
在包括用于連接上述多個處理器和上述模塊的總線的情況下,上述處理器管理單元能分散配置在上述總線和上述多個處理器之間、以及上述總線和上述模塊之間。
能夠設(shè)置處理器ID信號線,該信號線可傳輸用于識別上述多個處理器中的各個處理器的處理器ID信息。
上述處理器管理單元包括存儲部,能存儲上述多個處理器中的每個處理器的使用其他處理器或者上述模塊的許可信息;控制邏輯,根據(jù)在上述存儲部所存儲的信息,進(jìn)行用于將給予一個上述處理器的使用其它處理器或者上述模塊的許可變更到其他處理器的控制。
另外,上述處理器管理單元包括存儲部,能存儲上述多個處理器中的每個處理器的向其他處理器或者上述模塊內(nèi)的存儲區(qū)域的訪問許可信息;控制邏輯,根據(jù)在上述存儲部所存儲的訪問許可信息,進(jìn)行用于將給予一個上述處理器的訪問其他處理器或者上述模塊內(nèi)的存儲區(qū)域的許可變更到其他處理器的控制。
此時,上述存儲部能夠包括第一寄存器,表示上述處理器的控制許可和使用狀況;第二寄存器,表示對上述處理器內(nèi)的存儲區(qū)域和上述模塊內(nèi)的存儲區(qū)域的讀出和寫入的許可狀況。
在該情況下,在上述多個處理器中的第一處理器的管理下,存在分別和上述第一處理器不同的第二處理器和第三處理器時,通過更新上述第一寄存器,能夠變更上述第二處理器和上述第三處理器的關(guān)系。另外,在上述多個處理器中的第一處理器的管理下,存在分別和上述第一處理器不同的第二處理器和第三處理器,并存在向上述第二處理器和上述第三處理器的寫許可時,通過更新上述第二寄存器,能夠變更上述第二處理器和上述第三處理器的關(guān)系。通過進(jìn)行這樣的控制,可進(jìn)行上述處理器和模塊的分級管理。另外,由于能進(jìn)行上述處理器和模塊的分級管理,能夠?qū)崿F(xiàn)使上述處理器和模塊的管理容易,并且能夠削減使用時的管理費(fèi)用。進(jìn)而,通過上述處理器和模塊的管理,能夠防止由非法的程序造成的數(shù)據(jù)的讀出和破壞。
簡單地說明由本發(fā)明所公開的發(fā)明中具有代表性的半導(dǎo)體集成電路得到的效果如下。
即,能夠提供用于在搭載有多個處理器和可由其進(jìn)行訪問的模塊的半導(dǎo)體集成電路中使上述處理器和模塊的管理容易的技術(shù)。
圖1是作為本發(fā)明的半導(dǎo)體集成電路的一例的微型計算機(jī)的結(jié)構(gòu)例框圖。
圖2是上述微型計算機(jī)中的處理器管理單元所包括的寄存器PECMLR的說明圖。
圖3是上述微型計算機(jī)中的處理器管理單元所包括的寄存器MRWMR的說明圖。
圖4是對由上述寄存器PECMLR管理的地址區(qū)域的訪問控制動作的流程圖。
圖5是對由上述寄存器MRWMR管理的地址區(qū)域的訪問控制動作的流程圖。
圖6是更新上述寄存器PECMLR時的流程圖。
圖7是更新上述寄存器MRWMR時的流程圖。
圖8是在上述微型計算機(jī)中由處理器PE-A使用處理器PE-B時的使用順序的流程圖。
圖9是上述微型計算機(jī)所包括的處理器和IP模塊的使用例的說明圖。
圖10是使用了上述微型計算機(jī)的通信的說明圖。
圖11是表示上述微型計算機(jī)的另一結(jié)構(gòu)例的框圖。
具體實(shí)施例方式
圖1表示作為本發(fā)明的半導(dǎo)體集成電路的一例的微型計算機(jī)。
圖1所示的微型計算機(jī)10沒有被特別地限制,其包括4個處理器PE1~PE4、3個IP模塊IP1~I(xiàn)P3、總線橋BUSB、處理器管理單元PMU、總線狀態(tài)控制器BSC、ID門IDG1~I(xiàn)DG4、處理器間總線100、外部總線101、處理器ID信號線102,形成在單晶硅基板等一個半導(dǎo)體基板上。
處理器PE1~PE4按照預(yù)先設(shè)定的程序進(jìn)行運(yùn)算處理。該處理器PE1~PE4沒有被特別地限制,但彼此為相同的結(jié)構(gòu)。處理器PE1包括中央處理裝置CPU、局部存儲器LMEM、直接內(nèi)存存取控制器DMAC、總線接口BIF。中央處理裝置CPU按照指令進(jìn)行運(yùn)算。局部存儲器LMEM主要用于在處理器PE1內(nèi)存儲運(yùn)算的數(shù)據(jù)和程序,但也可以從該處理器PE1外進(jìn)行訪問。直接內(nèi)存存取控制器DMAC是用于不使用中央處理裝置CPU地進(jìn)行數(shù)據(jù)傳送的模塊??偩€接口BIF是用于連接處理器內(nèi)部的總線和ID門IDG的接口。
IP模塊IP1~I(xiàn)P3為例如網(wǎng)絡(luò)接口或串行輸入輸出等的輸入輸出模塊、音頻專用電路或視頻處理專用電路等用途限定的運(yùn)算器等。
總線橋BUSB是用于連接處理器間總線100和外部總線101的模塊。進(jìn)行總線協(xié)議的變換或動作時鐘不同的情況的時序調(diào)整等。本例的BUSB支持從處理器間總線100向外部總線101的通信和從外部總線101向處理器間總線100的通信這兩者。
處理器間總線100是包括指令線、地址線、數(shù)據(jù)線、總線訪問請求信號線、總線訪問許可信號線、錯誤信號線而構(gòu)成的普通的總線。指令線用于由此進(jìn)行的通信的指令的傳輸。具體地說,讀出或者寫入的選擇、通信的數(shù)據(jù)的大小等由經(jīng)由上述指令線而被傳輸?shù)闹噶顏碇付?。地址線用于由此進(jìn)行的通信的地址信號的傳輸。數(shù)據(jù)線用于實(shí)際的數(shù)據(jù)傳輸。
處理器ID信號線102用于傳輸處理器ID(稱為PID),該處理器ID用于總線訪問請求者的識別。該P(yáng)ID通常由ID門IDG1~I(xiàn)DG4來附加。另外,在不存在ID門的總線訪問請求者的情況下,PID信號線102被置為“0”。
ID門IDG1~I(xiàn)DG4被設(shè)置在請求處理器間總線100的使用的模塊和處理器間總線100的連接部分。在本例中,被設(shè)置在各處理器內(nèi)的總線接口BIF和處理器間總線100之間。ID門IDG1~I(xiàn)DG4,當(dāng)接受從處理器內(nèi)部向處理器間總線100的訪問請求時,向PID信號線102附加PID信號,向處理器間總線100輸出訪問請求。在各ID門IDG1~I(xiàn)DG4分配了用于識別每一個的PID。在本例中,將處理器PE1的PID設(shè)為“1”,將處理器PE2的PID設(shè)為“2”,將處理器PE3的PID設(shè)為“3”,將處理器PE4的PID設(shè)為“4”。另外,總線橋BUSB可以輸出對處理器間總線100的訪問請求,但是沒有設(shè)置對應(yīng)的ID門IDG。在這種情況下,PID設(shè)為“0”。
處理器管理單元PMU包括寄存器PECMLR、MRWMR、和控制邏輯CNT??刂七壿婥NT接受來自PID信號線102和處理器間總線100的訪問請求,根據(jù)寄存器PECMLR和MRWMR的設(shè)定,來判斷是否允許其訪問。
另外,可以設(shè)置寄存器MDR(未圖示),該寄存器MDR用于定義可向上述兩個寄存器PECMLR和MRWMR進(jìn)行所有的訪問的主處理器。在包括該寄存器MDR的情況下,在復(fù)位時,在寄存器MDR設(shè)置除“0”以外最小的PID、即在本結(jié)構(gòu)中設(shè)置為“1”。由此,可通過在與PID1對應(yīng)的處理器PE1執(zhí)行的起動程序來進(jìn)行以后的設(shè)定。復(fù)位時的其他寄存器的值為表示不允許訪問的值。
在處理器管理單元PMU判斷為允許訪問的情況下,將請求通知給BSC,在不允許的情況下,從處理器間總線100的錯誤信號線向請求者返回錯誤。因為由PMU進(jìn)行總線訪問的管理,所以BSC也能與處理器間總線100對應(yīng)的現(xiàn)有的控制器。
總線狀態(tài)控制器BSC根據(jù)來自PMU的輸出信號進(jìn)行處理器間總線100的使用管理。處理器管理單元PMU和BSC間的連接以和處理器間總線100相同的結(jié)構(gòu)來進(jìn)行。
在圖2示出上述處理器管理單元PMU內(nèi)的寄存器PECMLR的存儲信息。
在圖2中,左起第一列表示訪問目的地處理器,左起第二列至第六列的、上起2行表示訪問方處理器。訪問方處理器的括弧內(nèi)的值是被分配給該處理器的PID。在圖2中,左起第二列至第六列的、上起第三行至第六行的項為處理器信息。在該處理器信息中,在“/”的左側(cè)表示訪問方處理器是否能使用訪問目的地處理器,在“/”的右側(cè)表示使用了該處理器的處理器是哪一個,用一項表示兩個設(shè)定。在這里,“訪問方處理器能使用訪問目的地處理器”是指,訪問方處理器能用訪問目的地處理器執(zhí)行任意的程序,“1”表示可使用,“0”表示不可使用。另外,“使用了該處理器的處理器是哪一個”是指,訪問目的地處理器執(zhí)行的程序根據(jù)哪個訪問方處理器的請求而被執(zhí)行?!?”表示正在使用,“0”表示未在使用。在訪問方處理器和訪問目的地處理器相同的情況下無需在本寄存器設(shè)定就能進(jìn)行訪問,所以在本寄存器中設(shè)為表示不進(jìn)行控制的DC(Don’t Care),送回表示不可寫入、而讀出始終DC的值。
在該圖中,雖然在訪問目的地處理器不包括BUSB,但是這是因為BUSB不是處理器不能執(zhí)行程序而做成這種結(jié)構(gòu)。在希望同樣地處理BUSB內(nèi)部的設(shè)定的情況下,也能夠在訪問目的地處理器中包括BUSB。
例如,在圖2中,訪問方處理器PE1(PID1)的列,處理器PE2被設(shè)定為表示可由處理器PE1使用且正在執(zhí)行處理器PE1所請求的程序的“1/1”,處理器PE3和處理器PE4為表示可由處理器PE1使用但未在執(zhí)行處理器PE1所請求的程序的“1/0”。另外,圖2中的訪問方處理器PE2(PID2)的列,為表示處理器PE3和處理器PE4可由處理器PE2使用,處理器PE3、處理器PE4都在執(zhí)行處理器PE2所請求的程序“1/1”。其它的處理器PE3、處理器PE4、以及分配有PID0的模塊表示被設(shè)定為“0/0”的狀態(tài),使得不能使用其它處理器。
復(fù)位時的動作,在為包括用于定義主處理器的寄存器MDR(未圖示)的結(jié)構(gòu)的情況下,全部復(fù)位成“0”。在不包括用于定義主處理器的寄存器MDR的情況下,PID0以上的PID最小的訪問方處理器PE1(PID1)的列都被設(shè)定為“1/0”,其他值都被設(shè)定為“0”。由此,通過復(fù)位成為可由處理器PE1使用所有的處理器的狀態(tài)。
在包括用于定義主處理器的寄存器MDR(未圖示)的結(jié)構(gòu)中,在任意的時序、狀態(tài)下由MDR所設(shè)定的處理器能夠變更對任意處理器的設(shè)定,所以能強(qiáng)制地使用某個處理器或者使停止的處理器復(fù)位。在不包括上述寄存器MDR的結(jié)構(gòu)中,通過運(yùn)用寄存器PECMLR的設(shè)定方法等而能夠彌補(bǔ)這一點(diǎn)。
在圖3中,示出處理器管理單元PMU內(nèi)的寄存器MRWMR的存儲信息。在該圖中,左起第一列表示訪問目的地處理器,左起第二列至第六列的、上起兩行表示訪問方處理器。訪問方處理器括弧內(nèi)的值是被分配給該處理器的PID。表的左起第二列至第六列的、上起第三行至第九行的項,“/”的左側(cè)表示從訪問方處理器向訪問目的地處理器的讀入請求的許可狀態(tài),右側(cè)表示從訪問方處理器向訪問目的地處理器的寫入請求的許可狀態(tài)。在圖3中,“1”表示可訪問,“0”表示不可訪問。在訪問方處理器向訪問目的地處理器相同的情況下,由于無需在本寄存器設(shè)定就可進(jìn)行訪問,所以在本寄存器中設(shè)定表示不進(jìn)行控制的DC(Don’t Care),送回表示不可寫入、而讀出始終DC的值。
例如,在圖3中,觀察訪問方處理器PE1(PID1)的列時,對處理器PE2和IP模塊IP1~I(xiàn)P3的訪問為表示可進(jìn)行讀/寫的“1/1”,對處理器PE3和處理器PE4的訪問為表示僅可讀的“1/0”。
在復(fù)位時的動作,在為包括用于定義主處理器的寄存器MDR(未圖示)的結(jié)構(gòu)的情況下,都被復(fù)位為“0”。在不包括用于定義主處理器的寄存器MDR(未圖示)的情況下,PID最小的訪問方處理器PE1(PID1)的列都被設(shè)定為“1/1”,其他值都被設(shè)定為“0”。由此,通過復(fù)位成為可由處理器PE1使用所有的處理器的狀態(tài)。
在圖4中,示出向由寄存器PECMLR所管理的地址區(qū)域的訪問控制的流程,寄存器PECMLR表示圖2所示的處理器的控制許可和使用狀況。該控制由控制邏輯CNT來進(jìn)行。
在這里“由寄存器PECMLR所管理的地址區(qū)域”指配置有用于從外部使用各處理器的控制寄存器的區(qū)域。
在發(fā)生總線訪問的情況(400)下,該情況成為觸發(fā),參照總線訪問的地址,辨別是否是向由存儲器PECMR所管理的地址區(qū)域的訪問(401)。在該辨別中,在判斷為是寄存器PECMLR進(jìn)行管理的地址區(qū)域(“是”)的情況下,由地址確定訪問目的地模塊(403)。另外,在上述步驟401的辨別中,在判斷為不是寄存器PECMLR進(jìn)行管理的地址區(qū)域(“否”)的情況下,發(fā)送訪問許可條件1。在這里所發(fā)送的訪問許可條件1和由圖5的動作發(fā)送的訪問許可條件2兩者都具備的情況下,允許總線訪問。該情況的總線訪問是向由處理器管理單元PMU管理的存儲區(qū)域外的訪問,在本例中,為分配給外部總線的存儲區(qū)域。
在上述步驟403中,根據(jù)由總線訪問所指定的訪問目的地地址確定訪問目的地模塊。在本例中,為處理器PE1~PE4的任意一個。
接著,參照寄存器PECMLR,辨別將總線訪問發(fā)生所涉及的模塊設(shè)為訪問方處理器和在上述步驟403確定的訪問目的地模塊的項的值是否是“1/1”或者“1/0”或者“DC”中的任意一個。在判斷項的值是“1/1”或者“1/0”或者“DC”中的任意一個的情況下,允許該總線訪問(406)。另外,在上述步驟404的辨別中,在判斷項的值不是“1/1”或者“1/0”或者“DC”中的任意一個的情況下,設(shè)為訪問錯誤(405)。即,由于判斷為向未被允許的區(qū)域進(jìn)行訪問,所以訪問錯誤被返回到總線訪問發(fā)生方。在該總線訪問被允許的情況下,可經(jīng)由處理器間總線100進(jìn)行模塊間的通信。通過這樣的控制,能夠防止向未被允許訪問的處理器的訪問,能夠占有處理器進(jìn)行處理,或者防止通過非法的程序奪取處理器的控制。
在圖5中,示出向由寄存器MRWMR所管理的地址區(qū)域的訪問控制的流程,寄存器MRWMR表示圖3所示的處理器的控制許可和使用狀況。該控制由控制邏輯CNT來進(jìn)行。
由寄存器MRWMR所管理的地址區(qū)域,指各處理器和IP模塊的內(nèi)部存儲區(qū)域,其與由寄存器PECMLR所管理的地址區(qū)域不重疊。
從發(fā)生總線訪問的情況(500)開始,參照總線訪問的地址,辨別是否是向由存儲器MRWMR所管理的地址區(qū)域的訪問(501)。在該辨別中,在判斷為是寄存器MRWMR進(jìn)行管理的地址區(qū)域(“是”)的情況下,由地址確定訪問目的地模塊(503)。另外,在上述步驟501的辨別中,在判斷為不是由寄存器MRWMR所管理的地址區(qū)域的訪問(“否”)的情況下,發(fā)送訪問許可條件2(502)。在這里所發(fā)送的訪問許可條件2和由圖4的動作發(fā)送的訪問許可條件1兩者都具備的情況下,允許總線訪問。該情況的訪問是向由處理器管理單元PMU管理的存儲區(qū)域外的訪問,在本例中,為分配給外部總線的存儲區(qū)域。
在上述步驟503中,根據(jù)由總線訪問所指定的訪問目的地地址確定訪問目的地模塊。在本例中,為處理器PE1~PE、IP1~I(xiàn)P3中的任意一個。
接著,參照總線訪問的指令,辨別是否是讀訪問。在這里,是否是讀訪問的辨別相當(dāng)于是讀訪問還是寫訪問的辨別。在該辨別中,在判斷為是讀訪問(“是”)的情況下,參照寄存器MRWMR,辨別在將發(fā)生了總線訪問的模塊設(shè)為訪問方處理器、將在上述步驟503所確定的模塊設(shè)為訪問目的地PE/IP的項的值是否是“1/1”或者“1/0”或者“DC”中的任意一個(505)。在該辨別中,在判斷為是“1/1”或者“1/0”或者“DC”中的任意一個(“是”)的情況下,訪問被允許,可進(jìn)行模塊間的通信(508)。但是,在上述步驟505的辨別中,在判斷為不是“1/1”或者“1/0”或者“DC”中的任意一個(“否”)的情況下,訪問錯誤返回到總線訪問發(fā)生方的模塊(507)。另外,在上述步驟504的辨別中,在判斷為不是讀訪問(“否”)的情況下,參照寄存器MRWMR,辨別將總線訪問所涉及的模塊設(shè)為訪問方處理器、將在上述步驟503所確定的模塊設(shè)為訪問目的地PE/IP的項的值是否是“1/1”或者“0/1”或者“DC”中的任意一個(506)。在該辨別中,在判斷為是“1/1”或者“0/1”或者“DC”中的任意一個(“是”)的情況下,訪問被允許,可進(jìn)行模塊間的通信(508)。但是,在上述步驟506的辨別中,在判斷不是“1/1”或者“0/1”或者“DC”中的任意一個(“否”)的情況下,訪問錯誤返回到總線訪問發(fā)生方的模塊(507)。通過這樣的控制,能夠防止向訪問未被允許的模塊的訪問,防止由非法的程序或缺陷造成的數(shù)據(jù)的讀出和竄改。另外,由于能單獨(dú)設(shè)定讀和寫的許可,所以也能進(jìn)行僅可讀這樣的運(yùn)用。
圖6表示更新寄存器PECMLR時的動作的流程,寄存器PECMLR表示圖2所示的處理器的控制許可和使用狀況。該控制由控制邏輯CNT來進(jìn)行。在該圖中,將變更請求方處理器作為PE-A、被變更的項的訪問方處理器作為PE-B、被變更的項的訪問目的地處理器作為PE-C來記述。
首先,將在寄存器PECMLR發(fā)生了訪問作為開始,開始本流程圖的動作(600)。
在寄存器PECMRLR中,參照訪問方處理器作為PE-A、訪問目的地處理器作為PE-B的項,辨別是否是“1/1”或者“1/0”中的任意一個(601)。在該辨別中,在判斷為是“1/1”“1/0”中的任意一個(“是”)的情況下,表示PE-B在PE-A的管理下,在判斷為是“1/1”或者“1/0”中的任意一個情況下,參照PECMRLR的訪問方處理器為PE-A、訪問目的地處理器為PE-C的項,辨別是否是“1/1”或者“1/0”中的任意一個(602)。在該辨別中,在判斷為是“1/1”或者“1/0”中的任意一個(“是”)的情況下,更新作為允許訪問對象的寄存器(604)。另外,在上述步驟601的辨別中,在判斷為不是“1/1”或者“1/0”中的任意一個(“否”)的情況下、以及在上述步驟602的辨別中判斷為不是“1/1”或者“1/0”中的任意一個(“否”)的情況下,由于是向未被允許的區(qū)域的訪問,所以為訪問錯誤(603)。根據(jù)本動作,當(dāng)在處理器PE-A的管理下有處理器PE-B和處理器PE-C時,能變更處理器PE-B和處理器PE-C的關(guān)系。這種情況,處理器PE-A能僅對管理下的處理器PE-C變更設(shè)定,由此進(jìn)行處理器的分級管理。當(dāng)搭載的處理器的個數(shù)增加時,難以控制所有的處理器的管理,所以通過進(jìn)行這種分級管理,能謀求使管理容易。
圖7是表示更新寄存器MRWMR時的動作的流程圖,該寄存器MRWMR進(jìn)行圖3所示的處理器內(nèi)部的存儲器和IP模塊內(nèi)部的存儲器(也包括進(jìn)行了存儲器映射(memory map)的寄存器)的讀出和寫入的許可。在該圖中,將變更請求方處理器作為PE-A、被變更項的訪問方處理器作為PE-B、被變更的項的訪問目的地PE/IP作為PE/IP-C來記述。
將在寄存器MRWMR發(fā)生了訪問作為開始,開始本流程圖的動作(700)。在步驟701中,參照寄存器PECMRLR的訪問方處理器為PE-A、訪問目的地處理器為PE-B的項,判斷是否是“1/1”或者“1/0”中的任意一個。是“1/1”或者“1/0”的情況表示PE-B在PE-A的管理下。在是“1/1”或者“1/0”中的任意一個的情況下,進(jìn)入步驟703,在不同的情況下,進(jìn)入步驟702。在步驟702中,由于被判斷為是向未被允許的區(qū)域的訪問,所以將訪問錯誤返回到總線訪問發(fā)生方的模塊。在步驟703中,參照寄存器MRWMR的訪問方處理器為PE-A、訪問目的地PE/IP為PE/IP-C的項,辨別是否是“1/1”或者“0/1”或者“DC”中的任意一個。在該辨別中,在辨別是“1/1”或者“0/1”或者“DC”中的任意一個(“是”)的情況下,進(jìn)入步驟704,在不同的情況下,進(jìn)入步驟702。在步驟704中,由于向寄存器MRWMR的訪問被允許,所以作為對象的寄存器被更新。根據(jù)本動作,在處理器PE-A的管理下有處理器PE-B和處理器PE-C,在有向PE-B或者處理器PE/IP-C的寫許可的情況下,能夠變更處理器PE-B和處理器PE/IP-C的關(guān)系。處理器PE-A能僅對管理下的處理器或者IP模塊變更設(shè)定,由此能進(jìn)行處理器的分級管理。當(dāng)搭載的處理器和IP模塊的個數(shù)增加時,控制所有的模塊很難,所以通過這種分級管理,能夠?qū)崿F(xiàn)使管理容易。
圖8表示由PE-A使用PE-B時的使用順序的流程。
在步驟800中,PE-A確認(rèn)可由PE-A使用的處理器和IP模塊。在步驟801中,PE-A使用在800得到的信息辨別PECMLR的訪問方處理器A、訪問目的地處理器B的項是否是“1/0”。在該辨別中,在判斷為是“1/0”的情況下,判斷為PE-B在PE-A的管理下且目前沒有被使用,進(jìn)入步驟803。在除“1/0”的情況下,判斷為在PE-A的管理下沒有PE-B(0/0)或者PE-B已經(jīng)在使用中(1/1),進(jìn)入步驟802。在步驟802中,由于PE-A不能使用PE-B,所以結(jié)束用于使用PE-B的處理。在本例中雖沒有被特別指定,但是能考慮到對具有PE-A的管理權(quán)限的PE,申請PE-B的使用許可等動作。在步驟803中,PE-A將PECMLR的訪問方處理器A、訪問目的地處理器B的項設(shè)置為1/1,表示正在由PE-A使用PE-B。在步驟804中,在有允許PE-B進(jìn)行控制的處理器的情況下,將寄存器PECMLR的相應(yīng)位置設(shè)置為1/0,可進(jìn)行來自PE-B的控制。在步驟805中,PE-A在存在允許PE-B訪問的PE/IP的情況下,將寄存器MRWMR的相應(yīng)位置設(shè)置為1/0或者1/1。設(shè)置的值根據(jù)給予PE-B的訪問許可內(nèi)容而變化。在步驟806中,PE-A對PE-B的控制寄存器進(jìn)行訪問,使PE-B開始目標(biāo)處理。在步驟807中,PE-B完成由PE-A請求的處理之后,向PE-A報告處理結(jié)束。在步驟808中,PE-A將PECMLR的訪問方處理器A、訪問目的地處理器B的項設(shè)置為1/0,表示未在由PE-A使用PE-B。
圖9表示圖1所示的微型計算機(jī)10中的處理器PE1~PE4和模塊IP1~I(xiàn)P3的使用例。
圖9中的箭頭表示由一個處理器使用其它處理器的關(guān)系、和由一個處理器使用IP模塊的關(guān)系。即,由處理器PE1使用處理器PE2,由處理器PE2使用處理器PE3、處理器PE4、處理器IP1,由處理器PE3使用處理器PE2,由處理器PE4使用處理器PE3。因該關(guān)系,執(zhí)行處理中的寄存器PECMLR為圖2所示的值。另外,因該關(guān)系,執(zhí)行處理中的寄存器MRWMR為圖3所示的值。
圖10表示在圖9所示的關(guān)系中使用本微型計算機(jī)10時的通信的順序。在該圖的初始狀態(tài),設(shè)為對處理器PE1允許使用所有的模塊的狀態(tài)。
在圖10中,用于表示從900至906,由處理器PE1使處理器PE2執(zhí)行處理的動作。
在900中,將訪問方處理器1和訪問目的地處理器2的寄存器PECMLR設(shè)為1/1,另外,為了允許由處理器PE2讀處理器PE1的存儲區(qū)域,而將訪問方處理器2和訪問目的地處理器1的寄存器PECMLR設(shè)為1/0。
在901中,為了允許由處理器PE2使用處理器PE3,而將訪問方處理器2和訪問目的地處理器3的寄存器PECMLR設(shè)為“1/0”,將寄存器MRWMR設(shè)為“1/1”。在902中,為了允許由處理器PE2使用處理器PE4,而將訪問方處理器2和訪問目的地處理器4的寄存器PECMLR設(shè)定為“1/0”。將寄存器MRWMR設(shè)定為“1/1”。在903中,為了允許由處理器PE2使用IP1,而將訪問方處理器2和訪問目的地IP1的寄存器MRWMR設(shè)為“1/1”。在904中,為了允許由處理器PE2使用IP2,而將訪問方處理器2和訪問目的地IP2的寄存器MRWMR設(shè)定為“1/1”。在905中,為了允許由處理器PE2使用IP3,而將訪問方處理器2和訪問目的地IP3的寄存器MRWMR設(shè)定為“1/1”。在906中,處理器PE1使處理器PE2執(zhí)行目標(biāo)處理。此時,處理器PE3、處理器PE4、IP模塊IP1~I(xiàn)P3都處于可由處理器PE2使用的狀態(tài),處理器PE2能夠使用這些模塊執(zhí)行被給予的處理。
從907至909表示用于由處理器PE2使處理器PE3執(zhí)行處理的動作。
在907中,為了允許由處理器PE3使用IP2而將訪問方處理器3和訪問目的地IP2的寄存器MRWMR設(shè)定為“1/1”。在909中,處理器PE2使處理器PE3執(zhí)行目標(biāo)處理。此時,IP2處于可由處理器PE3使用的狀態(tài),處理器PE3能使用該模塊執(zhí)行被給予的處理。從910至912表示用于使處理器PE2至處理器PE4執(zhí)行處理的動作。在910中,為了允許由處理器PE4使用IP3,而將訪問方處理器4和訪問目的地IP3的寄存器MRWMR設(shè)定為“1/1”。在912中,處理器PE2使處理器PE4執(zhí)行目標(biāo)處理。此時,IP3處于可由處理器PE4使用的狀態(tài),處理器PE4能使用該模塊執(zhí)行被給予的處理。913和914表示進(jìn)行未被允許的訪問時的動作。在913中,要由處理器PE3使用處理器PE4進(jìn)行訪問,但是,在寄存器PECMLR的相應(yīng)位置,沒有被允許。因此,在914,從PMU發(fā)送錯誤。另外,圖2和圖3的寄存器的值表示該狀態(tài)時的值。在915中,由于處理器PE3結(jié)束了目標(biāo)處理,所以向處理請求方的處理器PE2通知結(jié)束。在916中,接受915的通知,將訪問方處理器2和訪問目的地處理器3的寄存器PECMLR的值更新為作為1/0表示未在進(jìn)行處理的值。在917中,由于處理器PE4結(jié)束了目的的處理,所以向作為處理請求者的處理器PE2通知結(jié)束。在918中,接受917的通知,將訪問方處理器2和訪問目的地處理器4的寄存器PECMLR的值更新為作為1/0表示未在進(jìn)行處理的值。在919中,由于處理器PE2結(jié)束了目的的處理,所以向作為處理請求者的處理器PE1通知結(jié)束。在920中,接受919的通知,將訪問方處理器1和訪問目的地處理器2的寄存器PECMLR的值更新為作為1/0表示未在進(jìn)行處理的值。
如以上說明那樣,通過使用采用了本發(fā)明的結(jié)構(gòu)的微型計算機(jī),在包括多個處理器和IP模塊的芯片中,使這些管理容易,并能削減使用時的管理費(fèi)用。另外,也能防止由非法的程序造成的數(shù)據(jù)讀出和破壞。
圖11表示上述微型計算機(jī)10的其他結(jié)構(gòu)例。
圖11所示的微型計算機(jī)10和圖1所示的較大不同的是將處理器管理單元PMU配置在各處理器PE1~PE4和各IP模塊IP1~I(xiàn)P3與處理器間總線100、PID線102之間這一點(diǎn)。即,在ID門IDG1和處理器間總線100之間、ID門IDG1和PID線102之間配置有處理器管理單元PMU11,在ID門IDG2和處理器間總線10之間、ID門IDG2和PID線102之間配置有處理器管理單元PMU12,在ID門IDG3和處理器間總線100之間、ID門IDG3和PID線102之間配置有處理器管理單元PMU13,在ID門IDG4和處理器間總線100之間、ID門IDG4和PID線102之間配置有處理器管理單元PMU14。在IP模塊IP1和處理器間總線100之間、IP模塊IP1和PID線102之間配置有處理器管理單元PMU21,在IP模塊IP2和處理器間總線100之間、IP模塊IP2和PID線102之間配置有處理器管理單元PMU22,在IP模塊IP3和處理器間總線100之間、IP模塊IP3和PID線102之間配置有處理器管理單元PMU23,在ID門IDG41和處理器間總線100之間、ID門IDG41和PID線102之間配置有處理器管理單元PMU31。隨著變更PMU的位置,PMU內(nèi)的寄存器僅由在訪問目的地PE/IP具有連接著的各處理器或者各IP模塊的單元構(gòu)成,圖11所示的結(jié)構(gòu)與圖1的統(tǒng)一的管理相對,進(jìn)行分散性的管理。但是通過各處理器管理單元,能得到和圖1所示的結(jié)構(gòu)的情況同樣的作用效果。
可以預(yù)想到,本結(jié)構(gòu)和圖1的結(jié)構(gòu)相比,在連接IP模塊或處理器PE時需要變更這些模塊,面積也會增大,但是具有這樣的優(yōu)點(diǎn)在各PMU辨別的地址范圍變窄,所以能進(jìn)行高速地判斷,能在各模塊靈活地設(shè)定管理的地址的范圍。
以上具體地說明了本發(fā)明人提出的發(fā)明,但是本發(fā)明并不限定于此,不言而喻,在不脫離其宗旨的范圍內(nèi),可進(jìn)行各種變更。
在以上的說明中,針對將由本發(fā)明人提出的發(fā)明應(yīng)用于作為發(fā)明背景的使用領(lǐng)域的微型計算機(jī)的情況進(jìn)行了說明,但是本發(fā)明并不限定于此,可以應(yīng)用于各種半導(dǎo)體集成電路。
本發(fā)明能以至少包括多個處理器為條件進(jìn)行應(yīng)用。
權(quán)利要求
1.一種半導(dǎo)體集成電路,包括多個處理器和可由上述處理器訪問的模塊,其特征在于包括處理器管理單元,能將給予一個上述處理器的使用其它處理器或者上述模塊的許可變更到其他處理器。
2.根據(jù)權(quán)利要求1所述的半導(dǎo)體集成電路,其特征在于還包括總線,用于連接上述多個處理器和上述模塊,總線控制器,能對經(jīng)由上述總線進(jìn)行的數(shù)據(jù)通信進(jìn)行控制,上述處理器管理單元被配置在上述總線和上述總線控制器之間。
3.根據(jù)權(quán)利要求1所述的半導(dǎo)體集成電路,其特征在于還包括總線,用于連接上述多個處理器和上述模塊,上述處理器管理單元被分散配置在上述總線和上述多個處理器之間、以及上述總線和上述模塊之間。
4.根據(jù)權(quán)利要求1所述的半導(dǎo)體集成電路,其特征在于包括處理器ID信號線,能傳輸用于識別上述多個處理器中的各個處理器的處理器ID信息。
5.根據(jù)權(quán)利要求1所述的半導(dǎo)體集成電路,其特征在于上述處理器管理單元包括存儲部,能存儲上述多個處理器中的每個處理器的使用其他處理器或者上述模塊的許可信息,控制邏輯,根據(jù)在上述存儲部所存儲的信息,進(jìn)行用于將給予一個上述處理器的使用其它處理器或者上述模塊的許可變更到其他處理器的控制。
6.根據(jù)權(quán)利要求1所述的半導(dǎo)體集成電路,其特征在于,上述處理器管理單元包括存儲部,能存儲上述多個處理器中的每個處理器的向其他處理器或者上述模塊內(nèi)的存儲區(qū)域的訪問許可信息,控制邏輯,根據(jù)在上述存儲部所存儲的訪問許可信息,進(jìn)行用于將給予一個上述處理器的訪問其它處理器或者上述模塊內(nèi)的存儲區(qū)域的許可變更到其他處理器的控制。
7.根據(jù)權(quán)利要求6所述的半導(dǎo)體集成電路,其特征在于,上述存儲部包括第一寄存器,表示上述處理器的控制許可和使用狀況,第二寄存器,表示對上述處理器內(nèi)的存儲區(qū)域和上述模塊內(nèi)的存儲區(qū)域的讀出和寫入的許可狀況。
8.根據(jù)權(quán)利要求7所述的半導(dǎo)體集成電路,其特征在于當(dāng)在上述多個處理器中的第一處理器的管理下,存在分別和上述第一處理器不同的第二處理器和第三處理器時,能通過更新上述第一寄存器來變更上述第二處理器和上述第三處理器的關(guān)系。
9.根據(jù)權(quán)利要求7所述的半導(dǎo)體集成電路,其特征在于當(dāng)在上述多個處理器中的第一處理器的管理下,存在分別和上述第一處理器不同的第二處理器和第三處理器,并存在向上述第二處理器和上述第三處理器的寫許可時,能通過更新上述第二寄存器而變更上述第二處理器和上述第三處理器的關(guān)系。
全文摘要
本發(fā)明提供一種半導(dǎo)體集成電路。在搭載有多個處理器和可由其進(jìn)行訪問的模塊的半導(dǎo)體集成電路中,謀求容易地管理上述處理器和模塊。在包括多個處理器(PE1~PE4)和可由上述處理器進(jìn)行訪問的模塊(IP1~I(xiàn)P3)而構(gòu)成半導(dǎo)體集成電路(10)時,設(shè)置處理器管理單元(PMU),該處理器管理單元能將給予一個上述處理器的使用其它處理器或者上述模塊的許可變更到其他處理器,由此實(shí)現(xiàn)使處理器和模塊的管理容易。上述處理器管理單元能夠配置在總線和總線控制器之間。另外,上述處理器管理單元能分散配置在總線和多個處理器之間、以及總線和模塊之間。
文檔編號G06F15/16GK1991815SQ20061016702
公開日2007年7月4日 申請日期2006年12月13日 優(yōu)先權(quán)日2005年12月26日
發(fā)明者田中博志 申請人:株式會社日立制作所