專利名稱:運(yùn)算處理裝置和高速緩存操作方法
技術(shù)領(lǐng)域:
本法明涉及一種多處理器結(jié)構(gòu)的運(yùn)算處理裝置,尤其涉及一種有利于由處理器高效地使用本地高速緩存的技術(shù)。
背景技術(shù):
以往,人們致力于由制造工藝技術(shù)的進(jìn)步和超流水線(super-pipeline)技術(shù)帶來的操作頻率的提高,由超標(biāo)量(super-scaler)和提高其效率的寄存器換名、OUT OF ORDER執(zhí)行、分支預(yù)測(cè)、投機(jī)(speculative)執(zhí)行技術(shù)帶來的CPI(CLOCK CYCLESPER INSTRUCTION每指令所需時(shí)脈周期數(shù))的減少實(shí)現(xiàn)的并行處理技術(shù),從而帶來的處理器性能的提高。進(jìn)而,迄今為止,除了上述的高速安裝技術(shù)外,人們大多采取多處理器技術(shù)來提高處理性能。
日本特開昭63-240649號(hào)公報(bào)(圖1)[專利文獻(xiàn)2]日本特開平5-197622號(hào)公報(bào)(圖1)[非專利文獻(xiàn)1]John L.Hennessy & David A.Patterson“Computer Architecture A Quantitative Approach Third Edition”Chapter Six Multiprocessors and Thread-Level Parallelism SnoopingProtocols[P.551]發(fā)明內(nèi)容但是,在使用多處理器的情況下,不能原樣挪用以往使用的軟件。例如,在使用LinuxOS的嵌入式軟件中,通過使用能適應(yīng)多處理器的Linux等OS、和使該OS與POSIX多線程庫(thread library)相配等,從而能夠在使軟件的改變?yōu)樽钚〉幕A(chǔ)上,使用多處理器。但是,在使用不具有OS的嵌入式軟件、像μITRON那樣的適應(yīng)多處理器稍延遲的OS等時(shí),需要考慮軟件開發(fā)工時(shí)。
另外,即使在將來考慮了適應(yīng)多處理器的情況下,即鑒于軟件開發(fā)工時(shí),也可采取用單處理器進(jìn)行軟件開發(fā)之后,用其平臺(tái)使適應(yīng)多處理器繼續(xù)進(jìn)行下去等的開發(fā)方法。進(jìn)而,有時(shí)也會(huì)因硬件的故障處導(dǎo)致所有的高速緩存能夠使用但卻存在不能使用的處理器,在這種情況下,也考慮將多處理器用作為單處理器。
如上所述,在通過多處理器技術(shù)提高了性能的芯片中,也需要考慮將安裝有多處理器的運(yùn)算處理裝置用作單處理器的情況。
但是,在多處理器結(jié)構(gòu)的運(yùn)算處理裝置中僅使用單處理器的情況下,由于高速緩存容量?jī)H有本地高速緩存的量,所以產(chǎn)生高速緩存容量下降、高速緩存命中率下降這樣的問題。
鑒于上述問題,本發(fā)明的課題在于,在具有多處理器結(jié)構(gòu)的運(yùn)算處理裝置中,在作為單處理器來利用的情況下,有效地利用多處理器所具有的高速緩存容量,避免高速緩存命中率的下降。
在本發(fā)明中,在將多處理器用作單處理器時(shí),將與未利用的處理器相連接的本地高速緩存,通過有效地利用監(jiān)聽高速緩存功能的資源,作為使之進(jìn)行操作的處理器的本地高速緩存來利用。
即,本發(fā)明作為運(yùn)算處理裝置,具備分別具有CPU和本地高速緩存的多個(gè)處理器,上述多個(gè)處理器公共連接在具有公共總線和對(duì)其進(jìn)行控制的控制部的公共總線控制單元,上述多個(gè)處理器的每一個(gè)具有的本地緩存具備高速緩存存儲(chǔ)器和高速緩存控制單元,上述高速緩存控制單元分別具有高速緩存訪問控制單元,與接受來自上述CPU的訪問地址的本地高速緩存訪問地址輸入單元和接受來自上述公共總線的訪問地址的遠(yuǎn)程高速緩存訪問地址輸入單元連接,使用從上述本地高速緩存訪問地址輸入單元或者上述遠(yuǎn)程高速緩存訪問地址輸入單元得到的訪問地址,進(jìn)行對(duì)上述高速緩沖存儲(chǔ)器的訪問;高速緩存訪問傳輸單元,與上述本地高速緩存訪問地址輸入單元和向上述公共總線輸出訪問地址的遠(yuǎn)程高速緩存訪問地址輸出單元連接,具有將從上述本地高速緩存訪問地址輸入單元得到的訪問地址通過上述遠(yuǎn)程高速緩存訪問地址輸出單元輸出到上述公共總線的功能;以及高速緩存操作模式選擇單元,能夠設(shè)定作為單高速緩存操作模式進(jìn)行操作或者作為監(jiān)聽高速緩存操作模式進(jìn)行操作。
根據(jù)本發(fā)明,在本地高速緩存的高速緩存控制單元中,高速緩存訪問傳輸單元能將從CPU經(jīng)由本地高速緩存訪問地址輸入單元得到的訪問地址通過遠(yuǎn)程高速緩存訪問地址輸出單元輸出到公共總線。另外,高速緩存訪問控制單元,能夠使用從CPU經(jīng)由本地高速緩存訪問地址輸入單元得到的訪問地址,進(jìn)行對(duì)高速緩沖存儲(chǔ)器的訪問,并且能夠使用從公共總線經(jīng)由遠(yuǎn)程高速緩存訪問地址輸入單元得到的訪問地址,進(jìn)行對(duì)高速緩沖存儲(chǔ)器的訪問。即,從某個(gè)處理器CPU輸出的訪問地址,被從該處理器的高速緩存訪問傳輸單元輸出到公共總線,由其他處理器的高速緩存訪問控制單元從公共總線被取得,可用于其他的處理器對(duì)高速緩沖存儲(chǔ)器的訪問。因此,在某個(gè)處理器單獨(dú)進(jìn)行操作的情況下,可以將其他處理器的高速緩沖存儲(chǔ)器作為該處理器的本地高速緩存來利用。
此外,在本法明的運(yùn)算處理裝置中,在上述高速緩存操作模式選擇單元設(shè)定了單高速緩存操作模式的情況下,在上述多個(gè)處理器中的要進(jìn)行操作的第一處理器中,使上述本地高速緩存訪問地址輸入單元有效,并且使上述遠(yuǎn)程高速緩存訪問地址輸入單元無效,上述高速緩存訪問控制單元,使用從上述本地高速緩存訪問地址輸入單元得到的訪問地址,進(jìn)行對(duì)上述高速緩沖存儲(chǔ)器的訪問,上述高速緩存訪問傳輸單元,將從上述本地高速緩存訪問地址輸入單元得到的訪問地址通過上述遠(yuǎn)程高速緩存訪問地址輸出單元輸出到上述公共總線,在上述多個(gè)處理器中的除上述第一處理器以外的處理器中,使上述本地高速緩存訪問地址輸入單元無效,并且使上述遠(yuǎn)程高速緩存訪問地址輸入單元有效,上述高速緩存訪問控制單元,使用從上述遠(yuǎn)程高速緩存訪問地址輸入單元得到的訪問地址,進(jìn)行對(duì)上述高速緩沖存儲(chǔ)器的訪問,上述高速緩存訪問傳輸單元不向上述公共總線輸出訪問地址。
另外,本發(fā)明作為在本法明的上述運(yùn)算處理裝置中進(jìn)行高速緩存操作的方法,具有第一步驟,在上述高速緩存操作模式選擇單元設(shè)定單高速緩存操作模式、或者監(jiān)聽高速緩存操作模式;第二步驟,在上述第一步驟設(shè)定了單高速緩存操作模式的情況下,在上述多個(gè)處理器中的要進(jìn)行操作的第一處理器中,使上述本地高速緩存訪問地址輸入單元有效,并且使上述遠(yuǎn)程高速緩存訪問地址輸入單元無效,上述高速緩存訪問控制單元,使用從上述本地高速緩存訪問地址輸入單元得到的訪問地址,進(jìn)行對(duì)上述高速緩沖存儲(chǔ)器的訪問,上述高速緩存訪問傳輸單元,將從上述本地高速緩存訪問地址輸入單元得到的訪問地址通過上述遠(yuǎn)程高速緩存訪問地址輸出單元輸出到上述公共總線;以及第三步驟,在上述第一步驟設(shè)定了單高速緩存操作模式的情況下,在上述多個(gè)處理器中的除上述第一處理器以外的處理器中,使上述本地高速緩存訪問地址輸入單元無效,并且使上述遠(yuǎn)程高速緩存訪問地址輸入單元有效,上述高速緩存訪問控制單元,使用從上述遠(yuǎn)程高速緩存訪問地址輸入單元得到的訪問地址,進(jìn)行對(duì)上述高速緩沖存儲(chǔ)器的訪問,上述高速緩存訪問傳輸單元不向上述公共總線輸出訪問地址。
根據(jù)本發(fā)明,在將多處理器結(jié)構(gòu)的運(yùn)算處理裝置用作單處理器的情況下,能夠?qū)⒉贿M(jìn)行操作的其他處理器的高速緩沖存儲(chǔ)器用作進(jìn)行操作的處理器的本地高速緩存。由此,能夠避免由高速緩存容量下降導(dǎo)致的高速緩存命中率下降的問題。
圖1是表示作為本發(fā)明的一實(shí)施方式的運(yùn)算處理裝置的多處理器的結(jié)構(gòu)的圖。
具體實(shí)施例方式
下面,針對(duì)本發(fā)明的實(shí)施方式,參照附圖進(jìn)行說明。
圖1是作為本實(shí)施方式的運(yùn)算處理裝置的多處理器10的功能結(jié)構(gòu)框圖。多處理器10具備兩個(gè)處理器100、200、以及公共總線控制單元80,該公共總線控制單元80具有作為公共總線的公共地址總線81、公共數(shù)據(jù)總線82以及進(jìn)行其控制的控制部83,處理器100、200分別與公共總線控制單元80共通連接。
處理器100(200)具備CPU110(210)和本地高速緩存111(211),本地高速緩存111(211)由命令本地高速緩存120(220)和數(shù)據(jù)本地高速緩存140(240)構(gòu)成。命令本地高速緩存120(220)由高速緩沖存儲(chǔ)器121(221)和高速緩存控制單元122(222)構(gòu)成,數(shù)據(jù)本地高速緩存140(240)由高速緩沖存儲(chǔ)器141(241)和高速緩存控制單元142(242)構(gòu)成。此外,在本實(shí)施方式中,關(guān)于處理器200的各構(gòu)成要素,在和處理器100同樣的情況下,用括弧表示其附圖標(biāo)記。
高速緩存控制單元122、142(222、242)具備傳輸從CPU110(210)向高速緩沖存儲(chǔ)器121、141(221、241)的訪問請(qǐng)求的高速緩存訪問控制單元131、151(231、251)、向其他本地高速緩存?zhèn)鬏斣L問內(nèi)容的高速緩存訪問傳輸單元132、152(232、252)、監(jiān)視其他本地高速緩存訪問的內(nèi)容的高速緩存訪問監(jiān)視單元133、153(233、253)、進(jìn)行CPU110(210)與外部存儲(chǔ)器的數(shù)據(jù)傳送及其數(shù)據(jù)一致性(consistency)的管理并且進(jìn)行各高速緩存之間的數(shù)據(jù)傳送及其數(shù)據(jù)一致性的管理的數(shù)據(jù)一致性管理單元134、154(234、254)、存儲(chǔ)表示多處理器10的各個(gè)本地高速緩存111(211)作為監(jiān)聽(snoop)高速緩存進(jìn)行操作還是作為單(single)高速緩存進(jìn)行操作的高速緩存操作模式的高速緩存操作模式選擇單元135、155(235、255)。
高速緩存操作模式選擇單元135、155、235、255是由例如寄存器構(gòu)成的,通過來自外部的設(shè)定信號(hào)能共通地設(shè)定監(jiān)聽高速緩存操作模式或者單高速緩存操作模式的任一個(gè)。
命令本地高速緩存120(220)與CPU110(210)和公共總線控制單元80相連接。在命令本地高速緩存120(220)與CPU110(210)之間設(shè)置有傳輸來自CPU110(210)的取出地址的本地高速緩存訪問地址輸入單元161(261)、和傳輸對(duì)應(yīng)于來自CPU110(210)的取出地址的命令的本地高速緩存訪問數(shù)據(jù)輸出單元162(262)。
另外,在命令本地高速緩存120(220)和公共總線控制單元80之間設(shè)置有傳輸來自命令本地高速緩存120(220)的取出地址的遠(yuǎn)程高速緩存訪問地址輸出單元164(264)、和傳輸來自命令本地高速緩存120(220)的取出地址所對(duì)應(yīng)的命令或者來自其他本地高速緩存140、220、240(120、140、240)的公共數(shù)據(jù)的遠(yuǎn)程高速緩存訪問數(shù)據(jù)輸入單元167(267)。遠(yuǎn)程高速緩存訪問地址輸出單元164(264)和公共總線控制單元80的公共地址總線81相連接,遠(yuǎn)程高速緩存訪問數(shù)據(jù)輸入單元167(267)與公共總線控制單元80的公共數(shù)據(jù)總線82相連接。進(jìn)而,為了與其他本地高速緩存140、220、240(120、140、240)進(jìn)行數(shù)據(jù)傳送,設(shè)置有傳輸其他本地高速緩存140、220、240(120、140、240)的訪問內(nèi)容的遠(yuǎn)程高速緩存訪問地址輸入單元165(265)、和從命令本地高速緩存120(220)向公共總線控制單元80傳送數(shù)據(jù)的遠(yuǎn)程高速緩存訪問數(shù)據(jù)輸出單元166(266)。遠(yuǎn)程高速緩存訪問地址輸入單元165(265)與公共總線控制單元80的公共地址總線81相連接,遠(yuǎn)程高速緩存訪問數(shù)據(jù)輸出單元166(266)與公共總線控制單元80的公共數(shù)據(jù)總線82相連接。
數(shù)據(jù)本地高速緩存140(240)與CPU110(210)和公共總線控制單元80相連接。在數(shù)據(jù)本地高速緩存140(240)與CPU110(210)之間設(shè)置有傳輸來自CPU110(210)的讀取和寫入地址的本地高速緩存訪問地址輸入單元171(271)、傳輸來自CPU110(210)的讀取地址所對(duì)應(yīng)的數(shù)據(jù)的本地高速緩存訪問數(shù)據(jù)輸出單元172(272)、傳輸來自CPU110(210)的寫入地址所對(duì)應(yīng)的數(shù)據(jù)的本地高速緩存訪問數(shù)據(jù)輸入單元173(273)。
另外,在數(shù)據(jù)本地高速緩存140(240)和公共總線控制單元80之間設(shè)置有傳輸來自數(shù)據(jù)本地高速緩存140(240)的數(shù)據(jù)讀取和寫入地址的遠(yuǎn)程高速緩存訪問地址輸出單元174(274)、傳輸來自數(shù)據(jù)本地高速緩存140(240)的讀取地址所對(duì)應(yīng)的數(shù)據(jù)或者來自其他本地高速緩存120、220、240(120、140、220)的公共數(shù)據(jù)的遠(yuǎn)程高速緩存訪問數(shù)據(jù)輸入單元177(277)。遠(yuǎn)程高速緩存訪問地址輸出單元174(274)與公共總線控制單元80的公共地址總線81相連接,遠(yuǎn)程高速緩存訪問數(shù)據(jù)輸入單元177(277)與公共總線控制單元80的公共數(shù)據(jù)總線82相連接。進(jìn)而,為了與其他本地高速緩存120、220、240(120、140、220)進(jìn)行數(shù)據(jù)傳送,而設(shè)置有傳輸其他本地高速緩存120、220、240(120、140、220)的訪問內(nèi)容的遠(yuǎn)程高速緩存訪問地址輸入單元175(275)、從數(shù)據(jù)本地高速緩存140(240)向外部存儲(chǔ)器等傳送數(shù)據(jù)的遠(yuǎn)程高速緩存訪問數(shù)據(jù)輸出單元176(276)。遠(yuǎn)程高速緩存訪問地址輸入單元175(275)與公共總線控制單元80的公共地址總線81相連接,遠(yuǎn)程高速緩存訪問數(shù)據(jù)輸出單元176(276)與公共總線控制單元80的公共數(shù)據(jù)總線82相連接。
高速緩存訪問控制單元131、151(231、251)與接收來自CPU110(210)的訪問地址的本地高速緩存訪問地址輸入單元161、171(261、271)和接收來自公共地址總線81的訪問地址的遠(yuǎn)程高速緩存訪問地址輸入單元165、175(265、275)相連接。并且,使用從本地高速緩存訪問地址輸入單元161、171(261、271)或者遠(yuǎn)程高速緩存訪問地址輸入單元165、175(265、275)得到的訪問地址,進(jìn)行對(duì)高速緩沖存儲(chǔ)器121、141(221、241)的訪問。
高速緩存訪問傳輸單元132、152(232、252)與本地高速緩存訪問地址輸入單元161、171(261、271)和向公共地址總線81輸出訪問地址的遠(yuǎn)程高速緩存訪問地址輸出單元164、174(264、274)相連接。并且,在從本地高速緩存訪問地址輸入單元161、171(261、271)取得了訪問地址時(shí),通過遠(yuǎn)程高速緩存訪問地址輸出單元164、174(264、274)能夠?qū)⒃撛L問地址輸出到公共地址總線81。
高速緩存訪問監(jiān)視單元133、153(233、253)和遠(yuǎn)程高速緩存訪問地址輸入單元165、175(265、275)相連接。
數(shù)據(jù)一致性管理單元134、154(234、254)和遠(yuǎn)程高速緩存訪問地址輸入單元165、175(265、275)相連接。
并且,高速緩存操作模式選擇單元135、155(235、255)和高速緩存訪問控制單元131、151(231、251)、高速緩存訪問傳輸單元132、152(232、252)、高速緩存訪問監(jiān)視單元133、153(233、253)以及數(shù)據(jù)一致性管理單元134、154(234、254)相連接。即,高速緩存訪問控制單元131、151(231、251)、高速緩存訪問傳輸單元132、152(232、252)、高速緩存訪問監(jiān)視單元133、153(233、253)以及數(shù)據(jù)一致性管理單元134、154(234、254)按照被設(shè)定在高速緩存操作模式選擇單元135、155(235、255)的操作模式進(jìn)行操作。
此外,在本實(shí)施方式中,被設(shè)置在公共總線控制單元80的公共地址總線81和公共數(shù)據(jù)總線82兼用于對(duì)外部存儲(chǔ)器的訪問和高速緩存間的訪問,但是,為了盡可能避免總線競(jìng)爭(zhēng)(contention)狀態(tài),也有單獨(dú)設(shè)置外部存儲(chǔ)器用的總線和高速緩存之間訪問用的總線等方法,并不限于此。
另外,在圖1中用實(shí)線或點(diǎn)劃線的箭頭所示的各輸入單元和輸出單元,通過傳輸信號(hào)的總線和其控制機(jī)構(gòu)來實(shí)現(xiàn)。
下面,針對(duì)圖1的運(yùn)算處理裝置的操作,按各操作模式進(jìn)行說明。
首先,在高速緩存操作模式選擇單元135、155(235、255)中,針對(duì)設(shè)定了監(jiān)聽高速緩存操作模式的情況進(jìn)行說明。
在從CPU110(210)向命令本地高速緩存120(220)以及數(shù)據(jù)本地高速緩存140(240)的存儲(chǔ)器訪問中,高速緩存訪問控制單元131、151(231、251)為了進(jìn)行自身CPU110(210)的本地高速緩存訪問,通過本地高速緩存訪問地址輸入單元161、171(261、271),取得對(duì)高速緩沖存儲(chǔ)器121、141(221、241)的訪問地址,經(jīng)由高速緩沖存儲(chǔ)器地址輸出單元136、156(236、256)進(jìn)行對(duì)高速緩沖存儲(chǔ)器121、141(221、241)的訪問。
另外,此時(shí),高速緩存訪問傳輸單元132、152(232、252),在不使用高速緩存(非高速緩存)的讀取訪問的情況、不使用高速緩存(非高速緩存)的寫入訪問的情況、使用高速緩存(高速緩存)的寫入訪問的情況、以及使用高速緩存(高速緩存)的讀取訪問的高速緩存錯(cuò)誤訪問的情況下,將通過本地高速緩存訪問地址輸入單元161、171(261、271)取得到的訪問地址作為傳輸信號(hào),經(jīng)由遠(yuǎn)程高速緩存訪問地址輸出單元164、174(264、274)傳輸?shù)焦部偩€控制單元80。通過該傳輸信號(hào),其他本地高速緩存能夠判斷是否需要進(jìn)行用于維持?jǐn)?shù)據(jù)一致性的處理。
高速緩存訪問監(jiān)視單元133、153(233、253),在從其他本地高速緩存220(120)的高速緩存?zhèn)鬏攩卧?32、252(132、152)傳輸了傳輸信號(hào)時(shí),檢索自身本地高速緩存120(220)的高速緩沖存儲(chǔ)器121、141(221、241)。
并且,在傳輸信號(hào)是由于非高速緩存讀取訪問或者高速緩存讀取的高速緩存錯(cuò)誤訪問而傳輸?shù)男盘?hào)時(shí),數(shù)據(jù)一致性管理單元134、154(234、254)如下進(jìn)行操作。即,在自身本地高速緩存120(220)存儲(chǔ)有其他本地高速緩存220(120)的訪問對(duì)象數(shù)據(jù)的情況下,進(jìn)行控制,使得自身本地高速緩存120(220)將對(duì)象數(shù)據(jù)或者對(duì)象入口(entry)的數(shù)據(jù)輸出到公共總線控制單元80。
在傳輸信號(hào)是由于高速緩存寫入的高速緩存命中訪問而傳輸?shù)男盘?hào)時(shí),數(shù)據(jù)一致性管理單元134、154(234、254)如下進(jìn)行操作。即,在自身本地高速緩存120(220)存儲(chǔ)有其他本地高速緩存220(120)的訪問對(duì)象數(shù)據(jù)的情況下,進(jìn)行控制,使得自身本地高速緩存120(220)將從其他本地高速緩存220(120)輸出到公共總線控制單元80的對(duì)象數(shù)據(jù)更新為存儲(chǔ)信息,或者使對(duì)象入口的存儲(chǔ)信息無效。
在傳輸信號(hào)是由于高速緩存寫入的高速緩存錯(cuò)誤訪問而傳輸?shù)男盘?hào)時(shí),數(shù)據(jù)一致性管理單元134、154(234、254)如下進(jìn)行操作。即,在自身本地高速緩存120(220)存儲(chǔ)有其他本地高速緩存220(120)的訪問對(duì)象數(shù)據(jù)的情況下,進(jìn)行控制,使得自身本地高速緩存120(220)將從其他本地高速緩存220(120)輸出到公共總線控制單元80的對(duì)象數(shù)據(jù)更新為存儲(chǔ)信息,并將對(duì)象入口的數(shù)據(jù)輸出到公共總線控制單元80。并且,其他本地高速緩存220(120)的數(shù)據(jù)一致性管理單元234、254(134、154),將被輸出到公共總線控制單元80的對(duì)象數(shù)據(jù)更新為存儲(chǔ)信息,或者使對(duì)象入口的存儲(chǔ)信息無效。
在傳輸信號(hào)是由于非高速緩存寫入訪問而傳輸?shù)男盘?hào)時(shí),數(shù)據(jù)一致性管理單元134、154(234、254)如下進(jìn)行操作。即,在自身本地高速緩存120(220)存儲(chǔ)有其他本地高速緩存220(120)的訪問對(duì)象數(shù)據(jù)的情況下,進(jìn)行控制,使得自身本地高速緩存120(220)將從其他本地高速緩存220(120)輸出到公共總線控制單元80的對(duì)象數(shù)據(jù)更新為存儲(chǔ)信息,或者使對(duì)象入口的存儲(chǔ)信息無效。
另外,數(shù)據(jù)一致性管理單元134、154(234、254)也進(jìn)行與外部存儲(chǔ)器的數(shù)據(jù)傳送以及該數(shù)據(jù)一致性的管理。此外,在本實(shí)施方式中,有如下記載在非高速緩存訪問中也能由數(shù)據(jù)一致性管理單元進(jìn)行將對(duì)象數(shù)據(jù)更新為存儲(chǔ)信息、或者使對(duì)象入口的存儲(chǔ)信息無效的控制,但不限于此,也可以考慮非高速緩存訪問時(shí)不進(jìn)行數(shù)據(jù)一致性管理。
接著,針對(duì)在高速緩存操作模式選擇單元135、155(235、255)中,設(shè)定有單高速緩存操作模式的情況進(jìn)行說明。在此,作為第一處理器的處理器100作為單處理器進(jìn)行操作。進(jìn)行操作的處理器的選擇可以通過例如寄存器設(shè)定來進(jìn)行,也可以切換使之進(jìn)行操作的處理器。
在處理器100的本地高速緩存111中,使本地高速緩存訪問地址輸入單元161、171有效,并且使遠(yuǎn)程高速緩存訪問地址輸入單元165、175無效。另一方面,在處理器200的本地高速緩存211中,使本地高速緩存訪問地址輸入單元261、271無效,并且使遠(yuǎn)程高速緩存訪問地址輸入單元265、275有效。
在處理器100中,高速緩存訪問控制單元131、151為了進(jìn)行CPU110的本地高速緩存訪問,通過本地高速緩存訪問地址輸入單元161、171取得對(duì)高速緩沖存儲(chǔ)器121、141的訪問地址,并將得到的訪問地址經(jīng)由高速緩沖存儲(chǔ)器地址輸出單元136、156輸出到高速緩沖存儲(chǔ)器121、141。另外,高速緩存訪問傳輸單元132、152,將通過本地高速緩存訪問地址輸入單元161、171得到的訪問地址作為傳輸信號(hào),總是經(jīng)由遠(yuǎn)程高速緩存訪問地址輸出單元164、174傳輸?shù)焦部偩€控制單元80的公共地址總線81。根據(jù)該傳輸信號(hào),除處理器100以外的處理器,即處理器200中的本地高速緩存220可以作為CPU110的本地高速緩存進(jìn)行操作。
另一方面,在處理器200中,高速緩存訪問控制單元231、251為了進(jìn)行CPU110的本地高速緩存訪問,通過遠(yuǎn)程高速緩存訪問地址輸入單元265、275來取得對(duì)高速緩沖存儲(chǔ)器221、241的訪問地址,將得到的訪問地址經(jīng)由高速緩沖存儲(chǔ)器地址輸出單元236、256輸出到高速緩沖存儲(chǔ)器221、241。另外,高速緩存訪問傳輸單元232、252總是不將得到的訪問地址經(jīng)由遠(yuǎn)程高速緩存訪問地址輸出單元264、274傳輸?shù)焦部偩€控制單元80的公共地址總線81。
另外,在單高速緩存操作模式中,高速緩存訪問監(jiān)視單元133、153(233、253)不進(jìn)行操作。另外,數(shù)據(jù)一致性管理單元134、154(234、254)不進(jìn)行與各高速緩存之間的數(shù)據(jù)傳送和數(shù)據(jù)一致性管理相關(guān)的操作,僅進(jìn)行與和外部存儲(chǔ)器的數(shù)據(jù)傳送和數(shù)據(jù)一致性管理相關(guān)的操作。
如上所述,在高速緩存操作模式選擇單元135、155、235、255選擇監(jiān)聽高速緩存操作模式時(shí),處理器100中的本地高速緩存111和處理器200中的本地高速緩存211,可以作為各自的CPU110、210的本地高速緩存進(jìn)行操作,并且作為其他CPU210、110的遠(yuǎn)程高速緩存,進(jìn)行監(jiān)聽操作。
另外,在高速緩存操作模式選擇單元135、155、235、255選擇單高速緩存操作模式時(shí),處理器100中的本地高速緩存111和處理器200中的本地高速緩存211,都通過從CPU110經(jīng)由本地高速緩存訪問地址輸入單元161、171而所取得的訪問地址,經(jīng)由高速緩沖存儲(chǔ)器地址輸出單元136、156、236、256被訪問。即,本地高速緩存111、211都能夠作為CPU110的本地高速緩存操作。由此,能夠避免由高速緩存容量下降導(dǎo)致的高速緩存命中率下降。
此外,在本實(shí)施方式中,以具備兩個(gè)處理器的多處理器為例進(jìn)行了說明,但本發(fā)明不限于此,在具有3個(gè)以上的處理器的多處理器的情況下,也能和本實(shí)施方式同樣實(shí)現(xiàn)。此時(shí),在單高速緩存操作模式中,能夠?qū)⑺械母咚倬彌_存儲(chǔ)器利用為進(jìn)行操作的CPU的單高速緩存,得到和本實(shí)施方同樣的效果。
此外,在本實(shí)施方式中,為了便于說明,僅說明了一部分,即數(shù)據(jù)本地高速緩存之間的高速緩存間傳送,但是不限于此,對(duì)于命令本地高速緩存之間的高速緩存間傳送同樣能夠?qū)崿F(xiàn)。
在本發(fā)明中,將多處理器結(jié)構(gòu)的運(yùn)算處理裝置作為單處理器利用的情況下,能夠避免高速緩存命中率下降,所以有利于在作為例如單處理器利用時(shí)的運(yùn)算處理裝置的性能提高。
權(quán)利要求
1.一種運(yùn)算處理裝置,具備分別具有CPU和本地高速緩存的多個(gè)處理器,其特征在于上述多個(gè)處理器公共連接在具有公共總線和對(duì)其進(jìn)行控制的控制部的公共總線控制單元,上述多個(gè)處理器的每一個(gè)具有的本地高速緩存,其具備高速緩沖存儲(chǔ)器和高速緩存控制單元,上述高速緩存控制單元分別具有高速緩存訪問控制單元,與接受來自上述CPU的訪問地址的本地高速緩存訪問地址輸入單元和接受來自上述公共總線的訪問地址的遠(yuǎn)程高速緩存訪問地址輸入單元連接,使用從上述本地高速緩存訪問地址輸入單元或者上述遠(yuǎn)程高速緩存訪問地址輸入單元得到的訪問地址,進(jìn)行對(duì)上述高速緩沖存儲(chǔ)器的訪問;高速緩存訪問傳輸單元,與上述本地高速緩存訪問地址輸入單元和向上述公共總線輸出訪問地址的遠(yuǎn)程高速緩存訪問地址輸出單元連接,具有將從上述本地高速緩存訪問地址輸入單元得到的訪問地址通過上述遠(yuǎn)程高速緩存訪問地址輸出單元輸出到上述公共總線的功能;以及高速緩存操作模式選擇單元,能夠設(shè)定作為單高速緩存操作模式進(jìn)行操作或者作為監(jiān)聽高速緩存操作模式進(jìn)行操作。
2.如權(quán)利要求1所述的運(yùn)算處理裝置,其特征在于在上述高速緩存操作模式選擇單元設(shè)定了單高速緩存操作模式的情況下,在上述多個(gè)處理器中的要進(jìn)行操作的第一處理器中,使上述本地高速緩存訪問地址輸入單元有效,并且使上述遠(yuǎn)程高速緩存訪問地址輸入單元無效,上述高速緩存訪問控制單元,使用從上述本地高速緩存訪問地址輸入單元得到的訪問地址,進(jìn)行對(duì)上述高速緩沖存儲(chǔ)器的訪問,上述高速緩存訪問傳輸單元,將從上述本地高速緩存訪問地址輸入單元得到的訪問地址通過上述遠(yuǎn)程高速緩存訪問地址輸出單元輸出到上述公共總線,在上述多個(gè)處理器中的除上述第一處理器以外的處理器中,使上述本地高速緩存訪問地址輸入單元無效,并且使上述遠(yuǎn)程高速緩存訪問地址輸入單元有效,上述高速緩存訪問控制單元,使用從上述遠(yuǎn)程高速緩存訪問地址輸入單元得到的訪問地址,進(jìn)行對(duì)上述高速緩沖存儲(chǔ)器的訪問,上述高速緩存訪問傳輸單元不向上述公共總線輸出訪問地址。
3.一種高速緩存操作方法,在權(quán)利要求1所述的運(yùn)算處理裝置中進(jìn)行高速緩存操作,其特征在于具有第一步驟,在上述高速緩存操作模式選擇單元設(shè)定單高速緩存操作模式、或者監(jiān)聽高速緩存操作模式;第二步驟,在上述第一步驟設(shè)定了單高速緩存操作模式的情況下,在上述多個(gè)處理器中的要進(jìn)行操作的第一處理器中,使上述本地高速緩存訪問地址輸入單元有效,并且使上述遠(yuǎn)程高速緩存訪問地址輸入單元無效,上述高速緩存訪問控制單元,使用從上述本地高速緩存訪問地址輸入單元得到的訪問地址,進(jìn)行對(duì)上述高速緩沖存儲(chǔ)器的訪問,上述高速緩存訪問傳輸單元,將從上述本地高速緩存訪問地址輸入單元得到的訪問地址通過上述遠(yuǎn)程高速緩存訪問地址輸出單元輸出到上述公共總線;以及第三步驟,在上述第一步驟設(shè)定了單高速緩存操作模式的情況下,在上述多個(gè)處理器中的除上述第一處理器以外的處理器中,使上述本地高速緩存訪問地址輸入單元無效,并且使上述遠(yuǎn)程高速緩存訪問地址輸入單元有效,上述高速緩存訪問控制單元,使用從上述遠(yuǎn)程高速緩存訪問地址輸入單元得到的訪問地址,進(jìn)行對(duì)上述高速緩沖存儲(chǔ)器的訪問,上述高速緩存訪問傳輸單元不向上述公共總線輸出訪問地址。
全文摘要
本發(fā)明提供一種運(yùn)算處理裝置和高速緩存操作方法。在多處理器結(jié)構(gòu)的運(yùn)算處理裝置中,用作單處理器時(shí)避免高速緩存命中率下降。高速緩存訪問傳輸單元(132)將經(jīng)由本地高速緩存訪問地址輸入單元(161)從CPU(110)得到的訪問地址,經(jīng)由遠(yuǎn)程高速緩存訪問地址輸出單元(164)輸出到公共地址總線(81)。高速緩存訪問控制單元(231)使用從公共地址總線(81)經(jīng)由遠(yuǎn)程高速緩存訪問地址輸入單元(265)得到的訪問地址,進(jìn)行對(duì)高速緩沖存儲(chǔ)器(221)的訪問。即,從處理器(100)的CPU(110)輸出的訪問地址從高速緩存訪問傳輸單元(132)輸出,通過高速緩存訪問控制單元(231)取得,可用于對(duì)處理器(200)的高速緩沖存儲(chǔ)器(221)的訪問。
文檔編號(hào)G06F12/08GK1952912SQ200610159908
公開日2007年4月25日 申請(qǐng)日期2006年9月27日 優(yōu)先權(quán)日2005年10月18日
發(fā)明者掛田雅英, 中島雅逸, 山本崇夫, 尾崎伸治 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社