本發(fā)明涉及無序數(shù)據(jù)產(chǎn)生領(lǐng)域,特別涉及一種無序數(shù)據(jù)的生成方法、裝置及系統(tǒng)。
背景技術(shù):
隨著電子技術(shù)的快速發(fā)展,電子設(shè)備之間的數(shù)據(jù)交互也變的錯綜復(fù)雜,其中,對于進(jìn)行數(shù)據(jù)交互中的無序數(shù)據(jù)來說,現(xiàn)有技術(shù)中大多采用軟件的方式生成。具體的可以是利用從軟件獲取當(dāng)前時間,將當(dāng)前時間作為參數(shù),以此生成無序數(shù)據(jù)。如果生成的無序數(shù)據(jù)的當(dāng)前時間不同,則生成的無序數(shù)據(jù)不重復(fù)。但是,因?yàn)殡娮釉O(shè)備的時間是用戶可以任意設(shè)置的,因此在生成無序數(shù)據(jù)時采用的當(dāng)前時間很可能會相同,進(jìn)而會導(dǎo)致生成的無序數(shù)據(jù)重復(fù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例公開了一種無序數(shù)據(jù)的生成方法、裝置及系統(tǒng),用以解決無序數(shù)據(jù)生成重復(fù)的問題。
為了達(dá)到上述目的,本發(fā)明實(shí)施例公開了一種無序數(shù)據(jù)的生成方法,應(yīng)用于硬件設(shè)備,所述硬件設(shè)備與主機(jī)通過外接接口相連,該方法包括:
接收主機(jī)發(fā)送的調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息;
執(zhí)行至少一次以下操作:
獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第一時間;按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及時間進(jìn)行組合;對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,判斷哈希運(yùn)算后的至少一個哈希值的長度是否大于所述長度;
如果是,生成滿足所述長度的無序數(shù)據(jù)。
進(jìn)一步地,所述硬件資源包括以下至少一種:
中央處理器CPU、內(nèi)存和輸入輸出接口。
進(jìn)一步地,所述調(diào)用指令中還攜帶有硬件設(shè)備的標(biāo)識信息;所述執(zhí)行至少一次以下操作之前,所述方法還包括:
判斷自身的標(biāo)識信息是否與所述調(diào)用指令中攜帶的硬件設(shè)備的標(biāo)識信息相同;
如果相同,則進(jìn)行后續(xù)執(zhí)行至少一次以下操作的步驟。
進(jìn)一步地,所述調(diào)用指令中還攜帶有待生成的無序數(shù)據(jù)的類型的信息;所述按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及時間進(jìn)行組合包括:
根據(jù)所述類型,將獲取的所述各資源的標(biāo)識信息及時間轉(zhuǎn)換為該類型的數(shù)據(jù),并將轉(zhuǎn)換后的各數(shù)據(jù)按照預(yù)設(shè)的格式進(jìn)行組合。
進(jìn)一步地,所述無序數(shù)據(jù)的類型包括:字符型和數(shù)字型。
進(jìn)一步地,所述調(diào)用指令中還攜帶有待生成的無序數(shù)據(jù)的生成時間的信息;所述執(zhí)行至少一次以下操作之前包括:
根據(jù)所述調(diào)用指令中攜帶的生成時間的信息,判斷當(dāng)前是否為第一次執(zhí)行以下操作的時間;
如果是,則進(jìn)行執(zhí)行至少一次以下操作的步驟。
進(jìn)一步地,所述調(diào)用指令中還攜帶有待生成的無序數(shù)據(jù)的時間間隔的信息;所述執(zhí)行至少一次以下操作包括:
按照設(shè)定的時間間隔執(zhí)行至少一次以下操作。
進(jìn)一步地,所述硬件設(shè)備為通過以下任一接口與主機(jī)連接的設(shè)備:
m.2接口、mstata接口、sata接口和usb接口。
本發(fā)明實(shí)施例公開了一種無序數(shù)據(jù)的生成方法,應(yīng)用于主機(jī),所述主機(jī)通過外接接口與硬件設(shè)備相連,該方法包括:
向硬件設(shè)備發(fā)送調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息;
獲取硬件設(shè)備發(fā)送的滿足所述長度的無序數(shù)據(jù),其中所述無序數(shù)據(jù)為所述硬件設(shè)備執(zhí)行至少一次以下操作:獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第一時間;按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及時間進(jìn)行組合;對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,判斷哈希運(yùn)算后的至少一個哈希值的長度是否大于所述長度,當(dāng)該至少一個哈希值的長度大于所述長度時獲取的。
本發(fā)明實(shí)施例公開了一種無序數(shù)據(jù)的生成裝置,所述裝置包括:
接收模塊,用于接收主機(jī)發(fā)送的調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息;
執(zhí)行模塊,用于執(zhí)行至少一次以下操作:獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第一時間;按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及時間進(jìn)行組合;對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,判斷哈希運(yùn)算后的至少一個哈希值的長度是否大于所述長度;
生成模塊,當(dāng)執(zhí)行模塊判斷結(jié)果為是時,用于生成滿足所述長度的無序數(shù)據(jù)。
進(jìn)一步地,所述裝置還包括:
第一判斷模塊,用于判斷自身的標(biāo)識信息是否與所述調(diào)用指令中攜帶的硬件設(shè)備的標(biāo)識信息相同;
所述執(zhí)行模塊,還用于當(dāng)?shù)谝慌袛嗄K判斷結(jié)果為是時,則進(jìn)行后續(xù)執(zhí)行至少一次以下操作的步驟。
進(jìn)一步地,所述執(zhí)行模塊,具體用于根據(jù)所述類型,將獲取的所述各資源的標(biāo)識信息及時間轉(zhuǎn)換為該類型的數(shù)據(jù),并將轉(zhuǎn)換后的各數(shù)據(jù)按照預(yù)設(shè)的格式進(jìn)行組合。
進(jìn)一步地,所述裝置還包括:
第二判斷模塊,用于根據(jù)所述調(diào)用指令中攜帶的生成時間的信息,判斷當(dāng)前是否為第一次執(zhí)行以下操作的時間;
所述執(zhí)行模塊,還用于當(dāng)?shù)诙袛嗄K判斷結(jié)果為是時,則進(jìn)行執(zhí)行至少一次以下操作的步驟。
進(jìn)一步地,所述執(zhí)行模塊,具體用于按照設(shè)定的時間間隔執(zhí)行至少一次以下操作。
本發(fā)明實(shí)施例公開了一種無序數(shù)據(jù)的生成裝置,所述裝置包括:
發(fā)送模塊,用于向硬件設(shè)備發(fā)送調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息;
獲取模塊,用于獲取硬件設(shè)備發(fā)送的滿足所述長度的無序數(shù)據(jù),其中所述無序數(shù)據(jù)為所述硬件設(shè)備執(zhí)行至少一次以下操作:獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第一時間;按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及時間進(jìn)行組合;對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,判斷哈希運(yùn)算后的至少一個哈希值的長度是否大于所述長度,當(dāng)該至少一個哈希值的長度大于所述長度時獲取的。
本發(fā)明實(shí)施例公開了一種無序數(shù)據(jù)的生成系統(tǒng),包括應(yīng)用于硬件設(shè)備的無序數(shù)據(jù)的生成裝置,及應(yīng)用于主機(jī)的無序數(shù)據(jù)的生成裝置。
本發(fā)明實(shí)施例提供了一種無序數(shù)據(jù)的生成方法、裝置及系統(tǒng),該方法包括:接收主機(jī)發(fā)送的調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息;執(zhí)行至少一次以下操作:獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第一時間;按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及時間進(jìn)行組合;對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,判斷哈希運(yùn)算后的至少一個哈希值的長度是否大于所述長度;如果是,生成滿足所述長度的無序數(shù)據(jù)。由于本發(fā)明實(shí)施例中,主機(jī)在生成無序數(shù)據(jù)時,將調(diào)用指令發(fā)送給硬件設(shè)備,硬件設(shè)備獲取自身的各硬件資源的標(biāo)識信息并記錄獲取各硬件資源的標(biāo)識信息的時間,根據(jù)自身的各硬件資源的標(biāo)識信息和對應(yīng)的時間生成滿足長度的無序數(shù)據(jù),因此有效地避免了因?yàn)闀r間重復(fù)導(dǎo)致無序數(shù)據(jù)生成重復(fù)的問題。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例1提供的一種無序數(shù)據(jù)的生成過程示意圖;
圖2為本發(fā)明實(shí)施例4提供的硬件設(shè)備中無序數(shù)據(jù)的生成過程示意圖;
圖3為本發(fā)明實(shí)施例4提供的硬件設(shè)備中無序數(shù)據(jù)的生成過程示意圖;
圖4為本發(fā)明實(shí)施例5提供的一種無序數(shù)據(jù)的生成過程示意圖;
圖5為本發(fā)明實(shí)施例提供的一種無序數(shù)據(jù)的生成過程詳細(xì)示意圖;
圖6為本發(fā)明實(shí)施例提供的一種無序數(shù)據(jù)的生成裝置結(jié)構(gòu)示意圖;
圖7為本發(fā)明實(shí)施例提供的一種無序數(shù)據(jù)的生成裝置結(jié)構(gòu)示意圖;
圖8為本發(fā)明實(shí)施例提供的一種無序數(shù)據(jù)的生成系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了解決生成的無序數(shù)據(jù)重復(fù)的問題,本發(fā)明實(shí)施例提供了一種無序數(shù)據(jù)的生成方法、裝置及系統(tǒng)。
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例1:
圖1為本發(fā)明實(shí)施例1提供的一種無序數(shù)據(jù)的生成過程示意圖,應(yīng)用于硬件設(shè)備,該過程包括以下步驟:
S101:接收主機(jī)發(fā)送的調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息。
具體的,硬件設(shè)備與主機(jī)通過外接接口相連,其中所述硬件設(shè)備為通過以下任一接口與主機(jī)連接的設(shè)備:m.2接口、mstata接口、sata接口和usb接口。硬件設(shè)備與主機(jī)連接后,主機(jī)可以與硬件設(shè)備進(jìn)行信息交互。當(dāng)需要生成無序數(shù)據(jù)時,主機(jī)向硬件設(shè)備發(fā)送調(diào)用指令,硬件設(shè)備接收主機(jī)發(fā)送的調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息。硬件設(shè)備執(zhí)行接收到的調(diào)用指令之后,會生成一定長度的無序數(shù)據(jù),硬件設(shè)備根據(jù)調(diào)用指令中攜帶的待生成的無序數(shù)據(jù)的長度的信息獲取滿足該長度的無序數(shù)據(jù)。
S102:獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第一時間;按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及第一時間進(jìn)行組合。
具體的,硬件設(shè)備在接收到主機(jī)發(fā)送的調(diào)用指令之后,根據(jù)調(diào)用指令獲取自身的各硬件資源的標(biāo)識信息,所述硬件資源包括以下資源中的至少一種:中央處理器CPU、內(nèi)存和輸入輸出接口。在獲取硬件資源的標(biāo)識信息時,可以只獲取其中一種硬件資源的標(biāo)識信息,例如只獲取CPU的標(biāo)識信息;或者,只獲取內(nèi)存的標(biāo)識信息;或者,只獲取輸入輸出接口的標(biāo)識信息,也可以獲取兩種硬件資源的標(biāo)識信息,例如同時獲取CPU的標(biāo)識信息和內(nèi)存的標(biāo)識信息;或者,同時獲取CPU的標(biāo)識信息和輸入輸出接口的標(biāo)識信息;或者,同時獲取內(nèi)存的標(biāo)識信息和輸入輸出接口的標(biāo)識信息,也可以同時獲取上述三種硬件資源的標(biāo)識信息。
其中,CPU的標(biāo)識信息可以是CPU的硬件設(shè)備信息,例如可以是CPU的設(shè)備號;內(nèi)存的標(biāo)識信息可以是內(nèi)存的設(shè)備號,也可以是內(nèi)存中任意一個芯片的設(shè)備號;輸入輸出接口的標(biāo)識信息可以是輸入輸出接口的地址信息等。
該硬件設(shè)備在獲取自身的各硬件資源的標(biāo)識信息的同時,記錄獲取各硬件資源的標(biāo)識信息的第一時間,并且按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及第一時間進(jìn)行組合。該預(yù)設(shè)的格式可以包含多種方式,例如:該預(yù)設(shè)格式可以是所有的硬件資源的標(biāo)識信息組合在一起,所有的時間信息組合在一起,例如當(dāng)獲取cpu的標(biāo)識信息的第一時間為201684513,獲取內(nèi)存的標(biāo)識信息的第一時間為201610748,獲取輸入輸出接口的標(biāo)識信息的第一時間為201694216,則硬件資源的標(biāo)識信息及時間信息的組合Message=cpu的標(biāo)識信息:內(nèi)存的標(biāo)識信息:輸入輸出接口的標(biāo)識信息:201684513:201610748:201694216;也可以是硬件資源的標(biāo)識信息之間拼接時間信息組合在一起,即Message=cpu的標(biāo)識信息:201684513:內(nèi)存的標(biāo)識信息:201610748:輸入輸出接口的標(biāo)識信息:201694216;或者,Message=cpu的標(biāo)識信息:201684513:輸入輸出接口的標(biāo)識信息:內(nèi)存的標(biāo)識信息:201610748:201694216等。
S103:對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,判斷哈希運(yùn)算后的至少一個哈希值的長度是否大于所述長度,如果是,執(zhí)行步驟S104,如果否,繼續(xù)執(zhí)行S102。
具體的,硬件設(shè)備按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及第一時間進(jìn)行組合之后,需要對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,并得到第一哈希值,判斷所述第一哈希值的長度是否大于所述長度,如果否,再次獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第二時間,按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及第二時間進(jìn)行組合,對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,并得到第二哈希值,判斷所述第一哈希值和所述第二哈希值的總長度是否大于所述長度,直到生成的多個哈希值的總長度大于所述長度為止。其中,哈希運(yùn)算為現(xiàn)有技術(shù),本發(fā)明實(shí)施例中不再贅述。
S104:生成滿足所述長度的無序數(shù)據(jù)。
具體的,硬件設(shè)備判斷所述第一哈希值的長度是否大于所述長度,如果是截取所述長度的第一哈希值生成滿足所述長度的無序數(shù)據(jù),如果否,硬件設(shè)備判斷所述第一哈希值和所述第二哈希值的總長度是否大于所述長度,如果是,在所述總長度中截取所述長度的哈希值生成滿足所述長度的無序數(shù)據(jù)。
其中,所述長度是在至少一個哈希值總長度中的任意區(qū)間截取的一段長度。例如,當(dāng)硬件設(shè)備對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算之后,得到了一段32個字節(jié)長度的第一哈希值,對另一所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算之后,得到了一段32個字節(jié)長度的第二哈希值,而所述待生成的無序數(shù)據(jù)長度為48個字節(jié)長度,此時,可以將第一哈希值的全部,及第二哈希值中前16個字節(jié)作為生成的滿足所述長度的無序數(shù)據(jù);或者,可以從第一哈希值中截取后16個字節(jié),將第二哈希值的全部作為生成滿足所述長度的無序數(shù)據(jù);或者,可以從第一哈希值中任意截取20個字節(jié),并從第二哈希值中任意截取28字節(jié),生成滿足所述長度的無序數(shù)據(jù)等等。
由于本發(fā)明實(shí)施例中,主機(jī)在生成無序數(shù)據(jù)時,將調(diào)用指令發(fā)送給硬件設(shè)備,硬件設(shè)備獲取自身的各硬件資源的標(biāo)識信息并記錄獲取各硬件資源的標(biāo)識信息的時間,根據(jù)自身的各硬件資源的標(biāo)識信息和對應(yīng)的時間生成滿足長度的無序數(shù)據(jù),因此有效地避免了因?yàn)闀r間重復(fù)導(dǎo)致無序數(shù)據(jù)生成重復(fù)的問題。
實(shí)施例2:
與主機(jī)相連的硬件設(shè)備自身都包含有唯一確定的硬件設(shè)備的標(biāo)識信息,即硬件資源的標(biāo)識信息,為了生成不重復(fù)的無序數(shù)據(jù),在生成無序數(shù)據(jù)時,主機(jī)可以使用不同的硬件設(shè)備,因此在本發(fā)明實(shí)施例中,所述調(diào)用指令中除了攜帶待生成的無序數(shù)據(jù)的長度的信息以外,所述調(diào)用指令中還攜帶有硬件設(shè)備的標(biāo)識信息;所述執(zhí)行至少一次以下操作之前,所述方法還包括:
判斷自身的標(biāo)識信息是否與所述調(diào)用指令中攜帶的硬件設(shè)備的標(biāo)識信息相同;
如果相同,則進(jìn)行后續(xù)執(zhí)行至少一次以下操作的步驟。
具體的,硬件設(shè)備接收到的主機(jī)發(fā)送的調(diào)用指令中攜帶有待生成的無序數(shù)據(jù)的長度的信息和硬件設(shè)備的標(biāo)識信息。其中,該硬件設(shè)備的標(biāo)識信息可以是該硬件設(shè)備的設(shè)備號,硬件設(shè)備執(zhí)行調(diào)用指令的操作步驟之前,需要驗(yàn)證主機(jī)發(fā)送調(diào)用指令的對象確實(shí)是自身硬件設(shè)備,而非其他的硬件設(shè)備,因此硬件設(shè)備需要判斷自身的標(biāo)識信息是否與所述調(diào)用指令中攜帶的硬件設(shè)備的標(biāo)識信息相同,如果相同,該硬件設(shè)備則執(zhí)行后續(xù)所述調(diào)用指令的操作步驟,如果不相同,該硬件設(shè)備則不執(zhí)行后續(xù)所述調(diào)用指令的操作步驟。
實(shí)施例3:
在本發(fā)明實(shí)施例中,所述調(diào)用指令中除了攜帶待生成的無序數(shù)據(jù)的長度的信息以外,所述調(diào)用指令中還可以攜帶有待生成的無序數(shù)據(jù)的類型的信息;所述按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及時間進(jìn)行組合包括:
根據(jù)所述類型,將獲取的所述各資源的標(biāo)識信息及時間轉(zhuǎn)換為該類型的數(shù)據(jù),并將轉(zhuǎn)換后的各數(shù)據(jù)按照預(yù)設(shè)的格式進(jìn)行組合。
具體的,硬件設(shè)備接收到的主機(jī)發(fā)送的調(diào)用指令中攜帶有待生成的無序數(shù)據(jù)的長度的信息和待生成的無序數(shù)據(jù)的類型的信息,其中,所述無序數(shù)據(jù)的類型包括:字符型和數(shù)字型。該硬件設(shè)備按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及時間進(jìn)行組合時,需要判斷待生成的無序數(shù)據(jù)的類型,當(dāng)待生成的無序數(shù)據(jù)的類型為字符型時,該硬件設(shè)備將時間轉(zhuǎn)換為字符型的數(shù)據(jù),并將轉(zhuǎn)換后的各數(shù)據(jù)按照預(yù)設(shè)的格式進(jìn)行組合;當(dāng)待生成的無序數(shù)據(jù)的類型為數(shù)字型時,該硬件設(shè)備將獲取的所述各資源的標(biāo)識信息轉(zhuǎn)換為數(shù)字型的數(shù)據(jù),并將轉(zhuǎn)換后的各數(shù)據(jù)按照預(yù)設(shè)的格式進(jìn)行組合,從而保證了硬件設(shè)備最終生成的無序數(shù)據(jù)與主機(jī)發(fā)送的調(diào)用指令中待生成的無序數(shù)據(jù)的一致性。
其中,所述硬件設(shè)備將時間轉(zhuǎn)換為字符型的數(shù)據(jù)的技術(shù)與該硬件設(shè)備將獲取的所述各資源的標(biāo)識信息轉(zhuǎn)換為數(shù)字型的數(shù)據(jù)的技術(shù),均為現(xiàn)有技術(shù),本發(fā)明實(shí)施例中不再贅述。
實(shí)施例4:
在本發(fā)明實(shí)施例4中,所述調(diào)用指令中除了攜帶待生成的無序數(shù)據(jù)的長度的信息以外,所述調(diào)用指令中還可以攜帶有待生成的無序數(shù)據(jù)的生成時間的信息;所述執(zhí)行至少一次以下操作之前包括:
根據(jù)所述調(diào)用指令中攜帶的生成時間的信息,判斷當(dāng)前是否為第一次執(zhí)行以下操作的時間,如果是,則進(jìn)行執(zhí)行至少一次以下操作的步驟。
具體的,硬件設(shè)備接收到的主機(jī)發(fā)送的調(diào)用指令中攜帶有待生成的無序數(shù)據(jù)的長度的信息和待生成的無序數(shù)據(jù)的生成時間的信息。該硬件設(shè)備在接收到所述調(diào)用指令后,判斷當(dāng)前時間是否為所述調(diào)用指令中攜帶的生成時間,當(dāng)硬件設(shè)備的當(dāng)前時間是所述調(diào)用指令中攜帶的生成時間時,開始第一次執(zhí)行至少一次以下操作步驟,如果硬件設(shè)備的當(dāng)前時間不是所述調(diào)用指令中攜帶的生成時間時,則等待所述調(diào)用指令中攜帶的生成時間到來時,開始第一次執(zhí)行至少一次以下操作步驟。
另外,該調(diào)用指令中攜帶的生成時間的信息,也可以是一個多長時間以后生成無序數(shù)據(jù)的時間間隔的信息,當(dāng)硬件設(shè)備接收到該調(diào)用指令時,確定接收到該調(diào)用指令的接收時間,根據(jù)該接收時間及時間間隔,確定無序數(shù)據(jù)的生成時間,判斷當(dāng)前時間是否為該無序數(shù)據(jù)的生成時間,如果是,則進(jìn)行無序數(shù)據(jù)的生成。
具體的,圖2為本發(fā)明實(shí)施例提供的硬件設(shè)備中無序數(shù)據(jù)的生成過程示意圖,應(yīng)用于硬件設(shè)備,該過程包括以下步驟:
S201:硬件設(shè)備接收主機(jī)發(fā)送的調(diào)用指令,其中所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的生成時間的信息及待生成的無序數(shù)據(jù)的長度的信息。
S202:硬件設(shè)備判斷當(dāng)前時間是否與所述調(diào)用指令中攜帶的待生成的無序數(shù)據(jù)的生成時間一致,如果是,則進(jìn)行步驟S203,如果否,則繼續(xù)進(jìn)行步驟S202。
S203:獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第一時間;按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及第一時間進(jìn)行組合。
S204:對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,判斷哈希運(yùn)算后的至少一個哈希值的長度是否大于所述長度,如果是,執(zhí)行步驟S205,如果否,繼續(xù)執(zhí)行S203。
S205:生成滿足所述長度的無序數(shù)據(jù)并發(fā)送給主機(jī)。
另外,主機(jī)在發(fā)送的所述調(diào)用指令中還攜帶有待生成的無序數(shù)據(jù)的時間間隔的信息;所述執(zhí)行至少一次以下操作包括:按照設(shè)定的時間間隔執(zhí)行至少一次以下操作。
具體的,硬件設(shè)備接收到的主機(jī)發(fā)送的調(diào)用指令中還攜帶有待生成的無序數(shù)據(jù)的時間間隔的信息,硬件設(shè)備在接收到主機(jī)發(fā)送的調(diào)用指令后,可以按照該時間間隔生成所述長度的無序數(shù)據(jù),并發(fā)送到主機(jī)。所述時間間隔可以是有規(guī)律的時間間隔,例如,硬件設(shè)備每隔7ms生成無序數(shù)據(jù),并發(fā)送給主機(jī)滿足所述長度的無序數(shù)據(jù),也可以是無規(guī)律的時間間隔,例如,硬件設(shè)備分別間隔4ms、20ms、15ms生成無序數(shù)據(jù),并發(fā)送給主機(jī)滿足所述長度的無序數(shù)據(jù)。
圖3為本發(fā)明實(shí)施例提供的硬件設(shè)備中無序數(shù)據(jù)的生成過程示意圖,應(yīng)用于硬件設(shè)備,該過程包括以下步驟:
S301:硬件設(shè)備接收到主機(jī)發(fā)送的調(diào)用指令,其中所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的時間間隔的信息及待生成的無序數(shù)據(jù)的長度的信息。
S302:硬件設(shè)備獲取所述調(diào)用指令中攜帶的待生成的無序數(shù)據(jù)的時間間隔的信息。
S303:獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第一時間;按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及第一時間進(jìn)行組合。
S304:對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,判斷哈希運(yùn)算后的至少一個哈希值的長度是否大于所述長度,如果是,執(zhí)行步驟S305,如果否,繼續(xù)執(zhí)行S303。
S305:生成滿足所述長度的無序數(shù)據(jù)并發(fā)送給主機(jī),并記錄生成所述無序數(shù)據(jù)的生成時間信息。
S306:根據(jù)當(dāng)前時間及該生成時間信息,計(jì)算當(dāng)前的時間間隔,判斷當(dāng)前的時間間隔是否達(dá)到該生成的無序數(shù)據(jù)的時間間隔,如果是,則進(jìn)行S303,否則,繼續(xù)S306。
實(shí)施例5:
圖4為本發(fā)明實(shí)施例提供一種無序數(shù)據(jù)的生成過程示意圖,應(yīng)用于主機(jī),該過程包括以下步驟:
S401:向硬件設(shè)備發(fā)送調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息。
具體的,主機(jī)通過外接接口與硬件設(shè)備相連,其中所述硬件設(shè)備為通過以下任一接口與主機(jī)連接的設(shè)備:m.2接口、mstata接口、sata接口和usb接口。硬件設(shè)備與主機(jī)連接后,主機(jī)可以與硬件設(shè)備進(jìn)行信息交互。當(dāng)需要生成無序數(shù)據(jù)時,主機(jī)向硬件設(shè)備發(fā)送調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息。
S402:獲取硬件設(shè)備發(fā)送的滿足所述長度的無序數(shù)據(jù),其中所述無序數(shù)據(jù)為所述硬件設(shè)備執(zhí)行至少一次以下操作:獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第一時間;按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及時間進(jìn)行組合;對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,判斷哈希運(yùn)算后的至少一個哈希值的長度是否大于所述長度,當(dāng)該至少一個哈希值的長度大于所述長度時獲取的。
具體的,硬件設(shè)備在接收到主機(jī)發(fā)送的調(diào)用指令之后,獲取自身的各硬件資源的標(biāo)識信息,該硬件設(shè)備在獲取自身的各硬件資源的標(biāo)識信息的同時,記錄獲取各硬件資源的標(biāo)識信息的第一時間,并且按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及第一時間進(jìn)行組合,該預(yù)設(shè)的格式可以包含多種方式,例如:該預(yù)設(shè)格式可以是所有的硬件資源的標(biāo)識信息組合在一起,所有的時間信息組合在一起,例如當(dāng)獲取cpu的標(biāo)識信息的第一時間為201684513,獲取內(nèi)存的標(biāo)識信息的第一時間為201610748,獲取輸入輸出接口的標(biāo)識信息的第一時間為201694216,則硬件資源的標(biāo)識信息及時間信息的組合Message=cpu的標(biāo)識信息:內(nèi)存的標(biāo)識信息:輸入輸出接口的標(biāo)識信息:201684513:201610748:201694216;也可以是硬件資源的標(biāo)識信息之間拼接時間信息組合在一起,即Message=cpu的標(biāo)識信息:201684513:內(nèi)存的標(biāo)識信息:201610748:輸入輸出接口的標(biāo)識信息:201694216;或者,Message=cpu的標(biāo)識信息:201684513:輸入輸出接口的標(biāo)識信息:內(nèi)存的標(biāo)識信息:201610748:201694216等。
具體的,硬件設(shè)備按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及第一時間進(jìn)行組合之后,需要對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,并得到第一哈希值,判斷所述第一哈希值的長度是否大于所述長度,如果否,再次獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第二時間,按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及第二時間進(jìn)行組合,對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,并得到第二哈希值,判斷所述第一哈希值和所述第二哈希值的總長度是否大于所述長度。具體的,硬件設(shè)備判斷所述第一哈希值的長度是否大于所述長度,如果是截取所述長度的第一哈希值生成滿足所述長度的無序數(shù)據(jù),如果否,硬件設(shè)備判斷所述第一哈希值和所述第二哈希值的總長度是否大于所述長度,如果是,在所述總長度中任意截取所述長度的哈希值生成滿足所述長度的無序數(shù)據(jù)。
其中,所述長度是在至少一個哈希值總長度中的任意區(qū)間截取的一段長度。例如,當(dāng)硬件設(shè)備對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算之后,得到了一段32個字節(jié)長度的第一哈希值,對另一所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算之后,得到了一段32個字節(jié)長度的第二哈希值,而所述待生成的無序數(shù)據(jù)長度為48個字節(jié)長度,此時,可以將第一哈希值的全部,及第二哈希值中前16個字節(jié)作為生成的滿足所述長度的無序數(shù)據(jù);或者,可以從第一哈希值中截取后16個字節(jié),將第二哈希值的全部作為生成滿足所述長度的無序數(shù)據(jù);或者,可以從第一哈希值中任意截取20個字節(jié),并從第二哈希值中任意截取28字節(jié),生成滿足所述長度的無序數(shù)據(jù)等等。最后,主機(jī)獲取硬件設(shè)備發(fā)送的滿足所述長度的無序數(shù)據(jù)。
圖5為本發(fā)明實(shí)施例提供的一種無序數(shù)據(jù)的生成過程詳細(xì)示意圖,該過程包括以下步驟:
S501:主機(jī)向硬件設(shè)備發(fā)送調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息。
S502:硬件設(shè)備接收主機(jī)發(fā)送的調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息。
S503:硬件設(shè)備獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的時間;按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及時間進(jìn)行組合。
S504:硬件設(shè)備對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,判斷哈希運(yùn)算后的至少一個哈希值的長度是否大于所述長度,如果是,執(zhí)行步驟S505,如果否,執(zhí)行步驟S503。
S505:硬件設(shè)備生成滿足所述長度的無序數(shù)據(jù),并發(fā)送滿足所述長度的無序數(shù)據(jù)至主機(jī)。
S506:主機(jī)獲取硬件設(shè)備發(fā)送的滿足所述長度的無序數(shù)據(jù)。
圖6為本發(fā)明實(shí)施例提供的一種無序數(shù)據(jù)的生成裝置示意圖,應(yīng)用于硬件設(shè)備,該裝置包括:
接收模塊61,用于接收主機(jī)發(fā)送的調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息;
執(zhí)行模塊62,用于執(zhí)行至少一次以下操作:獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第一時間;按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及時間進(jìn)行組合;對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,判斷哈希運(yùn)算后的至少一個哈希值的長度是否大于所述長度;
生成模塊63,當(dāng)執(zhí)行模塊判斷結(jié)果為是時,用于生成滿足所述長度的無序數(shù)據(jù)。
所述裝置還包括:
第一判斷模塊64,用于判斷自身的標(biāo)識信息是否與所述調(diào)用指令中攜帶的硬件設(shè)備的標(biāo)識信息相同;
所述執(zhí)行模塊62,還用于當(dāng)?shù)谝慌袛嗄K判斷結(jié)果為是時,則進(jìn)行后續(xù)執(zhí)行至少一次以下操作的步驟。
所述執(zhí)行模塊62,具體用于根據(jù)所述類型,將獲取的所述各資源的標(biāo)識信息及時間轉(zhuǎn)換為該類型的數(shù)據(jù),并將轉(zhuǎn)換后的各數(shù)據(jù)按照預(yù)設(shè)的格式進(jìn)行組合。
所述裝置還包括:
第二判斷模塊65,用于根據(jù)所述調(diào)用指令中攜帶的生成時間的信息,判斷當(dāng)前是否為第一次執(zhí)行以下操作的時間;
所述執(zhí)行模塊62,還用于當(dāng)?shù)诙袛嗄K判斷結(jié)果為是時,則進(jìn)行執(zhí)行至少一次以下操作的步驟。
所述執(zhí)行模塊62,具體用于按照設(shè)定的時間間隔執(zhí)行至少一次以下操作。
圖7為本發(fā)明實(shí)施例提供的一種無序數(shù)據(jù)的生成裝置示意圖,應(yīng)用于主機(jī),該裝置包括:。
發(fā)送模塊71,用于向硬件設(shè)備發(fā)送調(diào)用指令,所述調(diào)用指令中攜帶待生成的無序數(shù)據(jù)的長度的信息;
獲取模塊72,用于獲取硬件設(shè)備發(fā)送的滿足所述長度的無序數(shù)據(jù),其中所述無序數(shù)據(jù)為所述硬件設(shè)備執(zhí)行至少一次以下操作:獲取自身的各硬件資源的標(biāo)識信息,并記錄獲取各硬件資源的標(biāo)識信息的第一時間;按照預(yù)設(shè)的格式對所述各硬件資源的標(biāo)識信息及時間進(jìn)行組合;對所述組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算,判斷哈希運(yùn)算后的至少一個哈希值的長度是否大于所述長度,當(dāng)該至少一個哈希值的長度大于所述長度時獲取的。
圖8為本發(fā)明實(shí)施例提供的一種無序數(shù)據(jù)的生成系統(tǒng)結(jié)構(gòu)示意圖,所述系統(tǒng)包括圖6所示的應(yīng)用于硬件設(shè)備81的無序數(shù)據(jù)的生成裝置,及圖7所示的應(yīng)用于主機(jī)82的無序數(shù)據(jù)的生成裝置。
本發(fā)明公開了一種無序數(shù)據(jù)的生成方法、裝置及系統(tǒng),用以解決無序數(shù)據(jù)生成重復(fù)的問題,該方法包括:硬件設(shè)備根據(jù)主機(jī)發(fā)送的調(diào)用指令,執(zhí)行至少一次以下操作:獲取自身各硬件資源的標(biāo)識信息,記錄獲取所述標(biāo)識信息的第一時間;按照預(yù)設(shè)格式對所述標(biāo)識信息及時間進(jìn)行組合的數(shù)據(jù)采用哈希運(yùn)算,當(dāng)至少一個哈希值的長度大于所述長度時生成滿足長度的無序數(shù)據(jù)。由于本發(fā)明實(shí)施例中,主機(jī)在生成無序數(shù)據(jù)時,將調(diào)用指令發(fā)送給硬件設(shè)備,硬件設(shè)備獲取自身的各硬件資源的標(biāo)識信息并記錄獲取各硬件資源的標(biāo)識信息的時間,根據(jù)自身的各硬件資源的標(biāo)識信息和對應(yīng)的時間生成滿足長度的無序數(shù)據(jù),因此有效地避免了因?yàn)闀r間重復(fù)導(dǎo)致無序數(shù)據(jù)生成重復(fù)的問題。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。