国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      降低的本地總線通信量的磁盤驅動器操作的智能存儲引擎的制作方法

      文檔序號:6692774閱讀:265來源:國知局

      專利名稱::降低的本地總線通信量的磁盤驅動器操作的智能存儲引擎的制作方法
      技術領域
      :本發(fā)明涉及數字計算系統(tǒng),特別涉及降低與所選磁盤驅動器操作有關的本地總線通信量的方法和裝置。技術背景很多現(xiàn)代計算機器(包括如臺式或膝上型個人計算機)采用一個或一個以上硬盤驅動器來存儲操作系統(tǒng)、應用程序和數據文件。在一些情況下,多個磁盤驅動器可連接到單個PC,作為用以將操作系統(tǒng)與數據文件分開的構件、作為專門的音頻-視頻磁盤文件,或者以冗余獨立磁盤陣列(RAID)的配置彼此耦合以提高性能和可靠性。磁盤驅動器可以多種配置部署在機器內部或作為可移動設備部署在外部等。為了本申請案的目的,所有這些布置都認為是"連接的"驅動器。換句話說,我們在這里使用術語"連接的"意味著不需要使數據通過網絡就可以在本地總線和連接的驅動器之間傳輸數據。出于這個目的,可移動驅動器也認為是"連接的"。而且,在本申請案中,存儲設備如通過正EE1394、USB、SATA或其它類型的連接與主機耦合的磁盤驅動器也認為是直接"連接的",以與網絡連接區(qū)分。不論連接的磁盤驅動器存儲系統(tǒng)的數量、類型和布置如何,許多主機應用程序或操作涉及到將數據從一個磁盤驅動器上的一個位置移動(或復制)至同一驅動器上的另一位置、或至另一個邏輯分區(qū)、或者至一個物理上獨立的磁盤驅動器。其它常見操作包括在存儲在硬盤驅動器上的文件中查找特定數據,或者在備份應用程序中同步文件。這類操作或應用的例子包括文件復制、移動、磁盤驅動器碎片整理、反病毒掃描、數據掃描(査找),以及數據遷移和轉換。上述應用的已知實施方式需要涉及主機CPU,并且明顯地增加所述磁盤驅動器所連接的主機總線的負荷。(在本申請案中,術語"主機總線"和"本地總線"是可互換的。存在許多此類總線,其中PCI總線便是一個眾所周知的例子。)增加CPU負擔并在本地總線上強加繁重通信量的磁盤操作會因此導致其它不涉及文件移動操作的應用程序變慢,因為用于執(zhí)行這些后臺操作的同一主機數據總線也供其它應用程序使用。例如,關于如今存在的備份和反病毒應用程序最常見的抱怨之一是它們經常是強行執(zhí)行的,艮卩,它們會打斷當前的應用程序并且由于大量的數據需要穿過系統(tǒng)總線往復傳遞而經常將高速計算機的性能降低。最糟糕的是,當掃描或備份過程開始執(zhí)行時,如果系統(tǒng)內存幾乎用盡,這些基本的操作會導致過多的磁盤交換發(fā)生。為了圖示說明,圖1在簡化的概念圖10中表示計算機和連接的磁盤驅動器。所述圖顯示了一個正在運行的文件復制操作12,由一對進出磁盤驅動器16的數據流14表示。另外,正在運行的應用程序20使得CPU22對分別存儲在驅動器26和28上的其它數據執(zhí)行各種讀、寫和處理。涉及這些驅動器的讀和寫操作引起額外的數據流,如30、32所示。圖中的所有四個數據流導致本地總線34上的通信量。仍然需要通過硬件和軟件的智能應用來提高計算機系統(tǒng)的性能以更好地利用現(xiàn)有的資源。如果由特定的常見應用程序和操作(特別是那些涉及進出連接的存儲設備的數據傳送的應用程序和操作)強加在CPU和其本地總線上的負荷能夠減輕,那么整個系統(tǒng)的性能將會顯著提高。通過下面參照附圖對優(yōu)選實施例的詳細描述,可顯而易見地得知其它的方面和好處。
      發(fā)明內容無圖1是一個主機系統(tǒng)和連接的DAS磁盤驅動器的簡化概念圖(現(xiàn)有技術)。圖2是本發(fā)明一實施例中,采用"智能存儲引擎"(在下文中稱為"ISE")的主機系統(tǒng)和連接的DAS磁盤驅動器的簡化概念圖。圖3是用于說明本發(fā)明中ISE的一個實施例的簡化硬件方框圖。圖4是用于說明本發(fā)明中ISE的替代實施例的簡化硬件方框圖。圖5是用于說明本發(fā)明中ISE的一個實施例的簡化軟件方框圖。具體實施方式現(xiàn)有技術的缺陷和局限性可以通過新穎的智能存儲引擎概念的不同實施例解決。所述利用本地處理器智能且通過合適的應用編程接口(API)訪問的存儲引擎不增加CPU負荷并且不在本地CPU總線上強加數據通信量而執(zhí)行磁盤訪問操作,除了適當情況下的結果數據。本發(fā)明應用于基于PC的存儲等,其中一個硬驅動器密切耦合或直接連接在主機CPU內部本地總線上,或者支持外部直接連接存儲的外部擴展端口上,稱為"直接連接存儲"或數據采集系統(tǒng)(DAS)。這樣的CPU內部總線可以是,例如,總線規(guī)格中PCI族中的一種。外部端口可以是例如USB2,1394或者外部SATA端口。本發(fā)明可通過描繪圖2進行概念上的說明。所述圖顯示了與圖1相同的主機,其運行有與上述相同的文件復制操作以及應用程序。主要的不同在于ISE(智能存儲引擎)40,其在示例中為邏輯上部署在所述本地總線34和磁盤驅動器16,26,28之間的硬件和軟件的組合。圖1中的文件復制過程12不再是由CPU執(zhí)行而使得數據通過本地總線34往復地流動。在這里,改為由一個新的ISE過程42執(zhí)行文件復制操作,并且數據流不再在本地總線中移動,因此降低了本地總線和CPU的負荷。復制由ISE執(zhí)行,其僅僅通過本地總線傳遞很少的高級命令44。來自ISE的簡單應答能夠表明操作完成。在這個例子中,沒有用戶數據經過本地總線以執(zhí)行復制操作12。因此,在一方面,本發(fā)明能夠通過使用一個專門的,獨立的處理器或"存儲引擎"實施,其能夠從主機CPU上卸去某些與磁盤相關的功能的負荷,從而降低CPU以及這些驅動器正常連接的主機總線的額外開銷和負荷。本發(fā)明的另一方面,以對應用程序透明的方式支持存儲引擎。本發(fā)明的另一方面,所述存儲引擎能夠通過應用程序編程接口執(zhí)行增強功能,以便增強PC的整體性能。主機應用程序,庫函數,設備驅動器等能夠優(yōu)選地通過適合的API利用ISE。例如,單一命令"DS—DiskdataBlockC叩y"可用于CPU以通知ISE從驅動器16(或其它驅動器)的源位置向目的地位置復制一個數據塊。(見下面說明性的API函數和可能的語法)本發(fā)明的ISE通常包括一個主機接口,用于連接主機總線或"本地總線";一個驅動器接口,用于連接一個或一個以上磁盤驅動器;以及一個處理器,位于ISE本地。如圖3,換句話說,所述ISE處理器獨立于所述主機CPU或處理器。在一些實施例中,所述ISE還可以包括本地高速緩存存儲器。以及,所述ISE可以包括其它的存儲器用于存儲軟件,例如閃存存儲器(FLASHmemory)。在一個實施例中,所述主機接口實施標準接口,如ATA,快速ATA,AT應用編程接口(ATAPI)等,這些都是眾所周知的存儲設備接口。根據一個替代實施例,主機接口實施串行鏈路接口,如SATA接口。通常,所述ISE針對直接存儲連接應用程序而從主機上卸去特定任務的負荷,正如下面所詳細說明的。其能夠減輕主機CPU的負荷以及降低主機本地總線(比如PCI總線)上的通信量,以提高系統(tǒng)性能。在一個當前優(yōu)選實施例中,主機應用程序或者主機操作系統(tǒng)可以直接調用ISE。多個客戶應用程序或過程同樣能夠在很少或不對主機造成負荷的情況下部署。實例包含病毒掃描、備份同步支持、遷移、索引、碎片整理等等。幾乎任何在CPU和連接的磁盤驅動器存儲器之間的CPU本地總線上強加通信量的操作都可以全部或部分地卸荷給ISE,以提高整個系統(tǒng)的性能。在驅動器側,可以部署一個或一個以上磁盤驅動器的幾乎任何配置,這取決于所采用的磁盤控制器的能力。RAID功能實施為一個控制器設備(集成電路,專用集成電路(ASIC),系統(tǒng)芯片(SOC),印刷電路板(PCB)等)是有利的,其還可以實施ISE的功能。本發(fā)明包括如下有益效果復制或備份大的數千兆字節(jié)級視頻文件不再占用主機總線或CPU。在減少涉及主機CPU的情況下支持數據流。反病毒程序可以在不中斷應用程序的情況下在后臺運行。在數據經過驅動器的接口時對其進行活動掃描(反病毒)。后臺碎片整理可以更頻繁進行。圖3是簡化的硬件方框圖,用于說明ISE76的一個實施例。在這個當前優(yōu)選實施例中,所述ISE包括一個ISE處理器內核80,其可以包括,例如,66兆赫或100兆赫IP內核處理器。所述引擎具有主機接口78,用于連接到主機本地總線84,如通常用于個人計算機和其它基于微處理器的系統(tǒng)的PCI總線。一個主機直接存儲器訪問(DMA)塊82用本地總線(或"CPU總線"——在這里的意義相同)實施DMA操作。一個本地高速緩存存儲器86可以被所述存儲引擎訪問或者設在所述存儲引擎內用于數據緩沖以優(yōu)化整個系統(tǒng)性能??梢允褂肧DRAM等在主機接口和驅動器接口之間的數據路徑中進行數據緩沖。對于目前的技術,大約512MB緩存應所述足夠,這也可以根據存儲器和相關接口的發(fā)展而變化。另外,本地軟件存儲器,例如使用FLASH存儲器88,優(yōu)選地實施為能存儲和更新可以由所述ISE處理器80執(zhí)行的軟件。也可以使用各種形式的只讀存儲器(ROM)。如果需要,主機接口78可以實施ATA模擬,如共同轉讓的標題為"RAIDControllerSystemandMethodwithATAEmulationHostInterface"的第6,772,108Bl號美國專禾lj所述,其以引用的形式并入本文中。在一個實施例中,數據路徑帶寬可以是高速緩存器800MB/S;主機533MB/S;以及驅動器400MB/S。標記為"RAIDXOR"的方框90指用于實施RAID操作的構件,優(yōu)選地是在數據路徑上"即時"的。磁盤驅動器存儲系統(tǒng)的即時的異或(XOR)冗余操作在第6,018,778號美國專利中描述,其以引用的形式并入本文中。磁盤驅動器接口92可以采用各種形式。在一個簡單的例子中,其包括標準ATA接口,用于連接最多4個IDE磁盤驅動器。其可包括一個或一個以上UDMA接口;或者一個或一個以上SATA接口;或其它技術。本發(fā)明的ISE概念可應用于DAS系統(tǒng)中可用的任何需要的磁盤驅動器/驅動器接口技術。標記為驅動器切換器94的方框本質上包括數據路徑切換和匹配函數,如申請人的第WO2004/095255A2號PCT國際公開案以及相應的第US-2004-0264309Al號美國專利申請公開案,其均以引用的形式并入本文中。在當前優(yōu)選商業(yè)實施例中,RAID異或引擎包括在這個驅動器切換器94中,盡管在圖3中表示為一個獨立的方框。圖4為存儲引擎另一實施例的簡化的方框圖。類似圖3或4的實施例可以方便地實施為磁盤控制器單元的一部分,例如,在主板或者子板上。在這個例子中,設有一個100兆赫的專門存儲處理器,盡管根據需要支持的所要功能或者性能要求,其頻率可高出或低出許多。高速緩存器可以包含1GB或者更多,這取決于應用程序要求。在圖4的例子中,數據路徑帶寬可以是高速緩存器2GB/S;PCI-Express主機接口250MB/S(IX)或者1GB/S(4X);以及驅動器1.2GB/S。另一實施例實施多達如512個64位字的數據活動掃描和匹配,用于類似病毒簽名掃描的應用程序。RAID等級O,1,XL,5都可以包括在內。在進出所述主機總線的數據傳送之前,也可對數據流和數據流隊列進行管理。操作在運行中,有兩個一般類型的操作。根據第一模式,標準文件操作,如文件復制和文件移動,被文件系統(tǒng)過濾器截取并且直接送到所述ISE以在驅動器之間移動數據塊。在第二模式中,定義一個API用于第三方應用程序,如反病毒軟件、備份軟件、磁盤鏡像、磁盤碎片整理工具等等。其中每個都將依次討論?,F(xiàn)在參考圖5,這個簡化的命令和數據流程圖表示應用程序50,其可以使用或可以不使用DriectStorAPI命令。文件系統(tǒng)過濾器模塊54監(jiān)視給操作系統(tǒng)(OS)文件系統(tǒng)56的命令。其檢查給出的命令是否指向當前連接在與所述存儲引擎66相關的控制器的磁盤驅動器。如果所述命令指向這樣的驅動器(例如,圖5中的驅動器B(72))并且如果一個命令被所述過濾器54辨識出是其能夠處理的預定命令集中的一個,那么所述過濾器54截取所述命令,這樣所述命令不會到達標準操作系統(tǒng)文件系統(tǒng),所述文件系統(tǒng)由內核56和標準磁盤驅動器代碼58實施。而是,所述過濾取54使用DirectStorAPI直接向經裝配以實施所述API的特定驅動器60發(fā)送一個或一個以上命令。所述驅動器60設置為能夠識別DirectStorAPI命令并且將它們直接轉遞到所述存儲引擎66以執(zhí)行。在另一實施例中,第三方應用程序50在其代碼中使用了DSAPI52。因而,所述應用程序將命令直接發(fā)送給所述驅動器60,驅動器60又將它們轉遞給所述存儲引擎66。所述存儲引擎響應于DSAPI而執(zhí)行代碼,以執(zhí)行磁盤驅動器操作,如本地移動和復制,意味著不需要在PCI總線62上放置任何數據。對所述引擎的每次調用都被分配一個標簽用于識別,正如下面進一步說明的。所述引擎66可選地包括高速緩存存儲器68用于緩沖進出連接的驅動器A(70)和/或B(72)的數據傳送,從而直到操作完成為止不需要穿過所述PCI本地總線以及不使用主機CPU循環(huán)。正如所提到的,任何合適的隨機訪問存儲器都可以用來實施所述高速緩存,如DRAM或SDRAM。在一個實施例中,一個磁盤控制器印刷電路板在其板上包括存儲引擎和高速緩存,連同主機和驅動器接口。這些API為獨立軟件開發(fā)商(ISV)定義,如反病毒、游戲、流數字媒體密集的應用程序、可能會要求私人安全隱藏存儲空間的應用程序、備份和碎片整理軟件。通過調用這些API,所述應用程序能夠直接向NetCellISE發(fā)送命令。所述API能夠以任何形式實施或者發(fā)布,包括但不限于——動態(tài)連接庫(DLL)。--Windows月艮*?!M建對象模型(COM)對象。下面是ISE激活的主機應用程序/庫/設備驅動器與本發(fā)明一個實施例的ISE之間的ISEATA命令接口的說明性例子。這個實施例中使用商標"DirectStor"作為智能存儲引擎的簡寫形式。DirectStor說明性命令特征集塊復制/移動命令1、說明這些命令/子命令定義為在兩個數組之間復制或移動數據塊,或者在同一數組內移動數據。第二數組可以是與第一數組連接到同一個卡的內部數組或者是連接到eSATA端口的外部數組。2、命令代碼83h3、子命令先前的特征寄存器的目錄具體說明這些子命令。-MOVE—SET—SRC—LBA-MOVE—SET丄AST—LBA-MOVE—SET—DEST—LBA-MOVE—PROCEED-MOVE—SUSPEND-MOVE—ABORT-MOVE_STATUSMOVE—SET—SRC—LBA用于設置所述源數組的起始邏輯塊地址(LBA)的子命令。輸入<table>tableseeoriginaldocumentpage11</column></row><table>注意所述命令標簽為任意8位正數。其必須與序列的第一個命令匹配。輸出<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>輸出<table>tableseeoriginaldocumentpage12</column></row><table><table>tableseeoriginaldocumentpage13</column></row><table><table>tableseeoriginaldocumentpage14</column></row><table>注意如果有狀態(tài)錯誤,檢査錯誤寄存器的值以確定錯誤。命令標簽是任意8位正數。MOVE—PROCEED用于進行己發(fā)出的塊復制/移動命令的執(zhí)行的子命令。輸入<table>tableseeoriginaldocumentpage14</column></row><table>注意所述命令標簽為任意8位正數。其必須與序列的第一個命令匹配。<table>tableseeoriginaldocumentpage14</column></row><table><table>tableseeoriginaldocumentpage15</column></row><table>MOVE—SUSPEND用于掛起已發(fā)出的塊復制/移動命令的執(zhí)行的子命令。輸入<table>tableseeoriginaldocumentpage15</column></row><table>MOVE_ABORT用于取消正在發(fā)出的塊復制/移動命令的子命令。輸入<table>tableseeoriginaldocumentpage16</column></row><table>輸出<table>tableseeoriginaldocumentpage16</column></row><table>MOVE—STATUS用于獲取正在發(fā)出的塊復制/移動命令的進程狀態(tài)的子命令。輸入<table>tableseeoriginaldocumentpage17</column></row><table>狀態(tài)注意-如果有狀態(tài)錯誤,檢查錯誤寄存器的值以確定錯誤。命令標簽是任意8位正數。下面是本發(fā)明的高層API的一些例子。這些僅為說明性的而不是完全的。本發(fā)明的一些實施例不需要使用API;—些實施方法對于應用程序將是透明的。快速塊移動APIDS一DiskdataBlockCopy這個函數將數據塊從一個位置復制到同一磁盤巻的另一位置或者與ISE相連的另一磁盤巻。intDS一DiskdataBlockCopy(DS_RE(^UESTDsr,DS一VOL一BLOCK—LOCATION*DestBlockLocation,DS一VOL一BLOCK—LOCATION*SrcBlockLocation,PFN一PROGRESSProgressCallback);參數DsrDirectStor請求參數。每個請求與一個標簽值相關。通過回調函數向調用程序通知這個標簽值。所述API的調用程序可以通過用相同的標簽調用取消API來取消操作。DestBlockLocation包含目的地巻塊的位置信息。SrcBlockLocation包含源巻塊的位置信息。ProgressCallback回調函數的指針,將每隔特定的時間調用所述回調函數以向調用程序進程通知已發(fā)出的命令。返回值如果成功返回0,如果有錯誤返回非零值。錯誤代碼說明請見5.5節(jié)。DS—DiskdataBlockMove這個函數將數據塊從一個位置移動到相同磁盤巻的另一位置或者與ISE連接的另一磁盤巻。intDS—DiskdataBlockMove(DS—REQUESTDsr,DS—VOL—BLOCK—LOCATION*DestBlockLocation,DS_VOL—BLOCK—LOCATION*SrcBlockLocation,PFN—PROGRESSProgressCallback);參數DsrDirectStor請求參數。每個請求與一個標簽值相關。通過回調函數向調用程序通知這個標簽值。所述API的調用程序可以通過用相同的標簽調用取消API來取消操作。DestBlockLocation包含目的地巻塊的位置信息。SrcBlockJLocation包含源巻塊的位置信息。ProgressCallback回調函數的指針,將每隔特定的時間調用所述回調函數以向調用程序進程通知已發(fā)出的命令。返回值如果成功返回O,如果有錯誤返回非零值。錯誤代碼說明請見5.5節(jié)。DS一DiskdataBlockErase所述函數從磁盤巻上刪除數據塊。intDS—DiskdataBlockErase(DS—REQUESTDsr,DS—VOL一BLOCK丄OCATION*BlockLocation,PFN一PROGRESSProgressCallback);參數DsrDirectStor請求參數。每個請求與一個標簽值相關。通過回調函數向調用程序通知這個標簽值。所述API的調用程序可以通過用相同的標簽調用取消API來取消操作。BlockLocation包含巻塊的位置信息。ProgressCallback回調函數的指針,將每隔特定的時間調用所述回調函數以向調用程序進程通知已發(fā)出的命令。返回值如果成功返回0,如果有錯誤返回非零值。錯誤代碼說明請見5.5節(jié)。DS一DiskdataBIoc訓I所述函數用給定的數據模式填充磁盤巻上的塊。intDS—DiskdataBlockFill(DS一REQUESTDsr,DS一VOL一BLOCK—LOCATION*BlockLocation,ULONGPattern,P既PROGRESSProgressCalback);參數DsrDirectStor請求參數。每個請求與一個標簽值相關。通過回調函數向調用程序通知這個標簽值。所述API的調用程序可以通過用相同的標簽調用取消API來取消操作。BlockLocation包含巻塊的位置信息。Pattern包含數據模式。ProgressCallback回調函數的指針,將每隔特定的時間調用所述回調函數以向調用程序進程通知已發(fā)出的命令。返回值如果成功返回O,如果有錯誤返回非零值。錯誤代碼說明請見5.5節(jié)。DS—CreatDisklmage所述函數在目標巻上創(chuàng)建巻的完全磁盤鏡像。intDS一CreatDisklmage(DS一charDestVolume,charSrcVolume,USHORTCommadTag,PFN_PROGRESSProgressCallback);參數Volume由操作系統(tǒng)分配的目的地巻字母。Volume由操作系統(tǒng)分配的源巻字母。CommandTag每個DirectStorAPI用命令標簽標記。這個標簽在調用程序提供的回調函數中傳遞。這將有助于使調用程序對于所有或一群API具有單個回調函數。同時,API的調用程序也可以通過將同一標簽傳給取消命令API來取消操作。ProgressCallback回調函數的指針,將每隔特定的時間調用所述回調函數以向調用程序進程通知己發(fā)出的命令。返回值如果成功返回O,如果有錯誤返回非零值。錯誤代碼說明請見5.5節(jié)。DS—DiskdataBlockRead應用程序調用這個函數以從磁盤巻中讀取數據塊。intDS_DiskdataBlockRead(DS一REQUESTDsr,DS—VOL—BLOCKJLOCAT腹*BIockLocation,PBYTEDataBuffer);參數DsrDirectStor請求參數。每個請求與一個標簽值相關。通過回調函數向調用程序通知這個標簽值。所述API的調用程序可以通過用相同的標簽調用取消API來取消操作。BlockLocation包含巻塊的位置信息。DataBuffer指向輸入數據緩沖器的指針。返回值如果成功返回0,如果有錯誤返回非零值。錯誤代碼說明請見5.5節(jié)。DSDiskdataBlockWrite應用程序調用這個函數以將數據塊寫入磁盤巻。intDS—DiskdataBlockWriteCDS—REQUESTDsr,DS—VOL—BLOCK—LOCATION*BlockLocation,PBYTEDataB函r);參數DsrDirectStor請求參數。每個請求與一個標簽值相關。通過回調函數向調用程序通知這個標簽值。所述API的調用程序可以通過用相同的標簽調用取消API來取消操作。BlockLocation包含巻塊的位置信息。DataBuffer指向輸出數據緩沖器的指針。返回值如果成功返回0,如果有錯誤返回非零值。錯誤代碼說明請見5.5節(jié)。DS—Abort使用這個函數取消已向ISE發(fā)出的命令。intDS—Abort(DS—REQUESTDsr,);參數DsrDirectStor請求參數。每個請求與一個標簽值相關。通過回調函數向調用程序通知這個標簽值。所述API的調用程序可以通過用相同的標簽調用取消API來取消操作。返回值如果成功返回O,如果有錯誤返回非零值。說明性反病毒APIDS—ScanVolumeforSignature這個函數對巻進行掃描以尋找特定簽名。所述應用程序能夠略過實際的病毒簽名或者指向存儲在安全磁盤區(qū)域上的簽名的標簽。間隔特定時間調用略過的回調函數以通知進程。intDS—ScanVolumeforSignature(charVolume,USHORTCommadTag,DS—SIGNATURE*pSignaturePFN一PROGRESSProg訓Callback);參數Volume由操作系統(tǒng)分配的目標巻字母。CommandTag每個DirectStorAPI用命令標簽標記。這個標簽在調用程序提供的回調函數中傳遞。這將有助于使調用程序對于所有或一群API具有單個回調函數。同時,API的調用程序也可以通過將同一標簽傳給取消命令API來取消操作。pSignature病毒簽名。其可以是實際病毒簽名或者是指向存儲在安全區(qū)域上的簽名的標簽。請參見數據結構節(jié)獲取更多信息。返回值如果成功返回0,如果有錯誤返回非零值。錯誤代碼說明請見5.5節(jié)。其它說明性的函數可包括以下函數DS—AbortScanDS—ScanVolumeBlockDS一StorSignatureDS—WriteToSecureDiskZoneDS—ReadFromSecureDiskZoneDS—SavePasswordDS—VerifyPassword數據結構DS一RE(JUEST在一個實施例中,對ISE的每個請求都與一個標簽值相關聯(lián)。這個標簽可在調用程序回調函數中傳回給調用程序。這將有助于使調用程序對于所有或一群API具有單個回調函數。API的調用程序可以通過用相同的標簽調用取消API來取消操作。typedefstructWORDRequestTag;DWORDTimeout;/*延時以毫秒計,由DirectStor強制為最大30秒*/DWORDNotificationlnterval;/*以毫秒計的回調函數間隔,由DirectStor強制為最小0.5秒,最大30秒*/intProcessID;intThreadID;}DS_REQUEST;DS_VOL—BLOCK—LOCATIONtypedefstructcharVolume;/*由操作系統(tǒng)分配的磁盤巻字母*/WORDControlWord;/*1=整個巻,2=巻塊*/ULONGLONGStartLBA;/*巻塊的起始邏輯塊地址*/ULONGLONGSizelnSectors;/*扇區(qū)中巻塊的大小*/}DS—VOL—BLOCK—LOCATION;DS—SIGNATURE/*搜索特定的參考簽名*/根據以上描述,本發(fā)明的一些主要特征和方面可描述為包括一種存儲引擎裝置,其針對直接連接到至少一個硬盤驅動器而設置,且配置成執(zhí)行通常由主機CPU執(zhí)行的功能,所述主機CPU通過高速本地總線或者主機串行鏈路而連接到存儲處理設備以作為直接連接的存儲設備。通常,所述存儲引擎接收命令,響應于接收到的命令對數據執(zhí)行數據移動或處理指令(所述數據是存儲在硬盤驅動器上的數據,或者是去往主機或者磁盤驅動器的在本地RAM存儲器上高速緩存的數據),并向所述連接的主機處理器返回結果。如上所示,這些命令可為在同一驅動器內或者跨驅動器復制或者移動數據,或者執(zhí)行如病毒掃描的操作。重要的是,這些操作是由存儲引擎執(zhí)行的,其在本地總線或主機串行鏈路上移動用戶數據通信。將使用所述存儲引擎的命令可以通過截取從主機處理器到操作系統(tǒng)的命令而發(fā)生,或者通過預定的應用程序編程接口(API)而發(fā)生。這使得特殊數據操作可供應用程序(如反病毒程序)使用,而不會為主機CPU和/或本地總線增加負荷。這樣的指令能夠基于邏輯地址塊(LBA)源和目的地信息識別目標數據。這里所揭示的類型的存儲引擎可以通過不同的方式實施和使用,其中包括大體上在單一集成電路中;大體上在單一電路板中;集成在PC中;在數字視頻記錄系統(tǒng)中實施;在數字視頻系統(tǒng)中實施,或者以所屬領域的技術人員通過上述內容將容易得知的其它許多方式實施。對于所屬領域的技術人員,顯而易見可以在不脫離本發(fā)明的基本原理的情況下對上述實施例的細節(jié)進行變化。本發(fā)明的范圍應該僅由所附權利要求書確定。權利要求1.一種智能存儲引擎裝置,用于降低關于連接的存儲器操作的主機總線通信量,所述裝置包括主機接口,用于從主機應用程序接收預定的指令或函數調用;驅動器接口,將所述引擎耦合到至少一個連接的磁盤驅動器以用于數據傳送;以及所述存儲引擎的板載處理器,用于響應于接收到的指令而實施與連接的存儲設備的數據傳送;所述存儲引擎經配置而實施與所述連接的存儲設備的所述數據傳送,而不將用戶數據放置在所述主機總線或主機串行鏈路上。2.根據權利要求l所述的存儲引擎裝置,其中,所述驅動器接口包括驅動器切換器,用于與多個磁盤驅動器進行可配置的連接。3.根據權利要求1所述的存儲引擎裝置,包括DMA組件,用于與連接的主機進行DMA傳送。4.根據權利要求l所述的存儲引擎裝置,經設置通過預定的應用程序編程接口(API)從所述主機CPU接收數據移動或處理指令。5.根據權利要求l所述的存儲引擎裝置,包括本地高速緩存存儲器,用于臨時存儲用戶數據。6.根據權利要求l所述的存儲引擎裝置,包括用于在選取的文件流中即時掃描數據且將所述掃描數據與預定的參考序列匹配的構件。7.—種用于以降低的本地總線通信量執(zhí)行磁盤驅動器操作的方法,所述方法包括-定義至少一個主機應用程序函數,其要求訪問至少一個磁盤驅動器并且具有對應的函數調用;在存儲引擎裝置中實施所述函數調用;將所述存儲引擎裝置連接到主機本地總線以及至少一個連接的磁盤驅動器;監(jiān)視所述本地總線,以便當被斷言時檢測所述函數調用;以及響應于所述檢測到的函數調用,在所述存儲引擎裝置中執(zhí)行相應的函數,而不將用戶數據放置在所述本地總線上;以及完成后通過所述本地總線返回所述執(zhí)行的函數的結果。8.根據權利要求7所述的執(zhí)行磁盤驅動器操作的方法,其中,在所述存儲引擎中實施的所述主機應用程序函數包括文件復制和文件移動操作。9.根據權利要求7所述的執(zhí)行磁盤驅動器操作的方法,包括通過以下方式在主機軟件內執(zhí)行操作以完成操作系統(tǒng)調用操作避開標準內建操作內核系統(tǒng)文件緩存軟件層和硬件接口函數調用而改為將至少一個相應的命令直接發(fā)送給所述存儲引擎。10.根據權利要求7所述的方法,包括在兩個磁盤驅動器之間移動數據,而不為所述主機本地總線或串行連接加載負荷。11.根據權利要求7所述的執(zhí)行磁盤驅動器操作的方法,包括提供文件系統(tǒng)過濾器模塊,用于監(jiān)視到所述操作系統(tǒng)文件系統(tǒng)的命令;在所述文件系統(tǒng)過濾器模塊中,檢査給出的命令是否指向當前連接到所述存儲引擎的磁盤驅動器;以及如果命令是指向連接的磁盤驅動器,并且如果所述命令被所述過濾器模塊識別出為預定的其可以處理的命令集中的一個,則攔截所述命令以在所述存儲引擎中處理。12.根據權利要求11所述的方法,包括向所述主機提供關于操作狀態(tài)的周期性信息、排列請求的操作的狀態(tài)以及在所述操作完成時提供全部結果。13.根據權利要求11所述的方法,其中,最終結果包括對主機的指示,指示所述請求的操作沒有完成或者所述操作成功地完成。14.根據權利要求ll所述的方法,其中,所述最終結果包括所請求的結果數據的遞送。15.根據權利要求11所述的方法,其中,操作包括從第一磁盤驅動器向第二磁盤驅動器移動文件、文件復制操作、磁盤巻合并、病毒掃描、RAID驅動-陣列重建中的一項操作。16.根據權利要求ll所述的方法,其中,所述操作包括搜索存儲的用戶數據。17.—種用于以降低的本地總線通信量執(zhí)行磁盤驅動操作的方法,所述方法包括定義至少一個應用程序函數,其需要訪問至少一個磁盤驅動器;在具有本地處理器和本地存儲器的存儲引擎裝置中實施所述函數;將所述存儲引擎裝置連接到主機本地總線以及至少一個連接的磁盤驅動器;通過預定的API從應用程序接收函數調用;響應于所述接收到的函數調用,在所述存儲引擎裝置中執(zhí)行相應的函數,而不將用戶數據放置在所述本地總線上,所述執(zhí)行包括訪問所述至少一個連接的磁盤驅動器;以及,在完成后向所述應用程序返回所述執(zhí)行的函數的結果。18.根據權利要求17所述的方法,其中,所述應用程序是反病毒應用程序。19.根據權利要求17所述的方法,其中,所述API包括磁盤塊操作。20.根據權利要求17所述的方法,其中,所述API包括搜索操作。全文摘要本發(fā)明揭示一種新穎的智能存儲引擎的概念,其是針對例如文件復制和移動這樣的連接磁盤驅動器操作,以及例如搜索、病毒掃描以及卷合并這樣的更加精細的過程。在一個實施例中,利用本地處理器的智能并通過適合的驅動器(60)和API(App.B)訪問的存儲引擎(40)進行磁盤訪問操作,而不會加重主機CPU(22)的負擔且不會向本地CPU總線(34)上強加數據通信量,除了在適當的情況下返回結果數據。文檔編號G08C15/00GK101305334SQ200580048835公開日2008年11月12日申請日期2005年12月22日優(yōu)先權日2004年12月29日發(fā)明者安迪·米爾斯,肯特·P·費希爾申請人:輝達公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1