專利名稱:數(shù)據(jù)傳輸控制系統(tǒng)、電子設(shè)備、程序及數(shù)據(jù)傳輸控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)傳輸控制系統(tǒng)、電子設(shè)備、程序及數(shù)據(jù)傳輸控制方法。
另一方面,在CD驅(qū)動(dòng)器、DVD驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器等的存儲(chǔ)裝置中,稱作ATA(IDE)/ATAPI的接口標(biāo)準(zhǔn)被廣泛采用。
因此,為了使具備ATA/ATAPI接口的存儲(chǔ)裝置與具備IEEE1394接口的PC相連接,需要具備IEEE1394和ATA/ATAPI的總線橋接功能的數(shù)據(jù)傳輸控制系統(tǒng)。
這種類型的數(shù)據(jù)傳輸控制系統(tǒng),將使用IEEE1394的SBP-2協(xié)議傳送的SCSI(MMC-2)命令以ATA/ATAPI命令的方式,發(fā)布給存儲(chǔ)裝置。數(shù)據(jù)傳輸控制系統(tǒng)譯碼SCSI的命令,解析其內(nèi)容,并開始與存儲(chǔ)裝置之間的DMA傳輸。
不過,由于使用SBP-2傳送的命令的種類多種多樣,譯碼(解析)這些命令的過程也增加了處理負(fù)擔(dān)和處理時(shí)間。
本發(fā)明涉及一種數(shù)據(jù)傳輸控制系統(tǒng),用于通過總線進(jìn)行數(shù)據(jù)傳輸,其包括命令處理部分,其接收通過第一總線傳輸來的命令包,向與第二總線連接的裝置發(fā)布命令包所包含的命令;以及DMA傳輸指示部分,其不根據(jù)發(fā)布的命令的種類設(shè)定固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度,指示與第二總線連接的裝置之間的DMA傳輸開始。
根據(jù)本發(fā)明,向與第二總線連接的裝置發(fā)布來自第一總線的命令包所包含的命令。而且,不根據(jù)該被發(fā)布的命令的種類設(shè)定固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度進(jìn)行DMA傳輸。因此,數(shù)據(jù)傳輸控制系統(tǒng)可以不進(jìn)行與命令的種類對(duì)應(yīng)的適當(dāng)?shù)腄MA數(shù)據(jù)長(zhǎng)度的取得處理,可以減輕處理負(fù)擔(dān)。
此外,在本發(fā)明中,該DMA傳輸指示部分,當(dāng)接收發(fā)布的命令的,與第二總線連接的裝置通知命令處理結(jié)束時(shí),可以中止開始的DMA傳輸。
這樣一來,設(shè)定足夠長(zhǎng)的DMA數(shù)據(jù)長(zhǎng)度,以接收命令處理結(jié)束的通知為條件中止開始的DMA傳輸,可以適當(dāng)結(jié)束DMA傳輸。
此外,在本發(fā)明中,該DMA傳輸指示部分,當(dāng)接收已發(fā)布的命令的,與第二總線連接的裝置請(qǐng)求DMA傳輸時(shí),指示DMA傳輸開始。
此外,在本發(fā)明中,與第二總線連接的裝置是將通過第二總線被傳輸?shù)臄?shù)據(jù)寫入存儲(chǔ)器或者從存儲(chǔ)器讀出的裝置,該DMA傳輸指示部分,可以設(shè)定比該存儲(chǔ)器的存儲(chǔ)容量大的值,作為固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度。
此外,在本發(fā)明中,該DMA傳輸指示部分,設(shè)定比能夠由命令包所包含的命令指定的數(shù)據(jù)長(zhǎng)度大的值,作為固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度。
另外,在本發(fā)明中,該命令處理部分不必對(duì)通過第一總線傳輸來的命令包所包含的命令進(jìn)行譯碼,就可以向與第二總線連接的裝置發(fā)布該命令。
這樣一來,可以省略命令的譯碼處理(為求得DMA數(shù)據(jù)長(zhǎng)度大小而進(jìn)行的譯碼處理),可以減輕處理負(fù)擔(dān)。
另外,在本發(fā)明中,第一總線是根據(jù)第一接口標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)傳輸?shù)目偩€,第二總線是根據(jù)第二接口標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)傳輸?shù)目偩€,該命令包是被第一接口標(biāo)準(zhǔn)的上層的協(xié)議定義的包。
另外,在本發(fā)明中,第一總線是根據(jù)IEEE1394標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)傳輸?shù)目偩€,第二總線是根據(jù)ATA/ATAPI標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)傳輸?shù)目偩€,該命令包是被SBP-2(SBP)定義的ORB包。
此外,本發(fā)明涉及一種電子設(shè)備,其包括上述任一所述的數(shù)據(jù)傳輸控制系統(tǒng),以及與第二總線連接的裝置。
此外,本發(fā)明涉及一種使數(shù)據(jù)傳輸控制系統(tǒng)發(fā)揮功能的程序,該數(shù)據(jù)傳輸控制系統(tǒng)包括命令處理部分,其接收通過第一總線傳輸來的命令包,向與第二總線連接的裝置發(fā)布命令包所包含的命令;以及DMA傳輸指示部分,其不根據(jù)發(fā)布的命令的種類設(shè)定固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度,指示與第二總線連接的裝置之間DMA傳輸開始。
另外,本發(fā)明涉及一種數(shù)據(jù)傳輸控制方法,用于通過總線進(jìn)行數(shù)據(jù)傳輸,其接收通過第一總線傳輸來的命令包,向與第二總線連接的裝置發(fā)布命令包所包含的命令,其不根據(jù)發(fā)布的命令的種類設(shè)定固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度,指示與第二總線連接的裝置之間的DMA傳輸開始。
圖2是對(duì)SBP-2的處理概況進(jìn)行說明的示意圖。
圖3是對(duì)在SBP-2中將數(shù)據(jù)從起始點(diǎn)傳輸?shù)侥繕?biāo)時(shí)的命令處理進(jìn)行說明的示意圖。
圖4是對(duì)在SBP-2中將數(shù)據(jù)從起始點(diǎn)傳輸?shù)侥繕?biāo)時(shí)的命令處理進(jìn)行說明的示意圖。
圖5A、圖5B和圖5C是對(duì)頁(yè)表進(jìn)行說明的示意圖。
圖6A和圖6B是對(duì)數(shù)據(jù)傳輸控制系統(tǒng)的總線橋接功能和各種命令的關(guān)系進(jìn)行說明的示意圖。
圖7是本實(shí)施例的數(shù)據(jù)傳輸控制系統(tǒng)、電子設(shè)備的構(gòu)成實(shí)施例示意圖。
圖8表示的是ATAPI的包命令處理的流程概況示意圖。
圖9是本實(shí)施例的詳細(xì)處理實(shí)施例的流程圖。
圖10是本實(shí)施例的詳細(xì)處理實(shí)施例的流程圖。
圖11是對(duì)本實(shí)施例的數(shù)據(jù)傳輸控制方法進(jìn)行說明的示意圖。
圖12表示的是比較例的處理實(shí)施例的流程圖。
圖13是對(duì)比較例的數(shù)據(jù)傳輸控制方法進(jìn)行說明的示意圖。
圖14是對(duì)其他比較例的處理實(shí)施例進(jìn)行說明的示意圖。
圖15表示的是ATA/ATAPI的接口電路的構(gòu)成實(shí)施例的示意圖。
圖16A和圖16B是PIO讀、PIO寫時(shí)的信號(hào)波形圖。
圖17A和圖17B表示的是DMA讀、DMA寫時(shí)的信號(hào)波形圖。
圖18A和圖18B表示的是UltraDMA讀、UltraDMA寫時(shí)的信號(hào)波形圖。
另外,以下描述的本實(shí)施例,不是對(duì)記載在權(quán)利要求范圍內(nèi)的本發(fā)明內(nèi)容的不當(dāng)限定。而且本實(shí)施例中所描述的全部構(gòu)成,不一定是本發(fā)明技術(shù)手段所必須的構(gòu)成要件。
1.IEEE1394、SBP-21.1層結(jié)構(gòu)稱作SBP-2(Serial Bus Protocol-2)的協(xié)議被提議成為一個(gè)包括IEEE1394處理層一部分功能的上層協(xié)議。SBP-2(廣義上是指SBP)被提議能使SCSI(MMC-2)的命令集合運(yùn)用在IEEE1394協(xié)議上。當(dāng)使用該SBP-2時(shí),對(duì)現(xiàn)存符合SCSI標(biāo)準(zhǔn)的電子設(shè)備上使用的命令集合施加最小限度的修改,就能使它們能用在符合IEEE1394標(biāo)準(zhǔn)的電子設(shè)備上。從而,使電子設(shè)備的設(shè)計(jì)和開發(fā)容易化。
圖1簡(jiǎn)略地示出了IEEE1394、SBP-2的層結(jié)構(gòu)(協(xié)議棧)。
IEEE1394(IEEE1394-1995、P1394a和P1394b等)的協(xié)議由處理層、鏈路層和物理層構(gòu)成。
處理層向上層提供處理單元的接口(服務(wù)),通過下層的鏈路層提供的接口,實(shí)施讀處理、寫處理和鎖處理等的處理。
這里,在讀處理中,數(shù)據(jù)從應(yīng)答節(jié)點(diǎn)傳輸至請(qǐng)求節(jié)點(diǎn)。另一方面,在寫處理中,數(shù)據(jù)從請(qǐng)求節(jié)點(diǎn)傳輸至應(yīng)答節(jié)點(diǎn)。此外,在鎖處理中,數(shù)據(jù)從請(qǐng)求節(jié)點(diǎn)傳輸至應(yīng)答節(jié)點(diǎn),應(yīng)答節(jié)點(diǎn)對(duì)該數(shù)據(jù)實(shí)施處理后,返回請(qǐng)求節(jié)點(diǎn)。
鏈路層提供尋址、數(shù)據(jù)校驗(yàn)和包收發(fā)的數(shù)據(jù)組幀、同步傳輸?shù)闹芷诳刂频取?br>
物理層將鏈路層使用的邏輯符號(hào)轉(zhuǎn)換為電信號(hào)、進(jìn)行總線的調(diào)停、為總線提供物理接口。
如圖1所示,SBP-2層提供一個(gè)包含IEEE1394(廣義上是指第一接口標(biāo)準(zhǔn))處理層一部分功能的上層協(xié)議。
1.2 SBP-2的處理圖2表示的是SBP-2(廣義上是指第一接口標(biāo)準(zhǔn)的上層第一協(xié)議)處理全過程的流程圖。
如圖2所示,在SBP-2上,首先,進(jìn)行用于確認(rèn)連接設(shè)備的ROM配置信息的讀處理(步驟T1)。
其次,進(jìn)行用于獲得起始點(diǎn)(例如個(gè)人計(jì)算機(jī))對(duì)目標(biāo)(例如存儲(chǔ)裝置)的存取權(quán)(請(qǐng)求開始許可??偩€使用權(quán))的登錄處理(步驟T2)。具體地說,通過起始點(diǎn)建立的登錄ORB(操作請(qǐng)求塊Operation Request Block)進(jìn)行登錄處理。
接著,進(jìn)行讀取代理的初始化(步驟T3)。然后,通過命令塊ORB(標(biāo)準(zhǔn)命令ORB)進(jìn)行命令處理(步驟T4),最后通過注銷ORB進(jìn)行注銷處理(步驟T5)。
這里,在步驟T4的命令處理中,如圖3的A1所示,起始點(diǎn)傳輸寫請(qǐng)求包(發(fā)布寫請(qǐng)求處理),回應(yīng)目標(biāo)的門鈴寄存器。于是,如A2所示,目標(biāo)傳輸讀請(qǐng)求包,起始點(diǎn)返回對(duì)應(yīng)的讀應(yīng)答包?;诖耍鹗键c(diǎn)建立的ORB(命令塊ORB)被取出并保存在目標(biāo)的數(shù)據(jù)緩沖器(包緩沖器)中。而且,目標(biāo)解析被取出的ORB中包含的命令。
當(dāng)ORB中包含的命令是SCSI寫命令時(shí),如A3所示,目標(biāo)將讀請(qǐng)求包傳輸至起始點(diǎn),起始點(diǎn)返回對(duì)應(yīng)的讀應(yīng)答包。基于此,起始點(diǎn)的數(shù)據(jù)緩沖器中存儲(chǔ)的數(shù)據(jù)傳輸至目標(biāo)。而且,例如,當(dāng)目標(biāo)是存儲(chǔ)裝置時(shí),傳輸?shù)臄?shù)據(jù)被寫入存儲(chǔ)裝置。
另一方面,當(dāng)ORB中包含的命令是SCSI的讀命令時(shí),如圖4的B1所示,目標(biāo)將一系列的寫請(qǐng)求包傳輸至起始點(diǎn)?;诖?,例如,當(dāng)目標(biāo)是存儲(chǔ)裝置時(shí),從存儲(chǔ)裝置讀出的數(shù)據(jù)可被傳輸至起始的數(shù)據(jù)緩沖器。
根據(jù)該SBP-2,目標(biāo)在自身狀況良好時(shí),傳輸請(qǐng)求包(發(fā)布處理)后,可收發(fā)數(shù)據(jù)。因此,起始點(diǎn)和目標(biāo)不必同步工作,可提高數(shù)據(jù)傳輸效率。
作為IEEE1394的上層協(xié)議,除了適合存儲(chǔ)裝置和打印機(jī)的數(shù)據(jù)傳輸?shù)腟BP-2外,適合視頻和聲音的數(shù)據(jù)傳輸?shù)腁V/C命令也被建議加入。此外,作為在IEEE1394總線上傳輸網(wǎng)絡(luò)協(xié)議(IP)包的協(xié)議,IPover1394的協(xié)議也被建議采用。
另外,在起始點(diǎn)、目標(biāo)之間進(jìn)行數(shù)據(jù)傳輸時(shí),如圖5A所示,在起始點(diǎn)(個(gè)人計(jì)算機(jī)、對(duì)方節(jié)點(diǎn))的數(shù)據(jù)緩沖器上有頁(yè)表存在和不存在兩種情況。
而且,當(dāng)頁(yè)表存在時(shí),如圖5B所示,在起始點(diǎn)建立的ORB中,包含其頁(yè)表的地址和元件數(shù)。而且,通過該頁(yè)表指定傳輸數(shù)據(jù)的地址(讀出地址、寫入地址)的間接地址。
另一方面,當(dāng)頁(yè)表不存在時(shí),如圖5C所示,在ORB中,包含地址和數(shù)據(jù)長(zhǎng)度。而且,指定傳輸數(shù)據(jù)的地址(讀出地址、寫入地址)的直接地址。
1.3總線橋接功能如圖6A所示,本實(shí)施例的數(shù)據(jù)傳輸控制系統(tǒng)10具有在遵循IEEE1394(SBP-2)的BUS1(第一總線)和遵循ATA(IDE)/ATAPI的BUS2(第二總線)之間的橋接功能。在此,ATA(AT Attachment)主要作為硬盤接口標(biāo)準(zhǔn)被廣泛使用,ATAPI(ATA Packet Interface)是能使ATA也能被使用在CD驅(qū)動(dòng)器等的光盤驅(qū)動(dòng)器上的接口標(biāo)準(zhǔn)。
可以實(shí)現(xiàn)圖6A所示的總線橋接功能的數(shù)據(jù)傳輸控制系統(tǒng)10,將從個(gè)人計(jì)算機(jī)2傳輸來的ORB(廣義上是指命令包)所包含的SCSI(SPC-2)的命令作為ATAPI的命令發(fā)布給存儲(chǔ)裝置100(光盤驅(qū)動(dòng)器)。而且,譯碼通過SBP-2傳送的SCSI命令,解析其內(nèi)容,開始和存儲(chǔ)裝置100之間的DMA傳輸。
不過,由于通過SBP-2總線傳送的命令多種多樣,因此當(dāng)對(duì)這些命令進(jìn)行譯碼、解析時(shí),會(huì)導(dǎo)致處理負(fù)擔(dān)和處理時(shí)間的增加。
此外,如圖6B所示,也可以知道在個(gè)人計(jì)算機(jī)2上運(yùn)行的蘋果操作系統(tǒng)、微軟操作系統(tǒng)等的OS(Operating System)上,只使用SCSI(Small Computer System Interface)和ATAPI(ATA AttachmentPacket Interface)兩者共用的命令。
本實(shí)施例克服了上述不足,采用以下所描述的構(gòu)成的數(shù)據(jù)傳輸控制系統(tǒng)。
2.整體構(gòu)成圖7表示的是本實(shí)施例的數(shù)據(jù)傳輸控制系統(tǒng)以及包括該系統(tǒng)的電子設(shè)備的整體構(gòu)成實(shí)施例。此外,下面,舉例說明,與起始點(diǎn)之間進(jìn)行數(shù)據(jù)傳輸?shù)哪繕?biāo)是存儲(chǔ)裝置(CD驅(qū)動(dòng)器、DVD驅(qū)動(dòng)器等)時(shí)的情況,但本發(fā)明不局限于此。
配備數(shù)據(jù)緩沖器4的個(gè)人計(jì)算機(jī)(主機(jī))2通過遵循IEEE1394的BUS 1(第一總線)和電子設(shè)備8連接。而且,電子設(shè)備8具有數(shù)據(jù)傳輸控制系統(tǒng)10和存儲(chǔ)裝置100(廣義上是指裝置)。
此外,電子設(shè)備8可以含有沒有圖示的系統(tǒng)CPU、系統(tǒng)存儲(chǔ)裝置(ROM、RAM)、操作部分、或者信號(hào)處理裝置等。
數(shù)據(jù)傳輸控制系統(tǒng)10包括物理層(PHY)電路14、鏈路層電路20、SBP-2電路22、接口電路30、包管理電路38、包緩沖器40(數(shù)據(jù)緩沖器)。此外,還包括CPU42、閃存44(EEPROM)。此外,還包括固件50,其將處理模塊(程序)存儲(chǔ)在閃存44上,由CPU42(廣義上是指處理器)執(zhí)行。此外,本實(shí)施例中的數(shù)據(jù)傳輸控制系統(tǒng)10不必包括圖7所示的全部的電路模塊、功能模塊,可以省略其中的一部分。
物理層電路14是通過硬件實(shí)現(xiàn)圖1的物理層協(xié)議的電路,具有將由鏈路層電路20使用的邏輯符號(hào)轉(zhuǎn)換為電信號(hào)的功能。
鏈路(&處理)層電路20是通過硬件實(shí)現(xiàn)圖1的鏈路層的協(xié)議和一部分處理層的協(xié)議的電路,提供節(jié)點(diǎn)之間包傳輸?shù)母鞣N服務(wù)。
借助這些物理層電路14、鏈路層電路20的功能,通過BUS1(第一總線),在數(shù)據(jù)傳輸控制系統(tǒng)10與個(gè)人計(jì)算機(jī)2(廣義上是指電子設(shè)備)之間,可以進(jìn)行遵循IEEE1394標(biāo)準(zhǔn)的數(shù)據(jù)傳輸。
SBP-2電路22(傳輸執(zhí)行電路)是通過硬件實(shí)現(xiàn)一部分SBP-2的協(xié)議和一部分處理層的電路。借助該SBP-2電路22的功能,能將傳輸數(shù)據(jù)分割成一系列的包,并對(duì)分割的一系列的包進(jìn)行連續(xù)傳輸?shù)奶幚怼?br>
接口電路30是在數(shù)據(jù)傳輸控制系統(tǒng)10與存儲(chǔ)裝置100的之間進(jìn)行接口處理的電路。借助該接口電路30的功能,通過BUS2(第二總線),在數(shù)據(jù)傳輸控制系統(tǒng)10與存儲(chǔ)裝置100之間,可以進(jìn)行遵循ATA(AT Attachment)、ATAPI(ATA Packet Interface)的數(shù)據(jù)傳輸。
而且,如圖7所示,通過設(shè)置物理層電路14、鏈路層電路20和接口電路30,可使數(shù)據(jù)傳輸控制系統(tǒng)10在IEEE1394(廣義上是指第一接口標(biāo)準(zhǔn))和ATA(IDE)/ATAPI(廣義上是指第二接口標(biāo)準(zhǔn))之間具有總線橋接功能。
接口電路30所包含的DMA控制器32是用于通過BUS2,在數(shù)據(jù)傳輸控制系統(tǒng)10與存儲(chǔ)裝置100之間進(jìn)行DMA(DirectMemory Access)傳輸?shù)碾娐贰?br>
此外,連接BUS2的存儲(chǔ)裝置100包括接口電路102,用于進(jìn)行遵循ATA(IDE)/ATAPI的數(shù)據(jù)傳輸;存取控制電路104,其控制對(duì)存儲(chǔ)器106的存取(讀或?qū)?;以及光盤、硬盤等的存儲(chǔ)器106。
緩沖器管理電路38是管理在包緩沖器40和鏈路層電路20之間接口的電路。緩沖器管理電路38包括用于控制緩沖器管理電路38的寄存器、對(duì)與包緩沖器40連接的總線進(jìn)行調(diào)停的調(diào)停電路、生成各種控制信號(hào)的序列發(fā)生器等。
此外,緩沖器管理電路38還包括指針管理部分39。該指針管理部分39以環(huán)形緩沖器方式管理包緩沖器40的指針,并且。對(duì)寫入、讀出的多個(gè)指針進(jìn)行更新處理。
包緩沖器40(包存儲(chǔ)器、數(shù)據(jù)緩沖器)是用于暫時(shí)存儲(chǔ)包(傳輸數(shù)據(jù))的緩沖器,由SRAM、SDRAM或DRAM等的硬件構(gòu)成。此外,在本實(shí)施例中,包緩沖器40作為可隨機(jī)存取的包存儲(chǔ)部分發(fā)揮作用。而且,不用將包緩沖器40內(nèi)置在數(shù)據(jù)傳輸控制系統(tǒng)10中,可以外置。
CPU42(廣義上是指處理器)用于控制整個(gè)裝置和數(shù)據(jù)傳輸。
閃存44(EEPROM)是電子可擦寫編程的數(shù)據(jù)非易失性存儲(chǔ)裝置。該閃存44存儲(chǔ)固件50的處理模塊(程序)。
固件50是包括在CPU42上工作的各種處理模塊(處理例程)的程序。處理層等的協(xié)議由該固件50和作為硬件的CPU42等實(shí)現(xiàn)。
固件50(F/W)包括通信部分52、管理部分60、讀取部分70、存儲(chǔ)作業(yè)部分80和下載部分90。此外,固件50不必包括這些全部功能塊(模塊),可以省略其中的一部分。
這里,通信部分52是物理層電路14、鏈路層電路20等的硬件之間起接口作用的處理模塊。
管理部分60(管理代理)是進(jìn)行登錄、重新連接、注銷和復(fù)位等管理的處理模塊。例如,當(dāng)起始點(diǎn)向目標(biāo)請(qǐng)求登錄時(shí),首先,該管理部分60可收到該登錄請(qǐng)求。
讀取部分70(讀取代理)是對(duì)ORB(Operation Request Block)的接收、狀態(tài)的發(fā)布和對(duì)存儲(chǔ)作業(yè)部分80進(jìn)行命令處理請(qǐng)求的處理模塊。讀取部分70與只處理單一請(qǐng)求的管理部分60不同,根據(jù)來自起始點(diǎn)的請(qǐng)求,也處理本身讀取的ORB的連接表。
存儲(chǔ)作業(yè)部分80是用于執(zhí)行ORB所包含的命令處理和DMA傳輸處理的處理模塊。
下載部分90是用于對(duì)存儲(chǔ)在閃存44上的固件50的處理模塊等進(jìn)行更新處理的處理模塊。
存儲(chǔ)作業(yè)部分80包括命令處理部分82和DMA傳輸指示部分84。
這里,命令處理部分82對(duì)通過總線BUS1(遵循IEEE1394標(biāo)準(zhǔn)等的第一接口標(biāo)準(zhǔn)的第一總線)傳輸來的ORB(廣義上是指命令包、用于數(shù)據(jù)傳輸操作請(qǐng)求的命令包)進(jìn)行各種處理。具體地說,接收來自BUS1的ORB,對(duì)連接在BUS2(遵循ATA/ATAPI等的第二接口標(biāo)準(zhǔn)的第二總線)上的存儲(chǔ)裝置100(廣義上是指裝置)發(fā)布ORB所包含的命令(SCSI、MMC-2的命令)。此時(shí),命令處理部分82不對(duì)從ORB(命令包)中取出的命令進(jìn)行譯碼處理(用于檢查包含在命令中的數(shù)據(jù)數(shù)、段數(shù),或者特定的命令參數(shù)的譯碼處理),也就是說,不解析命令的內(nèi)容,保持其原樣向存儲(chǔ)裝置100發(fā)布。
DMA傳輸指示部分84設(shè)定固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度,指示通過BUS2的DMA傳輸(CPU不參與的數(shù)據(jù)傳輸)的開始等。
具體地說,DMA傳輸指示部分84對(duì)不根據(jù)由命令處理部分82發(fā)布的命令(ORB所包含的命令)對(duì)固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度(DMA數(shù)據(jù)大小)進(jìn)行設(shè)定。也就是說,無論是讀命令還是讀CD命令,在接口電路30的特定的寄存器(DMA數(shù)據(jù)長(zhǎng)度設(shè)定寄存器)上設(shè)定相同固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度。而且,DMA傳輸指示部分84指示接口電路30(存儲(chǔ)裝置100)等開始DMA數(shù)據(jù)長(zhǎng)度的DMA傳輸過程。具體地說,DMA傳輸指示部分84響應(yīng)來自存儲(chǔ)裝置100的DMA傳輸請(qǐng)求信號(hào)(DMARQ),指示發(fā)出DMA傳輸請(qǐng)求確認(rèn)信號(hào)(DMACK),開始DMA傳輸過程。
此外,當(dāng)連接BUS2的存儲(chǔ)裝置100通過使用INTRQ(中斷)信號(hào)等方式通知數(shù)據(jù)傳輸控制系統(tǒng)10命令處理終止時(shí),DMA傳輸指示部分84,中止已經(jīng)開始的DMA傳輸。具體地說,DMA傳輸指示部分84從DMA傳輸?shù)陌l(fā)送或接收狀態(tài)釋放接口電路30(DMA控制器32),清除DMA傳輸計(jì)數(shù)器,使其為0(初始值)。
此外,作為固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度,可以采用比存儲(chǔ)器106(通過存儲(chǔ)裝置100寫入傳輸數(shù)據(jù)或者讀出傳輸數(shù)據(jù)的介質(zhì))的存儲(chǔ)容量(例如CD時(shí)的670M字節(jié),DVD時(shí)的4.7G字節(jié)等)更大的值。也有以采用比可由命令(SBP-2、ATAPI)指定的數(shù)據(jù)長(zhǎng)度(可由包的數(shù)據(jù)長(zhǎng)度的字段的位數(shù)表示的最大數(shù)據(jù)長(zhǎng)度)更大的值。也可以采用由硬件、接口標(biāo)準(zhǔn)、協(xié)議的限制決定的最大的數(shù)據(jù)長(zhǎng)度。此外,該固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度可以預(yù)先在寄存器(D觸發(fā)器或存儲(chǔ)器)等上設(shè)定,而且在啟動(dòng)DMA傳輸時(shí),該長(zhǎng)度不必每次都設(shè)定。
3.處理的詳細(xì)情況圖8表示的是ATAPI的包命令處理流程的概況。
ATAPI是用于控制CD驅(qū)動(dòng)器和DVD驅(qū)動(dòng)器等的多媒體設(shè)備的接口標(biāo)準(zhǔn)。ATAPI包命令位于ATA命令的更高的層,ATAPI包命令通過ATA命令被發(fā)布。
也就是說,在ATA中,命令的執(zhí)行是通過在ATA寄存器上設(shè)定參數(shù),和通過在命令寄存器里寫入命令的方式實(shí)現(xiàn)的。反之,在ATAPI里,只有PACKET命令被寫入命令寄存器,而且,ATAPI包命令傳輸后,才是設(shè)備控制命令的傳輸。包命令傳輸后,進(jìn)行向數(shù)據(jù)寄存器的數(shù)據(jù)傳輸。這樣一來,利用ATA的控制體系,可實(shí)現(xiàn)ATAPI。
在本實(shí)施例的數(shù)據(jù)傳輸控制系統(tǒng)10上,利用該ATAPI的包命令,實(shí)現(xiàn)在BUS2上的數(shù)據(jù)傳輸。
圖9和圖10表示的是本實(shí)施例的詳細(xì)處理的流程圖。
數(shù)據(jù)傳輸控制系統(tǒng)10在SBP-2的處理中,接收到一個(gè)ORB(步驟S1),從ORB(或者頁(yè)表)的數(shù)據(jù)大小上取得SBP-2的數(shù)據(jù)長(zhǎng)度,例如將DMA數(shù)據(jù)長(zhǎng)度設(shè)定為2T(萬億)字節(jié)(步驟S2)。
也就是說,如圖11的E1所示,不進(jìn)行ORB所包含的命令(讀、寫、讀CD等)的譯碼處理(數(shù)據(jù)數(shù)或段數(shù)的取得,參數(shù)的解析等)。而且,不根據(jù)ORB所包含的命令的種類設(shè)定固定長(zhǎng)度(2T字節(jié))的DMA數(shù)據(jù)長(zhǎng)度。而且,如圖11的E2所示,通過總線BUS2向存儲(chǔ)裝置100發(fā)布ORB所包含的命令(步驟S10)。
圖10表示的是步驟S10的命令發(fā)布處理的流程圖。
首先,數(shù)據(jù)傳輸控制系統(tǒng)10選擇一個(gè)驅(qū)動(dòng)器(主控制器/從控制器)(步驟S21)。判斷存儲(chǔ)裝置100是否忙(步驟S22),當(dāng)不忙時(shí),發(fā)布PACKET命令(步驟S23。參照?qǐng)D8)。接著,判斷存儲(chǔ)裝置100是否忙,或者有無來自存儲(chǔ)裝置100的DMARQ信號(hào)(步驟S24)。當(dāng)不是那樣的時(shí)候,判斷是否有錯(cuò)誤發(fā)生(步驟S25),當(dāng)有錯(cuò)誤發(fā)生時(shí),數(shù)據(jù)傳輸控制系統(tǒng)10中止這個(gè)命令(步驟S28),轉(zhuǎn)移到圖9的步驟S19的狀態(tài)發(fā)送處理。
另一方面,當(dāng)沒有發(fā)生錯(cuò)誤時(shí),數(shù)據(jù)傳輸控制系統(tǒng)10傳輸ATAPI包命令(步驟S26。參照?qǐng)D8)。而且,判斷是否有錯(cuò)誤發(fā)生(步驟S27),當(dāng)有錯(cuò)誤發(fā)生時(shí),中止這個(gè)命令(步驟S28),轉(zhuǎn)移到圖9的步驟S19的狀態(tài)發(fā)送處理。另一方面,當(dāng)沒有發(fā)生錯(cuò)誤時(shí),正常完成命令發(fā)布處理。
返回對(duì)圖9的說明。當(dāng)包發(fā)布處理結(jié)束時(shí),數(shù)據(jù)傳輸控制系統(tǒng)10判斷數(shù)據(jù)長(zhǎng)度是否為“0”(步驟S11)。例如,當(dāng)ORB所包含的命令為測(cè)試單元就緒或啟動(dòng)/停止單元,數(shù)據(jù)長(zhǎng)度為“0”。當(dāng)數(shù)據(jù)長(zhǎng)度為“0”時(shí),轉(zhuǎn)移到步驟S17。
另一方面,當(dāng)數(shù)據(jù)長(zhǎng)度不為“0”時(shí),如圖11的E3所示,數(shù)據(jù)傳輸控制系統(tǒng)10判斷是否有來自存儲(chǔ)裝置100的DMARQ(DMA傳輸請(qǐng)求)信號(hào)發(fā)布(步驟S12)。當(dāng)DMARQ信號(hào)被發(fā)布時(shí),如圖11的E4所示,指示在與存儲(chǔ)裝置100之間開始DMA傳輸(2T字節(jié))(步驟S13)。
也就是說,在遵循ATA/ATAPI的BUS2中,如后面所述,作為DMA傳輸請(qǐng)求信號(hào)的DMARQ和DMARQ的確認(rèn)信號(hào)DMACK等的信號(hào)被定義。存儲(chǔ)裝置100的接口電路102發(fā)布DMARQ信號(hào)后,當(dāng)存儲(chǔ)裝置10的接口電路30隨后發(fā)布DMACK信號(hào)時(shí),DMA傳輸開始。
下面,如圖11的E5所示,數(shù)據(jù)傳輸控制系統(tǒng)10指示和PC(個(gè)人計(jì)算機(jī)2)的數(shù)據(jù)傳輸(SBP-2數(shù)據(jù)長(zhǎng)度)開始(步驟S14)。
也就是說,在本實(shí)施例中,由硬件電路的SBP-2電路22實(shí)現(xiàn)和PC的數(shù)據(jù)傳輸。這樣一來,設(shè)定SBP-2數(shù)據(jù)長(zhǎng)度和DMA數(shù)據(jù)長(zhǎng)度后,通過BUS1從PC接收的傳輸數(shù)據(jù)(寫數(shù)據(jù))通過包緩沖器40和BUS2,仍舊自動(dòng)地傳輸?shù)酱鎯?chǔ)裝置100。此外,通過BUS2,從存儲(chǔ)裝置100接收的傳輸數(shù)據(jù)(讀數(shù)據(jù))通過包緩沖器40和BUS1,仍舊自動(dòng)地傳輸?shù)絇C。因此,直到通過BUSI的SBP-2傳輸、通過BUS2的ATAPI的DMA傳輸結(jié)束,固件50(CPU42)不必參與數(shù)據(jù)傳輸處理。因此,顯著地減輕了固件50的處理負(fù)擔(dān)。
當(dāng)數(shù)據(jù)傳輸控制系統(tǒng)10判斷和PC的數(shù)據(jù)傳輸(硬件SBP-2傳輸)結(jié)束(步驟S16)時(shí),判斷存儲(chǔ)裝置100的命令處理是否結(jié)束(步驟S17)。該判斷通過被ATA/ATAPI定義的BUS2的中斷信號(hào)INTRQ等進(jìn)行。而且當(dāng)判斷命令處理結(jié)束時(shí),如圖11的E6所示,中止DMA傳輸(步驟S18)。然后如E7所示,數(shù)據(jù)傳輸控制系統(tǒng)10發(fā)送狀態(tài)給PC(步驟S19)。
也就是說,在本實(shí)施例中,如圖9的步驟S2所示,設(shè)定足夠大的值(2T字節(jié))作為DMA數(shù)據(jù)長(zhǎng)度,因此,由于DMA數(shù)據(jù)長(zhǎng)度不為“0”,DMA傳輸就沒有結(jié)束。因此,如步驟S17所示,一旦命令處理結(jié)束,DMA傳輸認(rèn)為完成,DMA傳輸就中止。
具體地說,即使在BUS2上的數(shù)據(jù)傳輸實(shí)質(zhì)上結(jié)束,因?yàn)閿?shù)據(jù)長(zhǎng)度不為“0”,存儲(chǔ)裝置10處于DMA傳輸發(fā)送或等待接收狀態(tài)。在此狀態(tài)下,如果存儲(chǔ)裝置100通過發(fā)布中斷信號(hào)INTRQ,通知命令處理結(jié)束時(shí),本實(shí)施例的存儲(chǔ)裝置10釋放DMA發(fā)送或等待接收狀態(tài),中止DMA傳輸?;诖?,能使DMA傳輸完全結(jié)束。
如上所述,在本實(shí)施例中,因?yàn)樵O(shè)定十分大的DMA數(shù)據(jù)長(zhǎng)度,不必解析來自BUS1的ORB所包含的SCSI的命令內(nèi)容,依舊通過BUS2向存儲(chǔ)裝置100發(fā)布。因此,可以省略命令的譯碼處理。大幅度減輕處理負(fù)擔(dān)。此外,即使設(shè)定十分大的DMA數(shù)據(jù)長(zhǎng)度開始DMA傳輸,通過等待來自存儲(chǔ)裝置100的命令處理結(jié)束的通知后再發(fā)布,可以使DMA傳輸正常結(jié)束。
此外,在SCSI上,和ATAPI不同,在命令的最后附加控制字節(jié)。此外,在SCSI上存在6個(gè)字節(jié)、10個(gè)字節(jié)、12個(gè)字節(jié)的命令,但ATAPI的命令只使用12個(gè)字節(jié)。不過,在ORB中,命令塊是12個(gè)字節(jié),不足12個(gè)字節(jié)的命令被填充(Padding)也不附加控制字節(jié)。因此,不會(huì)發(fā)生ORB所包含的SCSI(MMC-2)的命令依舊向ATAPI的存儲(chǔ)裝置100發(fā)布的問題。但是,在本實(shí)施例中,對(duì)ORB所包含的命令做一些修改處理,可以向存儲(chǔ)裝置100發(fā)布。
圖12表示的是作為本實(shí)施例的比較實(shí)施例的數(shù)據(jù)傳輸控制方法的流程圖。在圖12的比較實(shí)施例中,通過譯碼ORB所包含的命令,取得DMA數(shù)據(jù)長(zhǎng)度。
例如,應(yīng)該譯碼的命令可以進(jìn)行如下分類。
也就是說,作為進(jìn)行數(shù)據(jù)收發(fā)的命令,包括用字節(jié)數(shù)指定數(shù)據(jù)的長(zhǎng)度的工作方式檢測(cè)、工作方式選擇、詢問(inquiry)等,以及用段數(shù)指定數(shù)據(jù)長(zhǎng)度的讀、寫等。
此外,作為不進(jìn)行數(shù)據(jù)的收發(fā)的命令有測(cè)試單元準(zhǔn)備就緒、啟動(dòng)/停止單元等。
而且,在以段數(shù)指定數(shù)據(jù)長(zhǎng)度的時(shí)候,為了求得實(shí)際數(shù)據(jù)長(zhǎng)度,需要指定段長(zhǎng)度。此時(shí),為了指定段長(zhǎng)度采用以下方法。
(1)基于工作方式選擇的段長(zhǎng)度指定(傳統(tǒng)SCSI方法)由工作方式選擇的參數(shù)指定段長(zhǎng)度,在存儲(chǔ)裝置(CD驅(qū)動(dòng)器)正常結(jié)束工作方式選擇的命令的時(shí)候,在其后的段長(zhǎng)度上使用由工作方式選擇指定的段長(zhǎng)度。
(2)通過讀CD命令的段長(zhǎng)度指定在通過讀CD的參數(shù)指定段長(zhǎng)度的時(shí)候,該段長(zhǎng)度僅在其命令下有效。
為了對(duì)應(yīng)于這些命令,在比較實(shí)施例中,需要進(jìn)行如圖12的處理。
也就是說,在圖12中,接收ORB時(shí)(步驟S31),譯碼ORB所包含的命令,判斷是否用字節(jié)單位指定數(shù)據(jù)數(shù)(步驟S32)。而且,當(dāng)用字節(jié)單位指定數(shù)據(jù)數(shù)時(shí),以命令內(nèi)的數(shù)據(jù)數(shù)指定作為數(shù)據(jù)大小(步驟S33)。另一方面,當(dāng)不用字節(jié)單位指定數(shù)據(jù)數(shù)時(shí),判斷是否用段單位指定數(shù)據(jù)數(shù)(步驟S34)。而且,當(dāng)不用段單位指定數(shù)據(jù)數(shù)時(shí),將數(shù)據(jù)大小設(shè)為“0”(步驟S35)。
當(dāng)用段單位指定數(shù)據(jù)數(shù)時(shí),判斷是否存在段大小(步驟S35),當(dāng)不存在段大小時(shí),將2048字節(jié)×(命令的段數(shù))作為數(shù)據(jù)大小(步驟S37)。另一方面,當(dāng)存在段大小時(shí),以(指定段大小)×(命令的段數(shù))作為數(shù)據(jù)大小(步驟S38)。
在圖12的比較實(shí)施例中,將通過以上處理得到的數(shù)據(jù)大小設(shè)定為SBP-2數(shù)據(jù)長(zhǎng)度和DMA數(shù)據(jù)長(zhǎng)度(步驟S39)。而且,其后,進(jìn)行步驟S40以下的處理。而且,在進(jìn)行步驟S40以下的處理中,和圖9的本實(shí)施例的處理不同,在步驟S45中,根據(jù)DMA數(shù)據(jù)長(zhǎng)度等,進(jìn)行DMA傳輸是否結(jié)束的判斷(參照?qǐng)D13的F6)。此外,圖9的步驟S18的DMA傳輸?shù)闹兄固幚碓趫D12中不存在。
如上所述,在圖12的比較實(shí)施例中,在步驟S32~S38中(參照?qǐng)D13的F1),因?yàn)檫M(jìn)行命令的譯碼(解析)處理,所以處理負(fù)擔(dān)變得很重。反之,在圖9的本實(shí)施例中,不需要這些處理,此點(diǎn)是本實(shí)施例的優(yōu)點(diǎn)。
圖14表示的是其他的比較實(shí)施例的數(shù)據(jù)傳輸控制方法的處理流程圖,在圖14的比較實(shí)施例中,參照ORB的頁(yè)表等,取得DMA數(shù)據(jù)長(zhǎng)度。
也就是說,在圖14中,接收ORB時(shí)(步驟S51),判斷ORB的數(shù)據(jù)長(zhǎng)度是否為“0”(步驟S52),當(dāng)為“0”時(shí),轉(zhuǎn)移到步驟S56。另一方面,當(dāng)ORB的數(shù)據(jù)大小不為“0”時(shí),判斷PC的數(shù)據(jù)緩沖器上是否存在頁(yè)表(步驟S53)。而且,當(dāng)存在頁(yè)表時(shí),全部讀出頁(yè)表,計(jì)算數(shù)據(jù)大小(步驟S54)。而且,將取得的數(shù)據(jù)大小設(shè)定為SBP-2數(shù)據(jù)長(zhǎng)度和DMA數(shù)據(jù)長(zhǎng)度(步驟S56)。其后的步驟S60以下的處理與圖12的步驟S40以下的處理一樣。
即使在該圖14的比較實(shí)施例中,因?yàn)樾枰襟ES52~S54所示的處理,增加了處理負(fù)擔(dān),此點(diǎn)是圖9的本實(shí)施例的優(yōu)點(diǎn)所在。
4.ATA/ATAPI的接口電路圖15表示的是ATA/ATAPI的接口電路30的構(gòu)成實(shí)施例。此外,接口電路30不需要具備圖15的全部電路模塊,可以省略其中的一部分。
FIFO31是用于調(diào)整(緩沖)數(shù)據(jù)傳輸?shù)膫鬏斅实牟畹木彌_器。DMA控制器32是對(duì)FIFO31和接口核心電路34進(jìn)行控制(REQ/ACK控制)等的電路。
接口核心電路34是進(jìn)行DMA的控制等的電路。接口核心電路34中所包含的計(jì)數(shù)器35是ATA(IDE)/ATAPI用的復(fù)位計(jì)數(shù)器。接口核心電路34中所包含的UDMA電路36是用于控制ATA/ATAPI的UltraDMA傳輸?shù)碾娐?,UltraDMA用的FIFO37、UltraDMA用的CRC運(yùn)算電路38。
寄存器33是用于控制DMA傳輸開始等的寄存器,可以通過固件50(CPU 42)存取該寄存器33。
CS[1:0]是為了存取ATA的各寄存器而使用的芯片選擇信號(hào)。DA[2:0]是用于存取數(shù)據(jù)或數(shù)據(jù)端口的地址信號(hào)。
DMARQ、DMACK是使用在DMA傳輸上的信號(hào)。當(dāng)數(shù)據(jù)傳輸準(zhǔn)備就緒時(shí),存儲(chǔ)裝置100(裝置)側(cè)發(fā)布(激活)DMARQ信號(hào);數(shù)據(jù)傳輸控制系統(tǒng)10(主機(jī))對(duì)此進(jìn)行應(yīng)答,發(fā)布信號(hào)DMACK,初始化DMA傳輸。
DIOW(STOP)是寄存器或者數(shù)據(jù)端口寫入時(shí)使用的寫信號(hào),此外,其在UltraDMA傳輸中作為STOP信號(hào)發(fā)揮功能。DIOR(HDMARDY、HSTROBE)信號(hào)是從寄存器或者數(shù)據(jù)端口讀數(shù)據(jù)時(shí)使用的讀信號(hào)。此外,其在UltraDMA傳輸中作為HDMARDY、HSTROBE信號(hào)發(fā)揮作用。
IORDY(DDMARDY、DSTROBE)是在存儲(chǔ)裝置100的數(shù)據(jù)傳輸沒有準(zhǔn)備就緒時(shí)使用的等待信號(hào)等。此外,其在UltraDMA傳輸中作為DDMARDY、DSTROBE信號(hào)發(fā)揮作用。
INTRQ是為了存儲(chǔ)裝置100(裝置)向數(shù)據(jù)傳輸控制系統(tǒng)10(主機(jī))請(qǐng)求中斷而使用的信號(hào)。該INTRQ被發(fā)布后,當(dāng)數(shù)據(jù)傳輸控制系統(tǒng)10讀出存儲(chǔ)裝置100的狀態(tài)寄存器的內(nèi)容時(shí),經(jīng)過在特定時(shí)間后,存儲(chǔ)裝置100取消INTRQ(非活動(dòng))。通過信號(hào)INTRQ,存儲(chǔ)裝置100可將命令處理結(jié)束通知數(shù)據(jù)傳輸控制系統(tǒng)10。
圖16A~圖18B是以上用的信號(hào)的波形圖。此外,在這些圖中,“#”表示的是負(fù)邏輯(低電平發(fā)布)的信號(hào)。
圖16A和圖16B是PIO(Parallel I/O)讀和PIO寫時(shí)的信號(hào)波形圖。ATA的狀態(tài)寄存器的讀通過圖16A的PIO讀進(jìn)行,向控制寄存器的寫通過圖16B的PIO寫進(jìn)行。例如,向存儲(chǔ)裝置100的PACKET命令的發(fā)布和ATAPI包命令的傳輸(參照?qǐng)D8和圖10)可以通過該P(yáng)IO傳輸進(jìn)行。
圖17A和圖17B是DMA讀和DMA寫時(shí)的信號(hào)波形圖。當(dāng)數(shù)據(jù)傳輸準(zhǔn)備就緒時(shí),存儲(chǔ)裝置100(接口電路102)發(fā)布信號(hào)DMARQ(高電平)。而且,數(shù)據(jù)傳輸控制系統(tǒng)10(接口電路30)響應(yīng)DMARQ,并發(fā)布信號(hào)DMACK(低電平),開始DMA傳輸。其后,使用DIOR(讀時(shí))或者DIOW(寫時(shí)),進(jìn)行數(shù)據(jù)DD[15:0]的DMA傳輸。
圖18A和圖18B是UltraDMA讀、UltraDMA寫時(shí)的信號(hào)波形圖。當(dāng)數(shù)據(jù)傳輸?shù)臏?zhǔn)備就緒時(shí),存儲(chǔ)裝置100發(fā)布DMARQ。而且,數(shù)據(jù)傳輸控制系統(tǒng)10響應(yīng)DMARQ,并發(fā)布信號(hào)DMACK,開始DMA傳輸。其后,使用DIOW、DIOR和IORDY,進(jìn)行數(shù)據(jù)DD[15:0]的UltraDMA傳輸。
此外,本發(fā)明不局限于本實(shí)施例,在本發(fā)明主題范圍內(nèi)可以有各種變形。
例如,在說明書的描述中,引用術(shù)語(IEEE1394、ATA/ATAPI、SBP-2、IPover 1394、ORB、個(gè)人計(jì)算機(jī)·存儲(chǔ)裝置、硬盤驅(qū)動(dòng)器·光盤驅(qū)動(dòng)器啟、存儲(chǔ)裝置、CPU等)時(shí)標(biāo)注了其廣義術(shù)語(第一接口標(biāo)準(zhǔn)、第二接口標(biāo)準(zhǔn)、第一接口標(biāo)準(zhǔn)的第一上層協(xié)議、第一接口標(biāo)準(zhǔn)的第二上層協(xié)議、命令包、電子設(shè)備、存儲(chǔ)裝置、裝置、處理器等),在說明書的其他描述中也可以置換成廣義術(shù)語。
另外,本發(fā)明中的從屬權(quán)利要求所涉及的發(fā)明,可以省略其中從屬項(xiàng)的權(quán)利要求的一部分構(gòu)成要件。此外,本發(fā)明的獨(dú)立權(quán)利要求1所涉及的發(fā)明的要件也可以從屬于其他的獨(dú)立權(quán)利要求。
另外,本發(fā)明的數(shù)據(jù)傳輸控制系統(tǒng)、電子設(shè)備的構(gòu)成不限于圖7所示的構(gòu)成??捎懈鞣N變形。例如,既可以省略部分這些圖的各電路塊、各功能塊,也可以變更其連接關(guān)系。此外,第二總線(BUS2)也可以連接在和存儲(chǔ)裝置不同的裝置上。另外,物理層電路、鏈路層電路和包緩沖器的連接構(gòu)成也不限于圖7所示的連接構(gòu)成。
此外,本實(shí)施例中,雖然對(duì)通過固件(程序)實(shí)現(xiàn)命令處理部分和DMA傳輸指示部分等的功能的情況進(jìn)行了描述,但也可以通過硬件電路實(shí)現(xiàn)這些中的部分功能或全部功能。
此外,本發(fā)明可以適用于各種電子設(shè)備(硬盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器、光磁盤驅(qū)動(dòng)器、PDA、擴(kuò)展設(shè)備、音響設(shè)備、數(shù)碼錄像機(jī)、手機(jī)、打印機(jī)、掃描儀、TV、VTR、電話機(jī)、顯示裝置、投影機(jī)個(gè)人計(jì)算機(jī)或者電子記事本等)。
另外,在本實(shí)施例中,也對(duì)將本發(fā)明適用于IEEE1394、SBP-2、ATA/ATAPI標(biāo)準(zhǔn)中的數(shù)據(jù)傳輸?shù)那闆r進(jìn)行了描述。不過本發(fā)明對(duì)基于和例如IEEE1394(P1394a)、SBP-2(SBP)、ATA/ATAPI相同的思想的標(biāo)準(zhǔn)和發(fā)展IEEE1394、SBP-2、ATA/ATAPI的標(biāo)準(zhǔn)的數(shù)據(jù)傳輸也適用。
盡管本發(fā)明已經(jīng)參照附圖和優(yōu)選實(shí)施例進(jìn)行了說明,但是,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。本發(fā)明的各種更改、變化和等同物由權(quán)利要求書的內(nèi)容涵蓋。
權(quán)利要求
1.一種數(shù)據(jù)傳輸控制系統(tǒng),用于通過總線進(jìn)行數(shù)據(jù)傳輸,其特征在于包括命令處理部分,其接收通過第一總線傳輸來的命令包,向與第二總線連接的裝置發(fā)布命令包所包含的命令;以及DMA傳輸指示部分,其不根據(jù)發(fā)布的命令的種類設(shè)定固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度,指示與第二總線連接的裝置之間的DMA傳輸開始。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸控制系統(tǒng),其特征在于所述DMA傳輸指示部分,當(dāng)接收發(fā)布的命令的,與第二總線連接的裝置通知命令處理結(jié)束時(shí),中止開始的DMA傳輸。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸控制系統(tǒng),其特征在于所述DMA傳輸指示部分,當(dāng)接收發(fā)布命令的,與第二總線連接的裝置請(qǐng)求DMA傳輸時(shí),指示DMA傳輸開始。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸控制系統(tǒng),其特征在于與第二總線連接的裝置是將通過第二總線被傳輸?shù)臄?shù)據(jù)寫入存儲(chǔ)器或者從存儲(chǔ)器讀出的裝置,所述DMA傳輸指示部分,設(shè)定比所述存儲(chǔ)器的存儲(chǔ)容量大的值,作為固定長(zhǎng)度的所述DMA數(shù)據(jù)長(zhǎng)度。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸控制系統(tǒng),其特征在于所述DMA傳輸指示部分,設(shè)定比能夠由命令包所包含的命令指定的數(shù)據(jù)長(zhǎng)度大的值,作為固定長(zhǎng)度的所述DMA數(shù)據(jù)長(zhǎng)度。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸控制系統(tǒng),其特征在于所述命令處理部分,不必對(duì)通過第一總線傳輸來的命令包所包含的命令進(jìn)行譯碼,向與第二總線連接的裝置發(fā)布所述命令。
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸控制系統(tǒng),其特征在于第一總線是根據(jù)第一接口標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)傳輸?shù)目偩€,第二總線是根據(jù)第二接口標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)傳輸?shù)目偩€,所述命令包是被第一接口標(biāo)準(zhǔn)的上層協(xié)議定義的包。
8.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸控制系統(tǒng),其特征在于第一總線是根據(jù)IEEE1394標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)傳輸?shù)目偩€,第二總線是根據(jù)ATA/ATAPI標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)傳輸?shù)目偩€,所述命令包是被SBP-2定義的ORB包。
9.一種電子設(shè)備,其特征在于包括根據(jù)權(quán)利要求1至8中任一所述的數(shù)據(jù)傳輸控制系統(tǒng);以及與第二總線連接的裝置。
10.一種程序,使數(shù)據(jù)傳輸控制系統(tǒng)發(fā)揮功能,其特征在于所述數(shù)據(jù)傳輸控制系統(tǒng)包括命令處理部分,其接收通過第一總線傳輸來的命令包,向與第二總線連接的裝置發(fā)布命令包所包含的命令;以及DMA傳輸指示部分,其不根據(jù)發(fā)布的命令的種類設(shè)定固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度,指示與第二總線連接的裝置之間的DMA傳輸開始。
11.根據(jù)權(quán)利要求10所述的程序,其特征在于所述DMA傳輸指示部分,當(dāng)接收發(fā)布的命令的,與第二總線連接的裝置通知命令處理結(jié)束時(shí),中止開始的DMA傳輸。
12.一種數(shù)據(jù)傳輸控制方法,用于通過總線進(jìn)行數(shù)據(jù)傳輸,其特征在于其接收通過第一總線傳輸來的命令包,向與第二總線連接的裝置發(fā)布命令包所包含的命令;其不根據(jù)發(fā)布的命令的種類設(shè)定固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度,指示與第二總線連接的裝置之間的DMA傳輸開始。
13.根據(jù)權(quán)利要求12所述的數(shù)據(jù)傳輸控制方法,其特征在于當(dāng)接收發(fā)布的命令的,與第二總線連接的裝置通知命令處理結(jié)束時(shí),中止開始的DMA傳輸。
全文摘要
本發(fā)明提供了一種數(shù)據(jù)傳輸控制系統(tǒng),其接收通過BUS1(IEEE1394)傳輸來的命令包ORB(SBP-2),向與BUS2(ATA(IDE)/ATAPI)連接的裝置發(fā)布ORB所包含的命令。其不根據(jù)發(fā)布的命令的種類設(shè)定固定長(zhǎng)度的足夠大的DMA數(shù)據(jù)長(zhǎng)度,指示與BUS2連接的裝置之間的DMA傳輸開始。當(dāng)與BUS2連接的裝置通知命令處理結(jié)束時(shí),中止DMA傳輸。采用比存儲(chǔ)器的存儲(chǔ)容量大的值和比能夠由命令指定的數(shù)據(jù)長(zhǎng)度大的值,作為固定長(zhǎng)度的DMA數(shù)據(jù)長(zhǎng)度。不必對(duì)ORB所包含的命令進(jìn)行譯碼就發(fā)布給與BUS2連接的裝置。
文檔編號(hào)G06F13/20GK1475923SQ0314970
公開日2004年2月18日 申請(qǐng)日期2003年8月4日 優(yōu)先權(quán)日2002年8月5日
發(fā)明者藤田信一郎, 金井裕之, 伊藤朱美, 之, 美 申請(qǐng)人:精工愛普生株式會(huì)社