專利名稱:數據傳送控制裝置和電子裝置的制作方法
技術領域:
本發明涉及數據傳送控制裝置和包含它的電子裝置,特別涉及在與總線連接的多個節點間進行以IEEE1394等為標準的數據傳送的數據傳送控制裝置和包含它的電子裝置。
近年來,稱之為IEEE1394的接口規格顯露頭角。該IEEE1394是將可適用于下一代多媒體的高速串行總線接口標準化的接口。若按照該IEEE1394,對于活動圖象等要求實時性的數據也能進行處理。此外,IEEE1394的總線不僅能與打印機、掃描儀、CD-RW驅動器、硬盤驅動器等計算機的外設連接,還能夠與攝像機、VTR、TV等家用電器連接。因此,可以期望能夠促進電子裝置數字化的飛快發展。
在該IEEE1394中,當電子裝置和總線重新連接、或將電子裝置從總線斷開、這樣使與總線連接的節點增減時,發生所謂總線復位。而且,當發生總線復位時,節點的布局信息被清除,然后,自動地再設定布局信息。即,在發生總線復位后,進行樹識別(路由節點的決定)和自己識別,然后,同步資源管理等管理節點被確定。接著開始通常的信息包傳送。
但是,可以判定,以該IEEE1394為標準的數據傳送裝置存在下面的課題。
即,若按照現在的IEEE1394標準,可以實現最大400Mbps的傳送速率。但是,實際上,由于存在處理時間的額外消耗,所以整個系統的實際傳送速度比起它來要低得多。即,在CPU上工作的固件(處理器)要準備傳送數據,要將傳送數據分割成組,要發送傳送開始命令等,需要大量時間進行處理,即使總線上傳送速度快,最終還是不能實現高速數據傳送。
特別,裝在外設中的CPU與裝在個人計算機等主機系統中的CPU相比,其處理能力低。因此,固件等的處理超時問題變得非常重要。因此,希望出現能夠有效地解決這樣的超時問題的技術。
本發明是鑒于上述技術課題而提出的,其目的在于提供一種數據傳送控制裝置及使用它的電子裝置,能減輕固件等的處理超時,用小規模硬件實現高速數據傳送。
為了解決上述課題,本發明是用來在與總線連接的多個節點之間傳送數據的數據傳送控制裝置,其特征在于包括傳送執行電路和協調電路,該傳送執行電路在處理裝置發送了指示利用硬件進行的連續信息包傳送的第1開始命令時,將傳送數據分割成一連串的信息包并執行連續傳送已分割的一連串信息包的處理;該協調電路在處理裝置發送了在利用上述傳送執行電路執行連續信息包的傳送處理的期間內指示信息包傳送的第2開始命令時,等待連續信息包傳送的1個事務處理或1個信息包傳送的結束,允許利用上述第2開始命令進行的信息包傳送。
若按照本發明,當處理裝置發送第1開始命令時,利用硬件將傳送數據分割成多個信息包并連續傳送。因此,處理裝置在發送第1開始命令之后,只要等待連續信息包傳送的結束即可,可以大大減輕處理裝置的處理負擔。
而且,一旦開始這樣的連續信息包的傳送,直到所有的信息包傳送完畢,必須要一定的等待時間。因此,等待連續信息包傳送的結束有可能對利用第2開始命令的信息包傳送不利。
若按照本發明,能夠在連續信息包傳送的過程中插入利用第2開始命令的信息包傳送,所以,不必等待連續信息包傳送完全結束,就能夠執行利用第2開始命令的信息包傳送。因此,能有效地防止上述不利情況的發生。
此外,本發明的特征在于,上述傳送執行電路包括當對方節點的存儲裝置存在頁表時取出對方節點的該頁表的頁表取出電路;當對方節點的存儲裝置不存在頁表時根據頁邊界信息生成虛擬頁表的頁表生成電路;將傳送數據分割成有效負載尺寸的信息包的有效負載分割電路;控制數據傳送的執行的傳送執行控制電路;至少一個生成請求向對方節點發送要求信息包的控制信息的控制信息生成電路。通過包含這樣的電路方框,利用硬件可以執行頁表的取出生成處理、信息包的有效分割處理、控制數據傳送的執行的處理和生成要求信息包的控制信息(標題等)的處理等。因此,能大大減輕處理裝置的負擔。
此外,本發明的特征在于上述協調電路接收在傳送開始要求時由上述傳送執行電路使其成為激活的第1開始信號、在傳送開始要求時由上述第2開始命令使其成為激活的第2開始信號和傳送結束時成為激活的結束信號,當在上述第1開始信號成為激活之后上述第2開始信號成為激活時,首先開始由上述第1開始信號控制的傳送處理,當上述結束信號成為激活之后,開始由上述第2開始信號控制的傳送處理。若這樣,當第1開始信號先于第2開始信號成為激活時,則執行由第1開始信號控制的傳送處理(事務處理、信息包傳送),在等待該傳送處理的結束后就能夠執行由第2開始信號控制的傳送處理。
此外,本發明的特征在于上述協調電路接收在傳送開始要求時由上述傳送執行電路使其成為激活的第1開始信號、在傳送開始要求時由上述第2開始命令使其成為激活的第2開始信號和傳送結束時成為激活的結束信號,當上述第1、第2開始信號同時成為激活時,由上述第2開始信號控制的傳送處理優先。若這樣,例如當從對方節點傳送過來要求信息包等時,對該要求信息包立即返回響應信息包。
此外,本發明的特征在于上述協調電路接收在傳送開始要求時由上述傳送執行電路使其成為激活的第1開始信號、在傳送開始要求時由上述第2開始命令使其成為激活的第2開始信號和傳送結束時成為激活的結束信號,當在上述第2開始信號成為激活之后上述第1開始信號成為激活時,首先開始由上述第2開始信號控制的傳送處理,當上述結束信號成為激活之后,開始由上述第1開始信號控制的傳送處理。若這樣,當第2開始信號先于第1開始信號成為激活時,則執行由第2開始信號控制的傳送處理(事務處理、信息包傳送),在等待該傳送處理的結束后就能夠執行由第1開始信號控制的傳送處理。
此外,本發明的特征在于包含具有存儲信息包的控制信息的控制信息區和存儲信息包的數據的數據區的可隨機訪問的信息包存儲裝置和發生向上述信息包存儲裝置寫入的地址的地址發生電路,上述信息包存儲裝置的上述控制信息區分離成第1控制信息區和由上述傳送執行電路寫入控制信息的第2控制信息區,上述地址發生電路根據上述協調電路的協調結果,切換發生第1控制信息區的地址或第2控制信息區的地址。若這樣,通過簡單的處理就能夠切換第1、第2控制信息區的地址。而且,通過可以進行這樣的地址切換,可以對第2控制信息區連續寫入由傳送執行電路生成的控制信息,可以謀求由硬件實現控制信息的生成、寫入處理的簡單化。
此外,本發明的特征在于包含可隨機訪問的信息包存儲裝置,上述信息包存儲裝置具有存儲信息包的控制信息的控制信息區和存儲信息包的數據的數據區,上述信息包存儲裝置的上述數據區分離成存儲第1層用的第1數據的第1數據區和存儲成為上述傳送執行電路的連續信息包傳送的對象的第2層用的第2數據的第2數據區。若按照本發明,信息包控制信息(例如標題、腳注)存儲在控制信息區,信息包的第1數據(例如事務處理層用的數據)存儲在第1數據區,信息包的第2數據(例如應用層用的數據)存儲在第2數據區。若這樣,可以從第2數據區連續讀出第2數據再傳送到第2層。因此,可以大大地實現數據傳送的高速化。
再有,在本發明中,上述第1數據最好是上述第1層協議使用的命令數據,上述第2數據最好是上述應用層使用的數據。
此外,本發明當把使事務處理開始的要求信息包向對方節點發送時,在包含在上述要求信息包中的事務處理識別信息中包含指示信息,用來指示在接收到對方節點的響應信息包時進行的處理,當接收到對方節點的響應信息包時,根據響應信息包的事務處理識別信息包含的上述指示信息,將響應信息包控制信息、第1、第2數據分別寫入上述控制信息區和上述第1、第2數據區。若這樣,在從響應節點返送響應信息包時,與固件等處理裝置無關,自動地將響應信息包的控制信息、第1、第2數據寫入由指示信息指示的區域。因此,能夠大大減輕處理裝置的處理負擔。
此外,在本發明中,最好以IEEE1394規格為標準進行數據傳送。
此外,與本發明有關的電子裝置的特征在于,包括上述任何一種數據傳送控制裝置;對經上述數據傳送裝置和總線從其它節點接收來的數據進行給定的處理的裝置;以及用于對已處理過的數據進行輸出或存儲的裝置。此外,與本發明有關的電子裝置的特征還在于,包括上述任何一種數據傳送控制裝置;對經上述數據傳送裝置和總線傳送到其它節點的數據進行給定的處理的裝置;以及取入已處理過的數據的裝置。
若按照本發明,在電子裝置中對從其它節點傳送來的數據進行輸出或存儲的處理,或者在電子裝置中把取入的數據傳送到其它節點的處理,都可以實現高速化。此外,若按照本發明,可以使數據傳送裝置小型化,同時,能夠減輕控制數據傳送的固件等的處理負擔,所以,可以謀求電子裝置的低成本和小型化等。
圖1是表示IEEE1394的層結構的圖。
圖2是用來說明SBP-2的圖。
圖3是用來說明SBP-2的數據傳送處理的原理圖。
圖4是用來說明將數據(流)從目標向起始端傳送時的命令處理的圖。
圖5是用來說明將數據(流)從起始端向目標傳送時的命令處理的圖。
圖6A、圖6B、圖6C是用來說明頁表的圖。
圖7是表示本實施例的數據傳送控制裝置的構成例的圖。
圖8是用來說明RAM(信息包存儲裝置)的分離(分割)方法的圖。
圖9是用來說明本實施例的數據傳送方法的圖。
圖10是表示SBP-2的核心(傳送執行電路)的構成例的圖。
圖11是用來說明主控制電路的動作的流程圖。
圖12是用來說明頁表的生成方法的圖。
圖13是用來說明信息包的有效負載分割方法的14是用來說明傳送執行控制電路的動作的流程圖。
圖15是用來說明有效負載分割電路的動作的流程圖。
圖16是用來說明發送標題生成電路、事物處理控制電路的動作的流程圖。
圖17是用來說明HW傳送和FW傳送的協調方法的圖。
圖18是表示包含本實施例的協調電路的DMAC的構成例的圖。
圖19A、圖19B是用來說明協調電路的動作的狀態遷移圖。
圖20是用來說明協調電路的動作的狀態遷移圖。
圖21是HWStart先于FWStart有效時的時序波形圖。
圖22是HWStart和FWStart同時有效時的時序波形圖。
圖23是FWStart先于HWStart有效時的時序波形圖。
圖24是用來說明根據從協調電路來的HWDMARun切換發生HW用標題區和通常的標題區的地址的方法的圖。
圖25A、圖25B是用來說明將數據區分離成ORB區和數據流區的方法的圖。
圖26是表示對方節點和應用層的設備之間的數據流傳送的樣子的圖。
圖27A、圖27B是用來說明事務處理標簽的圖。
圖28是用來說明利用事務處理標簽將信息包的標題和數據(ORB、數據流)寫入RAM的各區域的方法的圖。
圖29A、圖29B、圖29C是各種電子裝置的內部方框圖的例子。
圖30A、圖30B、圖30C是各種電子裝置的外觀圖的例子。
下面,參照附圖詳細說明本發明的最佳的實施例。
1、IEEE1394首先,簡單說明IEEE1394。
1.1概要在IEEE1394(IEEE1394-1995、P1394.a)中,可以實現100~400Mbps的高速數據傳送(在P1394.b中是800~3200Mbps)。此外,可以允許傳送速度不同的節點與總線連接。
各節點連接成樹狀,1根總線最多可以連接63個節點。再有,若使用總線橋,可以連接大約64000個節點。
在IEEE1394中,作為信息包傳送方式準備有非同步傳送和同步傳送。這里,非同步傳送是適合要求可靠性高的數據傳送的傳送方式,同步傳送是適合要求實時性好的活動圖象和聲音等的數據傳送的傳送方式。
1.2層結構圖1示出IEEE1394的層結構(協議構成)。
IEEE1394的協議由事務處理層,連接層和物理層構成。此外,串行總線管理進行事務處理層,連接層和物理層的監視和控制之類的工作,并提供用于進行節點的控制和總線的資源管理的各種功能。
事務處理層向高位層提供事務處理單位的接口(服務),并通過下層的連接層提供的接口執行讀處理、寫處理和鎖定處理等事務處理。
這里,在讀事務處理中,數據從響應節點傳送到要求節點。另一方面,在寫事務處理中,數據從要求節點傳送到響應節點。此外,在鎖定事務處理中,數據從要求節點傳送到響應節點,響應節點對該數據進行處理后返送到要求節點。
連接層提供用來尋址、數據檢驗、信息包收發的數據成幀和同步傳送用的周期控制等。
物理層提供由連接層使用的邏輯信號到電信號的變換、總線的協調和總線的物理接口。
1.3 SBP-2如圖2所示,作為包含IEEE1394的事務處理層的部分功能的上位的協議,提出了一種稱之為SBP-2(Serial Bus Protocol-2)的協議。
這里,SBP-2是為了使SCSI的命令集能夠在IEEE1394的協議上使用而提出的協議。若使用該SBP-2,只要對現有的SCSI規格的電子裝置使用的SCSI的命令集作很小的變動,就能夠用于IEEE1394規格的電子裝置。因此,可以使電子裝置的設計和開發變得容易。此外,因不僅對SCSI的命令、對設備固有的命令也可以壓縮后進行利用,故通用性很強。
在圖3所示的SBP-2中,首先,使用由起始端(例如個人計算機)作成的注冊ORB(Operation Request Block)進行注冊處理(步驟T1)。其次,使用偽ORB進行讀取工具初始化處理(步驟T2)。而且,使用標準命令ORB進行命令處理(步驟T3),最后,使用注銷ORB進行注銷處理(步驟T4)。
在步驟T3的命令處理中,如圖4A1所示那樣,起始端傳送寫要求信息包(發送寫要求事務),與目標的門鈴寄存器連接。這樣,如A2所示,目標傳送讀要求信息包,起始端返回對應的讀響應信息包。因此,起始端作成的ORB(標準命令ORB)從目標的數據緩存中取出。而且,目標解析包含在取出的ORB中的命令。
接下來,當包含在ORB中的命令是SCSI的讀命令時,如A3所示,目標向起始端傳送一連串的寫要求信息包。由此,例如,從目標的媒體(CD-RW)讀出的數據(流)傳送到起始端的數據緩存中。
另一方面,當包含在ORB中的命令是SCSI的寫命令時,如圖5的B1所示,目標向起始端傳送讀要求信息包,起始端返送對應的讀響應信息包。由此,存儲在起始端的數據緩存中的數據(流)傳送到目標,并寫入目標的媒體中(當目標是打印機時則被打印出來)。
若按照該SBP-2,目標在適當的時候能夠傳送要求信息包(發送事務),收發數據。因此,因起始端和目標不必同步動作,故能夠提高數據的傳送效率。
再有,作為IEEE1394的高位協議,除SBP-2之外,還提出了稱之為FCP(Function Control Protocol功能控制協議)等協議。
當在目標和起始端之間傳送數據時,如圖6A所示,在起始端(對方節點)的數據緩存(存儲裝置)中,有存在頁表和不存在頁表的情況。
而且,當存在頁表時,如圖6B所示,在起始端作成的ORB中,包含該頁表的地址和元素數。而且,傳送數據的地址(讀出地址、寫入地址)使用該頁表間接地指定地址。
另一方面,當不存在頁表時,如圖6C所示,在ORB中,包含地址和數據長度,傳送數據的地址是直接指定的地址。
2.整體構成其次,使用圖7說明本實施例的數據傳送控制裝置的整體構成的例子。
在圖7中,PHY接口10是進行與PHY設備(物理層的設備)接口的電路。
連接核心20(連接裝置)是利用硬件實現連接層的協議和部分事務層的協議的一部分電路,提高用于節點間的信息包傳送的各種服務。寄存器22是用來控制連接核心20的寄存器。
FIFO(Asynchronous Transmission Fifo)30、FIFO(IsochronousTransmission Fifo)32、FIFO(Reception Fifo)34分別是非同步發送用、同步發送用、接收用的FIFO,例如,由寄存器或半導體存儲器等硬件構成。在本實施例中,這些FIFO3O、32、34的級數非常少。例如,1個FIFO的級數最好在3級以下,理想的是2級以下。
DMAC40(讀出裝置)、DMAC42(讀出裝置)、DMAC44(寫入裝置)分別是ATF用、ITF用和RF用的DMA控制器。通過使用這些DMAC40、42、44,可以不通過CPU66而在RAM80和連接核心20之間進行數據傳送。再有,寄存器46是用來控制DMAC40、42、44等的寄存器。
接口50是進行與應用層的設備(例如打印機的進行打印處理的設備)接口的電路。
FIFO(PF)52是用于應用層的設備之間的數據傳送的FIFO,DMAC54是PF用的DMA控制器。寄存器56是控制接口50和DMAC54的寄存器。
SBP-2核心84(傳送執行電路)是利用硬件實現部分SBP-2的協議和部分事務層的協議的電路。利用該SBP-2核心84的功能,可以將傳送的數據分割成一連串的信息包,再對已分割的一連串的信息包進行連續傳送處理。再有,寄存器88是用于控制SBP-2核心84的寄存器,DMAC(SBP-2用)86是SBP-2核心84用的DMA控制器。
RAM區管理電路300是用來管理RAM80的各區域的電路。RAM區管理電路300在RAM80的各區域滿或空時,使用各種滿信號和空信號去控制DMAC40、42、44、54、86。
CPU接口60是進行與控制數據傳送控制裝置的CPU66(處理裝置)的接口的電路。CPU接口60包含地址譯碼器62、數據同步電路63和中斷控制器64。時鐘控制電路68是控制本實施例使用的時鐘的電路,輸入從PHY設備(PHY芯片)送來的SCLK(數據傳送控制裝置的系統時鐘)、HCLK(CPU66的工作時鐘)。
緩存管理器70是管理與RAM80接口的電路。緩存管理器70包含用于緩存管理器的控制的寄存器72、協調總線與RAM80的連接的協調電路74和生成各種控制信號的序列發生器76。
RAM80作為可隨機訪問的信息包存儲裝置期作用,其功能例如由SRAM、SDRAM、DRAM等來實現。
再有,特別希望將RAM80裝在本實施例的數據傳送控制裝置內,但也可以將其一部分或全部裝在外面。
圖8示出RAM80的存儲器圖的一例。如圖8所示,在本實施例中,將RAM80分離成標題區(AR2、AR3、AR4、AR6)和數據區(AR5、AR7、AR8、AR9)。而且,信息包的標題(廣義地說是控制信息)存儲在標題區,信息包的數據(ORB、數據流)存儲在數據區。
此外,在本實施例中,如圖8所示,RAM80的數據區(AR5、AR7、AR8、AR9)分離成ORB區(AR5、AR7)和數據流區(AR8、AR9)。
進而,在本實施例中,RAM80分離成接收區(AR2、AR4、AR5、AR9)和發送區(AR3、AR6、AR7、AR8)。
再有,ORB(第1層用的第1數據)如上所述是SBP-2用的數據。另一方面,數據流(第1層的上面的第2層用的第2數據)是應用層用的數據(打印機的打印數據、CD-RW的讀出、寫入數據、掃描儀的輸入圖象數據)此外,AR1、AR2、AR3所示HW(硬件)用頁表區、HW用的接收標題區和HW用的發送標題區是圖7所示的SBP-2核心84寫入或讀出頁表或接收標題或發送標題用的的區域。
再有,在圖8中,AR4、AR5、AR8、AR9所示的區域是所謂環形緩沖器的結構。
圖7的總線90(或總線92、94)是與應用層的設備連接的總線(第1總線)。總線95(或總線96)是用來控制數據傳送控制裝置或讀寫數據的總線,與控制數據傳送控制裝置的設備(例如CPU)進行電連接(第2總線)。總線100(或總線102、104、105、106、107、108、109)是與物理層的設備(PHY設備)進行電連接的總線(第3總線)。此外,總線110是與作為克隨機訪問的存儲裝置的RAM80進行電連接的總線(第4總線)。總線99是用來讀寫用于SBP-2核心84利用硬件實現SBP-2的標題信息和頁表的總線(第5總線)。
緩存管理器70的協調電路74對從DMAC40、42、44、CPU接口60和DMAC86、54來的總線訪問請求進行協調。而且,根據該協調結果分別確定總線105、107、109、96、99、94中任何一根總線與RAM80的總線110之間的數據通路(確定第1、第2、第3、第5總線中的任何一根總線與第4總線之間的數據通路)。
本實施例的一個特征在于設置存儲信息包的可隨機訪問的RAM80,同時設置相互分離的總線90、95、99、100和使這些總線與RAM80的總線110連接的協調電路74。
如圖9所示,通過這樣一來,能夠將數據傳送控制裝置120與應用層的設備124之間的總線90、CPU總線96和數據傳送控制裝置120與RAM80之間的總線110分離開。此外,能夠占用總線90進行數據傳送控制裝置120和應用層的設備124之間的數據傳送。例如,當組裝了數據傳送控制裝置120的電子裝置是打印機時,可以占用總線90傳送打印數據。結果,可以減輕CPU66的處理負擔,能夠提高系統整體的實際傳送速度。此外,還可以使用便宜的CPU作為CPU66,同時,不必使用高速總線來作為CPU總線96。因此,可以謀求電子裝置的低成本和小型化。
3.SBP-2核心(傳送執行電路)的構成圖10表示圖7的SBP-2核心84的構成例。SBP-2核心84是用來將傳送的數據自動分割成一連串的信息包并連續傳送已分割的一連串信息包的電路,利用硬件主要執行由圖4的A3和圖5的B1所示的信息包的傳送。
主控制電路200是用來控制整個SBP-2核心84的電路,包含寄存器202、204、206、208。
這里,寄存器202、204、206分別是用于固件(CPU)發送數據傳送(硬件SBP-2的處理)的開始命令、暫停命令和重新開始(resume)命令的寄存器。即,當固件向寄存器202寫入1時,將傳送數據分割成一連串的信息包并開始連續傳送處理。而且,在該傳送處理中,當固件向寄存器204寫入1時,數據傳送處理暫停,向寄存器206寫入1時,重新開始暫停的數據傳送處理。
寄存器208是用于設定頁表存在或不存在的寄存器。即,固件解析從起始端來的ORB,當判斷起始端的數據緩存中不存在頁表時,向寄存器208寫入1。另一方面,當判斷存在時(圖6A的情況),向寄存器208寫入0。
頁表取出電路210是當起始端(對方節點)的數據緩存(存儲裝置)中存在頁表時進行從起始端取出該頁表的處理的電路。更具體一點說,頁表取出電路210向發送標題生成電路260指示取出頁表,當取出結束時,向頁表生成電路220指示更新頁表地址和頁表尺寸。
頁表生成電路220是當起始端的數據緩存中不存在頁表時生成虛擬頁表的電路。更具體一點說,當由主控制電路200指示生成頁表時,便按照規定的算法生成頁表。而且,進行用來經元素保存電路230或緩存接口290將生成的頁表寫入RAM的HW用頁表區的處理。
再有,如前所述,頁表存在與否是根據寄存器208的設定值來判斷的。此外,由頁表取出電路210和頁表生成電路220取出或生成的頁表存儲在RAM的HW用頁表區(圖8的AR1)。
在頁表生成電路220包含的寄存器222中,設定有由起始端來的ORB指定的頁邊界尺寸。此外,當頁表存在時,在寄存器224、226中,設定有由ORB指定的頁表地址和頁表尺寸(元素數)(參照圖6B)。另一方面,當不存在頁表時,則設定傳送數據的開頭地址和數據長度(參照圖6C)。此外,元素計數器228在生成頁表時進行對頁表的元素數(元素指針)進行計數的處理。
元素保存電路230是保存作為SBP-2的處理對象的頁表元素的信息的電路,包括保存頁表元素的段長度的寄存器232和保存段偏移地址的寄存器234。
傳送執行控制電路240是控制執行SBP-2核心的數據傳送(數據流傳送)的電路,包括寄存器242和244。而且,寄存器242表示當前處理中的頁表元素的序號。此外,在244寄存器中,由固件設定開始數據傳送的頁表元素的序號。因此,固件能夠從任意頁表元素開始進行數據傳送。
有效負載分割電路250進行將傳送的數據分割成有效負載尺寸的信息包的處理。在有效負載分割電路250包含的寄存器252中,設定由0RB指定的最大有效負載尺寸。此外,寄存器254表示實際的有效負載尺寸。有效負載分割電路250根據從RAM的HW頁表區(圖8的AR1)讀出并保存在寄存器232中的頁表元素的段長度和寄存器252中設定的最大有效負載尺寸進行有效負載分割處理。
發送標題生成電路260根據由固件設定的速度代碼和目的地ID等進行生成圖5的B1的各要求信息包的標題的處理。而且,將生成的標題存儲在RAM的HW用發送標題區(圖8的AR3)。這樣,在本實施例中,因由硬件自動生成連續傳送的一連串的要求信息包的標題,故能夠大大地減輕固件的處理負擔。
事務處理控制電路270從連接核心等外部電路方框接收錯誤信息和狀態信息,并進行用于執行事務處理的各種處理。而且,當事務處理執行完畢,使事務處理結束信號TComp有效,并通知頁表取出電路210和有效負載分割電路250。這樣,本實施例的SBP-2核心不以信息包為單位,而以事項為單位來管理數據傳送處理。
分割定時器280在事務處理開始時裝載分割時間并開始遞減計數。而且,若計數值變成0,則通知事務處理控制電路270已超時。
緩存接口290是起圖7的緩存管理器70和接口作用的電路。SBP-2核心84的各方框經該緩存接口290對緩存管理器70要求向RAM80進行訪問。
3.1主控制電路其次,使用圖11的流程圖說明主控制電路200的動作。
首先,判斷是否使用已存儲在HW用頁表區中的頁表(步驟S1),若使用,則轉到步驟S5,若不使用,則轉到步驟步驟S2。設定是否使用已存儲在HW用頁表區中的頁表通過固件向規定的寄存器寫入規定的設定值來實現。
其次,根據圖10的寄存器208的設定值判斷起始端的數據緩存是否存在頁表(步驟S2)。而且,當存在時,向頁表取出電路210指示開始進行頁表取出的處理(步驟S3)。另一方面,當不存在時,向頁表取出電路220指示開始進行頁表生成的處理(步驟S4)。
而且,當頁表的取出或生成處理完成時,向傳送執行控制電路240指示開始進行傳送執行處理(流式數據任務)(步驟S5)。
再有,本實施例的頁表生成電路220通過以下說明的方法生成頁表。
例如,如圖12所示,傳送數據的開頭地址SA在頁邊界PB0、PB1之間,結束地址EA在頁邊界PB4、PB5之間。這時,頁表生成電路220生成在頁邊界PB1、PB4之間(第K和第L頁的邊界之間)的頁表元素數為1(廣義地說是規定數)的虛擬頁表。
更具體一點說,生成3頁的頁表,在開頭地址SA和頁邊界PB1之間為X種頁表元素(第1頁表元素),在頁邊界PB1和PB4之間為Y種頁表元素(第2頁表元素),在頁邊界PB4和結束地址EA之間為Z種頁表元素(第3頁表元素)。
只是,當傳送數據的開頭地址SA在頁邊界PB1上時,不生成X種頁表元素,而變成2頁的頁表。此外,當傳送數據的結束地址EA在頁邊界PB4(第L頁邊界)上時,不生成Z種頁表元素,而變成2頁的頁表。進而,當傳送數據的開頭地址SA在頁邊界PB0和PB1之間、結束地址EA在頁邊界PB0和PB1之間或PB1上時,生成1頁的頁表,在SA、EA之間變成X種的頁表元素。
此外,在本實施例中,圖10的有效負載分割電路250把傳送數據分割成最大有效負載尺寸的信息包,該信息包的最大有效負載尺寸是頁邊界尺寸的約數。即,在圖13中,分割成最大有效負載尺寸MaxPLS是頁邊界尺寸PBS的約數的信息包。
這樣,若使最大有效負載尺寸MaxPLS是頁邊界尺寸PBS的約數,例如,如圖13的C1和C2所示那樣,在頁表邊界PB2和PB3中,信息包的有效負載不跨過頁邊界。因此,即使象本實施例那樣生成PB1、PB4間的頁表元素數為1的頁表時,也能夠遵守不跨過頁邊界的制約來進行數據傳送。
3.2傳送執行(流式任務)控制電路其次,使用圖14的流程圖說明傳送執行控制電路240的動作。
首先,在圖10的當前元素序號的寄存器242中裝載寄存器244的開始元素序號(步驟S40)。接著,進行從RAM的HW用頁表區讀出當前元素序號的頁表元素的處理(步驟S41)。更具體一點說,傳送執行控制電路240向緩存接口290指示讀出作為處理對象的頁表元素。這樣一來,緩存接口290從RAM的HW用頁表區讀出作為處理對象的頁表元素,并將頁表元素的段長度寫入寄存器232,將段偏移地址寫入寄存器234。
其次,向有效負載分割電路250指示開始有效負載分割處理(步驟S42)。
其次,判斷現在的頁表元素的處理是否結束(步驟S43),若未結束時便返回步驟S42。另一方面,若已結束時,則判斷所有的頁表元素處理是否結束(步驟S44),若未結束時,使當前元素序號+1(步驟S45)并返回步驟S41。
再有,所有的頁表元素處理是否結束是通過把寄存器226的頁表尺寸除8得到的元素數與當前元素序號進行比較來判斷的。
3.3有效負載分割電路其次,使用圖15的流程圖說明有效負載分割電路250的動作。有效負載分割電路250是進行把傳送數據分割成圖13所示的有效負載尺寸的信息包的處理的電路。
首先,判斷存儲在圖10的寄存器232的頁表元素的段長度的剩余字節數是否在最大有效負載尺寸之上(步驟S51)。接著,當剩余字節數在最大有效負載尺寸之上時,將信息包的有效負載尺寸設定成最大有效負載尺寸(步驟S52)。另一方面,如圖13的C3和C4所示那樣,當剩余字節數小于最大有效負載尺寸時,將信息包的有效負載尺寸設定成剩余字節數(步驟S53)。
有效負載尺寸設定后,向發送標題生成電路260指示開始事務處理的執行處理(生成發送標題)(步驟S54)。接著,當利用從事務處理控制電路270來的信號TComp通知事務處理完畢時,向元素保存電路230指示更新存儲在寄存器232、234中的頁表元素的段長度(剩余字節數)和段偏移地址(開頭地址)(步驟S55)。
其次,根據從主控制電路200來的信號Pause判斷是否暫停處理(步驟S56)。即,當信號Pause有效時暫停處理。當已暫停時,以信號Pause變成無效為條件,重新開始處理(步驟S57)。
3.4發送標題生成電路、事務處理控制電路其次,使用圖16的流程圖說明發送標題生成電路260和事務處理控制電路270的動作。
首先,生成要求信息包的標題,并寫入HW用發送標題區(圖8的AR3)(步驟S61)。更具體一點說,當象圖4的A3那樣向起始端發送數據時,將寫要求(數據塊寫要求)信息包的標題寫入HW用發送標題區。另一方面,當象圖5的B1那樣從起始端發送數據或取出頁表時,將讀要求信息包的標題寫入HW用發送標題區。
其次,激活傳送開始信號(HWStart)后指示開始傳送(步驟S62),等待接收從起始端來的ACK(步驟S63)。
其次,當發送信息包是讀要求信息包時,判斷ACK是否掛起(步驟S65),當ACK不是掛起時,則轉到步驟S72使其變成錯誤暫停狀態。另一方面,當ACK掛起時,指示起動分割定時器(步驟S66),等待接收響應信息包(步驟S67)。
其次,判斷響應信息包的接收是否理想(步驟S68),當是DCE時,再次等待接收響應數據,等接收理想時,便轉到步驟S69,其余的情況則轉到步驟S72使其變成錯誤暫停狀態。接著,當轉到步驟S69時指示分割定時器停止工作,激活信號TComp并更新傳送數據的指針(步驟S70)。
另一方面,當發送信息包是寫要求信息包時,首先,判斷ACK是否掛起(步驟S71)。接著,當ACK掛起時,則轉到步驟S66,當ACK執行時,則轉到步驟S70,其余情況則轉到步驟S72使其變成錯誤暫停狀態。
再有,當轉到步驟S72使其變成錯誤暫停狀態時,以處理重新開始為條件,轉到步驟S62(步驟S73)。即,這時,再利用已寫入HW用發送標題區的發送標題,重新開始傳送。
4.HW(硬件)傳送和FW(固件)傳送的協調若象上述那樣按照本實施例,圖4的A3和圖5的B1所示的連續信息包傳送由硬件自動執行。更具體一點說,首先,固件發送指示連續傳送的HW傳送開始命令(第1開始命令)(向圖10的寄存器202寫入1)。這樣,SBP-2核心利用硬件自動執行頁表的取出或生成處理、有效負載分割處理、發送標題的生成處理、各信息包的傳送開始處理和錯誤處理等。因此,頁表部分的傳送數據(由ORB的讀命令和寫命令指定的數據量的傳送數據)被分割成一連串的信息包自動進行傳送。而且,當所有的信息包傳送完畢時,使用中斷等將這一情況通知固件。因此,固件在發送HW傳送開始命令后,只要等待連續信息包傳送的結束即可。結果,可以大大減輕固件的處理負擔,可以大幅度提高數據傳送控制裝置的實際傳送速度。
除了指示這樣的連續信息包傳送(HW傳送)的HW傳送開始命令之外,還有固件發送指示單一信息包傳送的FW傳送開始命令(第2開始命令)的情況。例如,當從對方節點傳送過來要求信息包時,有必要向對方節點傳送與該要求信息包對應的響應信息包。這時,固件發送用于傳送該響應信息包的FW傳送開始命令。而且,響應信息包必須在對方節點的分割定時器變成超時之前傳送。因此,固件在接收到要求信息包之后要盡可能快地發送FW傳送開始命令并傳送響應信息包。
但是,一旦開始HW傳送(連續信息包傳送),直到所有的信息包傳送結束,必須等待一定的時間。特別當傳送數據的規模大時,該等待時間非常長。因此,等待HW傳送的結束有可能產生使對方節點的分割定時器超時等不好的情況。
因此,在本實施例中,當在HW傳送期間發送FW傳送開始命令時,進行協調,等待HW傳送完1個事務處理(或1個信息包傳送),就允許FW傳送(由FW傳送開始命令指示的信息包傳送)。
例如,在圖17中,在E1時發送HW傳送開始命令,由此開始E2所示的HW傳送。這時,若象E3那樣發送FW傳送開始命令,則如E4所示那樣等待事務處理4結束后進行FW傳送的1個信息包的傳送。而且,當FW傳送結束后則如E5所示那樣重新開始HW傳送。
這樣一來,可以在HW傳送的過程中進行FW傳送的中斷,不必等待HW傳送結束就能夠執行FW傳送。因此,能夠防止因FW傳送需要等待而產生的使對方節點的分割定時器超時等不好的情況。
此外,如圖17的E4所示那樣,因等待1個事務處理結束才進行FW傳送,故不會產生在HW傳送時出現傳送錯誤等不良現象。
進而,在從1個事務處理結束后到下一個1個事務處理開始的期間,下層的連接核心和PHY設備不被SBP-2核心占用。因此,若在該期間進行FW傳送的中斷處理,則可以利用沒有被SBP-2占用的連接核心和PHY設備來傳送信息包,這是求之不得的。
再有,以上說明了等待1個事務處理(要求信息包和與該要求信息包對應的響應信息包)結束后進行FW傳送的情況,但也可以在等待1個信息包傳送結束之后進行FW傳送。
4.1協調電路的構成和動作下面,說明具體本實施例的協調電路的構成和動作。
圖18示出圖7的DMAC40的詳細構成例。
在圖18中,DMAC40包括協調電路400、訪問要求發生電路410、地址發生電路420和訪問要求執行電路430。
這里,協調電路400是協調HW傳送和FW傳送的電路。更具體一點說,當在HW傳送的執行中發送FW傳送開始命令時,進行協調,要等待HW傳送中的1個事務處理(或1個信息包傳送)結束后,才允許進行由FW傳送命令指示的信息包傳送。
例如,當CPU(固件)發送HW傳送開始命令(第1開始命令)并將1寫入寄存器202時,開始由SBP-2核心84(傳送執行電路)執行的HW傳送。接著,如圖16的步驟S63所示,SBP-2核心84每當要求開始各信息包(事務)的傳送時使HWStart(第1開始信號)置1(有效)。
另一方面,當CPU發送FW傳送開始命令(第2開始命令)并將1寫入寄存器440時,要求開始FW傳送,FWStart(第2開始信號)有效。
接著,協調電路400接收這些HWStart、FWStart和從連接核心20來的Comp、NotComp、SelfID,進行協調處理。
訪問要求發生電路410接收從緩存管理器70來的作為讀出確認的RACK和從FIFO30來的FULL,向緩存管理器70輸出作為讀出要求的RREQ。
地址發生電路420接收從協調電路400來的HWBMARun、RealGo和從緩存管理器70來的RDATA等,發生作為RAM80的讀出地址的RADR。
訪問要求執行電路430接收從協調電路400來的RealGo、從FIFO30來的EMPTY和從連接核心20來的各種控制信號,進行執行各種訪問要求的處理。
圖19A、圖19B、圖20示出協調電路400的狀態遷移圖。
在圖19A中,在狀態S00,HWRequested=0。而且,在該狀態下,當HWStart=1且SelfID(自己識別期間信號)=0時,在下一個時鐘周期轉到S01,HWRequested=1。即,在不是自己識別的期間中若HWStart=1時,表示要求HW傳送的信號HWRequested變成1。
此外,在圖19B中,在狀態S10,FWRequested=0。而且,在該狀態下,當FWStart=1且SelfID=0時,在下一個時鐘周期轉到S11,FWRequested=1。即,在不是自己識別的期間若FWStart=1時,表示要求FW傳送的信號FWRequested變成1。
在圖20中,在狀態S20,HWGo、FWGo、HWDMARun、FWDMARun、HWComp、FWComp、HWNotComp、FWNotComp變成0。
在狀態S20中,當HWRequested=1(圖19A的狀態S01)且HWRequested=0時,在下一個時鐘周期轉到S21,使HW傳送的開始信號HWGo=1。而且在下一個時鐘周期HWGo=0、HWDMARun=1(狀態S22)。
其次,當從連接核心20來的傳送結束信號Comp=1時,在下一個時鐘周期HWComp=1、HWDMARun=0(狀態S23)。另一方面,當表示傳送沒有正確完成的信號NotComp=1時,在下一個時鐘周期HWNotComp=1,HWDMARun=0(狀態S24)。
另一方面,在狀態S20中,當FWRequested=1(圖19B的狀態S11)時,在下一個時鐘周期轉到狀態S25,作為開始FW傳送的信號FWGo=1。而且,在下一個時鐘周期FWGo=0、FWDMARun=1(狀態S26)。
其次,當Comp=1時,在下一個時鐘周期FWComp=1、FWDMARun=0(狀態S27)。第一方面,當NotComp=1時,在下一個時鐘周期FWNotComp=1、FWDMARun=0(狀態S28)。
下面,使用圖21、圖22、圖23的時序波形圖說明協調電路400的動作。
圖21是HWStart(第1開始信號)先于FWStart(第2開始信號)有效時的時序波形圖。
如圖21的F1所示那樣,當從SBP-2核心84來的HWStart為1時,如F2所示那樣HWRequsted=1(圖19A的狀態S01)。這樣,如F3所示那樣,HWGo=1(圖20的狀態S21),如F4所示那樣,作為向地址發生電路420、訪問要求執行電路430輸出的RealGo=1。因此,開始由地址發生電路420、訪問要求執行電路430執行的HW傳送處理。
當HWGo=1時,如F5所示那樣,作為向地址發生電路420輸出的HWDMARun=1(狀態S22)。而且,當事務處理(信息包傳送)結束且如F6所示從連接核心20來的結束信號Comp=1時,則如F7、F8所示那樣,HWComp=1、HWDMARun=0(狀態S23)。而且,如圖9所示,返回HWRequest=0(圖19B的狀態S00)。
另一方面,當在HW傳送過程中發送FW傳送開始命令時,即,如F10所示那樣,在HWStart=1之后Comp=1之前FWStart=1時,如F11所示那樣,FWRequsted=1(圖19B的狀態S11)。但是,這時,如F12所示,FWGo不立即變成1。而且,如F7所示那樣,當HWComp=1之后,如F13所示,FWGo=1(狀態S25),如F14所示那樣,RealGo=1。
當FWGo=1時,如F16所示那樣,作為向寄存器440輸出的FWDMARun=1。因此,直到FWDMARun=0之前,CPU向寄存器440的寫入被屏蔽。
接著,當如F17所示結束信號Comp=1時,如F1、F19所示那樣,FWComp=1,FWDMARun=0(狀態S27)。其次,如F20所示,返回FWRequsted=0(圖19B的狀態S10)。接著,如F21所示那樣重新開始HW傳送。
如上所述,在本實施例中,當在HWStart=1之后FWStart=1時,先開始HW傳送,在HW傳送完1個事務處理后,開始FW傳送。接著,當FW傳送結時就重新開始HW傳送。
圖22是HWStart和FWStart同時有效時的時序波形圖。
如圖22的G1、G2所示,當HWStart和FWStart同時為1時,象G3所示那樣優先進行FW傳送。從圖20的狀態S20、S21可知,這是因為如圖22的G4所示那樣,當FWRequested=1時,不管HWRequested是0還是1,都是FWGo=1。而且,如G5所示,在FW傳送完了之后,如G6所示開始HW傳送。
如上所述,在本實施例中,當HWStart和FWStart同時為1時,首先優先開始FW傳送。這樣一來,對從對方節點來的要求信息包能夠立即返回響應信息包。
圖23是FWStart先于HWStart有效時的時序波形圖。
如圖23的H1、H2所示,當FWStart先于HWStart成為1時,首先,如H3所示那樣先開始FW傳送。接著,如H4所示那樣,在FW傳送完1個信息包之后,如H5所示開始HW傳送。
如上所述,在本實施例中,當在FWStart=1之后HWStart=1時,先開始FW傳送,在FW傳送完后,開始HW傳送。這樣一來,對從對方節點來的要求信息包能夠立即返回響應信息包。
4.2 HW用標題區和通常標題區之間的地址切換在本實施例中,標題區(控制信息區)分離成象圖8的AR2、AR3所示那樣的利用SBP-2核心寫入標題(控制信息)的HW用標題區(第2控制信息區)和象AR4、AR6所示那樣的利用固件或連接核心等寫入標題的通常的標題區(第1控制信息區)。
這樣,通過在SBP-2核心設置專用的HW用標題區,SBP-2核心能夠將生成的標題連續寫入HW用標題區。因此,能夠使SBP-2核心的處理和電路構成簡單化。即,若HW用標題區不與通常的標題區分離,SBP-2核心生成的標題和其余的標題混合在標題區中。由此,出現使標題寫入時的地址控制變得復雜、使SBP-2核心的電路規模增大的問題。象本實施例那樣,若在SBP-2核心設置專用的HW用標題區,就可以解決這樣的問題,能夠謀求SBP-2核心電路的小規模化。
而且,在本實施例中,圖10的地址發生電路420根據協調電路400來的協調結果的信號HWDMARun切換發生HW用標題區和通常的標題區的地址。
更具體一點說,例如,如圖24所示,當HWDMARun=1時(HW傳送時),在HW用發送標題區(AR3)設定指針PTR。而且,通過更新指針PTR產生由SBP-2核心生成的發送標題的寫入地址。
另一方面,當HWDMARun=0時(不是HW傳送時),在切換指針PTR,使指針PTR設在發送標題區(AR6)。而且,通過更新指針PTR產生由固件等生成的發送標題的寫入地址。
如上所述,在本實施例中,只通過利用從協調電路400來的信號HWDMARun這樣的簡單方法,就成功地實現了HW用標題區和通常標題區間的地址切換。而且,因可以進行這樣的地址切換,所以,能夠對SBP-2核心的專用HW用標題區連續寫入由SBP-2核心生成的標題。結果,利用硬件容易生成連續傳送的一連串信息包的標題。
5.數據區的分離(分離成ORB區和數據流區)在本實施例中,象圖8所示那樣,將圖7的RAM80(信息包存儲裝置)分離成標題區(AR2、AR3、AR4、AR6)和數據區(AR5、AR7、AR8、AR9),同時,將數據區分離成ORB區(AR5、AR7)和數據流區(AR8、AR9)。
即,通過將RAM分離成標題區和數據區,固件可以從標題區連續讀出標題,或將標題連續寫入標題區。因此,具有能夠在某種程度上減輕固件的處理負擔的優點。但是,從更高速傳送數據的觀點來看,單單分離成標題區和數據區還不夠。
例如,在圖25A中,信息包被分離成標題和數據,標題1、2、3存儲在標題區,數據1、2、3存儲在數據區。
這里,如前所述,數據有SBP-2(第1層)用的ORB(第1數據)和上層的應用層(第2層)用的數據流。因此,只將RAM分離成標題區和數據區,如圖25A的D1、D2、D3所示那樣,在數據區ORB和數據流混在一起。
因此,例如,當從RAM向應用層的設備傳送數據流時,必須進行下面的處理。即,首先,將數據指針設定在D1的位置再讀出數據流11、12、13,其次,將數據指針變到D2的位置再讀出數據流21、22、23。然后,將數據指針變到D3的位置再讀出數據流31、32、33。
這樣,只將RAM分離成標題區和數據區,在向應用層的設備傳送數據流時,必須頻繁地控制切換數據指針的位置,會招致處理的復雜化和電路的大規模化。此外,因不能連續從數據區讀出數據流,故不能把數據傳送控制裝置的實際傳送速度提得很高。
另一方面,在圖25B中,將數據區分離成ORB區和數據流區。這樣一來,固件能夠連續從ORB區讀出ORB1、2、3。此外,可以利用前述SBP-2核心84的功能,不經過固件而將數據流11~33連續從RAM的數據流區讀出,并向應用層的設備傳送。即,如圖26所示,能夠在對方節點123(例如個人計算機)和應用層的設備(例如進行打印機的打印處理的設備)之間高速傳送數據流,而不經過固件(CPU)66。結果,與圖25A相比,大大減輕了固件的處理負擔,同時,能夠使數據傳送更加高速化。
再有,通過將數據區分離成發送ORB區(圖8的AR7)和發送數據流區(AR8),數據傳送裝置120不僅對接收數據流,對發送數據流也能謀求數據傳送的高速化。即,不僅對如圖26的方向DR1所示那樣從對方節點123到應用層的設備124(本節點)傳送數據流的情況,對于象方向DR2所示那樣從應用層的設備124到對方節點123傳送數據流的情況,也能謀求數據傳送的高速化。
6.利用事務處理標簽切換寫入區在IEEE1394中,作為用于識別各事務處理的信息,使用稱之為事務處理標簽t1的東西。
即,事務處理的要求節點在要求信息包中包含事務處理標簽t1,并向響應節點發送。而且,接收到該要求信息包的響應節點在響應信息包中包含與上述相同的t1,并返送回要求節點。要求節點通過識別返送的包含在響應信息包中的t1,能夠確認該響應信息包是與本身要求的事務處理對應的響應。
事務處理標簽t1若與響應節點的關系是唯一的就足夠了。更具體一點說,例如,要求節點ND1對響應節點ND2發送t1=TN1的事務處理時,在該事務處理未完的期間,要求節點ND1不能對響應節點ND2發送其它的附有t1=TN1的事務處理。即,各事務處理利用事務處理標簽t1、源ID和目的地ID可以唯一地確定。換言之,事務處理標簽t1只要遵守上述制約,可以使用任何值,其它的節點不管什么樣的t1必須都能接收。
當要求節點發送要求信息包并等待返送響應信息包時,有時響應信息包返送時進行的處理是已經決定的。因此,本實施例著眼于上述那樣的事務處理標簽t1的性質,并采用下面的方法。
即,如圖27A所示,當對響應節點發送開始事務處理的要求信息包時,在包含在要求信息包中的事務處理標簽t1(廣義地說是事務處理識別信息)中,包含指示返送響應信息包時應進行的處理的指示信息。而且,當從響應節點接收響應信息包時,執行與包含在t1中的指示信息對應的處理。
這樣一來,當返送響應信息包時,可利用SBP-2核心84等的硬件去執行與包含在t1中的指示信息對應的處理,而與固件無關。因此,能夠減輕固件的處理負擔,同時能謀求數據傳送的高速化,更具體一點說,在本實施例中,當從響應節點接收響應信息包時,將該響應信息包存儲在由包含在t1中的指示信息指示的區域中。
即,如圖27B所示,將事務處理標簽t1的位5、4作為表示指示信息的位預先給定。
而且,當把返送來的響應信息包寫入FW(固件)用區域時,使要求信息包的t1的位5置1,并向響應節點發送。另一方面,當把返送來的響應信息包寫入FW(固件)用區時,使要求信息包的t1的位5置0,并向響應節點發送。
此外,當把返送來的響應信息包寫入數據流區域時,使要求信息包的t1的位4置1,并向響應節點發送。另一方面,當把返送來的響應信息包寫入ORB區域時,使要求信息包的t1的位4置0,并向響應節點發送。
這樣一來,當響應信息包返送來時,如圖28所示,將響應信息包的標題和數據寫入RAM的各區域內。
即,當t1=1×××××(×表示隨意)時,響應信息包的標題寫入HW用接收標題區,當t1=0×××××時,寫入FW用接收標題區。
此外,當t1=11××××時,響應信息包的數據寫入HW用接收數據流區,當t1=10××××時,寫入HW用頁表區。此外,當t1=01××××時,響應信息包的數據寫入FW用接收數據流區,當t1=00××××時,寫入FW用接收ORB區。
這樣一來,可以不經過固件由硬件(電路)自動地將響應信息包的標題和數據寫入RAM的各區域內。而且,可以使進行將響應信息包寫入RAM的處理的硬件的構成簡單化,可以謀求數據傳送裝置的小規模化。
此外,如圖25已說明的那樣,因能夠自動地將信息包的標題寫入標題區、將ORB寫入ORB區、數據流寫入數據流區,故能夠使硬件處理簡單化,使數據傳送高速化。
7.電子裝置下面,說明包含本實施例的數據傳送控制裝置的電子裝置的例子。
例如,圖29A示出作為電子裝置之一的打印機的內部方框圖,圖30A示出其外觀圖。CPU(微機)510對整個系統進行控制等。操作部511用來由用戶操作打印機。在ROM516中存儲控制程序、字型等,RAM518起CPU510的工作區的作用。顯示面板519用來將打印機的工作狀態通知給用戶。
從個人計算機等其它節點經PHY設備502和數據傳送控制裝置500送過來的打印數據經總線504直接送往打印處理部512。而且,利用打印處理部對打印數據進行規定的處理,利用由打印頭等構成的打印部(輸出數據的裝置)514,將打印數據打印在紙上。
圖29B示出作為電子裝置之一的掃描儀的內部方框圖,圖30B示出其外觀圖。CPU520對整個系統進行控制等。操作部521用來由用戶操作掃描儀。在ROM526中存儲控制程序等,RAM528起CPU520的工作區的作用。
利用由光源、光電變換器等構成的圖象讀取部(用于取入數據的裝置)522讀取原稿的圖象,讀取的圖象數據由圖象處理部524處理。而且,處理后的圖象數據經總線505直接送往數據傳送控制裝置500。數據傳送控制裝置500通過對該圖象數據附加標題等來生成信息包,經PHY設備502發送到個人計算機等其它節點。
圖29C示出作為電子裝置之一的CD-RW驅動器的內部方框圖,圖30C示出其外觀圖。CPU530對整個系統進行控制等。操作部531用來由用戶操作CD-RW。在ROM536中存儲控制程序等,RAM538起CPU530的工作區的作用。
利用由激光光源、電機和光學系統等構成的讀取和寫入部(用于取入數據的裝置或用于存儲數據的裝置)533從CD-RW532讀取的數據輸入信號處理部534,進行錯誤改正處理等規定的信號處理。而且,信號處理后的數據經總線506直接送往數據傳送控制裝置500。數據傳送控制裝置500通過對該數據附加標題等來生成信息包,經PHY設備502發送到個人計算機等其它節點。
另一方面,從其它節點經PHY設備502和數據傳送控制裝置500送過來的數據經總線506直接送往信號處理部534。而且,利用信號處理部534對該數據進行規定的信號處理,并利用讀出寫入部533存儲到CD-RW532中。
再有,在圖29A、圖29B和圖29C中,除了CPU510、520和530之外,也可以另外設置用于數據傳送控制裝置500的數據傳送控制的CPU。
此外,在圖29A、圖29B和圖29C中,RAM501(與圖7的RAM80相當)設在數據傳送控制裝置500的外部,但也可以將RAM501裝在數據傳送控制裝置500的內部。
通過將本實施例的數據傳送控制裝置用于電子裝置,可以實現高速數據傳送。因此,當用戶利用個人計算機等發出打印出來的指示時,以很少的延時即可打印完畢。此外,當向掃描儀發出取入圖象的指示后,能夠以很少的延時讓用戶看到讀取的圖象。此外,能夠高速進行從CD-RW的數據讀取和向CD-RW的數據寫入。進而,例如,將多臺電子裝置連接到1臺主機系統上使用,或將多臺電子裝置連接到多個主機系統上使用,這都很容易。
此外,通過將本實施例的數據傳送控制裝置用于電子裝置,可以減輕在CPU上工作的固件的處理負擔,可以使用便宜的CPU和低速總線。進而,因可以謀求數據傳送控制裝置的低成本化和小規模化,所以,也能夠謀求電子裝置的低成本化和小規模化。
再有,作為能夠使用本實施例的數據傳送控制裝置的電子裝置除上述之外,例如還可以考慮各種光盤驅動器(CD-ROPM、DVD)、光磁盤驅動器(MO)、硬盤驅動器、TV、VTR、攝像機、錄放音機、電話機、投影儀、個人計算機、電子筆記本、文字處理器等。
再有,本發明不限于本實施例,在本發明的要點的范圍內可以進行各種變形實施。
例如,本發明的數據傳送控制裝置的構成最好象圖7所示那樣構成,但也不限于此。
此外,傳送執行電路(SBP-2)的構成最好象圖10所示那樣構成,但也不限于此,至少,當處理裝置(固件)發送第1開始命令(HW傳送開始命令)時,只要是用來將傳送數據分割成一連串信息包后連續傳送的電路即可。例如,傳送執行電路最好包括頁表取出電路、頁表生成電路、有效負載生成電路、傳送執行控制電路、發送標題生成電路(控制信息生成電路)等電路方框,但也可以構成為不包含其中一部分電路方框。
此外,協調電路的協調方法最好是利用圖21、圖22和圖23等說明了的方法,但并不限于此。
此外,信息包的分離方法、向信息包存儲裝置的各區域寫入信息包或讀出信息包的方法也不限于利用圖8、圖25B說明了的方法。
此外,特別地希望第1數據是事務處理層用的數據,第2數據是應用層用的數據,但本發明的第1、第2數據并不限于此。
此外,本發明特別希望按IEEE1394規格進行數據傳送,但并不限于此。例如,本發明也適用于按和IEEE1394有同樣思想的規格或發展了IEEE1394的規格的數據傳送。
權利要求
1.一種用來在與總線連接的多個節點之間傳送數據的數據傳送控制裝置,其特征在于包括傳送執行電路和協調電路,上述傳送執行電路在處理裝置發送了指示利用硬件進行的連續信息包傳送的第1開始命令時,將傳送數據分割成一連串的信息包并執行連續傳送已被分割的一連串信息包的處理,上述協調電路在處理裝置發送了在利用上述傳送執行電路執行了連續信息包的傳送處理的期間內指示信息包傳送的第2開始命令時,等待連續信息包傳送中的1個事務處理或1個信息包傳送的結束,允許利用上述第2開始命令進行的信息包傳送。
2.按照權利要求1所述的數據傳送控制裝置,其特征在于上述傳送執行電路包括當對方節點的存儲裝置中存在頁表時取出對方節點的該頁表的頁表取出電路;當對方節點的存儲裝置中不存在頁表時根據頁邊界信息生成虛擬頁表的頁表生成電路;將傳送數據分割成有效負載尺寸的信息包的有效負載分割電路;控制數據傳送的執行的傳送執行控制電路;以及至少一個生成請求向對方節點發送要求信息包的控制信息的控制信息生成電路。
3.按照權利要求1所述的數據傳送控制裝置,其特征在于上述協調電路接收在傳送開始要求時由上述傳送執行電路使其成為激活的第1開始信號、在傳送開始要求時由上述第2開始命令使其成為激活的第2開始信號和傳送結束時成為激活的結束信號,當在上述第1開始信號成為激活之后上述第2開始信號成為激活時,首先開始由上述第1開始信號控制的傳送處理,當上述結束信號成為激活之后,開始由上述第2開始信號控制的傳送處理。
4.按照權利要求1所述的數據傳送控制裝置,其特征在于上述協調電路接收在傳送開始要求時由上述傳送執行電路使其成為激活的第1開始信號、在傳送開始要求時由上述第2開始命令使其成為激活的第2開始信號和傳送結束時成為激活的結束信號,當上述第1、第2開始信號同時成為激活時,由上述第2開始信號控制的傳送處理優先。
5.按照權利要求1所述的數據傳送控制裝置,其特征在于上述協調電路接收在傳送開始要求時由上述傳送執行電路使其成為激活的第1開始信號、在傳送開始要求時由上述第2開始命令使其成為激活的第2開始信號和傳送結束時成為激活的結束信號,當在上述第2開始信號成為激活之后上述第1開始信號成為激活時,首先開始由上述第2開始信號控制的傳送處理,當上述結束信號成為激活之后,開始由上述第1開始信號控制的傳送處理。
6.按照權利要求1所述的數據傳送控制裝置,其特征在于包含具有存儲信息包的控制信息的控制信息區和存儲信息包的數據的數據區的可隨機訪問的信息包存儲裝置;以及發生向上述信息包存儲裝置寫入的地址的地址發生電路,將上述信息包存儲裝置的上述控制信息區分離成第1控制信息區和由上述傳送執行電路寫入控制信息的第2控制信息區,上述地址發生電路根據從上述協調電路來的協調結果,切換發生第1控制信息區的地址或第2控制信息區的地址的某一個地址。
7.按照權利要求1所述的數據傳送控制裝置,其特征在于包含可隨機訪問的信息包存儲裝置,上述信息包存儲裝置具有存儲信息包的控制信息的控制信息區和存儲信息包的數據的數據區,將上述信息包存儲裝置的上述數據區分離成存儲第1層用的第1數據的第1數據區和存儲成為上述傳送執行電路的連續信息包傳送的對象的第2層用的第2數據的第2數據區。
8.按照權利要求7所述的數據傳送控制裝置,其特征在于當把使事務處理開始的要求信息包向對方節點發送時,在包含在上述要求信息包中的事務處理識別信息中包含指示信息,用來指示從對方節點接收到響應信息包時進行的處理,當從對方節點接收到響應信息包時,根據響應信息包的事務處理識別信息包含的上述指示信息,將響應信息包控制信息、第1、第2數據分別寫入上述控制信息區和上述第1、第2數據區。
9.按照權利要求1所述的數據傳送控制裝置,其特征在于以IEEE1394規格為標準進行數據傳送。
10.一種電子裝置,其特征在于,包括權利要求1至9的任一項的數據傳送控制裝置;對經上述數據傳送控制裝置和總線從其它節點接收來的數據進行給定的處理的裝置;以及用于對已處理過的數據進行輸出或存儲的裝置。
11.一種電子裝置,其特征在于,包括權利要求1至9的任一項的數據傳送控制裝置;對經上述數據傳送控制裝置和總線傳送到其它節點的數據進行給定的處理的裝置;以及用于取入進行處理的數據的裝置。
全文摘要
本發明的目的在于提供一種數據傳送控制裝置及電子裝置,其中,能夠減輕固件的處理的負擔,以小規模的硬件實現高速數據傳送。在IEEE1394規格的數據傳送控制裝置中,當在利用SBP-2核心執行了連續信息包傳送(HW傳送)處理期間內CPU發送FW傳送開始命令時,協調電路等待連續信息包傳送的1個事務處理(或1個信息包傳送)結束時才允許FW傳送。當HWStart和FWStart同時成為激活時,優先進行FW傳送。
文檔編號H04L12/64GK1293410SQ00130688
公開日2001年5月2日 申請日期2000年10月16日 優先權日1999年10月15日
發明者佐藤大輔, 堀內浩 申請人:精工愛普生株式會社