專利名稱:基于硬盤控制器的雙控制器通訊系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)處理系統(tǒng)及其方法,特別是指一種利用仿真以太網(wǎng)絡(luò) 通訊方式經(jīng)由硬盤控制器實(shí)現(xiàn)雙控制器間內(nèi)部通訊的系統(tǒng)及其方法。
背錄技術(shù)
目前,在一些數(shù)據(jù)服務(wù)上要求數(shù)據(jù)完整性和服務(wù)連續(xù)性較高的應(yīng)用環(huán)境
中,以區(qū)域儲存網(wǎng)絡(luò)服務(wù)應(yīng)用環(huán)境為例,具有雙控制器的計(jì)算機(jī)系統(tǒng)經(jīng)常被應(yīng)
用,雙控制器的主要目的在于當(dāng)?shù)谝豢刂破髡谔峁┓?wù)時(shí),可以利用第二控 制器來對其作鏡像備份,于是當(dāng)?shù)谝豢刂破鳟a(chǎn)生運(yùn)作異常甚至停機(jī)而無法繼續(xù)
提供服務(wù)時(shí),可以立即由第二控制器接管繼續(xù)提供服務(wù),進(jìn)而滿足對于數(shù)據(jù)完 整性和服務(wù)連續(xù)性的要求。
為了要能夠?qū)崿F(xiàn)前述第一控制器與第二控制器之間的交互通訊,兩個(gè)控制 器之間就必須要建立起一條內(nèi)部通訊管道,用以隨時(shí)進(jìn)行數(shù)據(jù)數(shù)據(jù)交換,以確 保兩個(gè)控制器都能夠保持同步的狀態(tài)。習(xí)知雙控制器之間的通訊方式,如圖
1A所示,是透過以太網(wǎng)絡(luò)接口或者專屬硬件接口實(shí)現(xiàn)的,圖中所示的計(jì)算機(jī) 系統(tǒng)100中包含第一控制器110、第二控制器120及計(jì)算機(jī)系統(tǒng)100所管控的 硬盤組130,兩個(gè)控制器110及120中均各自包含一個(gè)控制器核心(Controller Core)lll或121、用以控制硬盤組130的硬盤控制器112或122及外接的以太 網(wǎng)卡(或?qū)儆布?113或123,其中控制器核心111或121分別與硬盤控制器 112或122及以太網(wǎng)卡(或?qū)儆布?113或123耦接以執(zhí)行整體控制器110或 120的控制。當(dāng)正在提供服務(wù)的第一控制器110中的控制器核心lll(以下稱主 控制器核心,Primary Controller Core),欲請求第二控制器120中的控制器核心 121(以下稱從控制器核心,Secondary Controller Core)執(zhí)行某些程序時(shí),便需要 透過外接的以太網(wǎng)卡(或?qū)儆布?U3將需要執(zhí)行程序的請求發(fā)送給第二控制 器120去執(zhí)行,詳細(xì)的運(yùn)作流程步驟將在之后再作說明。
此種透過以太網(wǎng)絡(luò)接口或者專屬硬件接口實(shí)現(xiàn)的雙控制器之間的通訊方式,有下列的問題存在
1. 需要在計(jì)算機(jī)系統(tǒng)上外接額外硬件,造成可用空間減少。
2. 需要在計(jì)算機(jī)系統(tǒng)上外接額外硬件,增加購買硬件的成本支出。
3. 應(yīng)用專屬硬件進(jìn)行通訊方式,僅能夠傳送簡單的同步訊號,并且無法提
供大數(shù)據(jù)量的數(shù)據(jù)傳輸。
4. 應(yīng)用專屬硬件進(jìn)行通訊方式,在適應(yīng)不同硬件的兼容性和移植性上相當(dāng)差。
因此,為了改善前述既有透過以太網(wǎng)絡(luò)接口或者專屬硬件接口實(shí)現(xiàn)雙控 制器之間通訊方式的問題,應(yīng)該思考如何在雙控制器的內(nèi)部通訊方式上提出更 好的改善方案。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,提供一種基于硬盤控制器的雙控制器通訊 系統(tǒng)及其方法,其主要目的是希望能夠在計(jì)算機(jī)系統(tǒng)中透過仿真以太網(wǎng)絡(luò)通訊 的方式,再結(jié)合利用計(jì)算機(jī)系統(tǒng)的控制器中的硬盤控制器,來實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng) 中兩控制器之間的內(nèi)部通訊。
為達(dá)上述目的,本發(fā)明所揭露的基于硬盤控制器的雙控制器通訊系統(tǒng),包 括有具有主控制器核心、網(wǎng)絡(luò)協(xié)議層、虛擬網(wǎng)卡驅(qū)動(dòng)程序、硬盤控制驅(qū)動(dòng)程 序及硬盤控制器的第一控制器;及具有從控制器核心、網(wǎng)絡(luò)協(xié)議層、虛擬網(wǎng)卡 驅(qū)動(dòng)程序、硬盤控制驅(qū)動(dòng)程序及硬盤控制器的第二控制器。
第一控制器與第二控制器之間透過下列步驟實(shí)現(xiàn)兩控制器之間的內(nèi)部通
訊
在第一控制器執(zhí)行下列步驟由主控制器核心接收請求,透過網(wǎng)絡(luò)協(xié)議層 生成并發(fā)送包含請求的以太網(wǎng)絡(luò)封包;執(zhí)行中的虛擬網(wǎng)卡驅(qū)動(dòng)程序接收以太網(wǎng) 絡(luò)封包,并轉(zhuǎn)換以太網(wǎng)絡(luò)封包為具有標(biāo)頭信息的硬盤控制請求進(jìn)行發(fā)送;執(zhí)行 中的硬盤控制驅(qū)動(dòng)程序接收硬盤控制請求轉(zhuǎn)發(fā)給硬盤控制器;硬盤控制器透過 實(shí)體線路連接方式傳送硬盤控制請求至第二控制器。
在第二控制器執(zhí)行下列步驟:硬盤控制器透過實(shí)體線路連接方式接收來自 第一控制器的硬盤控制請求進(jìn)行轉(zhuǎn)發(fā);執(zhí)行中的硬盤控制驅(qū)動(dòng)程序接收硬盤控 制請求回傳給虛擬網(wǎng)卡驅(qū)動(dòng)程序;執(zhí)行中的虛擬網(wǎng)卡驅(qū)動(dòng)程序接收硬盤控制請
求,并轉(zhuǎn)換硬盤控制請求為以太網(wǎng)絡(luò)封包進(jìn)行回傳;從控制器核心透過網(wǎng)絡(luò)協(xié) 議層對以太網(wǎng)絡(luò)封包的接收及還原獲得請求并執(zhí)行對應(yīng)程序。
與現(xiàn)有技術(shù)相比,本發(fā)明所能夠達(dá)到的功效在于
1. 透過運(yùn)用控制器上既有的硬盤控制器的實(shí)現(xiàn)技術(shù),可達(dá)到大幅節(jié)省對控 制器空間使用,并增加可在控制器中開發(fā)其它功能的功效。
2. 透過運(yùn)用控制器上既有的硬盤控制器的實(shí)現(xiàn)技術(shù),可達(dá)到大幅節(jié)省購買
額外硬件,如以太網(wǎng)絡(luò)卡、專屬硬件…等成本支出的功效。
3. 透過運(yùn)用控制器上既有的硬盤控制器的實(shí)現(xiàn)技術(shù),可達(dá)到大幅提升內(nèi)部 通訊傳輸效率及內(nèi)部通訊功能的功效。
4. 透過仿真以太網(wǎng)絡(luò)通訊的實(shí)現(xiàn)技術(shù),可達(dá)到高穩(wěn)定、易開發(fā)、兼容性及
移植性佳的功效。
有關(guān)本發(fā)明的特征與實(shí)作,茲配合圖示作最佳實(shí)施例詳細(xì)說明如下。
圖1A是現(xiàn)有透過以太網(wǎng)絡(luò)接口(或?qū)儆布涌?進(jìn)行雙控制器通訊的系
統(tǒng)示意圖:
圖1B是現(xiàn)有透過以太網(wǎng)絡(luò)接口進(jìn)行雙控制器通訊的方法流程圖2是本發(fā)明系統(tǒng)示意圖3是本發(fā)明硬件層/軟件層運(yùn)作方塊示意及運(yùn)作流程圖4是本發(fā)明軟件層細(xì)部運(yùn)作方塊示意及運(yùn)作流程圖5是本發(fā)明硬盤控制請求數(shù)據(jù)結(jié)構(gòu)及實(shí)施例示意圖。
其中附圖標(biāo)記為
100 計(jì)算機(jī)系統(tǒng)110 第一控制器
111 主控制器核心 112 硬盤控制器
113 以太網(wǎng)卡(或?qū)儆布? 120 第二控制器
121 從控制器核心 122 硬盤控制器
123 以太網(wǎng)卡(或?qū)儆布? 130 硬盤組
301 網(wǎng)絡(luò)協(xié)議層302 虛擬網(wǎng)卡驅(qū)動(dòng)程序
3021 以太網(wǎng)絡(luò)接口模塊 3022 請求類型轉(zhuǎn)換模塊
3023 數(shù)據(jù)發(fā)送模塊 3024 數(shù)據(jù)接收模塊
303硬盤控制驅(qū)動(dòng)程序3031發(fā)起端接口模塊
3032響應(yīng)端接口模塊400硬盤控制請求
401識別字段402起始字段
403長度字段404預(yù)備字段
405以太網(wǎng)絡(luò)封包410標(biāo)頭信息
具體實(shí)施例方式
本發(fā)明提出一種基于硬盤控制器的雙控制器通訊系統(tǒng)及其方法,其主要能 夠改善現(xiàn)有透過以太網(wǎng)絡(luò)接口或者專屬硬件接口實(shí)現(xiàn)雙控制器之間通訊方式 的問題。
現(xiàn)有技術(shù)的系統(tǒng)示意如圖1A所示,其方法流程配合圖1B概略說明如下。 在此以透過以太網(wǎng)絡(luò)接口通訊方式作為描述例子,當(dāng)運(yùn)作中且正在提供服務(wù)的 第一控制器110的主控制器核心111接受到來自計(jì)算機(jī)系統(tǒng)100外部由使用者 所發(fā)出的指令時(shí),指令可以是要求第一控制器110與第二控制器120執(zhí)行同步 程序的請求,此時(shí)主控制器核心111會透過執(zhí)行操作系統(tǒng)的軟件層中的網(wǎng)絡(luò)協(xié) 議層將此請求封包成以太網(wǎng)絡(luò)封包的格式(步驟200),然后將此以太網(wǎng)絡(luò)封包 透過執(zhí)行于軟件層中以太網(wǎng)卡113專屬的以太網(wǎng)卡驅(qū)動(dòng)程序進(jìn)行發(fā)送(歩驟 210),以太網(wǎng)絡(luò)卡驅(qū)動(dòng)程序處理后會將以太網(wǎng)絡(luò)封包傳送到硬件層的以太網(wǎng)卡 113進(jìn)行實(shí)體傳輸?shù)某绦?,將以太網(wǎng)絡(luò)封包傳送到所連接的第二控制器120上 的以太網(wǎng)卡123(步驟220),透過執(zhí)行于第二控制器120軟件層上的專屬以太 網(wǎng)卡驅(qū)動(dòng)程序接收以太網(wǎng)絡(luò)封包后,便轉(zhuǎn)交此以太網(wǎng)絡(luò)封包給軟件層中的網(wǎng)絡(luò) 協(xié)議層(步驟230),最后由第二控制器120中的從控制器核心121自網(wǎng)絡(luò)協(xié)議 層中取回以太網(wǎng)絡(luò)封包中的請求,并執(zhí)行請求所對應(yīng)的程序(步驟240),完成 主控制器核心111與從控制器核心121之間透過以太網(wǎng)絡(luò)接口進(jìn)行通訊的過 程。另外,使用專屬硬件實(shí)現(xiàn)雙控制器之間通訊的流程也與此大致相同。因此, 可以發(fā)現(xiàn)任何需要透過以太網(wǎng)絡(luò)接口或者專屬硬件接口實(shí)現(xiàn)雙控制器之間通 訊的現(xiàn)有技術(shù)內(nèi)容都必須要額外安裝硬設(shè)備,如以太網(wǎng)絡(luò)卡、專屬硬件裝 置…,將造成成本和空間上的浪費(fèi),并且使用專屬硬件接口實(shí)現(xiàn)時(shí)更容易產(chǎn)生 傳輸效率、移植性、兼容性不佳的問題。
然而,我們也可以注意到在前面所提到圖1A中第一控制器110和第二控
制器120上都存在有各自的硬盤控制器112及122,在計(jì)算機(jī)系統(tǒng)100中,硬 盤控制器112及122主要與控制器110及120中的控制器核心111及121連接, 在控制器核心111及121的控制下負(fù)責(zé)控管計(jì)算機(jī)系統(tǒng)100中的硬盤組130, 而硬盤組幾乎在所有應(yīng)用環(huán)境下的計(jì)算機(jī)系統(tǒng)100都是必要不可少的硬件之 一,換句話說,硬盤控制器112及122也已經(jīng)成為現(xiàn)今計(jì)算機(jī)系統(tǒng)100運(yùn)作上 必備的硬件部分。
因此,本發(fā)明主要就是利用原本控制器110及120來實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)100 中兩個(gè)控制器之間的通訊,當(dāng)然原本硬盤控制器112及122所具有控管硬盤組 130的功能基本上維持不變,請參考圖2的部分。由圖中可明顯看出,實(shí)施本 發(fā)明基于硬盤控制器的雙控制器通訊系統(tǒng)的計(jì)算機(jī)系統(tǒng)100不再需要為了實(shí) 現(xiàn)內(nèi)部通訊而額外加裝其它的硬件,以前述的例子來說,以太網(wǎng)卡(或?qū)儆?件)l 13及123便可以自控制器110及120上移除,所騰出的空間未來便可提供 在控制器110及120上增加其它更多功能實(shí)現(xiàn)的可能性。
所述代表性的硬盤控制器112及122可以為序列依附小型計(jì)算機(jī)系統(tǒng)接口 控制器(Seriel-Attached SCSI Controller),如LSI型號1068E的硬盤控制器。 此種硬盤控制器同時(shí)提供發(fā)起端模式(Initiator Mode)及響應(yīng)端模式(Target Mode)進(jìn)行運(yùn)作因此可以提供本發(fā)明所需的雙向通訊支持,并且兩個(gè)硬盤控制 器之間可以透過實(shí)體聯(lián)機(jī)進(jìn)行相連。
有關(guān)本發(fā)明硬件及軟件詳細(xì)的交互運(yùn)作方塊示意及流程示意,請同時(shí)參考 圖3及圖4,在整個(gè)描述過程中我們設(shè)定第一控制器110為正在運(yùn)作且提供服 務(wù)的控制器,而第二控制器120為計(jì)算機(jī)系統(tǒng)100中的另一個(gè)控制器,作為第 --控制器110的備用控制器(事實(shí)上兩個(gè)控制器彼此之間可以互為對方的備用 控制器),整個(gè)過程以第一控制器110向第二控制器120提出請求要求執(zhí)行對 應(yīng)程序的描述為主(即第一控制器110為發(fā)起端,第二控制器為響應(yīng)端120)。 首先,在圖3的部分先交代本發(fā)明運(yùn)作上涉及硬件與軟件,其中硬件層部分包 括在第一控制器UO上的主控制器核心111及硬盤控制器112,以及在第二控 制器120上的從控制器核心121及硬盤控制器122;軟件層的部分包括分別于 第--控制器110與第二控制器上的網(wǎng)絡(luò)協(xié)議層301、虛擬網(wǎng)卡驅(qū)動(dòng)程序302以 及硬盤控制驅(qū)動(dòng)程序303。整個(gè)運(yùn)作可分為發(fā)起端(第一控制器IIO)執(zhí)行以及 響應(yīng)端(第二控制器120)執(zhí)行的部分(l)第一控制器llO部分
首先,如同現(xiàn)有技術(shù)般當(dāng)主控制器核心111接收到來自計(jì)算機(jī)系統(tǒng)100
外部由使用者所發(fā)出的指令(即請求)時(shí),透過網(wǎng)絡(luò)協(xié)議層生成并發(fā)送包含請求
的以太網(wǎng)絡(luò)封包;為了使以太網(wǎng)絡(luò)封包能夠順利被硬盤控制器112接收,必須 在以太網(wǎng)絡(luò)封包進(jìn)入到虛擬網(wǎng)卡驅(qū)動(dòng)程序302后進(jìn)行格式轉(zhuǎn)換的處理,此為本 案與現(xiàn)有技術(shù)中以太網(wǎng)絡(luò)驅(qū)動(dòng)程序最大不同處,透過執(zhí)行中的虛擬網(wǎng)卡驅(qū)動(dòng)程 序302接收以太網(wǎng)絡(luò)封包,并轉(zhuǎn)換以太網(wǎng)絡(luò)封包為具有標(biāo)頭信息的硬盤控制請 求進(jìn)行發(fā)送(步驟310)。因此,必須在虛擬網(wǎng)卡驅(qū)動(dòng)程序302中實(shí)現(xiàn)轉(zhuǎn)換格式 及發(fā)送的相關(guān)功能程序,在整個(gè)透過虛擬網(wǎng)卡驅(qū)動(dòng)程序302執(zhí)行轉(zhuǎn)換及發(fā)送的 過程中,虛擬網(wǎng)卡驅(qū)動(dòng)程序302必須根據(jù)以太網(wǎng)絡(luò)封包的實(shí)際大小來決定需要 填入硬盤控制請求的標(biāo)頭信息中的內(nèi)容;產(chǎn)生好標(biāo)頭信息之后再將原本的以太 網(wǎng)絡(luò)封包封包至待輸出的硬盤控制請求中,最后進(jìn)行發(fā)送。由虛擬網(wǎng)卡驅(qū)動(dòng)程 序302所發(fā)送的硬盤控制請求,會被執(zhí)行中的硬盤控制驅(qū)動(dòng)程序負(fù)責(zé)接收(步 驟320),并將其轉(zhuǎn)發(fā)給硬盤控制器(步驟330);最后,由硬盤控制器112透過 實(shí)體線路連接方式將硬盤控制請求傳送至第二控制器120的硬盤控制器122 中(步驟340),此步驟與現(xiàn)有技術(shù)相同。
由于系透過硬盤控制器112及122之間實(shí)體聯(lián)機(jī)的直接傳輸通訊,相對于 現(xiàn)有透過以太網(wǎng)絡(luò)接口或者專屬硬件接口實(shí)現(xiàn)的通訊方式來說,本發(fā)明的傳輸 速率將可大過現(xiàn)有技術(shù)許多。以序列依附小型計(jì)算機(jī)系統(tǒng)接口控制器
(Seriel-AttachedSCSIController)為例,其傳輸速率為3Gbps,而以太網(wǎng)絡(luò)接口 可提供的傳輸速率最大為1Gbps。
(2)第二控制器120部分
當(dāng)硬盤控制器122透過實(shí)體線路連接方式接收來自第一控制器110的硬盤 控制請求時(shí)會進(jìn)行轉(zhuǎn)發(fā)動(dòng)作(步驟350),使第二控制器120執(zhí)行中的硬盤控制 驅(qū)動(dòng)程序303可以接收硬盤控制請求并回傳至虛擬網(wǎng)卡驅(qū)動(dòng)程序302中(步驟 360),然后為了使硬盤控制請求能夠被網(wǎng)絡(luò)協(xié)議層301順利接收,因此必須透 過虛擬網(wǎng)卡驅(qū)動(dòng)程序302接收硬盤控制請求,并將硬盤控制請求還原成為以太 網(wǎng)絡(luò)封包后再進(jìn)行回傳(步驟370),最后的運(yùn)作與習(xí)知技術(shù)相同,由第二控制 器120中的從控制器核心121便可經(jīng)由網(wǎng)絡(luò)協(xié)議層301對以太網(wǎng)絡(luò)封包進(jìn)行接 收及還原,以獲得請求并供從控制器核心121可執(zhí)行對應(yīng)程序,至此完成整個(gè)
發(fā)起端(第一控制器IIO)與響應(yīng)端(第二控制器120)間基于硬盤控制器112及 122所實(shí)現(xiàn)的通訊流程。
本發(fā)明最主要技術(shù)內(nèi)容在于透過兩控制器110及120中網(wǎng)絡(luò)協(xié)議層301、 虛擬網(wǎng)卡驅(qū)動(dòng)程序302及硬盤控制驅(qū)動(dòng)程序303三者在軟件層中交互運(yùn)作以實(shí) 現(xiàn)基于硬盤控制器(112及122)的仿真以太網(wǎng)絡(luò)通訊機(jī)制,請參考圖4,圖屮顯 示網(wǎng)絡(luò)協(xié)議層301 、虛擬網(wǎng)卡驅(qū)動(dòng)程序302及硬盤控制驅(qū)動(dòng)程序303三者的交 互運(yùn)作關(guān)系,其中特別需要提到的是虛擬網(wǎng)卡驅(qū)動(dòng)程序302及硬盤控制驅(qū)動(dòng)程 序303的部分。
虛擬網(wǎng)卡驅(qū)動(dòng)程序302具有如下的細(xì)部方塊以滿足進(jìn)行以太網(wǎng)絡(luò)封包/硬 盤控制請求的轉(zhuǎn)換
(a) 以太網(wǎng)絡(luò)接口模塊3021,負(fù)責(zé)與網(wǎng)絡(luò)協(xié)議層301通訊,當(dāng)位于第一控 制器110端時(shí),負(fù)責(zé)接收來自網(wǎng)絡(luò)協(xié)議層301的以太網(wǎng)絡(luò)封包;或當(dāng)位于第二 控制器120端時(shí),則負(fù)責(zé)接收來自請求類型轉(zhuǎn)換模塊3022的硬盤控制請求 400。
(b) 請求類型轉(zhuǎn)換模塊3022,當(dāng)位于第一控制器110端接收以太網(wǎng)絡(luò)接口 模塊3021的以太網(wǎng)絡(luò)封包進(jìn)行轉(zhuǎn)換成為硬盤控制請求400進(jìn)行發(fā)送給數(shù)據(jù)發(fā) 送模塊3023;或當(dāng)位于第二控制器120端接收數(shù)據(jù)接收模塊3024的硬盤控制 請求400轉(zhuǎn)換成為以太網(wǎng)絡(luò)封包發(fā)給以太網(wǎng)絡(luò)接口模塊3021 。
其中將以太網(wǎng)絡(luò)封包轉(zhuǎn)換為硬盤控制請求400的部分,主要是透過判斷以 太網(wǎng)絡(luò)封包的大小來決定所要生成的硬盤控制請求400的標(biāo)頭信息410,然后 將以太網(wǎng)絡(luò)封包直接封包到包含此標(biāo)頭信息410的硬盤控制請求400中,然后 發(fā)給數(shù)據(jù)發(fā)送模塊3023。
其中將硬盤控制請求400轉(zhuǎn)換成為以太網(wǎng)絡(luò)封包的部分,則主要是透過解 析硬盤控制請求400中的標(biāo)頭信息410,來還原找出原始的以太網(wǎng)絡(luò)封包。
有關(guān)硬盤控制請求400,為數(shù)據(jù)結(jié)構(gòu)的部分,請參考圖5,主要分為標(biāo)頭 信息410以及以太網(wǎng)絡(luò)封包405兩個(gè)部分,其中標(biāo)頭信息410又可更細(xì)分包含 識別字段401(通常長度為8個(gè)字節(jié))、起始字段402(通常長度為4個(gè)字節(jié))、長 度字段403(通常長度為4個(gè)字節(jié))及預(yù)備字段404(通常長度視以太網(wǎng)絡(luò)封包 405長度而動(dòng)態(tài)決定)。其中,識別字段401記錄用于作為識別硬盤控制請求 400是否需要處理或者丟棄的內(nèi)容;起始字段402用以記錄以太網(wǎng)絡(luò)封包405
于整個(gè)硬盤控制請求400中的起始位置;長度字段403用以記錄整個(gè)硬盤控制 請求400的實(shí)際大小(通常為512字節(jié)的整數(shù)倍數(shù))預(yù)備字段404用以作為填 補(bǔ)整個(gè)硬盤控制請求400長度大小不足的部分(通常以"0"進(jìn)行填補(bǔ)),至于 硬盤控制請求400長度大小的規(guī)范則會因?yàn)樗捎玫闹噶罡袷讲煌兴?異。以太網(wǎng)絡(luò)封包405部分則直接封包在標(biāo)頭信息410之后,如圖所示。
在圖5的實(shí)施例當(dāng)中,硬盤控制請求400為小型計(jì)算機(jī)系統(tǒng)接口(Small Computer Systems Interface, SCSI)指令格式,透過直接記憶存取(Direct Memory Access, DMA)方式進(jìn)行發(fā)送的,此實(shí)施例中識別字段401的內(nèi)容為 "VIRTUAL"因此當(dāng)硬盤控制驅(qū)動(dòng)程序303中的發(fā)起端接口模塊3031接到此 硬盤控制請求400時(shí),便可透過字符串比對方式?jīng)Q定是否繼續(xù)處理或者直接丟 棄硬盤控制請求400。
我們假設(shè)標(biāo)頭信息410中的識別字段401為8個(gè)字節(jié)長,起始字段402 為4個(gè)字節(jié)長,長度字段403為4個(gè)字節(jié)長,則當(dāng)以太網(wǎng)絡(luò)封包405的長度為 "345"字節(jié)時(shí)(即長度字段403中的值為345)。由于前面提到,硬盤控制請求 400長度大小會因?yàn)樗捎玫闹噶罡袷讲煌兴町悾虼思僭O(shè)我們采取 WRITE_10 SCSI的指令格式時(shí),所要求的硬盤控制請求400長度大小應(yīng)為512 字節(jié)長,而此時(shí)所需的預(yù)備字段404具有的長度則為151個(gè)字節(jié)長(因此預(yù)備 字段404中的值應(yīng)該為151個(gè)填補(bǔ)的"0"),其長度的算法為 512*((345+16-1)/512+1)-(345+16),故整個(gè)以太網(wǎng)絡(luò)封包405于硬盤控制請求 400中的起始位置應(yīng)該是167,其為識別字段401、起始字段402、長度字段 403以及以太網(wǎng)絡(luò)封包405的長度總和,即(16+151),所以起始字段402中 的值應(yīng)該為"167"。
(c) 數(shù)據(jù)發(fā)送模塊3023,用以于第一控制器110端接收請求類型轉(zhuǎn)換模塊 3022發(fā)送的硬盤控制請求400,并基于發(fā)起端模式(Initiator Mode)轉(zhuǎn)發(fā)給硬盤 控制驅(qū)動(dòng)程序303的發(fā)起端接口模塊3031。
(d) 數(shù)據(jù)接收模塊3024,用以于第二控制器120端基于響應(yīng)端模式(Target Mode)接收硬盤控制驅(qū)動(dòng)程序303的響應(yīng)端接口模塊3032發(fā)送的硬盤控制請 求400,轉(zhuǎn)發(fā)給請求類型轉(zhuǎn)換模塊3022。
硬盤控制驅(qū)動(dòng)程序303則是設(shè)計(jì)有對應(yīng)于數(shù)據(jù)發(fā)送模塊3023的發(fā)起端接 口模塊3031,可基于發(fā)起端模式(Initiator Mode)接收硬盤控制請求400;以及對應(yīng)于數(shù)據(jù)接收模塊3024的響應(yīng)端接口模塊3032,可基于響應(yīng)端模式(Target Mode)發(fā)送硬盤控制請求400。
由圖3亦可知,兩個(gè)控制器110及120中控制器核心111及121網(wǎng)絡(luò)協(xié)議 層301、虛擬網(wǎng)卡驅(qū)動(dòng)程序302、硬盤控制驅(qū)動(dòng)程序303與硬盤控制器112及 122之間的通訊是可雙向的,也就是說當(dāng)兩控制器110及120的角色互換時(shí), 亦即第一控制器110成為響應(yīng)端而第二控制器成為發(fā)起端時(shí)控制器核心角色 亦對調(diào),亦可透過同樣的方式來實(shí)現(xiàn)通訊。
透過本發(fā)明,確實(shí)可達(dá)到大幅節(jié)省空間的目的,并增加可在控制器中開發(fā) 其它功能的可能性,同時(shí)達(dá)到大幅節(jié)省購買額外硬件的功效。另外,透過本發(fā) 明也可大幅提升內(nèi)部通訊傳輸效率及內(nèi)部通訊功能,再加上仿真以太網(wǎng)絡(luò)通訊 的實(shí)現(xiàn)技術(shù),更可產(chǎn)生高穩(wěn)定、易開發(fā)、兼容性及移植性佳的功效。
當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形, 但這些相應(yīng)的改變和變形都都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種基于硬盤控制器的雙控制器通訊方法,應(yīng)用于具有第一控制器與第二控制器的計(jì)算機(jī)系統(tǒng)上,其特征在于,該方法包含下列步驟在第一控制器執(zhí)行下列步驟主控制器核心接收請求,透過網(wǎng)絡(luò)協(xié)議層生成并發(fā)送包含請求的以太網(wǎng)絡(luò)封包;執(zhí)行中的虛擬網(wǎng)卡驅(qū)動(dòng)程序接收以太網(wǎng)絡(luò)封包,并轉(zhuǎn)換以太網(wǎng)絡(luò)封包為具有標(biāo)頭信息的硬盤控制請求進(jìn)行發(fā)送;執(zhí)行中的硬盤控制驅(qū)動(dòng)程序接收硬盤控制請求轉(zhuǎn)發(fā)給硬盤控制器;及硬盤控制器透過實(shí)體線路連接方式傳送硬盤控制請求至第二控制器;及在第二控制器執(zhí)行下列步驟硬盤控制器透過實(shí)體線路連接方式接收來自第一控制器的硬盤控制請求進(jìn)行轉(zhuǎn)發(fā);執(zhí)行中的硬盤控制驅(qū)動(dòng)程序接收硬盤控制請求回傳給虛擬網(wǎng)卡驅(qū)動(dòng)程序;執(zhí)行中的虛擬網(wǎng)卡驅(qū)動(dòng)程序接收硬盤控制請求,并轉(zhuǎn)換硬盤控制請求為以太網(wǎng)絡(luò)封包進(jìn)行回傳;及從控制器核心透過網(wǎng)絡(luò)協(xié)議層對以太網(wǎng)絡(luò)封包的接收及還原獲得請求并執(zhí)行對應(yīng)程序。
2. 根據(jù)權(quán)利要求1所述的基于硬盤控制器的雙控制器通訊方法,其特征在 于,其中執(zhí)行中的虛擬網(wǎng)卡驅(qū)動(dòng)程序接收以太網(wǎng)絡(luò)封包,并轉(zhuǎn)換以太網(wǎng)絡(luò)封包 為硬盤控制請求進(jìn)行發(fā)送的步驟,更包含下列步驟依據(jù)以太網(wǎng)絡(luò)封包大小生成對應(yīng)的標(biāo)頭信息; 將以太網(wǎng)絡(luò)封包封包至硬盤控制請求;及 基于發(fā)起端模式發(fā)送硬盤控制請求。
3. 根據(jù)權(quán)利要求1所述的基于硬盤控制器的雙控制器通訊方法,其特征在 于,其中執(zhí)行中的硬盤控制驅(qū)動(dòng)程序接收硬盤控制請求轉(zhuǎn)發(fā)給硬盤控制器的步 驟,是基于發(fā)起端模式接收硬盤控制請求。
4. 根據(jù)權(quán)利要求1所述的基于硬盤控制器的雙控制器通訊方法,其特征在 于,其中執(zhí)行中的硬盤控制驅(qū)動(dòng)程序接收硬盤控制請求回傳給虛擬網(wǎng)卡驅(qū)動(dòng)程序的步驟,是基于響應(yīng)端模式接收硬盤控制請求。
5. 根據(jù)權(quán)利要求1所述的基于硬盤控制器的雙控制器通訊方法,其特征在 于,其中執(zhí)行中的虛擬網(wǎng)卡驅(qū)動(dòng)程序接收硬盤控制請求,并轉(zhuǎn)換硬盤控制請求 為以太網(wǎng)絡(luò)封包進(jìn)行回傳的步驟,更包含下列步驟基于響應(yīng)端模式接收硬盤控制請求;及 根據(jù)標(biāo)頭信息解析硬盤控制請求,以還原以太網(wǎng)絡(luò)封包。
6. 根據(jù)權(quán)利要求1所述的基于硬盤控制器的雙控制器通訊方法,其特征在 于,其中硬盤控制請求為小型計(jì)算機(jī)系統(tǒng)接口指令格式。
7. 根據(jù)權(quán)利要求6所述的基于硬盤控制器的雙控制器通訊方法,其特征在 于,其中小型計(jì)算機(jī)系統(tǒng)接口指令格式,是透過直接記憶存取方式發(fā)送硬盤控 制請求。
8. 根據(jù)權(quán)利要求7所述的基于硬盤控制器的雙控制器通訊方法,其特征在 于,其中硬盤控制請求包含標(biāo)頭信息及以太網(wǎng)絡(luò)封包兩部分,標(biāo)頭信息至少包 含識別字段、起始字段、長度字段及預(yù)備字段。
9. 一種基于硬盤控制器的雙控制器通訊系統(tǒng),應(yīng)用于具雙控制器之計(jì)算機(jī) 系統(tǒng)上,其特征在于,該系統(tǒng)包含第一控制器,其包含 一主控制器核心,用以接收請求;一網(wǎng)絡(luò)協(xié)議層,用以生成并發(fā)送包含請求的以太網(wǎng)絡(luò)封包; 一虛擬網(wǎng)卡驅(qū)動(dòng)程序,用以接收以太網(wǎng)絡(luò)封包,并轉(zhuǎn)換以太網(wǎng)絡(luò)封包為具有標(biāo)頭信息的硬盤控制請求進(jìn)行發(fā)送;--硬盤控制驅(qū)動(dòng)程序,用以接收硬盤控制請求進(jìn)行轉(zhuǎn)發(fā);及 一硬盤控制器,用以在收到硬盤控制請求后,透過實(shí)體線路連接方式傳送硬盤控制請求至第二控制器;及 第二控制器,其包含--硬盤控制器,用以透過實(shí)體線路連接方式接收來自第一控制器的硬盤控制請求進(jìn)行轉(zhuǎn)發(fā);一硬盤控制驅(qū)動(dòng)程序,用以接收硬盤控制請求進(jìn)行回傳;一虛擬網(wǎng)卡驅(qū)動(dòng)程序,用以接收硬盤控制請求,并轉(zhuǎn)換硬盤控制請求為以太網(wǎng)絡(luò)封包后進(jìn)行回傳;-網(wǎng)絡(luò)協(xié)議層,用以接收以太網(wǎng)絡(luò)封包以還原請求;及 一從控制器核心,用以接收請求并執(zhí)行對應(yīng)程序。
10. 根據(jù)權(quán)利要求9所述的基于硬盤控制器的雙控制器通訊系統(tǒng),其特 征在于,其中第一控制器的虛擬網(wǎng)卡驅(qū)動(dòng)程序與硬盤控制驅(qū)動(dòng)程序之間系基于 發(fā)起端模式進(jìn)行硬盤控制請求的發(fā)送/接收。
11. 根據(jù)權(quán)利要求9所述的基于硬盤控制器的雙控制器通訊系統(tǒng),其特 征在于,其中第二控制器的硬盤控制驅(qū)動(dòng)程序與虛擬網(wǎng)卡驅(qū)動(dòng)程序之間系基于 響應(yīng)端模式進(jìn)行硬盤控制請求的發(fā)it/接收。
12. 根據(jù)權(quán)利要求9所述的基于硬盤控制器的雙控制器通訊系統(tǒng),其特 征在于,其中硬盤控制請求為小型計(jì)算機(jī)系統(tǒng)接口指令格式。
13. 根據(jù)權(quán)利要求12所述的基于硬盤控制器的雙控制器通訊系統(tǒng),其特 征在于,其中小型計(jì)算機(jī)系統(tǒng)接口指令格式,是透過直接記憶存取方式發(fā)送硬 盤控制請求。
14. 根據(jù)權(quán)利要求13所述的基于硬盤控制器的雙控制器通訊系統(tǒng),其特 征在于,其中硬盤控制請求包含標(biāo)頭信息及以太網(wǎng)絡(luò)封包兩部分,標(biāo)頭信息至 少包含識別字段、起始字段、長度字段及預(yù)備字段。
15. 根據(jù)權(quán)利要求9所述的基于硬盤控制器的雙控制器通訊系統(tǒng),其特 征在于,其中第一控制器的硬盤控制器與第二控制器的硬盤控制器為序列依附 小型計(jì)算機(jī)系統(tǒng)接口控制器。
16. 根據(jù)權(quán)利要求9所述的基于硬盤控制器的雙控制器通訊系統(tǒng),其特 征在于,其中虛擬網(wǎng)卡驅(qū)動(dòng)程序更包含下列模塊以太網(wǎng)絡(luò)接口模塊,用以于第一控制器端負(fù)責(zé)接收來自網(wǎng)絡(luò)協(xié)議層的以太 網(wǎng)絡(luò)封包,或于第二控制器端負(fù)責(zé)接收來自請求類型轉(zhuǎn)換模塊的硬盤控制請 求;請求類型轉(zhuǎn)換模塊,用以于第一控制器端接收以太網(wǎng)絡(luò)接口模塊的以太網(wǎng) 絡(luò)封包進(jìn)行轉(zhuǎn)換成為硬盤控制請求進(jìn)行發(fā)送給數(shù)據(jù)發(fā)送模塊,或于第二控制器 端接收數(shù)據(jù)接收模塊的硬盤控制請求轉(zhuǎn)換成為以太網(wǎng)絡(luò)封包發(fā)給以太網(wǎng)絡(luò)接 口模塊;數(shù)據(jù)發(fā)送模塊,用以于第一控制器端接收請求類型轉(zhuǎn)換模塊發(fā)送的硬盤控 制請求,并基于發(fā)起端模式轉(zhuǎn)發(fā)給硬盤控制驅(qū)動(dòng)程序;及數(shù)據(jù)接收模塊,用以于第二控制器端基于響應(yīng)端模式接收硬盤控制驅(qū)動(dòng)程 序發(fā)送的硬盤控制請求,轉(zhuǎn)發(fā)給請求類型轉(zhuǎn)換模塊。
17.根據(jù)權(quán)利要求9所述的基于硬盤控制器的雙控制器通訊系統(tǒng),其特 征在于,其中硬盤控制驅(qū)動(dòng)程序更包含下列模塊發(fā)起端接口模塊,用以基于發(fā)起端模式接收硬盤控制請求;及 響應(yīng)端接口模塊,用以基于響應(yīng)端模式發(fā)送硬盤控制請求。
全文摘要
本發(fā)明公開了一種基于硬盤控制器的雙控制器通訊系統(tǒng)及其方法,應(yīng)用于具有雙控制器的計(jì)算機(jī)系統(tǒng),利用兩個(gè)控制器各自的硬盤控制器來實(shí)現(xiàn)兩控制器之間的內(nèi)部通訊。技術(shù)內(nèi)容在于先于兩控制器中仿真以太網(wǎng)絡(luò)通訊,使得第一控制器的主控制器核心能夠?qū)⒄埱笠砸蕴W(wǎng)絡(luò)封包形式發(fā)送,并透過內(nèi)部對請求類型的轉(zhuǎn)換使作為發(fā)起端的硬盤控制器得以接收請求并傳送至第二控制器的響應(yīng)端硬盤控制器,經(jīng)過相反程序的還原處理可使第二控制器的從控制器核心重新獲得以太網(wǎng)絡(luò)封包形式的請求以執(zhí)行對應(yīng)的程序,完成雙控制器之間的內(nèi)部通訊。
文檔編號H04L29/06GK101175073SQ200610137980
公開日2008年5月7日 申請日期2006年11月1日 優(yōu)先權(quán)日2006年11月1日
發(fā)明者劉文涵, 孟祥濱, 陳玄同 申請人:英業(yè)達(dá)股份有限公司