專利名稱:數(shù)據(jù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種進(jìn)行數(shù)據(jù)傳輸?shù)臄?shù)據(jù)處理方法,特別涉及在1個(gè)系統(tǒng)上 運(yùn)行多個(gè)OS,使用1個(gè)通道適配器同時(shí)進(jìn)行對(duì)多個(gè)OS的處理的數(shù)據(jù)處理方 法。
背景技術(shù):
到目前為止,主機(jī)雖然支持在1個(gè)系統(tǒng)中在控制程序的控制下使多個(gè)OS 運(yùn)行的LPAR (Logical Partition)功能,但最近不僅是主機(jī),開(kāi)放服務(wù)器也開(kāi) 始支持該LPAR功能。當(dāng)使用開(kāi)放服務(wù)器支持該LPAR功能時(shí),把進(jìn)行輸入/ 輸出處理的通道適配器插入服務(wù)器的插槽,作為與主處理器相連接的業(yè)界標(biāo) 準(zhǔn)規(guī)格的單元,使用由PCI —SIG制定的PCI (Peripheral Component Interchange)總線的結(jié)構(gòu)被廣泛應(yīng)用。當(dāng)使用PCI總線時(shí),對(duì)于像通道適配 器那樣的1個(gè)設(shè)備,包含標(biāo)準(zhǔn)地具有的PCI配置寄存器,并只保持1個(gè)用于 控制該設(shè)備的控制寄存器,因此由多個(gè)OS共用較困難。
在特開(kāi)2002—41306中記述了作為如上述那樣的支持LPAR功能的系統(tǒng) 的例子。雖然在1個(gè)系統(tǒng)上可以運(yùn)行多個(gè)OS,但是對(duì)于在接口中具有PCI 總線的PCI 1/0適配器,無(wú)法實(shí)現(xiàn)多個(gè)OS的共用,分別向各個(gè)PCI 1/0適 配器分配l個(gè)OS。
作為其他的例子,在特開(kāi)2002—99437中記述了通過(guò)主機(jī)等實(shí)現(xiàn)LPAR 功能。圖10表示其概要。在主機(jī)中,為了控制像PCI 1/0設(shè)備那樣的LAN 適配器1003,在安裝該LAN適配器的LAN組件1000內(nèi)設(shè)置控制器1001和 本地存儲(chǔ)器,由此來(lái)實(shí)現(xiàn)多個(gè)OS的共用。在控制器1001內(nèi)該LAN適配器 用驅(qū)動(dòng)器1005進(jìn)行動(dòng)作??刂破?001與PCI總線或系統(tǒng)固有規(guī)格總線1007連接,通過(guò)PCI總線1004和LAN適配器1003連接。
在圖11對(duì)安裝進(jìn)行了詳細(xì)說(shuō)明。當(dāng)該控制器1001接收來(lái)自O(shè)S1的輸入 /輸出起動(dòng)時(shí),對(duì)于系統(tǒng)存儲(chǔ)器上的傳輸數(shù)據(jù)1105,在LAN組件內(nèi)的本地存 儲(chǔ)器1002中緩沖對(duì)應(yīng)該0S1的傳輸數(shù)據(jù)1105,另外,對(duì)于該OS1的輸入/ 輸出處理控制數(shù)據(jù)1103,在該本地存儲(chǔ)器1002內(nèi)制作用于LAN適配器的輸 入/輸出處理控制數(shù)據(jù)。同樣,在本地存儲(chǔ)器1002內(nèi)制作與OS2所起動(dòng)的輸 入/輸出處理相對(duì)的控制數(shù)據(jù)和傳輸數(shù)據(jù)。該LAN適配器1003不是訪問(wèn)系統(tǒng) 存儲(chǔ)器,而是通過(guò)訪問(wèn)該本地存儲(chǔ)器1002進(jìn)行數(shù)據(jù)傳輸。因?yàn)樵贚AN組件 上的本地存儲(chǔ)器內(nèi)重新制作控制數(shù)據(jù),并進(jìn)行傳輸數(shù)據(jù)的緩沖,所以對(duì)性能 產(chǎn)生影響,此外也提高了開(kāi)發(fā)成本。
雖然在開(kāi)放服務(wù)器中己經(jīng)開(kāi)始支持LPAR功能,但是因?yàn)榭梢园惭b的插 槽數(shù)有限制,所以需要由多個(gè)OS共用1個(gè)通道適配器。
另外,為了抑制成本,還期待著不使用由硬件構(gòu)成的控制器、本地存儲(chǔ) 器來(lái)實(shí)現(xiàn)通道適配器的共用。
發(fā)明內(nèi)容
在使用上述現(xiàn)有技術(shù)的情況下,未實(shí)現(xiàn)多個(gè)OS對(duì)具有由開(kāi)放服務(wù)器所 支持的PCI總線接口的PC1 1/0設(shè)備的共用。另外,雖然在主機(jī)中實(shí)現(xiàn)了多 個(gè)OS對(duì)PC1 I/O設(shè)備的共用,但要在組件上設(shè)置數(shù)據(jù)緩沖區(qū)和輸入/輸出處 理控制數(shù)據(jù)用的本地存儲(chǔ)器、以及該數(shù)據(jù)緩沖區(qū)和輸入/輸出處理控制數(shù)據(jù)的 控制器。由于使用控制器、本地存儲(chǔ)器,導(dǎo)致性能惡化以及成本的增大。
課題l
對(duì)應(yīng)PCI那樣的標(biāo)準(zhǔn)規(guī)格的總線,由多個(gè)OS共用1個(gè)通道適配器。 課題2
對(duì)于具有PCI總線接口的設(shè)備,可以不設(shè)置由硬件構(gòu)成的控制器、本地 存儲(chǔ)器,由多個(gè)OS共用l個(gè)通道適配器。
一種數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法,該數(shù)據(jù)處理系統(tǒng)在LPAR控制單元 的控制下在構(gòu)筑了多個(gè)LPAR的各LPAR中運(yùn)行OS,并具有發(fā)送/接收數(shù)據(jù) 的通道適配器,該數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法是在所述各個(gè)LPAR和所述 通道適配器之間使用各自具有輸入/輸出處理控制數(shù)據(jù)標(biāo)識(shí)符的輸入/輸出處
5理控制數(shù)據(jù)進(jìn)行輸入/輸出處理的數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法,具備構(gòu)成信
息,該構(gòu)成信息對(duì)應(yīng)所述各個(gè)LPAR排他地定義了各個(gè)LPAR的OS可以使用 的輸入/輸出處理控制數(shù)據(jù)的標(biāo)識(shí)符;所述通道適配器可以處理多個(gè)輸入/輸出 處理控制數(shù)據(jù);所述各個(gè)LPAR的OS通過(guò)使用與所述構(gòu)成信息中定義的可 以使用的標(biāo)識(shí)符對(duì)應(yīng)的輸入/輸出處理控制數(shù)據(jù),通過(guò)1個(gè)所述通道適配器多 個(gè)LPAR的各OS分別控制標(biāo)識(shí)符不同的輸入/輸出處理控制數(shù)據(jù),無(wú)需在不 同的LPAR之間共用與所述通道適配器相對(duì)的輸入/輸出處理控制數(shù)據(jù)而進(jìn)行 輸入/輸出處理。
另外, 一種數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法,其是在所述通道驅(qū)動(dòng)器與所 述通道適配器之間的接口指示所述輸入/輸出處理控制數(shù)據(jù)的地址是虛擬地 址,為了將該虛擬地址變換為物理地址而使用地址變換表,由此來(lái)進(jìn)行輸入/ 輸出處理的數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法;所述通道驅(qū)動(dòng)器根據(jù)從所述LPAR 控制單元得到的虛擬計(jì)算機(jī)號(hào)碼和從所述構(gòu)成信息得到的可以使用的輸入/輸出 處理控制數(shù)據(jù)的標(biāo)識(shí)符,制作與該可以使用的輸入/輸出處理控制數(shù)據(jù)相對(duì)的地 址變換表;該數(shù)據(jù)處理系統(tǒng)具有將各LPAR的通道驅(qū)動(dòng)器制成的多個(gè)該地址 變換表制作成1個(gè)虛擬地址變換表的單元;所述通道適配器使用所述虛擬地 址變換表,處理多個(gè)LPAR上的輸入/輸出處理控制數(shù)據(jù),由此不進(jìn)行在各 LPAR上生成的輸入/輸出處理控制數(shù)據(jù)的變更,所述通道適配器對(duì)多個(gè)OS 進(jìn)行輸入/輸出處理。
根據(jù)本發(fā)明,可以提供能夠同時(shí)執(zhí)行來(lái)自多個(gè)OS的輸入/輸出(I/O)處
理的通道適配器。
圖1是使用了本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)圖。
圖2是表示數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)例的圖。
圖3是表示通道裝置內(nèi)的通道控制寄存器的內(nèi)容的圖。
圖4是表示作為輸入/輸出處理控制數(shù)據(jù)的隊(duì)列對(duì)(Queue Pair)、完成隊(duì)
列(CompletionQueue),地址變換表的圖。
圖5是作為在本發(fā)明的一個(gè)實(shí)施例中使用的用于I/O處理的數(shù)據(jù)信息的
發(fā)送隊(duì)列的圖。圖6是數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)圖。
圖7是表示LPAR號(hào)碼和可以使用的QP、 CQ的對(duì)應(yīng)的表。 圖8是表示各OS制作的TPT和多個(gè)TPT歸納為1個(gè)的例子的圖。 圖9是使用了本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)圖。 圖IO表示現(xiàn)有方法的一個(gè)例子的概要。 圖11表示現(xiàn)有方法的一個(gè)例子的詳細(xì)內(nèi)容。
具體實(shí)施例方式
無(wú)需用于控制PC1 I/O設(shè)備的控制器和本地存儲(chǔ)器,通過(guò)軟件實(shí)現(xiàn)由多 個(gè)0S對(duì)PC1 1/0設(shè)備的共用。
作為開(kāi)放服務(wù)器支持的業(yè)界標(biāo)準(zhǔn)規(guī)格的通道適配器,存在由ANSI (American National Standards Institute)制定規(guī)格的光纖通道,和由IBTA (InfiniBand Trade Association )制定規(guī)格的InfiniBand等。
在此,作為用于進(jìn)行輸入/輸出處理的輸入/輸出處理控制數(shù)據(jù),使用由 InfiniBand等使用的發(fā)送隊(duì)列(Send Queue)和接收隊(duì)列(Receive Queue)構(gòu) 成的隊(duì)列對(duì)、完成隊(duì)列,然后,假定使用虛擬地址、和將該虛擬地址變換為 物理地址的地址變換表(TPT)的通道適配器。
首先,對(duì)輸入/輸出處理的概要進(jìn)行說(shuō)明。
圖2是表示數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)例。存儲(chǔ)器訪問(wèn)控制芯片203主要控制 處理器204、 205、或?qū)?lái)自通道適配器206的主存儲(chǔ)(MS) 200的存儲(chǔ)器訪 問(wèn),存儲(chǔ)器訪問(wèn)控制芯片203與通道適配器206通過(guò)PCI總線連接,存儲(chǔ)器 訪問(wèn)控制芯片203與處理器204、 205通過(guò)系統(tǒng)固有規(guī)格的主機(jī)總線相連接。 通道適配器206具有1個(gè)接口 ,通過(guò)開(kāi)關(guān)207與I/O設(shè)備208連接。支持LPAR 功能的該數(shù)據(jù)處理系統(tǒng)將1個(gè)MS200例如向各個(gè)LPAR各分配2MB的存儲(chǔ) 器,各LPAR上的OS使用所分配的該2MB的存儲(chǔ)器進(jìn)行操作。
該通道適配器206對(duì)于該數(shù)據(jù)處理系統(tǒng)通過(guò)PCI總線連接,作為PCI總 線連接的設(shè)備包含標(biāo)準(zhǔn)具有的PCI配置寄存器,作為用于控制該通道適配器 的控制寄存器具有通道控制寄存器。雖然在圖3中表示了通道控制寄存器的 內(nèi)容,但詳細(xì)內(nèi)容在后面進(jìn)行敘述。
然后,對(duì)用于進(jìn)行輸入/輸出處理(I/O處理)的軟件和硬件的接口進(jìn)行敘述。
各OS使用由發(fā)送隊(duì)列和接收隊(duì)列構(gòu)成的隊(duì)列對(duì)(QP)、以及對(duì)己結(jié)束處
理的QP標(biāo)識(shí)符進(jìn)行排隊(duì)的完成隊(duì)列(CQ)進(jìn)行數(shù)據(jù)傳輸,該QP的制作、 CQ的控制、和對(duì)通道適配器的數(shù)據(jù)傳輸處理的起動(dòng)等處理,由OS內(nèi)的通道 驅(qū)動(dòng)器進(jìn)行。圖4表示QP與CQ的概要。發(fā)送隊(duì)列以及接收隊(duì)列分別由包含 指示數(shù)據(jù)緩沖區(qū)的地址的描述符(Descriptor)和數(shù)據(jù)緩沖區(qū)構(gòu)成。當(dāng)發(fā)送數(shù) 據(jù)時(shí),在發(fā)送隊(duì)列的描述符401中設(shè)置要發(fā)送的數(shù)據(jù)緩沖區(qū)403的物理地址。 當(dāng)接收數(shù)據(jù)時(shí),在接收隊(duì)列的描述符404中設(shè)置存儲(chǔ)接收數(shù)據(jù)的數(shù)據(jù)緩沖區(qū) 405的物理地址。各個(gè)隊(duì)列對(duì)具有標(biāo)識(shí)符,在圖4的例子中,具有弁100(QP100) 的標(biāo)識(shí)符,通道適配器可以同時(shí)對(duì)多個(gè)QP進(jìn)行處理。
另外,指示各描述符的物理地址保存在地址變換表(TPT) 406內(nèi)。TPT 是1個(gè)物理上連接的區(qū)域,保存該通道適配器使用的全部QP的發(fā)送隊(duì)列用 描述符地址、以及接收隊(duì)列用描述符地址。在此,TPT內(nèi)的各發(fā)送隊(duì)列用、 接收隊(duì)列用描述符地址由16位字節(jié)構(gòu)成,在最上位比特值為"1"時(shí),表示 該描述符地址有效,下位8位字節(jié)表示該描述符的物理地址。
CQ也分別具有標(biāo)識(shí)符,包含適配器已結(jié)束處理的QP的標(biāo)識(shí)符、以及包 含是對(duì)發(fā)送隊(duì)列或接收隊(duì)列的哪一個(gè)結(jié)束了處理的信息。在此,CQ的各表列 值由16位字節(jié)構(gòu)成,在上位8字節(jié)的最上位比特為"1"時(shí),表示該表列值 有效,下位8字節(jié)中的上位4字節(jié)表示已結(jié)束處理的QP標(biāo)識(shí)符,在該下位8 字節(jié)中的下位4字節(jié)的最上位比特為"1"時(shí),發(fā)送隊(duì)列為"0"時(shí),表示結(jié)
束了對(duì)接收隊(duì)列的處理。
在圖3的通道控制寄存器300內(nèi)定義的TPT基址寄存器303的值指示地 址變更表(TPT) 406的起始地址(物理地址),由通道驅(qū)動(dòng)器進(jìn)行設(shè)置。通 道適配器使用TPT基址寄存器303的值,進(jìn)行向地址變換表(TPT) 406的 訪問(wèn)。
圖5表示發(fā)送隊(duì)列的詳細(xì)數(shù)據(jù)結(jié)構(gòu)。在圖5中,DB-AD501由表示數(shù)據(jù) 緩沖區(qū)地址區(qū)域的起始地址(物理地址)的8位字節(jié)的區(qū)域構(gòu)成,F(xiàn)LAG503 包括表示I/O處理是正常結(jié)束了還是因錯(cuò)誤結(jié)束了的信息、表示錯(cuò)誤發(fā)生時(shí) 的錯(cuò)誤種類的錯(cuò)誤信息、以及表示是否存在下一個(gè)應(yīng)處理的另外的描述符的信息(下一描述符(Next Descriptor)有無(wú)),而且還有包含進(jìn)行數(shù)據(jù)傳輸?shù)?對(duì)象處的QP號(hào)碼、相關(guān)聯(lián)的CQ標(biāo)識(shí)符(CQ#)和指示該CQ的物理地址。 然后,在存在應(yīng)處理的描述符的情況下,在由8位字節(jié)構(gòu)成的下一描述符502 中設(shè)置下一個(gè)描述符的起始地址(物理地址)。另外,在本實(shí)施例中,最初的 描述符500的DB-AD表示指令區(qū)域,第2個(gè)以后的描述符510的DB-AD表 示數(shù)據(jù)緩沖區(qū)506。圖5雖然表示發(fā)送隊(duì)列的例子,但是接收隊(duì)列的格式也 相同,在DB-AD指示的地方存儲(chǔ)接收數(shù)據(jù)。
作為I/O處理中的起動(dòng)方法,在此,通道驅(qū)動(dòng)器對(duì)在所述通道控制寄存 器300內(nèi)定義了的QP^寄存器302中進(jìn)行處理的QP標(biāo)識(shí)符(QP#),設(shè)置在 Send/Receive寄存器306中是表示發(fā)送隊(duì)列還是表示接收隊(duì)列的信息。另夕卜, 在TPT偏移(offset)地址寄存器304中,作為虛擬地址表示保存該QP的描 述符地址的區(qū)域,設(shè)置從TPT基址的偏移地址,通過(guò)在I/O處理使能寄存器 305中寫(xiě)入"1"向該通道適配器指示I/0起動(dòng)。
進(jìn)行I/0處理時(shí),通道驅(qū)動(dòng)器在DB—AD501設(shè)置物理地址,在DB-AD 所指示的地方設(shè)置指令區(qū)域(256字節(jié))504。除指令外,該指令區(qū)域還包括 表示進(jìn)行I/O處理的對(duì)象處端口的目標(biāo)ID、以及表示在該端口控制下存在的 設(shè)備的LUN等信息。另外,將繼指令區(qū)域的256個(gè)字節(jié)之后的256個(gè)字節(jié)的 區(qū)域作為對(duì)該指令的應(yīng)答幀進(jìn)行存儲(chǔ)的指令應(yīng)答信息區(qū)域505。
然后,設(shè)置FLAG503的信息。設(shè)置對(duì)象處的QPl以及作為與該描述符 相關(guān)聯(lián)的C(^設(shè)置CQ1,并設(shè)置該CQ1的起始地址(物理地址)。
另外,定義其他的描述符510,將該描述符510的起始地址設(shè)置在下一 描述符502,在該描述符510的DB—AD507的地址指示的地方存在用于發(fā)送 的數(shù)據(jù)緩沖區(qū)506。在數(shù)據(jù)緩沖區(qū)可變長(zhǎng)的情況下,雖然可以在FLAG509內(nèi) 包含表示數(shù)據(jù)長(zhǎng)的信息,但是,在本實(shí)施例中為了簡(jiǎn)化說(shuō)明,將數(shù)據(jù)緩沖區(qū) 的大小固定為4K字節(jié),不設(shè)置數(shù)據(jù)長(zhǎng)。如上所述,通道驅(qū)動(dòng)器制作發(fā)送隊(duì) 列,起動(dòng)I/O處理。另外,雖然在各個(gè)描述符內(nèi)定義了 FLAG,但對(duì)象處的 QP號(hào)碼、關(guān)聯(lián)的CQL以及該C(^的物理地址使起始描述符內(nèi)的FLAG的 值有效。
通道適配器當(dāng)識(shí)別來(lái)自通道驅(qū)動(dòng)器的I/O處理起動(dòng)時(shí),根據(jù)在上述通道控制寄存器內(nèi)的TPT偏移地址寄存器304中設(shè)置的偏移(虛擬地址)和地址 變換表(TPT) 406得到相應(yīng)的描述符的起始地址(物理地址)。通過(guò)使用該 物理地址,進(jìn)行相應(yīng)描述符的取出處理,根據(jù)取出的描述符信息進(jìn)行指令區(qū) 域504、以及發(fā)送用數(shù)據(jù)緩沖區(qū)506的取出。之后,向在指令區(qū)域504內(nèi)所 指定的目標(biāo)ID以及在FLAG503內(nèi)指定的對(duì)象處的QP^進(jìn)行數(shù)據(jù)傳輸。根據(jù) 協(xié)議進(jìn)行數(shù)據(jù)傳輸,在從對(duì)象處接收到表示處理結(jié)束的應(yīng)答幀時(shí),將該應(yīng)答 幀存儲(chǔ)到所述指令應(yīng)答信息區(qū)域505中。在結(jié)束了該應(yīng)答幀的存儲(chǔ)之后,根 據(jù)FLAG503內(nèi)的信息,在相應(yīng)的完成隊(duì)列#1 (CQ1) 407中設(shè)置已結(jié)束處 理的QP標(biāo)識(shí)符、表示發(fā)送隊(duì)列的信息、該表列值的有效比特,在通道控制 寄存器內(nèi)的結(jié)束CQ寄存器308中設(shè)置作為C(^的"1",對(duì)OS給予表示I/O 處理結(jié)束的I/0中斷。另外,在發(fā)生錯(cuò)誤時(shí),在FLAG503中設(shè)置錯(cuò)誤信息。 該OS內(nèi)的通道驅(qū)動(dòng)器通過(guò)識(shí)別該I/0中斷,來(lái)讀取結(jié)束CQ寄存器308,根 據(jù)相應(yīng)的CQ1的內(nèi)容,對(duì)該通道適配器進(jìn)行己起動(dòng)的I/0處理的結(jié)束處理。
以上是i/o處理的動(dòng)作概要。
圖6表示軟件和通道適配器的關(guān)系,表示使用從QP000到QP999 (604) 的1000個(gè)QP、從CQ00到CQ99 (607)的100個(gè)CQ進(jìn)行輸入/輸出處理的 例子。
然后,對(duì)本發(fā)明的一個(gè)實(shí)施例進(jìn)行說(shuō)明。
圖1是表示了本發(fā)明的特征的一個(gè)實(shí)施例。在本實(shí)施例中,對(duì)2個(gè)OS 共用1個(gè)通道適配器的情況進(jìn)行說(shuō)明。
在圖1的數(shù)據(jù)處理系統(tǒng)中,表示在LPAR控制程序101的控制下LPAR弁1 和LPAR弁2 2個(gè)LPAR開(kāi)始,在LPARW中0S1 (105)起動(dòng),在LPAR#2中 OS2 (106)起動(dòng)。
各通道驅(qū)動(dòng)器具備根據(jù)LPAR控制程序101,可以取得該通道驅(qū)動(dòng)器進(jìn) 行動(dòng)作的LPAI^的函數(shù)。在本實(shí)施例中,取得通道驅(qū)動(dòng)器112在LPAR弁1上 進(jìn)行動(dòng)作的信息,和通道驅(qū)動(dòng)器113在LPAR弁2上進(jìn)行動(dòng)作的信息。虛擬通 道驅(qū)動(dòng)器102是實(shí)際控制通道適配器100的驅(qū)動(dòng)器,在通道驅(qū)動(dòng)器112以及 通道驅(qū)動(dòng)器113進(jìn)行通道適配器100的通道控制寄存器114的訪問(wèn)等情況下, LPAR控制程序101截取用于該訪問(wèn)的函數(shù),虛擬通道驅(qū)動(dòng)器102進(jìn)行實(shí)際的通道控制寄存器114的訪問(wèn)。
如圖7所示,本數(shù)據(jù)處理系統(tǒng)把在各OS上可以使用的隊(duì)列對(duì)(QP)和
完成隊(duì)列(CQ)的標(biāo)識(shí)符和個(gè)數(shù)定義為結(jié)構(gòu)信息的一部分。在上述中,雖然 作為例子闡述了該通道適配器可以處理從QP000到QP999的1000個(gè)QP,以 及可以處理從CQ00到CQ99的100個(gè)CQ,但將這些資源分配給各個(gè)OS, 在結(jié)構(gòu)信息中進(jìn)行定義以使在不同的OS之間不共用具有相同標(biāo)識(shí)符的QP、 或CQ。在圖7的例子中,在LPARW表示從QP100可以使用100個(gè)QP,即 從QP100到QP199,另外表示CQ只可以使用1個(gè)CQ1。同樣,在LPAR弁2 表示可以從QP200使用100個(gè)QP,即從QP200到QP299,此外表示CQ只 可以使用1個(gè)CQ2。
通道驅(qū)動(dòng)器根據(jù)該通道驅(qū)動(dòng)器進(jìn)行動(dòng)作的LPAR#,使用內(nèi)核函數(shù)等從所 述結(jié)構(gòu)信息中得到上述可以使用的QP弁以及CQ卵勺信息。同樣,LPAR控制 程序也使用內(nèi)核函數(shù)等從所述結(jié)構(gòu)信息中得到在LPAW和各個(gè)LPAR所使用 的QPl以及C(^的信息。
通道驅(qū)動(dòng)器112控制QP100至QP199,對(duì)于TPT110,只設(shè)置QP100 QP199的發(fā)送隊(duì)列、以及接收隊(duì)列的描述符地址,將最上位比特的地址有效 比特設(shè)置為"1"。通道驅(qū)動(dòng)器112在TPT110設(shè)置完各個(gè)描述符的地址時(shí),將 TPT的起始地址寫(xiě)入通道控制寄存器114內(nèi)的TPT基址寄存器303中,進(jìn)而 為了通知TPT已成為有效,進(jìn)行處理以在TPT有效寄存器307中寫(xiě)入"1"。
在此,LPAR控制程序101截取通道驅(qū)動(dòng)器112將值寫(xiě)入TPT基址寄存 器303的函數(shù),虛擬通道驅(qū)動(dòng)器102將與TPT110不同的虛擬地址變換表 (VTPT)103的起始地址寫(xiě)入該通道控制寄存器114的TPT基址寄存器303。 另外,LPAR控制程序截取通道驅(qū)動(dòng)器112將值寫(xiě)入TPT有效寄存器307的 函數(shù),虛擬通道驅(qū)動(dòng)器102將TPT110的地址有效比特為"1"時(shí)的相應(yīng)地址 復(fù)制到VTPT103, LPAR控制程序101在TPT有效寄存器307中寫(xiě)入"1"。
同樣,通道驅(qū)動(dòng)器113控制QP200至QP299,對(duì)于TPTlll,只設(shè)置 QP200 QP299的發(fā)送隊(duì)列、以及接收隊(duì)列的描述符地址,將最上位比特的 地址有效比特設(shè)置為"1"。通道驅(qū)動(dòng)器113在TPTlll設(shè)置完各個(gè)描述符的地 址后,將TPT的起始地址寫(xiě)入通道控制寄存器114內(nèi)的TPT基址寄存器303中,進(jìn)而為了向TPT有效寄存器通知TPT己成為有效,進(jìn)行處理以在該TPT 有效寄存器307寫(xiě)入"1"。在此,與上述相同,LPAR控制程序101截取通 道驅(qū)動(dòng)器113將值寫(xiě)入TPT基址寄存器303的函數(shù),虛擬通道驅(qū)動(dòng)器102將 VTPT103的起始地址寫(xiě)入該通道控制寄存器114的TPT基址寄存器中。(在 已經(jīng)設(shè)置了值的情況下,寫(xiě)上相同值)另外,LPAR控制程序101截取通道 驅(qū)動(dòng)器113將值寫(xiě)入TPT有效寄存器307的所述函數(shù),虛擬通道驅(qū)動(dòng)器102 將TPTlll的地址有效比特為"1"時(shí)的相應(yīng)地址復(fù)制到VTPT103, LPAR控 制程序101在TPT有效寄存器中寫(xiě)入"1 "。
如圖8所示,通道驅(qū)動(dòng)器112在TPT110中只對(duì)QP100 QP199的描述 符設(shè)置值,另夕卜,通道驅(qū)動(dòng)器113在TPTlll只對(duì)QP200 QP299的描述符 設(shè)置值,所以各OS由于使用不同的描述符而不必共用,從各個(gè)TPT先頭的 偏移產(chǎn)生偏移。因此,在虛擬通道驅(qū)動(dòng)器102制作VTPT103時(shí),可以不必變 更從TPT基址的偏移,容易地復(fù)制TPTllO、 111的值,通過(guò)只重新制作該 VTPT103,不伴隨傳輸用數(shù)據(jù)的復(fù)制、以及描述符等其他的輸入/輸出控制數(shù) 據(jù)的變更。
另外,在本實(shí)施例中,雖然闡述了虛擬通道驅(qū)動(dòng)器102存在于LPAR控 制程序101內(nèi)的方式,但作為其他的方式,如圖9所示,也可以在LPAR弁3 中啟動(dòng)OS3 (901),在OS3 (901)內(nèi)使虛擬通道驅(qū)動(dòng)器102動(dòng)作,在OS3 控制存儲(chǔ)器內(nèi)制作VTPT103。
通道適配器100在TPT有效寄存器被設(shè)置為"1"時(shí),取出VTPT,并保 存在通道適配器內(nèi),使用最新的VTPT。因?yàn)橥ǖ揽刂萍拇嫫?14內(nèi)的TPT 基址寄存器303的值設(shè)置了 VTPT103的起始地址,所以通道適配器100使用 VTPT103。
然后,對(duì)OS1 (105)的通道驅(qū)動(dòng)器112使用圖4及圖5所示的QP100 以及CQ1進(jìn)行數(shù)據(jù)發(fā)送處理的情況進(jìn)行說(shuō)明。該通道驅(qū)動(dòng)器112在QP100 的發(fā)送隊(duì)列中,在DB—AD501設(shè)置物理地址,在DB-AD501指示的地方設(shè)置 指令區(qū)域(256字節(jié))504。另外,定義其他的描述符510,將該描述符510 的起始地址設(shè)置在下一描述符502,在該描述符510的DB—AD507的地址所 指示的地方存在用于發(fā)送的數(shù)據(jù)緩沖區(qū)506。通道驅(qū)動(dòng)器112作為在FLAG509
12內(nèi)相關(guān)聯(lián)的C(^/設(shè)置W以及該CQ1的起始地址,為了起動(dòng)I/0處理,使用內(nèi)
核函數(shù)將值寫(xiě)入通道控制寄存器114內(nèi)的TPT偏移地址寄存器304中。這時(shí), LPAR控制程序101截取該函數(shù),虛擬通道驅(qū)動(dòng)器102將值寫(xiě)入TPT偏移地 址寄存器304。然后,通道驅(qū)動(dòng)器112使用內(nèi)核函數(shù)要在通道控制寄存器114 內(nèi)的QP存寄存器302設(shè)置QP#,在I/O處理使能寄存器305設(shè)置"1 "。這時(shí), LPAR控制程序101截取該函數(shù),虛擬通道驅(qū)動(dòng)器102在QP^寄存器302寫(xiě) 入QP#,在I/O處理使能寄存器305寫(xiě)入"1 "。
通道適配器100在識(shí)別來(lái)自虛擬通道驅(qū)動(dòng)器102的I/O處理起動(dòng)時(shí),由 在上述通道控制寄存器114內(nèi)的TPT偏移地址寄存器304中所設(shè)置的偏移和 VTPT103得到相應(yīng)的描述符的起始地址。通過(guò)使用該起始地址,來(lái)進(jìn)行相應(yīng) 描述符的取出處理,從取出的描述符信息中進(jìn)行指令區(qū)域504、以及發(fā)送用 數(shù)據(jù)緩沖區(qū)506的取出,向在指令區(qū)域504中所指定的目標(biāo)ID、以及在 FLAG503內(nèi)所指定的對(duì)象處的QP弁進(jìn)行數(shù)據(jù)傳輸。根據(jù)協(xié)議進(jìn)行數(shù)據(jù)傳輸, 在接收到來(lái)自對(duì)象處的應(yīng)答幀時(shí),將該應(yīng)答幀存儲(chǔ)到所述指令應(yīng)答信息區(qū)域 505。在結(jié)束了該應(yīng)答幀的存儲(chǔ)之后,在CQ1設(shè)置表示QP100和發(fā)送隊(duì)列的 信息,在通道控制寄存器114內(nèi)的結(jié)束CQ寄存器308中設(shè)置了作為CP存的 "1"之后,對(duì)OS給予表示I/O處理結(jié)束的I/O中斷。
LPAR控制程序101截取該I/O中斷,虛擬通道驅(qū)動(dòng)器102讀取通道控制 存器內(nèi)的結(jié)束CQ寄存器308的值,識(shí)別對(duì)CQ1的處理已結(jié)束,因?yàn)榈弥?處理是對(duì)LPAR#1的處理,所以對(duì)0S1給予截取后的I/O中斷。OS1的通道 驅(qū)動(dòng)器112通過(guò)識(shí)別該I/O中斷,讀取CQ1的內(nèi)容,進(jìn)行該I/O處理的結(jié)束 處理。
OS2 (106)的通道驅(qū)動(dòng)器113使用QP200 QP299、以及CQ2進(jìn)行I/O 處理。其他的I/0處理的概要與0S1 (105)進(jìn)行的處理相同。
在上述實(shí)施例中,雖然說(shuō)明了發(fā)送數(shù)據(jù)的情況,但在接收到數(shù)據(jù)的情況 下,因?yàn)橛山邮盏降膸付ǖ腝P存已進(jìn)入,所以通過(guò)使用該指定的QP的 Receive Queue進(jìn)行I/O處理,也可以接收數(shù)據(jù)。
以上,雖然說(shuō)明了有關(guān)本發(fā)明的實(shí)施例,但對(duì)于具有PCI總線接口的設(shè) 備,由于不用設(shè)置由硬件構(gòu)成的控制器、本地存儲(chǔ)器,根據(jù)控制程序取得通道驅(qū)動(dòng)器進(jìn)行動(dòng)作的虛擬計(jì)算機(jī)號(hào)碼,只重新制作將虛擬地址變換為物理地 址的表,由此可以提供同樣不用進(jìn)行傳輸用數(shù)據(jù)的復(fù)制,不變更輸入/輸出控 制數(shù)據(jù)可以由多個(gè)OS共用的通道裝置。
權(quán)利要求
1、一種數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法,該數(shù)據(jù)處理系統(tǒng)在LPAR控制單元的控制下在構(gòu)筑了多個(gè)LPAR的各LPAR中運(yùn)行OS,并具有發(fā)送/接收數(shù)據(jù)的通道適配器,該數(shù)據(jù)處理方法的特征在于,該數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法是在所述各個(gè)LPAR和所述通道適配器之間使用各自具有輸入/輸出處理控制數(shù)據(jù)標(biāo)識(shí)符的輸入/輸出處理控制數(shù)據(jù)進(jìn)行輸入/輸出處理的數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法,具備構(gòu)成信息,該構(gòu)成信息對(duì)應(yīng)所述各個(gè)LPAR排他地定義了各個(gè)LPAR的OS可以使用的輸入/輸出處理控制數(shù)據(jù)的標(biāo)識(shí)符;所述通道適配器可以處理多個(gè)輸入/輸出處理控制數(shù)據(jù);所述各個(gè)LPAR的OS通過(guò)使用與所述構(gòu)成信息中定義的可以使用的標(biāo)識(shí)符對(duì)應(yīng)的輸入/輸出處理控制數(shù)據(jù),通過(guò)1個(gè)所述通道適配器多個(gè)LPAR的各OS分別控制標(biāo)識(shí)符不同的輸入/輸出處理控制數(shù)據(jù),無(wú)需在不同的LPAR之間共用與所述通道適配器相對(duì)的輸入/輸出處理控制數(shù)據(jù)而進(jìn)行輸入/輸出處理。
2、 根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法,其特征在于, 在所述各LPAR上,作為所述通道適配器與各LPAR的OS的接口 ,控制所述輸入/輸出處理控制數(shù)據(jù)的通道驅(qū)動(dòng)器進(jìn)行動(dòng)作;該通道驅(qū)動(dòng)器具有從所述LPAR控制單元得到表示該通道驅(qū)動(dòng)器進(jìn)行動(dòng) 作的LPAR的系統(tǒng)上的LPAR標(biāo)識(shí)符的虛擬計(jì)算機(jī)號(hào)碼的單元;在所述構(gòu)成信息中定義所述虛擬計(jì)算機(jī)號(hào)碼和可以使用的輸入/輸出處 理控制數(shù)據(jù)的標(biāo)識(shí)符的對(duì)應(yīng);所述各通道驅(qū)動(dòng)器使用與所述構(gòu)成信息中定義了的可以使用的輸入/輸 出處理控制數(shù)據(jù)的標(biāo)識(shí)符相對(duì)應(yīng)的輸入/輸出處理控制數(shù)據(jù)。
3、 根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法,其特征在于, 是在所述通道驅(qū)動(dòng)器與所述通道適配器之間的接口指示所述輸入/輸出處理控制數(shù)據(jù)的地址是虛擬地址,為了將該虛擬地址變換為物理地址而使用 地址變換表,由此來(lái)進(jìn)行輸入/輸出處理的數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法;所述通道驅(qū)動(dòng)器根據(jù)從所述LPAR控制單元得到的虛擬計(jì)算機(jī)號(hào)碼和從 所述構(gòu)成信息得到的可以使用的輸入/輸出處理控制數(shù)據(jù)的標(biāo)識(shí)符,制作與該可以使 用的輸入/輸出處理控制數(shù)據(jù)相對(duì)的地址變換表;該數(shù)據(jù)處理系統(tǒng)具有將各LPAR的通道驅(qū)動(dòng)器制成的多個(gè)該地址變換表 制作成1個(gè)虛擬地址變換表的單元;所述通道適配器使用所述虛擬地址變換表,處理多個(gè)LPAR上的輸入/輸 出處理控制數(shù)據(jù),由此不進(jìn)行在各LPAR上生成的輸入/輸出處理控制數(shù)據(jù)的 變更,所述通道適配器對(duì)多個(gè)OS進(jìn)行輸入/輸出處理。
4、 根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法,其特征在于, 所述輸入/輸出處理控制數(shù)據(jù)由多個(gè)隊(duì)列對(duì)構(gòu)成; 各隊(duì)列對(duì)由數(shù)據(jù)發(fā)送用發(fā)送隊(duì)列和數(shù)據(jù)接收用接收隊(duì)列構(gòu)成。
5、 根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法,其特征在于, 所述各隊(duì)列由數(shù)據(jù)緩沖區(qū)和包含指示該數(shù)據(jù)緩沖區(qū)的地址的描述符構(gòu)成。
6、 根據(jù)權(quán)利要求5所述的數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法,其特征在于, 具有對(duì)指示所述各隊(duì)列的描述符的地址進(jìn)行存儲(chǔ)的地址變換表。
7、 根據(jù)權(quán)利要求6所述的數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法,其特征在于, 設(shè)置所述地址變換表的起始地址的地址寄存器被設(shè)置在所述通道適配器內(nèi)。
8、 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)處理方法,其特征在于, 所述各LPAR的各通道驅(qū)動(dòng)器在將該LPAR用的所述地址變換表的起始地址設(shè)置在所述通道適配器的所述地址寄存器之后,向所述通道適配器指示 1/0起動(dòng)。
全文摘要
提供一種數(shù)據(jù)處理方法,在多個(gè)OS運(yùn)行的數(shù)據(jù)處理系統(tǒng)中,其不必變更用于進(jìn)行輸入/輸出處理的控制數(shù)據(jù),只通過(guò)制作地址變換表就可以由多個(gè)OS共用。對(duì)于1個(gè)通道適配器,多個(gè)OS使用各自標(biāo)識(shí)符不同的輸入/輸出處理控制數(shù)據(jù),在不同的OS之間不必共用對(duì)所述適配器的輸入/輸出處理控制數(shù)據(jù)來(lái)進(jìn)行輸入/輸出處理。另外,數(shù)據(jù)處理系統(tǒng)將各個(gè)OS制作出的多個(gè)地址變換表重新制作為1個(gè)虛擬地址變換表,通道適配器使用該虛擬地址變換表處理多個(gè)OS上的輸入/輸出控制數(shù)據(jù)。
文檔編號(hào)G06F9/50GK101308466SQ200810092538
公開(kāi)日2008年11月19日 申請(qǐng)日期2005年9月15日 優(yōu)先權(quán)日2004年9月16日
發(fā)明者豐原吉宏, 久米正二, 后藤哲弘 申請(qǐng)人:株式會(huì)社日立制作所