專利名稱:數(shù)據(jù)寫入的方法、控制器和多控制器系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及通信技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)寫入的方法、控制 器和多控制器系統(tǒng)。
背景技術(shù):
通常,雙控制器系統(tǒng)應(yīng)用于對(duì)數(shù)據(jù)完整性及服務(wù)連續(xù)性要求較高的網(wǎng)絡(luò)
中,例如存儲(chǔ)器局域網(wǎng)絡(luò)(Storage Area Network;以下簡(jiǎn)稱SAN)。雙 控制器系統(tǒng)的作用是,當(dāng)其中一個(gè)控制器作為主控制器提供服務(wù)時(shí),使用另 一個(gè)控制器作為該主控制器的鏡像備份控制器。當(dāng)主控制器發(fā)生故障而無(wú)法 繼續(xù)提供服務(wù)時(shí),該鏡像備份控制器接管主控制器的業(yè)務(wù),保障數(shù)據(jù)的完整 性和服務(wù)的連續(xù)性。
因此,需要在雙控制器系統(tǒng)的兩個(gè)控制器之間建立內(nèi)部通信鏈路,例如 以太網(wǎng)絡(luò)卡對(duì)連等,用以傳輸數(shù)據(jù),保持兩個(gè)控制器的同步狀態(tài)。
現(xiàn)有的雙控制器系統(tǒng)采用直接數(shù)據(jù)存取(Direct Memory Access;以下簡(jiǎn) 稱DMA)引擎,將一個(gè)控制器的數(shù)據(jù)傳輸?shù)搅硪粋€(gè)控制器的內(nèi)存。具體地, 以包括控制器1和控制器2的雙控制器系統(tǒng)為例,在控制器1向控制器2的 內(nèi)存寫數(shù)據(jù)時(shí),控制器1需要先發(fā)送通知寫請(qǐng)求,通知控制器2準(zhǔn)備內(nèi)存, 控制器2準(zhǔn)備好內(nèi)存以后,向控制器l發(fā)送內(nèi)存準(zhǔn)備完畢通知,然后控制器 1才能將數(shù)據(jù)寫入控制器2的內(nèi)存。控制器1從控制器2的內(nèi)存中讀數(shù)據(jù)的 過(guò)程與上述寫數(shù)據(jù)的過(guò)程類似,也需要經(jīng)過(guò)多次交互才能完成。
現(xiàn)有的多控制器系統(tǒng),例如包括三個(gè)或三個(gè)以上控制器的系統(tǒng),采用 DMA引擎在多個(gè)控制器的內(nèi)存之間的數(shù)據(jù)傳輸過(guò)程與雙控制器系統(tǒng)中的數(shù) 據(jù)傳輸過(guò)程類似,同樣需要經(jīng)過(guò)多次交互才能完成。在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn),現(xiàn)有的雙控制器系統(tǒng)或多控制器 系統(tǒng)中,控制器內(nèi)存之間的數(shù)據(jù)傳輸過(guò)程需要進(jìn)行多次交互才能完成,鏈路 的利用率較低。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種數(shù)據(jù)寫入的方法、控制器和多控制器系統(tǒng),以減 少雙控制器系統(tǒng)或多控制器系統(tǒng)中的控制器在數(shù)據(jù)傳輸過(guò)程中的交互次數(shù), 提高鏈路的利用率。
本發(fā)明實(shí)施例提供一種數(shù)據(jù)寫入的方法,包括
根據(jù)所述第 一控制器中待寫入數(shù)據(jù)的大小和目的地址在第二控制器被控 制的內(nèi)存中分配相應(yīng)的內(nèi)存空間,所述內(nèi)存由所述第 一控制器通過(guò)快速外設(shè) 部件互連交換非透明橋所控制;
將所述待寫入數(shù)據(jù)寫入分配的內(nèi)存空間。
本發(fā)明實(shí)施例還提供一種第一控制器,包括
控制模塊,用于通過(guò)快速外設(shè)部件互連交換非透明橋控制第二控制器的 一段內(nèi)存;
分配模塊,用于根據(jù)所述第一控制器中待寫入數(shù)據(jù)的大小和目的地址在 所述第二控制器被所述控制模塊控制的內(nèi)存中分配相應(yīng)的內(nèi)存空間;
寫入模塊,用于將所述待寫入數(shù)據(jù)寫入所述分配模塊分配的內(nèi)存空間。 本發(fā)明實(shí)施例還4是供一種多控制器系統(tǒng),包括至少兩個(gè)上述第 一控制器。 通過(guò)本發(fā)明實(shí)施例,第一控制器通過(guò)快速外設(shè)部件互連交換非透明橋控 制第二控制器的一,爻內(nèi)存,根據(jù)待寫入數(shù)據(jù)的大小和目的地址在第二控制器 ^皮控制的內(nèi)存中分配相應(yīng)的內(nèi)存空間,并將^f寺寫入數(shù)據(jù)寫入分配的內(nèi)存空間。 從而減少了雙控制器系統(tǒng)或多控制器系統(tǒng)中的控制器在數(shù)據(jù)傳輸過(guò)程中的交 互次數(shù),提高了雙控制器系統(tǒng)或多控制器系統(tǒng)中鏈路的利用率。
為了更清楚地說(shuō)明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或 現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中 的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付 出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例一提供的數(shù)據(jù)寫入的方法的流程圖; 圖2為本發(fā)明實(shí)施例二提供的內(nèi)存物理地址映射的示意圖; 圖3為本發(fā)明實(shí)施例三提供的將待寫入數(shù)據(jù)寫入分配的內(nèi)存空間的方法 的流程圖4為本發(fā)明實(shí)施例四提供的第一控制器的結(jié)構(gòu)示意圖; 圖5為本發(fā)明實(shí)施例五提供的第一控制器的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明中的附圖,對(duì)本發(fā)明中的技術(shù)方案進(jìn)行清楚、完整地 描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施 例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的 前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為本發(fā)明實(shí)施例一提供的數(shù)據(jù)寫入的方法的流程圖,如圖1所示, 包括
步驟101,第一控制器根據(jù)第一控制器中待寫入數(shù)據(jù)的大小和目的地址 在第二控制器被控制的內(nèi)存中分配相應(yīng)的內(nèi)存空間,上述內(nèi)存由第 一控制器 通過(guò)'決速夕卜i殳部"f牛互連交4灸非透明(Peripheral Component Interconnect Express switch Non-Transparency;以下簡(jiǎn)稱PCIE switch NT)橋所控制。其中,第 二控制器為至少兩個(gè)控制器中除第 一控制器之外的 一個(gè)控制器。
具體地,本實(shí)施例的雙控制器系統(tǒng)或多控制器系統(tǒng)中,第一控制器可以 通過(guò)PCIE switch NT橋,直接訪問(wèn)第二控制器的內(nèi)存,在上電過(guò)程中,第一控制器應(yīng)用內(nèi)部通信協(xié)議與第二控制器進(jìn)行交互,控制第二控制器的一段內(nèi) 存,使第二控制器本身不再控制這段內(nèi)存。第一控制器根據(jù)第二控制器中待 被控制的內(nèi)存的物理地址,在第 一控制器的內(nèi)存中配置該第 一控制器的第一
PCIE switch NT橋的物理地址;并在該第一 PCIE switch NT橋中,保存第二 控制器中待凈皮控制的內(nèi)存的物理地址與第一 PC正switch NT橋的物理地址的 映射關(guān)系;例如可以在第一 PCIE switch NT橋的一個(gè)寄存器中,保存第二 控制器中待被控制的內(nèi)存的物理地址與第一 PCIE switch NT橋的物理地址的 映射關(guān)系。
具體地,以包括控制器1和控制器2的雙控制器系統(tǒng)為例,假定控制器 2將0 0X200000000這段內(nèi)存交由控制器l控制,假設(shè)控制器1自身的內(nèi)存 占用的物理地址為0 0X200000000,則控制器1可以在該控制器1的內(nèi)存中, 將該控制器1的第一 PC正switch NT橋的物理地址配置為 0X200000000 0X400000000,并在第一 PCIE switch NT橋中保存該第一 PCIE switch NT橋的物理地址與控制器2中待被控制的內(nèi)存的物理地址的映射關(guān) 系,即保存控制器1中0X200000000 0X400000000這段內(nèi)存的物理地址與控 制器2中0 0X200000000這段內(nèi)存的物理地址的映射關(guān)系。圖2為本發(fā)明實(shí) 施例二提供的內(nèi)存物理地址映射的示意圖,如圖2所示,控制器l自身的內(nèi) 存占用的物理地址為0~0X200000000,第一 PC正switch NT橋占用的物理地 址為0X200000000 0X400000000,即控制器2凈皮控制的內(nèi)存在控制器1的內(nèi) 存中映射的物理地址為0X200000000 0X400000000。
對(duì)于具有三個(gè)或三個(gè)以上控制器的多控制器系統(tǒng)中,例如在包括控制 1、控制器2和控制器3的多控制器系統(tǒng)中,控制器1可以通過(guò)兩個(gè)PCIE switch NT橋分別對(duì)控制器2和控制器3的一段內(nèi)存進(jìn)行控制,控制器2和控制器3 被控制的內(nèi)存的物理地址的映射方式與上述雙控制器系統(tǒng)中的映射方式相 同,在此不再贅述。
步驟102,第一控制器將待寫入數(shù)據(jù)寫入分配的內(nèi)存 間。圖3為本發(fā)明實(shí)施例三提供的將待寫入數(shù)據(jù)寫入分配的內(nèi)存空間的方法 的流程圖,如圖3所示,該實(shí)施例包括
步驟301,第一控制器才艮據(jù)待寫入數(shù)據(jù)的大小和目的地址,在第一PCIE switch NT橋的物理地址范圍內(nèi)分配相應(yīng)的 一段物理地址,作為待寫入數(shù)據(jù)的 內(nèi)存空間,并將待寫入數(shù)據(jù)寫入該內(nèi)存空間。
本實(shí)施例中,當(dāng)?shù)谝豢刂破餍枰獙?shù)據(jù)寫入第二控制器的內(nèi)存時(shí),第一 控制器根據(jù)待寫入數(shù)據(jù)的大小和目的地址,在第一PCIE switch NT橋的物理 地址范圍內(nèi)分配相應(yīng)的一段物理地址,作為待寫入數(shù)據(jù)的內(nèi)存空間,并將待 寫入數(shù)據(jù)寫入上述內(nèi)存空間。
步驟302,第一控制器的第一PCIE switch NT橋?qū)⑸鲜鰯?shù)據(jù)傳輸至第二 控制器的第二 PCIE switch NT橋,由第二 PCIE switch NT橋?qū)⑸鲜鰯?shù)據(jù)存儲(chǔ) 至第二控制器被控制的內(nèi)存。
舉例來(lái)說(shuō),在上述包含控制1和控制器2的雙控制器系統(tǒng)中,控制器1 需要將數(shù)據(jù)寫入控制器2的內(nèi)存時(shí),假設(shè)待寫入數(shù)據(jù)的大小為1G,控制器l 可以將待寫入數(shù)據(jù)的目的地址設(shè)為第一 PCIE switch NT橋占用的物理地址范 圍內(nèi)的一段物理地址,例如0X240000000 0X280000000;則控制器1將第 一 PCIE switch NT橋占用的物理地址中0X240000000-0X280000000這段內(nèi)存 空間分配給待寫入數(shù)據(jù),然后將待寫入數(shù)據(jù)寫入0X240000000 0X280000000 這段內(nèi)存空間。寫入完畢之后,第一 PCIE switch NT橋可以根據(jù)保存的第一 PCIE switch NT橋的物理地址與控制器2被控制的內(nèi)存的物理地址的映射關(guān) 系,進(jìn)行地址轉(zhuǎn)換,將寫入第一PC正switch NT橋的數(shù)據(jù)的目的地址轉(zhuǎn)換為 控制器2 ^皮控制的內(nèi)存的物理地址,例如0X40000000 0X80000000;然后 第一 PCIE switch NT橋?qū)⑸鲜鰯?shù)據(jù)傳輸至控制器2的第二 PC正switch NT橋, 第二 PCIE switch NT橋可以根據(jù)第一 PCIE switch NT橋傳輸?shù)臄?shù)據(jù)的目的地 址,通過(guò)控制器2的北橋(Root)將上述數(shù)據(jù)存儲(chǔ)至控制器2被控制的內(nèi)存 中。在待寫入數(shù)據(jù)寫入完畢之后,第一控制器可以通知第二控制器對(duì)寫入的
數(shù)據(jù)進(jìn)行處理;或者,第二控制器也可以在確定待寫入數(shù)據(jù)寫入完畢之后, 對(duì)寫入的數(shù)據(jù)進(jìn)行處理,例如第二控制器可以主動(dòng)向第一控制器發(fā)送查詢 消息,才艮據(jù)第一控制器的肯定響應(yīng)確定待寫入數(shù)據(jù)寫入完畢,然后再對(duì)寫入 的數(shù)據(jù)進(jìn)行處理。其中,第二控制器對(duì)寫入的數(shù)據(jù)進(jìn)行處理具體可以為第 二控制器讀取寫入的數(shù)據(jù),將該寫入的數(shù)據(jù)存儲(chǔ)到硬盤或發(fā)送至網(wǎng)絡(luò)中。
上述實(shí)施例中,第一控制器通過(guò)PCIE switch NT橋控制第二控制器的一 段內(nèi)存,然后根據(jù)待寫入數(shù)據(jù)的大小和目的地址在第二控制器被控制的內(nèi)存 中分配相應(yīng)的內(nèi)存空間,并將待寫入數(shù)據(jù)寫入分配的內(nèi)存空間,從而減少了 雙控制器系統(tǒng)或多控制器系統(tǒng)中的控制器在數(shù)據(jù)傳輸過(guò)程中的交互次數(shù),提 高了雙控制器系統(tǒng)或多控制器系統(tǒng)中鏈路的利用率。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步 驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī) 可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟; 而前述的存儲(chǔ)介質(zhì)包括ROM、 RAM、 一磁碟或者光盤等各種可以存儲(chǔ)程 序代碼的介質(zhì)。
圖4為本發(fā)明實(shí)施例四提供的第一控制器的結(jié)構(gòu)示意圖,該實(shí)施例的第 一控制器可以實(shí)現(xiàn)如本發(fā)明圖1所示實(shí)施例的流程圖。如圖4所示,該第一 控制器包括控制模塊41、分配模塊42和寫入模塊43。
控制模塊41 ,用于通過(guò)PCIE switch NT橋控制第二控制器的一段內(nèi)存;
具體地,該第二控制器為至少兩個(gè)控制器中除第 一控制器之外的一個(gè)控 制器;本實(shí)施例的雙控制器系統(tǒng)或多控制器系統(tǒng)中,控制模塊41可以通過(guò) PCIE switch NT橋,直接訪問(wèn)第二控制器的內(nèi)存,在上電過(guò)程中,控制模塊 41應(yīng)用內(nèi)部通信協(xié)議與第二控制器進(jìn)行交互,控制第二控制器的一段內(nèi)存, 第二控制器不再控制這段內(nèi)存。
分配模塊42,用于根據(jù)第一控制器中待寫入數(shù)據(jù)的大小和目的地址在第
10二控制器被控制模塊41控制的內(nèi)存中分配相應(yīng)的內(nèi)存空間;
由寫入才莫塊43,用于將待寫入數(shù)據(jù)寫入分配模塊42分配的內(nèi)存空間。 上述控制器中,控制模塊41通過(guò)PC正switchNT橋控制第二控制器的 一段內(nèi)存,分配模塊42根據(jù)待寫入數(shù)據(jù)的大小和目的地址在第二控制器被控 制模塊41控制的內(nèi)存中分配相應(yīng)的內(nèi)存空間,再由寫入模塊43將待寫入數(shù) 據(jù)寫入分配模塊42分配的內(nèi)存空間。從而實(shí)現(xiàn)了減少雙控制器系統(tǒng)或多控制 器系統(tǒng)中的控制器在數(shù)據(jù)傳輸過(guò)程中的交互次數(shù),提高了雙控制器系統(tǒng)或多 控制器系統(tǒng)中鏈路的利用率。
圖5為本發(fā)明實(shí)施例五提供的第一控制器的結(jié)構(gòu)示意圖,該實(shí)施例的第 一控制器可以實(shí)現(xiàn)如本發(fā)明圖1所示實(shí)施例的流程圖。如圖5所示,該控制 器包括控制模塊51、分配模塊52、寫入模塊53和通知模塊54。
控制模塊51 ,用于通過(guò)PCIE switch NT橋控制第二控制器的一段內(nèi)存; 具體地,該第二控制器為至少兩個(gè)控制器中除第 一控制器之外的一個(gè)控 制器;本實(shí)施例的雙控制器系統(tǒng)或多控制器系統(tǒng)中,控制模塊51可以通過(guò) PCIE switch NT橋,直接訪問(wèn)第二控制器的內(nèi)存,在上電過(guò)程中,控制模塊 51應(yīng)用內(nèi)部通信協(xié)議與第二控制器進(jìn)行交互,控制第二控制器的一段內(nèi)存, 第二控制器不再控制這^a內(nèi)存。
分配模塊52,用于根據(jù)待寫入數(shù)據(jù)的大小和目的地址在第二控制器被控 制模塊51控制的內(nèi)存中分配相應(yīng)的內(nèi)存空間;
寫入模塊53,用于將待寫入數(shù)據(jù)寫入分配模塊52分配的內(nèi)存空間。 通知模塊54,用于在寫入模塊53將待寫入數(shù)據(jù)寫入完畢之后,通知第 二控制器對(duì)寫入的數(shù)據(jù)進(jìn)行處理。其中,第二控制器對(duì)寫入的數(shù)據(jù)進(jìn)行處理 具體可以為第二控制器讀取寫入的數(shù)據(jù),將該寫入的數(shù)據(jù)存儲(chǔ)到硬盤或發(fā) 送至網(wǎng)絡(luò)中。
其中,控制模塊51可以包括配置子模塊511和保存子模塊512。具體 地,配置子模塊511可以根據(jù)第二控制器中待被控制的內(nèi)存的物理地址,在第一控制器的內(nèi)存中配置第一控制器的第一 PCIE switch NT橋的物理地址; 保存子模塊512可以在第一 PC正switch NT橋中,保存第二控制器中待被控 制的內(nèi)存的物理地址與配置子模塊511配置的第一 PCIE switch NT橋的物理 地址的映射關(guān)系。
本實(shí)施例中,分配模塊52具體用于根據(jù)第一控制器中待寫入數(shù)據(jù)的大小 和目的地址,在第一 PCIE switch NT橋的物理地址范圍內(nèi)分配相應(yīng)的一段物 理地址,作為待寫入數(shù)據(jù)的內(nèi)存空間;
寫入模塊53可以包括數(shù)據(jù)寫入子模塊531和傳輸子模塊532。數(shù)據(jù)寫 入子模塊531可以將待寫入數(shù)據(jù)寫入分配模塊52分配的內(nèi)存空間;傳輸子模 塊532可以通過(guò)第一 PC正switch NT橋?qū)?shù)據(jù)寫入子模塊531寫入的數(shù)據(jù)傳 輸至第二控制器的第二 PC正switch NT橋,由第二 PC正switch NT橋?qū)⑸鲜?數(shù)據(jù)存儲(chǔ)至第二控制器被控制的內(nèi)存。
具體地,以包括控制器1和控制器2的雙控制器系統(tǒng)為例,假定控制器 2將0~0X200000000這段內(nèi)存交由控制器1控制,布i設(shè)控制器1自身的內(nèi)存 占用的物理地址為0~0X200000000,則配置子;f莫塊511可以在該控制器1的 內(nèi)存中,將該控制器1的第一 PCIE switch NT橋的物理地址配置為 0X200000000 0X400000000,并由保存子模塊512在第一 PCIE switch NT橋 中保存該第一 PCIE switch NT橋的物理地址與控制器2中待被控制的內(nèi)存的 物理地址的映射關(guān)系,即保存控制器1中0X200000000 0X400000000這段內(nèi) 存的物理地址與控制器2中0-0X200000000這^R內(nèi)存的物理地址的映射關(guān) 系。如圖2所示,控制器l自身的內(nèi)存占用的物理地址為0~0X200000000, 第一 PC正switch NT橋占用的物理地址為0X200000000 0X400000000,即控 制器2被控制的內(nèi)存在控制器1的內(nèi)存中映射的物理地址為 0X200000000 0X400000000 。
當(dāng)控制器1需要將數(shù)據(jù)寫入控制器2的內(nèi)存時(shí),假設(shè)待寫入數(shù)據(jù)的長(zhǎng)度 為1G,控制器1可以將待寫入數(shù)據(jù)的目的地址設(shè)為第一PCIE switch NT橋占用的物理地址中的一段物理地址,例如0X240000000 0X280000000,則分 配模塊52將第一 PCIE switch NT橋占用的物理地址范圍內(nèi)的 0X240000000 0X280000000這^殳內(nèi)存空間分配給4寺寫入數(shù)4居,然后數(shù)4居寫入 子才莫塊531將待寫入數(shù)據(jù)寫入分配才莫塊52分配的0X240000000 0X280000000 這段內(nèi)存空間。數(shù)據(jù)寫入子模塊531寫入完畢之后,傳輸子模塊532可以通 過(guò)第一 PCIE switch NT橋?qū)?shù)據(jù)寫入子模塊531寫入的數(shù)據(jù)傳輸至控制器2 的第二 PCIE switch NT橋;具體地,第一 PCIE switch NT橋可以根據(jù)保存的 第一 PCIE switch NT橋的物理地址與控制器2 ^皮控制的內(nèi)存的物理地址的映 射關(guān)系,進(jìn)行地址轉(zhuǎn)換,將寫入第一PC正switch NT橋的數(shù)據(jù)的目的地址轉(zhuǎn) 換為控制器2祐:控制的內(nèi)存的物理地址,例如0X40000000 0X80000000; 然后第一PCIE switch NT橋?qū)⑸鲜鰯?shù)據(jù)傳輸至控制器2的第二PCIE switch NT橋,第二 PC正switch NT橋可以根據(jù)第一 PCIE switch NT橋傳輸?shù)臄?shù)據(jù) 的目的地址,通過(guò)控制器2的北橋?qū)⑸鲜鰯?shù)據(jù)存儲(chǔ)至控制器2被控制的內(nèi)存中。
上述控制器中,控制模塊51通過(guò)PCIE switch NT橋控制第二控制器的一 段內(nèi)存,然后分配模塊52根據(jù)待寫入數(shù)據(jù)的大小在第二控制器被控制模塊 51控制的內(nèi)存中分配相應(yīng)的內(nèi)存空間,再由寫入模塊53將待寫入數(shù)據(jù)寫入 分配模塊52分配的內(nèi)存空間,從而實(shí)現(xiàn)了減少雙控制器系統(tǒng)或多控制器系統(tǒng) 中的控制器在數(shù)據(jù)傳輸過(guò)程中的交互次數(shù),提高了雙控制器系統(tǒng)或多控制器 系統(tǒng)中鏈路的利用率。
本發(fā)明實(shí)施例還提供一種多控制器系統(tǒng),包括至少兩個(gè)上述第一控制器。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中 的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例 描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施 例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn) 行限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技 術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換, 而這些修改或者等同替換亦不能使修改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的 精神和范圍。
權(quán)利要求
1、一種數(shù)據(jù)寫入的方法,其特征在于,包括根據(jù)所述第一控制器中待寫入數(shù)據(jù)的大小和目的地址在第二控制器被控制的內(nèi)存中分配相應(yīng)的內(nèi)存空間,所述內(nèi)存由所述第一控制器通過(guò)快速外設(shè)部件互連交換非透明橋所控制;將所述待寫入數(shù)據(jù)寫入分配的內(nèi)存空間。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一控制器通過(guò)快速 外設(shè)部件互連交換非透明橋控制第二控制器的內(nèi)存的步驟包括第一控制器根據(jù)所述第二控制器中待被控制的內(nèi)存的物理地址,在所述 第 一控制器的內(nèi)存中配置所述第 一控制器的第 一快速外設(shè)部件互連交換非透 明橋的物理i也址;在所述第一快速外設(shè)部件互連交換非透明橋中,保存所述第二控制器中 待被控制的內(nèi)存的物理地址與所述第一快速外設(shè)部件互連交換非透明橋的物 理地址的映射關(guān)系。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述第一控制器 中待寫入數(shù)據(jù)的大小和目的地址在所述第二控制器被控制的內(nèi)存中分配相應(yīng) 的內(nèi)存空間包括根據(jù)所述第一控制器中待寫入數(shù)據(jù)的大小和目的地址,在所述第一快速 外設(shè)部件互連交換非透明橋的物理地址范圍內(nèi)分配相應(yīng)的一段物理地址,作 為所述待寫入數(shù)據(jù)的內(nèi)存空間。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述將所述待寫入數(shù)據(jù)寫 入分配的內(nèi)存空間包括所述第 一控制器將所述待寫入數(shù)據(jù)寫入所述內(nèi)存空間; 所述第 一控制器的第 一快速外設(shè)部件互連交換非透明橋?qū)⑺鰯?shù)據(jù)傳輸 至所述第二控制器的第二快速外設(shè)部件互連交換非透明橋,由所述第二快速 外設(shè)部件互連交換非透明橋?qū)⑺鰯?shù)據(jù)存儲(chǔ)至所述第二控制器被控制的內(nèi)存。
5、 根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,還包括 通知所述第二控制器對(duì)寫入的數(shù)據(jù)進(jìn)行處理。
6、 一種第一控制器,其特征在于,包括控制模塊,用于通過(guò)快速外設(shè)部件互連交換非透明橋控制第二控制器的 一段內(nèi)存;分配模塊,用于根據(jù)所述第一控制器中待寫入數(shù)據(jù)的大小和目的地址在 所述第二控制器被所述控制模塊控制的內(nèi)存中分配相應(yīng)的內(nèi)存空間;寫入模塊,用于將所述待寫入數(shù)據(jù)寫入所述分配模塊分配的內(nèi)存空間。
7、 根據(jù)權(quán)利要求6所述的第一控制器,其特征在于,所述控制模塊包括 配置子模塊,用于根據(jù)所述第二控制器中待被控制的內(nèi)存的物理地址,在所述第 一控制器的內(nèi)存中配置所述第 一控制器的第 一快速外設(shè)部件互連交 換非透明橋的物理地址;保存子模塊,用于在所述第一快速外設(shè)部件互連交換非透明橋中,保存 所述第二控制器中待凈皮控制的內(nèi)存的物理地址與所述配置子^f莫塊配置的第一 快速外設(shè)部件互連交換非透明橋的物理地址的映射關(guān)系。
8、 根據(jù)權(quán)利要求7所述的第一控制器,其特征在于,所述分配模塊具體 用于根據(jù)所述第一控制器中待寫入數(shù)據(jù)的大小和目的地址,在所述第一快速 外設(shè)部件互連交換非透明橋的物理地址范圍內(nèi)分配相應(yīng)的一l殳物理地址,作 為所述待寫入數(shù)據(jù)的內(nèi)存空間。
9、 根據(jù)權(quán)利要求8所述的第一控制器,其特征在于,所述寫入模塊包括 數(shù)據(jù)寫入子模塊,用于將所述待寫入數(shù)據(jù)寫入所述分配模塊分配的內(nèi)存空間;傳輸子^t塊,用于通過(guò)所述第一快速外設(shè)部件互連交換非透明橋?qū)⑺?數(shù)據(jù)寫入子模塊寫入的數(shù)據(jù)傳輸至所述第二控制器的第二快速外設(shè)部件互連 交換非透明橋,由所述第二快速外設(shè)部件互連交換非透明橋?qū)⑺鰯?shù)據(jù)存儲(chǔ)至所述第二控制器被控制的內(nèi)存。
10、 根據(jù)權(quán)利要求6至9任一項(xiàng)所述的第一控制器,其特征在于,還包括通知模塊,用于通知所述第二控制器對(duì)寫入的數(shù)據(jù)進(jìn)行處理。
11、 一種多控制器系統(tǒng),其特征在于,包括至少兩個(gè)根據(jù)權(quán)利要求6-10 任一項(xiàng)所述的第一控制器。
全文摘要
本發(fā)明實(shí)施例公開(kāi)一種數(shù)據(jù)寫入的方法、控制器和多控制器系統(tǒng),所述數(shù)據(jù)寫入的方法包括根據(jù)所述第一控制器中待寫入數(shù)據(jù)的大小和目的地址在第二控制器被控制的內(nèi)存中分配相應(yīng)的內(nèi)存空間,所述內(nèi)存由所述第一控制器通過(guò)快速外設(shè)部件互連交換非透明橋所控制;將所述待寫入數(shù)據(jù)寫入分配的內(nèi)存空間。本發(fā)明實(shí)施例減少了雙控制器系統(tǒng)或多控制器系統(tǒng)中的控制器在數(shù)據(jù)傳輸過(guò)程中的交互次數(shù),提高了雙控制器系統(tǒng)或多控制器系統(tǒng)中鏈路的利用率。
文檔編號(hào)G06F12/08GK101639811SQ20091009149
公開(kāi)日2010年2月3日 申請(qǐng)日期2009年8月21日 優(yōu)先權(quán)日2009年8月21日
發(fā)明者葉向榮 申請(qǐng)人:成都市華為賽門鐵克科技有限公司