專(zhuān)利名稱(chēng):一種直接存儲(chǔ)器訪問(wèn)控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)中微處理器系統(tǒng),具體涉及信號(hào)、數(shù)據(jù)在存儲(chǔ)器、輸入/輸出設(shè)備或者中央處理器之間的傳輸,尤其涉及一種直接存儲(chǔ)器訪問(wèn)(Direct Memory Access,簡(jiǎn)稱(chēng)DMA)控制器。
另外,先進(jìn)的DMA控制器幾乎都支持鏈?zhǔn)絺鬏敺绞?。在鏈?zhǔn)絺鬏敺绞较拢珼MA控制器執(zhí)行完一個(gè)命令后會(huì)查看存儲(chǔ)器中指定地址的數(shù)據(jù),判斷CPU是否在存儲(chǔ)器中寫(xiě)好了新的傳輸命令。如果存在新的傳輸命令,DMA控制器將把這個(gè)新的命令讀入內(nèi)部寄存器中,并進(jìn)行該命令定義的數(shù)據(jù)傳輸;否則,DMA控制器將反復(fù)查詢(xún),直到CPU改變存儲(chǔ)器指定地址的數(shù)據(jù)通知DMA控制器有新的命令。當(dāng)DMA控制器等待新的命令時(shí),太頻繁的查詢(xún)必然降低總線的效率。但目前的DMA控制器(比如摩托羅拉的MPC8240中的DMA控制器)沒(méi)有為此提供一種有效的解決方案。
在一些場(chǎng)合中,DMA控制器可能需要周期性的執(zhí)行傳輸任務(wù),前面提到的MPC8240中的DMA控制器就支持這種功能。但MPC8240的DMA控制器需要根據(jù)外部的定時(shí)器提供周期性的請(qǐng)求,這樣一來(lái)程序員使用DMA控制器時(shí)不僅要設(shè)置DMA控制器,還要設(shè)置外部的定時(shí)器,工作效率受到影響。
本實(shí)用新型所要解決的問(wèn)題可以通過(guò)以下技術(shù)方案來(lái)解決一種直接存儲(chǔ)器訪問(wèn)控制器,包括總線BUSA、總線BUSB、定時(shí)器、譯碼邏輯、狀態(tài)寄存器、控制寄存器、命令寄存器組、描述符寄存器組、現(xiàn)場(chǎng)寄存器組、狀態(tài)機(jī)、數(shù)據(jù)緩沖隊(duì)列FIFO;所述總線BUSA分別與定時(shí)器、狀態(tài)寄存器、控制寄存器、命令寄存器組、描述符寄存器組雙向連接,并與譯碼邏輯輸入端、現(xiàn)場(chǎng)寄存器組輸出端相連接;總線BUSB分別與數(shù)據(jù)緩沖隊(duì)列FIFO、狀態(tài)機(jī)雙向連接,并與描述符寄存器組輸入端、現(xiàn)場(chǎng)寄存器組輸入端相連接;定時(shí)器輸出端與狀態(tài)寄存器輸入端、狀態(tài)機(jī)輸入端相連接,定時(shí)器輸入端與譯碼邏輯輸出端、控制寄存器輸出端相連接;譯碼邏輯輸出端與狀態(tài)寄存器輸入端、控制寄存器輸入端、命令寄存器組輸入端、描述符寄存器組輸入端、現(xiàn)場(chǎng)寄存器組輸入端相連接;狀態(tài)寄存器輸入端與狀態(tài)機(jī)輸出端相連接,狀態(tài)寄存器輸出端與狀態(tài)機(jī)輸入端相連接;控制寄存器輸出端與狀態(tài)機(jī)輸入端相連接;命令寄存器組輸出端與現(xiàn)場(chǎng)寄存器組輸入端、狀態(tài)機(jī)輸入端相連接;描述符寄存器組輸入端與狀態(tài)機(jī)輸出端相連接,描述符寄存器組輸出端與狀態(tài)機(jī)輸入端相連接;現(xiàn)場(chǎng)寄存器組輸入端與狀態(tài)機(jī)輸出端相連接,現(xiàn)場(chǎng)寄存器組輸出端與狀態(tài)機(jī)輸入端相連接。
所述狀態(tài)機(jī)的輸入信號(hào)還包括外部請(qǐng)求輸入信號(hào)、總線BUSB的仲裁信號(hào),輸出信號(hào)還包括總線BUSB的申請(qǐng)信號(hào)。
所述定時(shí)器包括初值寄存器、計(jì)數(shù)寄存器、遞增加法器、控制信號(hào)產(chǎn)生部件;所述初值寄存器與總線BUSA雙向連接,且初值寄存器輸出端與計(jì)數(shù)寄存器輸入端、控制信號(hào)產(chǎn)生部件輸入端相連接;計(jì)數(shù)寄存器輸出端與控制信號(hào)產(chǎn)生部件輸入端、遞增加法器輸入端相連接,計(jì)數(shù)寄存器輸入端與控制信號(hào)產(chǎn)生部件輸出端相連接;遞增加法器輸出端與計(jì)數(shù)寄存器輸入端相連接。
與現(xiàn)有技術(shù)相比,本實(shí)用新型的優(yōu)點(diǎn)在于由于本實(shí)用新型提供的DMA控制器采用帶有定時(shí)器,程序員可以通過(guò)設(shè)置DMA控制器中的定時(shí)器,強(qiáng)迫DMA控制器在一定時(shí)間內(nèi)必須發(fā)出中斷,從而避免DMA控制器在執(zhí)行一個(gè)命令時(shí)因?yàn)橥獠空?qǐng)求傳輸?shù)臄?shù)據(jù)量不足而發(fā)不出命令已完成的信號(hào),幫助程序員及時(shí)知道DMA控制器和外部請(qǐng)求設(shè)備的狀態(tài)。程序員不必借助外部的定時(shí)器,DMA控制器的使用變得方便。
DMA控制器中的定時(shí)器還可以為支持鏈?zhǔn)絺鬏數(shù)腄MA控制器提供一種周期性查詢(xún)存儲(chǔ)器中指定地址的內(nèi)容,避免在等待狀態(tài)頻繁查詢(xún)CPU準(zhǔn)備新命令的狀態(tài),從而有利于提高總線的效率。
這種DMA控制器的附帶優(yōu)點(diǎn)是,支持周期性的DMA傳輸操作,由于DMA控制器所帶的定時(shí)器可以提供周期性的信號(hào),這樣一來(lái)可以不需要外部的定時(shí)器,使程序員工作效率提高。
如
圖1所示,一種直接存儲(chǔ)器訪問(wèn)控制器,包括總線BUSA101、總線BUSB111、定時(shí)器102、譯碼邏輯103、狀態(tài)寄存器104、控制寄存器105、命令寄存器組106、描述符寄存器組107、現(xiàn)場(chǎng)寄存器組108、狀態(tài)機(jī)109、數(shù)據(jù)緩沖隊(duì)列FIFO(First In First Out)110??偩€BUSA101分別與定時(shí)器102、狀態(tài)寄存器104、控制寄存器105、命令寄存器組106、描述符寄存器組107雙向連接,并與譯碼邏輯輸入端、現(xiàn)場(chǎng)寄存器組輸出端相連接;總線BUSB111分別與數(shù)據(jù)緩沖隊(duì)列FIFO110、狀態(tài)機(jī)109雙向連接,并與描述符寄存器組輸入端、現(xiàn)場(chǎng)寄存器組輸入端相連接;定時(shí)器輸出端與狀態(tài)寄存器輸入端、狀態(tài)機(jī)輸入端相連接,定時(shí)器輸入端與譯碼邏輯輸出端、控制寄存器輸出端相連接;譯碼邏輯輸出端與狀態(tài)寄存器輸入端、控制寄存器輸入端、命令寄存器組輸入端、描述符寄存器組輸入端、現(xiàn)場(chǎng)寄存器組輸入端相連接;狀態(tài)寄存器輸入端與狀態(tài)機(jī)輸出端相連接,狀態(tài)寄存器輸出端與狀態(tài)機(jī)輸入端相連接;控制寄存器輸出端與狀態(tài)機(jī)輸入端相連接;命令寄存器組輸出端與現(xiàn)場(chǎng)寄存器組輸入端、狀態(tài)機(jī)輸入端相連接;描述符寄存器組輸入端與狀態(tài)機(jī)輸出端相連接,描述符寄存器組輸出端與狀態(tài)機(jī)輸入端相連接;現(xiàn)場(chǎng)寄存器組輸入端與狀態(tài)機(jī)輸出端相連接,現(xiàn)場(chǎng)寄存器組輸出端與狀態(tài)機(jī)輸入端相連接。
在采用單總線的DMA控制器中,總線BUSA101和總線BUSB111實(shí)際是同一總線;在采用多總線的DMA控制器中,總線BUSA101和總線BUSB111可以是不同總線。命令寄存器組106包括目的地址寄存器DADDRR(DestinationAddress Register)206、源地址寄存器SADDRR(Source Address Register)207、字節(jié)計(jì)數(shù)寄存器BCR(Byte Count Register)208。描述符寄存器組107包括當(dāng)前描述寄存器CDESR(Current Descriptor Register)201、下一個(gè)描述符寄存器NDESR(Next Descriptor Register)202?,F(xiàn)場(chǎng)寄存器組108包括當(dāng)前目的地址寄存器CDADDRR(Current Destination Address Register)203、當(dāng)前源地址寄存器CSADDRR(Current Source Address Register)204、當(dāng)前字節(jié)計(jì)數(shù)寄存器CBCR(Current Byte Count Register)208。
外部主設(shè)備(比如CPU)通過(guò)總線BUSA101訪問(wèn)DMA控制器的內(nèi)部寄存器來(lái)實(shí)現(xiàn)某些操作,這些操作包括設(shè)置定時(shí)器102、設(shè)置命令寄存器組106、設(shè)置控制寄存器105、初始化描述符寄存器組107、讀狀態(tài)寄存器104、清除狀態(tài)寄存器104的特殊位、讀現(xiàn)場(chǎng)寄存器組108。譯碼邏輯103根據(jù)總線BUSA101上的地址譯碼得出選擇信號(hào)114、115、116、117、118、119選擇被訪問(wèn)的內(nèi)部寄存器。狀態(tài)機(jī)109根據(jù)狀態(tài)寄存器的請(qǐng)求狀態(tài)信號(hào)121、外部請(qǐng)求輸入信號(hào)131、描述符寄存器組信號(hào)127、控制寄存器信號(hào)123、定時(shí)器信號(hào)124、命令寄存器組信號(hào)125、當(dāng)前命令寄存器組信號(hào)129、總線BUSB111的仲裁信號(hào)132等信號(hào),控制DMA控制器的運(yùn)行,包括狀態(tài)寄存器的變化、命令的執(zhí)行、總線時(shí)序控制。狀態(tài)機(jī)產(chǎn)生的信號(hào)包括控制狀態(tài)寄存器變化的信號(hào)122、控制描述符寄存器組更新的信號(hào)128、控制當(dāng)前命令寄存器組更新的信號(hào)130、總線BUSB的申請(qǐng)信號(hào)133、以及BUSB總線的控制信號(hào)。狀態(tài)寄存器接收定時(shí)器的輸入信號(hào)112,并根據(jù)中斷狀態(tài)產(chǎn)生中斷請(qǐng)求信號(hào)120。定時(shí)器將根據(jù)控制寄存器的模式指示信號(hào)113進(jìn)行工作。
當(dāng)DMA控制器工作在直接傳輸模式下,CPU首先初始化命令寄存器組106,DMA控制器接收到請(qǐng)求信號(hào)131后,狀態(tài)機(jī)109控制現(xiàn)場(chǎng)寄存器組108通過(guò)連線126讀入命令寄存器組106中的內(nèi)容,并發(fā)出總線申請(qǐng)133。接收到總線仲裁信號(hào)132,根據(jù)當(dāng)前源地址寄存器204和當(dāng)前目的地址寄存器203產(chǎn)生總線地址并送到總線BUSB111上;并把總線BUSB111數(shù)據(jù)接收到數(shù)據(jù)緩沖隊(duì)列FIFO110中,或把數(shù)據(jù)緩沖隊(duì)列FIFO110中的數(shù)據(jù)發(fā)送到總線BUSB111上。當(dāng)完成當(dāng)前命令定義的所有數(shù)據(jù)傳輸后;狀態(tài)機(jī)109產(chǎn)生中斷狀態(tài)信號(hào),狀態(tài)寄存器發(fā)出中斷請(qǐng)求120。
鏈?zhǔn)侥J较拢珻PU首先初始化描述符寄存器組107。DMA控制器接收到請(qǐng)求信號(hào)131后,DMA控制器根據(jù)下一個(gè)描述符寄存器指示的地址,通過(guò)總線BUSB111讀入新的描述符到描述符寄存器組107,并把指定的命令讀入當(dāng)前命令寄存器組。DMA控制器根據(jù)讀入的描述符狀態(tài)記錄判斷CPU是否準(zhǔn)備好新命令。如果CPU準(zhǔn)備好新命令,則DMA控制器開(kāi)始執(zhí)行讀入的這個(gè)命令,并在完成這個(gè)命令后根據(jù)描述符指定的地址重新讀入描述符和新命令,開(kāi)始新的判斷過(guò)程;這樣反復(fù)進(jìn)行讀命令、執(zhí)行命令的操作,直到描述符狀態(tài)記錄標(biāo)志沒(méi)有命令執(zhí)行為止。如果DMA控制器通過(guò)讀入的描述符判斷出CPU沒(méi)有準(zhǔn)備好,則DMA控制器重新讀入這個(gè)指定的描述符和命令,直到DMA控制器判斷出該描述符有效。
定時(shí)器102的作用有三個(gè)。(一)、用戶(hù)可以通過(guò)總線BUSA101設(shè)置定時(shí)器,定時(shí)器可以產(chǎn)生周期性的請(qǐng)求信號(hào),這個(gè)信號(hào)可以替代外部的請(qǐng)求信號(hào)131,從而周期性地啟動(dòng)DMA控制器傳輸命令。(二)、在鏈?zhǔn)焦ぷ髂J较拢瑸榱吮苊庠贑PU沒(méi)有準(zhǔn)備好命令的請(qǐng)求情況下DMA控制器頻繁地訪問(wèn)存儲(chǔ)器(以便讀入一個(gè)有效的命令),用戶(hù)可以設(shè)置定時(shí)器,通過(guò)定時(shí)訪問(wèn)降低DMA控制器訪問(wèn)存儲(chǔ)器的頻度,從而提高存儲(chǔ)器的效率。(三)、用戶(hù)也可以如下設(shè)置定時(shí)器如果DMA控制器在指定的時(shí)間范圍內(nèi)沒(méi)有完成指定的傳輸任務(wù),DMA控制器將產(chǎn)生一個(gè)超時(shí)中斷,及時(shí)報(bào)告已完成的傳輸過(guò)程。這樣可以提供一種DMA控制器在不斷傳輸重試、實(shí)際傳輸任務(wù)少于預(yù)期傳輸任務(wù)以及總線意外長(zhǎng)時(shí)間等待等情況下通知用戶(hù)的中斷機(jī)制。
圖2是本實(shí)用新型控制寄存器的相關(guān)位示意圖。為了支持定時(shí)器工作,DMA控制器應(yīng)該增加一些控制位。這些控制位包括定時(shí)中斷使能位TIEN(Timer Interrupt Enable)211、定時(shí)請(qǐng)求使能位TREN(Timer Request Enable)212、定時(shí)讀取描述符使能位TADEN(Timer Access Descriptor Enable)213。這些控制位定義在控制寄存器105中。定時(shí)中斷使能位TIEN211、定時(shí)請(qǐng)求使能位TREN212、定時(shí)讀取描述符使能位TADEN213都是高電平有效。當(dāng)定時(shí)中斷使能位TIEN211有效時(shí),DMA控制器在設(shè)定的時(shí)間范圍內(nèi)沒(méi)有完成傳輸命令則將產(chǎn)生超時(shí)中斷。當(dāng)定時(shí)請(qǐng)求使能位TREN212有效時(shí),定時(shí)器將周期性的請(qǐng)求DMA控制器傳輸數(shù)據(jù)。當(dāng)定時(shí)讀取描述符使能位TADEN213有效時(shí),DMA控制器判斷出需要重新讀取描述符的情況下,狀態(tài)機(jī)109將根據(jù)定時(shí)器的定時(shí)信號(hào)重新讀取描述符。
圖3是本實(shí)用新型提出的DMA控制器的定時(shí)器的結(jié)構(gòu)框圖。定時(shí)器102包括初值寄存器33、計(jì)數(shù)寄存器38、遞增加法器36、控制信號(hào)產(chǎn)生部件31;所述初值寄存器33與總線BUSA101雙向連接,且初值寄存器輸出端與計(jì)數(shù)寄存器輸入端、控制信號(hào)產(chǎn)生部件輸入端相連接;計(jì)數(shù)寄存器輸出端與控制信號(hào)產(chǎn)生部件輸入端、遞增加法器輸入端相連接,計(jì)數(shù)寄存器輸入端與控制信號(hào)產(chǎn)生部件輸出端相連接;遞增加法器輸出端與計(jì)數(shù)寄存器輸入端相連接。定時(shí)器102可以提供周期性的請(qǐng)求信號(hào),指示DMA控制器讀取描述符,提供超時(shí)中斷源。
用戶(hù)可以通過(guò)總線BUSA101設(shè)置或讀取初值寄存器33,選擇信號(hào)302來(lái)自圖1中的譯碼邏輯103,指示總線BUSA101訪問(wèn)初值寄存器33。當(dāng)用戶(hù)允許定時(shí)器工作時(shí),計(jì)數(shù)寄存器的值通過(guò)遞增加法器36的作用每周期加一??刂菩盘?hào)產(chǎn)生部件31對(duì)初值寄存器的值和計(jì)數(shù)寄存器的值310進(jìn)行比較,當(dāng)兩者相等時(shí),產(chǎn)生清零信號(hào)309,在下一周期清除計(jì)數(shù)寄存器的值,然后計(jì)數(shù)寄存器重新計(jì)數(shù)。當(dāng)初值寄存器的值和計(jì)數(shù)寄存器的值相等時(shí),控制信號(hào)產(chǎn)生邏輯根據(jù)來(lái)自控制寄存器的定時(shí)中斷使能位TIEN211、定時(shí)請(qǐng)求使能位TREN212、定時(shí)讀取描述符使能位TADEN213產(chǎn)生定時(shí)中斷信號(hào)316、定時(shí)請(qǐng)求信號(hào)317、定時(shí)讀取描述符信號(hào)318。當(dāng)定時(shí)中斷使能位TIEN211、定時(shí)請(qǐng)求使能位TREN212、定時(shí)讀取描述符使能位TADEN213有效時(shí),相應(yīng)的定時(shí)中斷信號(hào)316、定時(shí)請(qǐng)求信號(hào)317、定時(shí)讀取描述符信號(hào)318才能有效。定時(shí)中斷信號(hào)316送到狀態(tài)寄存器104中,定時(shí)請(qǐng)求信號(hào)317和定時(shí)讀取描述符信號(hào)318送到狀態(tài)機(jī)109中。
定時(shí)器102能否工作取決于時(shí)中斷使能位TIEN211、定時(shí)請(qǐng)求使能位TREN212)、定時(shí)讀取描述符使能位TADEN213和來(lái)自狀態(tài)機(jī)109的當(dāng)前命令完成信號(hào)315。中斷使能位TIEN211有效,或定時(shí)請(qǐng)求使能位TREN212,或定時(shí)讀取描述符使能位TADEN213有效且當(dāng)前命令完成信號(hào)315無(wú)效時(shí),定時(shí)器允許工作。否則計(jì)數(shù)寄存器被清零,定時(shí)器不允許工作。
圖4是中斷控制邏輯的示意圖。由于增加了超時(shí)中斷源,狀態(tài)寄存器相應(yīng)增加超時(shí)狀態(tài)位403。超時(shí)狀態(tài)位403等于“1”表示發(fā)生了超時(shí)中斷。超時(shí)中斷采樣定時(shí)器來(lái)的定時(shí)中斷信號(hào)316,當(dāng)定時(shí)中斷信號(hào)316有效時(shí),超時(shí)狀態(tài)位有效并保持;用戶(hù)通過(guò)總線BUSA101向超時(shí)狀態(tài)位寫(xiě)“0”將把超時(shí)狀態(tài)位清零。
當(dāng)超時(shí)狀態(tài)位有效時(shí),將產(chǎn)生超時(shí)中斷404。超時(shí)中斷高有效。超時(shí)中斷404和DMA正常情況下的中斷信號(hào)405經(jīng)過(guò)一個(gè)二或門(mén)406得到一個(gè)中斷請(qǐng)求信號(hào)120,這個(gè)中斷請(qǐng)求信號(hào)就是DMA控制器輸出的中斷請(qǐng)求信號(hào)。
圖5是定時(shí)請(qǐng)求選擇示意圖,當(dāng)用戶(hù)使能定時(shí)請(qǐng)求功能時(shí),來(lái)自定時(shí)器的請(qǐng)求信號(hào)317請(qǐng)求DMA控制器開(kāi)始工作;否則,外部輸入請(qǐng)求信號(hào)131請(qǐng)求DMA控制器開(kāi)始工作。即來(lái)自控制寄存器的定時(shí)請(qǐng)求使能信號(hào)503有效時(shí),二選一選擇器502選擇來(lái)自定時(shí)器的請(qǐng)求信號(hào)317作為最終的請(qǐng)求DMA控制器開(kāi)始工作的請(qǐng)求信號(hào)501;否則二選一選擇器502選擇外部輸入的請(qǐng)求信號(hào)131作為最終的請(qǐng)求DMA控制器開(kāi)始工作的請(qǐng)求信號(hào)501。
圖6是定時(shí)讀取描述符控制示意圖,圖中所示信號(hào)包括來(lái)自定時(shí)器的定時(shí)讀取描述符信號(hào)318;狀態(tài)機(jī)109產(chǎn)生的讀描述符完成信號(hào)602,當(dāng)狀態(tài)機(jī)讀完一個(gè)描述符時(shí)該信號(hào)有效;來(lái)自控制寄存器的定時(shí)讀取描述符使能信號(hào)605;狀態(tài)機(jī)正常情況下等待CPU準(zhǔn)備描述符的指示信號(hào)609;狀態(tài)機(jī)無(wú)需等待CPU讀取描述符的指示信號(hào)612;狀態(tài)機(jī)讀取描述符的指示信號(hào)614;這些信號(hào)都是高電平有效。圖中觸發(fā)器603采樣定時(shí)讀取描述符信號(hào)318并保持有效的定時(shí)讀取描述符信號(hào)(高電平有效),直到接收到讀描述符完成信號(hào)602。
當(dāng)狀態(tài)機(jī)無(wú)需等待CPU就讀取描述符時(shí),狀態(tài)機(jī)讀取描述符的指示信號(hào)614等于狀態(tài)機(jī)無(wú)需等待CPU讀取描述符的指示信號(hào)612。否則,當(dāng)定時(shí)讀取描述符使能信號(hào)605無(wú)效時(shí),狀態(tài)機(jī)讀取描述符的指示信號(hào)614等于狀態(tài)機(jī)正常情況下等待CPU準(zhǔn)備描述符的指示信號(hào)609;當(dāng)定時(shí)讀取描述符使能信號(hào)605有效時(shí),等待CPU準(zhǔn)備描述符的指示信號(hào)609和觸發(fā)器輸出信號(hào)604有效時(shí)狀態(tài)機(jī)讀取描述符的指示信號(hào)614有效。
圖中觸發(fā)器603采樣定時(shí)讀取描述符信號(hào)318并保持有效的定時(shí)讀取描述符信號(hào)(高有效),當(dāng)讀描述符完成信號(hào)602有效是被清零。定時(shí)讀取描述符使能信號(hào)605經(jīng)過(guò)一個(gè)反向器(非門(mén))606得到定時(shí)讀取描述符使能非信號(hào)607。觸發(fā)器輸出信號(hào)604和定時(shí)讀取描述符使能非信號(hào)607經(jīng)過(guò)一個(gè)二或門(mén)得到信號(hào)608。信號(hào)608和等待CPU準(zhǔn)備描述符的指示信號(hào)609經(jīng)過(guò)一個(gè)二與門(mén)610得到信號(hào)611。信號(hào)611和無(wú)需等待CPU讀取描述符的指示信號(hào)612經(jīng)過(guò)一個(gè)二或門(mén)得到狀態(tài)機(jī)讀取描述符的指示信號(hào)614。
權(quán)利要求1.一種直接存儲(chǔ)器訪問(wèn)控制器,其特征在于所述直接存儲(chǔ)器訪問(wèn)控制器包括總線BUSA、總線BUSB、定時(shí)器、譯碼邏輯、狀態(tài)寄存器、控制寄存器、命令寄存器組、描述符寄存器組、現(xiàn)場(chǎng)寄存器組、狀態(tài)機(jī)、數(shù)據(jù)緩沖隊(duì)列FIFO;所述總線BUSA分別與定時(shí)器、狀態(tài)寄存器、控制寄存器、命令寄存器組、描述符寄存器組雙向連接,并與譯碼邏輯輸入端、現(xiàn)場(chǎng)寄存器組輸出端相連接;總線BUSB分別與數(shù)據(jù)緩沖隊(duì)列FIFO、狀態(tài)機(jī)雙向連接,并與描述符寄存器組輸入端、現(xiàn)場(chǎng)寄存器組輸入端相連接;定時(shí)器輸出端與狀態(tài)寄存器輸入端、狀態(tài)機(jī)輸入端相連接,定時(shí)器輸入端與譯碼邏輯輸出端、控制寄存器輸出端相連接;譯碼邏輯輸出端與狀態(tài)寄存器輸入端、控制寄存器輸入端、命令寄存器組輸入端、描述符寄存器組輸入端、現(xiàn)場(chǎng)寄存器組輸入端相連接;狀態(tài)寄存器輸入端與狀態(tài)機(jī)輸出端相連接,狀態(tài)寄存器輸出端與狀態(tài)機(jī)輸入端相連接;控制寄存器輸出端與狀態(tài)機(jī)輸入端相連接;命令寄存器組輸出端與現(xiàn)場(chǎng)寄存器組輸入端、狀態(tài)機(jī)輸入端相連接;描述符寄存器組輸入端與狀態(tài)機(jī)輸出端相連接,描述符寄存器組輸出端與狀態(tài)機(jī)輸入端相連接;現(xiàn)場(chǎng)寄存器組輸入端與狀態(tài)機(jī)輸出端相連接,現(xiàn)場(chǎng)寄存器組輸出端與狀態(tài)機(jī)輸入端相連接。
2.如權(quán)利要求1所述的直接存儲(chǔ)器訪問(wèn)控制器,其特征在于所述狀態(tài)機(jī)的輸入信號(hào)還包括外部請(qǐng)求輸入信號(hào)、總線BUSB的仲裁信號(hào),輸出信號(hào)還包括總線BUSB的申請(qǐng)信號(hào)。
3.如權(quán)利要求1所述的直接存儲(chǔ)器訪問(wèn)控制器,其特征在于所述定時(shí)器包括初值寄存器、計(jì)數(shù)寄存器、遞增加法器、控制信號(hào)產(chǎn)生部件;所述初值寄存器與總線BUSA雙向連接,且初值寄存器輸出端與計(jì)數(shù)寄存器輸入端、控制信號(hào)產(chǎn)生部件輸入端相連接;計(jì)數(shù)寄存器輸出端與控制信號(hào)產(chǎn)生部件輸入端、遞增加法器輸入端相連接,計(jì)數(shù)寄存器輸入端與控制信號(hào)產(chǎn)生部件輸出端相連接;遞增加法器輸出端與計(jì)數(shù)寄存器輸入端相連接。
4.如權(quán)利要求1所述的直接存儲(chǔ)器訪問(wèn)控制器,其特征在于所述命令寄存器組包括目的地址寄存器、源地址寄存器、字節(jié)計(jì)數(shù)寄存器。
5.如權(quán)利要求1所述的直接存儲(chǔ)器訪問(wèn)控制器,其特征在于所述描述符寄存器組包括當(dāng)前描述寄存器、下一個(gè)描述符寄存器。
6.如權(quán)利要求1所述的直接存儲(chǔ)器訪問(wèn)控制器,其特征在于所述現(xiàn)場(chǎng)寄存器組包括當(dāng)前目的地址寄存器、當(dāng)前源地址寄存器、當(dāng)前字節(jié)計(jì)數(shù)寄存器。
7.如權(quán)利要求1所述的直接存儲(chǔ)器訪問(wèn)控制器,其特征在于所述控制寄存器中定義了定時(shí)中斷使能位、定時(shí)請(qǐng)求使能位、定時(shí)讀取描述符使能位。
8.如權(quán)利要求7所述的直接存儲(chǔ)器訪問(wèn)控制器,其特征在于當(dāng)所述中斷使能位有效,或定時(shí)請(qǐng)求使能位,或定時(shí)讀取描述符使能位有效且來(lái)自狀態(tài)機(jī)的當(dāng)前命令完成信號(hào)無(wú)效時(shí),定時(shí)器允許工作;否則計(jì)數(shù)寄存器被清零,定時(shí)器不允許工作。
專(zhuān)利摘要本實(shí)用新型公開(kāi)了一種直接存儲(chǔ)器訪問(wèn)控制器,包括總線BUSA、總線BUSB、定時(shí)器、譯碼邏輯、狀態(tài)寄存器、控制寄存器、命令寄存器組、描述符寄存器組、現(xiàn)場(chǎng)寄存器組、狀態(tài)機(jī)、數(shù)據(jù)緩沖隊(duì)列FIFO;定時(shí)器與總線BUSA雙向連接,定時(shí)器輸入端與譯碼邏輯輸出端、控制寄存器輸出端相連接,定時(shí)器輸出端與狀態(tài)寄存器輸入端、狀態(tài)機(jī)輸入端相連接。所述直接存儲(chǔ)器訪問(wèn)控制器的定時(shí)器可以提供周期性的信號(hào)而且也可以由操作人員自行設(shè)置,這使總線的效率和人員的工作效率得到提高。
文檔編號(hào)G06F13/14GK2507066SQ0125638
公開(kāi)日2002年8月21日 申請(qǐng)日期2001年10月18日 優(yōu)先權(quán)日2001年10月18日
發(fā)明者王良清 申請(qǐng)人:深圳市中興集成電路設(shè)計(jì)有限責(zé)任公司