理模塊再次執(zhí)行所述第一線程。其中,所述請求寫寄存器的指令的優(yōu)先級高于所述第一線程的優(yōu)先級;在所述第一線程執(zhí)行完成后,指示所述寄存器處理模塊301再次執(zhí)行第一線程,所述再次執(zhí)行的第一線程對應(yīng)的操作包括:讀取寄存器的數(shù)據(jù),將讀取到的數(shù)據(jù)存儲到第三內(nèi)存區(qū)域,根據(jù)所述第二內(nèi)存區(qū)域中的數(shù)據(jù)更新所述第三內(nèi)存區(qū)域中的數(shù)據(jù),將所述第三內(nèi)存區(qū)域更新后的數(shù)據(jù)寫入所述寄存器。
[0052]在上述流程中,所述寄存器處理模塊301在更新所述第一內(nèi)存區(qū)域中的數(shù)據(jù)時,僅更新所述第一內(nèi)存區(qū)域所存儲寄存器數(shù)據(jù)中的第一比特位上的數(shù)據(jù),所述第一比特位的數(shù)據(jù)為所述光模塊的狀態(tài)數(shù)據(jù)或控制數(shù)據(jù);根據(jù)所述請求寫寄存器的指令在第二內(nèi)存區(qū)域?qū)懭霐?shù)據(jù)時,寫入的數(shù)據(jù)為寄存器數(shù)據(jù)中的第二比特位數(shù)據(jù),所述第二比特位的數(shù)據(jù)為所述光模塊的狀態(tài)和控制數(shù)據(jù)。
[0053]在上述流程中,所述寄存器處理模塊301根據(jù)所述第二內(nèi)存區(qū)域中的所述第二比特位數(shù)據(jù),更新所述第三內(nèi)存區(qū)域中的寄存器數(shù)據(jù)中的第二比特位數(shù)據(jù),保持所述第三內(nèi)存區(qū)域中的寄存器數(shù)據(jù)中的其余比特位數(shù)據(jù)不變。
[0054]在上述流程中,所述寄存器處理模塊301根據(jù)設(shè)定周期執(zhí)行所述更新寄存器的第一線程。
[0055]在上述實施例中,所述第一比特位為所述光模塊中的寄存器數(shù)據(jù)中的第7比特位,所述第7比特位的數(shù)據(jù)用于反映TX Disable引腳的狀態(tài),所述第二比特位為所述光模塊中的寄存器數(shù)據(jù)中的第6比特位,所述第6比特位的數(shù)據(jù)用于指示關(guān)斷光模塊發(fā)射部分。
[0056]本發(fā)明的上述實施例提供的裝置,在更新寄存器時,首先讀取寄存器的數(shù)據(jù)并存儲到第一內(nèi)存區(qū)域,更新所述第一內(nèi)存區(qū)域中的數(shù)據(jù),再將更新后的數(shù)據(jù)寫入寄存器。若在更新寄存器的過程中,主機請求寫該寄存器,則先將主機寫入的數(shù)據(jù)存儲在第二內(nèi)存區(qū)域中,待更新寄存器過程結(jié)束后,再讀取寄存器中的數(shù)據(jù)存儲到第三內(nèi)存區(qū)域中,根據(jù)所述第二內(nèi)存區(qū)域中的數(shù)據(jù)更新第三內(nèi)存區(qū)域中的數(shù)據(jù),將所述第三內(nèi)存區(qū)域中更新后的數(shù)據(jù)寫入所述寄存器。根據(jù)上述的方法,主機請求寫入的數(shù)據(jù)不是直接寫入寄存器,而是先寫入第三內(nèi)存區(qū)域,待寄存器更新完成后再將第三內(nèi)存區(qū)域中的數(shù)據(jù)寫入寄存器,避免了主機寫入寄存器的信息在寄存器更新過程中被覆蓋進而導(dǎo)致通信失效的情況發(fā)生。
[0057]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0058]這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0059]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0060]盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
[0061]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【主權(quán)項】
1.一種更新寄存器的方法,其特征在于,包括: 執(zhí)行更新寄存器的第一線程,所述第一線程對應(yīng)的操作包括:讀取寄存器的數(shù)據(jù),將讀取到的數(shù)據(jù)存儲到第一內(nèi)存區(qū)域,更新所述第一內(nèi)存區(qū)域中的數(shù)據(jù),將更新后的數(shù)據(jù)寫入所述寄存器; 在所述第一線程執(zhí)行期間,若接收到主機發(fā)送的請求寫寄存器的指令,則根據(jù)所述請求寫寄存器的指令中斷執(zhí)行所述第一線程,執(zhí)行第二線程,所述第二線程對應(yīng)的操作包括:根據(jù)所述請求寫寄存器的指令在第二內(nèi)存區(qū)域?qū)懭霐?shù)據(jù),恢復(fù)執(zhí)行所述第一線程,在所述第一線程執(zhí)行完成后,再次執(zhí)行第一線程;所述請求寫寄存器的指令的優(yōu)先級高于所述第一線程的優(yōu)先級; 所述再次執(zhí)行的第一線程對應(yīng)的操作包括:讀取寄存器的數(shù)據(jù),將讀取到的數(shù)據(jù)存儲到第三內(nèi)存區(qū)域,根據(jù)所述第二內(nèi)存區(qū)域中的數(shù)據(jù)更新所述第三內(nèi)存區(qū)域中的數(shù)據(jù),將所述第三內(nèi)存區(qū)域更新后的數(shù)據(jù)寫入所述寄存器。2.如權(quán)利要求1所述的方法,其特征在于,所述更新所述第一內(nèi)存區(qū)域的數(shù)據(jù),包括:更新所述第一內(nèi)存區(qū)域中存儲的寄存器數(shù)據(jù)中的第一比特位數(shù)據(jù); 在所述第二內(nèi)存區(qū)域?qū)懭氲臄?shù)據(jù)為寄存器數(shù)據(jù)中的第二比特位數(shù)據(jù)。3.如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述第二內(nèi)存區(qū)域中的數(shù)據(jù)更新所述第三內(nèi)存區(qū)域的數(shù)據(jù),包括: 根據(jù)所述第二內(nèi)存區(qū)域中的所述第二比特位數(shù)據(jù),更新所述第三內(nèi)存區(qū)域中的寄存器數(shù)據(jù)中的第二比特位數(shù)據(jù),保持所述第三內(nèi)存區(qū)域中的寄存器數(shù)據(jù)中的其余比特位數(shù)據(jù)不變。4.如權(quán)利要求2或3所述的方法,其特征在于,所述第一比特位的數(shù)據(jù)為所述光模塊的狀態(tài)數(shù)據(jù)或控制數(shù)據(jù),所述第二比特位的數(shù)據(jù)為所述光模塊的狀態(tài)和控制數(shù)據(jù)。5.如權(quán)利要求1所述的方法,其特征在于,所述執(zhí)行更新寄存器的第一線程,包括: 根據(jù)設(shè)定周期執(zhí)行所述更新寄存器的第一線程。6.一種更新寄存器的裝置,其特征在于,包括:控制模塊、寄存器處理模塊和中斷處理豐吳塊; 所述控制模塊:用于指示所述寄存器處理模塊執(zhí)行更新寄存器的第一線程,所述第一線程對應(yīng)的操作包括:讀取寄存器的數(shù)據(jù),將讀取到的數(shù)據(jù)存儲到第一內(nèi)存區(qū)域,更新所述第一內(nèi)存區(qū)域中的數(shù)據(jù),將更新后的數(shù)據(jù)寫入所述寄存器; 在所述第一線程執(zhí)行期間,若接收到請求寫寄存器的指令,則根據(jù)所述請求寫寄存器的指令指示所述寄存器處理模塊中斷執(zhí)行所述第一線程,執(zhí)行第二線程,指示所述中斷處理模塊根據(jù)所述請求寫寄存器的指令在第二內(nèi)存區(qū)域?qū)懭霐?shù)據(jù),指示所述寄存器處理模塊恢復(fù)執(zhí)行所述第一線程,在所述第一線程執(zhí)行完成后,指示寄存器處理模塊再次執(zhí)行所述第一線程;所述請求寫寄存器的指令的優(yōu)先級高于所述第一線程的優(yōu)先級;以及 所述再次執(zhí)行的第一線程對應(yīng)的操作包括:讀取寄存器的數(shù)據(jù),將讀取到的數(shù)據(jù)存儲到第三內(nèi)存區(qū)域,根據(jù)所述第二內(nèi)存區(qū)域中的數(shù)據(jù)更新所述第三內(nèi)存區(qū)域中的數(shù)據(jù),將所述第三內(nèi)存區(qū)域更新后的數(shù)據(jù)寫入所述寄存器。7.如權(quán)利要求6所述的裝置,其特征在于,所述寄存器處理模塊,具體用于:更新所述第一內(nèi)存區(qū)域中存儲的寄存器數(shù)據(jù)中的第一比特位數(shù)據(jù); 在所述第二內(nèi)存區(qū)域?qū)懭氲臄?shù)據(jù)為寄存器數(shù)據(jù)中的第二比特位數(shù)據(jù)。8.如權(quán)利要求6所述的裝置,其特征在于,所述寄存器處理模塊,具體用于: 根據(jù)所述第二內(nèi)存區(qū)域中的所述第二比特位數(shù)據(jù),更新所述第三內(nèi)存區(qū)域中的寄存器數(shù)據(jù)中的第二比特位數(shù)據(jù),保持所述第三內(nèi)存區(qū)域中的寄存器數(shù)據(jù)中的其余比特位數(shù)據(jù)不變。9.如權(quán)利要求7或8所述的裝置,其特征在于,所述第一比特位的數(shù)據(jù)為所述光模塊的狀態(tài)數(shù)據(jù)或控制數(shù)據(jù),所述第二比特位的數(shù)據(jù)為所述光模塊的狀態(tài)和控制數(shù)據(jù)。10.如權(quán)利要求6所述的裝置,其特征在于,所述寄存器處理模塊,還用于: 根據(jù)設(shè)定周期執(zhí)行所述更新寄存器的第一線程。
【專利摘要】本發(fā)明公開了一種更新寄存器的方法及裝置。該方法中,更新寄存器的第一線程包括:讀取寄存器的數(shù)據(jù)并存儲到第一內(nèi)存中,更新第一內(nèi)存中的數(shù)據(jù),將更新后的數(shù)據(jù)寫入寄存器;在第一線程執(zhí)行期間,若主機請求寫寄存器,則中斷第一線程,執(zhí)行第二線程,第二線程對應(yīng)的操作包括:根據(jù)寫寄存器的請求在第二內(nèi)存中寫入數(shù)據(jù),恢復(fù)執(zhí)行第一線程,在第一線程執(zhí)行完成后,再次執(zhí)行第一線程;再次執(zhí)行的第一線程包括:讀取寄存器的數(shù)據(jù)并存儲到第三內(nèi)存中,根據(jù)第二內(nèi)存中的數(shù)據(jù)更新第三內(nèi)存中的數(shù)據(jù),將第三內(nèi)存中的數(shù)據(jù)寫入寄存器。本發(fā)明可以避免主機寫入寄存器的信息被覆蓋,進而導(dǎo)致通信失效的情況發(fā)生,確保了主機寫入信息的正確性與可靠性。
【IPC分類】G06F9/30
【公開號】CN105138308
【申請?zhí)枴緾N201510542101
【發(fā)明人】鄧專
【申請人】青島海信寬帶多媒體技術(shù)有限公司
【公開日】2015年12月9日
【申請日】2015年8月28日