TWI358019B - System and method for dynamic data prefetching - Google Patents

System and method for dynamic data prefetching Download PDF

Info

Publication number
TWI358019B
TWI358019B TW095123622A TW95123622A TWI358019B TW I358019 B TWI358019 B TW I358019B TW 095123622 A TW095123622 A TW 095123622A TW 95123622 A TW95123622 A TW 95123622A TW I358019 B TWI358019 B TW I358019B
Authority
TW
Taiwan
Prior art keywords
memory
data
storage
access latency
memory access
Prior art date
Application number
TW095123622A
Other languages
English (en)
Other versions
TW200710650A (en
Inventor
Victor Lau
Pak-Lung Seto
Eric Dehaemer
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW200710650A publication Critical patent/TW200710650A/zh
Application granted granted Critical
Publication of TWI358019B publication Critical patent/TWI358019B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Bus Control (AREA)

Description

1358019 九、發明說明: t發明所屬二 發明領域 5 本發明之實施例有關於資料儲存之領域,特 用於儲存裝置之一動態資料預提取機構。 &關於 【先前技術1 發明背景 15 多年來,電腦係實施以一處理器(例如中央處理 「CPU」)、半導體式主機記憶體、以及―或更多叫 傳統上,主機記憶體係適應來儲存資料,諸如指令 類型的數位資料,其需被處理器快速存取。舉例其他 電腦在正常作業下,主機記憶體通常含有其作業系純之當 要部份,以及現在正使用之一些或所有應用程式及主 資料。-種主機記憶體係隨機存取記憶部細),复目關 於靠近電腦處理器之封閉實體内。 Ά位 存大===體’,裝置提供-實體媒體供餘 —Μ所含轉不諸使狀_ 二減少整個電腦之成本,主機記憶體之大小典型二: 20 -技 】 限制在其需求資料頻繁地從主機記憶體傳送到儲存裝置 '到 在各個傳輪至儲存裝 、 遲。此時間延遲係在—傳 θ ^以到—時· 料傳輪時間之加總。資=:上記憶體存取潛伏期和資 訊至錯存裝置之鏈路率時間係根據一互連結構上通 *針對-給_路率’記德體存取潛伏期大於資料傳 5 輸時間時,儲存裝置需要預提取資料訊框來估計傳輸路徑 上鏈路之間置時間。 二 現在,此預提取率係-定值,其藉由儲存裝置之驅動 程式軟體被硬編碼或規劃到—控制暫存器卜預提取率根 據一些因素來選擇,例如所估計的平均記㈣存取潛伏期 和一固定的資料傳輸時間,根據選定互連結構之估計傳輪 率。用來預提取之最大資料訊框量係根據可用傳輸緩衝器 然而,實際操作條件下,記憶體存取潛伏期並非一固 定值,而是響應於電腦之操作條件改變。這絲作條件會 涉及增加或減少電腦中之記憶體流量,或儲存裝置所使用 之介面類型或通訊協定的切換。簡言之,當前預提取機構 無法負責多種預提取週期間檢測之即時操作條件。 【^^明内】 發明概要 ,...〜凡山 裡乃凌,$ 3有下列步驟:為與自-記憶體裝置至-目的裝置之, 傳輸相關聯的—預提取週期測量-記憶體存取潛伏期. 及根據剌量的記憶體麵潛伏_整—難 , 圖式簡單說明 本毛月可藉由參考下列說明與所附用以例說本 施例之圖式而獲得最佳的理解。 範例方塊圖,其繪以運用 第1圖係一電腦裝置之—第— 本發明之OSI佈局。 第2圖係與計算記憶體存取潛伏期相關聯之記憶體存 取潛伏期與操作之一範例圖。 第3圖係一電腦裝置之一第二範例實施例,其繪以運用 本發明之OSI佈局。 第4圖係一流程圖之一範例實施例,其例說用來處理記 憶體存取潛伏期中之變化的動態訊框預提取邏輯之操作。 第5圖係一時序圖之一範例實施例,其例說用來處理增 加的記憶體存取潛伏期之動態訊框預提取邏輯之操作。 第6圖係一時序圖之一範例實施例’其例說用來處理減 少之記憶體存取潛伏期之動態訊框預提取邏輯之操作。 C實施方式J 較佳實施例之詳細說明 本文中,本發明之一些實施例有關於用於儲存裝置之 一動態資料預提取機構。動態資料預提取機構提供預提取 率之即時判疋,用以承擔一現時鏈路率及實質評估鏈路 閒置時間。依據本發明之資實施例,預提取率被即時自動 判並’且根據針對被預提取之_資料訊框之測量值來調整 記憶體存取潛伏期。 此預提取率之動態調整提供一些優勢。舉例來說,— 電腦裝置更有效率地利用其本身至_健存裝置之互連結 構’且透過避免過度㈣料職取在其㈣m统上= 供更佳的負載平衡。在電腦裝置遭受—重新啟動或中止輪 入/輸出(I/O)連續條件時’過度的資料預提取不但浪費記憶 體匯流排頻寬,也增加一傳輸緩衝器之清除時間。 一 下列說明中’某些用語係用來描述本發明之特點。嬖 如,「電腦裝置J 一辭係指支援多種資料儲存階層,例如一 或更多半導體記憶體裝置和一或更多儲存裝置,之一裝 置。一電腦裝置之範例包括但不限於電腦、可攜式音訊裝 置、或任何具有資料儲存裝置之電子設備。「資料」廣義為 任何類型的資訊,例如數位資料和位址、控制、或任何其 等之組合。 「記憶體存取潛伏期」—辭主要視為存取本地記憶體 中一預定資料量所需的時間。「資料傳輸時間」通常等效於 在鍵路上將資料轉移到儲存裝置所需時間。此時間係預 定的或每當與-目的裝置建立連接時交涉的。「目的襄置」 可為實施預提取操作以維持鏈路上—最理想的鏈路率所需 儲存裝置或任何裝置。其中一最理想的鏈路率係鍵路 = 最大傳輪率,但在某些組配中最理想的鏈路率 係較最大傳輪率小。 「邏輯 I — SA ^ 或軟體,例㈣義域行—歧錢狀硬體及/ 之時間。此測量記憶體裝置預提取資料已經過 取潛伏期構成。〜^由—預提取週期期間之記憶體存 憶體存取潛叫—「儲存協定引^ _量記 整預提取率之邏輯電路地根據測里的記憶體存取潛伏期調 「軟體模紐 φ 一應用程式、 體模組可儲存在往 」辭係可執行之碼,例如一作業系统、 樣版 '—例行程式、或一或更多指令。敕 何類型之記憶體中,即適合的儲存媒 5 =可規劃電子電路、任何_之半導體記憶體裝 ^例如—依電性記憶體(例如’隨機存取記憶體等)或非依 電性記憶體(例如’唯讀記憶體’快閃記憶體等)一軟碟片、 一光碟(例如,實密餮碟片或數位多功能碟片「麵」)、 一隨身碟、一硬碟機、一數位卡帶等。 「訊框」—辭通衫㈣-預定大小之-連串資料。 舉例來說’依據串列附接小型電腦系統介面(Μ)串列㈣ 協定(稱為「SASSSP」)之-資料訊框具有—最大預定大小 為一千位原組(1KB)。 10 「鏈路」—辭通f定義為―資訊承制體,其建立- 通訊路徑。鏈路可為-有線互連結構,其中媒體係一實體 媒體(例如’電線、光纖、纜線、匯流排跡線等)、或一無線 互連結構(例如,組合與無線通訊科技之廣播)。 下列說明中,說明許多特定細節。然而,理應瞭解本 15發明之實施例可實施以不需這些細節。其他場合中,不說 明習知電路、結構和技術以免模糊本發明之焦點。 參考第1圖,例說運用本發明之一開放系統互連結構 (OSI)佈局之一電腦裝置的一第—範例方塊圖。電腦裝置 100包含與一目的裝置160和是為一本地記憶體子系統145 2〇 一部份之半導體記憶體140(例如,主機或本地記憶體)通訊 之一儲存協定引擎120。考量到儲存協定引擎120可積設於 電腦裝置100之積體電路中(例如為一記憶體控制器中樞 「MCH」或I/O控制器中枢「ICH」之一晶片組)或在實施於 目的裝置160中之一外部控制器内。 9 如所示’針對此例說性之本發明實施例,目的裝置160 係一儲存裝置,其提供一實體媒體來資料,其通常較存在 5己憶體140中之資料不頻繁地使用。儲存裝置16〇之範例包 括任何類型的大量儲存設備,例如一或更多碟片驅動器、 卡帶驅動器等。考量到可實現之本發明實施例。
依據本發明之實施例,儲存裝置丨6 〇係經由一串列通訊 路徑互連結構為部分電腦裝置1〇〇,通訊路徑可為一主機匯 流排轉接器(HBA)162及一第一鏈路164。HBA162之例包括 但不限於一光纖通道主機匯流排轉接器(FC HBA)、一網際 網路小型電腦系統介面HBA(iSCSI HBA)' —串列附接SCSI hba(sashba)等。 如進一步所示’儲存協定引擎120包含一實體層丨25、 資料鏈路層130、及一傳輸層135。實體層125界定儲存協定 引擎120之一介面的實體特徵,儲存協定引擎120係通訊耦 接至儲存裝置160。這些實體特徵包括有關儲存協定引擎 120連至鏈路164之機械式與電氣式層面。資料鏈路層13〇被 組配來以一適於傳輸至儲存裝置16〇之格式組合資料訊框 以及調諧這些訊框之流。 傳輸層135係組配來監視與調節出入儲存協定引擎12〇 之資料流。傳輸層135包含一傳輸傳輸層丨36與一接收傳輸 層137。傳輸傳輸層136監視及調節從記憶體至儲存裝置 160之資料流,同時接收傳輸層137監視及調節從儲存裝置 160至記憶體140之資料流。就本發明之_實施例,動態訊 框預提取操作在傳輸傳輸層136之處理如下所述。 本文中,傳輸傳輸層136包含一動態訊框預提取邏輯 180、一直接記憶體存取(DMA)引擎185、及一傳輸緩衝器 190。一接收到從記憶體140至儲存裝置160傳輸資料之一命 令,動態訊框預提取邏輯180規劃DMA引擎185來自記憶體 140預提取一預定資料量。此被預提取之預定量為「N」個 連續的資料訊框,其中l<N<Max,而「Max」係傳輸緩衝 器190大小(TB_Size)對一資料訊框大小(F_Size)之比率的被 捨去正整數。資料訊框之預提取係依據下列方程式決定: 預提取訊框#=捨進[記憶體存取潛伏期/資料傳輸時 間],其中
Max=捨去[TB—Size/F_Size] 〇 舉例來說’其中傳輪緩衝器190為4千位元組(4KB)之大 小,而一資料訊框係1KB之大小,4個訊框可被儲存在傳輸 緩衝器190中。其中初始記憶體存取潛伏期被估計為5微秒 (5μ8)的持續時間,而資料傳輸時間被估計為4微秒(4μ8), 兩個訊框會被預提取。計算如下: 預提取訊框#=捨進[5/4]=2,其中: 由於「2」較傳輸緩衝器19〇之儲存(4)少,「2」為可 接受預提取值。 此後’ DMA引擎185建立資料訊框並區域地儲存資料 訊框於傳輸緩衝器190中。 如第1與2圖所示,在預提取週期25〇之開始時⑴),儲 存協定引擎(SPE)120判定資料之另一訊框需自記憶體12〇 提取,動態訊框預提取邏輯180開始一計時器來為此預提取 1358019 週期測量記憶體存取潛伏期《此判定可藉由監視傳輸緩衝 器190之記憶體容量程度實現。 除了開始計時器’動態訊框預提取邏輯18〇規劃DMA 引擎185來預提取資料訊框,如在時間t221〇所示。在時間〇 5 220和t4 230,資料訊框被記憶體子系統145提取並傳回到 SPE120。此後,在時間t5 240 ’ SPE120處理現正準備傳輸 至儲存裝置16 0之資料訊框。所測量用來擷取資料訊框之時 間被動態訊框預提取邏輯18〇用來進行即時重新計算預提 取之訊框量以承擔給定線率。 10 現在參考第3圖,其繪示運用本發明之〇si佈局的一電 腦裝置之一第二範例實施例《本文中,電腦裝置1〇〇包含與 疋為一本地記憶體子系統145 —部份之半導體記憶體14〇與 一或更多擴增器300(例如,擴增器3〇2、3〇4)通訊之儲存協 定引擎120。考慮到擴增器3〇〇可為令儲存協定引擎12〇可通 15訊耦接與及控制資料傳輸到多個儲存裝置(SD)310r310R2 一扇出開關,其中R>2。當然,考慮到擴增器3〇〇可為串列 耦接在一起以支援大量儲存裝置的多個擴增器,如所示。 如所示,資料傳輪時間根據沿一傳輸路徑32〇之最低鏈 路率判定。舉例來說’其中在儲存協定引擎12〇和擴增器3〇2 2〇間之一第一鏈路率330為每秒六十億位元組(6Gb),擴增器 302和擴增器3〇4間之一第二鏈路率34〇係3(^,而擴增器3〇4 與目心儲存裝置31〇2間之-第三鏈路率⑽紅仙,計算 的貝料傳輸時間將根據一 l_5Gb鏈路率判定,即傳輸路徑 320中之最低鏈路率。 12 1358019 不管電腦裝置100之拓樸結構,儲存協定引擎120被適 應以監視及根據至少對記憶體存取潛伏期之改變和對資料 傳輸時間之可能改變而動態地改變預提取率。雖然如此, 資料傳輸時間之改變實質上較記憶體存取潛伏期之改變不 5 頻繁。 參考第4圖,繪示一流程圖之一範例實施例,其用於處 理記憶體存取潛伏期之改變之動態訊框預提取邏輯之操 作。儲存協定引擎一判定一或更多額外訊框需被從記憶體 預提取(方塊400) ’其發生在DMA引擎發佈一讀取命令到記 10憶體子系統來存取一選定資料訊框前,一計時器被動態訊 框預提取邏輯開始以測量記憶體存取潛伏期(方塊410)。儲 存協定引擎一接收讀取命令所識別之資料以及一處理資料 至SPE正準備傳輸資料訊框之一點時,計時器被暫停(方塊 420和430)。測量的時間(M_時間)被用來重新計算預提取率 15 (方塊440)如下列方程式所述: 預提取率=捨進[M_時間/資料傳輸時間] 結果,根據為一現時預提取週期計算之記憶體存取潛 伏期,預提取率係一即時值,且如方塊45〇_48〇所示地調 整。考量間置鏈路時間可能沒有即刻地消除,但實質上將 20被緩慢而可能為後續預提取週期完全地消除。 參考第5圖,其例說用來處理増加的記憶體存取潛伏期 之動態訊框預提取邏輯之操作時序圖的一範例實施例。此 處,為了例說,初始記憶體存取潛伏期等於而資料傳輪 時間估計為4μ8。由此,兩個訊框(例如,捨進[5/4])會被預 13 1358019 提取來承擔鏈路率。傳輸缓衝器被組配來儲存高達 料訊框。 貝 如所示’始於時間t〇,兩個資料訊框被預提取而對應 5 計時器被開始以測量與這些預提取操作相關聯之記憶體存 朁伏期。更特別地,動態訊框預提取邏輯開始一第一叶 時=來測量在提取一第一資料訊框(資料0-500)時在—第一 預提取週期所遭遇的記憶體存取潛伏期。在時fBlU,通常 同步開始-第一計時器,動態訊框預提取邏輯開始—第二 計時器來測量用來提取一第二資料訊框(資料⑷ 體存取潛伏期。 °隐 在時_,資料G•已被協定儲存引擎接收而正準備 的裝置。第—計時器被暫停而預提取率根據測量 。己憶體存取潛伏期和固定資_輸時 在此例說性實施例中用來柯卞异由於 15 存取潛伏⑽之測量的記憶體 仇期係一,預提取率保持在兩個資料訊框。 由於傳輸緩衝器夠大來保持高達娜料訊框間 =表不以「資料2」520之一第三資料訊框 20 164,,幵1。。貝料0_500亦在第1圖之鏈路 破從儲存協定引擎傳送到儲存裝置。 正準時間t3,資料_已被協定儲存引擎接收而 據輸至储存裝置。第二計時器被暫停而預提取率根 的讀體存取潛伏期及固定資料傳輸時間重新計 =二由於在此圖例中用來提取第二資料訊框之測量 的铺财轉伏雜批為_,職㈣保持在兩個資 14 1358019 料訊框。表示以「資料3丨530夕一盆no - 貝Μυ之第四資料訊框被預提取, 且其對應(第四)計時器被開始。 在時間t4,資料0-500已完全在第旧之鍵路164上從儲 存協定引擎傳送到儲存裝置。由此,資料mi〇之傳輸開始 5 而在T5完成。 在時間t6,協定儲存引擎已接收資料2·52〇,其現正準 備傳輸到儲存裝置。第三計時器被暫# H 宁而預提取率根據測 量的記憶體存取潛伏期和固定龍傳輪時間重新計算。由 於在此關巾用來提取資m_52G^量的記憶體存取潛 10 15 20 伏期增加到_,預提取率現在如下式所計算的增加到叩 資料訊框: 捨進[10/4]=3 第五資料訊框540被預 由此,表示以「資料4」540之一 提取。 在時m7,資料3·53()已被協定儲存引擎接收而正準 傳輸至儲存裝4。第四計時眺暫“預提取率根據測 的記憶體存取潛伏期及固^資料傳輸時間重新計算。由 在此圖财用來提取f料3.5歡測量的記憶體存取潛 期保持在預提取率保持在3個資料訊框。由此,在 ’,表示以「資料5」550之一第六資料訊框55〇,以及 續在時斯8表示以「資料6」56〇之一第七資料訊框560, 對應(第六&第七)計時器之開始被預提取。 在時間t9,資料4_54〇已被協定儲存引擎接收而正準 傳輸至儲存裝4。第五計時諸暫停而龍取率根據測 15 1358019 的記憶體存取潛伏期與固定資料傳輸時間重新計算。由於 在此圖例巾用以提取資料454()之測量的記憶體存取潛伏 期保持在¥,預提取率保持在3個資料訊框。由此,表示 以「貢料7」570之—第八資料訊框隨一第八計時器之開始 5 被預提取。 在時間_°tU,第六、七資料訊框550、560被協定儲 存引擎接收而正準備傳輸至儲存裝置。由於在此圖例中用 於提取每一貢料訊框測量的記憶體存取潛伏期保持在1〇" s ’預提取率保持在3個資料訊框。然而此時,因為資料訊 10框540_56〇現正儲存在傳輸緩衝器中資料7570已被預提 取’沒有預提取操作會發生。由此,傳輸緩衝器已經完全 配置。 在時間tl2,資料_4 540已被傳送到儲存裝置而傳輸緩 衝器可自由的儲存另一預提取資料訊框。結果,一第九資 15料訊框580,表示以「資料8 j 580,隨著一第九計時器之開 始被預提取。同樣的,第十資料訊框59〇,表示以「資料9」 590,直到資料-5 540被傳送到儲存裝置而傳輸緩衝器可自 由的儲存另一預提取資料訊框為止無法被預提取。 參考第6圖,一時序圖之一範例實施例例說用來處理減 20少之記憶體存取潛伏期之動態訊框預提取邏輯之操作。類 似第5圖,為了例說,初始記憶體存取潛伏期等於1〇閂的持 續時間’而資料傳輸時間估計為4μ3的持續時間。由此,3 個訊框(捨進[10/4])會被預提取來承擔鏈路率。傳輸緩衝器 被組配來儲存高達4(4)之資料訊框。 16 如所示,在時間 應計時器被開始來_、T2 ’⑽資#訊框被預提取,而對 存取潛伏期。更特別里與這些預提取操作相關聯之記憶體 —計時器㈣量_的是’動態訊框預提取邏輯開始一第 第-預提取週期期間Γ—第一資料訊框(資料-〇 6〇〇)時一 地開始-第—計時|的記憶體存取潜伏期。通常同步 始⑴-第二計時器$、’在時間ϋ,動態訊框預提取邏輯開 -161。)之記憶體:二,提取-第二資料訊框(資料 量用來提取-第三㈣以及⑻―第三計時器,以測 伏期。 料訊框(資料J 620)之記憶體存取潛 在時間t3,資料〇 & 傳輸到儲存裝置。第—0已協定儲存引擎被接收而正準備 的記憶體存取潛伏期器被暫停而預提取率根據測量 ,月與不變化資料傳輸時間計算。由於就 15 取潛伏期為to例中用來提取資制_之測量的記憶體存 ‘"、叫’預提取率保持在3個資料訊框。 ' ;傳輸緩衝$夠大來㈣4個資料訊框,在時間【3, 表不 「資 2 20 / -」630之資料的第四訊框被預提取,而其 μ 了(第四)5十時器破開始。資料·〇 600亦在第1圖之鏈路164 從儲存協定引擎傳輸到倚存裝置。 在時間t4和t5,資料巧61〇和資料_2 —被協定儲存引 Z二接收而現正準備傳輸到儲存裝置。由於在此圖例中用 ^提取各個資料訊框之測量的記憶體存取潛伏期保持在 曰0叫,預提取率保持在3個資料訊框。然而,此時,沒有預 提取知作會發生,因為資料訊框600-620現正儲存在傳輪緩 17 1358019 衝器中,而資料_3㈣正被預提取。由此,傳輸緩衝器已經 完全的配置。 。在時間t6,資料_0 600已被傳送到儲存裝置,而傳輸緩 衝器可自由地儲存另一預提取資料訊框。結果,表示以「資 5料_4」640之—第五資料訊框640隨一第五計時器之開始被 預提取。 在時間t7,資料_3 630被協定儲存引擎接收而正準備供 傳輸至儲雜置。由於用來提取資料-3 63G所測量的記憶體 存取潛伏期在此圖例中已降為5μ8,預提取率現在由下列算 ίο式計算減少成兩個(2)資料訊框: 預提取率=捨進[5/4]=2 因此,在時間t8_t 13,儲存協定引擎如所示適當的調整 預提取率。 更特別地,在時間比,資料61〇已被傳送到儲存裝 15置’而傳輸緩衝器係可自由的儲存另__預提取資料訊框。 結果,表示以「資料_5」65〇之一第六資料訊框65〇隨一第 六汁時器開始而被預提取。 在時間t9,資料_4 64〇被協定儲存引擎接收而正準備要 傳輸到儲存裝置。由於測量的記憶體存取潛伏期保持在5μs 2〇在此圖例中,預提取率保持在兩個⑺資料訊框。 在時間t10,在資料-5 650被接收前’資料-2 62〇已被傳 运到儲存裝置’而傳輸緩衝器係可自由地儲存另一預提取 資料訊框。結果,表示以「資料_6」66〇之一第 框660隨著一第七計時器開始被預提取。 ' β 18 :時門til ^料.5㈣被協定儲存引擎接收,而現在 正準備傳輪義存裝置。由於在此_中測量的記憶體存 取潛伏期料在⑽,取轉持在兩個(2):#料訊框。 …在時間tl2 ’在:身料_6 66〇被接收前,資料_3㈣已被傳 达=儲存裝置,而傳輪緩衝器係可自由地儲存另一預提取 的貝料訊框。結果,表示以「資料_7」67G之-第八資料訊 框670隨著-第八計時器開始被預提取。 :在時間U3’資料_6 66〇被協定儲存引擎接收而現場正 準備傳輪到儲存裝置。由於在此圖例巾測量的記憶體存取 潛伏期保持在5μδ,預提取率保持在兩個(2)資料訊框。此方 、、續進行,並操作與第5圖之方法來提供一動態訊框預提 取演繹法。 雖然本發明已藉由許多實施例來描述,熟於此技藝者 可瞭解本發明不限於所述,反之可實施屬於所附申請專利 範圍所界定之精神與範圍内的修改與變化。故此本發明說 明破視為例說性的而非限制性的。舉例來說,在預提取率 提升時’某些處境下’ 一預提取週期可指替代各表示一單 貝料訊框之一連串預提取週期的多個訊框。 【W式簡單說明】 第1圖係一電腦裝置之一第一範例方塊圖,其繪以運用 本發明之OSI佈局。 第2圖係與計算記憶體存取潛伏期相關聯之記憶體存 取潛伏期與操作之一範例圖。 第3圖係一電腦裝置之一第二範例實施例,其繪以運用 1358019 本發明之OSI佈局。 第4圖係一流程圖之一範例實施例,其例說用來處理記 憶體存取潛伏期中之變化的動態訊框預提取邏輯之操作。 第5圖係一時序圖之一範例實施例’其例說用來處理增 5加的記憶體存取潛伏期之動態訊框預提取邏輯之操作。 第6圖係一時序圖之一範例實施例,其例說用來處理減 少之記憶體存取潛伏期之動態訊框預提取邏輯之操作。 【主要元件符號說明】
100 電腦裝置 擎 120 儲存協定引擎 190 傳輸緩衝器 160 目的裝置 200 時間tl 140 半導體記憶體 210 時間t2 145 本地記憶體子系統 250 預提轉期 162 主機匯流排轉接器(HBA) 220 時間β 164 第一鏈路 230 時間t4 125 實體層 240 時間6 130 資料鍵路層 300 擴增器 135 傳輸層 302 、:304擴增器 136 傳輸傳輸層 310i-310r 儲存裝置(SD) 137 接收傳輸層 320 傳輸祕 180 動態訊框預提取邏輯 340 第二鍵路率 185 直接記憶體存取(DMA)引 400480步驟 20 1358019 500 「資料0」 510 「資料1」 520 「資料2」 530 「資料3」 540 「資料4」 550 「資料5」 560資料訊框 560 「資羅」 570第八資料訊框「資料7」 580第九資料訊框580「資料8」 590第十資料訊框590「資料9」 600資料0 610資料4 620資料~2 630第四資料訊框「資料>3」 640第五資料訊框「資朴4」 650第六資料訊框「資料~5」 660第七資料訊框「資料*6」 670第八資料訊框「資料~7」
21

