專利名稱:介接不同寬度總線的接口電路、系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于在兩個具有不同寬度的總線間傳輸資料的接口電路與方法,尤其是關(guān)于接口電路(例如先進先出(FIFO)電路)以一具時間效率的方式在兩總線間暫時儲存及傳遞資料。
背景技術(shù):
處理系統(tǒng)一般是于數(shù)個電子組件間傳輸資料。如眾所皆知,數(shù)據(jù)傳輸操作通常涉及多個內(nèi)存組件透過數(shù)據(jù)總線以互相通訊。然而,資料所傳輸?shù)慕涌诮?jīng)常用以連接兩寬度不同的一第一總線與一第二總線。在本發(fā)明中,一總線的“寬度”是指該總線一時間單位可傳輸?shù)馁Y料位數(shù)。通常,由于一較寬的總線是允許較多資料于一時間單位內(nèi)傳輸,因此較寬的總線比一較窄的總線操作較快。
為調(diào)節(jié)一連接不同寬度的總線的接口上資料的傳輸,一先進先出(first-in,first-out;其后簡稱FIFO)內(nèi)存裝置常用于此接口電路系統(tǒng)內(nèi)。此FIFO內(nèi)存裝置是暫時儲存來自較寬的總線的資料,然后以與較窄的總線相同的慢速提供資料予此較窄的總線。FIFO內(nèi)存裝置一般可依兩種不同方式設(shè)計。第一種方式,F(xiàn)IFO內(nèi)存裝置可設(shè)計成與寬總線同等寬度,使FIFO內(nèi)存裝置可在一時脈周期內(nèi)接收寬總線上所有資料。然而,此設(shè)計所伴隨的問題是,當寬總線上的資料僅有一部分是有效時,F(xiàn)IFO電路并無法得知此數(shù)據(jù)中那些字節(jié)是有效的。因此,此類的電路典型需要一額外“有效”位伴隨數(shù)據(jù)傳輸,用以指示每一字節(jié)有效或無效與否。并且,此FIFO電路更需要附加電路系統(tǒng)用以監(jiān)控有效位而得以決定每一字節(jié)有效或無效。
于處理系統(tǒng)中較普遍的方式,F(xiàn)IFO內(nèi)存裝置的第二種設(shè)計是提供不同寬度數(shù)據(jù)總線間的接口電路另一可行的解決方案。在此設(shè)計中,資料自寬總線一時間單位傳輸一字節(jié),并且一時間單位讀出一字節(jié)到慢(窄)總線。此類系統(tǒng)的主要缺點是,于寬總線端操作的裝置將遭遇一瓶頸狀態(tài)。此連接至寬總線的裝置(例如一處理器、一直接內(nèi)存存取(DMA)控制器或其它類型的數(shù)據(jù)傳輸裝置)需持續(xù)忙于以慢速提供資料至窄總線,因而整個數(shù)據(jù)傳輸過程中皆需保持在忙碌狀態(tài)。
請參照圖1,其為介于不同寬度的總線間一傳統(tǒng)接口電路中的一FIFO電路。具體而言,接口電路12是于一處理器數(shù)據(jù)總線14與一外圍總線16間傳輸資料。一處理器18是可由寬處理器數(shù)據(jù)總線14高速存取資料。此處理器18包含一內(nèi)部電路系統(tǒng)20,其亦為接口電路12的一部分。在一寫入程序期間,該內(nèi)部電路系統(tǒng)20由一中間總線22提供資料至FIFO電路10與外圍總線16上的一裝置(未繪出)通訊,其中中間總線22是具有與窄外圍總線16相同的寬度。受限于FIFO電路10與窄外圍總線16,處理器18的內(nèi)部電路系統(tǒng)20僅能以窄總線16的慢速率提供資料給FIFO電路10,因此處理器18持續(xù)忙于數(shù)據(jù)傳輸而無法執(zhí)行其它處理任務(wù)。就此而言,處理器18的速度由于受限于慢總線16,因此在這段資料轉(zhuǎn)換期間將無法發(fā)揮其最大效能。
圖1所示的FIFO電路10是包含一內(nèi)存數(shù)組24、一寫入計數(shù)器26以及一讀取計數(shù)器28。內(nèi)存數(shù)組24是有一字節(jié)的寬度用以一次儲存一字節(jié),且可有任何數(shù)目的地址深度。內(nèi)存數(shù)組24可視為一FIFO裝置,用以儲存與此數(shù)組地址數(shù)量相等的字節(jié)資料。然后資料是依相同的順序讀出。
為請求一寫入程序,處理器18送出一“資料寫入”信號給寫入計數(shù)器26表示一寫入請求。為響應(yīng)此“資料寫入”信號,寫入計數(shù)器26是增加一內(nèi)部值,代表一指向內(nèi)存數(shù)組24內(nèi)其中一地址的指針。寫入計數(shù)器26依據(jù)指針數(shù)目所指的內(nèi)存數(shù)組24下一個可存取的內(nèi)存地址,以指示下一字節(jié)將儲存于何處。
其后,一連接在外圍總線16上的外圍裝置指示其何時準備好接收儲存于內(nèi)存數(shù)組24內(nèi)的資料。此外圍裝置送出一“資料讀取”信號由讀取計數(shù)器28所接收。為響應(yīng)此“資料讀取”信號,讀取計數(shù)器28將另一指針值加一以指向內(nèi)存數(shù)組24內(nèi)的下一內(nèi)存地址,用以讀取此內(nèi)存地址的內(nèi)容。然后內(nèi)存數(shù)組24一次傳輸一資料字節(jié)至外圍總線16。
請參照圖2,其為使用圖1所示的傳統(tǒng)接口電路12傳輸8字節(jié)的一范例時序圖。例如在一第一時脈周期,處理器18將一第一字節(jié)“字節(jié)0”經(jīng)由其內(nèi)部電路系統(tǒng)20寫入內(nèi)存數(shù)組24;一時脈周期的后,處理器18將一第二字節(jié)“字節(jié)1”寫入內(nèi)存數(shù)組24;依此類推,每一時脈周期寫入一字節(jié)直到所有字節(jié)都寫入后完成。內(nèi)存數(shù)組24可一次一個字節(jié),儲存任何寫入的數(shù)據(jù)。自資料開始從處理器18讀出并寫入內(nèi)存數(shù)組24后一段時間,可指示讀取記數(shù)器28自內(nèi)存數(shù)組24存取資料以寫入至外圍總線16。從圖2的時序圖可知處理器18在此8字節(jié)的數(shù)據(jù)傳輸至內(nèi)存24的整個過程中持續(xù)忙碌。
由于上述先前技術(shù)的缺點,眾所期望的乃是處理系統(tǒng)的一改良接口電路。例如于一快速的寬總線與一緩慢的窄總線間的數(shù)據(jù)傳輸過程,提供一裝置有助于一接口電路使處理器不必受其限制或強制等待。
發(fā)明內(nèi)容
本發(fā)明在此揭露接口電路及方法用以在不同寬度的總線間傳輸資料,其中這些方法可使處理器速度較快。依本發(fā)明的一接口電路是包含一第一控制邏輯電路與一第二控制邏輯電路。此第一控制邏輯電路是用以提供一選擇信號至復(fù)數(shù)個分配裝置。每一分配裝置是控制一個字節(jié)暫存器與其在一寬總線上一對應(yīng)的字節(jié)位置間的通訊。此第二控制邏輯電路是用以提供一選擇信號至另一分配裝置,此另一分配裝置是控制該等復(fù)數(shù)個字節(jié)暫存器與一窄總線間的通訊,其中此窄總線相較于寬總線是具有一較少字節(jié)的寬度。
詳言之,此第一控制邏輯電路是可從一位于該寬總線上的裝置接收一第一信號與一第二信號,其中此第一信號是表示一請求信號以存取該等字節(jié)暫存器內(nèi)的資料,此第二信號是表示欲存取資料的字節(jié)數(shù)量。此第一控制邏輯電路亦可包含一計數(shù)器,其中此計數(shù)器所增加的數(shù)量等于此第二信號所表示的數(shù)量。此接口電路更可使此第二控制邏輯電路接收一來自位于此第二總線上一裝置的信號,此信號是表示一請求信號以存取在該等字節(jié)暫存器內(nèi)的資料。舉例,此第二控制邏輯電路可為一計數(shù)器。
上述接口電路還包含一狀態(tài)檢查模塊用以接收來自此第一控制邏輯電路的一第一計數(shù)值與來自此第二控制邏輯電路的一第二計數(shù)值。為響應(yīng)此第一計數(shù)值與此第二計數(shù)值,該狀態(tài)檢查模塊是各提供一停止信號或一繼續(xù)信號至此第一控制邏輯電路與此第二控制邏輯電路。
本發(fā)明亦揭露用以傳輸復(fù)數(shù)個字節(jié)的資料的方法,此資料在單一時脈周期內(nèi)于一第一總線與數(shù)個暫存器間傳輸,其中此暫存器的數(shù)目是相對于資料的字節(jié)數(shù)目;接著傳輸此復(fù)數(shù)個字節(jié)的資料于該等暫存器與一第二總線間,一時間周期傳輸一字節(jié)。此傳輸步驟不必依此特定順序進行,依據(jù)兩總線中較寬者為讀取或?qū)懭胭Y料,可逆向?qū)嵤?br>
為進一步說明本發(fā)明的具體技術(shù)內(nèi)容,以下結(jié)合實施例及附圖詳細說明如后,其中圖1是在不同寬度總線間的一傳統(tǒng)接口電路的概略方塊圖;圖2是圖1所示的處理器內(nèi)含組件的時序圖;圖3是在不同寬度總線間的一接口電路的一第一實施例的概略方塊圖;圖4是一接口電路的一第二實施例的概略方塊圖;圖5是一接口電路的一第三實施例的概略方塊圖;圖6是一接口電路的一第四實施例的概略方塊圖;以及圖7是圖3-圖6的接口電路的一處理器信號活動的時序圖。
具體實施例方式
本發(fā)明是揭露接口連接(interface)不同寬度的總線的電路,以及在該等總線間進行數(shù)據(jù)傳輸?shù)姆椒?,以克服先前技藝的缺失。此改良的接口電路可允許于一寬總線上操作的裝置可以此寬總線的速度傳輸資料,而非一窄總線的速度。在此所描述的范例中,除非另有指明,否則一“寬總線”是為一具有32位或4字節(jié)寬度的總線;而一“窄總線”是為一具有8位或1字節(jié)寬度的總線。然而,該等指定的寬度是僅用于圖解說明的參考,并非于任何方面意欲限制本發(fā)明于此觀點。反的,該等總線可具有任何適當?shù)膶挾?,并且較佳的寬度是一字節(jié)的倍數(shù)。并且,此寬總線與窄總線可為任何類型的信號傳輸信道或是無線通訊信道用以傳送信號、資料或指令等。舉一范例,此寬總線可作為一處理器數(shù)據(jù)總線,此窄總線是可作為一外圍總線用與一個或多個外圍裝置通訊。
本發(fā)明的實施例亦可適用于如先進先出(first-in,first-out;其后簡稱FIFO)裝置,此裝置所儲存的資料是以相同順序讀入與讀出。然而,本發(fā)明是包含數(shù)個獨立暫存器,各獨立暫存器可儲存與讀出一字節(jié),以取代先前技術(shù)所用的儲存維度為一字節(jié)寬與一數(shù)目的地址深度的內(nèi)存數(shù)組。于后敘述的實施例不僅維持字節(jié)數(shù)據(jù)傳輸?shù)倪m當順序,并可藉由僅將有效字節(jié)暫時儲存于該等暫存器內(nèi)簡化傳輸處理。
本發(fā)明是包含接口電路的實施例,該等接口電路是允許位于寬總線上的一處理器、一直接內(nèi)存存取(DMA)控制器或其它適當?shù)臄?shù)據(jù)傳輸裝置,于單一時脈周期內(nèi)存取(讀取或?qū)懭?1-4字節(jié)的數(shù)據(jù)。依此方式,處理器或數(shù)據(jù)傳輸裝置將不需等待一內(nèi)存數(shù)組一次儲存或讀出一字節(jié)。反之,該等實施例的處理器可快速存取資料,而后接續(xù)執(zhí)行其它功能。根據(jù)本發(fā)明所揭示的接口電路能以快速總線的速度與快速總線傳輸資料,并且能以慢速總線的速度與慢速總線傳輸資料。緣是可知相較于先前技術(shù)的處理器,本發(fā)明中位于快速總線上的處理器具有較少的延遲,此乃因在數(shù)據(jù)傳輸過程中處理器的速度是由快速總線的速度所決定而非慢速總線。
本發(fā)明所揭示的電路是允許位于一快速總線上的一裝置(例如一處理器)使用一“爆發(fā)寫入(burst writing)”技術(shù),將資料寫入位于一慢速總線上的一裝置。另揭示允許一快速總線上的一裝置(例如一處理器)使用一“爆發(fā)讀取(burst reading)”技術(shù),自慢速總線上的一裝置讀取資料的電路。運用此類技術(shù)的方法亦揭示于本發(fā)明中。參照圖3與圖4,下列敘述一以爆發(fā)寫入技術(shù)操作的接口電路,其中位在一寬數(shù)據(jù)總線上的一裝置將資料寫入位在一窄總線上的另一裝置。在爆發(fā)讀取時,位于此慢速總線上的裝置是可于數(shù)個時脈周期(例如四個時脈周期)內(nèi)將資料寫入暫存器,然后位于快速總線上的裝置可于僅僅單一時脈周期內(nèi)讀取所有的四字節(jié)。圖5與圖6則關(guān)于一以爆發(fā)讀取技術(shù)操作的接口電路。
由于僅寫入或讀取寬總線的一字節(jié)毫無效率可言,因此本發(fā)明是提供系統(tǒng)及方法使處理器時間的運用更有效率。處理器的有效率使用寬總線是包含在每一時脈周期使用所有可用的寬度。另一寬總線的有效率使用是包含在背對背(back-to-back)時脈周期內(nèi)使用此總線所有寬度讀取或?qū)懭?,如圖7所示。此種使用寬總線所有寬度在背對背時脈周期內(nèi)讀取或?qū)懭胧欠Q為“爆發(fā)讀取”或“爆發(fā)寫入”。從一處理器/DMA的觀點,爆發(fā)讀取或?qū)懭氲氖褂?將在下列詳細解說)提供一非常有效率填滿(filling)或倒空(emptying)字節(jié)暫存器的方法。
請參照圖3,其為一接口電路30的實施例的概略方塊圖,此接口電路30是自一寬總線32寫入資料至一窄總線34。顯而易見地此接口電路30亦可用于自寬總線32上的一裝置讀取資料至窄總線34上的另一裝置。不論是上述那一種情況,資料是從寬總線32傳輸至窄總線34。
此接口電路30的實施例是包含一寫入控制邏輯電路36、數(shù)個字節(jié)多工器38與字節(jié)暫存器40、一暫存多工器42、一讀取計數(shù)器44以及一狀態(tài)檢查模塊46。寫入控制邏輯電路36、字節(jié)多工器38、暫存多工器42、讀取計數(shù)器44以及狀態(tài)檢查模塊46可配置于硬件及/或軟件內(nèi)。如果配置于硬件內(nèi),上述這些組件可包含任何適當?shù)倪壿嫿M件組合以完成本發(fā)明所描述的功能。如果配置于軟件內(nèi),上述這些組件可包含任何適當?shù)闹噶钐幚砟K或具有指令的程序代碼以完成本發(fā)明所指定的功能,其中上述的指令處理模塊及/或具有指令的程序代碼可儲存在一計算機或其它可由處理裝置讀取的媒體上。
寫入控制邏輯電路36是包含兩輸入,其中第一輸入是用以接收一“資料寫入”信號以表示請求一寫入程序;第二輸入是用以接收一“資料大小”信號,此“資料大小”信號是表示此寫入程序期間有多少字節(jié)將被寫入。在此實施例中,資料大小信號是為一個二位信號,其二進制值00、01、10或11分別代表一字節(jié)、二字節(jié)、三字節(jié)與四字節(jié)的數(shù)據(jù)大小。若為其它寬總線32大小不同于本實施例中所示的四字節(jié)總線32的實施例,其資料大小信號的位數(shù)可依所需表示的字節(jié)數(shù)目,由一個字節(jié)至一總線能處理的最大字節(jié)數(shù)目。
如上所述,寬總線32與窄總線34依特定設(shè)計可具有任何數(shù)目字節(jié)的寬度,但其較佳數(shù)目是一字節(jié)的倍數(shù)。在此范例中,寬總線32具有四字節(jié)的寬度,而窄總線34具有一字節(jié)的寬度。接口電路30可依據(jù)每一總線的字節(jié)數(shù)目而修改,例如若寬總線32具有四字節(jié)的寬度,接口電路30的較佳設(shè)計為包含以四為倍數(shù)的數(shù)目的字節(jié)暫存器40和其對應(yīng)的字節(jié)多工器38。依此方式,寬總線32可于一時序周期寫入四字節(jié)至一組字節(jié)暫存器40。若有八個字節(jié)暫存器40,四字節(jié)的爆發(fā)寫入可于每兩連續(xù)時脈周期執(zhí)行一次。若有12個字節(jié)暫存器40,爆發(fā)寫入于每三個連續(xù)時脈周期執(zhí)行一次,依此類推。就此點而言,接口電路30的設(shè)計是可能依此或其它指定速度的規(guī)格而修改。
如另一范例,自一具有三字節(jié)寬度的寬總線32傳輸資料至一具有一字節(jié)寬度的總線34。如果一設(shè)計規(guī)格要求每一次爆發(fā)是寫入12字節(jié),則設(shè)計者可修改接口電路30的設(shè)計為包含12個字節(jié)暫存器40以符合此規(guī)格。此配置將允許接口電路30在四個連續(xù)時脈周期內(nèi)接收所有12字節(jié),其中三個字節(jié)暫存器40在一第一時脈信號接收來自此三字節(jié)總線的三個字節(jié),下一組的三個字節(jié)暫存器40在下一時脈是儲存來自此總線的下一組三個字節(jié),依此類推。
雖然接口電路30是可包含任何數(shù)量的字節(jié)暫存器40,但是電路設(shè)計者需考量的另一因素是芯片可用的面積。如果可用面積較少,當然可使用的字節(jié)暫存器較少。另一可能修改接口電路30設(shè)計的因素是電路的整體大小,特別是使用數(shù)量可觀的字節(jié)暫存器40時。若尺寸較大,控制邏輯電路38與多工器42間的傳輸路徑長度將可能增加,因而導(dǎo)致在控制邏輯電路與對應(yīng)的多工器間傳輸?shù)目刂菩盘柈a(chǎn)生非預(yù)期延遲。緣是,設(shè)計者寧可盡可能維持相對較小的整體尺寸。
再回到圖3,寫入控制邏輯電路36是包含一寫入計數(shù)器48以作為一對應(yīng)的字節(jié)暫存器40的一“指針”。然而,不同于先前技術(shù)中是用于指向一內(nèi)存數(shù)組的一地址,寫入計數(shù)器48基本上指向下一字節(jié)可寫入的下一可用字節(jié)暫存器40。為響應(yīng)資料寫入信號與資料大小信號,寫入計數(shù)器48是增加一與資料大小相等的數(shù)目至一內(nèi)部值。例如如果數(shù)據(jù)大小是三字節(jié)(數(shù)據(jù)大小信號是二進制10),則計數(shù)器增加三。如果“Z地址”字節(jié)暫存器40Z是持有最后寫入的資料字節(jié),則下一可用字節(jié)暫存器40A將接收下一個寫入的字節(jié),而字節(jié)暫存器40B與40C接收再下兩個字節(jié)。
寫入計數(shù)器48其一最大計數(shù)相等于字節(jié)暫存器40的數(shù)量。假設(shè)接口電路30具有八個字節(jié)暫存器40W、40X、40Y、40Z、40A、40B、40C與40D,當寫入計數(shù)器48達到指定最后暫存器(例如40D)的最大計數(shù)時,其將于下一計數(shù)重設(shè)為零,以指向第一暫存器(例如40W)。依據(jù)寫入控制邏輯電路36的邏輯運作,數(shù)據(jù)寫入信號與數(shù)據(jù)大小信號是用以控制字節(jié)多工器38,藉此允許在寬總線32上的資料字節(jié)加載適當?shù)淖止?jié)暫存器40內(nèi)。例如假設(shè)有八個字節(jié)暫存器40W、40X、40Y、40Z、40A、40B、40C、40D與八個相對應(yīng)的字節(jié)多工器38W、38X、38Y、38Z、38A、38B、38C、38D,并且假設(shè)字節(jié)暫存器40已填滿至第五暫存器40A,則寫入計數(shù)器48將含有一值以顯示第六暫存器40B將是下一字節(jié)所欲寫入的暫存器。再者,假設(shè)處理器請求寫入四個字節(jié)(資料寫入信號是致能且數(shù)據(jù)大小信號是二進制11),則寫入控制邏輯電路36致能第六多工器38B以將第一字節(jié)“字節(jié)0”從寬總線32寫入至第六字節(jié)暫存器40B;其后依序致能第七多工器38C以將第二字節(jié)“字節(jié)1”寫入至第七字節(jié)暫存器40C;致能第八多工器38D以將第三字節(jié)“字節(jié)2”寫入至第八字節(jié)暫存器40D;以及致能第一多工器38W以將第四字節(jié)“字節(jié)3”寫入至第一字節(jié)暫存器40W。
當資料加載該等字節(jié)暫存器40其中至少一個字節(jié)暫存器時,窄總線34上的一裝置(未繪出)可請求開始從該等字節(jié)暫存器40讀取資料。讀取計數(shù)器44是包含指針值用以指向下一個可讀取資料的字節(jié)暫存器40。讀取計數(shù)器44送出一指針值的選擇信號給暫存器多工器42以選擇相對的字節(jié)暫存器40。然后暫存器多工器42自所選取的字節(jié)暫存器40傳輸資料字節(jié)至窄總線34。此程序在每一寫入至窄總線34的動作重復(fù),一次一個字節(jié)。
寫入控制邏輯電路36與讀取控制邏輯電路44兩者各包含一最大限制數(shù),而此最大限制數(shù)是相等于該等字節(jié)暫存器40的數(shù)目。當達到此最大限制數(shù)時,控制邏輯電路是重設(shè)為零以指向第一暫存器。除了此最大限制數(shù)之外,寫入控制邏輯電路36與讀取控制邏輯電路44兩者亦各包含一額外的“狀態(tài)位”,此狀態(tài)位可為一位,且于達到最大限制數(shù)時被觸發(fā),或置于指針計數(shù)的最高有效位。一“讀取計數(shù)值”與狀態(tài)位一起傳送至狀態(tài)檢查模塊46,此狀態(tài)檢查模塊46亦接收“寫入計數(shù)值”和其狀態(tài)位。如果寫入計數(shù)值內(nèi)所有的位與讀取計數(shù)值內(nèi)所有的位相同,則該等狀態(tài)位可表示下列兩種情況其中之一。第一種情況,當該等狀態(tài)位相同時,則狀態(tài)檢查模塊46是可判定讀取控制邏輯電路44已經(jīng)從該等字節(jié)暫存器40讀取所有的字節(jié),并且是與寫入控制邏輯電路36連接。在此情況下,狀態(tài)檢查模塊46指示讀取控制邏輯電路44停止讀取。第二種情況,當該等狀態(tài)位不同時,則狀態(tài)檢查模塊46是可判定寫入控制邏輯電路36已經(jīng)達到超過讀取控制邏輯電路44的位置,且未覆蓋寫入尚未被讀取控制邏輯電路44所讀取的數(shù)據(jù)的最遠位置。在此情況下,狀態(tài)檢查模塊46通知寫入控制邏輯電路36不可再寫入數(shù)據(jù),直到讀取控制邏輯電路36能從該等填滿的暫存器40讀取資料以空出位置供更多數(shù)據(jù)寫入。
一處理器或其它合適的數(shù)據(jù)傳輸裝置加載字節(jié)到寬總線32上,使第一字節(jié)是在字節(jié)0位置內(nèi);第二字節(jié)(如果存在)是在字節(jié)1位置內(nèi);第三字節(jié)(如果存在)是在字節(jié)2位置內(nèi);以及第四字節(jié)(如果存在)是在字節(jié)3位置內(nèi)。處理器亦提供資料寫入信號與資料大小信號。數(shù)據(jù)大小信號是表示寬總線32的字節(jié)0至字節(jié)3中何種為有效有效字節(jié)。通常處理器以一預(yù)設(shè)順序,從第一字節(jié)放在字節(jié)0的位置開始將數(shù)據(jù)置入寬總線32上。如果數(shù)據(jù)大于一字節(jié)寬度,則隨后的字節(jié)亦將依序放置。對于兩字節(jié)寬度數(shù)據(jù),此數(shù)據(jù)將被放置在字節(jié)0與字節(jié)1;三個字節(jié)則將被放置在字節(jié)0、字節(jié)1以及字節(jié)2;依此類推。在一后續(xù)的寫入中,處理器將再次從第一字節(jié)放在字節(jié)0的位置內(nèi)開始。然而,在另一實施例中,如果處理器沒有依以上所述的預(yù)設(shè)順序?qū)①Y料輸出,則接口電路30將包含一外加邏輯電路以確認某特定順序。
請參照圖4,其為自一寬總線52傳輸資料至一窄總線54的一接口電路50另一較佳實施例。資料的傳輸是可以是從寬總線52到窄總線54的一爆發(fā)寫入操作,或是從寬總線52讀取資料至窄總線54的一讀取操作。在此強調(diào),資料是從寬總線52傳輸至窄總線54。在本實施例中,接口電路50包含一寫入控制邏輯電路56以及復(fù)數(shù)個數(shù)據(jù)分配模塊58,每一數(shù)據(jù)分配模塊58包含復(fù)數(shù)個暫存器選擇模塊60、復(fù)數(shù)個資料大小選擇模塊62、復(fù)數(shù)個與門(AND gate)模塊64以及一或門(OR gate)模塊66。接口電路50更包含復(fù)數(shù)個字節(jié)暫存器68、一暫存器多工器70以及一讀取計數(shù)器72。接口電路50包含復(fù)數(shù)個資料分配模塊58對應(yīng)至每一個字節(jié)暫存器68。資料分配模塊58是可配置于硬件及/或軟件內(nèi),用以將寬總線52的有效字節(jié)以一預(yù)設(shè)順序儲存到該等字節(jié)暫存器68內(nèi)。
每一數(shù)據(jù)分配模塊58的暫存器選擇模塊60是用以判定來自寫入控制邏輯電路56的計數(shù)值。例如如果計數(shù)值是等于Z,則此“等于Z”的模塊是將輸出一高準位致能信號至對應(yīng)的與門模塊64。在所示的實施例中,一第一等于Z的模塊是用于數(shù)據(jù)分配模塊58Z的第一與門模塊64Z,一第二等于Z的模塊是用于數(shù)據(jù)分配模塊58A的第二與門模塊64A。如果資料分配模塊58B與58C亦包含于接口電路50的內(nèi),則其暫存器選擇模塊60的第三與第四位置亦包含等于Z的模塊,依此類推。
接著,各數(shù)據(jù)大小選擇模塊62依據(jù)自數(shù)據(jù)大小信號得知的資料大小提供輸出。如果僅有一字節(jié)置于寬總線52上且資料大小為一時,則僅有大于0的模塊將提供一高準位致能信號給與門模塊64中的第一個與門。如果在寬總線52上是三個有效字節(jié),則大于0、大于1、大于2的模塊將致能。在上述的范例中,假設(shè)下一可用暫存器是具有“Z地址”的字節(jié)暫存器68Z,且假設(shè)資料大小是兩字節(jié)時,則僅有大于0的模塊與大于1的模塊將致能。在圖4所示的第一個數(shù)據(jù)分配模塊58Z中,與門模塊64Z的第一個與門自寬總線52提供一第一字節(jié)“字節(jié)0”的輸出至或門模塊66Z。這是因為僅有該等于Z模塊與大于0模塊是此位選擇模塊58Z中。在圖4所示的第二個數(shù)據(jù)分配模塊58A中,由于僅有等于Z的模塊與大于1的模塊是此與門模塊64A上提供致能信號者,因此與門模塊64A的第二個與門自寬總線52提供一第二字節(jié)“字節(jié)1”的輸出至或門模塊66A。
各字節(jié)暫存器68是自寬總線52經(jīng)由相對的數(shù)據(jù)分配模塊58的或門模塊66接收適當?shù)淖止?jié)。字節(jié)暫存器68儲存與輸出資料至暫存器多工器70,而暫存器多工器70是根據(jù)讀取計數(shù)器72的選擇信號獲知已讀取的資料以選擇下一個暫存器。讀取計數(shù)器72亦包含一邏輯電路用以接收資料讀取信號以指示何時資料可讀取至窄總線54。
請參照圖5,其為于一窄總線76與一寬總線78間的一接口電路74另一較佳實施例。在此范例中,資料是以一爆發(fā)讀取程序從窄總線76傳輸至寬總線78。此接口電路74包含一寫入計數(shù)器80、一暫存器解多工器82、復(fù)數(shù)個字節(jié)暫存器84、復(fù)數(shù)個總線解多工器86以及一讀取控制邏輯電路88。寫入計數(shù)器80自一個于窄總線76上操作的裝置接收一資料寫入信號,并且提供一計數(shù)信號至暫存器解多工器82,以將資料的字節(jié)自窄總線76寫入下一個可用的字節(jié)暫存器84。當寬總線78上的處理器或其它類型的數(shù)據(jù)傳輸裝置送出一資料讀取信號伴隨一數(shù)據(jù)大小信號至讀取控制邏輯電路88時,讀取控制邏輯電路88是從適當?shù)淖止?jié)暫存器84選取最多四個字節(jié)(假設(shè)寬總線78寬度是四個字節(jié))。讀取控制邏輯電路88根據(jù)一依資料讀取信號與資料大小信號增加的讀取計數(shù)值(如先前所描述),提供選擇信號給適當?shù)目偩€解多工器86。這些選擇信號是一起送至總線解多工器86,使得所選取的字節(jié)可由總線解多工器86置于寬總線78上的適當字節(jié)位置,如第一字節(jié)放置在字節(jié)0的位置、第二字節(jié)放置在字節(jié)1的位置等方式。處理器接著可在一時脈周期內(nèi)從寬總線78讀取該等字節(jié)(一次最多四個)。如果接口電路74具有足夠的字節(jié)暫存器84(例如一個四字節(jié)總線78則至少八個字節(jié)暫存器84),則處理器可在接續(xù)的下一時脈周期由選擇適當?shù)目偩€解多工器86,自字節(jié)暫存器84讀取一第二組的四字節(jié)。
請參照圖6,其為用于接口連接(interfacing)一窄總線92與一寬總線94的一接口電路90另一較佳實施例的概略方塊圖。在本實施例中,資料是從窄總線92傳輸至寬總線94,其中窄總線92上的一裝置將資料寫入寬總線94上的一裝置;或由寬總線94上的一裝置自窄總線92上的一裝置讀取資料。接口電路90是包含一寫入計數(shù)器96、一解多工器98、復(fù)數(shù)個字節(jié)暫存器100、復(fù)數(shù)個數(shù)據(jù)分配模塊102以及一讀取控制邏輯電路104。寫入計數(shù)器96、該等數(shù)據(jù)分配模塊102以及讀取控制邏輯電路104可配置于硬件及/或軟件內(nèi)。各數(shù)據(jù)分配模塊102是包含復(fù)數(shù)個總線位置選擇模塊106、復(fù)數(shù)個數(shù)據(jù)大小選擇模塊108以及復(fù)數(shù)個與門模塊110。
寫入計數(shù)器96是接收一資料寫入信號,此資料寫入信號表示一自窄總線92寫入資料的請求信號。寫入計數(shù)器96增加方式依據(jù)上述的相關(guān)組件,并且選擇資料將寫入的下一可用字節(jié)暫存器100。讀取控制邏輯電路104自寬總線94上的一裝置接收一資料讀取信號與一資料大小信號。讀取控制邏輯電路104輸出一值(例如一指針值)作為響應(yīng),該值根據(jù)欲讀取的資料指示下一個可用的字節(jié)暫存器100。該值受到總線位置選擇模塊106偵測,以判定來自字節(jié)暫存器100何種的哪些字節(jié)放置在寬總線94上的何處位置。舉例如果讀取控制邏輯電路104輸出Z值,表示具有Z地址的字節(jié)暫存器是下一可用的暫存器,則在各資料分配模塊102內(nèi)等于Z的模塊是提供一邏輯高準位輸出至對應(yīng)的與門模塊100。并且,由于數(shù)據(jù)大小至少為一,因此數(shù)據(jù)大小選擇模塊108中至少有大于0的模塊亦提供一邏輯高準位輸出至與門模塊110。在此范例中,Z地址字節(jié)暫存器100Z是經(jīng)由此與門模塊100Z的第一個與門提供所儲存的數(shù)據(jù)字節(jié)至寬總線94的字節(jié)0。同樣依此范例,如果數(shù)據(jù)大小是至少為二,則等于Z的模塊與大于1的模塊將提供高準位信號到數(shù)據(jù)分配模塊102A的與門模塊110A的第二個與門,而得以將A地址字節(jié)暫存器100A的資料字節(jié)置于寬總線94的第二字節(jié)位置“字節(jié)1”。
所應(yīng)注意的是,圖4-圖6的實施例亦可包含圖3所示的狀態(tài)檢查模塊46。在這些實施例中,狀態(tài)檢查模塊46的操作方式與圖3所示相近。狀態(tài)檢查模塊46自讀取計數(shù)器或讀取控制邏輯電路接收讀取計數(shù)值,并且從寫入計數(shù)器或?qū)懭肟刂七壿嬰娐方邮諏懭胗嫈?shù)值;以及判定字節(jié)暫存器是否全部已滿、部份已滿或全部未滿。當字節(jié)暫存器全部已滿時,寫入裝置受命令停止寫入而讀取裝置是致能以繼續(xù)讀取。當全部未滿時,讀取裝置受命令停止讀取而寫入裝置是致能以繼續(xù)寫入。當部分字節(jié)暫存器為滿時,讀取裝置與寫入裝置可繼續(xù)讀取與寫入。如果讀取裝置從空白的暫存器讀取或?qū)懭胙b置寫入已滿的暫存器時,則狀態(tài)檢查模塊46亦可送出一錯誤信號以表示錯誤狀態(tài)。
請參照圖7,其為圖3-圖6的實施例信號活動之一的范例時序圖。無論于讀取或?qū)懭脒^程,皆允許處理器自接口電路中相對的數(shù)個暫存器寫入或讀取數(shù)個字節(jié)。在圖3與圖4示意一個自一寬總線寫入資料至一窄總線的接口電路實施例,其中處理器可在兩時脈周期內(nèi)將最多至八個字節(jié)寫入接口電路的至少八個暫存器。在圖5與圖6所示的自一窄總線寫入資料至一寬總線的接口電路實施例中,在慢速端上的至少八個暫存器可儲存最多至八個字節(jié),并且在兩個時脈周期內(nèi)每次寫入四個字節(jié)至處理器。在上述任一情況下,處理器于數(shù)據(jù)處理過程中僅有兩個時脈周期需致能動作,然而在先前技藝中則必須花費處理器八個時脈周期以存取資料。若處理器可操作在寬總線的高速度,處理器便可將注意力指向其它處理步驟,并且能更有效率及更快速運作。
顯然地,依照上面實施例中的描述,本發(fā)明可能有許多的修正與差異。因此需要在其附加的權(quán)利要求項的范圍內(nèi)加以理解,除了上述詳細的描述外,本發(fā)明還可以廣泛地在其它的實施例中施行。上述僅為本發(fā)明的較佳實施例而已,并非用以限定本發(fā)明的申請專利范圍;凡其它未脫離本發(fā)明所揭示的精神下所完成的等效改變或修飾,均應(yīng)包含在下述申請專利范圍內(nèi)。
權(quán)利要求
1.一種介接不同寬度總線的接口電路,于不同寬度的總線間傳輸資料,其特征在于,該接口電路包含復(fù)數(shù)個字節(jié)暫存器;一第一控制邏輯電路,用以提供一第一選擇信號至復(fù)數(shù)個第一分配裝置,每一個該等第一分配裝置是控制該等字節(jié)暫存器其中之一與一第一總線上復(fù)數(shù)個字節(jié)位置其中之一之間的通訊;以及一第二控制邏輯電路,用以提供一第二選擇信號至一第二分配裝置,該第二分配裝置是控制該等字節(jié)暫存器其中之一與一第二總線之間的通訊,該第二總線相較于該第一總線是具有一較少數(shù)量字節(jié)的寬度。
2.如權(quán)利要求1項所述的介接不同寬度總線的接口電路,其特征在于,其中該第一控制邏輯電路是自一于該第一總線上操作的裝置接收一第一信號與一第二信號,該第一信號是表示一請求信號以存取該等字節(jié)暫存器內(nèi)的資料,該第二信號是表示被存取資料的字節(jié)數(shù)量。
3.如權(quán)利要求2項所述的介接不同寬度總線的接口電路,其特征在于,其中該第一控制邏輯電路是包含一計數(shù)器,該計數(shù)器是具有一計數(shù)信號,該計數(shù)信號表示何種字節(jié)暫存器與該第一總線上何種字節(jié)位置通信,并依該第二信號表示的量累加。
4.如權(quán)利要求1項所述的介接不同寬度總線的接口電路,其特征在于,其中該第二控制邏輯電路是自該第二總線上的一裝置接收一信號,該信號是表示一請求信號以存取該等字節(jié)暫存器內(nèi)的資料,且該第二控制邏輯電路是為一具有一計數(shù)信號的計數(shù)器,該計數(shù)信號是表示何種字節(jié)暫存器與該第二總線通信。
5.如權(quán)利要求1項所述的介接不同寬度總線的接口電路,其特征在于,其中還包含一狀態(tài)檢查模塊,用以自該第一控制邏輯電路接收一第一計數(shù)值以及自該第二控制邏輯電路接收一第二計數(shù)值,其中,為響應(yīng)該第一計數(shù)值與該第二計數(shù)值,該狀態(tài)檢查模塊是提供一停止信號或一繼續(xù)信號至各個該第一控制邏輯電路與該第二控制邏輯電路。
6.如權(quán)利要求5項所述的介接不同寬度總線的接口電路,其特征在于,其中該第一控制邏輯電路與該第二控制邏輯電路中一者是包含一寫入控制邏輯電路,該第一控制邏輯電路與該第二控制邏輯電路的另一種是包含一讀取控制邏輯電路。
7.如權(quán)利要求6項所述的介接不同寬度總線的接口電路,其特征在于,其中該讀取控制電路與該狀態(tài)檢查模塊的運作方式可為下列模式其中之一當該讀取控制邏輯電路已讀取由該寫入控制邏輯電路寫入該等字節(jié)暫存器內(nèi)的所有字節(jié)時,該狀態(tài)檢查模塊是提供該停止信號至該讀取控制邏輯電路;當該讀取控制邏輯電路尚未完全讀取該寫入控制邏輯電路寫入該等字節(jié)暫存器內(nèi)的所有字節(jié)時,該狀態(tài)檢查模塊提供該繼續(xù)信號至該讀取控制邏輯電路;當該寫入控制邏輯電路已寫入該等字節(jié)暫存器的數(shù)量,超過該讀取控制邏輯電路所讀取的該等字節(jié)暫存器但尚未覆蓋寫入資料時,該狀態(tài)檢查模塊是提供該停止信號至該寫入控制邏輯電路;以及當該寫入控制邏輯電路已寫入該等字節(jié)暫存器的數(shù)量,超過該讀取控制邏輯電路所讀取的該等字節(jié)暫存器但尚未覆蓋寫入資料時,該狀態(tài)檢查模塊是提供該停止信號至該寫入控制邏輯電路。
8.如權(quán)利要求1項所述的介接不同寬度總線的接口電路,其特征在于,其中各個該第一分配裝置是為一第一多工器用以將資料自該第一總線的該等字節(jié)位置其中之一寫入對應(yīng)的該字節(jié)暫存器,該字節(jié)位置是依據(jù)該第一選擇信號所選?。辉摰诙峙溲b置是為一第二多工器用以將資料自該等字節(jié)暫存器其中之一寫入該第二總線,該字節(jié)暫存器是依據(jù)該第二選擇信號所選取。
9.如權(quán)利要求1項所述的介接不同寬度總線的接口電路,其特征在于,其中該第二分配裝置是為一第二解多工器用以將資料自該第二總線寫入該等字節(jié)暫存器其中之一,該字節(jié)暫存器是依據(jù)該第二選擇信號所選??;每一該第一分配裝置是為一第一解多工器用以將資料自對應(yīng)的該字節(jié)暫存器寫入該第一總線的該等字節(jié)位置其中之一,該字節(jié)位置是依據(jù)該第一選擇信號所選取。
10.如權(quán)利要求1項所述的介接不同寬度總線的接口電路,其特征在于,其中各個該第一分配裝置是包含復(fù)數(shù)個暫存器選擇模塊,復(fù)數(shù)個數(shù)據(jù)大小選擇模塊,復(fù)數(shù)個與門模塊,以及一或門模塊;當一對應(yīng)的暫存器選擇模塊與對應(yīng)的資料大小選擇模塊提供致能信號至該等與門模塊之一時,該與門模塊是用以自該第一總線上的一對應(yīng)的字節(jié)位置傳輸數(shù)據(jù)至該或門模塊,該或門模塊是用以傳輸該數(shù)據(jù)至一對應(yīng)的字節(jié)暫存器。
11.如權(quán)利要求1項所述的介接不同寬度總線的接口電路,其特征在于,其中各個該第一分配裝置是包含復(fù)數(shù)個總線位置選擇模塊,復(fù)數(shù)個數(shù)據(jù)大小選擇模塊,以及復(fù)數(shù)個與門模塊;當一對應(yīng)的總線位置選擇模塊與一對應(yīng)的數(shù)據(jù)大小選擇模塊提供致能信號至該等與門模塊之一時,該與門模塊是用以自一對應(yīng)的字節(jié)暫存器的至該第一總線上該等字節(jié)位置其中的一傳輸數(shù)據(jù)。
12.一種介接不同寬度總線的方法,用以接口連接一第一總線與一第二總線,其特征在于,該方法包含在一時脈周期內(nèi),于一第一總線與一相對數(shù)量暫存器間傳輸復(fù)數(shù)個字節(jié)資料;以及于一第二總線與該等暫存器間一時脈周期傳輸一字節(jié)的該等字節(jié)數(shù)據(jù);其中,該第一總線較該第二總線具有一較大的寬度。
13.如權(quán)利要求12項所述介接不同寬度總線的方法,其特征在于,其中在該第一總線與該等暫存器間傳輸資料還包含接收一資料寫入信號與一資料大小信號;處理該資料寫入信號與該資料大小信號以提供選擇信號;以及依據(jù)該等選擇信號其中之一多任務(wù)處理自該第一總線上的復(fù)數(shù)個地址的資料字節(jié)至各個該等暫存器。
14.如權(quán)利要求13項所述介接不同寬度總線的方法,其特征在于,其中接收該資料寫入信號與該資料大小信號是包含自與該第一總線通訊的第一裝置接收該等信號;該資料寫入信號是表示該第一裝置的一請求信號以寫入資料至一數(shù)量的該等暫存器,該資料大小信號是表示該第一總線上何種字節(jié)是有效。
15.如權(quán)利要求14項所述介接不同寬度總線的方法,其特征在于,其中在該第一總線與該等暫存器間傳輸資料還包含接收一資料讀取信號與一資料大小信號;處理該資料讀取信號與該資料大小信號以提供選擇信號;以及依據(jù)該等選擇信號其中的一解多任務(wù)處理自各個該等暫存器的資料至該第一總線上的復(fù)數(shù)個位置其中之一。
16.如權(quán)利要求15項所述介接不同寬度總線的方法,其特征在于,其中接收該資料讀取信號與該資料大小信號是包含自與該第一總線通訊的一第一裝置接收該等信號;該資料讀取信號是表示該第一裝置的一請求信號以自一數(shù)量的該等暫存器讀取資料,該資料大小信號是表示該等暫存器何種字節(jié)是有效。
17.如權(quán)利要求12項所述介接不同寬度總線的方法,其特征在于,其中在該第二總線與該等暫存器間傳輸資料還包含接收一資料讀取信號;處理該資料讀取信號以提供一選擇信號;以及依據(jù)該選擇信號多任務(wù)處理該等暫存器的資料字節(jié)至該第二總線。
18.如權(quán)利要求17項所述介接不同寬度總線的方法,其特征在于,其中接收該資料讀取信號是包含自與該第二總線通信的一第二裝置接收該資料讀取信號;該資料讀取信號是表示該第二裝置的一請求信號以自一數(shù)量的該等暫存器讀取資料。
19.如權(quán)利要求12項所述介接不同寬度總線的方法,其特征在于,其中在該第二總線與該等暫存器間傳輸資料是更包含接收一資料寫入信號;處理該資料寫入信號以提供一選擇信號;以及依據(jù)該選擇信號解多任務(wù)處理資料自該第二總線至該等暫存器其中之一。
20.如權(quán)利要求19項所述介接不同寬度總線的方法,其特征在于,其中接收該資料寫入信號是包含自與該第二總線通信的一第二裝置接收該資料寫入信號;該資料寫入信號是表示該第二裝置的一請求信號以將資料寫入至該等暫存器其中之一。
全文摘要
本發(fā)明是揭露在不同寬度總線間傳遞資料的接口電路與方法。上述接口電路是包含一第一控制邏輯電路用以提供一選擇信號至復(fù)數(shù)個第一分配裝置。各該等第一分配裝置是分別控制其對應(yīng)的一字節(jié)暫存器和其對應(yīng)至一第一總線上的一字節(jié)位置兩者間的通訊。上述接口電路還包含一第二控制邏輯電路用以提供一選擇信號至一第二分配裝置。此第二分配裝置是控制該等字節(jié)暫存器與一第二總線間的通訊,其中第二總線相較于第一總線具有一較少字節(jié)的寬度。
文檔編號G06F13/38GK1825296SQ20061006809
公開日2006年8月30日 申請日期2006年3月27日 優(yōu)先權(quán)日2005年3月25日
發(fā)明者大衛(wèi)鮑德魯 申請人:威盛電子股份有限公司