專利名稱:直接存儲(chǔ)器存取控制器及直接存儲(chǔ)器存取的控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種直接存儲(chǔ)器存取的控制方法以及一種存取控制器,尤指一種在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法以及一種直接存儲(chǔ)器存取控制器。
請(qǐng)參見
圖1(a),其是使用直接存儲(chǔ)器存取(DMA)傳輸模式的計(jì)算機(jī)結(jié)構(gòu)示意圖,當(dāng)操作系統(tǒng)(Operating System)欲將一檔案?jìng)魉椭辆W(wǎng)絡(luò)卡(Network Interface Card)時(shí),需先由微處理器10將該檔案以封包的形式通過芯片組13傳送至主存儲(chǔ)器11暫存,之后微處理器10則返回繼續(xù)執(zhí)行其未完成的任務(wù),而網(wǎng)絡(luò)卡12內(nèi)的DMA控制器121則在接收一檔案數(shù)據(jù)的第一啟始地址后,直接通過芯片組13至主存儲(chǔ)器11中讀取組成該檔案的數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)至DMA控制器121中的先進(jìn)先出(FIFO)緩沖器122。
請(qǐng)參見圖1(b),其是主存儲(chǔ)器內(nèi)存儲(chǔ)數(shù)據(jù)封包的格式示意圖,主存儲(chǔ)器11內(nèi)存儲(chǔ)數(shù)據(jù)封包可分為兩個(gè)部分,第一部份為描述符(Descriptor),而第二部分則是用來存放封包數(shù)據(jù)的緩沖區(qū)(DataBuffer),至于第一部份的描述符(Descriptor)主要用來記錄1.第二部分?jǐn)?shù)據(jù)緩沖區(qū)的存放地址;2.數(shù)據(jù)長(zhǎng)度(Length);3.數(shù)據(jù)狀態(tài)(Status);4.下一個(gè)封包的描述符地址。
DMA控制器121的接收方式為先至主存儲(chǔ)器11中讀取第一封包的描述符(Descriptor)后,根據(jù)存放地址至緩沖區(qū)內(nèi)將第一封包數(shù)據(jù)取走并存儲(chǔ)至DMA控制器121內(nèi)的先進(jìn)先出(FIFO)緩沖器122,且網(wǎng)絡(luò)卡會(huì)產(chǎn)生一響應(yīng)信號(hào)至封包的描述符中將封包狀態(tài)進(jìn)行改寫,并根據(jù)第一封包的描述符中所記錄的第二封包的描述符地址來接收第二封包的數(shù)據(jù),由網(wǎng)絡(luò)卡12接收后,微處理器10則檢視描述符中封包狀態(tài)的內(nèi)容,以判斷封包傳輸是否有誤。
但是采用上述的方式可能發(fā)生如下所述的兩種情形1.硬件內(nèi)部發(fā)生錯(cuò)誤而導(dǎo)致傳輸錯(cuò)誤(如正確時(shí)應(yīng)讀取第二個(gè)描述符,但是因?yàn)榫W(wǎng)絡(luò)卡內(nèi)部發(fā)生錯(cuò)誤而傳輸信息告知DMA控制器應(yīng)讀取第四個(gè)描述符)。
2.DMA控制器于讀取的過程中發(fā)生失誤(如DMA控制器原本應(yīng)該根據(jù)第二個(gè)描述符所記錄的內(nèi)容至其所對(duì)應(yīng)的數(shù)據(jù)緩沖區(qū)內(nèi)取走數(shù)據(jù),但是卻發(fā)生失誤至其它描述符所對(duì)應(yīng)的數(shù)據(jù)緩沖區(qū)內(nèi)取走錯(cuò)誤的數(shù)據(jù))。
如果發(fā)生上述情形,將會(huì)導(dǎo)致DMA控制器于錯(cuò)誤發(fā)生以后所接收的封包數(shù)據(jù)完全錯(cuò)誤,甚至?xí)笵MA控制器至一無效的區(qū)域存取封包數(shù)據(jù),而這種情況必須到應(yīng)用程序發(fā)現(xiàn)檔案并沒有傳送成功或是所傳送的檔案錯(cuò)誤時(shí),才會(huì)察覺錯(cuò)誤的發(fā)生,這時(shí)驅(qū)動(dòng)程序才會(huì)發(fā)出一網(wǎng)絡(luò)卡重置信號(hào)(reset)至該網(wǎng)絡(luò)卡以重新接收封包數(shù)據(jù),故使用上述的方法并無法實(shí)時(shí)察覺錯(cuò)誤的發(fā)生,而等到操作系統(tǒng)發(fā)現(xiàn)往往已經(jīng)經(jīng)過很久一段時(shí)間。
為了達(dá)到上述目的,本發(fā)明提供一種在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法,應(yīng)用于連接一芯片組的一直接存儲(chǔ)器存取控制器上,且該芯片組與一存儲(chǔ)器及一處理器相連接,該直接存儲(chǔ)器存取控制器置于一網(wǎng)絡(luò)裝置中,該方法包含下列步驟讀取存儲(chǔ)于該存儲(chǔ)器中的一數(shù)據(jù)封包的一描述符地址;判斷該描述符地址是否符合處于一第一預(yù)定地址與一第二預(yù)定地址的區(qū)間內(nèi);當(dāng)該描述符地址不符合時(shí),該網(wǎng)絡(luò)裝置發(fā)出一中斷信號(hào)至該處理器,該處理器因應(yīng)該中斷信號(hào)而進(jìn)行一相對(duì)應(yīng)的中斷服務(wù),進(jìn)而使該直接存儲(chǔ)器存取控制器重新讀取關(guān)于該數(shù)據(jù)封包的描述符地址。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,該第一預(yù)定地址與第二預(yù)定地址分別存放于一第一緩存器及一第二緩存器內(nèi),至于該第一預(yù)定地址與第二預(yù)定地址是當(dāng)一計(jì)算機(jī)主機(jī)于初始運(yùn)作狀態(tài)時(shí),該網(wǎng)絡(luò)裝置的驅(qū)動(dòng)程序向操作系統(tǒng)(于該計(jì)算機(jī)主機(jī)中運(yùn)作)于該存儲(chǔ)器中要求一區(qū)間,用以存放數(shù)據(jù)封包的描述符,其中該第一預(yù)定地址為該區(qū)間的啟始地址,該第二預(yù)定地址為該區(qū)間的終止地址。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,該存儲(chǔ)器為一個(gè)人計(jì)算機(jī)的主存儲(chǔ)器(Main Memory)。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,當(dāng)該描述符地址符合時(shí),則至該地址處讀取關(guān)于該數(shù)據(jù)封包的一描述符,再根據(jù)該描述符中所記錄的一數(shù)據(jù)存放地址來接收該封包的數(shù)據(jù),進(jìn)而將暫存于該存儲(chǔ)器中的該數(shù)據(jù)封包轉(zhuǎn)移至該硬件裝置中。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,描述符是用以記錄該數(shù)據(jù)的一存放地址、該數(shù)據(jù)的一長(zhǎng)度、該數(shù)據(jù)的一狀態(tài)以及下一個(gè)欲進(jìn)行轉(zhuǎn)移的數(shù)據(jù)封包的一描述符地址。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,該數(shù)據(jù)封包是轉(zhuǎn)移至該網(wǎng)絡(luò)裝置的該直接存儲(chǔ)器存取控制器的存儲(chǔ)器中。
為了達(dá)到上述目的,本發(fā)明還提供一種在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法,應(yīng)用于連接一芯片組的一直接存儲(chǔ)器存取控制器上,且該芯片組與一存儲(chǔ)器及一處理器相連接,該直接存儲(chǔ)器存取控制器整合于一硬件裝置中,該方法包含下列步驟讀取存儲(chǔ)于該存儲(chǔ)器中的一數(shù)據(jù)封包的一描述符地址;判斷該描述符地址是否符合處于一特定區(qū)域;當(dāng)該描述符地址不符合時(shí),該硬件裝置發(fā)出一中斷信號(hào)至該處理器,該處理器因應(yīng)該中斷信號(hào)而進(jìn)行一相對(duì)應(yīng)的中斷服務(wù),進(jìn)而使該直接存儲(chǔ)器存取控制器重新接收關(guān)于該數(shù)據(jù)封包的描述符地址。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,該存儲(chǔ)器為一個(gè)人計(jì)算機(jī)的主存儲(chǔ)器(Main Memory)。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,該硬件裝置為一網(wǎng)絡(luò)卡、一硬式磁盤、一聲卡或一數(shù)據(jù)卡。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,當(dāng)該描述符地址符合時(shí),則至該地址處讀取關(guān)于該數(shù)據(jù)封包的描述符,再根據(jù)該描述符中所記錄的一數(shù)據(jù)存放地址來接收該封包的數(shù)據(jù),進(jìn)而將暫存于該存儲(chǔ)器中的該數(shù)據(jù)封包轉(zhuǎn)移至該硬件裝置中。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,該描述符用以記錄該數(shù)據(jù)的一存放地址、該數(shù)據(jù)的一長(zhǎng)度、該數(shù)據(jù)的一狀態(tài)以及下一個(gè)欲進(jìn)行轉(zhuǎn)移的數(shù)據(jù)封包的一描述符地址。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,數(shù)據(jù)封包是轉(zhuǎn)移至該硬件裝置的該直接存儲(chǔ)器存取控制器的存儲(chǔ)器中。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,該特定區(qū)域?yàn)橹糜谝坏谝活A(yù)定地址與一第二預(yù)定地址間的區(qū)域。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,該特定區(qū)域?yàn)樵撁枋龇刂贩弦惶囟ū磉_(dá)式的區(qū)域。
根據(jù)上述構(gòu)想,本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法中,該處理器為一個(gè)人計(jì)算機(jī)的微處理器(microprocessor)。
為了達(dá)到上述目的,本發(fā)明又提供一種直接存儲(chǔ)器存取控制器,整合于一硬件裝置中,用以直接存取一存儲(chǔ)器,該控制器讀取存儲(chǔ)于該存儲(chǔ)器中的一數(shù)據(jù)的一描述符地址,該控制器的特征在于具有一判斷器,該判斷器判斷該描述符地址是否符合處于一特定區(qū)域,而于該描述符地址不符合時(shí),該硬件裝置則發(fā)出一中斷信號(hào)至該處理器,使該處理器因應(yīng)該中斷信號(hào)而進(jìn)行一相對(duì)應(yīng)的中斷服務(wù),進(jìn)而重新讀取相關(guān)于該數(shù)據(jù)封包的描述符地址。
根據(jù)上述構(gòu)想,本發(fā)明的直接存儲(chǔ)器存取控制器中,該特定區(qū)域?yàn)橹糜谝坏谝活A(yù)定地址與一第二預(yù)定地址間的區(qū)域。
根據(jù)上述構(gòu)想,本發(fā)明的直接存儲(chǔ)器存取控制器中,該第一預(yù)定地址與該第二預(yù)定地址分別存放于該判斷器的一第一緩存器及一第二緩存器內(nèi)。
根據(jù)上述構(gòu)想,本發(fā)明的直接存儲(chǔ)器存取控制器中,該特定區(qū)域?yàn)樵撁枋龇刂贩弦惶囟ū磉_(dá)式的區(qū)域。
根據(jù)上述構(gòu)想,本發(fā)明的直接存儲(chǔ)器存取控制器中,該特定表達(dá)式是由設(shè)置于于該判斷器中的一邏輯運(yùn)算電路所完成。
根據(jù)上述構(gòu)想,本發(fā)明的直接存儲(chǔ)器存取控制器中,描述符用以記錄該數(shù)據(jù)的一存放地址、該數(shù)據(jù)的一長(zhǎng)度、該數(shù)據(jù)的一狀態(tài)以及下個(gè)欲進(jìn)行轉(zhuǎn)移的數(shù)據(jù)封包的一描述符地址。
根據(jù)上述構(gòu)想,本發(fā)明的直接存儲(chǔ)器存取控制器中,該硬件裝置為一網(wǎng)絡(luò)卡、一硬式磁盤、一聲卡或一數(shù)據(jù)卡。
根據(jù)上述構(gòu)想,本發(fā)明的直接存儲(chǔ)器存取控制器中,該存儲(chǔ)器為一個(gè)人計(jì)算機(jī)的主存儲(chǔ)器(Main Memory)。
根據(jù)上述構(gòu)想,本發(fā)明的直接存儲(chǔ)器存取控制器中,該處理器為一個(gè)人計(jì)算機(jī)的微處理器(microprocessor)。
綜上所述,本發(fā)明借由檢測(cè)該數(shù)據(jù)封包的描述符地址是否處于一特定區(qū)域的判斷方式,確實(shí)能夠于失誤發(fā)生時(shí)立即產(chǎn)生中斷信號(hào),而提升數(shù)據(jù)傳輸?shù)男?,并使得系統(tǒng)整體效能能夠正常運(yùn)作。
圖1(b)是已知主存儲(chǔ)器內(nèi)存儲(chǔ)數(shù)據(jù)封包的格式示意圖。
圖2(a)是本發(fā)明在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的步驟流程圖。
圖2(b)是使用圖2(a)的方法而主存儲(chǔ)器內(nèi)存儲(chǔ)數(shù)據(jù)封包的格式示意圖。
圖3(a)是本發(fā)明直接存儲(chǔ)器存取控制器的第一較佳實(shí)施例的結(jié)構(gòu)示意圖。
圖3(b)是本發(fā)明直接存儲(chǔ)器存取控制器的第二較佳實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
請(qǐng)參見圖2(a),是本發(fā)明所發(fā)展的在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的較佳實(shí)施例流程圖,其主要應(yīng)用在于一芯片組(chipset)連接的一直接存儲(chǔ)器存取控制器(DMA Controller)上,該芯片組也與一主存儲(chǔ)器(Main Memory)及一微處理器相連接,且該直接存儲(chǔ)器存取控制器可包含于一網(wǎng)絡(luò)卡中,該方法包含下列步驟首先,接收存儲(chǔ)于個(gè)人計(jì)算機(jī)的主存儲(chǔ)器(Main Memory)中的第一數(shù)據(jù)封包的描述符地址,接著比對(duì)該第一描述符地址是否處于一第一預(yù)定地址與一第二預(yù)定地址間的特定區(qū)域內(nèi)。
當(dāng)該描述符地址不符合時(shí),則由網(wǎng)絡(luò)卡發(fā)出一中斷信號(hào)至微處理器,使該微處理器因應(yīng)該中斷信號(hào)而進(jìn)行一相對(duì)應(yīng)的中斷服務(wù),并根據(jù)不同情況的失誤施行不同的解決方式,如果發(fā)現(xiàn)是整個(gè)網(wǎng)絡(luò)卡內(nèi)部硬件發(fā)生失誤那么就重新驅(qū)動(dòng)整個(gè)網(wǎng)絡(luò)卡;或是,只有直接存儲(chǔ)器存取控制器的傳送端(Tx)或是接收端(Rx)的控制器出現(xiàn)失誤則只要將發(fā)生錯(cuò)誤的部分重新驅(qū)動(dòng)就可以,進(jìn)而使得該直接存儲(chǔ)器存取控制器可重新接收關(guān)于該第一數(shù)據(jù)封包的描述符地址。
當(dāng)該描述符地址符合時(shí),該直接存儲(chǔ)器存取控制器就先到該地址處去讀取該數(shù)據(jù)封包的描述符(descriptor),然后再到描述符中所記錄的一數(shù)據(jù)存放地址處取走暫存于數(shù)據(jù)緩沖區(qū)內(nèi)的封包數(shù)據(jù),并將該數(shù)據(jù)封包轉(zhuǎn)移至直接存儲(chǔ)器控制器內(nèi)的先進(jìn)先出(FIFO)緩沖器中(可參閱圖2(b)),接著由第一封包的描述符中讀取其所記錄的第二封包的描述符地址,并判斷該第二描述符地址是否處于第一預(yù)定地址與第二預(yù)定地址間的特定區(qū)域內(nèi),以達(dá)到立即檢測(cè)第二封包的描述符地址是否有誤,至于后續(xù)封包的描述符地址也采用上述的方式檢測(cè)。
至于該第一預(yù)定地址與一第二預(yù)定地址的來源為,當(dāng)計(jì)算機(jī)主機(jī)于初始運(yùn)作狀態(tài)時(shí),網(wǎng)絡(luò)卡的驅(qū)動(dòng)程序會(huì)向操作系統(tǒng)于主存儲(chǔ)器中要求一區(qū)間來固定存放數(shù)據(jù)封包的描述符,該第一預(yù)定地址可以是該區(qū)間的啟始地址,該第二預(yù)定地址可以是該區(qū)間的終止地址。且網(wǎng)絡(luò)卡將該第一預(yù)定地址與一第二預(yù)定地址分別存放于直接存儲(chǔ)器存取控制器內(nèi)的第一緩存器與第二緩存器中,因此直接存儲(chǔ)器存取控制器就可根據(jù)第一緩存器與第二緩存器中的設(shè)定地址來立即判斷所欲進(jìn)行讀取的數(shù)據(jù)封包的描述符地址是否有失誤的情形發(fā)生。
其中該描述符主要用來記錄該數(shù)據(jù)的存放地址、該數(shù)據(jù)的長(zhǎng)度、該數(shù)據(jù)的狀態(tài)以及下一個(gè)欲進(jìn)行轉(zhuǎn)移的數(shù)據(jù)封包的描述符地址(如圖2(b)所示)。本發(fā)明的方法及控制器也可適用于硬式磁盤、聲卡、數(shù)據(jù)卡或是其它能夠進(jìn)行直接存儲(chǔ)器存取模式的硬件裝置上。
另外,特定區(qū)域也可為符合一特定表達(dá)式的所有區(qū)域,即計(jì)算機(jī)主機(jī)于初始運(yùn)作狀態(tài)時(shí),硬件裝置向操作系統(tǒng)要求在主存儲(chǔ)器中符合該特定表達(dá)式的所有地址來存放數(shù)據(jù)封包的描述符,且該特定表達(dá)式是由直接存儲(chǔ)器存取控制器中的一邏輯運(yùn)算電路所完成,借由判斷該描述符地址的運(yùn)算結(jié)果是否正確就可判斷有無失誤的發(fā)生,因此,本發(fā)明可在直接存儲(chǔ)器存取模式下借由一特定區(qū)域來判斷所欲存取的數(shù)據(jù)封包的描述符地址是否有失誤發(fā)生。
請(qǐng)參閱圖3(a),其是本發(fā)明直接存儲(chǔ)器存取控制器的第一較佳實(shí)施例的結(jié)構(gòu)示意圖。由圖中可清楚得知,直接存儲(chǔ)器存取控制器32(置于網(wǎng)絡(luò)卡31內(nèi))是與一芯片組35相連接,且該芯片組35另外連接于個(gè)人計(jì)算機(jī)的主存儲(chǔ)器30及個(gè)人計(jì)算機(jī)的微處理器36,其主要的特征在于具有一判斷器33,而該判斷器33包含一第一緩存器331及一第二緩存器332,可用以存放一第一預(yù)定地址及一第二預(yù)定地址,其主要用以判斷該描述符地址是否處于第一預(yù)定地址與第二預(yù)定地址間的區(qū)域就可判斷有無失誤的發(fā)生,至于該先進(jìn)先出緩沖器34則是用來暫存該直接存儲(chǔ)器存取控制器所讀取的封包數(shù)據(jù)。
請(qǐng)參閱圖3(b),其是本發(fā)明直接存儲(chǔ)器存取控制器的第二較佳實(shí)施例的結(jié)構(gòu)示意圖。其與圖3(b)的差異點(diǎn)在于判斷器33包含由一邏輯運(yùn)算電路333所完成的一特定表達(dá)式,其主要借由邏輯運(yùn)算電路333來檢測(cè)該描述符地址的運(yùn)算結(jié)果是否正確以判斷有無失誤的發(fā)生。
本發(fā)明得由熟習(xí)此技術(shù)的人士任施匠思諸般修飾,皆不脫如權(quán)利要求書的保護(hù)范圍。
權(quán)利要求
1.一種在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法,其特征是應(yīng)用于連接一芯片組的一直接存儲(chǔ)器存取控制器上,且該芯片組與一存儲(chǔ)器及一處理器相連接,該直接存儲(chǔ)器存取控制器整合于一網(wǎng)絡(luò)裝置中,該方法包含下列步驟讀取存儲(chǔ)于該存儲(chǔ)器中的一數(shù)據(jù)封包的一描述符地址;判斷該描述符地址是否處于一第一預(yù)定地址與一第二預(yù)定地址的區(qū)間內(nèi);當(dāng)該描述符地址不符合時(shí),該網(wǎng)絡(luò)裝置發(fā)出一中斷信號(hào)至該處理器,該處理器因應(yīng)該中斷信號(hào)而進(jìn)行一相對(duì)應(yīng)的中斷服務(wù),進(jìn)而使該直接存儲(chǔ)器存取控制器重新讀取關(guān)于該數(shù)據(jù)封包的描述符地址。
2.如權(quán)利要求1所述的在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法,其特征在于該第一預(yù)定地址與第二預(yù)定地址分別存放于一第一緩存器及一第二緩存器內(nèi),而該第一預(yù)定地址與第二預(yù)定地址是當(dāng)一計(jì)算機(jī)主機(jī)于初始運(yùn)作狀態(tài)時(shí),該網(wǎng)絡(luò)裝置的一驅(qū)動(dòng)程序向該計(jì)算機(jī)主機(jī)的一操作系統(tǒng)于該存儲(chǔ)器中要求一區(qū)間,用以存放該數(shù)據(jù)封包的描述符,該第一預(yù)定地址是該區(qū)間的啟始地址,該第二預(yù)定地址是該區(qū)間的終止地址。
3.如權(quán)利要求1所述的在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法,其特征在于該存儲(chǔ)器為一個(gè)人計(jì)算機(jī)的主存儲(chǔ)器,而當(dāng)該描述符地址符合時(shí),則至該地址處讀取關(guān)于該數(shù)據(jù)封包的描述符,再根據(jù)該描述符中所記錄的一數(shù)據(jù)存放地址來存取該封包的數(shù)據(jù),該描述符用以記錄該數(shù)據(jù)封包的一存放地址、一長(zhǎng)度、一狀態(tài)以及下一個(gè)欲進(jìn)行轉(zhuǎn)移的數(shù)據(jù)封包的一描述符地址,而該數(shù)據(jù)封包是轉(zhuǎn)移至該網(wǎng)絡(luò)裝置的該直接存儲(chǔ)器存取控制器的一先進(jìn)先出緩沖器中。
4.一種在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法,其特征是應(yīng)用于連接一芯片組的一直接存儲(chǔ)器存取控制器上,且該芯片組與一存儲(chǔ)器及一處理器相連接,該直接存儲(chǔ)器存取控制器整合于一硬件裝置中,該方法包含下列步驟讀取存儲(chǔ)于該存儲(chǔ)器中的一數(shù)據(jù)的一描述符地址;判斷該描述符地址是否符合處于一特定區(qū)域;當(dāng)該描述符地址不符合時(shí),該硬件裝置發(fā)出一中斷信號(hào)至該處理器,該處理器因應(yīng)該中斷信號(hào)而進(jìn)行一相對(duì)應(yīng)的中斷服務(wù),進(jìn)而使該直接存儲(chǔ)器存取控制器重新讀取關(guān)于該數(shù)據(jù)的描述符地址。
5.如權(quán)利要求4所述的在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法,其特征在于該存儲(chǔ)器為一個(gè)人計(jì)算機(jī)的主存儲(chǔ)器,而該硬件裝置為一網(wǎng)絡(luò)卡、一硬式磁盤、一聲卡或一數(shù)據(jù)卡,而當(dāng)該描述符地址符合時(shí),則至該地址處讀取關(guān)于該數(shù)據(jù)的描述符,再根據(jù)該描述符中所記錄的一數(shù)據(jù)存放地址來存取該封包的數(shù)據(jù),該描述符是用以記錄該數(shù)據(jù)封包的一存放地址、一長(zhǎng)度、一狀態(tài)以及下一個(gè)欲進(jìn)行轉(zhuǎn)移的數(shù)據(jù)的一描述符地址。
6.如權(quán)利要求4所述的在直接存儲(chǔ)器存取模式下檢測(cè)所欲轉(zhuǎn)移數(shù)據(jù)的地址的方法,其特征在于該數(shù)據(jù)封包是轉(zhuǎn)移至該硬件裝置的該直接存儲(chǔ)器存取控制器的一先進(jìn)先出緩沖器中,而該特定區(qū)域?yàn)橹糜谝坏谝活A(yù)定地址與一第二預(yù)定地址間的區(qū)域,或該特定區(qū)域?yàn)樵撁枋龇刂贩弦惶囟ū磉_(dá)式的區(qū)域,該處理器為一個(gè)人計(jì)算機(jī)的微處理器。
7.一種直接存儲(chǔ)器存取控制器,其特征是與一芯片組相連接且整合于一硬件裝置中,用以直接存取一存儲(chǔ)器的數(shù)據(jù),且該芯片組與一處理器相連接,該控制器讀取存儲(chǔ)于該存儲(chǔ)器中的一數(shù)據(jù)的一描述符地址,該控制器具有一判斷器,該判斷器判斷該描述符地址是否符合處于一特定區(qū)域,而于該描述符地址不符合時(shí),該硬件裝置則發(fā)出一中斷信號(hào)至該處理器,使該處理器因應(yīng)該中斷信號(hào)而進(jìn)行一相對(duì)應(yīng)的中斷服務(wù),進(jìn)而重新讀取相關(guān)于該數(shù)據(jù)的描述符地址。
8.如權(quán)利要求7所述的直接存儲(chǔ)器存取控制器,其特征在于該特定區(qū)域是置于一第一預(yù)定地址與一第二預(yù)定地址間的區(qū)域,而該第一預(yù)定地址與該第二預(yù)定地址分別存放于該判斷器的一第一緩存器及一第二緩存器內(nèi)。
9.如權(quán)利要求7所述的直接存儲(chǔ)器存取控制器,其特征在于該特定區(qū)域是該描述符地址符合一特定表達(dá)式的區(qū)域,而該特定表達(dá)式由設(shè)置于該判斷器中的一邏輯運(yùn)算電路所完成。
10.如權(quán)利要求7所述的直接存儲(chǔ)器存取控制器,其特征在于該描述符用以記錄該數(shù)據(jù)的一存放地址、該數(shù)據(jù)的一長(zhǎng)度、該數(shù)據(jù)的一狀態(tài)以及下一個(gè)欲進(jìn)行轉(zhuǎn)移的數(shù)據(jù)的一描述符地址,而該硬件裝置為一網(wǎng)絡(luò)卡、一硬式磁盤、一聲卡或一數(shù)據(jù)卡,該存儲(chǔ)器為一個(gè)人計(jì)算機(jī)的主存儲(chǔ)器,而該處理器為一個(gè)人計(jì)算機(jī)的微處理器。
全文摘要
本發(fā)明公開一種直接存儲(chǔ)器存取控制器及直接存儲(chǔ)器存取的控制方法,該直接存儲(chǔ)器存取控制器整合于一硬件裝置中,用以直接存取一存儲(chǔ)器的數(shù)據(jù),該控制器包含一進(jìn)行判斷該描述符地址是否符合處于一特定區(qū)域的動(dòng)作的判斷器,而該方法包含下列步驟讀取存儲(chǔ)于該存儲(chǔ)器中的一數(shù)據(jù)封包的一描述符地址;判斷該描述符地址是否處于一特定區(qū)域;當(dāng)該描述符地址不符合時(shí),該硬件裝置則發(fā)出一中斷信號(hào)至該處理器,使該處理器因應(yīng)該中斷信號(hào)而進(jìn)行一相對(duì)應(yīng)的中斷服務(wù),進(jìn)而使該直接存儲(chǔ)器存取控制器重新接收關(guān)于數(shù)據(jù)封包的描述符,從而可及時(shí)發(fā)現(xiàn)和糾正存取錯(cuò)誤。
文檔編號(hào)G06F12/00GK1397885SQ0212440
公開日2003年2月19日 申請(qǐng)日期2002年6月27日 優(yōu)先權(quán)日2002年6月27日
發(fā)明者石健毅 申請(qǐng)人:威盛電子股份有限公司