Claims (1)

1358019 十、申請專利範圍: 其包含有下列步 1. 一種用於動態資料預先提取之方法 驟: 為與自-記憶體裝置至一目的裝置之資料傳輸相 5 _的—預提取週期測量-記憶體存取潛伏期;以及 根據該測量的記,隨麵㈣_整1提取率。 2.如申請專利範圍第1項之方法,其中測量該記憶體存取 潛伏期之步驟包括啟始-計㈣,用明4自胃 裝置存取一資料訊框所需的時間量。 心 10 3.如申請專利範圍第2項之方法,其中調整 步驟包括計算該記憶體存取潛伏期對一資料傳輪時= 之一比率’該資料傳輸時間是為用來透過_至該㈣ 裝置之一鏈路傳輸該資料訊框至該目的裝置所需的一 時間量。 15 4.如申請專利範圍第3項之方法,其中調整該預提取率之 步驟係在實施於該記憶體裝置與該目的裝置間之一儲 存協定引擎的一傳輸傳送層上實施。 5.如申請專利範圍第3項之方法,其中測量該記憶體存取 潛伏期之步驟包括為每一預提取週期測量該記憶體存 ° 取潛伏期。 6·如申請專利範圍第5項之方法,其中調整該預提取率之 步驟係動態地即時實施。 7.如申請專利範圍第5項之方法,其中調整該預提取率之 步驟係在每一預提取週期後實施。 22 9. 如申凊專利範圍第 預提取操作來維持二法’其中該目的裝置係實施 ^ „ 、·、。鏈路上一最理想鏈路率所需之一 裒置,該最理想鏈路 最大傳輪率。 的、中-種是為該鏈路支援的- 一種電腦運算裝置,包含: '記憶體裝置; —儲存裝置;以及 10 15 :該記«裝置和該㈣裝置通訊之—儲存協定 該儲存協定引擎係用來:⑴為與自該記憶體裝 =至該儲存裝置之資料傳輪相關聯的一預提取週期測 =一魏體存取潛伏期,以及(2)根據該測量的記憶體 存取潛伏期動態調整一預提取率。 1〇.如申請專利範圍第9項之電腦運算裝置,其中該記憶體 裝置係操作為機記㈣之-賴存取記憶體。 11.如申請專利範圍第9項之電腦運算裝置,其中該儲存協 定引擎包含: 一直接記憶體存取(DMA)引擎; 耦接至該DMA引擎之一傳輸緩衝器;以及 耦接至該DMA引擎且包括多個計時器之—動離訊 2〇 框提取邏輯組件,該動態訊框提取邏輯組件係適於:(1) 利用一計時器來為與自該記憶體裝置至該儲存裝置之 資料傳輸相關聯的一預提取週期測量一記憶體存取潛 伏期’以及(2)根據該測量的記憶體存取潛伏期與—資 料傳輸時間之間的一比率動態地調整該預提取率,該資 23 1358019 料傳輸時間是為資料從該儲存協定引擎傳輸至該儲存 裝置之一時間量。 12.如申請專利範圍第9項之電腦運算裝置,其係為該記憶 體裝置為半導體記憶體的一種電腦。 5 13.如申請專利範圍第9項之電腦運算裝置,其中該儲存協 定引擎係實施於該儲存裝置中。 14.如申請專利範圍第9項之電腦運算裝置,其中該儲存協 定引擎係實施於通訊耦接至該記憶體裝置與該儲存裝 置之一晶片組中。 10 15. —種提供軟體之儲存媒體,該軟體在被一電腦運算裝置 所執行時會造成該電腦運算裝置進行下列操作: 為與自一半導體記憶體裝置至一目的裝置之資料 傳輸相關聯的一預提取週期測量一記憶體存取潛伏 期;以及 15 根據該測量的記憶體存取潛伏期動態地調整一預 提取率,該預提取率是為所預提取之資料訊框的數目。 16.如申請專利範圍第15項之儲存媒體,其更包含用以起始 一計時器的一軟體模組,該計時器係用來測量從該記憶 體裝置存取一單一資料訊框所需之一時間量。 20 17.如申請專利範圍第15項之儲存媒體,其更包含用以計算 該記憶體存取潛伏期對一資料傳輸時間之一比率的一 軟體模組,該資料傳輸時間係透過耦接至該目的裝置之 一鏈路傳輸該資料訊框至該目的裝置之一時間量。 18.如申請專利範圍第15項之儲存媒體,其更包含用以在實 24 1358019 施於該記憶體裝置與該目的裝置間之一儲存協定引擎 之一傳輸傳送層中動態地調整該預提取率的一軟體模 組0 19. 如申請專利範圍第15項之儲存媒體,其中該軟體係用以 5 針對各預提取週期測量該記憶體存取潛伏期。 20. 如申請專利範圍第15項之儲存媒體,其中該軟體係用以 針對該半導體記憶體裝置到作為該目的裝置之一儲存 裝置間之各預提取週期測量該記憶體存取潛伏期。 25 1358019
id lo-g lo-g 卑淖碱韋丨0sis. 碌亥^茸眾雜j 600
,^l?.o (A) 4-g T3| T4 T5 600 卑埤衅韋—1 盈沐|2.-薇藤漸 it^^tt 眾 H S'— lo-g 摩摩t韋丨2 逛浓拉舔趨4it·'62,0 溅5 tm-l(A) _t#.2(A) Μ'-Γ3(Α)!^ι?4(Α) ΰ^·5(Α) f—:$_6(A) yh.-+-fff、ff3 Jsotlru^^:^ 确^s'tfli_ _-: 630 —^v -IT.-Tf;
5//5 520 5//S0 T11 630 T13 640 650 660 卑犛邮韋丨5 is^icyM藤命 雖洚避tt眾雄 •6501 : -H12 耸雄fff—4 fstsli.1^ :1 · ·.----------- >640
..ifJff:i-6 |~ 3¾¾ § si - 皞¾眾S4, 4薛孝。种神述萍贷3盒衅韋til商 泠禱雄璨雜书。.^?4二2/|*趨執背蜎洚盔族$ 鉍4薛唸。Tx辩琦H4雜命驷秘4盒衅韋|户菡„ t
TW095123622A 2005-06-30 2006-06-29 System and method for dynamic data prefetching TWI358019B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/172,226 US8370581B2 (en) 2005-06-30 2005-06-30 System and method for dynamic data prefetching

