專利名稱:設備控制器的制作方法
技術領域:
本發(fā)明涉及一種控制個人計算機外接外圍設備的設備控制器,特別 涉及使數(shù)據(jù)傳輸高速化的設備控制器。
背景技術:
為了使個人計算機(以下稱為PC)的操作系統(tǒng)(以下稱為OS)對
外圍設備進行正常識別和控制,需要叫做設備驅動程序的軟件。
近年來裝載于PC的OS中,編入有多個標準的設備驅動程序。因此, 在連接有標準的外圍設備時,OS自動分配標準的設備驅動程序,對連接
的外圍設備進行識別和控制。
但是,對于各外圍設備來說標準設備驅動程序并不最合適時,即使 存在比設備驅動程序控制的傳輸速度更高速運作的外圍設備(如高速讀
取、或寫入的外接HDD等),標準設備驅動程序也會對其速度進行限 制。另外,也存在應用程序限制速度的情況。
特別是,作為一般OS的Windows (注冊商標)的情況下,當與USB 大容量存儲設備(外接HDD等)連接并傳輸數(shù)據(jù)時,Windows (注冊 商標)標準裝載的應用程序或設備驅動程序對數(shù)據(jù)以每64kB進行分割, USB大容量存儲驅動程序對每個分割后的數(shù)據(jù)附加指令、狀態(tài)等信息。 對該指令、狀態(tài)等信息的處理時間長(數(shù)百psec),成為數(shù)據(jù)傳輸速度 低下的主要原因。
圖1中,所示為OS上裝載的各種驅動程序的功能框圖。該圖中, 應用程序51、通用盤驅動程序52、 USB大容量存儲驅動程序53以及USB 主控制器驅動程序54是OS上裝載的功能部。
應用程序51通過各種驅動程序對USB大容量存儲設備55 (例如外 接HDD)發(fā)出讀取或寫入的要求。該圖中,示出了應用程序51發(fā)出寫 入請求,并傳輸數(shù)據(jù)的例子。應用程序51對通用盤驅動程序52發(fā)出讀 取要求,并傳輸數(shù)據(jù)。通用盤驅動程序52將此數(shù)據(jù)傳輸?shù)较录壍腢SB大容量存儲驅動程序53。此時,由于USB大容量存儲驅動程序53的數(shù) 據(jù)傳輸量的上限為64kB,所以通用盤驅動程序52對數(shù)據(jù)以每64kB進行 分割。USB大容量存儲驅動程序53將對以每64kB分割了的數(shù)據(jù)附加指 令、狀態(tài),并順次傳輸至USB主控制器驅動程序54。 USB主控制器驅 動程序54通過USB批量傳輸方式將該指令、數(shù)據(jù)、狀態(tài)順次傳輸至USB 大容量存儲裝置55。
圖2是表示通用盤驅動程序52及USB大容量存儲驅動程序53所傳 輸?shù)臄?shù)據(jù)(單批量傳輸協(xié)議)結構的概念圖。如該圖所示,通用盤驅動 程序52將數(shù)據(jù)分割成64kB, USB大容量存儲驅動程序53對各數(shù)據(jù)部賦 予指令、狀態(tài)并順次傳輸至USB主控制器驅動程序54。進而,USB主 控制器驅動程序54還將此指令、分割成64kB的數(shù)據(jù)以及狀態(tài)順次傳輸 至USB大容量存儲設備55。從而,進行應用程序51對USB大容量存儲 設備55的寫入。
在USB2.0規(guī)格環(huán)境下,USB大容量存儲驅動程序53、 USB主控制 器驅動程序54以及USB大容量存儲設備55處理指令和狀態(tài)的時間為 500psec左右。于是,每傳輸64KB的數(shù)據(jù)就會產(chǎn)生因處理指令、狀態(tài) 導致的總共500jusec左右的延遲,從而傳輸總數(shù)據(jù)量在64kB以上時, 數(shù)據(jù)傳輸速度降低。
另外,如圖1所示,即使在應用程序51直接向USB大容量存儲驅 動程序53傳輸數(shù)據(jù)的情況下,由于USB大容量驅動程序53的數(shù)據(jù)傳輸 量的上限為64kB,因此應用程序51將數(shù)據(jù)以每64kB分割,隨后USB 大容量驅動程序53附加各數(shù)據(jù)部指令、狀態(tài)并順次傳輸至USB主控制 器驅動程序54。此外,即使驅動程序側的數(shù)據(jù)傳輸量不存在上限,并且 應用程序51能夠執(zhí)行比64kB大的數(shù)據(jù)傳輸?shù)那闆r下,也有在應用程序 側以每64kB對數(shù)據(jù)進行分割的情況(例如Windows (注冊商標)標準 裝載的explorer等)。
因此,不論何種情況下,只要傳輸總數(shù)據(jù)量在規(guī)定量以上,就會產(chǎn) 生傳輸速度降低等問題。
另一方面,長久以來作為提高PC和設備之間傳輸速度的手段,在 設備控制器中設置緩沖存儲器,在此緩沖存儲器中緩存數(shù)據(jù), 一起進行 傳輸(例如參照專利文獻1)。就專利文獻1的裝置而言,當傳輸數(shù)據(jù)
5總量超過緩沖存儲器容量時,因為發(fā)生隨時寫入處理,因此對于超過緩 沖存儲器容量的數(shù)據(jù),不經(jīng)由緩沖存儲器直接傳輸。另外,已經(jīng)提出如下裝置具有多個緩沖存儲器,進行傳輸其中一 個緩沖存儲器數(shù)據(jù)的處理的同時,在其他緩沖存儲器中對上級的數(shù)據(jù)進 行緩存來提高傳輸速度(例如參照專利文獻2)的裝置;以及對指令、 數(shù)據(jù)、狀態(tài)分別進行緩存, 一起進行處理的裝置(例如參照專利文獻3)。另外,已經(jīng)提出如下裝置在PC側及設備側上有必要進行如上述 的對數(shù)據(jù)分割處理的情況下,PC側的設備控制器將一定程度的數(shù)據(jù)一起 傳輸,然后在設備側的控制部再次將其進行分割處理(例如參照專利文 獻4)。專利文獻l:特開平4-130523號公報 專利文獻2:特開2002-344537號公報 專利文獻3:特開2006-215891號公報 專利文獻4:特開2001-154811號7>才艮發(fā)明內(nèi)容發(fā)明要解決的課題但是,專利文獻1記載的裝置在應用程序和驅動程序將數(shù)據(jù)進行 分割時并不能實現(xiàn)高速化。而且,專利文獻2及專利文獻3記載的裝 置雖然能夠使傳輸部的處理速度提高,但在應用程序或驅動程序將數(shù) 據(jù)進行分割時,亦不能實現(xiàn)高速化。并且,專利文獻4記載的計算機系統(tǒng)中,有必要在設備側的控制 部中再次將數(shù)據(jù)分割并處理。而且,讀取時,設備側控制部需要先合 并被分割的各請求后再進行數(shù)據(jù)傳輸?shù)慕Y構。因此,本發(fā)明的目的是提供一種當傳輸?shù)目倲?shù)據(jù)量為規(guī)定量時, 在其設備側不需要特別的結構而能夠提高傳輸速度的設備控制器。解決課題的方法本發(fā)明的設備控制器是連接于應用程序或設備驅動程序和對象設 備之間的設備控制器,其特征在于,包括高速緩沖存儲器,緩存從上 述應用程序或設備驅動程序接收的數(shù)據(jù)以及從上述對象設備接收的數(shù)中緩存的數(shù)據(jù)傳輸至上述對象設備 以及上述應用程序或設備驅動程序;上述控制部從上述應用程序或設備驅動程序接收一個或多個讀取或 寫入請求,將此一個或多個讀取或寫入請求作為多份請求合并后的讀取 或寫入請求,通過將其傳輸至上述對象設備來將數(shù)據(jù)緩存于上述高速緩 沖存儲器中。也就是,對從應用程序和設備驅動程序接收的讀取或寫入請求進 行合并后傳輸至設備。由此,緩存從應用程序或設備驅動程序接收的 數(shù)據(jù)并作為一定程度容量的數(shù)據(jù), 一起傳輸至對象設備。并且,與其 相反,從對象設備將一定程度容量的數(shù)據(jù)作為一起接受、緩存的數(shù)據(jù), 順次傳輸至應用程序和設備驅動程序。即使是應用程序和設備驅動程 序對傳輸數(shù)據(jù)容量進行限制,分割后傳輸數(shù)據(jù)的情況,通過將一定程 度容量的數(shù)據(jù)合并后作為一個(或者減少數(shù)量)指令、狀態(tài)而發(fā)出、 傳輸,由此實現(xiàn)高速化。并且,當收到讀取請求時,若與此請求對應 的數(shù)據(jù)被緩存于高速緩沖存儲器,就能夠對其進行傳輸。若將傳輸過 一次的數(shù)據(jù)進行緩存,則下次收到同樣的數(shù)據(jù)讀取請求時能夠高速傳 輸。并且, 一般來說,因為存儲設備的隨機存取伴隨讀寫頭的尋道動 作,因此這會引起傳輸速度的降低,但是如上述那樣通過從高速緩沖 存儲器傳輸數(shù)據(jù),就能夠減少對對象設備的讀取請求的發(fā)出頻率,并 也與對象設備隨機存取產(chǎn)生的頻率的減少相關,從而能夠實現(xiàn)進一步 的高速化。此外,對象設備為USB大容量存儲器時,可以將此種結構 的設備控制器更換為標準USB大容量存儲驅動程序,也可以在標準 USB大容量存儲驅動程序的下級處連接此種結構的設備控制器。并且,本發(fā)明的優(yōu)選方案,其特征在于,上述控制部從上述應用程 序或設備驅動程序接收到讀取或寫入請求時,對其后將發(fā)生的讀取或寫 入請求進行預測,并將該預測的讀取或寫入請求作為上述多份合并的讀 取或寫入請求,基于預測內(nèi)容來決定緩存于高速緩沖存儲器中數(shù)據(jù)。接收讀取或寫入請求時,通過預測其后將發(fā)生的讀取或寫入請求 來決定高速緩沖存儲器中所要保存的內(nèi)容。通過預先保存數(shù)據(jù)于高速 緩沖存儲器中,能期待提高特別是讀取時的高速化。另外,本發(fā)明進一步優(yōu)選方案,其特征在于,具有歷史記錄部, 該歷史記錄部記錄從上述應用程序或設備驅動程序接收到的讀取或寫入 請求的歷史,上述控制部基于上述歷史記錄部中記錄的讀取或寫入請求 的歷史來預測其后發(fā)生的讀取或寫入請求。
該構成中,記錄讀取或寫入請求的歷史。該歷史既可以記錄在
RAM上,也可以記錄在外圍設備和PC上。如果記錄在外圍i史備或 PC上則與外圍設備再連接或PC重新啟動時也能夠參照歷史。通過參 照該歷史來預測其后發(fā)生的讀取或寫入請求。例如,如果存在與此次 讀取或寫入請求一致的歷史時,合并與此關聯(lián)的歷史(例如區(qū)域號和 傳輸程序斷數(shù)量連續(xù)的),并作為一個連續(xù)的讀取或寫入請求來對待, 預測其后發(fā)生的讀取或寫入請求。
另外,本發(fā)明的進一步優(yōu)選方案,其特征在于,上述控制部包括 連接在上述應用程序或設備驅動程序側的上級控制部以及連接在對象設 備側的下級控制部,上述上級控制部從應用程序或設備驅動程序接收到 讀取或寫入請求時,將表示該請求內(nèi)容的信息發(fā)送至上述下級控制部; 上述下級控制部基于表示上述請求內(nèi)容的信息預測對其后發(fā)生的讀取或 寫入請求。
該結構具有上級控制部和下級控制部。上級控制部從應用程序或 設備驅動程序接收讀取或寫入請求時,將此內(nèi)容發(fā)送至下級控制部。 下級控制部根據(jù)所接收的內(nèi)容預測其后發(fā)生的讀取或寫入請求。即使 是上級控制部和下級控制部之間存在標準i殳備驅動程序(例如USB大 容量存儲驅動程序),此標準設備驅動程序限制傳輸數(shù)據(jù)容量,進行 分割后再傳輸數(shù)據(jù)的情況下,也因為應用程序或設備驅動程序的讀取 或寫入請求由從上級發(fā)送過來,從而能夠對應傳輸?shù)臄?shù)據(jù)內(nèi)容進行高 精度預測。
并且,本發(fā)明的設備控制器為 一種連接于應用程序或設備驅動程序 和對象設備之間的設備控制器,其特征在于,具有控制部,該控制部包上述上級控制部從應用程序或設備驅動程序接收到讀取或寫入請求 時,將此請求直接傳輸至上述下級控制部,上述下級控制部直接從上級 控制部接收到讀取或寫入請求時,基于該讀取或寫入請求,從上述對象 設備及上述應用程序或設備驅動程序傳輸數(shù)據(jù)。
所述結構中,上級控制部直接將讀取或寫入請求傳輸至下級控制 部。下級控制部根據(jù)請求,直接傳輸數(shù)據(jù)至下級、上級。因為應用程 序或驅動程序和對象設備之間沒有數(shù)據(jù)的分割傳輸,因此能期待高速 化。此外,作為為了直接傳輸讀取或寫入請求的觸發(fā)器可以考慮各種 形態(tài),例如只需判斷是否為規(guī)定量以上的傳輸數(shù)據(jù)容量。
并且,本發(fā)明優(yōu)選的方案,其特征在于,上述控制部具有高速緩沖 存儲器,該高速緩沖存儲器緩存從上述對象設備及上述應用程序或設備 驅動程序傳輸來的數(shù)據(jù),上述控制部當接收到上述寫入請求時,將與此 請求對應的數(shù)據(jù)緩存于上述高速緩沖存儲器中,當接收到上述讀取請求 時,如與此請求對應的數(shù)據(jù)被緩存于上述高速緩沖存儲器中,則將該數(shù) 據(jù)傳輸至上述應用程序或設備驅動程序。
該構成中,具有緩存?zhèn)鬏敂?shù)據(jù)的高速緩沖存儲器??刂撇拷邮盏?讀取請求時,在高速緩沖存儲器中有與此請求對應的數(shù)據(jù),則直接將 其傳輸。通過將傳輸過一次的數(shù)據(jù)緩存起來,下次接收到相同數(shù)據(jù)讀 取請求時就能夠進行高速傳輸。
并且,本發(fā)明進一步優(yōu)選方案,其特征在于,具有設定部,該設 定部設定上述高速緩沖存儲器的容量及數(shù)量,上述設定部在上述控制部 從上述應用程序或設備驅動程序接收到讀取或寫入請求時,基于讀取或 寫入數(shù)據(jù)的內(nèi)容、讀取或寫入數(shù)據(jù)的總容量、對象設備的類別或與對象 設備的傳輸速度,或者由這些任意組合的條件來設定上述高速緩沖存儲 器的容量及數(shù)量。
該結構中,對高速緩沖存儲器的容量、數(shù)量進行設定。若增大高 速緩沖存儲器容量,則能夠增加可以一次傳輸?shù)臄?shù)據(jù)量,若增加數(shù)量 也能夠進行并列處理。高速緩沖存儲器的數(shù)量及容量的設定方式基于 讀取或寫入數(shù)據(jù)的內(nèi)容、讀取或寫入數(shù)據(jù)的總容量以及對象設備的類 別或與對象設備的傳輸速度等。
發(fā)明效果根據(jù)本發(fā)明,由于能夠傳輸比應用程序或設備驅動程序限制的數(shù) 據(jù)量以上的數(shù)據(jù),因此能夠提高傳輸速度。
圖1是表示使用USB接口連接的PC及外接HDD的框圖。 圖2是表示單批量(bulk-only)協(xié)議構成的概念圖。 圖3是本實施方案的PC和外接HDD的框圖。 圖4是OS11上裝載的各種驅動程序的功能框圖。 圖5是表示上級驅動程序151以及下級驅動程序152的詳細結構的 功能框圖。
圖6是OSll上裝栽的各種驅動程序的功能框圖。 圖7是表示上級驅動程序151的工作的流程圖。 圖8是表示下級驅動程序152的工作的流程圖。 圖9是表示下級驅動程序152的工作的流程圖。 圖IO是表示指令結束中斷時的工作的流程圖。
圖ll是表示計時器中斷、初始化時、驅動程序結束時的工作的流程圖。
圖12是表示實現(xiàn)本發(fā)明設備控制器的其他實施例的框圖。 的結構的功能框圖。
附圖標記i兌明
1- PC
2- 外接HDD
具體實施例方式
作為裝載于PC的OS通常普及的有Windows (注冊商標)。本實 施方案中,使用附圖對在裝載Windows (注冊商標)XP的PC上連接 USB接口的外接HDD的情況進行說明。此外,本發(fā)明不對OS的類另'J、 連接設備的類別以及接口進行限定。
10圖3為本實施方案中PC和外接HDD的框圖。PCI和外接HDD2 通過USB接口 ( I/F )連接。PCI在管理整體的OS11上裝載有執(zhí)行各種 處理的應用程序101以及包括用于使外圍設備工作的各種驅動程序的驅 動程序102。應用程序101通過驅動程序102、 USB控制器12、以及 USBI/F13讀出(讀取)存儲在外接HDD2中的數(shù)據(jù),或將數(shù)據(jù)寫進(寫 入)外接HDD2中。
外接HDD2中控制器22通過USBI/F21接收讀取或寫入的請求,與 此相對應讀取存儲于HDD23中的數(shù)據(jù),或將數(shù)據(jù)寫入HDD23中。
圖4為裝載于OS11上的各種驅動程序的功能框圖。在該圖中,應 用程序101、通用盤驅動程序502、 USB大容量存儲驅動程序503、 USB 主控制器驅動程序504、上級驅動程序151以及下級驅動程序152是裝 載于OSll上的功能部。實際上,這些功能部以安裝于OSll上的軟件來 實現(xiàn)。
應用程序101通過驅動程序102中包含的各種驅動程序來執(zhí)行對外 接HDD2的讀取或寫入請求。該圖表示應用程序101發(fā)出寫入請求,傳
輸數(shù)據(jù)的例子。
應用程序101對上級驅動程序151發(fā)出寫入請求,傳輸應寫入外接 HDD2的HDD23中的數(shù)據(jù)。上級驅動程序151將此寫入請求及數(shù)據(jù)傳輸 至下級通用盤驅動程序502,并將從應用程序101有過寫入請求的信息 及顯示其數(shù)據(jù)量的信息作為存取信息發(fā)送至下級驅動程序152。關于上 級驅動程序151傳輸?shù)较录夠寗映绦?52的存取信息將在后面詳細陳述。
通用盤驅動程序502將從上級驅動程序151接收的數(shù)據(jù)傳輸至USB 大容量存驅動程序503。此時,因為USB大容量存儲驅動程序503的數(shù) 據(jù)傳輸量上限為64kB,因此通用盤驅動程序502將數(shù)據(jù)以每64kB分割 并傳輸至USB大容量存儲驅動程序503。
因為USB大容量存儲驅動程序503根據(jù)單批量傳輸協(xié)議(參照圖2 ) 執(zhí)行數(shù)據(jù)傳輸,因此對該分割成64KB的數(shù)據(jù)附加指令、狀態(tài),依次傳 輸至下級驅動程序152。
下級驅動程序152緩存從USB大容量存儲驅動程序503傳輸來的數(shù) 據(jù),在指定的時間傳輸至USB主控制器驅動程序504。 USB主控制器驅 動程序504將此數(shù)據(jù)傳輸至外接HDD2。因為下級驅動程序152將從USB大容量存儲驅動程序503傳輸來的數(shù)據(jù)進行緩存,并作為一定程度容量 (64kB以上)的數(shù)據(jù), 一起傳輸至USB主控制器驅動程序504,因此指 令、狀態(tài)的發(fā)出一次(或者比按每64kB賦予的要少)完成。從而,由 指令、狀態(tài)的處理時間導致的延遲最小化。此外,對從通用盤驅動程序 502傳輸至下級驅動程序152的數(shù)據(jù),雖然按每64kB附加指令、狀態(tài), 但因為此傳輸為OS上的存儲器(RAM)傳輸,因此與向外接HDD2的 數(shù)據(jù)傳輸速度相比十分高速(依靠RAM的傳輸速度)。
另外,該實施方案中,雖然有時應用程序IOI直接傳輸數(shù)據(jù)至USB 大容量存儲驅動程序503,與上述相同,因為USB大容量存儲驅動程序 503的數(shù)據(jù)傳輸量上限為64kB,應用程序101將數(shù)據(jù)以每64kB分割后 傳輸,USB大容量存儲驅動程序503傳輸賦予了指令、狀態(tài)的數(shù)據(jù)。此 時,因為下級驅動程序152將數(shù)據(jù)緩存后再傳輸至下級,因此能夠最小 化由指令、狀態(tài)信息處理時間導致的延遲。
接下來,對上級驅動程序151和下級驅動程序152的詳細的工作進 行說明。圖5為表示上級驅動程序151及下級驅動程序152詳細結構的 功能框圖。此外,與圖4相同的結構使用相同附圖標記,并省略其說明。 上級驅動程序151具有讀取、寫入請求接收部155。另外,下級驅動程 序152具有控制器156、數(shù)據(jù)庫157、高速緩沖存儲器158A~ 158C、計 時器159以及指令列160。
讀取、寫入請求接收部155接收從應用程序101發(fā)出的讀取或寫入 請求。讀取、寫入請求接收部155將該請求傳輸至下級通用盤驅動程序 502,并將請求內(nèi)容作為存取信息發(fā)送至下級驅動程序152。讀取或寫入 請求通過通用盤驅動程序502及USB大容量存儲驅動程序503傳輸至下 級驅動程序152。
在存取信息中,存儲有LBA ( Logical Block Addressing: HDD的區(qū)
段指定號)、傳輸程序段數(shù)量、傳輸方向等信息。傳輸程序段數(shù)量指傳 輸數(shù)據(jù)的容量。傳輸方向是表示是從下級至上級的傳輸(讀取)還是從 上級至下級的數(shù)據(jù)傳輸(寫入)的信息。
該存取信息作為預測數(shù)據(jù)庫存儲在下級驅動程序152的數(shù)據(jù)庫157 中。下級驅動程序152的控制器156接收從USB大容量存儲器驅動程序
12503的讀取或寫入請求時,參照數(shù)據(jù)庫157。通過參照預測數(shù)據(jù)庫,能夠 對傳輸數(shù)據(jù)容量進行預測。
另外,控制器156將從USB大容量存儲器驅動程序503接收到的讀 取或寫入請求作為歷史數(shù)據(jù)庫存儲于數(shù)據(jù)庫157中。歷史數(shù)據(jù)庫用于控 制器156生成、修正預測數(shù)據(jù)庫。即,接收到大容量存儲器驅動程序503 的讀取或寫入請求時,參照以往的歷史數(shù)據(jù)庫,將LBA、傳輸程序段、 傳輸方向相同或一部分相同(類似)的數(shù)據(jù)作為預測數(shù)據(jù)進行傳輸。另 外,當存在相同歷史時,能夠將與此關聯(lián)的歷史(例如基于LBA和傳輸 程序段數(shù)量,能夠判斷有過連續(xù)請求)進行合并、并作為一個指令存儲 于預測數(shù)據(jù)庫中。此外,雖然歷史數(shù)據(jù)庫存儲在該圖中的數(shù)據(jù)庫157內(nèi), 并被暫時存儲于RAM上,但是也可以將其存儲于PC1的OS11上,或 外接HDD2的HDD23上。由此,與外接HDD2再連接或PC1重新啟動 時也能夠參照以往的歷史。
如果從USB大容量存儲驅動程序503傳輸來的請求為讀取請求,則 控制器156能夠通過參照預測數(shù)據(jù)庫的傳輸程序段數(shù)量來預測傳輸數(shù)據(jù) 容量。此時,如果上級驅動程序151將存取信息發(fā)送至下級驅動程序152 并已經(jīng)存儲于預測數(shù)據(jù)庫之中,則能夠預測傳輸數(shù)據(jù)容量(應寫入的全 部數(shù)據(jù))。當控制器156預測為64kB以上的數(shù)據(jù)被傳輸時,將從上級 傳輸來的數(shù)據(jù)存儲于高速緩沖存儲器158A 158C中的任意一個中。
高速緩沖存儲器158A 158C為在RAM上虛擬形成的區(qū)域,其數(shù) 量及容量由控制器156設定。高速緩沖存儲器的數(shù)量及容量可以進行適 宜的設定,在該圖的例子中準備使用3個高速緩沖存儲器,其容量分別 設定為1MB。此外,能夠改變工作中高速緩沖存儲器的數(shù)量及容量。對
高速緩沖存儲器的數(shù)量及容量用戶可以進行手動設定,也可以如后述那 樣根據(jù)工作狀態(tài)適當改變。
如上所述,控制器156將從上級傳輸來的數(shù)據(jù)依次存儲于高速緩沖 存儲器158A~158C中的任一個中。存儲此寫入用數(shù)據(jù)的高速緩沖存儲 器成為寫入用高速緩沖存儲器。但是,因為USB大容量存儲驅動程序 503對每64kB附加指令、狀態(tài)后再傳輸數(shù)據(jù),控制器156每接收64kB 數(shù)據(jù)時,向USB大容量存儲驅動程序503反饋指令結束虛擬信號??刂破?56在指定時間對下級USB主控制器驅動程序504發(fā)出寫入 請求,并傳輸寫入用高速緩沖存儲器的數(shù)據(jù)。該指定時間為,寫入用高 速緩沖存儲器容量裝滿的時間,或者由計時器159的中斷處理所決定的 時間。從USB大容量存儲驅動程序503接收到寫入請求時,控制器156 使計時器159開始工作。另外,寫入用高速緩沖存儲器容量裝滿的情況 下,也對USB主控制器驅動程序504發(fā)出寫入請求,傳輸寫入用高速緩 沖存儲器的數(shù)據(jù)。
此夕卜,USB主控制器驅動程序504以下的下級執(zhí)行其他處理的時候, 控制器156暫時將寫入請求登記于指令列160中,隨后當下級處理有空 閑時執(zhí)行寫入請求。此外,無計時器的時候,因為寫入用高速緩沖存儲 器的內(nèi)容保持原樣并且不被寫入HDD23中,因此此狀態(tài)下如發(fā)生異常 (USB數(shù)據(jù)線被切斷、PC1死機等情況),則可能產(chǎn)生本來應寫入HDD23 中的數(shù)據(jù)被破壞、文件破損等損失。因此,使用計時器,例如經(jīng)過一定 時間的無指令發(fā)出狀態(tài)時,通過寫入寫入用高速緩沖存儲器中的內(nèi)容, 防止異常情況時的文件破壞等。
如上所述,從應用程序101開始執(zhí)行數(shù)據(jù)的寫入。接下來,在圖6 中,示出了應用程序IOI發(fā)出讀取請求、傳輸數(shù)據(jù)的例子。
圖6為OSll上裝載的各種驅動程序的功能框圖。此外,對于和圖4 共同的結構給予相同的附圖標記,并省略其說明。
首先,應用程序101對上級驅動程序151發(fā)出讀取請求。上級驅動 程序151將此請求傳輸至下級通用盤驅動程序502,并將從應用程序101 接收了讀取請求的意思(存取信息)傳輸至下級驅動程序152。
通用盤驅動程序502將從上級驅動程序151接收到的讀取請求傳輸 至USB大容量存儲驅動程序503。此時,因為USB大容量存儲驅動程序 503的數(shù)據(jù)傳輸量上限為64kB,因此通用盤驅動程序502以每64kB分 割讀取請求。USB大容量存儲驅動程序503將分割成每64kB的讀取請 求傳輸至下級驅動程序152。
下級驅動程序152從USB大容量存儲驅動程序503接收到分割成每 64kB的讀取請求時,預測此后將連續(xù)接收讀取請求,對USB主控制器 驅動程序504發(fā)出預測讀取請求,以傳輸一定程度容量的數(shù)據(jù)。USB主 控制器驅動程序504基于此預測讀取請求,從HDD2的HDD23中讀出一定程度容量的數(shù)據(jù)。該讀取數(shù)據(jù)緩存于下級驅動程序152中。下級驅 動程序152根據(jù)從USB大容量存儲驅動程序503接收到的讀取請求,將 緩存的數(shù)據(jù)順次傳輸至上級。所謂一定程度的容量,雖燃可以進行適當 的設定,但傳輸容量過大則傳輸速度變慢。即,由于等待傳輸結束,并 確認其傳輸正常結束的狀態(tài)之前不能開始向上級傳輸緩存的數(shù)據(jù),因此 這也是成為傳輸速度變慢的原因。并且,有必要使讀取用高速緩沖存儲 器的容量變大。
因此,控制器156最初接收到64kB (或其以下,32kB等亦可)的 讀取請求時,讀出其指定倍數(shù)(例如32kB的4倍128kB )容量的數(shù)據(jù)并 緩存。此緩存的數(shù)據(jù)如果后來全部傳輸至上級,則讀出更高指定倍數(shù)(例 如128kB的4倍512kB )容量的數(shù)據(jù)。這樣,通過逐漸增大緩存的數(shù)據(jù) 的容量,抑制傳輸時間的同時,能夠對讀取用高速緩沖存儲器的容量進 4亍適當i殳定。
這樣,下級驅動程序152通過從外接HDD2 —次性讀取一定程度容 量的數(shù)據(jù)并緩存,使得對于外接HDD2的命令、狀態(tài)的發(fā)出能夠一次(或 者比按每64kB賦予的要少)完成。從而,使由指令、狀態(tài)的處理時間 導致的延遲最小化。此外,雖然從下級驅動程序152傳輸?shù)酵ㄓ帽P驅動 程序502的數(shù)據(jù)分割成64kB,但因為該傳輸為OS上的存儲器(RAM) 傳輸,因此與從外接HDD2的數(shù)據(jù)傳輸速度相比十分高速(依靠RAM 傳輸速度)。
參照圖5,對上述讀取請求發(fā)生時的上級驅動程序151及下級驅動 程序152的詳細的工作進行i兌明。讀取、寫入請求接收部155從應用程 序101接收讀取請求。讀取、寫入請求接收部155將此請求傳輸至下級 通用盤驅動程序502,并將請求內(nèi)容作為存取信息發(fā)送至下級驅動程序 152。讀取請求通過通用盤驅動程序502及USB大容量存儲驅動程序503 被傳輸至下級驅動程序152。此外,從通用盤驅動程序502及USB大容 量存儲驅動程序503傳輸來的讀取請求被分割成每64kB的讀取請求。
上級驅動程序151發(fā)送的存取信息作為預測數(shù)據(jù)庫存儲于下級驅動 程序152的數(shù)據(jù)庫157中。下級驅動程序152的控制器156當接受到由 USB大容量存儲驅動程序503的讀取請求時,參照數(shù)據(jù)庫157。通過參 照預測數(shù)據(jù)庫,能夠預測傳輸數(shù)據(jù)的容量(應讀取的全部數(shù)據(jù))。
15另外,將從USB大容量存儲驅動程序503接收的讀取請求作為歷史 數(shù)據(jù)庫存儲于數(shù)據(jù)庫157中。當控制器156對預測數(shù)據(jù)庫進行生成、修 正操作時使用歷史數(shù)據(jù)庫。即,接收從USB大容量存儲驅動程序503的 讀取請求時,參照以往的歷史數(shù)據(jù)庫將LBA、傳輸程序段數(shù)量、傳輸方 向相同或類似的數(shù)據(jù)作為預測數(shù)據(jù)庫轉儲起來。當存在一致的歷史時, 也能夠將與此相關聯(lián)的歷史(例如基于LBA和傳輸程序段數(shù)量,判斷有 過連續(xù)要求)合并,作為一個指令存儲于預測數(shù)據(jù)庫中。
當控制器156從USB大容量存儲驅動程序503接收讀取請求時,通 過參照預測數(shù)據(jù)庫的傳輸程序段數(shù)量,能夠預測傳輸數(shù)據(jù)量(應讀取的 全部數(shù)據(jù))。當預測到進行64kB以上數(shù)據(jù)傳輸時,控制器156向USB 主控制器驅動程序504發(fā)出讀取請求,以傳輸存儲在預測數(shù)據(jù)庫中的 64kB以上數(shù)據(jù),將被傳輸?shù)臄?shù)據(jù)存儲于高速緩沖存儲器158A~ 158C的 任意一個中。
存儲所述數(shù)據(jù)的高速緩沖存儲器成為讀取用緩沖存儲器。與從USB 大容量存儲驅動程序503傳輸來的讀取請求相對應,控制器156順次傳 輸讀取用高速緩沖存儲器的數(shù)據(jù)。此外,當上級驅動程序151發(fā)出應讀 取的全部數(shù)據(jù)的存取信息時,雖然能夠將全部數(shù)據(jù)正確地存儲于讀取用 高速緩沖存儲器中,但當應用程序101直接對USB大容量存儲驅動程序 503發(fā)出讀取請求或上級驅動程序151不發(fā)出應讀取的全部數(shù)據(jù)的存取 信息時,就有必要在控制器156從上級接收到讀取請求時生成預測數(shù)據(jù) 庫。此時,參照如上述的歷史數(shù)據(jù)庫即可。例如,最初接收64kB(或其 以下)讀取請求時,預測為指定倍數(shù)容量的數(shù)據(jù)從與該讀取請求相連續(xù) 的初始LBA被讀取。從上級驅動程序接收到與預測的初始LBA對應的 讀取請求時,執(zhí)行其預測容量的讀取,當所預測的數(shù)據(jù)全部通過上級驅 動程序讀取時,還預測為更高的指定倍數(shù)容量的數(shù)據(jù)從與該預測讀取相 連續(xù)的初始LBA,皮讀取。
如上所述,由應用程序101執(zhí)4亍數(shù)據(jù)的讀取。
接下來,使用流程圖對上級驅動程序151以及下級驅動程序152的 工作進行說明。圖7 (A)為表示上級驅動程序151工作的流程圖。上級 驅動程序151從應用程序接收到讀取、寫入請求時,將此請求內(nèi)容作為 存取信息發(fā)送至下級驅動程序152 (sl)。另外,上級驅動程序151向下級(通用盤驅動程序502)傳輸讀取、寫入請求(s2)。存取信息作為預 測數(shù)據(jù)庫存儲于下級驅動程序152的數(shù)據(jù)庫157中。
此外,上級驅動程序151也能夠執(zhí)行如圖7 (B)及圖13所示的工 作。圖7 (B)為表示上級驅動程序151的其他工作的流程圖,圖13為 表示執(zhí)行所述工作時的上級驅動程序151及下級驅動程序152的詳細結 構的功能框圖。另外,對于與圖5相同的結構,給予相同的附圖標記并 省略其說明。
圖7(B)中,上級驅動程序151從應用程序收到讀取、寫入請求時, 對傳輸數(shù)據(jù)容量是否在規(guī)定量以上(例如64kB以上)進行判斷(s5)。 如不在規(guī)定量以上則將請求內(nèi)容作為存取信息傳輸至下級驅動程序152 (s6),傳輸讀取、寫入請求至通用盤驅動程序502 (s7)。如果在規(guī)定 量以上,則如圖13所示,將讀取、寫入請求直接傳輸至下級驅動程序 152的控制器156 (s8)。此種情況下,不向通用盤驅動程序502傳輸讀 取、寫入請求。通過將讀取、寫入請求直接傳輸至控制器156,不必將 數(shù)據(jù)分割成64kB而能進行傳輸。并且,因為不通過通用盤驅動程序502 以及USB大容量存儲驅動程序503,因此能夠縮短處理時間,且可以使 傳輸更加高速化。若傳輸數(shù)據(jù)容量不在規(guī)定量以上,則因為USB大容量 存儲驅動程序能夠一次處理數(shù)據(jù),所以將其傳輸至下級(通用盤驅動程 序502 )。
此外,可以將s5處理替換成是否為讀取請求的判斷。若是讀取請求 則直接轉送至下級驅動程序152的控制器156。因為控制器156在從上 級(USB大容量存儲驅動程序)接收到讀取、寫入請求時進行預測處理, 特別是,在讀取時基于預測結果從設備中讀出一定程度的數(shù)據(jù)容量,并 緩存后向上級反饋,因此有可能發(fā)生與此相應的延遲。因此,請求讀取 時從上級驅動程序151直接將此請求傳輸至控制器156,不執(zhí)行預測處 理和緩存處理,因此能夠縮短傳輸時間(至傳輸開始的時間)。
此外,在判斷是否為讀取請求和判斷s5中可以執(zhí)行其中之一,亦可 以兩種都執(zhí)行。此外,也可以采用其他判斷方法。例如,重視從設備側 預先讀出數(shù)據(jù)并緩存時(應用程序重復存取相同數(shù)據(jù)內(nèi)容的情況),請 求讀取時也不直接將請求傳輸至控制器156,而是傳輸至下級。上級驅 動程序151直接將讀取、寫入請求傳輸至下級驅動程序152的控制器156時,在高速緩沖存儲器中不積存數(shù)據(jù)。因此,如果是應用程序于同一文 件中存取的情況,則傳輸至下級以將數(shù)據(jù)積存于高速緩沖存儲器中即可。
但是,由于下級驅動程序152在傳輸數(shù)據(jù)的同時將此數(shù)據(jù)復制到高速緩 沖存儲器中,所以即使是直接收到讀取、寫入請求的情況,也能夠積存 數(shù)據(jù)。此種情況下,因為是RAM上的復制,所以復制速度快,而且并 不顯著降低處理速度。
圖8及圖9是表示下級驅動程序152的工作的流程圖。當接收到從 上級驅動程序(USB大容量存儲驅動程序503或應用程序101)的讀取 請求、寫入請求或其他請求時,才開始該工作。
首先,下級驅動程序152執(zhí)行存取預測(sll)。存取預測通過參照 從上級驅動程序151傳輸來的存取信息或歷史數(shù)據(jù)庫進行?;蛘?,亦可 以如下述方式進行精密存取預測。
(1) 基于文件系統(tǒng)的預測
該預測方法是通過對外接HDD2的文件系統(tǒng)進行解析來執(zhí)行存取預 測的方法。HDD的文件例如為FAT文件系統(tǒng)格式的情況下,則通過參 照文件管理區(qū)域,能夠對每個文件的記錄位置(區(qū)段)和大小進行判斷。 從而,當收到從上級應用程序或驅動程序的讀取請求時,預測為在與該 請求指示記錄位置相對應的文件的數(shù)據(jù)中有存取。并且通過預測為不執(zhí) 行文件大小以上的讀取,不執(zhí)行非必要的讀取,從而減少無用的處理時 間。
此外,該文件管理區(qū)域因為是頻繁執(zhí)行存取的區(qū)域,所以可以在讀 取用高速緩沖存儲器中進行讀取、保存。不用每次在HDD2中存取,通 過存取保存在讀取用高速緩沖存儲器中的文件管理區(qū)域,就能夠減少存 取預測的處理時間。
(2) 基于設備類別、存儲信息類別的預測 該預測方法是基于被連接對象設備的種類(上述實施方案中的
HDD)或應傳輸數(shù)據(jù)的文件結構(存儲信息類別)來執(zhí)行存取預測的方 法。例如,被連接設備為DVD-ROM,且在此設備中插有DVD-Video 介質時,順次讀取、無寫入請求。因此,生成數(shù)據(jù)庫使緩存數(shù)據(jù)直到裝 滿讀取用高速緩沖存儲器為止。此外,當讀取用高速緩沖存儲器中緩存的數(shù)據(jù)被全部讀取時,立刻刪除該緩存數(shù)據(jù)并緩存新數(shù)據(jù),則能夠有效 率地使用讀取用高速緩沖存儲器。
另外,使高速緩沖存儲器的數(shù)量及容量變化時,能夠根據(jù)設備類別
使其變化。例如,如上所述插有DVD-Video介質時,因為沒有寫入請求, 因此增加讀取用高速緩沖存儲器的數(shù)量,并將其容量設定成大容量。相 反,插有未寫入DVD-R介質時,因為主要是寫入請求,所以增加寫入 用高速緩沖存儲器數(shù)量,并將其容量設定成大容量。
(3) 基于傳輸速度解析的預測 此預測方法是基于上述設備類別、存儲信息類別進行預測的應用例,
根據(jù)設備類別判斷數(shù)據(jù)傳輸速度趨勢,并以此來進行存取預測的方法。 例如,連接多層型DVD介質的情況下,越過各層邊界線的隨機存取的傳 輸速度十分緩慢。因此,以降低跨過各層邊界線的存取頻率的方式緩存 信息,由此生成預測數(shù)據(jù)庫。
另外,當使高速緩沖存儲器數(shù)量及容量變化時,也能夠根據(jù)設備類 別和數(shù)據(jù)傳輸速度趨勢來變化。例如,當與對象設備的數(shù)據(jù)傳輸速度緩 慢時(例如USB MO (光磁盤)大致4MB/s左右時),即使增大高速緩
:Jy左idt悠々旦A"^r 右丄旦4二丄P 7。 HP! A広J*必L丄F /1 士乂 ,土必;丄-》& ,k^
'I tj 巾一 _^c '7 、i r^s-' i j z 、 : ^w-j/t3 ,(—『"j、 ,i~j/p , -< "J^4^a^'j7ij-^^ ,
所以不能期望其傳輸速度提高。因此,當與對象設備的數(shù)據(jù)傳輸速度遲
緩時,將高速緩沖存儲器容量設定成小,并抑制RAM消耗。
(4) 讀取請求時漸漸增加一次傳輸?shù)臄?shù)據(jù)量的方法 此預測方法是當讀取請求時,基于用上述(l) ~ (3)的方法來預
測的讀取請求,對預測數(shù)據(jù)庫進行修正(分割)的方法,以免從對象設 備一次性地進行數(shù)據(jù)傳輸。例如將預測數(shù)據(jù)庫修正為首先緩存讀取請求 的指定倍數(shù)(例如4倍)容量的數(shù)據(jù)。當該緩存數(shù)據(jù)全部被傳輸至上級 時,則將預測數(shù)據(jù)庫修正為緩存更高指定倍數(shù)容量的數(shù)據(jù)。通過順次增 大緩存數(shù)據(jù)容量,能夠抑制傳輸時間。另外,還能夠減少由于實際請求 和預測數(shù)據(jù)庫的不同而其后無讀取請求時浪費的數(shù)據(jù)量。而且,能夠通 過隨時改變高速緩沖存儲器容量來控制RAM的消耗。此外,也可以在 實際執(zhí)行讀取請求時(后述s29處理時)對預測數(shù)據(jù)庫進行修正處理。
如上所述那樣進行存取預測。此外,高速緩沖存儲器數(shù)量和容量可 由用戶來手動設定。而且,寫入用高速緩沖存儲器和讀取用高速緩沖存儲器的確保數(shù)量能由用戶來設定。當用戶想使讀取為優(yōu)先時增加讀取用 高速緩沖存儲器的數(shù)量,當使寫入為優(yōu)先時增加寫入用高速緩沖存儲器 的數(shù)量。
接下來,在圖8及圖9中,下級驅動程序152對從上級傳輸來的請 求內(nèi)容進行判斷(sl2)。如不是讀取、寫入請求,則判斷對象設備是否 正在執(zhí)行其他讀取、寫入請求(sl3),若處理為空閑則將此請求傳輸至 下位側(s14 )。如果正在執(zhí)行其他處理,則將此請求登記于指令列(s15 )。 若登記到指令列,則以后處理為空閑時就能夠執(zhí)行。并且,收到如FLUSH CACHE指令這樣的、如指示寫入寫入用高速緩沖存儲器數(shù)據(jù)這樣的指 示的情況,此時將寫入用高速緩沖存儲器中緩存的數(shù)據(jù)傳輸至下級。
s12中,下級驅動程序152當判斷為讀取、寫入請求時,參照高速 緩沖存儲器(sl6)。在此,如果從上級收到的請求為讀取請求,且在讀 取用高速緩沖存儲器或寫入用高速緩沖存儲器中緩存有相符合的數(shù)據(jù), 則將其傳輸至上級,并反饋指令的結束(sl7)。
s12中,下級驅動程序152判斷為來自上級的請求為連續(xù)的寫入請 求時,將數(shù)據(jù)連續(xù)寫進寫入用高速緩沖存儲器中,并反饋指令的結束(s16 —s18)。隨后,判斷寫入用高速緩沖存儲器容量是否已滿(sl9),若 容量未滿則啟動計時器(s20),結束工作。
s19中,寫入用高速緩沖存儲器容量已滿時,判斷對象設備是否正 執(zhí)行其他讀取、寫入等處理(s21),若處理為空閑則將寫入請求發(fā)送到 下級,并傳輸緩存的數(shù)據(jù)(s22)。如果正執(zhí)行其他處理則將寫入請求登 記在指令列中(s23)。若登記于指令列,則其后處理為空閑時就能夠執(zhí) 行。
s16中,下級驅動程序152判斷為沒有符合來自上級的請求的緩存 數(shù)據(jù)時,通過參照預測數(shù)據(jù)庫來比較來自上級的請求和預測數(shù)據(jù)庫的內(nèi) 容(s24)。若預測數(shù)據(jù)庫內(nèi)容與來自上級的請求不一致(LBA和傳輸 程序段數(shù)量不一致),則將此請求按原樣傳輸至下級(s25)。此外,此 時如果下級正執(zhí)行其他處理,則可以先登記于指令列,隨后再執(zhí)行。
來自上級的請求為寫入請求,并且與預測數(shù)據(jù)庫內(nèi)容一致(LBA和 傳輸程序段數(shù)量一致)時,確保寫入用高速緩沖存儲器(s26)。在此, 如有空置的高速緩沖存儲器,則將此高速緩沖存儲器作為寫入用高速緩
20沖存儲器而確保,如果高速緩沖存儲器都作為寫入用或讀取用而被使用 時,將最早更新的高速緩沖存儲器內(nèi)容消去,確保寫入用高速緩沖存儲 器。此外,寫入用高速緩沖存儲器數(shù)據(jù)也可作為讀取用高速緩沖存儲器 數(shù)據(jù)而使用。
隨后,在確保的寫入用高速緩沖存儲器上保存從上級傳輸來的數(shù)據(jù),
并反饋指令的結束(s27)。
在s24中,下級驅動程序152判斷為來自上級的請求為讀取請求, 并與預測數(shù)據(jù)庫內(nèi)容一致(LBA和傳輸程序段數(shù)量一致)時,確保讀取 用高速緩沖存儲器(s28)。與上述相同,若有空置的高速緩沖存儲器則 將其作為讀取用高速緩沖存儲器,若沒有空置的則將最早更新的高速緩 沖存儲器的內(nèi)容消去并確保為讀取用高速緩沖存儲器。
隨后,基于預測數(shù)據(jù)庫,將預測部分的請求發(fā)送至下級,于讀取用 高速緩沖存儲器中緩存數(shù)據(jù)(s29)。此時,不用一次性緩存大量數(shù)據(jù), 可以分多次對數(shù)據(jù)進行存儲。此情況下,將余下的讀取請求登記在指令 列中。通過將讀取請求分割成多個,能夠將緩存完畢的數(shù)據(jù)傳輸至上級 驅動程序的同時,與其并列地將接下來的連續(xù)的讀取數(shù)據(jù)緩存,并能夠 提高USB總線的使用率。
接下來,圖IO是表示來自下級的指令結束中斷時的工作的流程圖。
首先,下級驅動程序152對從下級接收的指令結束是否為表示寫完 緩存在寫入用高速緩沖存儲器中數(shù)據(jù)的意思的指令進行判斷(s31)。當 完成了寫入用高速緩沖存儲器的數(shù)據(jù)的寫入時,將該寫入用高速緩沖存 儲器變更為讀取用高速緩沖存儲器(s32)。此外,將寫入用高速緩沖存 儲器變更為讀取用高速緩沖存儲器的時機并不局限于所述時機。而且, 如上所述,將寫入用高速緩沖存儲器數(shù)據(jù)作為讀取用高速緩沖存儲器數(shù) 據(jù)來使用顯然也是可能的。
隨后,下級驅動程序152判斷是否為有必要向上級進行結束報告(傳 輸)的指令(s33 )。若必要則向上級反饋指令結束(s34 )。
進而,下級驅動程序152參照指令列160,判斷是否有排隊指令存 在(s35)。存在排隊指令則將其傳輸至下級(s36)。
接下來,圖ll是表示計時器中斷、驅動程序初始化、驅動程序結束 時的工作的流程圖。首先,該圖中(A)是表示計時器中斷工作的流程圖。若計時器的 計時結束,下級驅動程序152則執(zhí)行此工作。下級驅動程序152確i^寫 入用高速緩沖存儲器中是否緩存有數(shù)據(jù)(s41)。如果緩存有數(shù)據(jù),則向 下級發(fā)送寫入請求,將在寫入用高速緩沖存儲器中緩存的信息傳輸至下 級(s42),然后結束工作。若寫入用高速緩沖存儲器中沒緩存數(shù)據(jù)則結 束工作。
該圖中(B)是表示驅動程序結束時的工作的流程圖。在關閉PC時, 解除外接HDD2連接時開始此工作。下級驅動程序152將歷史數(shù)據(jù)庫轉 記保存于外接HDD2或OS11上。
該圖中(C)是表示驅動程序初始化工作的流程圖。重新啟動PC1 或再次連接外接HDD2時開始此工作。下級驅動程序152將歷史數(shù)據(jù)庫 從外接HDD2或OS11中讀出,在RAM中展開以構建數(shù)據(jù)庫157( s61 )。
此外,雖然上述實施方案示出了實現(xiàn)上級驅動程序151、下級驅動 程序152,并將其連接到通用盤驅動程序502或USB大容量存儲驅動程 序503的例子,但是將USB大容量存儲驅動程序503更換為專用驅動程 序亦能夠實現(xiàn)本發(fā)明的設備控制器。圖12是表示將USB大容量存儲驅 動程序更換為專用驅動程序時的例子的功能框圖。此外,與圖4相同的 結構使用相同附圖標記,并省略其說明。
該例子中,具有連接于USB主控制器驅動程序504、通用盤驅動程 序502以及應用程序101的專用USB大容量存儲類驅動程序171。專用 USB大容量存儲類驅動程序171是用來替換以往的標準USB大容量存儲 驅動程序的(參照圖1)。
該專用USB大容量存儲類驅動程序171,與上述實施方案相同,內(nèi) 置有高速緩沖存儲器,與從上級接收的讀取、寫入請求相對應地緩存數(shù) 據(jù)。專用USB大容量存儲類驅動程序171的工作和圖8至圖10中示出 的下級驅動程序的工作相同。
在該例子中,應用程序101將數(shù)據(jù)以每64kB分割,在發(fā)出讀取或 寫入請求時,專用USB大容量存儲類驅動程序171將數(shù)據(jù)緩存在高速緩 沖存儲器中,并傳輸數(shù)據(jù)。
此外,該專用USB大容量存儲類驅動程序171不存在64kB的數(shù)據(jù) 傳輸量的上限,因此能夠處理比64kB大的讀取或寫入請求。因此,由
22于應用程序101或通用盤驅動程序501不必將讀取或寫入請求以64kB 為單位分割就能夠發(fā)出,所以指令、狀態(tài)的處理的延遲縮短,從而能夠 使數(shù)據(jù)傳輸高速化。
權利要求
1.一種連接于應用程序或設備驅動程序和對象設備之間的設備控制器,其特征在于,包括高速緩沖存儲器,緩存從上述應用程序或設備驅動程序接收的數(shù)據(jù)以及從上述對象設備接收的數(shù)據(jù);控制部,將上述高速緩沖存儲器中緩存的數(shù)據(jù)傳輸至上述對象設備以及上述應用程序或設備驅動程序;上述控制部從上述應用程序或設備驅動程序接收一個或多個讀取或寫入請求,將此一個或多個讀取或寫入請求作為多份請求合并后的讀取或寫入請求,通過將其傳輸至上述對象設備來將數(shù)據(jù)緩存于上述高速緩沖存儲器中。
2. 根據(jù)權利要求l所述的設備控制器,其中,上述控制部從上述應 用程序或設備驅動程序接收到讀取或寫入請求時,對其后將發(fā)生的讀取 或寫入請求進行預測,并將該預測的讀取或寫入請求作為上述多份合并 的讀取或寫入請求,基于預測內(nèi)容來決定緩存于高速緩沖存儲器中的數(shù) 據(jù)。
3. 根據(jù)權利要求2所述的設備控制器,具有歷史記錄部,該歷史記 錄部記錄從上述應用程序或設備驅動程序接收到的讀取或寫入請求的歷 史,上述控制部基于上述歷史記錄部中記錄的讀取或寫入請求的歷史來 預測其后發(fā)生的讀取或寫入請求。
4. 根據(jù)權利要求2或3所述的設備控制器,其中,上述控制部包括 連接在上述應用程序或設備驅動程序側的上級控制部以及連接在對象設 備側的下級控制部,上述上級控制部從應用程序或設備驅動程序接收到讀取或寫入請求 時,將表示該請求內(nèi)容的信息發(fā)送至上述下級控制部;上述下級控制部基于表示上述請求內(nèi)容的信息預測對其后發(fā)生的讀 取或寫入請求。
5. —種連接于應用程序或設備驅動程序和對象設備之間的設備控制 器,其特征在于,具有控制部,該控制部包括連接在上述應用程序或設備驅動程序側 的上級控制部以及連接在對象設備側的下級控制部,上述上級控制部從應用程序或設備驅動程序接收到讀取或寫入請求 時,將此請求直接傳輸至上述下級控制部,上述下級控制部直接從上級控制部接收到讀取或寫入請求時,基于 該讀取或寫入請求,從上述對象設備及上述應用程序或設備驅動程序傳
6. 根據(jù)權利要求5所述的設備控制器,其中,上述控制部具有高速 緩沖存儲器,該高速緩沖存儲器緩存從上述對象設備及上述應用程序或 設備驅動程序傳輸來的數(shù)據(jù),上述控制部當接收到上述寫入請求時,將與此請求對應的數(shù)據(jù)緩存 于上述高速緩沖存儲器中,當接收到上述讀取請求時,如與此請求對應 的數(shù)據(jù)被緩存于上述高速緩沖存儲器中,則將該數(shù)據(jù)傳輸至上述應用程 序或設備驅動程序。
7. 根據(jù)權利要求l、 2、 3、 4或6所述的設備控制器,具有設定部, 該設定部設定上述高速緩沖存儲器的容量及數(shù)量,取或寫入請求時,基于讀取或寫入數(shù)據(jù)的內(nèi)容、讀取或寫入數(shù)據(jù)的總容量、對象設備 的類別或與對象設備的傳輸速度,或者由這些任意組合的條件來設定上 述高速緩沖存儲器的容量及數(shù)量。
全文摘要
本發(fā)明提供一種當傳輸?shù)目倲?shù)據(jù)量超過規(guī)定量時,在其設備側不需要特別的結構而能夠提高傳輸速度的設備控制器。該設備控制器包含高速緩沖存儲器,緩存從應用程序或設備驅動程序接收的數(shù)據(jù)以及從上述對象設備接收的數(shù)據(jù);控制部,將上述高速緩沖存儲器中緩存的數(shù)據(jù)傳輸至上述對象設備及上述應用程序或設備驅動程序??刂撇繌纳霞壗邮兆x取或寫入請求,并將傳輸來的數(shù)據(jù)緩存于高速緩沖存儲器中。寫入時將從上級接收到的數(shù)據(jù)緩存,并作為一定程度容量的數(shù)據(jù)一起傳輸至下級。讀取時從下級將一定程度容量的數(shù)據(jù)一起讀取,發(fā)送至上級。
文檔編號G06F13/38GK101652765SQ200780052660
公開日2010年2月17日 申請日期2007年5月15日 優(yōu)先權日2007年4月20日
發(fā)明者豐田滿, 紙井秀之 申請人:媒體邏輯股份公司