專利名稱:同步dma傳輸協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通過(guò)總線在主設(shè)備和外圍驅(qū)動(dòng)設(shè)備之間進(jìn)行的數(shù)據(jù)傳輸。具體來(lái)說(shuō),本發(fā)明涉及一種執(zhí)行同步直接存儲(chǔ)器存取(DMA),以提高的數(shù)據(jù)傳輸率傳送數(shù)據(jù)的方法。
在個(gè)人計(jì)算機(jī)(PC)系統(tǒng)中,主設(shè)備和外圍驅(qū)動(dòng)設(shè)備之間的數(shù)據(jù)傳輸率受連接設(shè)備的總線結(jié)構(gòu)的限制。一種通常用于將外圍驅(qū)動(dòng)設(shè)備連接到PC的系統(tǒng)總線上的總線是ATA總線,該ATA總線是一種原本為IBM PC/AT機(jī)的ISA總線設(shè)計(jì)的磁盤驅(qū)動(dòng)接口。開始時(shí),ATA總線先被配置為使用LS-TTL(低功耗肖特基晶體管—晶體管邏輯)門電路來(lái)驅(qū)動(dòng)一條18英寸長(zhǎng)的電纜。LS-TTL門電路平緩的邊沿和較短的電纜長(zhǎng)度適合于在當(dāng)時(shí)的系統(tǒng)中工作。然而,當(dāng)PC系統(tǒng)變得更快并且更加復(fù)雜時(shí),ATA總線的定義被擴(kuò)充為要包括實(shí)現(xiàn)更快數(shù)據(jù)傳輸率的操作方式,而且,硬件設(shè)計(jì)者經(jīng)常將ATA電纜的長(zhǎng)度延長(zhǎng)到遠(yuǎn)大于18英寸。例如,PIO(程控輸入/輸出)現(xiàn)在包括PIO方式0-4。方式0、1和2與ATA接口的初始定義相對(duì)應(yīng),而PIO方式3定義了一個(gè)11.1MB/S的最大傳輸率,PIO方式4定義了一個(gè)16.7MB/S的最大傳輸率。同樣地對(duì)新的DMA方式進(jìn)行定義。多字DMA方式0對(duì)應(yīng)于原來(lái)的接口,而DMA方式1和2提供了更快的數(shù)據(jù)傳輸率。多字DMA方式2與新PIO方式4有相同的最大傳輸速率。
這些新的操作方式需要ATA總線有更高的性能,其結(jié)果就是要通過(guò)減少周期時(shí)間來(lái)努力提高數(shù)據(jù)傳輸率。減少周期時(shí)間的努力是依靠提高邊沿速率來(lái)實(shí)現(xiàn)的。而增加的邊沿速率與ATA電纜長(zhǎng)度會(huì)在初始ATA電纜配置中帶來(lái)缺點(diǎn)。這些缺點(diǎn)影響電纜上所傳信號(hào)的完整性。特別關(guān)心的問(wèn)題是信號(hào)間過(guò)量的振鳴和串音,及能夠?qū)е孪到y(tǒng)錯(cuò)誤與/或數(shù)據(jù)丟失的時(shí)序/傳輸延遲。增加的邊沿速率和過(guò)長(zhǎng)的電纜長(zhǎng)度帶來(lái)了這些問(wèn)題。所以,有效的可用數(shù)據(jù)的傳輸率由于ATA總線結(jié)構(gòu)內(nèi)在的局限而受限制。
增加的邊沿速率和過(guò)量的電纜長(zhǎng)度對(duì)ATA總線來(lái)說(shuō)是有問(wèn)題的,因?yàn)樗且环N差的終端匹配的總線結(jié)構(gòu)設(shè)計(jì)。標(biāo)準(zhǔn)18英寸ATA總線電纜一般被設(shè)計(jì)為一條帶有大約110歐姆特征阻抗和60%c(c—光速)傳播速度的單端傳輸線路。根據(jù)傳輸線路理論,當(dāng)終端阻抗與電纜的特征阻抗不匹配時(shí),就會(huì)產(chǎn)生振鳴。振鳴幅度隨著阻抗不匹配的增大而增加。在ATA總線的信號(hào)和數(shù)據(jù)線上,足夠的振鳴會(huì)產(chǎn)生誤觸發(fā)和過(guò)量的穩(wěn)定延遲,這會(huì)導(dǎo)致系統(tǒng)錯(cuò)誤與/或數(shù)據(jù)丟失。
由于數(shù)字信息是在傳輸線路上傳送,振鳴的產(chǎn)生尤其會(huì)給PC系統(tǒng)中ATA總線上的數(shù)據(jù)傳輸帶來(lái)問(wèn)題。根據(jù)傳輸線理論的另一條,在傳輸線上傳送的信息是作為波形輸入的。由于傳輸線的特性阻抗和長(zhǎng)度,傳輸線路的輸出波形會(huì)有一定的失真。在輸入波形通常為正弦波的模擬傳輸中,輸出波形典型地出現(xiàn)相對(duì)易于修正的相移失真。但是,在數(shù)字傳輸中,輸入波形通常是某種方波,由于傳送的信息是1和0的形式,對(duì)邊沿變換的識(shí)別非常重要。這些方波的失真會(huì)在波形中導(dǎo)致不能清晰識(shí)別邊沿變換,顯然就成為振鳴。這樣,如上所述的誤觸發(fā)機(jī)會(huì)可能會(huì)發(fā)生,并且是數(shù)字傳輸?shù)囊环N表征。
近來(lái),增多的振鳴已經(jīng)成為越來(lái)越普遍的問(wèn)題,因?yàn)楝F(xiàn)代PC的總線結(jié)構(gòu)為適應(yīng)增長(zhǎng)的處理器和驅(qū)動(dòng)器速度已經(jīng)發(fā)生了變化。由于處理器總線速度已從8MHz增加到33MHz,并且磁盤驅(qū)動(dòng)器的速度也有所增加,必須更新ATA標(biāo)準(zhǔn)以便允許更快的數(shù)據(jù)傳輸率。為了減少傳播延遲,一些制造商已經(jīng)增加了主機(jī)的輸出驅(qū)動(dòng)以便在電纜的電容性負(fù)載下更快地轉(zhuǎn)換輸出信號(hào)。這是通過(guò)采用快速CMOS(互補(bǔ)金屬氧化物半導(dǎo)體)處理替代原來(lái)在ATA總線上使用的低速TTL設(shè)備而實(shí)現(xiàn)的。這樣做的結(jié)果就降低了輸出阻抗,與TTL設(shè)備5到6納秒的邊沿速率相對(duì),ATA總線上的邊沿速率減少到了1至2納秒或更少。這些沒(méi)有足夠終端匹配的快速邊沿加重了總線上的振鳴,使得許多系統(tǒng)/驅(qū)動(dòng)組合無(wú)法工作。
當(dāng)一條信號(hào)線上的切換在相鄰或附近的線路上產(chǎn)生感應(yīng)信號(hào)時(shí),就出現(xiàn)了串音。一個(gè)信號(hào)通過(guò)兩種機(jī)制耦合到相鄰線路中去耦合電容與互感。當(dāng)一個(gè)切換信號(hào)的波前沿一條電纜傳播時(shí),它將能量耦合到相鄰線路中去。一旦能量在第二條線中,它以兩個(gè)方向傳播向接收端和向發(fā)源端。耦合信號(hào)的幅度與在主線路中信號(hào)的變化率成比例。此外,耦合信號(hào)的幅度與耦合電容和互感的總量成比例,因此與電纜的長(zhǎng)度成比例。這些串音特性使得控制新ATA總線驅(qū)動(dòng)器的轉(zhuǎn)換速率和電纜長(zhǎng)度變得很重要,因?yàn)榭焖俚倪呇厮俾屎驮跀?shù)據(jù)線上造成的振鳴會(huì)由串音耦合到相鄰控制線路上去,而電纜長(zhǎng)度超過(guò)18英寸會(huì)增加串音產(chǎn)生的可能性。
另一個(gè)與ATA總線設(shè)計(jì)上的差的終端匹配和電纜長(zhǎng)度有關(guān)的關(guān)心的問(wèn)題是傳播延遲,違反電纜長(zhǎng)度的限制會(huì)使它更加惡化。如上面所討論的,ATA總線原來(lái)被定義為最大長(zhǎng)度18英寸。但是,今天,系統(tǒng)設(shè)計(jì)者被嚴(yán)格要求設(shè)計(jì)一個(gè)主設(shè)備與外圍驅(qū)動(dòng)設(shè)備可以在18英寸之內(nèi)連接的系統(tǒng)。而且,某些系統(tǒng)帶有雙ATA接口端口來(lái)共享兩條ATA電纜。這些端口不是完全相互獨(dú)立的,雙端口使ATA電纜的有效長(zhǎng)度為36英寸。這種加長(zhǎng)的電纜長(zhǎng)度帶來(lái)了主機(jī)與外圍驅(qū)動(dòng)設(shè)備間來(lái)回傳遞控制與數(shù)據(jù)信號(hào)的傳播延遲。這種傳播延遲最終影響總線的數(shù)據(jù)傳輸率和整體性能。
還有一個(gè)與ATA總線數(shù)據(jù)傳輸率相關(guān)的關(guān)心的問(wèn)題是數(shù)據(jù)完整性??偩€所傳數(shù)據(jù)的有效性是很重要的,因此就期望提供一種可靠且易行的錯(cuò)誤檢測(cè)能力。因?yàn)橛蓴?shù)據(jù)位組成的字在ATA總線上傳送,面向位的錯(cuò)誤檢測(cè)方法就比面向符號(hào)的錯(cuò)誤檢測(cè)方法更實(shí)用。然而,傳統(tǒng)的面向位錯(cuò)誤檢測(cè)對(duì)ATA總線上發(fā)生的數(shù)據(jù)傳輸是不實(shí)際的,因?yàn)閭鹘y(tǒng)的面向位錯(cuò)誤檢測(cè)是一種位串行方法。傳統(tǒng)的位錯(cuò)誤檢測(cè)過(guò)程使用多項(xiàng)式生成器來(lái)邏輯地控制輸入數(shù)據(jù)位流以產(chǎn)生一個(gè)循環(huán)冗余代碼(CRC)值G(X)=X16+X12+X5+1數(shù)據(jù)流的每一位都被位時(shí)鐘以位元定時(shí)速率進(jìn)行操作,順序轉(zhuǎn)移到CRC邏輯編碼/解碼器中。由于ATA總線上的數(shù)據(jù)傳輸是16位數(shù)據(jù)字的傳輸,每個(gè)字在一個(gè)相當(dāng)于位時(shí)鐘16倍的時(shí)鐘周期內(nèi)傳送。所以,采用現(xiàn)有的由位時(shí)鐘操作的位串行方式就需要時(shí)鐘頻率為位時(shí)鐘或16倍字時(shí)鐘的頻率。位串行方式還有一個(gè)問(wèn)題是,由于數(shù)據(jù)以字為單元進(jìn)行傳送,在ATA接口電路結(jié)構(gòu)的這部分沒(méi)有可用的位時(shí)鐘。因此,現(xiàn)存的面向位錯(cuò)誤檢測(cè)過(guò)程在對(duì)ATA總線上的數(shù)據(jù)傳輸提供數(shù)據(jù)完整性方面是不實(shí)用的。
前面討論的ATA總線設(shè)計(jì)上的局限把主設(shè)備和外圍驅(qū)動(dòng)設(shè)備間的數(shù)據(jù)傳輸能力限制在上述速度上。隨著更快的處理器和外圍設(shè)備的出現(xiàn),人們期望得到主機(jī)和外圍驅(qū)動(dòng)設(shè)備間更快速而準(zhǔn)確的數(shù)據(jù)傳輸率。這樣,就存在一個(gè)目前尚未解決的需求,需要一個(gè)改進(jìn)的、簡(jiǎn)單而花費(fèi)不多的方法,來(lái)實(shí)現(xiàn)主設(shè)備和外圍驅(qū)動(dòng)設(shè)備間通過(guò)帶有某種操作限制的總線接口進(jìn)行的數(shù)據(jù)傳輸,這種傳輸以提高的數(shù)據(jù)傳輸率進(jìn)行而不違反總線接口的操作限制。
本發(fā)明的方法可以滿足這些要求。
本發(fā)明給出了一種方法,用于在一個(gè)計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn)同步DMA短脈沖串傳輸(burst),該計(jì)算機(jī)系統(tǒng)中包括一個(gè)通過(guò)總線與至少一個(gè)外圍驅(qū)動(dòng)設(shè)備相連的主設(shè)備,其中總線有一個(gè)相關(guān)的控制信號(hào)傳輸選通頻率并用來(lái)根據(jù)主設(shè)備的讀或?qū)懼噶钸M(jìn)行外圍驅(qū)動(dòng)設(shè)備與主設(shè)備間的數(shù)據(jù)傳輸。每條指令的數(shù)據(jù)傳輸通過(guò)總線上的一系列同步DMA短脈沖串來(lái)實(shí)現(xiàn)。
針對(duì)一條主設(shè)備讀指令,外圍驅(qū)動(dòng)設(shè)備發(fā)出一個(gè)DMA請(qǐng)求信號(hào)來(lái)初始化同步DMA短脈沖串傳輸,當(dāng)主設(shè)備準(zhǔn)備開始同步DMA短脈沖串傳輸時(shí),主設(shè)備會(huì)發(fā)出一個(gè)DMA確認(rèn)信號(hào)來(lái)響應(yīng)DMA請(qǐng)求信號(hào)。在主設(shè)備發(fā)出DMA確認(rèn)信號(hào)后的某個(gè)預(yù)定時(shí)間周期內(nèi),外圍驅(qū)動(dòng)設(shè)備把第一個(gè)數(shù)據(jù)字放到總線上,然后,從數(shù)據(jù)字放到總線上起經(jīng)過(guò)第二個(gè)預(yù)定時(shí)間周期后,外圍驅(qū)動(dòng)設(shè)備把選通信號(hào)從高狀態(tài)觸發(fā)到低狀態(tài)以將第一個(gè)數(shù)據(jù)字鎖存到主設(shè)備中。在本發(fā)明的方法中,外圍驅(qū)動(dòng)設(shè)備一直控制著同步DMA短脈沖串的初始化,而發(fā)送數(shù)據(jù)的設(shè)備既控制數(shù)據(jù)信號(hào)也控制把數(shù)據(jù)鎖存到數(shù)據(jù)接收設(shè)備上的選通信號(hào)。由一個(gè)設(shè)備控制數(shù)據(jù)和選通信號(hào)兩者使得與同步DMA短脈沖串傳輸相關(guān)的傳播延遲、電纜穩(wěn)定和準(zhǔn)備時(shí)間的影響最小化并因此提高數(shù)據(jù)能夠在總線上傳輸?shù)乃俾省?br>
通過(guò)外圍驅(qū)動(dòng)設(shè)備把附加字送到總線上,可以在DMA短脈沖串傳輸中傳送一個(gè)附加字;接著,在經(jīng)過(guò)第二個(gè)預(yù)定時(shí)間周期之后,外圍驅(qū)動(dòng)設(shè)備將選通信號(hào)從低狀態(tài)觸發(fā)為高狀態(tài)以把附加字鎖存到主設(shè)備中去。將附加字放到總線上并將選通信號(hào)從一個(gè)狀態(tài)觸發(fā)到另一個(gè)狀態(tài)的這些步驟可以重復(fù)進(jìn)行,直到外圍驅(qū)動(dòng)設(shè)備完成了所有要傳送的數(shù)據(jù)字的發(fā)送。當(dāng)外圍驅(qū)動(dòng)設(shè)備完成所有數(shù)據(jù)的發(fā)送時(shí),外圍驅(qū)動(dòng)設(shè)備取消其DMA請(qǐng)求信號(hào)來(lái)終止同步DMA短脈沖串傳輸。如果在外圍驅(qū)動(dòng)設(shè)備完成發(fā)送數(shù)據(jù)之后,選通信號(hào)不在高狀態(tài),則外圍驅(qū)動(dòng)設(shè)備會(huì)將它返回到高狀態(tài)。
另外,本方法可以包括執(zhí)行面向并行位錯(cuò)誤檢測(cè),來(lái)確保在同步DMA短脈沖串傳輸中傳送的數(shù)據(jù)是有效的。在數(shù)據(jù)傳輸中,外圍驅(qū)動(dòng)設(shè)備和主設(shè)備兩者都計(jì)算出一個(gè)16位的CRC值。在外圍驅(qū)動(dòng)設(shè)備已經(jīng)發(fā)出一個(gè)完整的DMA短脈沖串后,主設(shè)備向外圍驅(qū)動(dòng)設(shè)備發(fā)出它計(jì)算出的CRC值,外圍驅(qū)動(dòng)設(shè)備把接收到的CRC值與它自己計(jì)算出的CRC值進(jìn)行比較,來(lái)檢查是否有任何錯(cuò)誤。
當(dāng)主設(shè)備指令為寫指令時(shí),同步DMA短脈沖串傳輸仍通過(guò)外圍驅(qū)動(dòng)設(shè)備發(fā)出DMA請(qǐng)求信號(hào)來(lái)進(jìn)行初始化。當(dāng)主設(shè)備準(zhǔn)備開始短脈沖串傳輸時(shí),主設(shè)備發(fā)出一個(gè)DMA確認(rèn)信號(hào)并將第一個(gè)數(shù)據(jù)字放到總線上。響應(yīng)于DMA確認(rèn)信號(hào),外圍驅(qū)動(dòng)設(shè)備在DMA確認(rèn)信號(hào)發(fā)出后的預(yù)定時(shí)間周期內(nèi)發(fā)出一個(gè)準(zhǔn)備好信號(hào)。主設(shè)備在外圍驅(qū)動(dòng)設(shè)備發(fā)出準(zhǔn)備好信號(hào)后的預(yù)定時(shí)間周期內(nèi)將選通信號(hào)從高狀態(tài)觸發(fā)變?yōu)榈蜖顟B(tài)。選通信號(hào)的觸發(fā)將數(shù)據(jù)字鎖存到外圍驅(qū)動(dòng)設(shè)備上。主設(shè)備將附加數(shù)據(jù)字放到總線上并觸發(fā)選通信號(hào),以將數(shù)據(jù)字鎖存到外圍驅(qū)動(dòng)設(shè)備上,對(duì)附加數(shù)據(jù)字進(jìn)行傳送。在寫指令同步DMA短脈沖串傳輸中執(zhí)行面向并行位錯(cuò)誤檢測(cè)的步驟與讀指令同步DMA短脈沖串傳輸中執(zhí)行的步驟相同。
最好是在控制信號(hào)傳輸選通速率約為8.3MHz的ATA總線上進(jìn)行同步DMA短脈沖串傳輸,數(shù)據(jù)傳輸速率可以提高到大約33.3MB/S。
本發(fā)明的方法比以前的傳輸協(xié)議有很多優(yōu)點(diǎn)。具體來(lái)說(shuō),同步DMA短脈沖串傳輸協(xié)議提供了在主設(shè)備和外圍驅(qū)動(dòng)設(shè)備間顯著地提高的數(shù)據(jù)傳輸率,并且可在現(xiàn)有總線系統(tǒng)結(jié)構(gòu)中進(jìn)行操作。因此本方法是一種花費(fèi)不多的提高主設(shè)備和外圍驅(qū)動(dòng)設(shè)備間數(shù)據(jù)傳輸率的方法。而且,本方法提供了提高的數(shù)據(jù)傳輸率和改進(jìn)的數(shù)據(jù)完整性,而沒(méi)有增加總線上的控制信號(hào)傳輸選通速率,因此消除了與提高控制信號(hào)傳輸頻率有關(guān)的系統(tǒng)完整性問(wèn)題。本方法還有一個(gè)優(yōu)點(diǎn)是它提供了對(duì)現(xiàn)有傳輸協(xié)議的向下兼容能力,這使得本方法在含有其它使用現(xiàn)有選通傳輸協(xié)議的外圍驅(qū)動(dòng)設(shè)備的系統(tǒng)中,可以避免進(jìn)行大量的硬件修改而進(jìn)行操作。
本發(fā)明的這些及其它特性、特點(diǎn)和優(yōu)點(diǎn)通過(guò)下面的敘述、所附的權(quán)利要求書和附圖,將會(huì)得到更好的理解
圖1a顯示了一個(gè)可以在其中實(shí)施本發(fā)明的PC結(jié)構(gòu)的方框圖;圖1b顯示了現(xiàn)有ATA電纜的部分示意電路;圖2顯示了已有技術(shù)數(shù)據(jù)傳輸協(xié)議的一個(gè)簡(jiǎn)化元件和時(shí)序圖;圖3顯示了根據(jù)本發(fā)明一種形式的同步DMA短脈沖串傳輸?shù)囊粋€(gè)簡(jiǎn)化元件和時(shí)序圖;圖4a顯示了一個(gè)詳細(xì)的時(shí)序圖,它描繪了在根據(jù)本發(fā)明的特點(diǎn)實(shí)現(xiàn)的讀指令同步DMA短脈沖串傳輸驅(qū)動(dòng)初始化中交換的數(shù)據(jù)和控制信號(hào);圖4b顯示了一個(gè)詳細(xì)的時(shí)序圖,它描繪了在根據(jù)本發(fā)明的進(jìn)一步特點(diǎn)實(shí)現(xiàn)的寫指令同步DMA短脈沖串傳輸驅(qū)動(dòng)初始化中交換的數(shù)據(jù)和控制信號(hào);圖5顯示了一個(gè)詳細(xì)的時(shí)序圖,它描繪了在根據(jù)本發(fā)明進(jìn)一步特點(diǎn)的持續(xù)同步DMA短脈沖串傳輸中交換的數(shù)據(jù)和信號(hào);圖6a顯示了一個(gè)詳細(xì)的時(shí)序圖,它描繪了在根據(jù)本發(fā)明的進(jìn)一步特點(diǎn)實(shí)現(xiàn)的讀指令同步DMA短脈沖串傳輸驅(qū)動(dòng)器端交換的數(shù)據(jù)和控制信號(hào);圖6b顯示了一個(gè)詳細(xì)的時(shí)序圖,它描繪了在根據(jù)本發(fā)明的進(jìn)一步特點(diǎn)實(shí)現(xiàn)的寫指令同步DMA短脈沖串傳輸?shù)尿?qū)動(dòng)器端交換的數(shù)據(jù)和控制信號(hào);圖7a顯示了一個(gè)詳細(xì)的時(shí)序圖,它描繪了在根據(jù)本發(fā)明的進(jìn)一步特點(diǎn)實(shí)現(xiàn)的讀指令同步DMA短脈沖串傳輸主機(jī)端交換的數(shù)據(jù)和控制信號(hào);圖7b顯示了一個(gè)詳細(xì)的時(shí)序圖,它描繪了在根據(jù)本發(fā)明的進(jìn)一步特點(diǎn)實(shí)現(xiàn)的寫指令同步DMA短脈沖串傳輸?shù)闹鳈C(jī)端交換的數(shù)據(jù)和控制信號(hào);圖8a顯示一個(gè)依據(jù)本發(fā)明的實(shí)施方案實(shí)現(xiàn)錯(cuò)誤檢測(cè)的簡(jiǎn)化邏輯電路;圖8b顯示了圖8a所示邏輯電路更詳細(xì)的示意圖;及圖9顯示了描繪本發(fā)明一種形式的簡(jiǎn)化流程圖。
圖1顯示了一個(gè)傳統(tǒng)PC結(jié)構(gòu),其中可以應(yīng)用體現(xiàn)本發(fā)明特征的方法。PC系統(tǒng)10典型地包含一個(gè)CPU12,通過(guò)處理器總線18與RAM14和ROM16相連??偩€接口20把處理器總線18連接到可以包括多個(gè)板卡插槽24的ISA總線22上。另外一個(gè)局部總線接口26將處理器總線18連接到也可以包括多個(gè)局部總線板卡插槽30的局部總線28上。一個(gè)外圍驅(qū)動(dòng)設(shè)備32通過(guò)ATA總線34和ATA接口36與局部總線28相連。
圖1b顯示了傳統(tǒng)ATA總線34電纜的一個(gè)信號(hào)路徑的部分示意電路圖。ATA總線34的線路33有一個(gè)源或輸入阻抗Zin,一個(gè)是輸入阻抗Zin的函數(shù)的目的終端或輸出阻抗Zout,ATA總線路33的特性阻抗Zchar,及ATA總線中33的距離d。如上面背景部分所討論的,ATA總線34是沒(méi)有設(shè)計(jì)終端匹配的。因此在ATA總線34定義中,每條信號(hào)線的這些阻抗值為Zin<Zchar,而Zchar<Zout,這導(dǎo)致了振鳴問(wèn)題。
為簡(jiǎn)單起見,下面的討論描述一個(gè)通過(guò)ATA總線連接到主機(jī)上的磁盤驅(qū)動(dòng)器。然而,那些精通技術(shù)的人員可以認(rèn)識(shí)到,本發(fā)明能夠應(yīng)用在ATA總線上帶有其它外圍設(shè)備的系統(tǒng)之中。此外,主設(shè)備一詞通常是指ATA總線的主機(jī)端,熟悉技術(shù)的人可以認(rèn)識(shí)到,它包括例如CPU12和ATA橋/接口36。本發(fā)明還能在還能在ATA總線上連有多個(gè)驅(qū)動(dòng)設(shè)備(圖中未表示)的系統(tǒng)中實(shí)現(xiàn)。
參照?qǐng)D2,已有技術(shù)的DMA傳輸協(xié)議是一個(gè)選通的、異步傳輸協(xié)議,其中ATA主機(jī)35一直負(fù)責(zé)管理事件何時(shí)發(fā)生。圖2表現(xiàn)了主機(jī)35方面的選通信號(hào)和磁盤驅(qū)動(dòng)器32方面的數(shù)據(jù)。當(dāng)ATA主機(jī)35要從附屬磁盤驅(qū)動(dòng)器32讀取數(shù)據(jù)時(shí),它在t0時(shí)刻向磁盤驅(qū)動(dòng)器32發(fā)出一個(gè)選通脈沖。磁盤驅(qū)動(dòng)器32在看到選通脈沖的下降沿之后,才知道它何時(shí)必須傳輸數(shù)據(jù)。在接收選通信號(hào)之前,磁盤驅(qū)動(dòng)器32只是等待“最后一分鐘”的通知,通知它需要準(zhǔn)備好數(shù)據(jù)向主機(jī)35傳送。選通脈沖從主機(jī)35傳到磁盤驅(qū)動(dòng)器32需要花費(fèi)時(shí)間,所以磁盤驅(qū)動(dòng)器32接收請(qǐng)求的時(shí)刻晚于主機(jī)35要求數(shù)據(jù)的時(shí)刻。磁盤驅(qū)動(dòng)器32最后在某個(gè)晚一些的時(shí)刻t1看到選通脈沖,然后,在某個(gè)處理延遲之后,磁盤驅(qū)動(dòng)器32在時(shí)刻t2將數(shù)據(jù)輸出到總線上,準(zhǔn)備送回主機(jī)35。另一個(gè)傳送延遲與送回至主機(jī)35的數(shù)據(jù)相關(guān),所以數(shù)據(jù)直至某個(gè)晚些的時(shí)刻t3才到達(dá)主機(jī)35。另一個(gè)處理延遲與接收數(shù)據(jù)相關(guān),所以主機(jī)最后在時(shí)刻t4鎖存數(shù)據(jù)。主機(jī)必須在選通間隔中鎖存數(shù)據(jù),由于存在某個(gè)能夠達(dá)到的最大速度,選通間隔必須足夠長(zhǎng)以確保數(shù)據(jù)對(duì)主機(jī)是可用的。因此,在已有技術(shù)異步傳輸協(xié)議中,選通間隔必須考慮與主機(jī)35到磁盤驅(qū)動(dòng)器32的傳送時(shí)間和磁盤驅(qū)動(dòng)器32到主機(jī)35的傳送時(shí)間兩者有關(guān)的傳送延遲,以及與主機(jī)35和磁盤驅(qū)動(dòng)器32兩者有關(guān)的處理延遲??紤]這些延遲的必要性,就將數(shù)據(jù)傳輸率限制于目前得到的DMA方式2和PIO方式4的數(shù)據(jù)傳輸率。
本發(fā)明通過(guò)消除磁盤驅(qū)動(dòng)器32等待它應(yīng)作數(shù)據(jù)傳輸?shù)摹白詈笠环昼姟蓖ㄖ那闆r,克服了已有技術(shù)傳輸協(xié)議中強(qiáng)加的數(shù)據(jù)傳輸限制。取而代之的是,在本發(fā)明中,發(fā)送數(shù)據(jù)的設(shè)備(不管是主機(jī)35還是驅(qū)動(dòng)器32)負(fù)責(zé)管理控制選通信號(hào)。圖3從磁盤驅(qū)動(dòng)器32方面表現(xiàn)了本發(fā)明一種形式的簡(jiǎn)化時(shí)序圖,其中磁盤驅(qū)動(dòng)器32負(fù)責(zé)管理對(duì)一個(gè)讀DMA短脈沖串傳輸?shù)臄?shù)據(jù)傳輸選通信號(hào)。一旦主機(jī)35給出一條要讀取數(shù)據(jù)指令并執(zhí)行初始化DMA短脈沖串傳輸?shù)某醪叫盘?hào)交換時(shí),磁盤驅(qū)動(dòng)器32即負(fù)責(zé)管理并決定數(shù)據(jù)被傳送的時(shí)間。如圖3所示,當(dāng)磁盤驅(qū)動(dòng)器32準(zhǔn)備好發(fā)送數(shù)據(jù)時(shí),它在時(shí)刻t0將數(shù)據(jù)放到總線上,磁盤驅(qū)動(dòng)器32將等待,直至它知道數(shù)據(jù)已經(jīng)被安置在電纜上,磁盤驅(qū)動(dòng)器32將在時(shí)刻t1觸發(fā)選通信號(hào)。選通信號(hào)的觸發(fā)向主機(jī)35顯示數(shù)據(jù)是可用的,當(dāng)t1時(shí)刻生成的選通脈沖到達(dá)主機(jī)時(shí),數(shù)據(jù)被鎖存到主機(jī)35中。
磁盤驅(qū)動(dòng)器32放數(shù)據(jù)到總線上的時(shí)刻和它觸發(fā)選通信號(hào)的時(shí)刻之間的延遲是必須的,因?yàn)楫?dāng)數(shù)據(jù)被放到ATA總線上時(shí),會(huì)由于總線差的終端匹配而有一個(gè)相關(guān)的振鳴,所以必須讓數(shù)據(jù)信號(hào)在被鎖存到主機(jī)35中之前穩(wěn)定下來(lái)。但是,從磁盤驅(qū)動(dòng)器32到主機(jī)35的飛行或傳播時(shí)間實(shí)質(zhì)上對(duì)數(shù)據(jù)信號(hào)和選通信號(hào)兩者來(lái)說(shuō)都是一樣的,而轉(zhuǎn)換速率(一個(gè)信號(hào)從“1”到“0”或從“0”到“ 1”變化的時(shí)間)實(shí)質(zhì)上對(duì)數(shù)據(jù)信號(hào)和選通信號(hào)兩者來(lái)說(shuō)也都是一樣的。根據(jù)本發(fā)明,只需要考慮數(shù)據(jù)信號(hào)的穩(wěn)定時(shí)間,因?yàn)閿?shù)據(jù)和選通信號(hào)是由一個(gè)設(shè)備發(fā)送的,而這些信號(hào)的轉(zhuǎn)換速率和傳播延遲是相似的。如果在電纜主機(jī)端的加載操作改變數(shù)據(jù)信號(hào)的轉(zhuǎn)換速率,則選通信號(hào)的轉(zhuǎn)換速率將會(huì)有相似數(shù)量的變化,信號(hào)的相對(duì)時(shí)序也類似。這就對(duì)已有技術(shù)傳輸協(xié)議(其中主機(jī)35負(fù)責(zé)選通信號(hào),而磁盤驅(qū)動(dòng)器32負(fù)責(zé)數(shù)據(jù)信號(hào))提供了有效的時(shí)間改進(jìn)。在已有技術(shù)狀態(tài)下,在向磁盤驅(qū)動(dòng)器32發(fā)選通脈沖時(shí)失去了時(shí)間,在向主機(jī)35發(fā)數(shù)據(jù)時(shí)失去了時(shí)間,而且失去的時(shí)間再也無(wú)法恢復(fù)。
根據(jù)本發(fā)明的各方面,由于雙方向的傳播延遲和轉(zhuǎn)換速率不必考慮,能夠設(shè)定的選通間隔非常短。為了保證數(shù)據(jù)傳輸,本發(fā)明的同步DMA傳輸只要求在選通信號(hào)能夠到達(dá)主機(jī)35之前穩(wěn)定數(shù)據(jù)所需的等待時(shí)間。這樣,本發(fā)明的同步DMA短脈沖串傳輸方法提供了一個(gè)可提高達(dá)33.3MB/S的數(shù)據(jù)傳輸率,它是目前已有的最快PIO方式和多字DMA方式的兩倍。
現(xiàn)在將參照?qǐng)D4a和4b詳細(xì)討論根據(jù)本發(fā)明的一個(gè)實(shí)施方案的同步DMA傳輸?shù)某跏蓟?。參照?qǐng)D4a,在主機(jī)35發(fā)出請(qǐng)求數(shù)據(jù)的讀指令及磁盤驅(qū)動(dòng)器32準(zhǔn)備好開始數(shù)據(jù)傳輸后的某一時(shí)刻,磁盤驅(qū)動(dòng)器32將通過(guò)向主機(jī)35發(fā)出DMA請(qǐng)求信號(hào)DMARQ(表示為事件1)來(lái)初始化一個(gè)同步DMA短脈沖串傳輸。響應(yīng)于DMARQ的發(fā)出,當(dāng)主機(jī)35可以接收請(qǐng)求的數(shù)據(jù)時(shí),主機(jī)35發(fā)出一個(gè)DMA確認(rèn)信號(hào)-DMACK來(lái)顯示它準(zhǔn)備好了(表示為事件2),并且必須保持-DMACK,直至短脈沖串傳輸?shù)慕Y(jié)尾。磁盤驅(qū)動(dòng)器32能夠在從發(fā)出-DMACK起的最短時(shí)間延遲Tza后驅(qū)動(dòng)或?qū)?shù)據(jù)放到ATA總線34上以允許打開輸出驅(qū)動(dòng)器。通常打開輸出驅(qū)動(dòng)器所需的最短時(shí)間Tza約為20納秒。在磁盤驅(qū)動(dòng)器32能夠觸發(fā)將數(shù)據(jù)鎖存到主機(jī)35上的選通信號(hào)之前,磁盤驅(qū)動(dòng)器也必須等候主機(jī)35在發(fā)出-DMACK后取消一個(gè)停止信號(hào)STOP并發(fā)出一個(gè)準(zhǔn)備信號(hào)-DMARDY。STOP的取消和-DMARDY的發(fā)出(表示為事件3)在一個(gè)從發(fā)出-DMACK起所有控制信號(hào)轉(zhuǎn)換的標(biāo)準(zhǔn)時(shí)間框中進(jìn)行。這個(gè)時(shí)間框最好在大概20到70納秒范圍之間。
在主機(jī)35取消STOP并發(fā)出-DMARDY后,磁盤驅(qū)動(dòng)器32能夠發(fā)出第一個(gè)選通信號(hào)并且必須在看到STOP和-DMARDY信號(hào)后的限定時(shí)間周期Tli中進(jìn)行,此限定時(shí)間周期Tli最好在約0至150納秒范圍內(nèi)。另外,磁盤驅(qū)動(dòng)器32必須在它能夠發(fā)送第一個(gè)選通信號(hào)之前等候一個(gè)最小預(yù)定設(shè)置時(shí)間周期Tdvs,此Tdvs從磁盤驅(qū)動(dòng)器32把數(shù)據(jù)放到ATA總線34上算起。這個(gè)時(shí)間周期是數(shù)據(jù)在ATA總線34上成為有效時(shí)所用的時(shí)間。最小設(shè)置時(shí)間Tdvs最好是在約38到75納秒的時(shí)間范圍之內(nèi),這決定于所選速度。
磁盤驅(qū)動(dòng)器32通過(guò)將選通信號(hào)從高狀態(tài)觸發(fā)變?yōu)榈蜖顟B(tài)(表示為事件4)來(lái)向主機(jī)35發(fā)出第一選通信號(hào)。從高狀態(tài)向低狀態(tài)觸發(fā)選通信號(hào)定義了選通信號(hào)的第一邊沿,它被主機(jī)35作為有效數(shù)據(jù)在ATA總線34上可用的標(biāo)志而識(shí)別出來(lái)。當(dāng)主機(jī)35看到邊沿時(shí),它把ATA總線34上的數(shù)據(jù)取走。這樣,選通信號(hào)的觸發(fā)就被用于在讀短脈沖串傳輸中將數(shù)據(jù)鎖存到主機(jī)35中。
現(xiàn)在參照?qǐng)D4b,根據(jù)本發(fā)明的原理敘述寫指令同步DMA短脈沖串傳輸?shù)某跏蓟?。象讀指令的情況一樣,當(dāng)磁盤驅(qū)動(dòng)器32準(zhǔn)備好開始同步DMA短脈沖串傳輸時(shí),發(fā)出DMARQ,初始化同步DMA短脈沖串傳輸(事件1)。響應(yīng)DMARQ的發(fā)出,當(dāng)主機(jī)35準(zhǔn)備寫數(shù)據(jù)時(shí),主機(jī)35發(fā)出-DMACK來(lái)表示它準(zhǔn)備好了(表示為事件2)并在-DMACK的標(biāo)準(zhǔn)時(shí)間框內(nèi)取消STOP(表示為事件3)。另外,主機(jī)35把數(shù)據(jù)送到ATA總線34上。然后,主機(jī)35等待磁盤驅(qū)動(dòng)器32發(fā)出-DMARDY,這表示磁盤驅(qū)動(dòng)器32已準(zhǔn)備好從主機(jī)35接收數(shù)據(jù)。磁盤驅(qū)動(dòng)器32必須在看到發(fā)出-DMACK和取消STOP后限制的時(shí)間周期Tli之內(nèi)發(fā)出-DMARDY(表示為事件4)。由于現(xiàn)在主機(jī)35在發(fā)送數(shù)據(jù),它也負(fù)責(zé)管理選通信號(hào),但在主機(jī)35能夠觸發(fā)選通信號(hào)之前,它必須等侯磁盤驅(qū)動(dòng)器32如上所述發(fā)出-DMARDY。
一旦磁盤32發(fā)出-DMARDY,主機(jī)35可以在看到-DMARDY之后的任何時(shí)刻觸發(fā)第一選通信號(hào)(表示為事件5)。然而,主機(jī)35在能夠發(fā)出第一選通信號(hào)之前,必須等待最短預(yù)定設(shè)置時(shí)間周期Tdvs,以使數(shù)據(jù)成為有效,Tdvs從主機(jī)35將數(shù)據(jù)字放到ATA總線34上時(shí)開始計(jì)算。與讀取的情況相似,當(dāng)磁盤驅(qū)動(dòng)器32看到選通信號(hào)的第一邊沿時(shí),它知道要把有效數(shù)據(jù)從ATA總線34上取走。這樣,選通信號(hào)的觸發(fā)就被用于在寫短脈沖串傳輸中將數(shù)據(jù)鎖存在磁盤驅(qū)動(dòng)器32中。
當(dāng)同步DMA短脈沖串傳輸被初始化及第一數(shù)據(jù)字在讀指令情況下被鎖存到主機(jī)35上或在寫指令情況下被鎖存到磁盤驅(qū)動(dòng)器32上之后,附加數(shù)據(jù)字能夠在同步DMA短脈沖串傳輸中被傳送。圖5顯示了在持續(xù)傳輸多個(gè)數(shù)據(jù)字的同步DMA短脈沖串傳輸中控制和數(shù)據(jù)信號(hào)的時(shí)序圖。該圖概括地描述傳輸發(fā)送端和接收端,而不是傳輸主機(jī)和磁盤驅(qū)動(dòng)器看到的數(shù)據(jù)總線,它既可用于讀短脈沖串傳輸,也可用于寫短脈沖串傳輸。如上所述,在某一早些時(shí)刻t1(未顯示)被送到ATA總線34上的第一數(shù)據(jù)字通過(guò)將選通信號(hào)從高狀態(tài)觸發(fā)為低狀態(tài)而被鎖存到接收端中(事件1)。在稍后的第二個(gè)時(shí)刻t2,下一個(gè)數(shù)據(jù)字被送到ATA總線34上。通過(guò)將選通信號(hào)從低狀態(tài)觸發(fā)到高狀態(tài),這個(gè)數(shù)據(jù)字被鎖存到接收端(事件2)。選通信號(hào)從低狀態(tài)到高狀態(tài)的觸發(fā)定義了選通信號(hào)的第二邊沿。后面的附加字可以被發(fā)送端送到ATA總線34上,并通過(guò)選通信號(hào)在高狀態(tài)和低狀態(tài)之間的來(lái)回觸發(fā)而被鎖存到接收端。從接收端的觀點(diǎn)來(lái)看,不論何時(shí)只要看到選通信號(hào)的邊沿,接收端就會(huì)知道從ATA總線34上取走數(shù)據(jù)。這樣,選通信號(hào)的兩個(gè)邊沿都被用來(lái)在同步DMA短脈沖串傳輸中傳送數(shù)據(jù)。
如圖5所示及前面所述,在同步DMA短脈沖串傳輸中,發(fā)送端向ATA總線34送數(shù)據(jù),并且,在考慮電纜穩(wěn)定和設(shè)置時(shí)間的最短預(yù)定設(shè)置時(shí)間周期Tdvs之后,發(fā)送端將觸發(fā)選通信號(hào)。以上述方式使用選通信號(hào)的兩個(gè)邊沿啟用選通信號(hào)的頻率以與數(shù)據(jù)頻率相匹配。在ATA總線上,電纜上的最高基本控制信號(hào)頻率應(yīng)該不大于約8.33MHz,以便維持信號(hào)的完整性。
進(jìn)而,在發(fā)送端和接收端所表現(xiàn)的數(shù)據(jù)不一樣,來(lái)強(qiáng)調(diào)電纜的穩(wěn)定時(shí)間使得數(shù)據(jù)在發(fā)送端被發(fā)出一段時(shí)間以后才可以被認(rèn)為在接收端是穩(wěn)定的。數(shù)據(jù)在發(fā)送端成為有效所需的最短預(yù)定設(shè)置時(shí)間Tdvs和在發(fā)送端觸發(fā)選通信號(hào)后數(shù)據(jù)可以成為有效的最短時(shí)間Tdvh構(gòu)成了一個(gè)比對(duì)接收端保證的數(shù)據(jù)設(shè)置時(shí)間Tds和數(shù)據(jù)保持時(shí)間Tdh更寬的窗口。
現(xiàn)在參考圖6a、6b、7a和7b討論同步DMA短脈沖串傳輸?shù)慕K止。在選通信號(hào)第一次被觸發(fā)后,發(fā)送端和接收端兩者都能夠采取行動(dòng)來(lái)終止短脈沖串傳輸。在同步DMA短脈沖串傳輸終止之前,首先必須滿足某些條件。當(dāng)接收端希望終止短脈沖串傳輸時(shí),它必須先保證掛起的傳輸被完全暫停。同樣地,當(dāng)發(fā)送端希望終止短脈沖串傳輸時(shí),在它發(fā)出停止信號(hào)或取消DMARQ來(lái)終止掛起的傳輸之前,它必須在觸發(fā)選通信號(hào)后等待一個(gè)最短時(shí)間周期Tss。最短時(shí)間周期Tss最好約為50納秒。
圖6a顯示了當(dāng)磁盤驅(qū)動(dòng)器32在讀指令過(guò)程中終止同步DMA短脈沖串傳輸時(shí)交換的控制和數(shù)據(jù)信號(hào)。磁盤驅(qū)動(dòng)器32通過(guò)取消DMARQ信號(hào)表示其終止短脈沖串傳輸?shù)脑竿?事件1),及主機(jī)35在限定時(shí)間周期Tli內(nèi)發(fā)出STOP并取消-DMARDY(事件2)以確認(rèn)其取消。一旦磁盤驅(qū)動(dòng)器32看到主機(jī)35發(fā)出STOP,如果選通信號(hào)還沒(méi)有處于高狀態(tài)的話,則磁盤驅(qū)動(dòng)器32就必須將其返回到高狀態(tài)(事件3)。必須在看到STOP信號(hào)之后的限定時(shí)間周期Tli之內(nèi)使選通信號(hào)返回高狀態(tài)。主機(jī)35看到DMARQ被取消、STOP被發(fā)出、-DMARDY被取消且選通信號(hào)為高狀態(tài)之后,主機(jī)35能夠取消-DMACK(事件4),并且必須在所列條件滿足后的一個(gè)最短限定預(yù)定時(shí)間周期Tmil內(nèi)執(zhí)行。最短限定預(yù)定時(shí)間周期Tmil最好在大約20到150納秒的范圍內(nèi)。另外,磁盤驅(qū)動(dòng)器32在從主機(jī)35取消-DMACK起計(jì)算的一個(gè)上拉(pull-up)時(shí)間Tirdyz后使選通信號(hào)變?yōu)槿龖B(tài),以使控制信號(hào)達(dá)到高阻抗。通常上拉時(shí)間Tirdyz約為20納秒。
對(duì)于同步DMA短脈沖串傳輸?shù)慕K止,選通信號(hào)需要返回高狀態(tài)以便選通信號(hào)可以準(zhǔn)備進(jìn)行下一個(gè)同步DMA短脈沖串傳輸。這種“選通清除”是必需的,因?yàn)樵谌魏瓮紻MA短脈沖串傳輸中的第一選通信號(hào)必須被從高狀態(tài)向低狀態(tài)觸發(fā)以把第一數(shù)據(jù)字鎖存到接收端中。選通清除也是有優(yōu)越性的,因?yàn)樗试S本同步DMA短脈沖串傳輸方法與現(xiàn)有的也在初始高狀態(tài)下使用選通信號(hào)的主機(jī)-外設(shè)數(shù)據(jù)傳輸協(xié)議向下兼容。
圖6b表示在寫指令過(guò)程中當(dāng)磁盤驅(qū)動(dòng)器32終止同步DMA短脈沖串傳輸時(shí),交換的控制和數(shù)據(jù)信號(hào)。如同磁盤驅(qū)動(dòng)器32終止一個(gè)讀短脈沖串傳輸?shù)那闆r一樣,磁盤驅(qū)動(dòng)器32通過(guò)取消DMARQ信號(hào)來(lái)表示它終止短脈沖串傳輸?shù)脑竿?事件1)。主機(jī)35在限定時(shí)間周期Tli內(nèi)發(fā)出STOP(事件2)并在限定時(shí)間周期Tli內(nèi)將選通信號(hào)返回高狀態(tài)(事件3)來(lái)確認(rèn)DMARQ的取消。一旦發(fā)生了上述事件,主機(jī)35就可以在最短限定預(yù)定時(shí)間Tmli內(nèi)取消-DMACK(事件4)。最后,磁盤驅(qū)動(dòng)器32在從-DMACK被主機(jī)35取消后起的上拉時(shí)間Tirdyz之后將-DMARDY變?yōu)槿龖B(tài)(事件5)。
圖7a表示在讀指令過(guò)程中,當(dāng)主機(jī)35終止同步DMA短脈沖串傳輸時(shí)控制和數(shù)據(jù)信號(hào)的交換。這里主機(jī)35通過(guò)發(fā)出STOP信號(hào)表示其終止短脈沖串傳輸?shù)南M?事件1),磁盤驅(qū)動(dòng)器32通過(guò)在看到STOP后的限定預(yù)定時(shí)間周期Tli內(nèi)取消DMARQ(事件2)并將選通信號(hào)返回高狀態(tài)(事件3)來(lái)確認(rèn)該請(qǐng)求。隨后,如同磁盤驅(qū)動(dòng)器32終止同步DMA短脈沖串傳輸?shù)那闆r一樣,主機(jī)35在上述事件發(fā)生后的最短限定預(yù)定時(shí)間周期Tmli內(nèi)取消-DMACK(事件4)。最后,磁盤驅(qū)動(dòng)器32在上拉時(shí)間Tirdyz后將選通信號(hào)置為三態(tài)。
圖7b表示在寫指令過(guò)程中,當(dāng)主機(jī)35終止同步DMA短脈沖串傳輸時(shí)交換的控制和數(shù)據(jù)信號(hào)。如同主機(jī)終止讀短脈沖串傳輸?shù)那闆r一樣,主機(jī)35通過(guò)發(fā)出STOP信號(hào)表示其終止短脈沖串傳輸?shù)脑竿?事件1)。磁盤驅(qū)動(dòng)器32通過(guò)在看到STOP后的限定預(yù)定時(shí)間周期Tli內(nèi)取消DMARQ和取消-DMARDY(事件2)來(lái)確認(rèn)該請(qǐng)求。主機(jī)35必須在看到DMARQ取消后的限定預(yù)定時(shí)間周期Tli內(nèi)將選通信號(hào)返回到高狀態(tài)(事件3)。一旦選通信號(hào)被返回到高狀態(tài),主機(jī)35也必須在選通信號(hào)返回高狀態(tài)后的最短限定預(yù)定時(shí)間周期Tmli內(nèi)取消-DMACK(事件4)。接著,磁盤驅(qū)動(dòng)器32在一個(gè)上拉時(shí)間Tirdyz后將-DMARDY變?yōu)槿龖B(tài)。
本發(fā)明的方法還包括執(zhí)行對(duì)ATA總線34上所傳的數(shù)據(jù)完整性的錯(cuò)誤檢測(cè)的步驟。在最佳實(shí)施方案中,由于同步DMA短脈沖串傳輸在ATA總線34上傳送數(shù)據(jù),采用了一個(gè)位錯(cuò)誤檢測(cè)代碼,并且面向位的錯(cuò)誤檢測(cè)方法比面向符號(hào)的錯(cuò)誤檢測(cè)方法更實(shí)用。然而,如上面背景部分所討論的,傳統(tǒng)的面向位錯(cuò)誤檢測(cè)方法因?yàn)槭且环N位串行方法,所以是不實(shí)用的。
在圖8a和圖8b中顯示了一種新穎的使用并行CRC邏輯編碼/解碼器40的16位并行CRC方法。并行CRC邏輯編碼/解碼器40使用與傳統(tǒng)位串行方法相同的多項(xiàng)式生成器,但使用一個(gè)字時(shí)鐘44來(lái)代替位時(shí)鐘。當(dāng)每個(gè)數(shù)據(jù)字通過(guò)ATA總線34傳送時(shí),一個(gè)16位CRC值由主機(jī)35和磁盤驅(qū)動(dòng)器32兩者循環(huán)地計(jì)算出來(lái)。在數(shù)據(jù)傳輸結(jié)束時(shí),主設(shè)備35將它生成的16位CRC值通過(guò)ATA總線34送到磁盤驅(qū)動(dòng)器32,而磁盤驅(qū)動(dòng)器32將接收到的16位CRC值與其計(jì)算出的16位CRC值進(jìn)行異或計(jì)算來(lái)檢查錯(cuò)誤。如果檢測(cè)到一個(gè)錯(cuò)誤,則磁盤驅(qū)動(dòng)器32設(shè)置錯(cuò)誤寄存器的一個(gè)錯(cuò)誤位以在指令末端向主機(jī)35報(bào)告錯(cuò)誤。
在本發(fā)明的一種最佳形式中,CRC值以下面的方式進(jìn)行計(jì)算。圖8a顯示了本發(fā)明一種形式中執(zhí)行錯(cuò)誤檢測(cè)的CRC邏輯編碼/解碼器40的簡(jiǎn)化邏輯電路。主機(jī)35和磁盤驅(qū)動(dòng)器32兩者都包括CRC邏輯編碼/解碼器40的電路。在每個(gè)同步DMA短脈沖串傳輸?shù)拈_頭,CRC邏輯編碼/解碼器40被置為一個(gè)預(yù)定值。該值最好為516dh。一組16位數(shù)據(jù)字流進(jìn)入CRC邏輯編碼/解碼器40,CRC邏輯編碼/解碼器40對(duì)輸入的數(shù)據(jù)位進(jìn)行邏輯操作。如果“d”代表進(jìn)入CRC邏輯編碼/解碼器40的數(shù)據(jù)字流,則整個(gè)數(shù)據(jù)位流表示如下d150,d140,d130,…d10,d00第一個(gè)字d151,d141,d131,…d11,d01第二個(gè)字d15i,d14i,d13i,…d1i,d0i第i個(gè)字其中d15是數(shù)據(jù)字的最高有效位,d0是數(shù)據(jù)字的最低有效位。被傳送的第i個(gè)數(shù)據(jù)字的16個(gè)數(shù)據(jù)位d0i-d15i42用一個(gè)來(lái)自字時(shí)鐘44的時(shí)鐘信號(hào)WCLK被移入CRC邏輯編碼/解碼器40中,進(jìn)行CRC計(jì)算,并將計(jì)算出的16位CRC值作為X0(q)-X15(q)46輸出。
參照?qǐng)D8b,它顯示了一個(gè)更詳細(xì)的CRC邏輯編碼/解碼器40的示意圖。CRC邏輯編碼/解碼器40包括16個(gè)1位寄存器X0-X1548a-48p,用作被計(jì)算的16位CRC值的位置標(biāo)志符,還包括16個(gè)相應(yīng)的組合邏輯元件Y0-Y15 50a-50p,在數(shù)據(jù)位上進(jìn)行邏輯操作。如圖8b所示,組合邏輯元件Y0-Y15 50a-50p包括從其相應(yīng)寄存器X0-X15 48a-48p來(lái)的輸入。組合邏輯元件Y0-Y15 50a-50p包括從CRC邏輯編碼/解碼器40各個(gè)元件來(lái)的附加輸入。然而,為了簡(jiǎn)單明了,這些與其它元件的操作連接沒(méi)有在圖中顯示。組合邏輯元件50a-50p的輸出被反饋到寄存器X0-X15 48a-48p作為其輸入。把CRC邏輯編碼/解碼器寄存器的輸入表示為(d),并把寄存器的輸出表示為(q),CRC值可以用下面的等式循環(huán)地計(jì)算X0(d)=f16; X8(d)=f8 xor f13;X1(d)=f15; X9(d)=f7 xor f12;X2(d)=f14; X10(d)=f6 xor f11;X3(d)=f13; X11(d)=f5 xor f10;X4(d)=f12; X12(d)=f4 xor f9 xor f16;X5(d)=f11 xor f16; X13(d)=f3 xor f8 xor f15;X6(d)=f10 xor f15; X14(d)=f2 xor f7 xor f14;X7(d)=f9 xor f14; X15(d)=f1 xor f6 xor f13;其中f1=doixor X15(q);f9=d8ixor X7(q) xor f5;f2=d1ixor X14(q);f10=d9ixor X6(q) xor f6;f3=d2ixor X13(q);f11=d10ixor X5(q) xor f7;f4=d3ixor X12(q);f12=d11ixor X4(q) xor f1 xorf8;f5=d4ixor X11(q)xor f1; f13=d12ixor X3(q)xor f2 xorf9;f6=d5ixor X10(q)xor f2; f14=d13ixor X2(q)xor f3 xorf10;f7=d6ixor X9(q)xor f3; f15=d14ixor X1(q)xor f4 xorf11;f8=d7ixor X8(q)xorf4;f16=d15ixor X0(q)xor f5 xorf12。
在寫指令的同步DMA短脈沖串傳輸中,當(dāng)主機(jī)35發(fā)出每個(gè)數(shù)據(jù)字時(shí),它也以上述方式計(jì)算其16位CRC值。同樣地,當(dāng)磁盤驅(qū)動(dòng)器32接收到每個(gè)數(shù)據(jù)字時(shí),它計(jì)算其16位CRC值。當(dāng)主機(jī)在同步DMA短脈沖串傳輸?shù)哪┒私Y(jié)束數(shù)據(jù)字傳輸時(shí),主機(jī)35通過(guò)ATA總線34發(fā)送它計(jì)算的CRC值。接收到主機(jī)的CRC值后,磁盤驅(qū)動(dòng)器32對(duì)所接收的CRC值和它自己計(jì)算的CRC值進(jìn)行異或運(yùn)算,并檢查是否結(jié)果為0。如果得到結(jié)果為0,則不報(bào)錯(cuò)。但如果有非0結(jié)果出現(xiàn),表示有錯(cuò),則在盤驅(qū)動(dòng)器32的錯(cuò)誤寄存器中設(shè)置一個(gè)錯(cuò)誤位以向主機(jī)報(bào)錯(cuò)。
在讀指令的同步短脈沖串傳輸中進(jìn)行類似過(guò)程。當(dāng)磁盤驅(qū)動(dòng)器32通過(guò)ATA總線向主機(jī)35發(fā)送每個(gè)數(shù)據(jù)字時(shí),磁盤驅(qū)動(dòng)器32計(jì)算其CRC值。同樣,當(dāng)主機(jī)35接收每個(gè)數(shù)據(jù)字時(shí),它也計(jì)算其CRC值。然而,在同步DMA短脈沖串傳輸?shù)哪┒耍?dāng)磁盤驅(qū)動(dòng)器32完成傳輸數(shù)據(jù)字時(shí),它并不向主機(jī)35發(fā)送所計(jì)算的CRC值。取而代之的是,象在寫指令時(shí)的情況一樣,主機(jī)35通過(guò)ATA總線34把計(jì)算出的CRC值發(fā)到磁盤驅(qū)動(dòng)器32上,后者進(jìn)行如上所述的異或和0校驗(yàn)。
在同步DMA短脈沖串傳輸中執(zhí)行的并行CRC校驗(yàn)對(duì)現(xiàn)有ATA系統(tǒng)外圍驅(qū)動(dòng)設(shè)備的驅(qū)動(dòng)軟件最好是透明的。當(dāng)用并行CRC方法檢出一個(gè)同步DMA短脈沖串傳輸位錯(cuò)誤時(shí),當(dāng)前ATA錯(cuò)誤寄存器的數(shù)據(jù)位2和7被設(shè)置。位7當(dāng)前是ATA錯(cuò)誤寄存器的一個(gè)保留數(shù)據(jù)位,并且被重定義為在本同步DMA短脈沖串傳輸協(xié)議下的接口錯(cuò)誤位。位2是一個(gè)異常終止指令位,將它設(shè)置可以使當(dāng)前ATA驅(qū)動(dòng)軟件檢測(cè)這個(gè)“新”錯(cuò)誤并對(duì)其作出響應(yīng)。因此,在本發(fā)明的同步DMA短脈沖串傳輸協(xié)議中進(jìn)行的并行CRC校驗(yàn)與現(xiàn)有的驅(qū)動(dòng)軟件向下兼容。
熟悉技術(shù)的人員可以認(rèn)識(shí)到,其它錯(cuò)誤檢測(cè)方法也可以用一個(gè)16位寄存器以相似的方式在此應(yīng)用。例如,如果希望檢測(cè)面向符號(hào)的短脈沖串傳輸錯(cuò)誤,可以用已知的方法計(jì)算出一個(gè)16位符號(hào)Reed-Solomon ECC(糾錯(cuò)碼)。另一種檢驗(yàn)數(shù)據(jù)完整性的方法是,在每個(gè)同步DMA短脈沖串傳輸結(jié)束時(shí)實(shí)行一個(gè)奇偶校驗(yàn)。
圖9表示執(zhí)行同步DMA短脈沖串傳輸?shù)囊粋€(gè)簡(jiǎn)化流程圖,現(xiàn)在參照?qǐng)D9討論本發(fā)明同步DMA短脈沖串傳輸方法的一個(gè)實(shí)施方案的操作。流程圖9中所示的每個(gè)步驟都是按照本方法各個(gè)步驟的詳細(xì)時(shí)序限制進(jìn)行的。磁盤驅(qū)動(dòng)器接收并對(duì)一條主機(jī)讀或?qū)懼噶?01解碼,并由此初始化一個(gè)同步DMA短脈沖串傳輸。當(dāng)準(zhǔn)備好開始短脈沖串傳輸時(shí),磁盤驅(qū)動(dòng)器始終通過(guò)發(fā)出DMARQ 902以初始化同步DMA短脈沖串傳輸。主機(jī)在短脈沖串傳輸能夠進(jìn)行之前必須準(zhǔn)備好執(zhí)行同步DMA短脈沖串傳輸,所以要進(jìn)行判斷,判斷主機(jī)是否處于準(zhǔn)備狀態(tài)903。如果主機(jī)還未準(zhǔn)備好,則不開始短脈沖串傳輸,磁盤驅(qū)動(dòng)器必須繼續(xù)檢查主機(jī)是否準(zhǔn)備好。如果如-DMACK的發(fā)出所示,主機(jī)準(zhǔn)備好了,則本方法根據(jù)解碼出來(lái)的是主機(jī)讀指令還是寫指令沿A或B兩條路徑進(jìn)行。對(duì)一條寫指令,主機(jī)取消STOP 905來(lái)表示傳輸可以進(jìn)行。響應(yīng)主機(jī)對(duì)STOP的取消,磁盤驅(qū)動(dòng)器發(fā)出-DMARDY 907來(lái)向主機(jī)表示它已準(zhǔn)備接收數(shù)據(jù)。主機(jī)看到-DMARDY后,它將一個(gè)數(shù)據(jù)字放到總線上,并計(jì)算出一個(gè)16位CRC值909。接著主機(jī)在把數(shù)據(jù)字放到總線上并看到磁盤驅(qū)動(dòng)器準(zhǔn)備好后,觸發(fā)選通信號(hào)911。數(shù)據(jù)通過(guò)選通信號(hào)觸發(fā)被鎖存以后,磁盤驅(qū)動(dòng)器計(jì)算其16位CRC值913,然后確定短脈沖串傳輸是否應(yīng)終止915,如還有更多數(shù)據(jù)需要傳輸,則該方法循環(huán)回至下列步驟主機(jī)放數(shù)據(jù)并計(jì)算CRC值909,主機(jī)將選通信號(hào)觸發(fā)911,盤驅(qū)動(dòng)器計(jì)算其CRC值913;然后確定短脈沖串傳輸是否應(yīng)終止915。這個(gè)循環(huán)重復(fù)進(jìn)行,直至它確定短脈沖串傳輸終止了。終止以上述參照?qǐng)D6a、6b、7a和7b的方式進(jìn)行。一旦測(cè)到終止,主機(jī)以上述方式把它計(jì)算的CRC值916傳送到磁盤驅(qū)動(dòng)器上,磁盤驅(qū)動(dòng)器比較接收到的CRC值和它計(jì)算的CRC值917。CRC比較的完成表示同步DMA短脈沖串傳輸?shù)慕K止918。
回到判斷框,當(dāng)判斷主機(jī)已準(zhǔn)備好903繼續(xù)進(jìn)行同步DMA短脈沖串傳輸,如果主機(jī)指令是讀指令,則沿路徑B進(jìn)行。主機(jī)取消STOP 904來(lái)表示將進(jìn)行傳輸,并發(fā)出-DMARDY 906來(lái)表示它已準(zhǔn)備接收數(shù)據(jù)。磁盤驅(qū)動(dòng)器看到來(lái)自主機(jī)的STOP和-DMARDY后,把數(shù)據(jù)字放到總線上,并計(jì)算一個(gè)16位CRC值。然后,磁盤驅(qū)動(dòng)器觸發(fā)選通信號(hào)910。選通信號(hào)的觸發(fā)將數(shù)據(jù)字鎖存到主機(jī)中之后,主機(jī)計(jì)算它的16位CRC值。主機(jī)計(jì)算出16位CRC值之后,本方法以與寫指令類似的方式進(jìn)行,其中判斷短脈沖串傳輸是否應(yīng)結(jié)束914,磁盤驅(qū)動(dòng)器繼續(xù)發(fā)送數(shù)據(jù),計(jì)算CRC值908,并觸發(fā)選通信號(hào)910,主機(jī)計(jì)算其CRC值,直到檢測(cè)出傳輸終止為止。一旦終止被測(cè)出,即執(zhí)行與所述寫指令終止相同的步驟。即,主機(jī)將其計(jì)算的CRC值送到磁盤驅(qū)動(dòng)器916,磁盤驅(qū)動(dòng)器執(zhí)行CRC比較917,CRC比較的完成表示同步DMA短脈沖串傳輸?shù)慕Y(jié)束918。
上面已經(jīng)參照用于傳送一個(gè)或多個(gè)數(shù)據(jù)字的單一同步DMA短脈沖串傳輸敘述了本發(fā)明的這種形式。但是,由于一條主機(jī)讀或?qū)懼噶羁梢砸髨?zhí)行一系列同步DMA短脈沖串傳輸,熟悉技術(shù)的人員可以認(rèn)識(shí)到,上述執(zhí)行同步DMA短脈沖串傳輸?shù)姆椒梢灾貜?fù)進(jìn)行,直到完成主機(jī)讀或?qū)懼噶?。如上所述,磁盤驅(qū)動(dòng)器32必須對(duì)第二/附加同步DMA短脈沖串傳輸進(jìn)行初始化,主機(jī)35必須表示它已準(zhǔn)備好開始短脈沖串傳輸,等等。
上述本發(fā)明的方法易于應(yīng)用到現(xiàn)有的帶有ATA接口的系統(tǒng)中,無(wú)需附加的信號(hào)線或?qū)TA總線進(jìn)行電路改變。利用目前的信號(hào)線并重新定義一些ATA信號(hào)線以提供新的功能同步DMA短脈沖串傳輸能夠在現(xiàn)有系統(tǒng)中實(shí)現(xiàn)。具體來(lái)說(shuō),在已有技術(shù)傳輸協(xié)議中用于PIO流控制的IORDY信號(hào)和用于讀指令的-DIOR被重新定義。對(duì)寫短脈沖串傳輸,在同步DMA協(xié)議中,-DIOR用作STROBE(選通)信號(hào)及IORDY用作-DMARDY信號(hào)。對(duì)讀短脈沖串傳輸,在同步DMA協(xié)議中,-DIOR用作-DMARDY信號(hào),IORDY用作STROBE信號(hào)。最后,已有技術(shù)傳輸協(xié)議的-DIOW信號(hào)在本方法中被重定義為STOP信號(hào)。另外,DMARQ和-DMACK信號(hào)保持不變以保證與現(xiàn)有傳輸協(xié)議向下兼容。
而且,為確保本發(fā)明同步DMA短脈沖串傳輸協(xié)議的實(shí)施,現(xiàn)有ATA總線配置適當(dāng)?shù)慕K端匹配需要很少的硬件元件。通常ATA總線的磁盤驅(qū)動(dòng)器端應(yīng)當(dāng)以大約47到100歐姆的串聯(lián)電阻來(lái)匹配終端。最好是使用82歐姆左右的串聯(lián)電阻。此外,在這些線路上,可以在接地端加上小于約10pF的電容。對(duì)任何雙向線路和數(shù)據(jù)驅(qū)動(dòng)線路來(lái)說(shuō),通常包括大約22到47歐姆之間的串聯(lián)電阻。類似地,在ATA電纜的主機(jī)端包括一個(gè)范圍在約47到100歐姆之間的串聯(lián)電阻,主機(jī)所驅(qū)動(dòng)的線路通常以一個(gè)介于約22到47歐姆之間的串聯(lián)電阻匹配終端。對(duì)電纜的磁盤驅(qū)動(dòng)器端和主機(jī)端兩者來(lái)說(shuō),電阻最好置于盡可能接近ATA連接器的位置。另外,終端最好選擇使通過(guò)終端電路所接收的電容量小于大約25pF,且使信號(hào)線上升和下降時(shí)間約為5納秒或更長(zhǎng)。這些數(shù)值與目前對(duì)今天的ATA系統(tǒng)推薦的數(shù)值是一致的。
此外,所述16位并行CRC錯(cuò)誤檢測(cè)邏輯所需的硬件也易于用傳統(tǒng)的電路來(lái)實(shí)現(xiàn)。用于在計(jì)算時(shí)保持CRC值的16個(gè)1位寄存器最好用16個(gè)傳統(tǒng)的并聯(lián)操作觸發(fā)器來(lái)實(shí)現(xiàn)。而且,CRC邏輯編碼/解碼器40的組合邏輯元件或模塊能夠用如上所述執(zhí)行異或操作的傳統(tǒng)的邏輯門電路來(lái)構(gòu)成。
本發(fā)明的同步DMA短脈沖串傳輸方法較已有技術(shù)的傳輸方法提供了幾個(gè)優(yōu)點(diǎn)。本方法提供了一種花費(fèi)不多的方法來(lái)解決ATA目前總線34固有的不合適的電纜結(jié)構(gòu)和不合理的終端匹配,從而獲得一個(gè)提高的數(shù)據(jù)傳輸率,約為33.3MB/S。本方法能夠用小數(shù)目的附加門電路在現(xiàn)有的ATA總線34結(jié)構(gòu)中實(shí)現(xiàn)。另外,同步DMA短脈沖串傳輸方法利用現(xiàn)有的ATA總線34信號(hào)線并重定義現(xiàn)有的信號(hào)線來(lái)實(shí)現(xiàn),使得本方法與現(xiàn)有的傳輸協(xié)議向下兼容。本方法進(jìn)一步的優(yōu)點(diǎn)是,同步DMA短脈沖串傳輸協(xié)議提供了一個(gè)提高的數(shù)據(jù)傳輸率,而沒(méi)有增加ATA總線34的控制信號(hào)傳輸選通速率,以便保持信號(hào)的完整性。本發(fā)明還有一個(gè)優(yōu)點(diǎn)是,它包括一個(gè)對(duì)并行位檢測(cè)的過(guò)程,該過(guò)程對(duì)現(xiàn)有ATA系統(tǒng)的驅(qū)動(dòng)軟件是透明的,所以本發(fā)明對(duì)現(xiàn)有的驅(qū)動(dòng)軟件向下兼容,但卻有更高的數(shù)據(jù)完整性。
參考某個(gè)最佳實(shí)施方案相當(dāng)詳細(xì)地?cái)⑹隽吮景l(fā)明之后,可以認(rèn)為其它實(shí)施方案也是可能的。熟悉技術(shù)的人可以理解到,他們可以對(duì)本發(fā)明的構(gòu)造、電路和應(yīng)用進(jìn)行多種變化而不離開本發(fā)明的實(shí)質(zhì)和范圍。因此,所附權(quán)利要求書中的實(shí)質(zhì)和范圍不應(yīng)受所含的最佳實(shí)施方案描述的限制。
權(quán)利要求
1.在一個(gè)包括一個(gè)通過(guò)總線與至少一個(gè)外圍驅(qū)動(dòng)設(shè)備相連的主機(jī)的計(jì)算機(jī)系統(tǒng)中,總線用于響應(yīng)主設(shè)備的讀和寫指令通過(guò)一系列同步DMA短脈沖串傳輸在外圍驅(qū)動(dòng)設(shè)備和主設(shè)備之間傳送數(shù)據(jù),總線具有相關(guān)控制信號(hào)傳輸選通頻率,一種用于對(duì)讀指令進(jìn)行同步DMA短脈沖串傳輸?shù)姆椒òㄒ韵虏襟E(a)外圍驅(qū)動(dòng)設(shè)備發(fā)出一個(gè)DMA請(qǐng)求信號(hào)來(lái)初始化同步DMA短脈沖串傳輸;(b)當(dāng)主設(shè)備準(zhǔn)備開始同步DMA短脈沖串傳輸時(shí),主設(shè)備響應(yīng)DMA請(qǐng)求信號(hào)而發(fā)出一個(gè)DMA確認(rèn)信號(hào);(c)在DMA確認(rèn)信號(hào)被主設(shè)備發(fā)出后的第一預(yù)定時(shí)間周期,外圍驅(qū)動(dòng)設(shè)備把第一數(shù)據(jù)字放到總線上;及(d)外圍驅(qū)動(dòng)設(shè)備在將第一數(shù)據(jù)字放到總線上后的第二預(yù)定時(shí)間周期,將選通信號(hào)從高狀態(tài)觸發(fā)變?yōu)榈蜖顟B(tài),把第一數(shù)據(jù)字鎖存到主設(shè)備中去,選通信號(hào)從高狀態(tài)向低狀態(tài)的觸發(fā)定義了選通信號(hào)的第一邊沿。這樣外圍驅(qū)動(dòng)設(shè)備控制著同步DMA短脈沖串傳輸?shù)某跏蓟?,以及這樣,外圍驅(qū)動(dòng)設(shè)備既控制數(shù)據(jù)又控制選通信號(hào),使與DMA短脈沖串傳輸有關(guān)的傳播延遲、電纜穩(wěn)定和設(shè)置時(shí)間的影響最小化,并且增加了總線的數(shù)據(jù)傳輸率。
2.權(quán)利要求1的方法還包括下面步驟(e)外圍驅(qū)動(dòng)設(shè)備將一個(gè)附加數(shù)據(jù)字放到總線上;以及(f)外圍驅(qū)動(dòng)設(shè)備在經(jīng)過(guò)第二預(yù)定時(shí)間周期之后,將選通信號(hào)從低狀態(tài)觸發(fā)為高狀態(tài)以把附加數(shù)據(jù)字鎖存到主設(shè)備中,選通信號(hào)從低狀態(tài)向高狀態(tài)的觸發(fā)定義了選通信號(hào)的第二邊沿,這樣用選通信號(hào)的第一和第二邊沿鎖存數(shù)據(jù),使得在提高數(shù)據(jù)傳輸率的時(shí)候保持總線的控制信號(hào)傳輸選通頻率不變。
3.權(quán)利要求1的方法還包括下面步驟(e)外圍驅(qū)動(dòng)設(shè)備發(fā)出一個(gè)停止信號(hào)來(lái)終止同步DMA短脈沖串傳輸; 以及(f)外圍驅(qū)動(dòng)設(shè)備在完成傳送數(shù)據(jù)時(shí),將選通信號(hào)返回高狀態(tài)。
4.權(quán)利要求3的方法,其中該方法與現(xiàn)有的選通傳輸協(xié)議向下兼容。
5.權(quán)利要求1的方法,其中同步DMA短脈沖串傳輸在一條具有約8.3MHz控制信號(hào)傳輸選通頻率的ATA總線上進(jìn)行,總線的數(shù)據(jù)傳輸率提高到約33.3MB/S。
6.權(quán)利要求1的方法還包括并行位錯(cuò)誤檢測(cè),包含以下步驟(c)(1)外圍驅(qū)動(dòng)設(shè)備對(duì)放到總線上的數(shù)據(jù)字計(jì)算一個(gè)16位CRC值;在數(shù)據(jù)字被鎖存到主設(shè)備中之后(e)主設(shè)備對(duì)從總線接收的數(shù)據(jù)字計(jì)算一個(gè)16位CRC值;在外圍驅(qū)動(dòng)設(shè)備完成傳送數(shù)據(jù)之后(f)主設(shè)備向外圍驅(qū)動(dòng)設(shè)備發(fā)送它計(jì)算出的16位CRC值;以及(g)外圍驅(qū)動(dòng)設(shè)備對(duì)接收到的16位CRC值和它計(jì)算的16位CRC值進(jìn)行比較,這樣就驗(yàn)證了總線上所傳數(shù)據(jù)的有效性。
7.權(quán)利要求6的方法,其中并行位錯(cuò)誤檢測(cè)對(duì)現(xiàn)有的ATA驅(qū)動(dòng)軟件是透明的,在改進(jìn)數(shù)據(jù)完整性的同時(shí)提供與現(xiàn)有ATA驅(qū)動(dòng)軟件的向下兼容性。
8.權(quán)利要求6的方法,其中外圍驅(qū)動(dòng)設(shè)備和主設(shè)備計(jì)算16位CRC值的步驟以數(shù)據(jù)字時(shí)鐘頻率進(jìn)行。
9.在一個(gè)包括一個(gè)通過(guò)總線與至少一個(gè)外圍驅(qū)動(dòng)設(shè)備相連的主機(jī)的計(jì)算機(jī)系統(tǒng)中,總線用于響應(yīng)主設(shè)備的讀和寫指令通過(guò)一系列同步DMA短脈沖串傳輸在主設(shè)備和外圍驅(qū)動(dòng)設(shè)備之間傳送數(shù)據(jù),總線具有相關(guān)控制信號(hào)傳輸選通頻率,主設(shè)備和外圍驅(qū)動(dòng)設(shè)備根據(jù)指令類型分別指定為發(fā)送端或接收端,一種進(jìn)行同步DMA短脈沖串傳輸?shù)姆椒òㄒ韵虏襟E(a)外圍驅(qū)動(dòng)設(shè)備發(fā)出一個(gè)DMA請(qǐng)求信號(hào)來(lái)初始化同步DMA短脈沖串傳輸;(b)主設(shè)備響應(yīng)DMA請(qǐng)求信號(hào)發(fā)出一個(gè)DMA確認(rèn)信號(hào)來(lái)表示主設(shè)備準(zhǔn)備開始同步DMA短脈沖串傳輸;(c)發(fā)送端將第一數(shù)據(jù)字放到總線上;(d)發(fā)送端對(duì)放在總線上的第一數(shù)據(jù)字計(jì)算16位CRC值;(e)接收端響應(yīng)DMA確認(rèn)信號(hào),發(fā)出一個(gè)準(zhǔn)備好信號(hào)來(lái)說(shuō)明接收端準(zhǔn)備接收數(shù)據(jù);(f)發(fā)送端在接收端發(fā)出準(zhǔn)備好信號(hào)后的第一預(yù)定時(shí)間周期之內(nèi)將選通信號(hào)從高狀態(tài)觸發(fā)變?yōu)榈蜖顟B(tài),并且在從第一數(shù)據(jù)字放到總線上起經(jīng)過(guò)第二預(yù)定時(shí)間周期之后將選通信號(hào)觸發(fā)來(lái)鎖存第一數(shù)據(jù)字到接收端中,選通信號(hào)從高狀態(tài)觸發(fā)到低狀態(tài)定義選通信號(hào)的第一邊沿,選通信號(hào)從低狀態(tài)觸發(fā)到高狀態(tài)定義選通信號(hào)的第二邊沿及(g)接收端對(duì)從總線上收到的第一數(shù)據(jù)字計(jì)算16位CRC值,這樣位錯(cuò)誤能夠用計(jì)算出的16位CRC值檢測(cè)出來(lái)以提供數(shù)據(jù)完整性,以及這樣外圍驅(qū)動(dòng)設(shè)備控制同步DMA短脈沖串傳輸?shù)某跏蓟?,以及這樣選通信號(hào)的第一和第二邊沿兩者都可以用來(lái)鎖存數(shù)據(jù)字到接收端,以及這樣,發(fā)送端既控制數(shù)據(jù)又控制選通信號(hào),使與DMA短脈沖串傳輸有關(guān)的傳播延遲、電纜穩(wěn)定和設(shè)置時(shí)間的影響最小化,從而在總線上實(shí)現(xiàn)了提高的數(shù)據(jù)傳輸率。
10.權(quán)利要求9的方法還包括下面步驟(h)發(fā)送端把第二數(shù)據(jù)字放到總線上,并對(duì)第二數(shù)據(jù)字計(jì)算16位CRC值;(i)發(fā)送端在第二數(shù)據(jù)字被放到總線上后經(jīng)過(guò)第二預(yù)定時(shí)間周期之后,將選通信號(hào)從低狀態(tài)觸發(fā)變?yōu)楦郀顟B(tài),把第二數(shù)據(jù)字鎖存到接收端中去;(j)接收端對(duì)從總線上接收的第二數(shù)據(jù)字計(jì)算16位CRC值;(k)發(fā)送端重復(fù)將數(shù)據(jù)字放到總線上,對(duì)數(shù)據(jù)字計(jì)算16位CRC值并在數(shù)據(jù)字被放到總線上后的第二預(yù)定時(shí)間周期后觸發(fā)選通信號(hào)的步驟,直到發(fā)送端結(jié)束發(fā)送數(shù)據(jù);(l)接收端對(duì)每個(gè)從總線接收的數(shù)據(jù)字計(jì)算16位CRC值;(m)發(fā)送端發(fā)出一個(gè)停止DMA信號(hào)來(lái)表示發(fā)送端已經(jīng)完成發(fā)送數(shù)據(jù)并終止同步DMA短脈沖串傳輸;(n)發(fā)送端在完成發(fā)送數(shù)據(jù)后將選通信號(hào)返回到高狀態(tài);(o)主設(shè)備在選通信號(hào)被返回高狀態(tài)后向外圍驅(qū)動(dòng)設(shè)備發(fā)出它計(jì)算的16位CRC值;以及(p)外圍驅(qū)動(dòng)設(shè)備對(duì)接收的16位CRC值和它計(jì)算的16位CRC值進(jìn)行比較。這樣就驗(yàn)證了總線上所傳數(shù)據(jù)的有效性,以及這使得該方法與現(xiàn)有的選通傳輸協(xié)議向下兼容。
11.權(quán)利要求9的方法,其中數(shù)據(jù)是在一條具有約為8.3MHz的控制信號(hào)傳輸選通頻率的ATA總線上傳輸?shù)?,其中使用選通信號(hào)的第一和第二邊沿兩者來(lái)鎖存數(shù)據(jù)到接收端上,這提高了數(shù)據(jù)傳輸率而無(wú)需增加ATA總線的控制信號(hào)傳輸選通頻率,從而使ATA總線上的信號(hào)失真最小化。
12.權(quán)利要求9的方法,其中數(shù)據(jù)傳輸率約為33.3MB/S。
13.權(quán)利要求9的方法還包括并行位錯(cuò)誤檢測(cè),包含如下步驟發(fā)送端完成發(fā)送數(shù)據(jù)之后(h)主設(shè)備向外圍驅(qū)動(dòng)設(shè)備發(fā)送它計(jì)算的16位CRC值;以及(g)外圍驅(qū)動(dòng)設(shè)備對(duì)接收的16位CRC值和它計(jì)算的16位CRC值進(jìn)行比較,這樣就驗(yàn)證了總線上所傳數(shù)據(jù)的有效性。
14.權(quán)利要求13的方法,其中并行位錯(cuò)誤檢測(cè)對(duì)現(xiàn)有的ATA驅(qū)動(dòng)軟件是透明的,從而在改進(jìn)數(shù)據(jù)完整性時(shí)提供與現(xiàn)有ATA驅(qū)動(dòng)軟件的向下兼容性。
15.權(quán)利要求9的方法,其中外圍驅(qū)動(dòng)設(shè)備和主設(shè)備計(jì)算16位CRC值的步驟以一個(gè)數(shù)據(jù)字時(shí)鐘速率進(jìn)行。
16.在一個(gè)包括一個(gè)通過(guò)總線與至少一個(gè)外圍驅(qū)動(dòng)設(shè)備相連的主機(jī)的計(jì)算機(jī)系統(tǒng)中,總線用于響應(yīng)主設(shè)備的讀和寫指令通過(guò)一系列同步DMA短脈沖串傳輸在外圍驅(qū)動(dòng)設(shè)備和主設(shè)備之間傳送數(shù)據(jù),總線具有相關(guān)控制信號(hào)傳輸選通頻率,一種對(duì)寫指令進(jìn)行同步DMA短脈沖串傳輸?shù)姆椒òㄒ韵虏襟E(a)外圍驅(qū)動(dòng)設(shè)備發(fā)出一個(gè)DMA請(qǐng)求信號(hào)來(lái)初始化同步DMA短脈沖串傳輸;(b)當(dāng)主設(shè)備準(zhǔn)備開始同步DMA短脈沖串傳輸時(shí),主設(shè)備響應(yīng)DMA請(qǐng)求信號(hào)發(fā)出一個(gè)DMA確認(rèn)信號(hào)并把第一數(shù)據(jù)字放到總線上;(c)在DMA確認(rèn)信號(hào)被主設(shè)備發(fā)出后的一個(gè)預(yù)定時(shí)間周期之內(nèi),外圍驅(qū)動(dòng)設(shè)備發(fā)出準(zhǔn)備好信號(hào);及(d)主設(shè)備在外圍驅(qū)動(dòng)設(shè)備發(fā)出準(zhǔn)備好信號(hào)后的預(yù)定時(shí)間周期之內(nèi)將選通信號(hào)從高狀態(tài)觸發(fā)變?yōu)榈蜖顟B(tài)以把第一數(shù)據(jù)字鎖存到外圍驅(qū)動(dòng)設(shè)備中去,選通信號(hào)從高狀態(tài)向低狀態(tài)的觸發(fā)定義了選通信號(hào)的第一邊沿,而選通信號(hào)從低狀態(tài)向高狀態(tài)的觸發(fā)定義了選通信號(hào)的第二邊沿這樣,外圍驅(qū)動(dòng)設(shè)備始終控制著同步DMA短脈沖串傳輸?shù)某跏蓟?。這樣,主設(shè)備既控制數(shù)據(jù)又控制選通信號(hào),使與DMA短脈沖串傳輸有關(guān)的傳播延遲、電纜穩(wěn)定和設(shè)置時(shí)間的影響最小化,以及這樣,選通信號(hào)的第一和第二邊沿兩者都用于鎖存數(shù)據(jù)字到外圍驅(qū)動(dòng)設(shè)備上,從面提高了總線上的數(shù)據(jù)傳輸率而沒(méi)有增加總線的控制信號(hào)傳輸選通頻率。
17.權(quán)利要求16的方法還包括下面步驟(e)主設(shè)備將一個(gè)附加數(shù)據(jù)字放到總線上;以及(f)主設(shè)備在附加數(shù)據(jù)字放到總線上后的第二預(yù)定時(shí)間周期之后,將選通信號(hào)從低狀態(tài)觸發(fā)為高狀態(tài)以把附加數(shù)據(jù)字鎖存到外圍驅(qū)動(dòng)設(shè)備中,這樣附加數(shù)據(jù)字通過(guò)總線傳輸并用選通信號(hào)的第一和第二邊沿兩者鎖存到外圍驅(qū)動(dòng)設(shè)備中。
18.權(quán)利要求16的方法還包括下面步驟(e)主設(shè)備在完成傳送數(shù)據(jù)時(shí),將選通信號(hào)返回高狀態(tài)。
19.權(quán)利要求18的方法,其中該方法與現(xiàn)有的選通傳輸協(xié)議向下兼容。
20.權(quán)利要求16的方法,其中同步DMA短脈沖串傳輸在一條具有約8.3MHz控制信號(hào)傳輸選通頻率的ATA總線上進(jìn)行,總線的數(shù)據(jù)傳輸率提高到約33.3MB/S。
21.權(quán)利要求16的方法還包括并行位錯(cuò)誤檢測(cè),包含以下步驟(b)(1)主設(shè)備對(duì)放到總線上的數(shù)據(jù)字計(jì)算一個(gè)16位CRC值;在數(shù)據(jù)字被鎖存到外圍驅(qū)動(dòng)設(shè)備中之后(e)外圍驅(qū)動(dòng)設(shè)備對(duì)從總線接收的數(shù)據(jù)字計(jì)算一個(gè)16位CRC值;在主設(shè)備完成傳送數(shù)據(jù)之后(f)主設(shè)備向外圍驅(qū)動(dòng)設(shè)備發(fā)送它計(jì)算出的16位CRC值;以及(g)外圍驅(qū)動(dòng)設(shè)備將接收到的16位CRC值和它計(jì)算的16位CRC值進(jìn)行比較,這樣總線上所傳數(shù)據(jù)的有效性就得到了驗(yàn)證。
22.權(quán)利要求21的方法,其中并行位錯(cuò)誤檢測(cè)對(duì)現(xiàn)有的ATA驅(qū)動(dòng)軟件是透明的,在改進(jìn)數(shù)據(jù)完整性的同時(shí)提供與現(xiàn)有ATA驅(qū)動(dòng)軟件的向下兼容性。
23.權(quán)利要求21的方法,其中外圍驅(qū)動(dòng)設(shè)備和主設(shè)備計(jì)算16位CRC值的步驟以數(shù)據(jù)字時(shí)鐘頻率進(jìn)行。
全文摘要
一種同步DMA短脈沖串傳輸方法用來(lái)在由ATA總線連接的一個(gè)主設(shè)備和一個(gè)外圍驅(qū)動(dòng)設(shè)備之間進(jìn)行數(shù)據(jù)傳輸。該方法通過(guò)使一個(gè)設(shè)備既負(fù)責(zé)管理選通信號(hào)又負(fù)責(zé)管理數(shù)據(jù)信號(hào)來(lái)提供在異步系統(tǒng)中的同步數(shù)據(jù)傳輸能力。當(dāng)一條主機(jī)讀或?qū)懼噶畋话l(fā)送到外圍驅(qū)動(dòng)設(shè)備上時(shí),外圍設(shè)備決定何時(shí)開始同步DMA短脈沖串傳輸。對(duì)一個(gè)讀指令,外圍設(shè)備請(qǐng)求同步DMA短脈沖串傳輸,并在主機(jī)確認(rèn)其可以開始短脈沖串傳輸之后,將數(shù)據(jù)字送到ATA總線上去。在允許數(shù)據(jù)信號(hào)穩(wěn)定的時(shí)刻之后,外圍設(shè)備將選通信號(hào)從高狀態(tài)觸發(fā)變?yōu)榈蜖顟B(tài)。主機(jī)看到選通信號(hào)的邊沿,就在此時(shí)將數(shù)據(jù)字鎖定在總線上。附加數(shù)據(jù)字可以被送到總線上并且選通信號(hào)可以被再觸發(fā)以將附加數(shù)據(jù)字鎖存到主機(jī)中。當(dāng)所有數(shù)據(jù)字都被傳輸之后,選通信號(hào)返回高狀態(tài),準(zhǔn)備供另一條主機(jī)指令使用。通過(guò)使發(fā)送數(shù)據(jù)的設(shè)備負(fù)責(zé)管理選通信號(hào)和數(shù)據(jù)信號(hào)兩者,該方法減少了時(shí)間延遲由ATA總線連接的一個(gè)主設(shè)備和一個(gè)外圍驅(qū)動(dòng)設(shè)備之間進(jìn)行數(shù)據(jù)并可以提供高達(dá)33MB/S的數(shù)據(jù)傳輸速率。本方法易于在現(xiàn)有系統(tǒng)中實(shí)施并與現(xiàn)有的傳輸協(xié)議向下兼容。
文檔編號(hào)G06F13/20GK1169193SQ96191541
公開日1997年12月31日 申請(qǐng)日期1996年11月12日 優(yōu)先權(quán)日1995年11月21日
發(fā)明者杰弗里·H·阿普爾鮑姆, 約翰·W·布魯克斯, 詹姆斯·P·麥克拉斯, 亨格·C·尼蓋恩 申請(qǐng)人:昆騰公司