Publications (2)

Publication Number Publication Date
TW200710650A TW200710650A (en) 2007-03-16
TWI358019B true TWI358019B (en) 2012-02-11

Family

ID=37114594

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095123622A TWI358019B (en) 2005-06-30 2006-06-29 System and method for dynamic data prefetching

Country Status (7)

Country Link
US (1) US8370581B2 (zh)
EP (1) EP1896953B1 (zh)
JP (1) JP4616391B2 (zh)
AT (1) ATE410734T1 (zh)
DE (1) DE602006003099D1 (zh)
TW (1) TWI358019B (zh)
WO (1) WO2007005694A2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809068B2 (en) * 2005-12-28 2010-10-05 Intel Corporation Integrated circuit capable of independently operating a plurality of communication channels
US8325602B2 (en) * 2008-12-18 2012-12-04 Cisco Technology, Inc. Method and system to manage network traffic congestion in networks with link layer flow control
US8443151B2 (en) * 2009-11-09 2013-05-14 Intel Corporation Prefetch optimization in shared resource multi-core systems
US8291171B2 (en) 2009-11-30 2012-10-16 Hewlett-Packard Development Company, L.P. Altering prefetch depth based on ready data
US9769285B2 (en) * 2011-06-14 2017-09-19 Google Inc. Access to network content
US8856447B2 (en) 2012-07-17 2014-10-07 Apple Inc. Converting memory accesses near barriers into prefetches
US8949487B1 (en) 2013-07-29 2015-02-03 Western Digital Technologies, Inc. Data transmission from data storage device
GB2517195A (en) * 2013-08-15 2015-02-18 Ibm Computer system productivity monitoring

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3898624A (en) 1973-06-14 1975-08-05 Amdahl Corp Data processing system with variable prefetch and replacement algorithms
JPH02122345A (ja) 1988-11-01 1990-05-10 Mitsubishi Electric Corp 記憶制御装置
JP2914834B2 (ja) 1992-09-14 1999-07-05 株式会社東芝 磁気ディスク装置
JP3608804B2 (ja) 1993-05-14 2005-01-12 株式会社ソニー・コンピュータエンタテインメント バス制御装置
JP2000048586A (ja) 1998-07-30 2000-02-18 Fujitsu Ltd 不揮発性半導体記憶装置
EP1291778B1 (en) 2001-04-24 2007-06-27 Rambus Inc. Method and apparatus for coordinating memory operations among diversely-located memory components
US6792496B2 (en) * 2001-08-02 2004-09-14 Intel Corporation Prefetching data for peripheral component interconnect devices
JP2003296266A (ja) 2002-04-04 2003-10-17 Sharp Corp バス接続装置およびデータ転送制御方法
JP2003337764A (ja) 2002-05-22 2003-11-28 Canon Inc 情報処理装置および情報処理装置のデータ転送方法およびプログラムおよび記憶媒体
US6983356B2 (en) 2002-12-19 2006-01-03 Intel Corporation High performance memory device-state aware chipset prefetcher
US6959374B2 (en) * 2003-01-29 2005-10-25 Sun Microsystems, Inc. System including a memory controller configured to perform pre-fetch operations including dynamic pre-fetch control
US7146467B2 (en) * 2003-04-14 2006-12-05 Hewlett-Packard Development Company, L.P. Method of adaptive read cache pre-fetching to increase host read throughput
US7228387B2 (en) * 2003-06-30 2007-06-05 Intel Corporation Apparatus and method for an adaptive multiple line prefetcher

