国产精品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>

      用于使用預(yù)提升緩沖器的高吞吐量硬件加速的方法和系統(tǒng)的制作方法

      文檔序號(hào):6545220閱讀:216來(lái)源:國(guó)知局
      用于使用預(yù)提升緩沖器的高吞吐量硬件加速的方法和系統(tǒng)的制作方法
      【專(zhuān)利摘要】實(shí)施例涉及提供高吞吐量硬件加速。多個(gè)方面包括初始化加速器控制隊(duì)列(ACQ),所述加速器控制隊(duì)列被配置為提供關(guān)于被識(shí)別為加速器數(shù)據(jù)的數(shù)據(jù)的多個(gè)頁(yè)面的位置信息。確定所請(qǐng)求的目標(biāo)數(shù)據(jù)的每個(gè)頁(yè)面的起始位置。起始位置包括系統(tǒng)存儲(chǔ)器和盤(pán)存儲(chǔ)中之一?;诖_定起始位置是系統(tǒng)存儲(chǔ)器,在ACQ中創(chuàng)建條目,所述條目映射至用于目標(biāo)數(shù)據(jù)的系統(tǒng)存儲(chǔ)器源地址?;诖_定起始位置是盤(pán)存儲(chǔ),在ACQ中創(chuàng)建條目,所述條目映射至用于目標(biāo)數(shù)據(jù)的特別預(yù)提升緩沖器的特別預(yù)提升緩沖器源地址?;贏CQ的各自條目,通過(guò)加速器從在所述存儲(chǔ)器或所述特別預(yù)提升緩沖器內(nèi)的各自位置存取目標(biāo)數(shù)據(jù)的多個(gè)頁(yè)面的每個(gè)頁(yè)面。
      【專(zhuān)利說(shuō)明】用于使用預(yù)提升緩沖器的高吞吐量硬件加速的方法和系統(tǒng)

      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明一般地涉及硬件加速器,并且更為具體地涉及使用速度匹配的特別預(yù)提升 (pre-stage)緩沖器來(lái)提供高吞吐量硬件加速。

      【背景技術(shù)】
      [0002] 當(dāng)前計(jì)算系統(tǒng)被設(shè)計(jì)以處理需要對(duì)位于系統(tǒng)存儲(chǔ)器或盤(pán)存儲(chǔ)存儲(chǔ)上的大量數(shù)據(jù) 進(jìn)行存取的數(shù)據(jù)庫(kù)查詢和軟件算法。為了處理需要存取大量數(shù)據(jù)的數(shù)據(jù)庫(kù)查詢,當(dāng)前計(jì)算 系統(tǒng)典型地使用來(lái)自特定時(shí)間點(diǎn)的數(shù)據(jù)、或者在在線交易處理(0LTP)數(shù)據(jù)庫(kù)系統(tǒng)中所使 用的實(shí)時(shí)數(shù)據(jù)的"快照"。此外,當(dāng)需要的數(shù)據(jù)帶寬可用時(shí),當(dāng)前計(jì)算系統(tǒng)經(jīng)常提供硬件加速 器以便將一些處理從昂貴的一致性存儲(chǔ)器多處理器(coherent memory multiprocessor) 卸載至較低廉的或更高效的硬件加速器中。


      【發(fā)明內(nèi)容】

      [0003] 實(shí)施例包含用于提供高吞吐量硬件加速的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。多個(gè)方 面包含:初始化加速器控制隊(duì)列(ACQ),所述加速器控制隊(duì)列被配置為提供關(guān)于被識(shí)別為 加速器數(shù)據(jù)的數(shù)據(jù)的多個(gè)頁(yè)面的位置信息。從軟件應(yīng)用接收對(duì)跨越多頁(yè)面的目標(biāo)數(shù)據(jù)的 請(qǐng)求,并且確定每頁(yè)面目標(biāo)數(shù)據(jù)的起始位置(originating location)。起始位置包含系 統(tǒng)存儲(chǔ)器和盤(pán)存儲(chǔ)中的至少一個(gè)?;诖_定起始位置是系統(tǒng)存儲(chǔ)器,在ACQ中創(chuàng)建條目 (entry),所述條目映射至用于目標(biāo)數(shù)據(jù)的系統(tǒng)存儲(chǔ)器源地址?;诖_定出起始位置是盤(pán)存 儲(chǔ),在ACQ中創(chuàng)建條目,所述條目映射至用于目標(biāo)數(shù)據(jù)的特別預(yù)提升緩沖器的預(yù)提升緩沖 器源地址,所述特別預(yù)提升緩沖器被配置為從盤(pán)存儲(chǔ)中預(yù)提升目標(biāo)數(shù)據(jù)以用于通過(guò)加速器 進(jìn)行存取?;贏CQ的各種條目,通過(guò)加速器從所述存儲(chǔ)器或所述特別預(yù)提升緩沖器中的 各自位置來(lái)存取目標(biāo)數(shù)據(jù)的多個(gè)頁(yè)面中的每一頁(yè)面。

      【專(zhuān)利附圖】

      【附圖說(shuō)明】
      [0004] 在權(quán)利要求中特別地指出并且楚地要求作為本發(fā)明的主題。從下面結(jié)合附圖的詳 細(xì)描述中,本發(fā)明的上述和其他特征以及優(yōu)勢(shì)是明顯的,其中:
      [0005] 圖1描繪根據(jù)實(shí)施例的計(jì)算機(jī)系統(tǒng)的方框圖;
      [0006] 圖2描繪根據(jù)實(shí)施例從系統(tǒng)存儲(chǔ)器和盤(pán)存儲(chǔ)中預(yù)提升數(shù)據(jù)以用于加速器存取和 處理的流程圖;
      [0007] 圖3描繪根據(jù)實(shí)施例用于發(fā)起加速器以便對(duì)來(lái)自加速器控制隊(duì)列的數(shù)據(jù)進(jìn)行處 理的流程圖;
      [0008] 圖4描繪根據(jù)實(shí)施例用于釋放來(lái)自特別預(yù)提升緩沖器存儲(chǔ)器位置的預(yù)提升數(shù)據(jù) 的流程圖;
      [0009] 圖5描繪根據(jù)實(shí)施例的計(jì)算機(jī)程序產(chǎn)品。

      【具體實(shí)施方式】
      [0010] 在此公開(kāi)的實(shí)施例針對(duì)提供高吞吐量硬件加速。一個(gè)方面包含,初始化加速器控 制隊(duì)列(ACQ),所述加速器控制隊(duì)列被配置為提供關(guān)于被識(shí)別為加速器數(shù)據(jù)的數(shù)據(jù)的多個(gè) 頁(yè)面的位置信息。從軟件應(yīng)用處接收對(duì)跨越多頁(yè)面的目標(biāo)數(shù)據(jù)的請(qǐng)求,并且確定目標(biāo)數(shù)據(jù) 的每個(gè)頁(yè)面的起始位置。起始位置包含系統(tǒng)存儲(chǔ)器和盤(pán)存儲(chǔ)中的至少一個(gè)?;诖_定出起 始位置是系統(tǒng)存儲(chǔ)器,在ACQ中創(chuàng)建條目,所述條目映射至用于目標(biāo)數(shù)據(jù)的系統(tǒng)存儲(chǔ)器源 地址。基于確定出起始位置是盤(pán)存儲(chǔ),在ACQ中創(chuàng)建條目,所述條目映射至用于目標(biāo)數(shù)據(jù)的 特別預(yù)提升緩沖器的預(yù)提升緩沖器源地址,所述特別預(yù)提升緩沖器被配置為從盤(pán)存儲(chǔ)預(yù)提 升目標(biāo)數(shù)據(jù),用于加速器進(jìn)行存取。基于ACQ的各自條目,通過(guò)加速器從在所述存儲(chǔ)器或所 述特別預(yù)提升緩沖器中的各自位置中存取目標(biāo)數(shù)據(jù)的多個(gè)頁(yè)面中的每一頁(yè)面。
      [0011] 當(dāng)前數(shù)據(jù)系統(tǒng)典型地在將數(shù)據(jù)轉(zhuǎn)交至加速器之前將所有請(qǐng)求數(shù)據(jù)拉回到系統(tǒng)存 儲(chǔ)器內(nèi),或者將簡(jiǎn)單地假定所有請(qǐng)求數(shù)據(jù)位于盤(pán)存儲(chǔ)上并且將直接發(fā)送至加速器。相應(yīng)地, 當(dāng)前數(shù)據(jù)系統(tǒng)并不嘗試,將I/O請(qǐng)求發(fā)送至盤(pán)子系統(tǒng),并且使這些子系統(tǒng)將一些數(shù)據(jù)直接 傳遞至加速器,同時(shí)使其他數(shù)據(jù)來(lái)自系統(tǒng)存儲(chǔ)器。
      [0012] 在此公開(kāi)的實(shí)施例提供這樣的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品,它們用于將數(shù)據(jù)從 系統(tǒng)存儲(chǔ)器和盤(pán)存儲(chǔ)二者處卸載至加速器,同時(shí)防止加速器等待一個(gè)或另一個(gè)。換言之,實(shí) 施例通過(guò)確保所傳遞至加速器用于處理,從而提供速度匹配。實(shí)施例包含這樣的方法,其將 來(lái)自相對(duì)慢的磁盤(pán)存取的數(shù)據(jù)的傳遞與高吞吐量硬件加速器進(jìn)行速度匹配而不對(duì)用戶級(jí) 軟件引入附加的軟件復(fù)雜度。
      [0013] 此外,在此公開(kāi)的實(shí)施例提供這樣的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品,它們用于對(duì) 0LTP系統(tǒng)中發(fā)現(xiàn)的大量數(shù)據(jù)進(jìn)行處理時(shí)可用的加速器進(jìn)行最優(yōu)化。實(shí)施例以允許目標(biāo)加 速器以最大吞吐速率存取和處理數(shù)據(jù)的方式,從系統(tǒng)存儲(chǔ)器和盤(pán)存儲(chǔ)中預(yù)提升數(shù)據(jù)。實(shí)施 例可以跟蹤所需要的數(shù)據(jù)的狀態(tài)和起始位置,允許以最優(yōu)的方式存取數(shù)據(jù)的頁(yè)面,而不考 慮頁(yè)面的位置(例如系統(tǒng)存儲(chǔ)器還是盤(pán)存儲(chǔ))。實(shí)施例可以使用現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA) 作為加速器,結(jié)合快閃存儲(chǔ)器作為特別預(yù)提升緩沖器以便對(duì)FPGA的使用進(jìn)行最優(yōu)化。實(shí)施 例還可以通過(guò)對(duì)從盤(pán)至快閃存儲(chǔ)器然后至FPGA的數(shù)據(jù)流進(jìn)行最優(yōu)化減少系統(tǒng)數(shù)據(jù)總線的 使用,從而在所有盤(pán)駐留數(shù)據(jù)上避免系統(tǒng)和存儲(chǔ)器總線。另外,實(shí)施例可以與任何操作大量 數(shù)據(jù)上并且保持?jǐn)?shù)據(jù)映射的軟件算法一起使用,所述數(shù)據(jù)映射表明數(shù)據(jù)目前在系統(tǒng)存儲(chǔ)器 內(nèi)還是在盤(pán)存儲(chǔ)上。此外,實(shí)施例可以被擴(kuò)展以操作在其中僅僅操作系統(tǒng)保持?jǐn)?shù)據(jù)映射的 系統(tǒng)上。
      [0014] 現(xiàn)在參考圖1,示出根據(jù)示例性實(shí)施例的計(jì)算機(jī)系統(tǒng)10的方框圖,所述計(jì)算機(jī)系 統(tǒng)適合使用速度匹配的特別預(yù)提升緩沖器來(lái)提供高吞吐量硬件加速。計(jì)算機(jī)系統(tǒng)10僅是 計(jì)算機(jī)系統(tǒng)的一個(gè)示例,而不旨在暗示與在此描述的實(shí)施例的使用或功能的范圍有關(guān)的任 何限制。不管怎樣,計(jì)算機(jī)系統(tǒng)10能夠被實(shí)施和/或執(zhí)行此前闡述的任何功能。
      [0015] 與眾多其他通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置一起計(jì)算機(jī)系統(tǒng)10是可操作的。眾 所周知的適合供計(jì)算機(jī)系統(tǒng)10使用的計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括但不限于:個(gè) 人計(jì)算機(jī)系統(tǒng)、服務(wù)器計(jì)算機(jī)系統(tǒng)、瘦客戶端(thin client)、胖客戶端(thick client)、蜂 窩電話、手持或膝上設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子、 網(wǎng)絡(luò)PC、微計(jì)算機(jī)系統(tǒng)、大型計(jì)算機(jī)系統(tǒng)和包含上述任何系統(tǒng)或設(shè)備的分布式云計(jì)算環(huán)境 等。
      [0016] 可以在由計(jì)算機(jī)系統(tǒng)10執(zhí)行的諸如程序模塊的計(jì)算機(jī)系統(tǒng)可執(zhí)行指令的一般上 下文中描述計(jì)算機(jī)系統(tǒng)10。一般地,程序模塊可以包括執(zhí)行特定任務(wù)或?qū)嵤┨囟ǔ橄髷?shù)據(jù) 類(lèi)型的例程、程序、對(duì)象、部件、邏輯、數(shù)據(jù)結(jié)構(gòu)等。計(jì)算機(jī)系統(tǒng)10可以實(shí)現(xiàn)在分布式云計(jì)算 環(huán)境中,其中通過(guò)由通信網(wǎng)絡(luò)所鏈接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程 序模塊可以位于本地的和遠(yuǎn)程的包含存儲(chǔ)器存儲(chǔ)設(shè)備的計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)中。
      [0017] 如圖1中示出的,以通用計(jì)算設(shè)備的形式示出計(jì)算機(jī)系統(tǒng)10,其也被稱(chēng)作處理設(shè) 備。計(jì)算機(jī)系統(tǒng)的部件可以包括但不限于:一個(gè)或多個(gè)處理器或處理單元16、系統(tǒng)存儲(chǔ)器 28和將包含系統(tǒng)存儲(chǔ)器28的各種系統(tǒng)部件耦合至處理器16的總線18。處理器16可以運(yùn) 行計(jì)算機(jī)可讀程序代碼用于使用根據(jù)實(shí)施例的速度匹配的特別預(yù)提升緩沖器來(lái)提供高吞 吐量硬件加速。
      [0018] 總線18表示幾種總線結(jié)構(gòu)類(lèi)型中的任意一個(gè)或多個(gè),包括存儲(chǔ)器總線或存儲(chǔ)器 控制器、外圍總線、加速圖形端口和使用多種總線結(jié)構(gòu)中的任何一種的處理器或局部總線。 以示例而非限制性的方式,這樣的結(jié)構(gòu)包括:工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié) 構(gòu)(MCA)總線、加強(qiáng)型ISA (EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線、和外圍部件互 聯(lián)(PCI)總線。
      [0019] 計(jì)算機(jī)系統(tǒng)10可以包含各種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這樣的介質(zhì)可以是通過(guò)計(jì)算 機(jī)系統(tǒng)10可存取的任何可用介質(zhì),并且其包含易失和非易失性介質(zhì)、可移除和不可移除介 質(zhì)。系統(tǒng)存儲(chǔ)器28可以包括諸如隨機(jī)存取存儲(chǔ)器(RAM)和/或系統(tǒng)高速緩存之類(lèi)的易失 存儲(chǔ)器的形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。根據(jù)實(shí)施例,系統(tǒng)存儲(chǔ)器28可以由數(shù)據(jù)庫(kù)軟件使用 以便創(chuàng)建如以下進(jìn)一步討論的加速器控制隊(duì)列(ACQ)。
      [0020] 計(jì)算機(jī)系統(tǒng)10還可以包含其他可移除/不可移除、易失/非易失性計(jì)算機(jī)系統(tǒng)存 儲(chǔ)介質(zhì)。僅以示例的方式,可以提供存儲(chǔ)系統(tǒng)34以便從不可移除的非易失性的磁介質(zhì)(未 示出并且通常稱(chēng)作"硬盤(pán)驅(qū)動(dòng)器")中讀取或向其寫(xiě)入。每個(gè)存儲(chǔ)系統(tǒng)34可以包含特別預(yù) 提升緩沖器或磁盤(pán)緩沖器36。盡管未示出,可以提供磁盤(pán)驅(qū)動(dòng)器用于從可移除非易失性磁 盤(pán)(例如"軟磁盤(pán)")讀取并且向其寫(xiě)入,并且提供光盤(pán)驅(qū)動(dòng)器用于從諸如⑶-R0M、DVD-R0M 或其他光學(xué)介質(zhì)之類(lèi)的可移除非易失性光盤(pán)中讀取或向其寫(xiě)入。在這樣的實(shí)例中,每個(gè)可 以通過(guò)一個(gè)或多個(gè)數(shù)據(jù)介質(zhì)接口連接至總線18。
      [0021] 如下文中將進(jìn)一步描繪和描述的那樣,系統(tǒng)存儲(chǔ)器28可以包含至少一個(gè)具有一 組(例如至少一個(gè))程序模塊的程序產(chǎn)品,所述程序模塊被配置為執(zhí)行本公開(kāi)的實(shí)施例的 功能。
      [0022] 根據(jù)實(shí)施例,計(jì)算機(jī)可讀程序代碼可以存儲(chǔ)在示例方式但不限于的系統(tǒng)存儲(chǔ)器28 中,以及操作系統(tǒng)、一個(gè)或多個(gè)應(yīng)用程序、其他程序模塊和程序數(shù)據(jù)中。操作系統(tǒng)、一個(gè)或多 個(gè)應(yīng)用程序、其他程序模塊和程序數(shù)據(jù)中的每一個(gè),或者它們中的一些組合,可以包含聯(lián)網(wǎng) 環(huán)境的實(shí)施。計(jì)算機(jī)可讀程序代碼可以一般地執(zhí)行如在此描述的發(fā)明的實(shí)施例的功能和/ 或方法。
      [0023] 計(jì)算機(jī)系統(tǒng)10也可以與以下設(shè)備進(jìn)行通信:諸如鍵盤(pán)、指示裝置、顯示器等之類(lèi) 的一個(gè)或多個(gè)外部設(shè)備;一個(gè)或多個(gè)使得用戶可以與計(jì)算機(jī)系統(tǒng)10交互的設(shè)備;和/或任 何使得計(jì)算機(jī)系統(tǒng)/服務(wù)器10能夠與一個(gè)或多個(gè)計(jì)算設(shè)備進(jìn)行通信的設(shè)備(例如網(wǎng)卡、調(diào) 制解調(diào)器等)。此外,計(jì)算機(jī)系統(tǒng)10可以與諸如局域網(wǎng)(LAN)、一般廣域網(wǎng)(WAN)和/或公 共網(wǎng)絡(luò)(例如因特網(wǎng))之類(lèi)的一個(gè)或多個(gè)網(wǎng)絡(luò)通信。這樣的通信可以通過(guò)輸入/輸出(1/ 0)網(wǎng)絡(luò)22來(lái)發(fā)生。如所描繪的,I/O網(wǎng)絡(luò)22通過(guò)總線18來(lái)與計(jì)算機(jī)系統(tǒng)10的其他部件 進(jìn)行通信。例如,根據(jù)實(shí)施例,可以在處理器16和I/O網(wǎng)絡(luò)之間建立I/O網(wǎng)絡(luò)連接,以允許 處理器16向I/O網(wǎng)絡(luò)22發(fā)出特別的I/O請(qǐng)求。根據(jù)另一實(shí)施例,I/O網(wǎng)絡(luò)也可以與計(jì)算 機(jī)系統(tǒng)10的其他部件進(jìn)行無(wú)線通信。
      [0024] 計(jì)算機(jī)系統(tǒng)10還可以包含專(zhuān)用計(jì)算機(jī)系統(tǒng)。這些專(zhuān)用計(jì)算機(jī)系統(tǒng)可以包含硬件 加速器52,諸如FPGA (現(xiàn)場(chǎng)可編程門(mén)陣列)、GPU (圖形處理單元)和類(lèi)似的可以代替通用處 理器或者增加于通用處理器使用的系統(tǒng)。根據(jù)實(shí)施例,每個(gè)硬件加速器可以包含諸如快閃 存儲(chǔ)器之類(lèi)的特別預(yù)提升加速器緩沖器54。根據(jù)實(shí)施例,硬件加速器可以連接至I/O網(wǎng)絡(luò) 22。根據(jù)實(shí)施例,在每個(gè)硬件加速器52和系統(tǒng)存儲(chǔ)器28之間可以提供專(zhuān)用接口 70,以獨(dú)立 于處理器16地提供從硬件加速器子系統(tǒng)52至系統(tǒng)存儲(chǔ)器28的直接存儲(chǔ)器存?。―MA)。
      [0025] 計(jì)算機(jī)系統(tǒng)10也可以提供特別預(yù)提升備選緩沖器62,其可以連接至附加的存儲(chǔ) 器卡。應(yīng)當(dāng)理解的是,盡管未示出,但是可以與計(jì)算機(jī)系統(tǒng)10相結(jié)合地使用其他硬件和/ 或其他軟件部件。示例包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部盤(pán)驅(qū)動(dòng)器陣 列、RAID系統(tǒng)、帶驅(qū)動(dòng)器和數(shù)據(jù)檔案存儲(chǔ)系統(tǒng)(data archival storage system)等。
      [0026] 參考圖2, 一般地示出由計(jì)算機(jī)系統(tǒng)10的處理器16的實(shí)施例所執(zhí)行的處理200的 流程圖。如圖2中所示,處理200提供這樣的方法,其用于從系統(tǒng)存儲(chǔ)器28和盤(pán)存儲(chǔ)34預(yù) 提升數(shù)據(jù)以允許目標(biāo)加速器52以最大吞吐速率存取并且處理數(shù)據(jù)。
      [0027] 根據(jù)實(shí)施例,如在方框210中所示,加速器控制隊(duì)列(ACQ)可以被構(gòu)造以便預(yù)提升 需要使用加速器52的目標(biāo)數(shù)據(jù)。ACQ可以包含用于已經(jīng)由處理200所操作的目標(biāo)數(shù)據(jù)的 每個(gè)頁(yè)面的條目。每個(gè)ACQ條目可以包含頁(yè)面駐留在系統(tǒng)存儲(chǔ)器28中還是在盤(pán)存儲(chǔ)34中 的指示。附加地,每個(gè)ACQ條目可以包含一組位(a set of bits),其指示對(duì)于ACQ條目的 I/O操作(如果存在)的狀態(tài)。在方框220中,可以對(duì)頁(yè)面映射進(jìn)行存取,以基于接收到對(duì) 需要使用加速器52的目標(biāo)數(shù)據(jù)的請(qǐng)求和詢問(wèn),來(lái)確定目標(biāo)數(shù)據(jù)的頁(yè)面的位置。在方框230 中,關(guān)于目標(biāo)頁(yè)面駐留在系統(tǒng)存儲(chǔ)器28中還是在盤(pán)存儲(chǔ)34上進(jìn)行確定。
      [0028] 基于確定目標(biāo)頁(yè)面駐留在盤(pán)存儲(chǔ)34上,發(fā)起對(duì)I/O網(wǎng)絡(luò)的特別I/O請(qǐng)求,如在方 框240中所示。根據(jù)實(shí)施例,特別I/O請(qǐng)求可以將目標(biāo)頁(yè)面從盤(pán)存儲(chǔ)34直接傳遞給加速器 52,或者將目標(biāo)頁(yè)面?zhèn)鬟f至特別預(yù)提升緩沖器36、54、62用于加速器52稍后存取。根據(jù)實(shí) 施例,目標(biāo)頁(yè)面可以傳遞至特別預(yù)提升緩沖器,所述預(yù)提升緩沖器包括加速器緩沖器52、盤(pán) 緩沖器36或備選緩沖器62中之一。根據(jù)實(shí)施例,特別預(yù)提升緩沖器36、54、62被配置為對(duì) 目標(biāo)數(shù)據(jù)進(jìn)行預(yù)提升用于加速器進(jìn)行存取。本實(shí)施例允許更好地利用加速器52,因?yàn)槠鋵?無(wú)需等待來(lái)自盤(pán)的目標(biāo)數(shù)據(jù)。根據(jù)實(shí)施例,可以發(fā)起驗(yàn)證(Pin)或映射目標(biāo)頁(yè)面在特別預(yù) 提升緩沖器36、54、62中的位置的請(qǐng)求。相應(yīng)地,在方框250中,可以創(chuàng)建ACQ條目,以映射 目標(biāo)頁(yè)面在特別預(yù)提升緩沖器36、54、62中的源地址用于加速器52隨后引用。
      [0029] 基于在塊230中確定目標(biāo)頁(yè)面駐留在系統(tǒng)存儲(chǔ)器28中,可以創(chuàng)建ACQ條目,其映 射至目標(biāo)頁(yè)面在系統(tǒng)存儲(chǔ)器28中的源地址用于加速器52隨后引用,如在方框260中所示。 根據(jù)實(shí)施例,加速器52隨后可以使用直接存儲(chǔ)器存?。―MA)以便通過(guò)專(zhuān)用接口從系統(tǒng)存儲(chǔ) 器28提取目標(biāo)頁(yè)面。
      [0030] 在方框270中,關(guān)于是否要將另一目標(biāo)頁(yè)面添加至ACQ進(jìn)行確定?;诖_定要將 另一目標(biāo)頁(yè)面添加至ACQ,處理200可以存取頁(yè)面映射,以便確定新目標(biāo)頁(yè)面的位置,如在 方框220中所示。然而,基于確定沒(méi)有更多目標(biāo)頁(yè)面要添加至ACQ,采集I/O響應(yīng),如在方框 280中所示。根據(jù)實(shí)施例,I/O響應(yīng)可以包含與請(qǐng)求的數(shù)據(jù)一起由盤(pán)存儲(chǔ)34發(fā)回至請(qǐng)求服 務(wù)器的消息??梢杂弥袛囹?qū)動(dòng)方案來(lái)實(shí)施I/O響應(yīng),其中,通過(guò)進(jìn)入的消息來(lái)中斷在服務(wù)器 中的處理器16,并且分叉至I/O中斷處理程序。在處理程序中的代碼將I/O響應(yīng)與發(fā)起請(qǐng) 求者相匹配,由此確保數(shù)據(jù)被傳遞至正確的存儲(chǔ)器位置并且更新存儲(chǔ)器中的控制塊以便指 示完成了 I/O請(qǐng)求。每次另一 I/O中斷與下一數(shù)據(jù)塊一起進(jìn)入服務(wù)器,可以使用相同的中 斷處理程序。
      [0031] 參考圖3, 一般地示出由計(jì)算機(jī)系統(tǒng)10的處理器16的實(shí)施例所進(jìn)行的處理300的 流程圖。如圖3中所示,根據(jù)實(shí)施例,處理300提供用于發(fā)起處理器52以處理來(lái)自ACQ的 數(shù)據(jù)的方法。
      [0032] 在方框310處,處理300檢查對(duì)數(shù)據(jù)請(qǐng)求或查詢的新I/O響應(yīng)。在方框320處,根 據(jù)實(shí)施例,關(guān)于新I/O響應(yīng)是否與在ACQ中的條目相匹配進(jìn)行確定。
      [0033] 基于確定新I/O響應(yīng)與ACQ中的條目不相匹配,根據(jù)當(dāng)前處理方法來(lái)處理新I/O 響應(yīng),如在方框330中所示。然而,基于確定新I/O響應(yīng)與ACQ中的條目相匹配,新I/O響 應(yīng)被標(biāo)記為完成,如在方框340中所示。換言之,根據(jù)實(shí)施例,新I/O響應(yīng)被標(biāo)記為已經(jīng)被 預(yù)提升在ACQ中。
      [0034] 在方框350處,關(guān)于是否ACQ中的所有條目都具有有效響應(yīng)進(jìn)行確定。根據(jù)實(shí)施 例,每個(gè)ACQ條目可以包含對(duì)用于ACQ條目指示I/O操作的狀態(tài)的一組位。這些位可以用 于確認(rèn)已經(jīng)完成了足夠的盤(pán)操作并且在調(diào)用加速器52之前已經(jīng)將需要的數(shù)據(jù)提升至較快 的特別預(yù)提升緩沖器存儲(chǔ)器中。根據(jù)實(shí)施例,特別預(yù)提升緩沖器36、54、62被配置為預(yù)提升 目標(biāo)數(shù)據(jù)用于加速器進(jìn)行存取。根據(jù)實(shí)施例,服務(wù)器采集I/O響應(yīng)并且然后等待將ACQ發(fā) 送至加速器52。根據(jù)另一實(shí)施例,服務(wù)器可以將這樣的ACQ發(fā)送至加速器52,所述ACQ具 有一些標(biāo)記為有效的條目但是也具有一些標(biāo)記為無(wú)效的條目。相應(yīng)地,加速器52將開(kāi)始處 理有效的數(shù)據(jù)塊,并且然后向服務(wù)器查詢更新的ACQ版本,其中之前無(wú)效的條目已經(jīng)成為 有效的。根據(jù)另一實(shí)施例,加速器52自身可以監(jiān)視I/O中斷消息。
      [0035] 相應(yīng)地,基于確定所有的ACQ條目具有有效的響應(yīng),加速器52被激勵(lì)并且指向 ACQ,如在方框360中所示。根據(jù)實(shí)施例,加速器52使用在ACQ中的信息以便以最佳方式對(duì) 數(shù)據(jù)存取進(jìn)行排序,從而使加速器52的數(shù)據(jù)吞吐量最大化并且避免等待磁盤(pán)存取。否則, 基于確定仍然存在對(duì)附加的ACQ條目的有效響應(yīng),處理300檢查對(duì)于數(shù)據(jù)請(qǐng)求或查詢的新 I/O響應(yīng),如塊310中所示。
      [0036] 參考圖4, 一般地示出由計(jì)算機(jī)系統(tǒng)10的處理器16的實(shí)施例所進(jìn)行的處理400的 流程圖。如圖4中所示,根據(jù)實(shí)施例,處理400提供用于從特別預(yù)提升緩沖器存儲(chǔ)器位置釋 放預(yù)提升的數(shù)據(jù)的方法。
      [0037] 在方框410處,諸如盤(pán)存儲(chǔ)34之類(lèi)的I/O設(shè)備可以接收對(duì)目標(biāo)數(shù)據(jù)的請(qǐng)求。在方 框420處,關(guān)于所接收的請(qǐng)求是否是特別請(qǐng)求進(jìn)行確定?;谒邮盏恼?qǐng)求是正常請(qǐng)求,該 請(qǐng)求根據(jù)當(dāng)前處理方法被處理,如在方框430中所示。根據(jù)所接收的請(qǐng)求是特別I/O請(qǐng)求, 實(shí)施例可以暫時(shí)地將請(qǐng)求的數(shù)據(jù)頁(yè)面標(biāo)記為對(duì)于由任何其他請(qǐng)求者進(jìn)行的更新是不可用 的。相應(yīng)地,如在方框440中所示,通過(guò)加速器52使用預(yù)提升數(shù)據(jù)來(lái)滿足特別請(qǐng)求,并且釋 放預(yù)提升數(shù)據(jù)的特別預(yù)提升緩沖器存儲(chǔ)器位置以便隨后使用。換言之,根據(jù)實(shí)施例,在處理 器52完成存取需要的數(shù)據(jù)之后,可以釋放被標(biāo)記為不可用于更新的一個(gè)和多個(gè)映射目標(biāo) 頁(yè)面。
      [0038] 所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。 因此,本公開(kāi)可以具體實(shí)現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包 括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱(chēng)為"電路"、"模 塊"或"系統(tǒng)"。此外,在一些實(shí)施例中,本發(fā)明還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì) 中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
      [0039] 可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì) 算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是--但不限 于--電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算 機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便 攜式計(jì)算機(jī)磁盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ) 器(EPROM或閃存)、光纖、便攜式緊湊磁盤(pán)只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、 或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程 序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
      [0040] 現(xiàn)在參考圖5,在一個(gè)示例中,計(jì)算機(jī)程序產(chǎn)品500包含例如一個(gè)或多個(gè)存儲(chǔ)介質(zhì) 502,其中介質(zhì)可以是有形的和/或非瞬時(shí)性的,以便在其上存儲(chǔ)計(jì)算機(jī)可讀的程序代碼部 件或邏輯504從而提供和幫助在此描述的實(shí)施例的一個(gè)或多個(gè)方面。
      [0041] 程序代碼當(dāng)創(chuàng)建和保存在(包括但不局限于電子存儲(chǔ)器模塊(RAM)、瞬時(shí)存儲(chǔ)器、 壓縮盤(pán)(CD)、DVD、磁帶等的)有形介質(zhì)上時(shí),通常被稱(chēng)作"計(jì)算機(jī)程序產(chǎn)品"。典型地可以 由優(yōu)選在計(jì)算機(jī)系統(tǒng)中的處理電路來(lái)讀取計(jì)算機(jī)程序產(chǎn)品介質(zhì)以便通過(guò)處理電路運(yùn)行。例 如可以使用編譯器或匯編器來(lái)創(chuàng)建這樣的程序代碼以便編譯指令,使得當(dāng)執(zhí)行時(shí)實(shí)現(xiàn)本發(fā) 明的多個(gè)方面。
      [0042] 技術(shù)效果和優(yōu)勢(shì)包括,即使當(dāng)需要存取的數(shù)據(jù)片段位于慢盤(pán)存儲(chǔ)34上時(shí),提供在 0LTP系統(tǒng)中運(yùn)行相對(duì)于最近實(shí)時(shí)數(shù)據(jù)的請(qǐng)求和其他算法的能力。此外,公開(kāi)的實(shí)施例使將 數(shù)據(jù)從盤(pán)存儲(chǔ)34移動(dòng)至系統(tǒng)存儲(chǔ)器28并且然后從系統(tǒng)存儲(chǔ)器28移動(dòng)至加速器52需要的 數(shù)據(jù)帶寬最小化。公開(kāi)的實(shí)施例提供對(duì)加速器52的高效利用,所述加速器需要存取來(lái)自具 有不同的存取延遲和響應(yīng)時(shí)間的源的數(shù)據(jù)。
      [0043] 在此使用的術(shù)語(yǔ)僅用于描述特定實(shí)施例的目的,并且不旨在限制實(shí)施例。如在此 使用的,單數(shù)形式"一個(gè)"、"一"和"該"旨在也包括復(fù)數(shù)形式,除非上下文清楚地表明相反情 況。還將理解的是,用語(yǔ)"包含"和/或"包括"當(dāng)在本說(shuō)明書(shū)中使用時(shí),說(shuō)明存在所陳述的 特性、數(shù)量、步驟、操作、單元和/或部件,但是并不排除一個(gè)或多個(gè)其他特性、數(shù)量、步驟、 操作、單元、部件和/或其中組合的出現(xiàn)或附加。
      [0044] 相應(yīng)的結(jié)構(gòu)、材料、行為和在權(quán)利要求中所有的部件或步驟加上功能單元的等價(jià) 物旨在包括任何用于結(jié)合所明確要求的其他要求權(quán)利的單元來(lái)實(shí)現(xiàn)功能的結(jié)構(gòu)、材料和行 為。已經(jīng)提供實(shí)施例的描述用于說(shuō)明和描述,但是不意味著是徹底的或限制于所公開(kāi)形式 的實(shí)施例。對(duì)于本領(lǐng)域普通技術(shù)人員而言,很多改動(dòng)和變形是顯而易見(jiàn)的,而不脫離勢(shì)力的 范圍和主旨。選擇并描述實(shí)施例以便最好地解釋原理和實(shí)際應(yīng)用,并且使得本領(lǐng)域普通技 術(shù)人員理解具有各種改動(dòng)的實(shí)施例適于特殊使用考慮。
      [0045] 可以以一種或多種程序設(shè)計(jì)語(yǔ)言或其組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的計(jì)算機(jī) 程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++, 還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如" C"語(yǔ)言或類(lèi)似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以 完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部 分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在 涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類(lèi)的網(wǎng)絡(luò)--包括局域網(wǎng)(LAN)或 廣域網(wǎng)(WAN)-連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提 供商來(lái)通過(guò)因特網(wǎng)連接)。
      [0046] 本文中將參照實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框 圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框 的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專(zhuān)用 計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計(jì)算機(jī)程序指令 通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī) 定的功能/操作的裝置。
      [0047] 也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能使得計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置 以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一 個(gè)包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruction means)的制造品(manufacture) 〇
      [0048] 也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備 上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì) 算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實(shí)現(xiàn)流程圖 和/或框圖中的方框中規(guī)定的功能/操作的過(guò)程。
      [0049] 附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程 序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以 代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè) 用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所 標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以 基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的 是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行 規(guī)定的功能或動(dòng)作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的 組合來(lái)實(shí)現(xiàn)。
      【權(quán)利要求】
      1. 一種用于提供高吞吐量硬件加速的計(jì)算機(jī)實(shí)施的方法,其包含: 通過(guò)計(jì)算機(jī)初始化加速器控制隊(duì)列(ACQ),所述加速器控制隊(duì)列被配置為提供關(guān)于被 識(shí)別為加速器數(shù)據(jù)的數(shù)據(jù)的多個(gè)頁(yè)面的位置信息; 接收來(lái)自軟件應(yīng)用的對(duì)目標(biāo)數(shù)據(jù)的請(qǐng)求,所述目標(biāo)數(shù)據(jù)跨越多個(gè)頁(yè)面; 確定目標(biāo)數(shù)據(jù)的每個(gè)頁(yè)面的起始位置,所述起始位置包括系統(tǒng)存儲(chǔ)器和盤(pán)存儲(chǔ)中的至 少一個(gè); 基于確定所述起始位置是所述系統(tǒng)存儲(chǔ)器,在所述ACQ中創(chuàng)建條目,所述條目映射至 用于所述目標(biāo)數(shù)據(jù)的系統(tǒng)存儲(chǔ)器源地址; 基于確定所述起始位置是所述盤(pán)存儲(chǔ),在所述ACQ中創(chuàng)建條目,所述條目映射至用于 所述目標(biāo)數(shù)據(jù)的特別預(yù)提升緩沖器的預(yù)提升緩沖器源地址,所述特別預(yù)提升緩沖器被配置 為從盤(pán)存儲(chǔ)中預(yù)提升所述目標(biāo)數(shù)據(jù)用于所述加速器進(jìn)行存?。缓? 基于所述ACQ的各自條目,通過(guò)加速器從在所述存儲(chǔ)器或所述特別預(yù)提升緩沖器內(nèi)的 各自位置存取目標(biāo)數(shù)據(jù)的多個(gè)頁(yè)面中的每一頁(yè)面。
      2. 按照權(quán)利要求1所述的計(jì)算機(jī)實(shí)施的方法,其中還基于確定所述起始位置是所述盤(pán) 存儲(chǔ): 發(fā)起特別輸入/輸出請(qǐng)求,以便將所述目標(biāo)數(shù)據(jù)存儲(chǔ)在所述特別預(yù)提升緩沖器內(nèi);和 保存其中存儲(chǔ)所述目標(biāo)數(shù)據(jù)的特別預(yù)提升緩沖器的源地址。
      3. 按照權(quán)利要求2所述的計(jì)算機(jī)實(shí)施的方法,其中,所述特別預(yù)提升緩沖器包括加速 器緩沖器、磁盤(pán)緩沖器和耦合至存儲(chǔ)器卡的緩沖器中的一個(gè)。
      4. 按照權(quán)利要求1所述的計(jì)算機(jī)實(shí)施的方法,其中在所述ACQ中的條目還包含所述目 標(biāo)數(shù)據(jù)駐留在所述系統(tǒng)存儲(chǔ)器、盤(pán)存儲(chǔ)和特別預(yù)提升緩沖器中的至少一個(gè)中的指示,并且 包含用于所述目標(biāo)數(shù)據(jù)的輸入/輸出操作的狀態(tài)。
      5. 按照權(quán)利要求1所述的計(jì)算機(jī)實(shí)施的方法,其還包含: 檢查來(lái)自隨后數(shù)據(jù)請(qǐng)求的輸入/輸出響應(yīng); 確定所述輸入/輸出響應(yīng)與在所述ACQ中的條目相匹配;以及 基于將所述輸入/輸出響應(yīng)與在所述ACQ中的條目相匹配,將該輸入/輸出響應(yīng)標(biāo)記 為在該ACQ中。
      6. 按照權(quán)利要求5所述的計(jì)算機(jī)實(shí)施的方法,其還包含在初始化所述加速器之前,確 定在所述ACQ內(nèi)的所有條目具有有效的響應(yīng)。
      7. 按照權(quán)利要求1所述的計(jì)算機(jī)實(shí)施的方法,其中基于確定所述目標(biāo)數(shù)據(jù)來(lái)源于所述 盤(pán)存儲(chǔ),所述方法還包含: 將所述目標(biāo)數(shù)據(jù)標(biāo)記為對(duì)于通過(guò)其他請(qǐng)求者進(jìn)行的更新不可用; 發(fā)送所述目標(biāo)數(shù)據(jù)至所述加速器以用于處理;以及 在加速器已經(jīng)完成存取所述目標(biāo)數(shù)據(jù)之后,釋放用于所述目標(biāo)數(shù)據(jù)的預(yù)提升緩沖器源 地址。
      8. -種用于提供高吞吐量硬件加速的系統(tǒng),所述系統(tǒng)包含被配置為執(zhí)行按照權(quán)利要求 1至7中任一項(xiàng)所述的方法步驟的部件。
      【文檔編號(hào)】G06F12/08GK104123236SQ201410177329
      【公開(kāi)日】2014年10月29日 申請(qǐng)日期:2014年4月29日 優(yōu)先權(quán)日:2013年4月29日
      【發(fā)明者】W.T.博伊德, 小托馬斯.J.赫勒 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1