一種基于感控協(xié)議包的物聯(lián)模組設(shè)備硬件加速裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息化領(lǐng)域,特別涉及一種基于感控協(xié)議包的物聯(lián)模組設(shè)備硬件加速裝置及方法。
【背景技術(shù)】
[0002]隨著醫(yī)療信息化的推進(jìn),醫(yī)院的信息化建設(shè)將逐漸由HIS系統(tǒng)、EMR等系統(tǒng)向各個(gè)專(zhuān)科門(mén)診深入。醫(yī)院感控防治是醫(yī)院醫(yī)療衛(wèi)生管理上的一個(gè)重要環(huán)節(jié),對(duì)防止院級(jí)感染、醫(yī)院患者及時(shí)得到抗菌藥物治療等方面都具有積極重要的作用和意義。限于現(xiàn)有的醫(yī)院院級(jí)服務(wù)器系統(tǒng)和軟件運(yùn)行平臺(tái),院級(jí)感控系統(tǒng)存在諸多的不穩(wěn)定因素,例如系統(tǒng)運(yùn)行不穩(wěn)定、門(mén)診高峰時(shí)段跟不上患者接診數(shù)量上升的需求等。
[0003]這些都是因?yàn)獒t(yī)院信息系統(tǒng)由純軟件方式實(shí)現(xiàn)而突出的性能瓶頸問(wèn)題。同時(shí)醫(yī)院信息系統(tǒng)的傳統(tǒng)的數(shù)據(jù)采集結(jié)構(gòu)中,DMA(直接內(nèi)存訪問(wèn))引擎只設(shè)計(jì)了一個(gè)傳輸通道。當(dāng)軟件多線程共享數(shù)據(jù)時(shí)加鎖開(kāi)銷(xiāo)很大,導(dǎo)致負(fù)載均衡單元無(wú)法實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)分發(fā),使得數(shù)據(jù)包無(wú)法通過(guò)DMA(直接內(nèi)存訪問(wèn))通道高速傳輸?shù)街鳈C(jī)的不同內(nèi)存緩沖區(qū)。因此,數(shù)據(jù)包無(wú)法進(jìn)入后端服務(wù)器,數(shù)據(jù)處理滯后,甚至導(dǎo)致數(shù)據(jù)系統(tǒng)不穩(wěn)定和系統(tǒng)癱瘓。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種基于感控協(xié)議包的物聯(lián)模組設(shè)備硬件加速裝置及方法,能解決現(xiàn)有的醫(yī)院信息系統(tǒng)由純軟件方式實(shí)現(xiàn)而導(dǎo)致不穩(wěn)定,容易系統(tǒng)癱瘓的問(wèn)題。
[0005]為此,本發(fā)明提供了一種基于感控協(xié)議包的物聯(lián)模組設(shè)備硬件加速裝置,包括:數(shù)據(jù)平面結(jié)構(gòu)單元、預(yù)處理單元、仲裁單元、流水級(jí)后端單元,
[0006]所述數(shù)據(jù)平面結(jié)構(gòu)單元,用以在每個(gè)數(shù)據(jù)包進(jìn)入接收隊(duì)列時(shí),打上一個(gè)硬件時(shí)間戳。
[0007]所述預(yù)處理單元,用以對(duì)數(shù)據(jù)包層協(xié)議進(jìn)行解析和預(yù)處理,根據(jù)不同的應(yīng)用需求,通過(guò)可編程接口配置,有選擇地使數(shù)據(jù)包進(jìn)入處理單元進(jìn)行后續(xù)處理;
[0008]所述仲裁單元,用以對(duì)各個(gè)處理單元并行執(zhí)行的處理結(jié)果進(jìn)行仲裁;
[0009]所述流水級(jí)后端單元,將數(shù)據(jù)包復(fù)制成兩路,根據(jù)仲裁結(jié)果對(duì)兩路數(shù)據(jù)包進(jìn)行采集和轉(zhuǎn)發(fā)。
[0010]可選的,所述預(yù)處理單元具有若干個(gè)包分類(lèi)單元、流表查詢(xún)單元組成的處理單元,根據(jù)不同的應(yīng)用需求,通過(guò)可編程接口配置,有選擇地使數(shù)據(jù)包進(jìn)入包分類(lèi)單元、流表查詢(xún)單元中的一個(gè)或多個(gè)處理單元,進(jìn)行后續(xù)處理。
[0011]可選的,所述仲裁遵循的算法為:依據(jù)進(jìn)入處理單元的數(shù)據(jù)包的分類(lèi)類(lèi)別、流表查詢(xún)的結(jié)果分析,得出一個(gè)處理結(jié)果的優(yōu)先級(jí),該優(yōu)先級(jí)依據(jù)Rm,Wm的優(yōu)先級(jí)推斷得出優(yōu)先級(jí)的排序,作為仲裁處理總線An (η = 1,2,3……)獲取標(biāo)識(shí)的依據(jù):
[0012]Rm表示對(duì)可編程接口進(jìn)行讀,
[0013]Wm表示對(duì)可編程接口進(jìn)行寫(xiě),
[0014]Rn (η = O, I, 2)和Wn (η = O, I, 2, 3......)分別表示第N個(gè)處理單元對(duì)端口的讀寫(xiě)操作,I I (or)(代表邏輯或),&&(and)(代表邏輯與),
[0015]I)讀算法:
[0016]Rm = R0&& (R11 | /WO) && (R2 | | /ffl | | /W0) &&......
[0017]2)寫(xiě)算法:
[0018]Wm = W0&&(ffl| |/RO)&&(W2| |/RO| |/Rl)&&(W3| |/RO| |/Rl| |/R2)&&......
[0019]3)總線獲取標(biāo)識(shí):
[0020]Al = (Rl ffl)&&/ (RO WO)
[0021 ] A2 = (R2 I IW2) &&/ (Rl | | ffl) &&/ (RO | | WO)
[0022]A3 = W3&&/ (R2 | | W2) &&/ (Rl | | Wl) &&/ (R0 | | W0)......。
[0023]可選的,所述流水級(jí)后端單元,包括數(shù)據(jù)包采集單元、數(shù)據(jù)包轉(zhuǎn)發(fā)單元,用以將數(shù)據(jù)包復(fù)制成兩路:數(shù)據(jù)包采集單元講數(shù)據(jù)包送入采集部分,通過(guò)負(fù)載均衡和多通道高速DMA引擎?zhèn)鬏斨梁蠖朔?wù)器進(jìn)一步處理;數(shù)據(jù)包轉(zhuǎn)發(fā)單元將數(shù)據(jù)包送入轉(zhuǎn)發(fā)引擎,提供快速的數(shù)據(jù)包轉(zhuǎn)發(fā)路徑,根據(jù)具體的應(yīng)用需求,選擇對(duì)流量進(jìn)行清洗和控制。
[0024]可選的,所述仲裁模塊還負(fù)責(zé)對(duì)數(shù)據(jù)包進(jìn)行封裝,將前端處理單元的處理結(jié)果和整個(gè)數(shù)據(jù)包封裝在自定義格式的記錄中,供后續(xù)處理使用。
[0025]本發(fā)明還提供了一種基于感控協(xié)議包的物聯(lián)模組設(shè)備硬件加速方法,包括:
[0026]在每個(gè)數(shù)據(jù)包進(jìn)入接收隊(duì)列時(shí),打上一個(gè)硬件時(shí)間戳。
[0027]對(duì)數(shù)據(jù)包層協(xié)議進(jìn)行解析和預(yù)處理,根據(jù)不同的應(yīng)用需求,通過(guò)可編程接口配置,有選擇地使數(shù)據(jù)包進(jìn)入處理單元進(jìn)行后續(xù)處理;
[0028]對(duì)各個(gè)處理單元并行執(zhí)行的處理結(jié)果進(jìn)行仲裁;
[0029]將數(shù)據(jù)包復(fù)制成兩路,根據(jù)仲裁結(jié)果對(duì)兩路數(shù)據(jù)包進(jìn)行采集和轉(zhuǎn)發(fā)。
[0030]可選的,后端服務(wù)器使用環(huán)形緩沖區(qū)技術(shù)和零拷貝技術(shù)。
[0031]可選的,根據(jù)仲裁結(jié)果將數(shù)據(jù)包復(fù)制成兩路:一路將數(shù)據(jù)包送入采集部分,通過(guò)負(fù)載均衡和多通道高速DMA引擎?zhèn)鬏斨梁蠖朔?wù)器進(jìn)一步處理;另一路將數(shù)據(jù)包送入轉(zhuǎn)發(fā)引擎,提供快速的數(shù)據(jù)包轉(zhuǎn)發(fā)路徑,根據(jù)具體的應(yīng)用需求,選擇對(duì)流量進(jìn)行清洗和控制。
[0032]可選的,仲裁過(guò)程還包括對(duì)數(shù)據(jù)包進(jìn)行封裝,將前端處理單元的處理結(jié)果和整個(gè)數(shù)據(jù)包封裝在自定義格式的記錄中,供后續(xù)處理使用。
[0033]可選的,所述仲裁遵循的算法為:依據(jù)進(jìn)入處理單元的數(shù)據(jù)包的分類(lèi)類(lèi)別、流表查詢(xún)的結(jié)果分析,得出一個(gè)處理結(jié)果的優(yōu)先級(jí),該優(yōu)先級(jí)依據(jù)Rm,Wm的優(yōu)先級(jí)推斷得出優(yōu)先級(jí)的排序,作為仲裁處理總線An (η = 1,2,3……)獲取標(biāo)識(shí)的依據(jù):
[0034]Rm表示對(duì)可編程接口進(jìn)行讀
[0035]Wm表示對(duì)可編程接口進(jìn)行寫(xiě)
[0036]Rn (η = O, I, 2)和Wn (η = O, I, 2, 3......)分別表示第N個(gè)處理單元對(duì)端P的讀寫(xiě)操作,I I (or)(代表邏輯或),&&(and)(代表邏輯與)。
[0037]I)讀算法:
[0038]Rm = R0&& (Rl | | /WO) && (R2 | | /ffl | | /W0) &&......
[0039]2)寫(xiě)算法:
[0040]Wm = W0&&(ffl| |/RO)&&(W2| |/RO| |/Rl)&&(W3| |/RO| |/Rl| |/R2)&&......
[0041]3)總線獲取標(biāo)識(shí):
[0042]Al = (Rl I ffl)&&/ (RO WO)
[0043]A2 = (R2 | | W2) &&/ (Rl | | ffl) &&/ (RO | | W0)
[0044]A3 = W3&&/ (R2 | | W2) &&/ (Rl | | Wl) &&/ (RO | | W0)......。
[0045]本發(fā)明的有益效果是:
[0046]本發(fā)明采用一個(gè)并行優(yōu)化的線速數(shù)據(jù)采集結(jié)構(gòu),卸載軟件多線程共享數(shù)據(jù)的加鎖開(kāi)銷(xiāo),使用負(fù)載均衡單元在硬件中實(shí)現(xiàn)數(shù)據(jù)分發(fā),然后將數(shù)據(jù)包通過(guò)DMA(直接內(nèi)存訪問(wèn))通道分別高速傳輸?shù)街鳈C(jī)的不同內(nèi)存緩沖區(qū)。因此,數(shù)據(jù)包進(jìn)入后端服務(wù)器時(shí),已經(jīng)實(shí)現(xiàn)了數(shù)據(jù)級(jí)的并行分解,后端各處理線程數(shù)據(jù)完全獨(dú)立,可以實(shí)現(xiàn)無(wú)鎖編程,避免了線程互斥開(kāi)銷(xiāo)。同時(shí),后端主機(jī)可以配合使用環(huán)形緩沖區(qū)技術(shù)和零拷貝技術(shù),避免數(shù)據(jù)拷貝的開(kāi)銷(xiāo)。
【附圖說(shuō)明】
[0047]圖1是本發(fā)明實(shí)施例的加速設(shè)計(jì)理論原理圖;
[0048]圖2是本發(fā)明實(shí)施例的硬件加速裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0049]下面結(jié)合附圖,通過(guò)具體實(shí)施例,對(duì)本發(fā)明的技術(shù)方案進(jìn)行清楚、完整的描述。
[0050]請(qǐng)參考圖1和圖2,為本發(fā)明實(shí)施例的加速設(shè)計(jì)理論原理圖和硬件加速裝置的結(jié)構(gòu)示意圖,所述基于感控協(xié)議包的物聯(lián)模組設(shè)備硬件加速方法包括:數(shù)據(jù)平面結(jié)構(gòu)單元10、預(yù)處理單元20、仲裁單元30、流水級(jí)后端單元40,
[0051]所述數(shù)據(jù)平面結(jié)構(gòu)單元10,用以在每個(gè)數(shù)據(jù)包進(jìn)入接收隊(duì)列時(shí),打上一個(gè)硬件時(shí)間戳。
[0052]所述預(yù)處理單元20,用以對(duì)數(shù)據(jù)包層協(xié)議進(jìn)行解析和預(yù)處理,根據(jù)不同的應(yīng)用需求,通過(guò)可編程接口配置,有選擇地使數(shù)據(jù)包進(jìn)入處理單元進(jìn)行后續(xù)處理;
[0053]所述仲裁單元30,用以對(duì)各個(gè)處理單元并行執(zhí)行的處理結(jié)果進(jìn)行仲裁;
[0054]所述流水級(jí)后端單元40,將數(shù)據(jù)包復(fù)制成兩路,根據(jù)仲裁結(jié)果對(duì)兩路數(shù)據(jù)包進(jìn)行采集和轉(zhuǎn)發(fā)。
[0055]所述數(shù)據(jù)平面結(jié)構(gòu)10,使用流水和并行技術(shù),用以在每個(gè)數(shù)據(jù)包進(jìn)入接收隊(duì)列時(shí),立即打上一個(gè)硬件時(shí)間戳。
[0056]本發(fā)明實(shí)施例采用GAL的硬件時(shí)間戳標(biāo)記電路,在每個(gè)數(shù)據(jù)包進(jìn)入接收隊(duì)列時(shí),打上一個(gè)硬件時(shí)間戳。該GAL硬件時(shí)間戳標(biāo)記電路能夠?qū)崟r(shí)的標(biāo)記時(shí)間同步報(bào)文的收發(fā)時(shí)間戳。
[0057]所述預(yù)處理單元20具有若干個(gè)包分類(lèi)單元、流表查詢(xún)單元組成的處理單元,根據(jù)不同的應(yīng)用需求,通過(guò)可編程接口配置,有選擇地使數(shù)據(jù)包進(jìn)入包分類(lèi)單元、流表查詢(xún)單元中的一個(gè)或多個(gè)處理單元,進(jìn)行后續(xù)處理。
[0058]本實(shí)施例中,對(duì)各個(gè)處理單元的處理結(jié)果進(jìn)行仲裁遵循的算法為:依據(jù)進(jìn)入處理單元的數(shù)據(jù)包的分類(lèi)類(lèi)別、流表查詢(xún)的結(jié)果分析,得出一個(gè)處理結(jié)果的優(yōu)先級(jí),該優(yōu)先級(jí)依據(jù)Rm,Wm的優(yōu)先級(jí)推斷得出優(yōu)先級(jí)的排序,作為仲裁處理總線An (η = 1,2,3……)獲取標(biāo)識(shí)的依據(jù):
[0059]Rm表示對(duì)可編程接口進(jìn)行讀,
[0060]Wm表示對(duì)可編程接口進(jìn)行寫(xiě),
[0061]Rn (η = O, I, 2)和Wn (η = O, I, 2, 3......)分別表示第N個(gè)處理單元對(duì)端口的讀寫(xiě)