Also Published As

Publication number Publication date
DE602006003099D1 (de) 2008-11-20
EP1896953A2 (en) 2008-03-12
JP2008547138A (ja) 2008-12-25
US20070005903A1 (en) 2007-01-04
WO2007005694A3 (en) 2007-06-28
WO2007005694A2 (en) 2007-01-11
EP1896953B1 (en) 2008-10-08
ATE410734T1 (de) 2008-10-15
US8370581B2 (en) 2013-02-05
TW200710650A (en) 2007-03-16
JP4616391B2 (ja) 2011-01-19

Similar Documents

Publication Publication Date Title
TWI358019B (en) System and method for dynamic data prefetching
US10318164B2 (en) Programmable input/output (PIO) engine interface architecture with direct memory access (DMA) for multi-tagging scheme for storage devices
TWI444831B (zh) 降低對記憶體的至少一部分之資料傳輸速率之方法、裝置、系統及電腦可讀媒體
TWI303366B (en) Method and apparatus for managing buffers in pci bridges
EP1389760B1 (en) Data transfer control system, program and data transfer control method
JP4559861B2 (ja) キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置
WO2011087595A2 (en) Hybrid memory architectures
JP2006059365A (ja) 改善されたデータ転送のためのコントローラ装置および方法
JP2007157029A (ja) メモリ制御回路及びメモリ制御方法
JP4400650B2 (ja) データ転送制御装置及び電子機器
TWI512477B (zh) 組配記憶體組件之資料寬度的方法、記憶體組件及相關之非暫時性電腦可讀取儲存媒體
TWI283350B (en) Method for use in a controller of a computing device that comprises a system memory and a codec, computing system, controller and machine-readable medium comprising a plurality of instructions
US10331359B2 (en) Memory subsystem with wrapped-to-continuous read
TWI598745B (zh) 資料傳輸方法及伺服器
US7849243B2 (en) Enabling flexibility of packet length in a communication protocol
JP2013030145A (ja) メモリカードコントローラ、メモリカードアダプタおよびメモリカードドライブ
WO2008005901A2 (en) Methods and arrangements to negotiate communication speed
TWI451262B (zh) 橋接電路
TW200941226A (en) Systems and methods for accessing hard disk drives
EP2916236B1 (en) Multi mode address spaces for PC to device transfer optimization
JP2009048444A (ja) Usbデバイスの制御方法、コントローラ及び電子機器
US6766383B1 (en) Packet-based direct memory access
EP1862892A2 (en) Disk controller, channel interface and methods for use therewith
US10261700B1 (en) Method and apparatus for streaming buffering to accelerate reads
TWI553462B (zh) 可降低耗電之硬碟裝置以及降低硬碟裝置耗電之方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees