專利名稱:基于 sync 機(jī)制的sata 控制器與閃存控制器間的傳輸裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及SATA控制器與閃存控制器間的傳輸技術(shù),特別是涉及一種基于SYNC機(jī)制的SATA控制器與閃存控制器間的傳輸裝置及方法。
背景技術(shù):
當(dāng)前固態(tài)硬盤中SATA控制器與閃存控制器之間的傳輸方法中,每一次的Host主機(jī)讀寫請(qǐng)求,SATA控制器和閃存控制器都有中斷產(chǎn)生,這種方法不足之處是中斷產(chǎn)生次數(shù)太多,這使得系統(tǒng)的延遲增加,因此,急需提出一種傳輸方法,來解決中斷延遲,從而大大提高SATA接口固態(tài)硬盤的傳輸速度。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于SYNC機(jī)制的SATA控制器與閃存控制器間的傳輸裝置及方法,用于解決現(xiàn)有技術(shù)中中斷產(chǎn)生次數(shù)太多,導(dǎo)致系統(tǒng)的延遲增加,以至于無法提高SATA接口固態(tài)硬盤的傳輸速度的問題。為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種基于SYNC機(jī)制的SATA控制器與閃存控制器間的傳輸裝置,應(yīng)用于固態(tài)硬盤中SATA控制器與閃存控制器之間的數(shù)據(jù)傳輸,其特征在于,包括設(shè)置于所述SATA控制器上的第一 Trigger模塊、設(shè)置所述閃存控制器上的第二Trigger 模塊;所述第一 Trigger模塊、所述第二 Trigger模塊采用PRD格式實(shí)現(xiàn)所述SATA控制器與所述閃存控制器之間的數(shù)據(jù)傳輸。所述的傳輸裝置,其中,還包括一數(shù)據(jù)塊,為所述SATA控制器與所述閃存控制器之間的數(shù)據(jù)讀寫緩沖區(qū)。所述的傳輸裝置,其中,所述SATA控制器接收主機(jī)發(fā)送的寫命令,并解析該寫命令,獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址;所述SATA控制器的DMA從主機(jī)接收數(shù)據(jù),并寫入到所述數(shù)據(jù)讀寫緩沖區(qū);在寫入完成后,所述第一 Trigger模塊發(fā)出信號(hào)通知所述閃存控制器;所述第二 Trigger模塊獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址,并發(fā)送至所述閃存控制器的DMA ;所述閃存控制器的DMA從所述數(shù)據(jù)讀寫緩沖區(qū)讀取數(shù)據(jù),并寫入到閃存中;在所述閃存控制器的DMA寫入完成后,所述第二 Trigger模塊發(fā)出信號(hào)通知所述SATA控制器寫命令完成;所述第一 Trigger模塊向主機(jī)發(fā)送完成狀態(tài)。所述的傳輸裝置,其中,所述SATA控制器接收主機(jī)發(fā)送的讀命令,并解析該讀命令,獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址;所述第一 Trigger模塊發(fā)出信號(hào)通知所述閃存控制器;所述第二 Trigger模塊獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址,并發(fā)送至所述閃存控制器的DMA ;所述閃存控制器的DMA從閃存中讀取數(shù)據(jù),并寫入到所述數(shù)據(jù)讀寫緩沖區(qū)中;在完成讀取數(shù)據(jù)后,所述第二 Trigger模塊發(fā)出信號(hào)通知所述SATA控制器讀命令完成;所述第一 Trigger模塊啟動(dòng)所述SATA控制器的DMA,從所述數(shù)據(jù)讀寫緩沖區(qū)中讀取數(shù)據(jù),并發(fā)送給主機(jī)。所述的傳輸裝置,其中,所述閃存控制器為NFC閃存控制器。為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種基于SYNC機(jī)制的SATA控制器與閃存控制器間的傳輸方法,應(yīng)用于固態(tài)硬盤中SATA控制器與閃存控制器之間的數(shù)據(jù)傳輸,其特征在于,包括步驟一,在所述SATA控制器上設(shè)置第一 Trigger模塊,在所述閃存控制器上設(shè)置第二 Trigger模塊;步驟二,所述第一 Trigger模塊、所述第二 Trigger模塊采用PRD格式實(shí)現(xiàn)所述SATA控制器與所述閃存控制器之間的數(shù)據(jù)傳輸。所述的傳輸方法,其中,所述步驟一中,還包括一數(shù)據(jù)塊,為所述SATA控制器與所述閃存控制器之間的數(shù)據(jù)讀寫緩沖區(qū)。所述的傳輸方法,其中,所述步驟二中,還包括主機(jī)的寫過程,具體是所述SATA控制器接收主機(jī)發(fā)送的寫命令,并解析該寫命令,獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址;所述SATA控制器的DMA從主機(jī)接收數(shù)據(jù),并寫入到所述數(shù)據(jù)讀寫緩沖區(qū);在寫入完成后,所述第一 Trigger模塊發(fā)出信號(hào)通知所述閃存控制器;所述第二 Trigger模塊獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址,并發(fā)送至所述閃存控制器的DMA ;所述閃存控制器的DMA從所述數(shù)據(jù)讀寫緩沖區(qū)讀取數(shù)據(jù),并寫入到閃存中;在所述閃存控制器的DMA寫入完成后,所述第二 Trigger模塊發(fā)出信號(hào)通知所述SATA控制器寫命令完成;所述第一 Trigger模塊向主機(jī)發(fā)送完成狀態(tài)。所述的傳輸方法,其中,所述步驟二中,還包括主機(jī)的讀過程,具體是所述SATA控制器接收主機(jī)發(fā)送的讀命令,并解析該讀命令,獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址;所述第一 Trigger模塊發(fā)出信號(hào)通知所述閃存控制器;所述第二 Trigger模塊獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址,并發(fā)送至所述閃存控制器的DMA ;所述閃存控制器的DMA從閃存中讀取數(shù)據(jù),并寫入到所述數(shù)據(jù)讀寫緩沖區(qū)中;在完成讀取數(shù)據(jù)后,所述第二 Trigger模塊發(fā)出信號(hào)通知所述SATA控制器讀命令完成;所述第一 Trigger模塊啟動(dòng)所述SATA控制器的DMA,從所述數(shù)據(jù)讀寫緩沖區(qū)中讀取數(shù)據(jù),并發(fā)送給主機(jī)。所述的傳輸方法,其中,所述步驟二中,所述閃存控制器為NFC閃存控制器。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益技術(shù)效果是 本發(fā)明基于SYNC (Synchronous,同步的)機(jī)制,添加了 Trigger硬件結(jié)構(gòu),使得SATA控制器與閃存控制器之間通過SYNC機(jī)制相互傳輸數(shù)據(jù),無需中斷產(chǎn)生和軟件參與查詢狀態(tài),從而提高SATA接口固態(tài)硬盤的數(shù)據(jù)傳輸率。
圖1是現(xiàn)有SATA控制器與閃存控制器間的傳輸方式示意圖;圖2是本發(fā)明基于SYNC機(jī)制的SATA控制器與閃存控制器間的傳輸裝置結(jié)構(gòu)圖;圖3是本發(fā)明的Trigger模塊的硬件結(jié)構(gòu)圖;圖4是本發(fā)明基于SYNC機(jī)制的SATA控制器與閃存控制器間的寫過程流程圖;圖5是本發(fā)明基于SYNC機(jī)制的SATA控制器與閃存控制器間的讀過程流程圖。
具體實(shí)施例方式以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述,但不作為對(duì)本發(fā)明的限定。如圖2所示,是本發(fā)明基于SYNC機(jī)制的SATA控制器與閃存控制器間的傳輸裝置結(jié)構(gòu)圖。該傳輸裝置應(yīng)用于固態(tài)硬盤中SATA控制器與閃存控制器之間的數(shù)據(jù)傳輸,用于使得SATA控制器20與閃存控制器30之間通過SYNC機(jī)制相互傳輸數(shù)據(jù),包括第一Trigger 模塊 201、第二 Trigger 模塊 301。進(jìn)一步地,閃存控制器30可以是NFC閃存控制器。第一 Trigger模塊201,設(shè)置于SATA控制器20上,用于基于SYNC機(jī)制實(shí)現(xiàn)SATA控制器20與NFC閃存控制器30之間的數(shù)據(jù)傳輸。第二 Trigger模塊301,設(shè)置于NFC閃存控制器30上,用于基于SYNC機(jī)制實(shí)現(xiàn)NFC閃存控制器30與SATA控制器20之間的數(shù)據(jù)傳輸。進(jìn)一步地,SATA控制器20還包括DMA模塊202 (簡(jiǎn)稱為DMA 202) ;NFC閃存控制器30還包括DMA模塊302 (簡(jiǎn)稱為DMA 302)。其中,DMA為直接內(nèi)存存取(Direct MemoryAccess)ο第一 Trigger模塊201、第二 Trigger模塊301實(shí)現(xiàn)SATA控制器20與NFC閃存控制器30之間傳輸數(shù)據(jù)采用PRD格式。進(jìn)一步地,PRD格式見下表1所示表 1
Sync Flag
Data Block Address進(jìn)一步地,PRD格式中的Sync Flags見下表2所示表 2
BitsDescription31 7Resv6 4Flash Channel3NFC Rd Done2NFC Wr Done1SATA Rx Request0SATA Tx Done其中Flash Channel 對(duì)應(yīng)到 32 個(gè) NAND Flash (閃存)40 的片選;
6
NFC Rd Done =DMA 302完成讀數(shù)據(jù)后,第二 Trigger模塊301會(huì)將此標(biāo)記位置1 ;NFC Wr Done =DMA 302完成寫數(shù)據(jù)后,第二 Trigger模塊301會(huì)將此標(biāo)記位置1 ;SATA Rx Reques :SATA控制器20在接收到Host主機(jī)10的寫命令后,第一 Trigger模塊201將此標(biāo)記位置1 ;SATA Tx Done =DMA 202完全接收到Host主機(jī)10發(fā)送過來的數(shù)據(jù)后,第一Trigger模塊201將此標(biāo)記位置1。進(jìn)一步地,PRD格式中的Data Block Address,是讀寫數(shù)據(jù)的緩沖區(qū)首地址,第一Trigger模塊201、第二 Trigger模塊301解析該地址,并分別發(fā)送給相應(yīng)的DMA 202、DMA302,由DMA 202、DMA 302向該地址讀/寫數(shù)據(jù),該地址是32位長(zhǎng)度。該Data Block Address的格式見下表3所示表 權(quán)利要求
1.一種基于SYNC機(jī)制的SATA控制器與閃存控制器間的傳輸裝置,應(yīng)用于固態(tài)硬盤中SATA控制器與閃存控制器之間的數(shù)據(jù)傳輸,其特征在于,包括設(shè)置于所述SATA控制器上的第一 Trigger模塊、設(shè)置所述閃存控制器上的第二 Trigger模塊;所述第一 Trigger模塊、所述第二 Trigger模塊采用PRD格式實(shí)現(xiàn)所述SATA控制器與所述閃存控制器之間的數(shù)據(jù)傳輸。
2.根據(jù)權(quán)利要求1所述的傳輸裝置,其特征在于,還包括一數(shù)據(jù)塊,為所述SATA控制器與所述閃存控制器之間的數(shù)據(jù)讀寫緩沖區(qū)。
3.根據(jù)權(quán)利要求2所述的傳輸裝置,其特征在于,所述SATA控制器接收主機(jī)發(fā)送的寫命令,并解析該寫命令,獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址;所述SATA控制器的DMA從主機(jī)接收數(shù)據(jù),并寫入到所述數(shù)據(jù)讀寫緩沖區(qū);在寫入完成后,所述第一 Trigger模塊發(fā)出信號(hào)通知所述閃存控制器;所述第二 Trigger模塊獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址,并發(fā)送至所述閃存控制器的DMA ;所述閃存控制器的DMA從所述數(shù)據(jù)讀寫緩沖區(qū)讀取數(shù)據(jù),并寫入到閃存中;在所述閃存控制器的DMA寫入完成后,所述第二Trigger模塊發(fā)出信號(hào)通知所述SATA控制器寫命令完成;所述第一 Trigger模塊向主機(jī)發(fā)送完成狀態(tài)。
4.根據(jù)權(quán)利要求2或3所述的傳輸裝置,其特征在于,所述SATA控制器接收主機(jī)發(fā)送的讀命令,并解析該讀命令,獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址;所述第一 Trigger模塊發(fā)出信號(hào)通知所述閃存控制器;所述第二 Trigger模塊獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址,并發(fā)送至所述閃存控制器的DMA ;所述閃存控制器的DMA從閃存中讀取數(shù)據(jù),并寫入到所述數(shù)據(jù)讀寫緩沖區(qū)中;在完成讀取數(shù)據(jù)后,所述第二 Trigger模塊發(fā)出信號(hào)通知所述SATA控制器讀命令完成;所述第一 Trigger模塊啟動(dòng)所述SATA控制器的DMA,從所述數(shù)據(jù)讀寫緩沖區(qū)中讀取數(shù)據(jù),并發(fā)送給主機(jī)。
5.根據(jù)權(quán)利要求1、2或3所述的傳輸裝置,其特征在于,所述閃存控制器為NFC閃存控制器。
6.一種基于SYNC機(jī)制的SATA控制器與閃存控制器間的傳輸方法,應(yīng)用于固態(tài)硬盤中SATA控制器與閃存控制器之間的數(shù)據(jù)傳輸,其特征在于,包括步驟一,在所述SATA控制器上設(shè)置第一 Trigger模塊,在所述閃存控制器上設(shè)置第二Trigger 模塊;步驟二,所述第一 Trigger模塊、所述第二 Trigger模塊采用PRD格式實(shí)現(xiàn)所述SATA控制器與所述閃存控制器之間的數(shù)據(jù)傳輸。
7.根據(jù)權(quán)利要求6所述的傳輸方法,其特征在于,所述步驟一中,還包括一數(shù)據(jù)塊,為所述SATA控制器與所述閃存控制器之間的數(shù)據(jù)讀寫緩沖區(qū)。
8.根據(jù)權(quán)利要求7所述的傳輸方法,其特征在于,所述步驟二中,還包括主機(jī)的寫過程,具體是所述SATA控制器接收主機(jī)發(fā)送的寫命令,并解析該寫命令,獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址;所述SATA控制器的DMA從主機(jī)接收數(shù)據(jù),并寫入到所述數(shù)據(jù)讀寫緩沖區(qū);在寫入完成后,所述第一 Trigger模塊發(fā)出信號(hào)通知所述閃存控制器;所述第二 Trigger模塊獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址,并發(fā)送至所述閃存控制器的 DMA ;所述閃存控制器的DMA從所述數(shù)據(jù)讀寫緩沖區(qū)讀取數(shù)據(jù),并寫入到閃存中;在所述閃存控制器的DMA寫入完成后,所述第二 Trigger模塊發(fā)出信號(hào)通知所述SATA控制器寫命令完成;所述第一 Trigger模塊向主機(jī)發(fā)送完成狀態(tài)。
9.根據(jù)權(quán)利要求7或8所述的傳輸方法,其特征在于,所述步驟二中,還包括主機(jī)的讀過程,具體是所述SATA控制器接收主機(jī)發(fā)送的讀命令,并解析該讀命令,獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址;所述第一 Trigger模塊發(fā)出信號(hào)通知所述閃存控制器;所述第二 Trigger模塊獲取所述數(shù)據(jù)讀寫緩沖區(qū)的首地址,并發(fā)送至所述閃存控制器的 DMA ;所述閃存控制器的DMA從閃存中讀取數(shù)據(jù),并寫入到所述數(shù)據(jù)讀寫緩沖區(qū)中;在完成讀取數(shù)據(jù)后,所述第二 Trigger模塊發(fā)出信號(hào)通知所述SATA控制器讀命令完成;所述第一 Trigger模塊啟動(dòng)所述SATA控制器的DMA,從所述數(shù)據(jù)讀寫緩沖區(qū)中讀取數(shù)據(jù),并發(fā)送給主機(jī)。
10.根據(jù)權(quán)利要求6、7或8所述的傳輸方法,其特征在于,所述步驟二中,所述閃存控制器為NFC閃存控制器。
全文摘要
本發(fā)明公開了一種基于SYNC機(jī)制的SATA控制器與閃存控制器間的傳輸裝置及方法,應(yīng)用于固態(tài)硬盤中SATA控制器與閃存控制器之間的數(shù)據(jù)傳輸,該裝置包括設(shè)置于所述SATA控制器上的第一Trigger模塊、設(shè)置所述閃存控制器上的第二Trigger模塊;所述第一Trigger模塊、所述第二Trigger模塊采用PRD格式實(shí)現(xiàn)所述SATA控制器與所述閃存控制器之間的數(shù)據(jù)傳輸。本發(fā)明基于SYNC機(jī)制,添加了Trigger硬件結(jié)構(gòu),使得SATA控制器與閃存控制器之間通過SYNC機(jī)制相互傳輸數(shù)據(jù),無需中斷產(chǎn)生和軟件參與查詢狀態(tài),從而提高SATA接口固態(tài)硬盤的數(shù)據(jù)傳輸率。
文檔編號(hào)G06F13/28GK102591825SQ20111045556
公開日2012年7月18日 申請(qǐng)日期2011年12月30日 優(yōu)先權(quán)日2011年12月30日
發(fā)明者傅俊誠(chéng), 韓道靜 申請(qǐng)人:記憶科技(深圳)有限公司