計(jì)算機(jī)系統(tǒng)及其控制方法
【專利摘要】本發(fā)明是一種群集式存儲(chǔ)系統(tǒng),利用該群集式存儲(chǔ)系統(tǒng),即使在從一個(gè)控制器的處理器發(fā)送對另一控制器的處理器的訪問時(shí),第二控制器的處理器也能夠使對這一訪問的處理優(yōu)先,從而使得防止I/O處理被延遲。利用本發(fā)明的存儲(chǔ)系統(tǒng),第一控制器的第一處理器通過在針對其的處理將被第二控制器的第二處理器優(yōu)先的請求信息和針對其的處理將不被優(yōu)先的請求信息之間區(qū)分來向第二處理器傳輸將由第二處理器處理的請求信息,并且第二處理器通過在針對其的處理將被優(yōu)先的請求信息與針對其的信息將不被優(yōu)先的請求信息之間區(qū)分來獲取請求信息。
【專利說明】計(jì)算機(jī)系統(tǒng)及其控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種存儲(chǔ)系統(tǒng)及其控制方法,利用該存儲(chǔ)系統(tǒng)和該控制方法在主機(jī)與存儲(chǔ)區(qū)域之間的數(shù)據(jù)I/o處理被控制,并且更特別地涉及一種群集式存儲(chǔ)系統(tǒng),在該群集式存儲(chǔ)系統(tǒng)中用于執(zhí)行在主機(jī)與存儲(chǔ)設(shè)備之間的數(shù)據(jù)傳輸和接收的控制器被復(fù)用。
【背景技術(shù)】
[0002]如下存儲(chǔ)系統(tǒng)被稱為群集式存儲(chǔ)系統(tǒng),在該存儲(chǔ)系統(tǒng)中用于控制在主機(jī)與存儲(chǔ)區(qū)域之間的訪問的控制器被復(fù)用。利用這一類型的存儲(chǔ)系統(tǒng),為了有效地操作多個(gè)控制器,某個(gè)控制器的處理器必須訪問硬件資源,比如另一控制器的主存儲(chǔ)器和接口。因此,為了使這一訪問迅速和可靠,處理器不直接地訪問硬件,相反地,處理器經(jīng)由用于訪問的專用LSI獲得訪問。作為包括群集式控制器的存儲(chǔ)系統(tǒng),已知在第3719976號(hào)日本公開專利和第2008-269424號(hào)日本公開未審申請中公開的存儲(chǔ)系統(tǒng)。
[0003]引用列表
[0004]專利文獻(xiàn)
[0005]PTL 1:第3719976號(hào)日本公開專利
[0006]PTL 2:第2008-269424號(hào)日本公開未審申請
【發(fā)明內(nèi)容】
[0007]技術(shù)問題
[0008]近年來,部分地由于已經(jīng)促成通用LSI性能改進(jìn)的條件,已經(jīng)產(chǎn)生了對于通過使用通用產(chǎn)品而未使用專用LSI來構(gòu)建用于存儲(chǔ)系統(tǒng)的群集控制器的需要。在這一類型的存儲(chǔ)系統(tǒng)中,可以通過經(jīng)由PC1-快速總線或者相似總線連接兩個(gè)控制器的處理器來訪問多個(gè)控制器。
[0009]在這一類型的存儲(chǔ)系統(tǒng)中,由于未使用專用LSI,所以第一控制器的處理器不能直接地訪問硬件資源(比如第二控制器的數(shù)據(jù)傳送硬件和存儲(chǔ)器等),但是第一控制器的處理器可以向第二控制器的處理器發(fā)布對于訪問資源的請求并且可以從第二控制器的處理器接收這一訪問的結(jié)果。
[0010]然而,問題在于第二控制器的處理器頻繁地執(zhí)行主機(jī)I/O處理,并且在這樣的處理期間,盡管從第一控制器的處理器接收請求,但是不可能直接地對請求做出響應(yīng),因此與使用專用LSI的存儲(chǔ)系統(tǒng)比較減少響應(yīng)性能。
[0011]因此,必須使第二控制器的處理器對來自第一控制器的處理器的請求的處理優(yōu)先。存在一種方法,在該方法中,在處理器之間使用中斷請求以用于這一類型的優(yōu)先的處理。然而,在生成中斷時(shí),有必要將處理從OS迄今一直工作于的進(jìn)程切換到普通中斷處置器,并且問題在于開銷由于為了切換進(jìn)程所需要的時(shí)間而為大并且在于在廣泛地使用中斷請求時(shí)性能代之以下降。
[0012]另外,也可以考慮一種用于通過使用多核處理器作為處理器、選擇多個(gè)核之一作為用于從另一控制器接收請求的專用核并且保證這一個(gè)核不執(zhí)行普通處理(比如主機(jī)I/O)處理來縮短對從另一控制器接收的請求的響應(yīng)時(shí)間的方法。然而,在專用核上有大量負(fù)荷時(shí),對來自另一控制器的請求的處理被延遲,而在增加專用核的數(shù)目時(shí),普通核的比例小,并且也很可能的是主機(jī)I/o處理的性能將受影響。
[0013]因此,本發(fā)明的目的是提供一種群集式存儲(chǔ)系統(tǒng),利用該群集式存儲(chǔ)系統(tǒng),即使在從一個(gè)控制器的處理器發(fā)送對另一控制器的處理器的訪問時(shí),另一控制器的處理器也能夠使對這一訪問的處理優(yōu)先,從而使得也防止I/o處理被延遲。
[0014]對問題的解決方案
[0015]為了實(shí)現(xiàn)前述目的,本發(fā)明是一種存儲(chǔ)系統(tǒng)及其控制方法,其中第一控制器的第一處理器通過在針對其的處理將被第二控制器的第二處理器優(yōu)先的請求信息與針對其的處理將不被優(yōu)先的請求信息之間區(qū)分來向第二處理器傳輸將由第二處理器處理的請求信息,并且第二處理器通過在針對其的處理將被優(yōu)先的請求信息與針對其的處理將不被優(yōu)先的請求信息之間區(qū)分來獲取請求信息。
[0016]根據(jù)本發(fā)明,第二處理器不使對來自第一處理器的所有請求信息的處理優(yōu)先,相反地,處理請求信息,因?yàn)樾枰鋬?yōu)先以便操作存儲(chǔ)系統(tǒng),因此也防止第二處理器對來自主機(jī)的I/O的處理被延遲。本發(fā)明的有利效果
[0017]利用本發(fā)明,在群集式存儲(chǔ)系統(tǒng)中,即使在從一個(gè)控制器的處理器發(fā)送對另一控制器的處理器的訪問時(shí),第二控制器的處理器也能夠使對這一訪問的處理優(yōu)先,從而使得也防止I/O處理被延遲。
【專利附圖】
【附圖說明】
[0018][圖1]圖1是包括根據(jù)第一實(shí)施例的存儲(chǔ)系統(tǒng)的計(jì)算機(jī)系統(tǒng)的硬件框圖。
[0019][圖2]圖2是根據(jù)控制器的MPU存儲(chǔ)器的配置示例的框圖。
[0020][圖3]圖3是示出了在MPU存儲(chǔ)器的文本區(qū)域中的軟件資源配置的框圖。
[0021][圖4]圖4是請求傳輸程序的過程流程的示例。
[0022][圖5]圖5是示出了請求傳輸程序的另一方面的流程圖。
[0023][圖6]圖6是中斷接收程序的過程流程的示例。
[0024][圖7]圖7是普通接收程序的過程流程的示例。
[0025][圖8]圖8是代理訪問程序的過程流程的示例。
[0026][圖9]圖9是定時(shí)器同步程序的過程流程的示例。
[0027][圖10]圖10是請求處理標(biāo)識(shí)表的配置示例。
[0028][圖11]圖11是訪問目的地屬性表。
[0029][圖12]圖12是內(nèi)部/外部系統(tǒng)確定表的配置示例。
[0030][圖13]圖13是主機(jī)2的讀取I/O處理的流程圖。
[0031][圖14]圖14具體地描述圖13的流程圖的部分。
[0032][圖15]圖15具體地描述圖13的流程圖的部分。
[0033][圖16]圖16是根據(jù)第二實(shí)施例的MPU存儲(chǔ)器的配置示例。
[0034][圖17]圖17是專用核確定表的配置示例。
[0035][圖18]圖18是根據(jù)第二實(shí)施例的MPU存儲(chǔ)器的軟件配置圖。
[0036][圖19]圖19是根據(jù)第二實(shí)施例的請求傳輸程序的過程流程的示例。
[0037][圖20]圖20是專用核計(jì)數(shù)調(diào)整程序的流程圖。
[0038][圖21]圖21是請求系統(tǒng)要求表的示例。
[0039][圖22A]圖22A是請求系統(tǒng)可用性表的第一示例。
[0040][圖22B]圖22B是請求系統(tǒng)可用性表的第二示例。
[0041][圖23]圖23是根據(jù)第四實(shí)施例的請求傳輸程序的流程圖。
[0042][圖24]圖24是為每個(gè)卷確定前述性能要求的卷性能要求表的配置示例。
[0043][圖25]圖25是使用戶能夠設(shè)置卷I/O性能要求的輸入屏幕的示例。
[0044][圖26]圖26是用于校正預(yù)計(jì)通信響應(yīng)時(shí)間的流程圖。
【具體實(shí)施方式】
[0045]實(shí)施例1
[0046]接著將基于附圖描述根據(jù)本發(fā)明的存儲(chǔ)系統(tǒng)的實(shí)施例。存儲(chǔ)系統(tǒng)包括雙控制器配置。圖1是包括根據(jù)第一實(shí)施例的存儲(chǔ)系統(tǒng)的計(jì)算機(jī)系統(tǒng)的硬件框圖。計(jì)算機(jī)系統(tǒng)I包括主機(jī)2、管理終端3、存儲(chǔ)系統(tǒng)4以及網(wǎng)絡(luò)5和網(wǎng)絡(luò)6。網(wǎng)絡(luò)5服務(wù)于將主機(jī)2連接到存儲(chǔ)系統(tǒng)4并且特別地為SAN。網(wǎng)絡(luò)6將存儲(chǔ)系統(tǒng)4連接到管理終端3并且特別地為LAN。主機(jī)2例如是大型通用計(jì)算機(jī)、服務(wù)器或者客戶端終端。主機(jī)2也可以連接到存儲(chǔ)系統(tǒng)4而未經(jīng)由SAN 5通過。另外,管理終端3也可以連接到存儲(chǔ)系統(tǒng)而未經(jīng)由LAN 6通過。
[0047]存儲(chǔ)系統(tǒng)4包括第一控制器100a、第二控制器10b和包括多個(gè)存儲(chǔ)驅(qū)動(dòng)109D的驅(qū)動(dòng)單元109。第一控制器10a可以被稱為“CTLa”,并且第二控制器10b可以被稱為“ CTLb ”。另外,在引用控制器中的部件時(shí),如果區(qū)分部件CTLa與部件CTLb,則在前一個(gè)部件的標(biāo)號(hào)之后追加“a”,并且在后一個(gè)部件的標(biāo)號(hào)之后追加“b”。向相同部件指派相同標(biāo)號(hào)。如果在部件CTLa與CTLb 二者之間區(qū)分是不必需的,則不追加“a”和“b”。在有在兩個(gè)控制器之間進(jìn)行的區(qū)分時(shí),一個(gè)控制器被稱為內(nèi)部系統(tǒng)控制器并且另一控制器被稱為外部系統(tǒng)控制器。
[0048]CTLa 包括 MPU 101a、MPU 存儲(chǔ)器 102a、DMA 103a、主機(jī) _I/F) (I/F:用于接口的縮寫詞,下文相同)104a、驅(qū)動(dòng)_I/F 105a和管理_I/F 106a。這對于CTLb同樣如此。CTLa的主機(jī)_I/F 104a和CTLb的主機(jī)_I/F 104b各自經(jīng)由SAN 5連接到主機(jī)2。CTLa的驅(qū)動(dòng)_I/F 105和CTLb的DRIVE_I/F 105b各自連接到驅(qū)動(dòng)單元109。CTLa的管理_I/F 106a和CTLb的管理_I/F 106b各自經(jīng)由LAN 6連接到管理終端3。
[0049]CTLa 的 NTB 107a 和 CTLa 的 NTB 107b 各自是非透明網(wǎng)橋。MPU 1lb 和 MPU 1la使用具有至少5 Gbps的傳送速度的全雙工系統(tǒng)高速總線108經(jīng)由NTB 107a和107b來連接并且能夠交換用戶數(shù)據(jù)和控制信息等??梢杂卸鄠€(gè)NTB 107和連接路徑108。驅(qū)動(dòng)單元109包括作為多個(gè)邏輯存儲(chǔ)區(qū)域的LU (邏輯單元)。驅(qū)動(dòng)單元109的存儲(chǔ)驅(qū)動(dòng)109d各自由存儲(chǔ)介質(zhì)(比如磁盤或者SSD)配置。
[0050]接著將基于圖2描述CTLa的MPU存儲(chǔ)器102a的配置。CTLb的MPU存儲(chǔ)器102b相同。MPU 102a包括文本區(qū)域10a、用于本地存儲(chǔ)器Ila的區(qū)域、用于通信區(qū)域14a的區(qū)域、共享存儲(chǔ)器12a(下文被稱為“SM”)的區(qū)域、高速緩存存儲(chǔ)器13a的區(qū)域、每個(gè)區(qū)域被配置為地址區(qū)域。區(qū)域各自存儲(chǔ)程序、控制信息或者各種數(shù)據(jù)。
[0051]文本區(qū)域1a存儲(chǔ)使存儲(chǔ)系統(tǒng)能夠?qū)嵤┧墓δ艿母鞣N程序。本地存儲(chǔ)器Ila存儲(chǔ)被文本區(qū)域1a的程序引用的表。這些表不被CTLb的文本區(qū)域的程序引用。MPU程序102b的文本區(qū)域的程序引用MPU存儲(chǔ)器102b的本地存儲(chǔ)器lib。
[0052]作為本地存儲(chǔ)器Ila的表,例如,內(nèi)部/外部系統(tǒng)確定表110、代理訪問標(biāo)識(shí)表111和硬件屬性表112。隨后將提供對每個(gè)表的描述。
[0053]通信區(qū)域14a包括中斷通信區(qū)域141a和普通通信區(qū)域142a??刂菩畔⒑蛿?shù)據(jù)被MPU 1lb寫入到這一通信區(qū)域??刂菩畔⒑蛿?shù)據(jù)被MPU 101寫入到MPU存儲(chǔ)器102b的通信區(qū)域14b的中斷通信區(qū)域141b和普通通信區(qū)域142b。
[0054]SM 12a存儲(chǔ)必須由CTLa和CTLb共享的存儲(chǔ)系統(tǒng)配置信息和控制信息。這一信息包括內(nèi)部系統(tǒng)控制器的信息和外部系統(tǒng)控制器的信息。外部系統(tǒng)控制器的SM 12b相同。這一信息將在下文中被稱為共享信息。
[0055]共享信息是為了控制存儲(chǔ)系統(tǒng)而需要的信息。更具體而言,共享信息是用于在控制器之間建立用于在存儲(chǔ)器中存儲(chǔ)并且與主機(jī)計(jì)算機(jī)交換的數(shù)據(jù)的高速緩存管理信息、用于數(shù)據(jù)傳送硬件資源(比如主機(jī)接口、盤接口或者DMA)的啟動(dòng)寄存器、獨(dú)占管理信息(比如用于實(shí)施用于獨(dú)占訪問這些硬件資源的鎖定機(jī)制的鎖定位)、用于必須也可由另一控制器識(shí)別的硬件資源配置的設(shè)置或者更新信息和存儲(chǔ)應(yīng)用(例如,用于創(chuàng)建卷的重復(fù)映像的卷復(fù)制功能、用于虛擬化和如果必需則指派物理卷容量的虛擬卷功能以及用于通過執(zhí)行向遠(yuǎn)程地點(diǎn)的數(shù)據(jù)復(fù)制來實(shí)施災(zāi)難恢復(fù)的遠(yuǎn)程復(fù)制功能)的一致性的控制信息。
[0056]如果這一共享信息在一個(gè)控制器的SM 12a中存在,則共享信息經(jīng)由一個(gè)控制器的MPU 1la被外部系統(tǒng)控制器的MPU 1lb引用。例如,由于高速緩存存儲(chǔ)器13a的索引信息在包括高速緩存存儲(chǔ)器的控制器10a中存在,所以,如果外部系統(tǒng)控制器10b引用索引信息,則外部系統(tǒng)控制器10b經(jīng)由控制器10a的包括高速緩存存儲(chǔ)器13a的MPU 1la訪問索引信息。
[0057]高速緩存存儲(chǔ)器13a暫時(shí)地保持在盤上存儲(chǔ)的用戶數(shù)據(jù)而未保持主機(jī)2的用戶數(shù)據(jù)。外部系統(tǒng)控制器的高速緩存存儲(chǔ)器13b也是這樣。
[0058]圖3是文本區(qū)域1a的軟件資源的配置圖。軟件資源包括配置管理程序201、基本I/O程序202、定時(shí)器同步程序203a、代理訪問程序204a、中斷接收程序205a、普通接收程序206a、請求傳輸程序207a、SM訪問程序208a、DMA訪問程序209a、主機(jī)_IF訪問程序210a和驅(qū)動(dòng)_IF訪問程序211a。這些程序由MPU 1la執(zhí)行。CTLb的文本區(qū)域也是這樣。
[0059]配置管理程序210a由來自管理終端3的命令啟動(dòng)并且能夠引用和更新配置管理信息。配置管理信息是用于管理硬件(比如驅(qū)動(dòng)單元109、主機(jī)_IF 104和驅(qū)動(dòng)_IF 105)以及邏輯部件(比如從一個(gè)或者多個(gè)存儲(chǔ)驅(qū)動(dòng)配置的邏輯卷)的信息等。CTLa的配置信息和CTLb的配置信息被記錄在SMa (12a)和SMb (12b)中。
[0060]為了多個(gè)控制器由主機(jī)集中地操作,如果一個(gè)控制器的配置信息被更新,則希望同步這一控制器與另一控制器。在MPU 102a更新內(nèi)部系統(tǒng)控制器的SM 12a的配置信息時(shí)實(shí)現(xiàn)這一同步以例如作為MPU 102a將這一更新寫入到外部系統(tǒng)控制器的SM 12b的結(jié)果。
[0061]控制器10a(該控制器10a包括由管理終端3訪問的管理_I/F106a)的MPU 1la更新相同SM 12a的配置管理信息并且將用于外部系統(tǒng)控制器10b的MPU存儲(chǔ)器102b中的通信區(qū)域14b的配置信息更新確定標(biāo)志設(shè)置成ON。外部系統(tǒng)控制器的MPU 1lb引用更新標(biāo)志并且如果標(biāo)志為ON則從控制器10a的MPU 1la獲取SM 12a的最新配置信息并且更新它的自有控制器10b的SM 12b的更新信息并將標(biāo)志設(shè)置成OFF。
[0062]基本I/O程序202a從主機(jī)2接收I/O請求命令并且執(zhí)行數(shù)據(jù)讀取I/O或者寫入I/Oo在執(zhí)行讀取I/O或者寫入I/O時(shí),基本I/O程序202a在必需時(shí)調(diào)用請求傳輸程序207a、SM訪問程序208a、DMA訪問程序209a、主機(jī)_IF訪問程序210a和驅(qū)動(dòng)_IF訪問程序211a等并且執(zhí)行每個(gè)程序。
[0063]定時(shí)器同步程序203a服務(wù)于同步內(nèi)部系統(tǒng)控制器10a的定時(shí)器與外部系統(tǒng)控制器10b的定時(shí)器。在多個(gè)控制器之中,一個(gè)控制器的定時(shí)器被視為主控(master),并且另一控制器的定時(shí)器被視為從屬(slave)。被視為主控的控制器的定時(shí)器同步程序被置于非操作模式中。
[0064]代理訪問程序204a是使內(nèi)部系統(tǒng)控制器10a的MPU 1la而不是MPU 1lb能夠基于從外部系統(tǒng)控制器的MPU 1lb傳輸?shù)恼埱笮畔?命令等)訪問存儲(chǔ)器102a、接口 104a和105a以及DMA 103a中的任何一項(xiàng)或者多項(xiàng)的程序。
[0065]請求傳輸程序207a向或者經(jīng)由外部系統(tǒng)控制器1la的MPUlOlb發(fā)布用于訪問的請求以使配置管理程序201a或者基本I/O程序202a能夠讀取或者向外部系統(tǒng)控制器10b的MPU存儲(chǔ)器102b的SM 12b和高速緩存存儲(chǔ)器13b寫入并且啟動(dòng)接口 104b和105b以及DMA 103b。這一請求被實(shí)現(xiàn)作為處理器1la經(jīng)由網(wǎng)橋108在外部系統(tǒng)控制器的MPU存儲(chǔ)器102b的通信區(qū)域14b中寫入請求信息(命令等)并且外部系統(tǒng)控制器的MPU 1lb執(zhí)行這一命令的結(jié)果。如更早描述的那樣,通信區(qū)域14a(14b)包括用于中斷處理的請求信息被記錄在其中的中斷通信區(qū)域141a(141b)和用于除了中斷處理之外的普通處理的命令信息被記錄在其中的普通通信區(qū)域142a (142b)。
[0066]中斷通信區(qū)域141a記錄請求信息,該請求信息請求外部系統(tǒng)控制器10b的優(yōu)先的處理,并且普通通信區(qū)域142a記錄命令,這些命令請求外部系統(tǒng)控制器的非優(yōu)先的處理。CTLa的配置管理程序201a和基本I/O程序202a在中斷通信區(qū)域141a中寫入希望被CTLb的MPU 1lb迅速地處置的處理,并且向CTLb發(fā)出中斷信號(hào)以便補(bǔ)償在處理器之間的通信中不使用專用LSI的缺點(diǎn)。CTLb的MPU 1lb通過執(zhí)行代理訪問程序204b來執(zhí)行在中斷通信區(qū)域141b和普通通信區(qū)域142b中存儲(chǔ)的命令并且用存儲(chǔ)器(12b,13b)的讀取的信息和從命令的執(zhí)行而產(chǎn)生的數(shù)據(jù)傳送完成信息等向發(fā)布命令請求的MPU 1la做出響應(yīng)。
[0067]MPU 1la的請求傳輸程序207a使將在中斷通信區(qū)域141b中存儲(chǔ)的請求信息(命令)的類別和屬性等限于針對優(yōu)先的處理所需要的范圍。假設(shè)廣泛多種請求信息都被存儲(chǔ)在中斷通信區(qū)域141b中,MPU 1lb必須使對用于外部系統(tǒng)控制器的大量命令的處理優(yōu)先,并且MPU 101必須實(shí)質(zhì)上執(zhí)行處理而在內(nèi)部系統(tǒng)控制器中的對來自主機(jī)的I/O的處理等被延遲。
[0068]因此,將描述針對其的處理被外部系統(tǒng)控制器優(yōu)先的請求信息的性質(zhì)。如果第一控制器的處理器要求第二控制器的處理器引用前述共享信息,則第一控制器的處理器應(yīng)當(dāng)直至從第二控制器的處理器獲得共享信息才繼續(xù)下一處理。例如,如果第一控制器的處理器不能從第二控制器獲取共享信息,則第一控制器的處理器不能訪問驅(qū)動(dòng)單元109的正確卷并且不能正確的執(zhí)行I/O處理。其中第一控制器將它的自有共享信息的更新信息復(fù)制到外部系統(tǒng)控制器的情況也被希望迅速地完成。也就是說,必須在很短時(shí)間內(nèi)完成對共享信息的訪問,并且必須有來自請求目的地處理器的向請求源處理器的響應(yīng)。因此,本發(fā)明假設(shè)針對其的處理被優(yōu)先的請求信息的優(yōu)選示例,其中對外部系統(tǒng)控制器的共享存儲(chǔ)器進(jìn)行訪問。
[0069]接著將描述針對其的處理無需被優(yōu)先的請求信息。例如,內(nèi)部系統(tǒng)控制器請求向外部系統(tǒng)控制器的數(shù)據(jù)傳送或者審查數(shù)據(jù)傳送請求。即使在處理將很可能由于傳送數(shù)據(jù)傳送大小為大的數(shù)據(jù)而需要長時(shí)間時(shí),也必須通過訪問共享信息來使外部系統(tǒng)控制器的數(shù)據(jù)傳送硬件的啟動(dòng)優(yōu)先。
[0070]換言之,無需外部系統(tǒng)控制器的處理器的短響應(yīng)時(shí)間。這是因?yàn)槌斯蚕硇畔⒉煌⑶也皇固幚韮?yōu)先的影響小之外,控制器還能夠經(jīng)由并行復(fù)用來處理主機(jī)1/0,并且因此在處理器已經(jīng)由于處理某個(gè)主機(jī)I/o命令而向外部系統(tǒng)控制器的處理器發(fā)布了對啟動(dòng)用于數(shù)據(jù)傳送的硬件資源的請求之后,處理器繼續(xù)處理另一主機(jī)I/o命令而未等待來自外部系統(tǒng)控制器的處理器的響應(yīng)。無需縮短用于這一種類的數(shù)據(jù)傳送啟動(dòng)的響應(yīng)時(shí)間,并且這一處理被視為普通處理(未優(yōu)先的處理)而不是優(yōu)先的處理。
[0071]因此,進(jìn)行第一控制器的處理器是否應(yīng)當(dāng)使對從第二控制器的處理器請求的信息的處理優(yōu)先或者不使這一處理優(yōu)先的區(qū)分,這意味著僅在前一種情況下向第二控制器的優(yōu)先處理單元傳輸請求信息,并且在后一種情況下向第二控制器的普通處理單元傳輸請求信息。第二控制器的處理器使在優(yōu)先處理單元中的對請求信息的處理優(yōu)先并且在普通處理單元中普通地處理請求信息。
[0072]第一實(shí)施例采用中斷處理作為用于實(shí)現(xiàn)優(yōu)先的處理的手段。第二控制器10b的處理器1lb根據(jù)從第一控制器10a的處理器1la發(fā)送的請求信息是否被寫入到中斷通信區(qū)域141b或者寫入到普通通信區(qū)域142b來在使對來自第一控制器10a的請求信息的處理優(yōu)先或者普通地處理請求信息而未優(yōu)先之間區(qū)分。對于向普通通信區(qū)域142b寫入的命令,第二控制器的處理器1lb以規(guī)律間隔輪詢普通通信區(qū)域142b,并且當(dāng)在普通通信區(qū)域142b中發(fā)現(xiàn)請求信息(該請求信息是普通處理目標(biāo))時(shí),處理器1lb通過檢測比如在主機(jī)I/O處理完成之后或者在處理期間的某個(gè)間隔來處理命令。
[0073]圖3中的中斷接收程序205a是如下程序,該程序在從外部系統(tǒng)控制器10b接收中斷請求時(shí)被調(diào)用和啟動(dòng)并且在中斷通信區(qū)域141a中接收命令并且向代理訪問程序204a轉(zhuǎn)交命令,并且普通接收程序206a是如下程序,該程序在前述輪詢期間被啟動(dòng)并且如果有在普通通信區(qū)域中142a中的命令則接收并且向代理訪問程序204a轉(zhuǎn)交命令。
[0074]程序在必需時(shí)調(diào)用SM訪問程序208、DMA訪問程序209、主機(jī)_IF訪問程序210和驅(qū)動(dòng)_IF訪問程序211等并且啟動(dòng)這些程序中的一些或者所有程序。
[0075]SM訪問程序208a是如下程序,該程序在配置管理程序201a和基本I/O程序202a需要SM 12a的共享信息時(shí)被調(diào)用并且支持用于引用和更新SM 12a的控制信息的處理的執(zhí)行。
[0076]DMA訪問程序209a是如下程序,該程序啟動(dòng)DMA 103a并且執(zhí)行在高速緩存存儲(chǔ)器13a中存儲(chǔ)的用戶數(shù)據(jù)的數(shù)據(jù)傳送。
[0077]主機(jī)_IF訪問程序210a是用于訪問主機(jī)_正105a并且向和從主機(jī)2傳輸和接收命令和數(shù)據(jù)的程序。
[0078]驅(qū)動(dòng)_IF訪問程序211a是用于訪問驅(qū)動(dòng)_IF 105a并且向和從驅(qū)動(dòng)109D傳輸和接收命令和數(shù)據(jù)的程序。
[0079]這些訪問程序與訪問請求信息一起由基本I/O程序等調(diào)用,該訪問請求信息包括信息,比如標(biāo)識(shí)訪問目標(biāo)硬件的編號(hào)、訪問類型(讀取/寫入/數(shù)據(jù)傳送等)、目標(biāo)數(shù)據(jù)存在于的存儲(chǔ)器地址和在硬件處理完成時(shí)存儲(chǔ)結(jié)果信息(比如成功/失敗和讀取的值等)的存儲(chǔ)器地址。訪問程序各自根據(jù)指明的訪問類型執(zhí)行對由基本I/o程序指定的硬件的訪問。
[0080]驅(qū)動(dòng)_IF訪問程序211a與訪問請求信息一起由基本I/O程序202a調(diào)用,該訪問請求信息伴隨有管理信息,比如用于標(biāo)識(shí)驅(qū)動(dòng)_IF 105a的驅(qū)動(dòng)_IF編號(hào)、訪問類型(比如讀取/寫入)、傳送數(shù)據(jù)存儲(chǔ)區(qū)域(高速緩存存儲(chǔ)器、驅(qū)動(dòng)單元)的地址和響應(yīng)存儲(chǔ)目的地地址(SM地址)。被這樣調(diào)用的驅(qū)動(dòng)_IF訪問程序211a基于信息(比如訪問類型以及數(shù)據(jù)傳送目的地地址)啟動(dòng)由驅(qū)動(dòng)_IF編號(hào)指明的驅(qū)動(dòng)_正105并且結(jié)束。啟動(dòng)的驅(qū)動(dòng)_IF 105向驅(qū)動(dòng)單元109傳送在指明的高速緩存存儲(chǔ)器13a中的數(shù)據(jù)或者向指明的數(shù)據(jù)存儲(chǔ)高速緩存區(qū)域傳送驅(qū)動(dòng)單元109中的指明的數(shù)據(jù)。此外,驅(qū)動(dòng)_IF 105a向在MPU存儲(chǔ)器1la中的指明的響應(yīng)存儲(chǔ)目的地區(qū)域(通信區(qū)域14a)寫入指示是否已經(jīng)普通地完成了傳送的完成狀態(tài)信息。
[0081]主機(jī)_IF訪問程序210a與訪問請求信息一起由基本I/O程序202a調(diào)用,該訪問請求信息伴隨有管理信息,比如用于標(biāo)識(shí)主機(jī)_IF 104a的主機(jī)_IF編號(hào)、訪問類型(比如讀取/寫入)、傳送數(shù)據(jù)存儲(chǔ)區(qū)域(高速緩存存儲(chǔ)器、驅(qū)動(dòng)單元)的地址和響應(yīng)存儲(chǔ)目的地地址(SM地址)。被調(diào)用的主機(jī)_IF訪問程序基于信息(比如訪問類型以及數(shù)據(jù)傳送目的地地址)啟動(dòng)由主機(jī)_IF編號(hào)指明的主機(jī)_正并且結(jié)束。啟動(dòng)的主機(jī)_IF向主機(jī)傳送在高速緩存存儲(chǔ)器13的指明的區(qū)域中的數(shù)據(jù)或者從主機(jī)向高速緩存存儲(chǔ)器中的指明的區(qū)域傳送數(shù)據(jù)。此外,驅(qū)動(dòng)_IF 105a向在MPU存儲(chǔ)器1la中的指明的響應(yīng)存儲(chǔ)目的地區(qū)域(通信區(qū)域14a)寫入指示是否已經(jīng)普通地完成了傳送的完成狀態(tài)信息。
[0082]DMA訪問程序正在接收的對啟動(dòng)的請求包含信息,比如正被啟動(dòng)的DMA的標(biāo)識(shí)編號(hào)、關(guān)于數(shù)據(jù)傳送源/傳送目的地高速緩存存儲(chǔ)器屬于的控制器的信息、存儲(chǔ)器地址和用于存儲(chǔ)涉及DMA數(shù)據(jù)傳送完成的狀態(tài)信息的響應(yīng)存儲(chǔ)目的地地址(SM通信區(qū)域)。
[0083]SM訪問程序208a根據(jù)由調(diào)用器程序指定的請求類型向MPU存儲(chǔ)器1la的SM 12a執(zhí)行讀取/寫入/原子訪問等。另外,SM訪問程序208a向通信區(qū)域的結(jié)果返回區(qū)域?qū)懭朐L問請求。
[0084]圖4是請求傳輸程序207的過程流程。請求傳輸程序207與請求信息(該請求信息包括標(biāo)識(shí)信息,該標(biāo)識(shí)信息示出針對其的代理訪問將被請求的外部系統(tǒng)控制器的硬件)、請求內(nèi)容(讀取、寫入、數(shù)據(jù)傳送等的啟動(dòng))和如果必要?jiǎng)t包括讀取目標(biāo)存儲(chǔ)器的地址等、內(nèi)部系統(tǒng)控制器的MPU存儲(chǔ)器1la (該MPU存儲(chǔ)器用于存儲(chǔ)來自外部系統(tǒng)控制器的硬件或者訪問程序的返回值)的地址和伴隨參數(shù)一起由調(diào)用器程序(比如基本I/O程序202或者配置信息管理程序201)調(diào)用。
[0085]首先,請求傳輸程序207a從供應(yīng)自調(diào)用器程序的請求信息獲取用于標(biāo)識(shí)請求處理信息的標(biāo)識(shí)代碼(步驟S1201)。請求傳輸程序207a然后引用請求處理標(biāo)識(shí)表Illa(圖10:隨后提供的細(xì)節(jié))并且根據(jù)標(biāo)識(shí)代碼獲取關(guān)于外部系統(tǒng)控制器的硬件資源的信息,該外部系統(tǒng)控制器是訪問目的地(步驟S1202)。請求傳輸程序207a繼續(xù)步驟SP1203并且確定訪問目的地硬件是否包括前述共享信息。更具體而言,請求傳輸程序207a引用地址目的地屬性表112 (圖12,隨后提供的細(xì)節(jié)),并且如果在與訪問目的地硬件對應(yīng)的共享信息字段中存儲(chǔ)了共享信息,則請求傳輸程序207a確定對外部系統(tǒng)控制器10b的訪問目的地硬件的訪問是對共享信息的訪問。在獲得肯定結(jié)果時(shí),請求傳輸程序207a向外部系統(tǒng)控制器10b的MPU存儲(chǔ)器102b的中斷通信區(qū)域141b傳輸請求信息(S1204)。
[0086]在訪問請求時(shí),請求傳輸程序207a向外部系統(tǒng)控制器的MPU存儲(chǔ)器102b的通信區(qū)域14b的中斷通信區(qū)域141b寫入請求信息并且然后經(jīng)由控制器間連接總線108向外部系統(tǒng)控制器的MPU 1lb傳輸中斷信號(hào)(例如,PCI快速M(fèi)SI分組)
[0087]同時(shí),在步驟S1203產(chǎn)生否定結(jié)果并且確定對外部系統(tǒng)控制器的訪問不是對共享信息的訪問時(shí),請求傳輸程序207a無需對外部系統(tǒng)控制器10b的請求目的地硬件執(zhí)行中斷處理并且向外部系統(tǒng)控制器10b的MPU存儲(chǔ)器102b的普通通信區(qū)域142b傳輸請求信息。
[0088]圖5是服務(wù)于圖示請求傳輸程序207a的另一實(shí)施例的流程圖。這一流程圖與圖4的流程圖不同在于圖4的步驟S1204被步驟S1210至S1214替換。在請求傳輸程序207a確定調(diào)用器程序的訪問目的地是在外部系統(tǒng)控制器1lb的訪問目的地(SM 12b等)中記錄的共享信息時(shí),請求傳輸程序207a遞增計(jì)數(shù)器,該計(jì)數(shù)器更新和記錄在向外部系統(tǒng)控制器10b的中斷處理請求之中的未完成中斷處理數(shù)目。請求傳輸程序207a在將傳輸中斷信號(hào)的階段將計(jì)數(shù)器遞增I并且在外部系統(tǒng)控制器發(fā)送回響應(yīng)信號(hào)時(shí)的時(shí)刻將計(jì)數(shù)器遞減1控制器在內(nèi)部系統(tǒng)控制器的MPU存儲(chǔ)器102的本地存儲(chǔ)器11中包括計(jì)數(shù)器。
[0089]請求傳輸程序207a在步驟S1210中確定當(dāng)前計(jì)數(shù)器的值是否小于閾值(S1210),并且如果該值等于或者大于閾值(S1210:否),則請求傳輸程序207a不向外部系統(tǒng)控制器10b的MPU 102b產(chǎn)生中斷處理請求并且在內(nèi)部系統(tǒng)控制器10a的MPU存儲(chǔ)器102a的中斷待命區(qū)域中記錄請求,因此結(jié)束流程圖[的處理](步驟S1211)。
[0090]在確定計(jì)數(shù)器小于閾值(S1212:是)時(shí),請求傳輸程序207a檢查是否有在中斷待命區(qū)域中記錄的請求(S1212),并且如果有在中斷待命區(qū)域中的請求信息,則請求傳輸程序207a組合待命請求信息與由S1203確定的當(dāng)前請求信息并且向外部系統(tǒng)控制器的中斷通信區(qū)域141b傳輸組合的請求信息(S1214)并且向外部系統(tǒng)控制器10b傳輸用于多個(gè)請求信息的中斷信號(hào)(S1214)。請求傳輸程序207a遞增請求信息計(jì)數(shù)計(jì)數(shù)器(步驟S1215)、同時(shí),在請求傳輸程序確定無待命請求信息時(shí),請求傳輸程序207a傳輸當(dāng)前請求信息(S1213)、傳輸用于當(dāng)前請求信息的中斷信號(hào)(S1214)并且將計(jì)數(shù)器遞增I (S1215)。
[0091]利用這一流程圖,由于請求傳輸程序207a收集中斷請求,所以有可能避免向請求目的地控制器10b連續(xù)地發(fā)布大量請求信息傳輸(這些請求信息傳輸是中斷處理目標(biāo))并且減少以由請求目的地控制器10b基于請求信息而調(diào)用的過程的頻繁切換為基礎(chǔ)的開銷。
[0092]圖6示出了用于中斷接收程序205的過程流程。在MPU 1lb從外部系統(tǒng)控制器10Ia接收中斷信號(hào)的時(shí)刻中止正被執(zhí)行的處理時(shí)執(zhí)行中斷接收程序205。在中止正被執(zhí)行的處理時(shí),記錄程序計(jì)數(shù)器和局部變量等,并且中斷處理結(jié)束,其中重啟中止的程序。這一布置通常是OS(操作系統(tǒng))的功能。
[0093]首先,中斷接收程序205a檢查是否在中斷通信區(qū)域141a中記錄了請求信息(請求)(S1802),并且如果有請求,則中斷接收程序205a從中斷通信區(qū)域141a獲取請求信息(S1800)并且相應(yīng)地啟動(dòng)代理訪問程序204a(S1801)并且返回到步驟S1802。如果無請求(S1802:否),則結(jié)束流程圖[的處理]。
[0094]圖7示出了普通接收程序206的過程流程。以規(guī)律間隔向MPUlOl調(diào)用但是在中止主機(jī)命令處理(比如I/o處理)時(shí)不執(zhí)行普通接收程序206。因此,雖然普通接收程序在正被執(zhí)行的處理中不生成開銷,但是不同于中斷處理,處理可能在接收請求之后需要長時(shí)間。普通接收程序206a首先檢查是否在普通通信區(qū)域142a中存儲(chǔ)請求信息(S1900)并且如果不是則結(jié)束處理。如果存儲(chǔ)了請求信息,則普通接收程序206a從普通通信區(qū)域142a獲取請求信息(步驟S1901)并且啟動(dòng)代理訪問程序204a(1902)。在代理訪問程序204a的啟動(dòng)結(jié)束時(shí),處理返回到步驟S1900。
[0095]圖8示出了用于代理訪問程序204的流程圖。代理訪問程序204a由中斷接收程序205a或者普通通信程序206a啟動(dòng)。代理訪問程序204a經(jīng)由中斷通信程序205a或者普通通信程序206a獲取請求信息(步驟S1700)。代理訪問程序204a然后引用請求處理標(biāo)識(shí)表111 (圖10)以基于在請求信息中包含的標(biāo)識(shí)代碼標(biāo)識(shí)外部系統(tǒng)控制器的訪問目的地硬件(步驟S1701)。另外,在步驟S1702至S1709中,代理訪問程序204a鑒別訪問目的地硬件并且啟動(dòng)用于每個(gè)訪問目的地硬件的訪問程序。
[0096]圖9是用于定時(shí)器同步程序203的過程流程。定時(shí)器信息是將由多個(gè)控制器共享的共享信息之一。定時(shí)器同步處理是用于同步多個(gè)控制器的MPU內(nèi)部定時(shí)器的處理。定時(shí)器同步程序203a以固定間隔由內(nèi)部系統(tǒng)控制器10a調(diào)用并且獲取外部系統(tǒng)控制器10b的MPU內(nèi)部定時(shí)器的值并且向內(nèi)部系統(tǒng)控制器10a的MPU內(nèi)部定時(shí)器復(fù)制讀取的值。在這一情況下,外部系統(tǒng)控制器的定時(shí)器被視為主控。
[0097]定時(shí)器同步程序203a啟動(dòng)請求傳輸程序207a并且在外部系統(tǒng)控制器的中斷通信區(qū)域141b中記錄定時(shí)器讀取請求信息(SllOl)。外部系統(tǒng)控制器的MPU 1lb借助中斷接收程序205b獲取請求信息并且借助代理訪問程序204a讀取MPU 1lb的內(nèi)部定時(shí)器值。MPUlOlb執(zhí)行請求傳輸程序207a并且在控制器10a的中斷通信區(qū)域141a中存儲(chǔ)讀取的信息作為對請求信息的響應(yīng)。MPU 1la執(zhí)行中斷接收程序205a并且接收中斷通信區(qū)域141a的定時(shí)器值,并且代理訪問程序204a訪問MPU 1la的內(nèi)部定時(shí)器并且復(fù)制讀取的定時(shí)器值。因此,定時(shí)器同步程序在忙循環(huán)中等待直至有來自外部系統(tǒng)控制器的響應(yīng)(S1102)并且如果接收響應(yīng)則從響應(yīng)信息獲取定時(shí)器值(S1103)并且向內(nèi)部系統(tǒng)控制器的MPU內(nèi)部定時(shí)器復(fù)制定時(shí)器值(S1104),因此結(jié)束流程圖[的處理]。
[0098]接著將描述由代理訪問程序、中斷接收程序、普通接收程序和請求傳輸程序中的一個(gè)或者兩個(gè)或者更多程序使用的控制和管理表??刂坪凸芾肀戆ㄇ笆鰞?nèi)部/外部系統(tǒng)確定表110、請求處理標(biāo)識(shí)表111和地址目的地屬性表112 (見圖2)。
[0099]圖10示出了請求處理標(biāo)識(shí)表111的配置示例。請求標(biāo)識(shí)表111是用于根據(jù)標(biāo)識(shí)代碼標(biāo)識(shí)通信類型和訪問目的地的表。每個(gè)條目包括標(biāo)識(shí)代碼字段1110、通信類型字段1111和訪問目的地字段1112。請求傳輸程序207基于來自配置管理程序201或者基本I/O程序202的命令確定通信類型1111并且確定訪問目的地1112。
[0100]請求傳輸程序207基于這些確定項(xiàng)目確定標(biāo)識(shí)代碼。請求傳輸程序207a根據(jù)訪問目的地進(jìn)行關(guān)于請求傳輸程序207a將向外部系統(tǒng)控制器10b的通信區(qū)域14b的中斷通信區(qū)域141b和普通通信區(qū)域142b中的哪個(gè)通信區(qū)域?qū)懭霕?biāo)識(shí)代碼的判決。如果訪問目的地是共享信息或者定時(shí)器信息,則向中斷通信區(qū)域141b寫入標(biāo)識(shí)代碼,否則向普通通信區(qū)域142b寫入標(biāo)識(shí)代碼。
[0101]圖11示出了訪問目的地屬性表112的配置示例。訪問目的地屬性表112是指示每個(gè)訪問目的地是否存儲(chǔ)共享信息的表。每個(gè)條目包括訪問目的地字段1120和共享信息字段1121。共享存儲(chǔ)器(SM) 12包括共享信息并且定時(shí)器也包括共享信息,但是其它訪問目的地不包括共享信息。
[0102]為了確定向外部系統(tǒng)控制器10b的通信區(qū)域14b的中斷通信區(qū)域141b和普通通信區(qū)域142b中的哪個(gè)通信區(qū)域?qū)懭霕?biāo)識(shí)代碼,請求傳輸程序207引用訪問目的地屬性表112以確定訪問目的地包括共享信息(是),并且請求傳輸程序207a在中斷通信區(qū)域141b中存儲(chǔ)標(biāo)識(shí)代碼。在確定訪問目的地不包括共享信息時(shí),請求傳輸程序207a在普通通信區(qū)域142b中存儲(chǔ)標(biāo)識(shí)代碼。
[0103]圖12示出了內(nèi)部/外部系統(tǒng)確定表110的配置示例。內(nèi)部/外部系統(tǒng)確定表110基于前述標(biāo)識(shí)代碼(ID)示出了訪問目的地類型和訪問目的地是否為CTLa或者CTLb。每個(gè)條目包括ID字段1100、類型字段1101和CTL字段1102。如果在CTL字段中的注冊信息是“b”,則請求傳輸程序207a在外部系統(tǒng)控制器的通信區(qū)域14b中存儲(chǔ)標(biāo)識(shí)代碼,并且在檢測到在CTL字段中的注冊信息是“a”時(shí),由于配置管理程序201a或者基本程序202a的訪問目的地是在它的自有控制器中的資源,程序無需在外部系統(tǒng)控制器10b的通信區(qū)域14b中存儲(chǔ)標(biāo)識(shí)信息而對請求處理標(biāo)識(shí)表111的訪問目的地硬件資源執(zhí)行與通信類型對應(yīng)的處理。
[0104]接著,在描述對來自主機(jī)2的讀取I/O的處理之時(shí),將基于圖13至圖16描述代理訪問程序204、中斷接收程序205、普通接收程序206和請求傳輸程序207的操作。圖13是讀取I/O處理流程圖。在MPU 101從主機(jī)IF 104接收讀取I/O命令時(shí)啟動(dòng)這一流程。
[0105]首先,基本I/O命令202向配置管理程序201發(fā)布關(guān)于存在配置信息更新的查詢。配置管理程序201a訪問通信區(qū)域14a并且檢查是否已經(jīng)設(shè)置了配置信息已更新標(biāo)志。在檢測到已經(jīng)設(shè)置了用于外部系統(tǒng)控制器10b的配置信息已更新標(biāo)志時(shí),由于必須從外部系統(tǒng)控制器讀取最新共享信息(S1015:是),所以配置管理程序201a啟動(dòng)請求傳輸程序207a(S1016)。
[0106]在啟動(dòng)請求傳輸程序207a時(shí),向外部系統(tǒng)控制器10b的通信區(qū)域14b的中斷通信區(qū)域141b寫入標(biāo)識(shí)代碼(0x00),并且向外部系統(tǒng)控制器10b傳輸中斷信號(hào)。標(biāo)識(shí)代碼(0x00)是如下命令,該命令請求外部系統(tǒng)控制器10b的MPU 1lb訪問共享存儲(chǔ)器12b以從共享存儲(chǔ)器12b讀取更新的共享信息。請求傳輸程序207a在忙循環(huán)中等待來自外部系統(tǒng)控制器10b的響應(yīng)(S1017)。注意,可以如更早提到的那樣使內(nèi)部系統(tǒng)控制器10a對來自外部系統(tǒng)控制器10b的響應(yīng)的處理優(yōu)先。
[0107]在從內(nèi)部系統(tǒng)控制器10a接收中斷信號(hào)時(shí),外部系統(tǒng)控制器10b的MPU 1lb啟動(dòng)中斷接收程序205b,并且中斷接收程序205b讀取在中斷通信區(qū)域141b中的標(biāo)識(shí)代碼并且向代理訪問程序204b轉(zhuǎn)交標(biāo)識(shí)代碼。代理訪問程序204b基于標(biāo)識(shí)代碼引用請求處理標(biāo)識(shí)表Illb并且在確定訪問目的地是SM 12b時(shí)訪問SM 12b。
[0108]另外,代理訪問程序204a讀取更新的共享信息,并且內(nèi)部系統(tǒng)控制器的經(jīng)由請求傳輸程序207b向內(nèi)部系統(tǒng)控制器10a傳輸包含共享信息的響應(yīng)的基本I/O程序202a從響應(yīng)信息獲取更新的共享信息(S1018),并且經(jīng)由配置管理程序201a向共享存儲(chǔ)器12a復(fù)制更新的信息(S1019)。因此,在基本I/O程序202a執(zhí)行對來自主機(jī)2的讀取I/O的處理時(shí),由于將對于存在對將由在具有雙控制器配置的存儲(chǔ)系統(tǒng)中的兩個(gè)控制器共享的配置信息的更新進(jìn)行檢查,所以即使當(dāng)在一個(gè)控制器中實(shí)現(xiàn)配置信息更新時(shí),也可以向外部系統(tǒng)控制器迅速地復(fù)制這一更新。注意,在配置管理程序201a在S1015中檢查通信區(qū)域14a時(shí),如果尚未設(shè)置配置信息更新標(biāo)志,則可以跳過步驟S1016在S1019。
[0109]基本I/O程序202a引用SM 12a的共享信息(內(nèi)部系統(tǒng)控制器10a的高速緩存存儲(chǔ)器13a的高速緩存索引和外部系統(tǒng)控制器10b的高速緩存存儲(chǔ)器13b的高速緩存索引)并且執(zhí)行尚速緩存命中/未命中確定(S1002),并且在尚速緩存命中的情況下前進(jìn)到S1008o
[0110]在高速緩存未命中的情況下,基本I/O程序202a前進(jìn)到步驟S1004。在S1004中,為了在內(nèi)部系統(tǒng)控制器10a的高速緩存存儲(chǔ)器13a或者外部系統(tǒng)控制器10b的高速緩存存儲(chǔ)器13b中保護(hù)用于從驅(qū)動(dòng)單元109倒盤(stage)讀取的數(shù)據(jù)的新高速緩存區(qū)域,基本I/O程序202a更新相應(yīng)的高速緩存存儲(chǔ)器配置信息。在向內(nèi)部系統(tǒng)控制器10a的SMa復(fù)制涉及保護(hù)高速緩存區(qū)域的信息時(shí),配置管理程序201a將標(biāo)志設(shè)置成更新信息已經(jīng)借助請求傳輸程序207a在外部系統(tǒng)控制器10b的通信區(qū)域14b的中斷通信區(qū)域141b中被更新的效果。外部系統(tǒng)控制器10b的MPU 1lb使對標(biāo)志的處理優(yōu)先并且在內(nèi)部系統(tǒng)控制器10a的中斷通信區(qū)域141a中寫入用于讀取SM12a的高速緩存配置信息的請求。
[0111]隨后,在確定已經(jīng)在內(nèi)部系統(tǒng)高速緩存存儲(chǔ)器中保護(hù)了高速緩存區(qū)域時(shí),基本I/O程序202a啟動(dòng)內(nèi)部系統(tǒng)控制器10a的驅(qū)動(dòng)_IF105a,也就是啟動(dòng)驅(qū)動(dòng)_IF訪問程序211a(S1006)。如果保護(hù)的高速緩存區(qū)域在外部系統(tǒng)控制器10b的高速緩存存儲(chǔ)器13a中,則基本I/O程序202a啟動(dòng)請求傳輸程序207a并且在外部系統(tǒng)控制器的普通通信區(qū)域142b中寫入對啟動(dòng)驅(qū)動(dòng)_IF 105b的請求。外部系統(tǒng)控制器10b的MPU 1lb執(zhí)行代理訪問程序204a、啟動(dòng)驅(qū)動(dòng)_IF訪問程序211b并且然后啟動(dòng)驅(qū)動(dòng)_IF 105b。
[0112]同時(shí),如果基本I/O程序202a確定高速緩存命中(S1002:是),則基本I/O程序202a在步驟S1008中引用在SM 12a中的共享信息并且確定包括讀取的數(shù)據(jù)的高速緩存存儲(chǔ)器13是否在與從主機(jī)接收讀取I/O的主機(jī)_IF 104相同的控制器中(S1008)。在進(jìn)行否定確定時(shí),基本I/O程序202a確定包括讀取的數(shù)據(jù)的高速緩存存儲(chǔ)器是否在將處理讀取I/O的控制器(這在圖13的情況下是內(nèi)部系統(tǒng)存儲(chǔ)器10a)中(S1009),并且在確定高速緩存存儲(chǔ)器13屬于內(nèi)部系統(tǒng)控制器10a時(shí),基本I/O程序202a啟動(dòng)內(nèi)部系統(tǒng)控制器10a的DMA訪問程序209a并且啟動(dòng)DMA 103a(SlOlO)。DMA 209a向主機(jī)_IF104a傳送高速緩存存儲(chǔ)器的讀取的數(shù)據(jù)。
[0113]然而,在確定高速緩存存儲(chǔ)器在外部系統(tǒng)控制器10b中時(shí),基本I/O程序202a啟動(dòng)請求傳輸程序207a以便向外部系統(tǒng)控制器發(fā)布對于啟動(dòng)DMA 109b的請求(SlOll)。
[0114]在步驟S1008中,基本I/O程序202a引用內(nèi)部系統(tǒng)控制器10a的SM 12a中的配置信息,并且在確定包括讀取的數(shù)據(jù)的高速緩存存儲(chǔ)器在與從主機(jī)2接收讀取I/O的主機(jī)_IF 104相同的控制器中時(shí),基本I/O程序202a確定主機(jī)_IF是否在內(nèi)部系統(tǒng)控制器10a中。在確定主機(jī)_IF在內(nèi)部系統(tǒng)控制器10a中時(shí),基本I/O程序啟動(dòng)主機(jī)_IF訪問程序210a并且啟動(dòng)主機(jī)_IF 104a (步驟S1013)。
[0115]在確定主機(jī)_IF在外部系統(tǒng)控制器10b中(S1008:是)時(shí),基本I/O程序啟動(dòng)請求傳輸程序207a以便請求啟動(dòng)外部系統(tǒng)控制器10b的主機(jī)_IF訪問程序210b (步驟S1014)ο
[0116]基本I/O 程序經(jīng)由步驟 S1013、S1014、S1010、S1011、S1006 和 S1007 前進(jìn)到 S1015。在S1015中,基本I/O程序202a從前述啟動(dòng)的程序設(shè)置響應(yīng)待命狀態(tài)并且暫時(shí)地結(jié)束圖13中的流程圖[的處理]。在識(shí)別來自啟動(dòng)目標(biāo)程序的響應(yīng)時(shí),基本I/O程序202a重啟圖13中的流程圖[的處理]以便繼續(xù)讀取I/O命令處理。
[0117]當(dāng)在圖13的S1006或者S1007中識(shí)別對啟動(dòng)請求的響應(yīng)時(shí),基本I/O程序202a重啟圖13中的流程圖[的處理]。在重啟之后的流程如在圖14的流程圖中所示。在有來自啟動(dòng)目標(biāo)程序的響應(yīng)的狀態(tài)(S1006或者S1007)中,在內(nèi)部系統(tǒng)控制器10a或者外部系統(tǒng)控制器10b中保護(hù)新高速緩存區(qū)域。另外,讀取的數(shù)據(jù)從驅(qū)動(dòng)單元109被倒盤到新保護(hù)的高速緩存區(qū)域中。因此,基本I/O程序202a在S1002中確定肯定結(jié)果并且執(zhí)行S1008和后續(xù)步驟。對圖14中的每個(gè)步驟的描述與對于圖13的描述相同。
[0118]在基本I/O程序202a由于S1013或者S1014而從程序(該程序是啟動(dòng)目標(biāo))接收響應(yīng)時(shí),假設(shè)如下狀態(tài),在該狀態(tài)中,讀取的目標(biāo)數(shù)據(jù)可以由在內(nèi)部系統(tǒng)控制器10a和外部系統(tǒng)控制器10b中的DMA 103從高速緩存存儲(chǔ)器13傳送到主機(jī)_IF 104。因此,為了支持向主機(jī)的讀取數(shù)據(jù)傳送,基本I/O程序必須啟動(dòng)主機(jī)_IF訪問程序210。出于這一原因,在由于S1013或者S1014而從啟動(dòng)目標(biāo)程序接收響應(yīng)時(shí),基本I/O程序202a如在圖15中所示執(zhí)行圖13的S1012和后續(xù)步驟的處理。圖15的S1012和后續(xù)步驟的處理與圖13的處理相同。
[0119]當(dāng)在S1013中從內(nèi)部系統(tǒng)控制器10a的主機(jī)_IF訪問程序210a(該主機(jī)_IF訪問程序210a是啟動(dòng)目標(biāo))接收響應(yīng)或者在S1014中從外部系統(tǒng)控制器10b的主機(jī)_IF訪問程序210b (該主機(jī)_正訪問程序210b是啟動(dòng)目標(biāo))接收響應(yīng)(圖15:S1015)時(shí),讀取的數(shù)據(jù)經(jīng)由主機(jī)_IF 104從高速緩存存儲(chǔ)器13被傳送到發(fā)布讀取I/O的主機(jī)2,并且因此基本I/O程序202a結(jié)束讀取I/O處理。
[0120]實(shí)施例2
[0121]雖然在第一實(shí)施例中通過中斷處理實(shí)現(xiàn)了前述優(yōu)先的處理,但是在第二實(shí)施例的情況下,采用多核型處理器作為處理器,從而使得通過為優(yōu)先的處理獨(dú)占地配置核中的一些核來實(shí)現(xiàn)優(yōu)先的處理,從而使得防止這些核執(zhí)行主機(jī)I/o處理。圖16是第二實(shí)施例的MPU存儲(chǔ)器102a的配置。第二實(shí)施例與第一實(shí)施例不同在于向本地存儲(chǔ)器Ila添加用于在多個(gè)核處理器之中確定專用核處理器的表113a以及向通信區(qū)域14a添加個(gè)別核中斷通信區(qū)域143a和個(gè)別核普通通信區(qū)域144a。這對于外部系統(tǒng)控制器10b的MPU存儲(chǔ)器102b也成立。
[0122]利用第二實(shí)施例,進(jìn)行任何給定的核是否為專用核的確定作為每個(gè)核在啟動(dòng)期間引用專用核確定表113a的結(jié)果,并且僅如果確定核為普通核而不是專用核才執(zhí)行基本I/O程序202a和配置管理程序201a。
[0123]圖17示出了專用核確定表113a的示例。專用核確定表113a包含如下條目,在這些條目中,數(shù)目對應(yīng)于核數(shù)目,并且每個(gè)條目包括核字段113、核類型字段1131和中斷可接收/不可接收字段132。核字段1130存儲(chǔ)用于標(biāo)識(shí)核的信息,核類型字段1131存儲(chǔ)用于在專用核與普通核之間區(qū)分的標(biāo)識(shí)信息,并且中斷可接收/不可接收字段132存儲(chǔ)指示普通核是否可以接收中斷處理的信息。
[0124]如更早提到的那樣,專用核專用于優(yōu)先的處理,而普通核能夠執(zhí)行除了優(yōu)先的處理之外的處理,即,主機(jī)I/O處理和對來自管理終端3的管理請求的處理。請求信息向普通核和專用核的傳輸使用個(gè)別核通信區(qū)域。專用核無需來自外部系統(tǒng)控制器的對于處理請求的中斷請求,并且因此個(gè)別核普通通信區(qū)域142a用于向?qū)S煤说恼埱?。如在圖17中所示,為普通核進(jìn)行設(shè)置以指定是否可以接收中斷。被設(shè)置為不接收中斷的普通核不從外部系統(tǒng)控制器接收中斷請求,并且因此中斷通信區(qū)域不用于這一個(gè)核。因此,普通核與前述普通處理而不是前述優(yōu)先的處理兼容。已經(jīng)被設(shè)置為能夠接收中斷的普通核從外部系統(tǒng)控制器接收中斷請求,并且因此與優(yōu)先的處理和普通處理二者兼容。
[0125]可以取決于核類型、是否可以接收中斷和在每個(gè)核上的負(fù)荷來動(dòng)態(tài)地改變專用核確定表113。另外,示出了如下示例,在該示例中,兩個(gè)處理器各自包括四個(gè)核,并且也在該示例中,每個(gè)處理器具有一個(gè)專用核,但是這僅為示例。專用核和普通核的平衡不限于在該表中描述的平衡。由重寫專用核確定表113的配置管理程序使在專用核與普通核之間切換有可能。在專用核確定表中,CTLO是第一控制器的MPU 101a,并且CTLl是第二控制器的MPU 1lb0
[0126]圖18是根據(jù)第二實(shí)施例的MPU存儲(chǔ)器102的軟件配置圖。與在第一實(shí)施例中不同,已經(jīng)添加了專用核計(jì)數(shù)調(diào)整程序220。隨后將提供關(guān)于這一程序的細(xì)節(jié)。
[0127]圖19是用于根據(jù)第二實(shí)施例的請求傳輸程序207a的過程流程。這一請求傳輸程序207a與根據(jù)第一實(shí)施例的請求傳輸程序(圖4)不同在于已經(jīng)在S1203與S1204之間添加步驟S1253至S1256。接收主機(jī)I/O的普通核(專用核不接收主機(jī)I/O)啟動(dòng)請求傳輸程序207。請求傳輸程序207a在S1201至S1203之后的S1253中引用專用核確定表113并且確定是否有在外部系統(tǒng)控制器10b的MPU 1lb中的至少一個(gè)專用核(S1254)。
[0128]在確定沒有在外部系統(tǒng)控制器中的專用核時(shí),執(zhí)行請求傳輸程序207a的普通核在外部系統(tǒng)控制器中的MPU存儲(chǔ)器1lb的普通核的中斷通信區(qū)域143b中寫入請求信息并且傳輸中斷請求(SI204)。
[0129]在另一方面,如果確定存在專用核,則請求傳輸程序207a前進(jìn)到S1257并且選擇外部系統(tǒng)控制器的已經(jīng)被設(shè)置為專用核的一個(gè)核(S1257)。如果有已經(jīng)被設(shè)置為專用核的多個(gè)核,則請求傳輸程序207a例如經(jīng)由輪循等選擇這些核中的任何核。請求傳輸程序207a然后在外部系統(tǒng)控制器10b中的選擇的核的普通通信區(qū)域144b中寫入請求信息(步驟S1256)。專用核不執(zhí)行非優(yōu)先的處理(比如主機(jī)I/O處理),并且因此能夠在短時(shí)間內(nèi)對請求信息傳輸源做出響應(yīng),這是有利的,因?yàn)榕c借助中斷處理來執(zhí)行優(yōu)先的處理的情況比較,未基于正在運(yùn)行的必須被切換到中斷處理的程序來生成開銷。
[0130]圖20是專用核計(jì)數(shù)調(diào)整程序220的流程圖。以規(guī)律間隔(例如,每分鐘)執(zhí)行專用核計(jì)數(shù)調(diào)整程序200。專用核計(jì)數(shù)調(diào)整程序連續(xù)地監(jiān)視每個(gè)處理核的負(fù)荷(操作速率),并且在普通核的處理器負(fù)荷低時(shí)設(shè)置專用核(或者產(chǎn)生大的專用核比率),并且請求傳輸程序207能夠防止由向普通核發(fā)送的中斷請求所引起的任何開銷。同時(shí),調(diào)整程序220在普通核的處理器負(fù)荷高時(shí)取消具有專用核設(shè)置的核(或者產(chǎn)生小的專用核比率)。
[0131]專用核計(jì)數(shù)調(diào)整程序220在S2600中獲取用于多個(gè)核中的每個(gè)核的負(fù)荷信息并且在S2601中確定通過從用于普通核負(fù)荷的總計(jì)值減去用于專用核負(fù)荷的總計(jì)值而獲得的差值是否等于或者大于閾值。如果總計(jì)值等于或者大于閾值,則專用核計(jì)數(shù)調(diào)整程序220減少專用核[的數(shù)目](S2602)。
[0132]用于減少專用核數(shù)目的過程如下。專用核計(jì)數(shù)調(diào)整程序220a能夠通過改變這一程序?qū)儆诘膬?nèi)部系統(tǒng)控制器10a的專用核確定表113a來減少內(nèi)部系統(tǒng)控制器10a或者外部系統(tǒng)控制器10b的專用核數(shù)目。由此,專用核計(jì)數(shù)調(diào)整程序220a優(yōu)選地在更新內(nèi)部系統(tǒng)控制器10a的專用核確定表之前更新外部系統(tǒng)控制器10b的專用核確定表113b。
[0133]專用核確定表113包括關(guān)于內(nèi)部系統(tǒng)控制器的MPU 1la和外部系統(tǒng)控制器的MPU1lb的信息,并且因此是由內(nèi)部系統(tǒng)控制器和外部系統(tǒng)控制器共享的共享信息,并且獲得訪問以便更新這一信息是優(yōu)先的處理的目標(biāo)。因此,對外部系統(tǒng)控制器10b的專用核進(jìn)行或者對普通核的中斷通信區(qū)域143b進(jìn)行內(nèi)部系統(tǒng)控制器10a的訪問。從內(nèi)部系統(tǒng)控制器10a對外部系統(tǒng)控制器10b的訪問可以由專用核或者普通核進(jìn)行。內(nèi)部系統(tǒng)控制器的專用核計(jì)數(shù)調(diào)整程序220a等待來自外部系統(tǒng)控制器10b的響應(yīng)并且修改內(nèi)部系統(tǒng)控制器的專用核確定表113a。
[0134]使對外部系統(tǒng)控制器10b的專用核確定表113b的更新優(yōu)先于對內(nèi)部系統(tǒng)控制器10a的專用核確定表113a的更新,因?yàn)橥獠肯到y(tǒng)控制器10b不能在內(nèi)部系統(tǒng)控制器10a的專用核之前進(jìn)行請求。注意,雖然內(nèi)部系統(tǒng)控制器10a在等待來自外部系統(tǒng)控制器10b的響應(yīng)之后更新專用核確定表113a,但是也可以更新內(nèi)部系統(tǒng)控制器10a的表113a而未等待來自外部系統(tǒng)控制器10b的響應(yīng)。
[0135]在另一方面,如果在S2601中進(jìn)行否定確定,則專用核計(jì)數(shù)調(diào)整程序220a確定通過從專用核的總負(fù)荷減去普通核的總負(fù)荷而獲得的負(fù)荷差值是否等于或者大于閾值(S2603) ο如果負(fù)荷等于或者大于閾值,則專用核計(jì)數(shù)調(diào)整程序220a增加專用核(S2604)。首先,專用核計(jì)數(shù)調(diào)整程序220a更新內(nèi)部系統(tǒng)控制器10a的專用核確定表113a。由此,專用核計(jì)數(shù)調(diào)整程序220a假設(shè)其屬性將被改變成專用核的普通核正在執(zhí)行主機(jī)I/O處理或者其它處理并且在等待處理完成之后固定時(shí)間已經(jīng)流逝之后將普通核改變成專用核。隨后,內(nèi)部系統(tǒng)控制器10a向外部系統(tǒng)控制器10b發(fā)布對于將專用核確定表113b更新作為優(yōu)先的處理的請求。注意,專用核計(jì)數(shù)調(diào)整程序220a也可以中止正被處理的所有請求處理并且將普通核立即地切換成專用核。
[0136]根據(jù)第二實(shí)施例,由于通過比較專用核負(fù)荷與普通核負(fù)荷來動(dòng)態(tài)地改變專用核的比率,所以如果I/O處理負(fù)荷與優(yōu)先的處理比較為高,則提高普通核的比率以加速I/O處理,并且如果優(yōu)先的處理與I/o負(fù)荷比較為高,則提高專用核的比率以加速優(yōu)先的處理。作為結(jié)果,即使當(dāng)在多核處理器中配置專用于優(yōu)先的處理的專用核時(shí),也總是有在I/o處理與優(yōu)先的處理之間產(chǎn)生的高平衡水平。根據(jù)第二實(shí)施例,如果專用核負(fù)荷為高,則已經(jīng)被設(shè)置為接收中斷的普通核可以請求對共享信息的訪問
[0137]實(shí)施例3
[0138]第三實(shí)施例是第二實(shí)施例的修改并且其特征在于使用同時(shí)多線程化(SMT)。通過使用SMT,單個(gè)物理核可以被視為被稱為線程的多個(gè)虛擬核。這些線程被稱為虛擬核。根據(jù)這一實(shí)施例,在前述專用核確定表113中預(yù)備數(shù)目與虛擬核數(shù)目對應(yīng)的條目。在核字段中記錄虛擬核標(biāo)識(shí)編號(hào)。這一實(shí)施例與第二實(shí)施例相同在于虛擬核中的一個(gè)或者多個(gè)虛擬核可以被設(shè)置為專用核。
[0139]這一實(shí)施例使用SMT來使得有可能總是將虛擬核置于暫停狀態(tài)(停止的狀態(tài)),并且作為控制器在外部系統(tǒng)控制器的虛擬核中生成中斷信號(hào)的結(jié)果來將虛擬核啟動(dòng)作為專用核。該實(shí)施例因此有利在于通過使具有專用核設(shè)置的虛擬核空閑來避免壓縮其它虛擬核(普通核)的處理性能。另外,根據(jù)這一實(shí)施例,在多個(gè)虛擬核設(shè)置為專用核之后,停止這些核中的一個(gè)或者多個(gè)核并且將該一個(gè)或者多個(gè)核置于待命,并且如果由于故障等而停止尚未被停止的具有專用核設(shè)置的虛擬核,則可以通過向被置于待命的具有專用核設(shè)置的虛擬核傳輸核間中斷并且從待命狀態(tài)恢復(fù)虛擬核來高速地對虛擬核進(jìn)行故障轉(zhuǎn)移(failover)。
[0140]實(shí)施例4
[0141]接著將作為前述第二實(shí)施例的修改描述第四實(shí)施例。這一實(shí)施例的特征在于關(guān)于針對確定控制器的請求傳輸程序207a請求來自外部系統(tǒng)控制器10b的處理完成的要求進(jìn)行判決并且在于選擇用于實(shí)現(xiàn)這一要求的請求系統(tǒng)。由于這些特性,根據(jù)第二實(shí)施例向MPU存儲(chǔ)器的本地存儲(chǔ)器11 (圖16)添加用于確定要求的表和用于選擇用于實(shí)現(xiàn)這些要求的請求系統(tǒng)的表。前者的示例被稱為要求系統(tǒng)要求表,并且后者的示例稱為請求系統(tǒng)可用性表。
[0142]圖21是請求系統(tǒng)要求表114的示例。請求系統(tǒng)要求表114由請求傳輸程序207a指明。該表包括由請求傳輸程序207a指明的條目,這些條目用于記錄外部系統(tǒng)控制器10b的訪問目的地1140、用于訪問目的地的訪問類型1141和在外部系統(tǒng)控制器的MPU 1lb對訪問目的地執(zhí)行與訪問類型有關(guān)的處理并且向請求傳輸源控制器10a發(fā)送回關(guān)于完成該處理的響應(yīng)之前的預(yù)計(jì)時(shí)間(預(yù)計(jì)響應(yīng)時(shí)間)1142。
[0143]圖22A是請求系統(tǒng)可用性表115的第一示例。請求系統(tǒng)可用性表115包括用于定義請求傳輸程序207a將向其傳輸請求信息的外部系統(tǒng)控制器10b的核的請求目的地字段1153、用于定義來自請求傳輸程序的通信類型的請求系統(tǒng)字段1150、用于定義請求目的地核是否能夠處理請求的可用性字段1151和用于定義在請求源控制器向請求目的地控制器傳輸請求信息并且請求目的地核處理請求信息之后向請求源控制器發(fā)送回響應(yīng)之前的時(shí)間的預(yù)計(jì)響應(yīng)時(shí)間字段1152。預(yù)計(jì)響應(yīng)時(shí)間根據(jù)在每個(gè)核上的負(fù)荷波動(dòng)。配置管理程序連續(xù)地監(jiān)視在每個(gè)核上的負(fù)荷并且根據(jù)要求來更新預(yù)計(jì)響應(yīng)時(shí)間。
[0144]圖22B是請求系統(tǒng)可用性表115的第二示例。核O和核I是專用核。因此,向核O或者核I傳輸?shù)恼埱鬅o需是中斷請求,而是可以是對于普通處理的請求。在專用核負(fù)荷低時(shí),核O或者核I的預(yù)計(jì)響應(yīng)時(shí)間低。因此,向?qū)S煤?比如核O或者核I)傳輸對于普通處理的請求一般比向普通核(比如核2)傳輸中斷請求更有利。然而,在專用核(比如核O或者核I)的負(fù)荷變成高時(shí),預(yù)計(jì)響應(yīng)時(shí)間可以是向普通核(比如核2)傳輸中斷請求比向?qū)S煤?比如核O或者核I)傳輸對于普通處理的請求更短。
[0145]圖23是根據(jù)這一實(shí)施例的請求傳輸程序207的流程圖。與圖5和圖19的前述流程圖的不同在于步驟S1203和后續(xù)步驟被步驟S1280至S1283替換。在跟隨步驟S1202的步驟S1280中,請求傳輸程序207引用請求系統(tǒng)要求表114以獲取硬件1140(該硬件是訪問目的地)和預(yù)計(jì)響應(yīng)時(shí)間1142作為與訪問類型對應(yīng)的要求。
[0146]要求傳輸程序207然后引用請求系統(tǒng)可用性表115(步驟S1281)并且選擇滿足要求1142(預(yù)計(jì)響應(yīng)時(shí)間)的、在請求目的地1153、請求系統(tǒng)1150和可用性1151的屬性中的每個(gè)屬性的組合(步驟S1282)。為了滿足要求,在要求系統(tǒng)可用性表115中的預(yù)計(jì)響應(yīng)時(shí)間字段1152中包含的預(yù)計(jì)響應(yīng)時(shí)間等于或者少于在步驟S1280中獲取的用于訪問類型的預(yù)計(jì)響應(yīng)時(shí)間1142。請求傳輸程序207a根據(jù)基于請求系統(tǒng)可用性表115選擇的請求系統(tǒng)(也就是具有請求目的地核1153的通信系統(tǒng)(中斷通信或者普通通信)1150)、由于向外部系統(tǒng)的請求而執(zhí)行訪問(步驟S1283)。
[0147]專用核計(jì)數(shù)調(diào)整程序220通過確定用于每個(gè)核的負(fù)荷狀態(tài)來更新請求系統(tǒng)可用性表115。如果普通核由于主機(jī)I/O處理而具有高負(fù)荷,則用于普通通信系統(tǒng)的長預(yù)計(jì)響應(yīng)時(shí)間被設(shè)置為長。同時(shí),如果負(fù)荷為低,則用于普通通信系統(tǒng)的預(yù)計(jì)響應(yīng)時(shí)間被設(shè)置為短。在后一種情況下,中斷通信系統(tǒng)的預(yù)計(jì)響應(yīng)時(shí)間比普通通信系統(tǒng)的預(yù)計(jì)響應(yīng)時(shí)間更短,而在后一種情況下相反。例如,根據(jù)排隊(duì)模型等確定普通通信系統(tǒng)的預(yù)計(jì)響應(yīng)時(shí)間。
[0148]在圖21中,由于第一控制器10a對第二控制器10b的共享存儲(chǔ)器12b的訪問(也就是讀取、寫入(非標(biāo)示(non-posted)寫入、原子更新))的完成響應(yīng)時(shí)間為10微秒,所以在下文中,支持向第一控制器10a的響應(yīng)的系統(tǒng)根據(jù)圖22A、圖22B被稱為用于第二控制器10b的處理器1lb的非核選擇普通通信系統(tǒng)或者核I普通通信系統(tǒng)。專用核的預(yù)計(jì)響應(yīng)時(shí)間無需總是比普通核更短,并且中斷系統(tǒng)的通信無需總是比普通系統(tǒng)的通信更短。使用哪個(gè)核以及哪個(gè)通信系統(tǒng)能夠滿足預(yù)計(jì)響應(yīng)時(shí)間根據(jù)核負(fù)荷和I/O處理負(fù)荷而變化。在非核選擇普通通信系統(tǒng)中,未指明請求目的地核,并且多個(gè)核中的任何一個(gè)或者多個(gè)核可以接收請求。將通信區(qū)域劃分成用于個(gè)別核的通信區(qū)域,并且通信區(qū)域由核共享。在向用于個(gè)別核的通信區(qū)域?qū)懭胝埱髸r(shí),設(shè)置核I普通通信系統(tǒng)。在向由核共享的通信區(qū)域?qū)懭胝埱髸r(shí),設(shè)置非核選擇普通通信系統(tǒng)。在設(shè)置非核選擇普通通信系統(tǒng)時(shí),響應(yīng)時(shí)間變成一般比在指明請求目的地核時(shí)更短,因?yàn)橐呀?jīng)完成I/O處理的核接收請求。在這樣的情況下,需要獨(dú)占控制以用于核從通信區(qū)域讀取請求。
[0149]實(shí)施例5
[0150]現(xiàn)在將描述第五實(shí)施例,該第五實(shí)施例是第四實(shí)施例的修改。在第五實(shí)施例中,示出了如下示例,在該示例中,用戶判決對于I/o處理的性能要求并且相應(yīng)地校正用于通信的預(yù)計(jì)響應(yīng)時(shí)間。示出了如下情況,其中對于I/O處理的性能要求是響應(yīng)時(shí)間(在主機(jī)發(fā)布I/o命令之后直至從存儲(chǔ)系統(tǒng)發(fā)送回響應(yīng)的時(shí)間)。
[0151]圖24是卷性能要求表116的配置示例,在該卷性能要求表116中為每個(gè)卷判決前述性能要求。向MPU存儲(chǔ)器102的本地存儲(chǔ)器11添加卷性能要求表。卷性能要求表116包括多個(gè)條目,這些條目包括卷編號(hào)字段1161和預(yù)計(jì)通信響應(yīng)時(shí)間校正值字段1162。卷編號(hào)字段1161存儲(chǔ)用于標(biāo)識(shí)在存儲(chǔ)系統(tǒng)中的卷的編號(hào),并且預(yù)計(jì)通信響應(yīng)時(shí)間校正值字段1162支持由于對卷的I/O請求而在通信中校正在選擇通信系統(tǒng)時(shí)使用的要求。
[0152]圖25示出了讓用戶能夠選擇對于卷的I/O性能要求的輸入屏幕。在管理終端3上顯示這一屏幕,并且用戶經(jīng)由這一屏幕輸入對于每個(gè)卷的性能要求。屏幕顯示用于定義性能要求的性能要求輸入表300。性能要求輸入表300顯示如下條目,這些條目包括兩個(gè)輸入字段,即卷,編號(hào)字段3001和預(yù)計(jì)I/O響應(yīng)時(shí)間字段3002。
[0153]用戶輸入用于卷(確定在每個(gè)字段中對于這些卷的要求)的卷編號(hào)3001并且為用于卷的I/o響應(yīng)輸入預(yù)計(jì)響應(yīng)時(shí)間作為預(yù)計(jì)I/O響應(yīng)時(shí)間3002。在接收輸入時(shí),管理終端3向存儲(chǔ)系統(tǒng)4輸出信息。存儲(chǔ)配置管理程序201向卷性能要求表116添加新條目、輸入向添加的條目的卷編號(hào)字段輸入的卷編號(hào)并且在預(yù)計(jì)通信響應(yīng)時(shí)間校正值字段中存儲(chǔ)從這樣輸入的預(yù)計(jì)I/o響應(yīng)時(shí)間確定的校正值。
[0154]發(fā)現(xiàn)校正值的方式例如是通過確定標(biāo)準(zhǔn)I/O響應(yīng)時(shí)間,并且用于標(biāo)準(zhǔn)I/O響應(yīng)時(shí)間的預(yù)計(jì)I/o響應(yīng)時(shí)間的比值可以是預(yù)計(jì)通信響應(yīng)時(shí)間校正值。因此,對于具有短預(yù)計(jì)I/O響應(yīng)時(shí)間的卷,選擇與具有長預(yù)計(jì)I/O響應(yīng)時(shí)間的卷比較具有短通信響應(yīng)時(shí)間的請求系統(tǒng)。在第四實(shí)施例中描述了用于請求短通信響應(yīng)時(shí)間的系統(tǒng)。因而,如果有對具有不同性能要求的卷的I/o請求的混合,則使對具有嚴(yán)格性能要求的卷的I/O處理優(yōu)先,從而使得可以在總體上滿足每個(gè)卷的性能要求。
[0155]在圖26中示出了用于校正預(yù)計(jì)通信響應(yīng)時(shí)間的具體過程。圖26是圖23的修改。不同首先在于在調(diào)用請求傳輸程序207時(shí),從基本I/O程序202 (該基本I/O程序202是調(diào)用器程序)向請求傳輸程序207傳遞如下信息,該信息指示調(diào)用與對特定卷的I/O處理關(guān)聯(lián)。這一信息包括卷編號(hào)。這被稱為目標(biāo)卷編號(hào)。另外,除了圖23的流程之外還在步驟1280之前添加步驟S1290。
[0156]在步驟S1290中,[請求傳輸程序207]引用卷性能要求表116以獲取在用于與目標(biāo)卷編號(hào)對應(yīng)的條目的預(yù)計(jì)通信響應(yīng)時(shí)間校正值字段1162中存儲(chǔ)的值。這一個(gè)值然后通過與在后繼步驟S1280中獲取的預(yù)計(jì)響應(yīng)時(shí)間值相乘被校正。通過取校正的預(yù)計(jì)響應(yīng)時(shí)間值作為通信系統(tǒng)要求并且執(zhí)行后繼步驟1281的處理和后續(xù)處理,可以根據(jù)每個(gè)卷的性能要求來選擇通信系統(tǒng)。作為結(jié)果,可以選擇用于通信響應(yīng)時(shí)間的預(yù)計(jì)值為小的通信系統(tǒng)以用于與被請求I/O響應(yīng)性能的卷的I/O處理關(guān)聯(lián)的通信,并且可以滿足對于該卷的I/O性能要求。
[0157]注意,在這一實(shí)施例中,示出了如下示例,在該示例中借助一種對根據(jù)對于每個(gè)卷的I/o性能要求而確定的系數(shù)進(jìn)行積分的方法來校正預(yù)計(jì)響應(yīng)時(shí)間,但是也可以根據(jù)預(yù)定預(yù)計(jì)通信響應(yīng)時(shí)間是否降至預(yù)定閾值以下來將例如用戶輸入的對于每個(gè)卷的I/o性能要求校正成該時(shí)間。另外,雖然在這一實(shí)施例中為每個(gè)卷判決性能要求,但是也可以例如為發(fā)布I/o的每個(gè)主機(jī)確定性能要求。此外,取代使用響應(yīng)時(shí)間作為I/O性能要求,性能要求可以由吞吐量性能(對于每個(gè)時(shí)間單位的I/o命令數(shù)目或者向主機(jī)發(fā)送回響應(yīng)的數(shù)據(jù)量)確定。在這一情況下,請求的吞吐量性能的值越高,設(shè)置的用于與I/o處理關(guān)聯(lián)的通信的預(yù)計(jì)響應(yīng)時(shí)間就越短。
[0158]注意,本發(fā)明不限于前述實(shí)施例,而是包括各種修改。例如,具體描述前述實(shí)施例以便以易于理解的方式描述本發(fā)明,但是本發(fā)明未必限于包括描述的所有配置。另外,某個(gè)實(shí)施例的配置中的一些配置也可以被來自其它實(shí)施例的配置替換,并且也可以向某個(gè)實(shí)施例的配置添加來自其它實(shí)施例的配置。另外,其它配置也可以被添加到每個(gè)實(shí)施例的配置、從每個(gè)實(shí)施例的配置被刪除或者替換每個(gè)實(shí)施例的配置中的一些配置。另外,也可以例如借助LSI設(shè)計(jì)等通過硬件實(shí)施前述配置、功能、處理單元和處理裝置等中的一些或者所有配置、功能、處理單元和處理裝置等。另外,也可以通過軟件實(shí)現(xiàn)配置和功能等中的每個(gè)配置和功能等作為處理器解譯和執(zhí)行程序的結(jié)果,這些程序?qū)崿F(xiàn)相應(yīng)功能。此外,可以示出視為說明書必需的控制接線和連接接線,但是出于制造目的而未必需要示出所有接線。在現(xiàn)實(shí)中,也可以考慮人工地連接幾乎所有配置。
[0159]在第一、第二、第三、第四和第五實(shí)施例中將來自控制器的處理器的請求被寫入到的通信區(qū)域劃分成中斷通信區(qū)域和普通通信區(qū)域。然而,不是必須劃分并且因此可以共享通信區(qū)域。因此,基于用于優(yōu)先的處理的中斷信號(hào)是否存在,可以在優(yōu)先的處理與非優(yōu)先的處理(普通處理)之間切換處理。
【權(quán)利要求】
1.一種控制在主機(jī)與存儲(chǔ)區(qū)域之間的數(shù)據(jù)傳送的存儲(chǔ)系統(tǒng),包括: 第一控制器; 第二控制器; 所述第一控制器的第一處理器; 所述第二控制器的第二處理器;以及 連接所述第一處理器和所述第二處理器的總線, 其中所述第一處理器向所述第二處理器傳輸將由所述第二處理器處理的請求信息, 其中所述第二處理器處理所述請求信息并且向所述第一處理器發(fā)送回響應(yīng), 其中所述第一處理器確定由所述第一處理器對所述請求信息的處理是否將被優(yōu)先并且向所述第二處理器傳輸所述請求信息,并且 其中所述第二處理器通過在針對其的處理將被優(yōu)先的請求信息與針對其的處理將不被優(yōu)先的請求信息之間區(qū)分,來獲取所述請求信息。
2.根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng), 其中,在確定所述請求信息是針對其的處理將被優(yōu)先的信息時(shí),所述第一處理器向所述第二控制器的第一區(qū)域提供所述請求信息, 其中,在確定所述請求信息是針對其的處理無需被優(yōu)先的信息時(shí),所述第一處理器向所述第二控制器的第二區(qū)域提供所述請求信息,并且 其中所述第二處理器用比所述第二區(qū)域更高的優(yōu)先級(jí)處理所述第一區(qū)域。
3.根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng), 其中所述第一區(qū)域是與用于對來自所述主機(jī)的I/o的處理的中斷處理有關(guān)的信息被記錄在其中的第一記錄單元, 其中所述第二區(qū)域是與用于對來自所述主機(jī)的I/o的處理的非中斷處理有關(guān)的信息被記錄在其中的第二記錄單元, 其中,在從所述第一處理器接收到針對其的處理將被優(yōu)先的請求信息已經(jīng)被傳輸?shù)剿龅谝挥涗泦卧耐ㄖ獣r(shí),所述第二處理器使對所述請求信息的所述處理優(yōu)先于對來自所述主機(jī)的I/o的所述處理。
4.根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng), 其中針對其的處理將被優(yōu)先的所述請求信息是用于訪問被共享信息的信息,所述被共享信息被記錄在所述第二控制器的存儲(chǔ)器中并且由所述第一控制器和所述第二控制器共享。
5.根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng), 其中針對其的處理將不被優(yōu)先的所述請求信息是用于出于數(shù)據(jù)傳送的目的而請求啟動(dòng)所述第二控制器的硬件資源的信息。
6.根據(jù)權(quán)利要求4所述的存儲(chǔ)系統(tǒng), 其中,在從所述主機(jī)接收到I/O時(shí),所述第一處理器確定所述第二控制器的所述被共享信息是否已經(jīng)被更新,并且在確定所述被共享信息已經(jīng)被更新時(shí),所述第一處理器向所述第二處理器傳輸用于讀取所述第二控制器的所述被共享信息的請求信息。
7.根據(jù)權(quán)利要求3所述的存儲(chǔ)系統(tǒng), 其中,在所述請求信息被記錄于所述第一區(qū)域中并且所述請求信息被所述第二處理器處理時(shí),所述第一處理器在預(yù)定數(shù)目或者更多的請求信息項(xiàng)被記錄于所述第一區(qū)域中時(shí)向所述第二處理器傳輸中斷請求,并且其中,在接收到所述中斷請求時(shí),所述第二處理器集體地處理在所述第一區(qū)域中記錄的所述預(yù)定數(shù)目或者更多的請求信息。
8.根據(jù)權(quán)利要求2所述的存儲(chǔ)系統(tǒng), 其中所述第二處理器由多個(gè)核配置, 其中所述第一區(qū)域是所述多個(gè)核之中的一個(gè)或者多個(gè)專用核, 其中所述第二區(qū)域是所述多個(gè)核之中的、除了所述專用核之外的普通核, 其中所述專用核使對所述請求信息的所述處理優(yōu)先于對來自所述主機(jī)的I/O的所述處理, 其中所述普通核與對來自所述主機(jī)的I/o的處理一起執(zhí)行對所述請求信息的處理,并且 其中所述第一處理器通過使所述專用核優(yōu)先于所述普通核來向所述專用核傳輸針對其的處理將被優(yōu)先的所述請求信息。
9.根據(jù)權(quán)利要求8所述的存儲(chǔ)系統(tǒng), 其中所述第二處理器根據(jù)所述多個(gè)核的負(fù)荷狀態(tài)來改變所述多個(gè)核之中的所述專用核和所述普通核的比率。
10.根據(jù)權(quán)利要求8所述的存儲(chǔ)系統(tǒng), 其中,如果所述專用核上的負(fù)荷高,則所述第一處理器使得所述普通核將對所述請求信息的所述處理優(yōu)先于對來自所述主機(jī)的I/o的所述處理。
11.根據(jù)權(quán)利要求8所述的存儲(chǔ)系統(tǒng), 其中多個(gè)虛擬核能被配置于所述第二處理器中,并且所述多個(gè)虛擬核中的一個(gè)或者多個(gè)虛擬核借助來自所述第一處理器的請求而被從所述普通核改變成所述專用核。
12.根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng), 其中所述第一處理器根據(jù)所述第二控制器的訪問目的地硬件和訪問類型來確定所述請求信息被傳輸?shù)降乃龅诙幚砥鞯乃桧憫?yīng)時(shí)間,并且 其中所述第一處理器選擇用于向所述第二處理器傳輸所述請求信息的傳輸格式以便滿足該響應(yīng)時(shí)間。
13.根據(jù)權(quán)利要求12所述的存儲(chǔ)系統(tǒng), 其中所述第一處理器能夠校正所述第二處理器的所述所需響應(yīng)時(shí)間。
14.一種使其中第一控制器的第一處理器和第二控制器的第二處理器通過總線被連接的存儲(chǔ)系統(tǒng)能夠控制在主機(jī)與存儲(chǔ)區(qū)域之間的數(shù)據(jù)傳送的控制方法,包括: 所述第一處理器向所述第二處理器傳輸將由所述第二處理器處理的請求信息, 所述第二處理器處理所述請求信息并且向所述第一處理器發(fā)送回響應(yīng), 所述第一處理器確定由所述第一處理器對所述請求信息的處理是否將被優(yōu)先,并且向所述第二處理器傳輸所述請求信息,并且 所述第二處理器通過在針對其的處理將被優(yōu)先的請求信息與針對其的處理將不被優(yōu)先的請求信息之間區(qū)分,來獲取所述請求信息。
【文檔編號(hào)】G06F3/06GK104471523SQ201280072911
【公開日】2015年3月25日 申請日期:2012年5月18日 優(yōu)先權(quán)日:2012年5月18日
【發(fā)明者】工藤晉太郎, 野中裕介 申請人:株式會(huì)社日立制作所