本發(fā)明涉及固態(tài)硬盤,具體公開一種固態(tài)硬盤控制器以及固態(tài)硬盤的復(fù)位方法。
背景技術(shù):
1、在固態(tài)硬盤使用的過(guò)程中,為了處理運(yùn)行過(guò)程中的各種異常事件,需要復(fù)位部分硬件設(shè)計(jì)電路,對(duì)于大多數(shù)固態(tài)硬盤控制器,在復(fù)位固態(tài)硬盤控制器中的一個(gè)模塊時(shí),需要對(duì)與待復(fù)位模塊相連接的所有模塊進(jìn)行復(fù)位,由于在復(fù)位固態(tài)硬盤控制器中很難確定清晰的復(fù)位邊界,最后變成復(fù)位固態(tài)硬盤控制器芯片的整體復(fù)位,即對(duì)固態(tài)硬盤控制器的獨(dú)立冗余磁盤陣列模塊中所有模塊進(jìn)行復(fù)位,導(dǎo)致復(fù)位的靈活性較差。
2、同時(shí),由于固態(tài)硬盤控制器的獨(dú)立冗余磁盤陣列模塊中各模塊與固態(tài)硬盤控制器之外的許多其它模塊連接并進(jìn)行數(shù)據(jù)交互,如果在復(fù)位固態(tài)硬盤控制器中的一個(gè)模塊時(shí),對(duì)固態(tài)硬盤控制器的獨(dú)立冗余磁盤陣列模塊中所有模塊進(jìn)行復(fù)位,會(huì)引發(fā)一系列連鎖反應(yīng)。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述問(wèn)題,提出了以便提供克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的一種固態(tài)硬盤控制器以及固態(tài)硬盤的復(fù)位方法,包括:
2、一種固態(tài)硬盤控制器,所述固態(tài)硬盤控制器包括控制模塊、配置寄存器模塊、狀態(tài)寄存器模塊、中斷模塊、狀態(tài)監(jiān)測(cè)模塊、計(jì)數(shù)模塊、計(jì)算模塊和數(shù)據(jù)傳輸模塊,其中,
3、所述控制模塊,用于接收對(duì)目標(biāo)設(shè)備的復(fù)位請(qǐng)求,確定與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊以及與所述目標(biāo)設(shè)備對(duì)應(yīng)的復(fù)位類型,并對(duì)所述配置寄存器模塊中的復(fù)位使能寄存器進(jìn)行配置,使得所述復(fù)位使能寄存器向所述狀態(tài)監(jiān)測(cè)模塊發(fā)送復(fù)位信號(hào);
4、所述狀態(tài)監(jiān)測(cè)模塊,與所述配置寄存器模塊連接,用于監(jiān)測(cè)所述計(jì)算模塊的狀態(tài),根據(jù)接收的復(fù)位信號(hào)控制與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊執(zhí)行復(fù)位流程,并在完成復(fù)位流程之后,觸發(fā)所述中斷模塊中的復(fù)位完成中斷信號(hào);
5、所述狀態(tài)寄存器模塊,與所述計(jì)數(shù)模塊和所述狀態(tài)監(jiān)測(cè)模塊連接,用于更新所述計(jì)算模塊的狀態(tài)和所述計(jì)數(shù)模塊記錄的已完成計(jì)算次數(shù),供所述控制模塊在清中斷之后,根據(jù)所述計(jì)算模塊的狀態(tài)和所述已完成計(jì)算次數(shù),再次啟用與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊。
6、可選地,在所述控制模塊中,所述確定與所述目標(biāo)設(shè)備對(duì)應(yīng)的復(fù)位類型,包括:
7、在目標(biāo)設(shè)備為主設(shè)備的情況下,所述與所述目標(biāo)設(shè)備對(duì)應(yīng)的復(fù)位類型為主設(shè)備復(fù)位;
8、在目標(biāo)設(shè)備為從設(shè)備的情況下,所述與所述目標(biāo)設(shè)備對(duì)應(yīng)的復(fù)位類型為從設(shè)備復(fù)位;
9、在目標(biāo)設(shè)備為主設(shè)備和從設(shè)備的情況下,所述與所述目標(biāo)設(shè)備對(duì)應(yīng)的復(fù)位類型為主設(shè)備和從設(shè)備同時(shí)復(fù)位。
10、可選地,所述狀態(tài)監(jiān)測(cè)模塊中,所述復(fù)位類型為主設(shè)備復(fù)位的情況下,所述根據(jù)接收的復(fù)位信號(hào)控制與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊執(zhí)行復(fù)位流程,包括:
11、確定所述計(jì)算模塊的當(dāng)前狀態(tài);
12、在所述計(jì)算模塊處于計(jì)算狀態(tài)的情況下,獲取主設(shè)備發(fā)出的最后一條計(jì)算數(shù)據(jù),并判斷所述最后一條計(jì)算數(shù)據(jù)的完整性;
13、在所述最后一條計(jì)算數(shù)據(jù)不完整的情況下,對(duì)所述最后一條計(jì)算數(shù)據(jù)進(jìn)行補(bǔ)齊,得到補(bǔ)齊后計(jì)算數(shù)據(jù),并將補(bǔ)齊后計(jì)算數(shù)據(jù)輸入至所述計(jì)算模塊,計(jì)算出第一校驗(yàn)數(shù)據(jù),并標(biāo)明所述第一校驗(yàn)數(shù)據(jù)處于錯(cuò)誤狀態(tài);
14、在所述最后一條計(jì)算數(shù)據(jù)完整的情況下,將所述最后一條計(jì)算數(shù)據(jù)完整輸入至所述計(jì)算模塊,計(jì)算出第二校驗(yàn)數(shù)據(jù);
15、通過(guò)所述數(shù)據(jù)傳輸模塊輸出所述第一校驗(yàn)數(shù)據(jù)和所述第二校驗(yàn)數(shù)據(jù)。
16、可選地,所述狀態(tài)監(jiān)測(cè)模塊中,
17、在所述計(jì)算模塊處于空閑狀態(tài)的情況下,判定完成所述復(fù)位流程。
18、可選地,所述控制模塊中,所述根據(jù)所述計(jì)算模塊的狀態(tài)和所述已完成計(jì)算次數(shù),再次啟用與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊,包括:
19、基于所述計(jì)算模塊中錯(cuò)誤狀態(tài)的所述第一校驗(yàn)數(shù)據(jù),控制與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊重新接收所述最后一條計(jì)算數(shù)據(jù),并根據(jù)重新接收的最后一條計(jì)算數(shù)據(jù)計(jì)算新的校驗(yàn)數(shù)據(jù),并通過(guò)所述數(shù)據(jù)傳輸模塊傳輸所述新的校驗(yàn)數(shù)據(jù);
20、基于所述計(jì)算模塊中所述第二校驗(yàn)數(shù)據(jù),接收所述最后一條計(jì)算數(shù)據(jù)后續(xù)的計(jì)算數(shù)據(jù),并根據(jù)后續(xù)的計(jì)算數(shù)據(jù)計(jì)算后續(xù)的校驗(yàn)數(shù)據(jù),并通過(guò)所述數(shù)據(jù)傳輸模塊傳輸所述后續(xù)的校驗(yàn)數(shù)據(jù)。
21、可選地,所述狀態(tài)監(jiān)測(cè)模塊中,所述復(fù)位類型為從設(shè)備復(fù)位的情況下,所述根據(jù)接收的復(fù)位信號(hào)控制與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊執(zhí)行復(fù)位流程,包括:
22、獲取所述計(jì)算模塊中的當(dāng)前計(jì)算次數(shù),并對(duì)比所述當(dāng)前計(jì)算次數(shù)與預(yù)先配置的目標(biāo)計(jì)算次數(shù),在所述當(dāng)前計(jì)算次數(shù)未達(dá)到所述目標(biāo)計(jì)算次數(shù)的情況下,控制所述計(jì)算模塊的狀態(tài)機(jī)在接收到所述主設(shè)備發(fā)送的計(jì)算數(shù)據(jù)后不跳轉(zhuǎn)至計(jì)算狀態(tài)而處于接收計(jì)算數(shù)據(jù)的狀態(tài),直到所述主設(shè)備完成計(jì)算數(shù)據(jù)的傳輸為止,并標(biāo)明所述當(dāng)前計(jì)算次數(shù)計(jì)算的校驗(yàn)數(shù)據(jù)處于錯(cuò)誤狀態(tài)。
23、可選地,所述狀態(tài)監(jiān)測(cè)模塊中,所述復(fù)位類型為主設(shè)備和從設(shè)備同時(shí)復(fù)位的情況下,所述根據(jù)接收的復(fù)位信號(hào)控制與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊執(zhí)行復(fù)位流程,包括:
24、直接控制所述計(jì)算模塊和所述數(shù)據(jù)傳輸模塊處于空閑狀態(tài),并標(biāo)明所述計(jì)算模塊在已完成計(jì)算次數(shù)的下一次計(jì)算的校驗(yàn)數(shù)據(jù)處于錯(cuò)誤狀態(tài)。
25、可選地,所述控制模塊中,所述根據(jù)所述計(jì)算模塊的狀態(tài)和所述已完成計(jì)算次數(shù),再次啟用與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊,包括:
26、基于所述計(jì)算模塊中錯(cuò)誤狀態(tài)的目標(biāo)校驗(yàn)數(shù)據(jù),控制與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊重新接收目標(biāo)校驗(yàn)數(shù)據(jù)所對(duì)應(yīng)的計(jì)算數(shù)據(jù),根據(jù)重新接收的計(jì)算數(shù)據(jù)計(jì)算新的校驗(yàn)數(shù)據(jù),并通過(guò)所述數(shù)據(jù)傳輸模塊傳輸所述新的校驗(yàn)數(shù)據(jù)。
27、一種固態(tài)硬盤的復(fù)位方法,應(yīng)用于所述的固態(tài)硬盤控制器,所述固態(tài)硬盤的復(fù)位方法包括:
28、利用所述控制模塊接收對(duì)目標(biāo)設(shè)備的復(fù)位請(qǐng)求,確定與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊以及與所述目標(biāo)設(shè)備對(duì)應(yīng)的復(fù)位類型,并對(duì)所述配置寄存器模塊中的復(fù)位使能寄存器進(jìn)行配置,使得所述復(fù)位使能寄存器向所述狀態(tài)監(jiān)測(cè)模塊發(fā)送復(fù)位信號(hào);
29、利用所述狀態(tài)監(jiān)測(cè)模塊監(jiān)測(cè)所述計(jì)算模塊的狀態(tài),根據(jù)接收的復(fù)位信號(hào)控制與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊執(zhí)行復(fù)位流程,并在完成復(fù)位流程之后,觸發(fā)所述中斷模塊中的復(fù)位完成中斷信號(hào);
30、利用所述狀態(tài)寄存器模塊更新所述計(jì)算模塊的狀態(tài)和所述計(jì)數(shù)模塊記錄的已完成計(jì)算次數(shù),供所述控制模塊在清中斷之后,根據(jù)所述計(jì)算模塊的狀態(tài)和所述已完成計(jì)算次數(shù),再次啟用與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊。
31、可選地,所述確定與所述目標(biāo)設(shè)備對(duì)應(yīng)的復(fù)位類型,包括:
32、在目標(biāo)設(shè)備為主設(shè)備的情況下,所述與所述目標(biāo)設(shè)備對(duì)應(yīng)的復(fù)位類型為主設(shè)備復(fù)位;
33、在目標(biāo)設(shè)備為從設(shè)備的情況下,所述與所述目標(biāo)設(shè)備對(duì)應(yīng)的復(fù)位類型為從設(shè)備復(fù)位;
34、在目標(biāo)設(shè)備為主設(shè)備和從設(shè)備的情況下,所述與所述目標(biāo)設(shè)備對(duì)應(yīng)的復(fù)位類型為主設(shè)備和從設(shè)備同時(shí)復(fù)位。
35、本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):
36、在本發(fā)明實(shí)施例中,所述固態(tài)硬盤控制器包括控制模塊、配置寄存器模塊、狀態(tài)寄存器模塊、中斷模塊、狀態(tài)監(jiān)測(cè)模塊、計(jì)數(shù)模塊、計(jì)算模塊和數(shù)據(jù)傳輸模塊,其中,所述控制模塊,用于接收對(duì)目標(biāo)設(shè)備的復(fù)位請(qǐng)求,確定與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊以及與所述目標(biāo)設(shè)備對(duì)應(yīng)的復(fù)位類型,并對(duì)所述配置寄存器模塊中的復(fù)位使能寄存器進(jìn)行配置,使得所述復(fù)位使能寄存器向所述狀態(tài)監(jiān)測(cè)模塊發(fā)送復(fù)位信號(hào);所述狀態(tài)監(jiān)測(cè)模塊,與所述配置寄存器模塊連接,用于監(jiān)測(cè)所述計(jì)算模塊的狀態(tài),根據(jù)接收的復(fù)位信號(hào)控制與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊執(zhí)行復(fù)位流程,并在完成復(fù)位流程之后,觸發(fā)所述中斷模塊中的復(fù)位完成中斷信號(hào);所述狀態(tài)寄存器模塊,與所述計(jì)數(shù)模塊和所述狀態(tài)監(jiān)測(cè)模塊連接,用于更新所述計(jì)算模塊的狀態(tài)和所述計(jì)數(shù)模塊記錄的已完成計(jì)算次數(shù),供所述控制模塊在清中斷之后,根據(jù)所述計(jì)算模塊的狀態(tài)和所述已完成計(jì)算次數(shù),再次啟用與所述目標(biāo)設(shè)備相關(guān)的計(jì)算模塊和數(shù)據(jù)傳輸模塊,當(dāng)與獨(dú)立冗余磁盤陣列模塊中任意一個(gè)模塊連接的模塊需要復(fù)位時(shí),配置相應(yīng)寄存器,僅對(duì)與待復(fù)位模塊相關(guān)的模塊進(jìn)行復(fù)位,不影響與待復(fù)位模塊無(wú)關(guān)的其他模塊的正常工作,在復(fù)位完成后更新狀態(tài)寄存器和中斷信號(hào),重新啟用復(fù)位完成的模塊即可。