TWI531958B - 雲端計算之大型儲存虛擬化 - Google Patents
雲端計算之大型儲存虛擬化 Download PDFInfo
- Publication number
- TWI531958B TWI531958B TW103136465A TW103136465A TWI531958B TW I531958 B TWI531958 B TW I531958B TW 103136465 A TW103136465 A TW 103136465A TW 103136465 A TW103136465 A TW 103136465A TW I531958 B TWI531958 B TW I531958B
- Authority
- TW
- Taiwan
- Prior art keywords
- interface
- large storage
- communication interface
- processing unit
- storage device
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an MPEG-stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/90—Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
- A63F13/95—Storage media specially adapted for storing game information, e.g. video game cartridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Description
本揭示內容之各個態樣涉及儲存虛擬化。本揭示內容之其他態樣涉及用於設計用於嵌入式平臺的雲端計算應用的儲存虛擬化。
隨著電信系統的頻寬及資料傳送速率的持續發展,如今許多計算需求正朝基於網路的分散式計算系統(統稱為「雲端計算(cloud computing)」)轉變。一般言之,雲端計算涉及離線下載某些計算任務給一或多個遠端計算資源及使用遠端計算資源來給本端裝置提供服務。雲端計算通常被實施為用戶端-伺服器模型,其中遠端伺服器給本端用戶端裝置提供所需計算能力,從而避免本端用戶端裝置需要自身執行某些計算任務。在許多實例中,可將計算資源完整或幾乎完整地離線下載到伺服器,使得用戶端提供較少或僅提供使用者介面用於雲端計算任務,從而允許任何聯網裝置潛在地用作特定應用的用戶端。
雲端計算已採用於多種計算服務中,包括遠
端資料儲存方案、音樂及視訊串流服務以及多種其他消費者及商業方案。一般言之,雲端計算提供多種眾所周知的好處,包括藉由使用共用資源增加效率、增加存取內容的靈活性而不限於特定裝置、降低硬體升級可用時的預付成本及其他優點。
其中雲端計算尚未達到廣泛採用之一個領域是逐漸流行的視訊遊戲領域。包括個人電腦(PC)遊戲、家用單機遊戲、掌上型單機遊戲等等之視訊遊戲仍為消費者中的流行娛樂來源。隨著可用視訊遊戲名稱集合之逐漸增加,雲端遊戲給許多視訊遊戲需求提供特別吸引人的方案。理想狀況是,在雲端遊戲框架內,用戶將能夠從遠端儲存之名稱的巨大集合中即刻存取任何視訊遊戲名稱,且無需物理拷貝遊戲、無需等待下載名稱且無需局部處理運行遊戲所需硬體系統或資源。不幸的是,實施傳統雲端計算伺服器設計內之此種類型的服務面臨複數個技術挑戰:迄今為止許多視訊遊戲平臺阻止廣泛採用雲端遊戲。
一個挑戰是:如今許多視訊遊戲的節奏極快且動作緊密,使得高級圖形需要呈現大量的計算資源。尤其是在基於視訊串流的伺服器設計(其中遠端執行全部遊戲計算及圖形呈現計算)中,遊戲需要能夠執行全部此等任務且回應於控制輸入將壓縮音訊/視訊串流傳遞到用戶端裝置,使得可感知的延時最小甚至沒有可感知的延時。否則,此可能中斷玩家的時間且無法重複傳統局部執行的遊戲會話的回應。
另一挑戰源於以下事實:傳統上言之,(一方面)PC遊戲(經設計以在個人電腦、膝上型電腦及通用本質的其他計算系統上運行)與(另一方面)單機遊戲(經設計以在稱作視訊遊戲機的專用系統上運行)之間存在不同。視訊遊戲機通常經設計以具有專門調整來用於視訊遊戲環境之獨有計算架構的嵌入式平臺。使用專用控制台硬體作為視訊遊戲平臺提供多種好處,尤其是呈優化硬體以滿足生產如今許多視訊遊戲所需圖形呈現及遊戲計算的大量計算資源需求的形式。因此,雖然PC遊戲已實現一定的流行性,但是單機遊戲在傳統上仍然佔據視訊遊戲市場且可能在未來繼續佔據視訊遊戲市場。
然而,使視訊遊戲機及其他嵌入式平臺適應雲端串流服務面臨複數個挑戰。專用平臺的硬體或軟體架構的大量修改可能面臨與設計用於專用平臺的應用的相容問題。因此,傳統儲存裝置伺服器及儲存虛擬化技術並非為設計用於許多此等平臺之應用的基於雲端串流的可行方案。
本揭示內容係在此種背景下產生的。
本揭示內容之實施方式可包括一種介面裝置,其具有第一通信介面、第二通信介面及操作地連接到該通信介面之專用處理單元。第一通信介面為大型儲存介面。第二通信介面為擴展介面。專用處理單元包括連接到
第一通信介面之大型儲存裝置控制器及連接到第二通信介面之直接記憶體存取(DMA)引擎。大型儲存裝置控制器經組態以藉由第一通信介面接收大型儲存資料請求。DMA引擎經組態以藉由第二通信介面通知主機系統進行大型儲存資料請求。
本揭示內容之另一實施方式可包括一種系統,其具有:中央處理單元;第一記憶體單元,其操作地連接到中央處理單元;儲存程序,其具體實施在第一記憶體單元中且可由中央處理單元(CPU)執行;第一通信介面;及操作地連接到第一通信介面之專用處理單元。第一通信介面為大型儲存介面。專用處理單元具有連接到第一通信介面之大型儲存裝置控制器及操作地連接到CPU之記憶體存取介面。大型儲存裝置控制器經組態以藉由第一通信介面接收大型儲存資料請求。記憶體存取介面經組態以通知儲存程序進行大型儲存資料請求。儲存程序經組態以藉由存取儲存裝置系統來處理資料請求。
另一實施方式可包括一種方法,其包括:a)在大型儲存裝置控制器處從第一計算裝置接收大型儲存資料請求;b)用連接到大型儲存裝置控制器之記憶體存取介面通知具體實施在第二計算裝置中之儲存程序進行資料請求;c)用第二計算裝置之儲存程序存取具有對應於資料請求之資料的儲存裝置系統;d)用第二計算裝置之儲存程序將對應於資料請求的資料儲存在第一記憶體單元上;e)用第二計算裝置之儲存程序程式化大型儲存裝置控制器以從
第一記憶體單元存取資料以完成資料請求。
100‧‧‧分散式運算系統
102‧‧‧串流伺服器
104‧‧‧用戶端裝置
106‧‧‧網路
108‧‧‧程序
110‧‧‧串流伺服器程序
200‧‧‧分散式系統
202‧‧‧串流伺服器
204‧‧‧用戶端裝置
206‧‧‧網路
208‧‧‧程序
210‧‧‧串流伺服器程序
212‧‧‧終端機系統
302‧‧‧主機系統
308‧‧‧程序
310‧‧‧串流伺服器程序
312‧‧‧終端機系統
320‧‧‧介面裝置
322‧‧‧儲存程序
412‧‧‧終端機系統
408‧‧‧應用
424‧‧‧大型儲存主機控制器
426‧‧‧大型儲存主機驅動器
427‧‧‧文件系統層
450‧‧‧圖形處理單元(GPU)
452‧‧‧圖形驅動器
454‧‧‧圖形程序庫
456‧‧‧A/V傳輸器
402‧‧‧主機系統
414‧‧‧大型儲存埠
420‧‧‧介面裝置
429‧‧‧介面裝置驅動器
428‧‧‧專用邏輯單元
430‧‧‧A/V接收器
432‧‧‧儲存程序
434‧‧‧A/V程序
436‧‧‧網路介面卡
438‧‧‧網路磁碟
439‧‧‧網路程序庫
440‧‧‧系統記憶體
442‧‧‧記憶體驅動器
444‧‧‧文件系統程序庫
446‧‧‧串流伺服器程序
448‧‧‧儲存伺服器
520‧‧‧介面裝置
530‧‧‧A/V接收器
560‧‧‧專用處理單元
562‧‧‧主機硬體介面
564‧‧‧主機介面塊
565‧‧‧中斷輸入
566‧‧‧記憶體存取介面
567‧‧‧直接記憶體存取(DMA)引擎
568‧‧‧大型儲存裝置通信介面
569‧‧‧SATA埠
570‧‧‧大型儲存裝置控制器
572‧‧‧晶片上互連件
574‧‧‧記憶體
576‧‧‧記憶體控制器
578‧‧‧A/V捕捉邏輯單元
580‧‧‧A/V硬體介面
582‧‧‧GPIO控制器
602‧‧‧主機
612‧‧‧終端機系統
620‧‧‧介面裝置
624‧‧‧大型儲存裝置控制器
632‧‧‧儲存程序
640‧‧‧主機記憶體
660‧‧‧專用處理單元
666‧‧‧DMA引擎
670‧‧‧大型儲存裝置控制器
674‧‧‧介面記憶體
681‧‧‧終端機中央處理單元(CPU)
682‧‧‧終端機記憶體
684‧‧‧讀取請求
686‧‧‧主機中央處理單元
687‧‧‧檢索已請求之資料
689‧‧‧資料
699‧‧‧其他儲存源
藉由結合附圖考慮下列詳述可輕易理解本揭示內容之教示,其中:
圖1係經由網路進行之示例性串流技術的示意圖。
圖2係經由網路進行之另一示例性串流技術的示意圖。
圖3係具有介面卡以提供用於終端機系統之儲存虛擬化之示例性主機系統的示意圖。
圖4A至圖4B係連接到終端機系統之主機系統之示例性電腦架構的示意圖。圖4A係示例性終端機系統架構的示意圖。圖4B係示例性主機系統及介面卡架構。
圖5係具有專用處理單元之示例性介面卡設計的示意圖。
圖6係模擬大型儲存裝置之示例性方法的示意圖。
雖然下列詳述為說明目的而包括許多具體細節,但是此項技術者將明白下列細節之許多變動及更改在本發明的範圍內。因此,提出下文描述之本發明的示例性
實施方案且本發明無任何一般性之損失且不強加限制本發明。
本揭示內容之各個態樣涉及用於使用介面卡或操作地連接到主機系統之其他特殊硬體單元虛擬化大型儲存裝置的系統及方法。在各個實施方式中,介面裝置及主機系統可依對另一「終端機(terminal)」計算系統透明之方式共同地模擬終端機系統的大型儲存裝置。此外,在各個實施方式中,可依對終端機系統透明之方式模擬大型儲存裝置,且無需修改終端機平臺之硬體或軟體架構。
此項技術者可能已熟悉『虛擬機器(virtual machine)』軟體,諸如VMWare、VirtualBox或Parallel,其允許(例如)較舊之作業系統(例如,Windows XP)的『虛擬(virtual)』版本在較新之作業系統(例如,Windows 7)的會話內運行。出於相容原因,虛擬機器軟體通常用來仿真物理硬體組件,諸如軟體中之硬碟驅動器、網卡、顯卡。根據本揭示內容之各個態樣,在其中單單使用軟體來虛擬化大型儲存裝置為不切實際之情形下,專用硬體及軟體可虛擬化大型儲存裝置。
為了更好地說明本揭示內容之各個態樣,圖1中描繪分散式運算系統100之第一說明實例。圖1中描繪
之分散式運算系統100涉及經由網路106(諸如互聯網)連接之複數個計算裝置如串流伺服器102、用戶端裝置104。
在示例性分散式系統中,串流伺服器102執行程序108以經由網路106將程序輸出之即時資料流提供給遠端連接的用戶端裝置104。在圖1之已說明示意圖中,程序108可為視訊遊戲程序,其根據程序108之執行處理接收自用戶端裝置104之控制輸入且將壓縮音訊及視訊串流發送到用戶端裝置104。位於用戶端處之使用者可藉由用戶端裝置104之使用者介面(例如,藉由在連接到用戶端裝置104之顯示器及/或揚聲器處提供控制輸入及接收音訊及視訊遊戲輸出)與程序交互。在圖1之實例中,用於處理輸入、呈現視訊遊戲圖形等等之計算負載可被完全離線下載到串流伺服器102以供遠端執行。
為了使用圖1中描繪之分散式運算系統100實施雲端遊戲,串流伺服器102可經組態以不但執行程序108,而且串流伺服器102亦可實施具體實施在串流伺服器102中的「串流伺服器程序(streaming server process)」110,其可執行各種功能以協調用於在用戶端裝置104與串流伺服器102之間經由網路106通信之程序輸入/輸出。例如,串流伺服器程序110可具體實施於在與程序(遊戲軟體)108協作之串流伺服器102上運行的一或多個程序中。程序108連同串流伺服器程序110之遠端執行可被執行使得用戶端裝置104處之輸入與輸出之間
的延時最小或無延時,使得用戶端處之使用者感知到正在局部執行程序108。此外,可存取遠端儲存之程序的廣泛集合以供執行。例如,在雲端遊戲應用中,使用者將可能夠選擇設計用於相關視訊遊戲平臺之任何遊戲,且遠端伺服器將能夠根據接收自使用者之輸入來載入遊戲、執行遊戲並將其輸出串流到用戶端裝置且使得所接收之輸入及音訊/視訊輸出之間感知不到延時。
在圖1中描繪之實例中,此可藉由在相同計算裝置(例如,串流伺服器102)處執行串流伺服器程序110及程序108兩者來完成。串流伺服器可藉由合適之連接從潛在的任何儲存裝置(諸如局部連接之大型儲存裝置、儲存裝置伺服器、網路等等)存取選定程序。對於雲端遊戲及其他雲端計算實施方式,若用戶端裝置104之在串流伺服器102處執行的程序108經設計以運行個人電腦(PC)架構或類似於串流線伺服器102之其他電腦架構,則此可輕易實施。例如且無限制,對於PC雲端遊戲實施方式,可容易使用之基於x86的伺服器不但可用來實施串流伺服器程序110,而且一旦程序108被串流伺服器102存取,便立即執行程序108。
然而,圖1中描繪之示例性技術分散式運算系統100無法適用於其中程序108經設計以在嵌入式平臺及其他專用架構上執行的某些應用。例如,若所需程序為設計用於專用主控台平臺之視訊遊戲,則遊戲軟體在沒有某種類型之模擬器的情況下可能無法在伺服器架構上運
行。不幸的是,在其中最小化延時為主要問題之雲端計算環境中,在串流伺服器上執行之軟體模擬器可為非所需方案,尤其是在其中由模擬器即時解譯代碼將引入可感知延遲之圖形密集型應用中。此外,在許多情況下,為期望雲端服務之每個獨有架構建立專用伺服器將是不切實際的。在其他情形中,模擬器可為所需方案,但是合適之模擬器可能不可用。
為了解決此等挑戰,可希望在伺服器端處使用額外計算裝置來執行程序,因而額外計算裝置執行所需程序,同時連接到計算裝置之串流伺服器執行其常用功能以與用戶端裝置交互。圖2中描繪使用此種技術之分散式系統200的說明實例,其中「終端機系統(terminal system)」212連接到串流伺服器202且終端機系統執行所需程序208。若終端機系統無法以其他方式具有足夠多之免費資源用於此等功能,則串流伺服器可提供資源用於網路儲存及視訊壓縮。
在某些實施方式中,終端機系統212可為嵌入式系統或具有專用架構之其他計算系統,諸如視訊遊戲機,同時串流伺服器202可基於任何計算架構,諸如x86指令集架構,其被調整來提供串流服務且不一定需要具有與終端機系統212相同之架構。串流伺服器202可經組態以執行串流伺服器程序210且給程序208提供常用之雲端服務,且伺服器端處之計算裝置(例如,串流伺服器202及終端機系統212)可共同地操作來給用戶端裝置204提
供視訊遊戲串流服務。
圖2中描繪之簡易示意圖中的組態可提供實用又靈活的伺服器方案,其可被輕易調整來用於設計用於多種不同計算架構的多種不同軟體平臺。例如,潛在地任何串流伺服器202可經調整以藉由局部連接運行軟體的終端機系統來串流設計用於多種不同計算架構的軟體應用。
然而,在伺服器端處之終端機系統212上執行所需軟體在雲端計算框架內可能面臨某些挑戰。例如,類似于上文關於圖1中描繪之示例性設置描述的程序,終端機系統212可能夠執行多種不同程序中之任何選定程序以用於當前串流會話。同樣地,程序208在終端機系統212上運行所需之對儲存裝置的任何其他資料讀取/寫入由於終端機系統而可能免於本機儲存的限制。儲存裝置資料請求通常藉由終端機系統212中之本端大型儲存連接(諸如串列高級技術附件(SATA)連接或其他大型儲存介面)來完成。將希望提供虛擬化儲存方案用於終端機系統,且無需用儲存虛擬化程序來修改其硬體架構或消耗額外計算資源。
為了更好地明白雲端遊戲環境之背景中的挑戰,下列實例說明可如何在特定雲端遊戲實施方式中使用圖2中設置的伺服器。具體言之,用戶端裝置204處之使用者可被指派給「雲端終端機系統(cloud terminal system)」212以進行遊戲會話。當用戶開始玩遊戲時,用戶想要玩的程序(遊戲)208應可在雲端終端機系統212
上使用。類似地,一旦遊戲會話結束且使用者如此做,終端機系統212應恢復到全新狀態以由不同使用者進行下一次會話,此可能涉及不同遊戲。
不幸的是,以此方式使用終端機系統212內之儲存虛擬化軟體虛擬化遊戲儲存將消耗有價值的計算資源(例如,CPU及記憶體)且可能產生與遊戲的相容問題。此外,在涉及大量計算負載(諸如並有高級圖形及其他資源密集型任務的許多現代視訊遊戲)的應用中,儲存虛擬化消耗來自終端機的額外資源可能並非可行方案。
圖3中描繪根據本揭示內容之各個實施方式之儲存虛擬化技術的說明實例。在圖3之示例性虛擬化技術中,使用具有一塊專用硬體的「主機系統(host system)」模擬大型儲存裝置,使得可對連接到大型儲存裝置的終端機系統模擬大型儲存裝置。可類似於圖2中描述之雲端串流應用實施圖3的示例性技術,其中終端機系統可為運行所需應用的專用系統,且用於大型儲存模擬之主機系統為串流伺服器。然而,應瞭解可在其他背景中實施根據本文之原理的儲存虛擬化,包括遊戲串流以外的雲端計算應用及其中期望計算裝置進行儲存虛擬化(尤其是其中期望儲存虛擬化而無需修改計算裝置)的局部實施方式。
更詳細地轉向圖3之實例,使用連接到主機系統302的專用介面裝置320對終端機系統312提供虛擬化儲存裝置用於介面裝置,在此種情況下主機系統302為
串流伺服器。介面裝置320連同具體實施在主機系統302中之儲存程序322一起可執行接收自終端機系統312的各種大型儲存裝置資料請求。
在圖3中描繪之實例中,介面裝置320可為如同終端機系統之實際大型儲存裝置的一塊硬體,但是在後臺,其資料可來源於儲存裝置伺服器(未描述)。常規大型儲存裝置通常使用SATA連接或其他標準之大型儲存介面。為了模擬大型儲存裝置且接收資料請求,圖3之介面裝置320可包括類似SATA連接或可與終端機系統之大型儲存通信介面相容之其他大型儲存通信介面連同額外組件,諸如專用處理單元、記憶體及其他組件。
在各個實施方式中,為了促進容易將儲存虛擬化功能積體到計算系統(諸如串流伺服器或其他「主機(host)」系統)中,介面裝置320可被實施為擴展卡,諸如快速PCI附加卡,其可藉由主機系統之擴展介面連接到主機系統302。在操作期間,介面卡可藉由其大型儲存連接(例如,藉由SATA埠)從終端機系統接收硬碟讀取及/或寫入請求。此等資料存取請求可最終由主機系統302上之儲存程序322處理,且儲存應用可從檔、儲存裝置伺服器或別處存取資料。
雖然儲存虛擬化功能不一定是必要的,但是介面裝置320亦可視情況包括額外組件以提供可尤其有用於雲端串流背景的其他功能。例如,為了支援主機系統中之串流功能,介面裝置320可視情況包括一或多個額外介
面,其用於音訊及/或視訊資料傳送以及經由主機系統302之串流程序支援音訊/視訊(A/V)串流以支援雲端遊戲或其他雲端計算實施方式的對應功能。介面裝置320之選用A/V介面可與終端機系統312相容,且可根據多種A/V標準(諸如HDMI、複合視訊、分量視訊、S視訊或另一A/V通信介面)之任一者予以組態。
圖4A及圖4B提供根據本揭示內容之各個實施方式之介面裝置及某些計算裝置之說明硬體/軟體架構的更詳細概述。圖4A說明根據本揭示內容之各個態樣之示例性終端機系統的計算架構。圖4B說明具有根據本揭示內容之各個實施方式之示例性介面裝置之示例性主機系統的計算架構。在一些實施方式中,終端機系統可為現有之嵌入式系統、視訊遊戲機或具有專用架構之其他計算裝置。在一些實施方式中,主機系統可為經組態以將終端機系統上運行之應用串流到例如如圖2中描繪之用戶端裝置的串流伺服器。
示例性終端機系統412可包括大型儲存主機控制器424(有時亦稱作主機適配器或主機匯流排適配器),其可為(例如)SATA主機控制器(AHCI)、USB主機控制器或用於另一大型儲存通信介面標準之主機控制器。終端機系統412亦可包括對應之大型儲存主機驅動器426,其可與大型儲存主機控制器424相容以促進經由儲存裝置介面進行的通信。為了連接到大型儲存裝置,通常大型儲存主機控制器424將使用對應之控制器(取決於終
端機系統之大型儲存裝置介面,諸如SATA電纜、USB電纜或其他連接器)連接到大型儲存裝置。具體言之,大型儲存主機控制器424將連接到為其所連接之特定大型儲存裝置的大型儲存裝置控制器(有時亦稱作「硬碟控制器(disk controller)」),但是大型儲存裝置亦可為固態驅動器或無需使用硬碟之其他儲存裝置。在圖4A至圖4B中描繪之示例性系統中,大型儲存主機控制器424反而連接到介面裝置420,大型儲存主機控制器424連同其主機系統402一起模擬終端機系統412之大型儲存裝置。
介面裝置420可包括用於大型儲存装置連接之通信介面,其可與由終端機系統412使用之儲存通信介面相容。該介面裝置之通信介面可包括一或多個大型儲存埠414,諸如一或多個SATA埠、USB埠或其他可相容大型儲存介面硬體。介面裝置402可包括操作地連接到大型儲存硬體介面之專用處理單元,其中專用處理單元具有專用於執行與大型儲存裝置模擬相關之功能及視情況用於藉由儲存裝置連接器從終端機系統402接收信號之其他功能之專用邏輯單元428。專用邏輯單元428亦可支援藉由額外通信介面與主機系統402進行之通信,該額外通信介面可與主機系統402之週邊匯流排通信以連接具體實施在主機系統中之儲存程序。例如且無限制,介面裝置420可為附加卡,其藉由擴展埠(諸如周邊組件連接(PCI)、PCI擴展(PCI-X)、快速PCI(PCIe))或促進例如經由週邊匯流排與主機系統402通信之另一介面與主機系統402
程序匯流排通信。主機系統可包括介面裝置驅動器429以支援經由介面裝置420進行之信號交換。
在某些實施方式中,專用處理單元可為現場可程式化閘陣列(FPGA)、專用積體電路(ASIC)或具有根據本文描述之原理組態的專用邏輯單元之另一專用處理單元。專用處理單元之專用邏輯單元428亦可包括專用邏輯以除了儲存虛擬化以外亦支援用於雲端串流之各種功能,諸如對來自在終端機系統402上運行之應用408的輸出進行音訊/視訊捕捉,在涉及雲端遊戲之實施方式中這可促進由主機系統402藉由網路串流A/V輸出。介面卡402可包括A/V通信介面,諸如一或多個HDMI埠或其他A/V埠,以及藉由對應A/V連接器接收在終端機系統上運行之應用的A/V輸出之可相容A/V接收器430。
在圖4A至圖4B中描繪之實例中,具體實施在專用處理單元之專用邏輯單元428中的大型儲存裝置控制器受控於主機系統402中之介面裝置驅動器429,且具體實施在主機系統402中之儲存程序432(例如,在中央處理單元404上運行之軟體應用)可為介面裝置驅動器429提供資料傳輸服務。例如,若終端機系統412請求從其硬碟驅動器或經由大型儲存連接器連接到終端機系統412之其他大型儲存裝置讀取資料,則此種請求可使得資料經過大型儲存主機控制器424、包括在專用邏輯單元428中之大型儲存裝置服務控制器、介面裝置驅動器429而至具體實施在主機系統中的儲存程序432。儲存程序
432然後可檢索可獲自複數個來源之資料。例如,儲存程序432可從硬碟驅動器或局部連接到主機之其他大型儲存裝置檢索資料,或其可經由網路從記憶體驅動器或儲存裝置伺服器檢索資料。無論儲存程序使用何種方法,對於終端機系統402而言均是透明的。
在某些實施方式中,主機系統402視情況可為被調整來經由網路傳輸來自在終端機系統412上運行之應用408之輸出串流的串流伺服器。例如,主機系統402可包括A/V程序434,其可為在主機系統402上運行之應用。A/V捕捉程序可與專用處理單元中之專用邏輯單元428協調以捕捉藉由連接到介面卡420之A/V連接器發送的A/V串流。串流伺服器402可包括乙太網適配器或其他網路介面卡436及對應的乙太網驅動器或用於主機402之作業系統的其他網路磁碟438,其中可相容網路程序庫439提供用於網路通信之協定支援。主機系統亦可包括受控於對應之記憶體驅動器442(例如,tmpfs)且由文件系統程序庫444支援的系統記憶體440。串流伺服器程序446可在主機系統402上運行以執行與將即時資料流提供給經由網路(圖4A至圖4B中未描述)連接之用戶端裝置相關的功能。
在一些情形下,可使用遠端儲存伺服器448(以圖4A中之虛線說明)、系統記憶體440及記憶體驅動器442之組合來實施資料儲存。例如且無限制,在一些實施方式中,資料僅可讀取自儲存伺服器448且由記憶體
驅動器442寫入到系統記憶體440。
終端機系統412可包括各種其他組件以支援應用408,其可為(例如)設計用於現有嵌入式平臺之視訊遊戲軟體。終端機系統412可包括用於存取儲存裝置之文件系統層427以及用於支援應用408之圖形呈現的各種組件。除了中央處理單元(CPU)以外,終端機系統412亦可包括圖形處理單元(GPU)450,其可由圖形驅動器452操作且由圖形程序庫454支援。可包括諸如HDMI傳輸器之A/V傳輸器456以藉由可相容A/V連接器將應用音訊及/或視訊輸出傳輸到主機系統中之主機介面裝置。
現在轉向圖5,根據本揭示內容之各個實施方式描繪可在介面卡420上實施之示例性介面裝置520、介面裝置520上之一些組件及示例性專用處理單元560之固有屬性的示意圖。例如且無限制,介面裝置520可組態為具有附接到印刷電路板(PCB)之組件的附加卡,且介面裝置520可藉由主機硬體介面562(諸如週邊擴展埠或在連接時允許主機系統之週邊匯流排進行通信的其他擴展通信介面)與主機系統之週邊匯流排連接。
示例性專用處理單元560可包括專用於根據本揭示內容之各個態樣之專用功能的各種邏輯塊。例如,專用處理單元可被實施為FPGA、ASIC或類似專用處理單元。專用處理單元560可包括主機介面塊564,其實施用於介面裝置520與介面裝置520之主機系統(圖5中並未描述)之週邊匯流排之間的通信介面之協定堆棧的部分。
如快速PCI之通信匯流排可被視為具有多層之協定堆棧。不同之通信協議具有不同層。通常頂部處存在『應用層(application layer)』,然後中間存在一些傳輸相關層且底部處存在某個實體層。主機介面塊564無需實施此一協定堆棧之全部層。相反地,主機介面塊可維護實體層,其負責例如藉由電或光學信號將數位資訊置於通信鏈路上。主機介面塊亦可負責協定堆棧之『傳輸層(transport layers)』的部分或可能全部,但是無需負責應用層。
例如且無限制,主機介面塊564可為用於藉由快速PCI連接進行通信之硬PCIe塊,且其嵌入使得PCIe介面或其他介面存取主機系統之本端匯流排的協定堆棧。主機介面塊564可積體到記憶體存取介面566中,記憶體存取介面566連同專用處理單元560之其他邏輯單元可藉由主機硬體介面562(例如使用請求主機系統中斷)直接存取主機系統的系統記憶體。
在一些實施方式中,記憶體存取介面566可包括提供記憶體存取及中斷功能之組件。特定言之,主機介面塊564可經組態以在晶片上互連件572與主機硬體介面562之間提供連接使得可使用記憶體映射輸入/輸出(I/O)從主機系統存取任何晶片上裝置。此種功能將允許主機系統程式化連接到晶片上互連件572之任何裝置,諸如大型儲存裝置控制器570、記憶體控制器576或GPIO控制器582。
記憶體存取介面566亦可包括中斷輸入565,其允許任何連接之裝置(例如,大型儲存裝置控制器570)對事件(達到(例如,大型儲存讀取請求))產生中斷。若僅存在一個裝置與主機硬體介面562連接,則可期望記憶體存取介面提供此種功能。
記憶體存取介面566亦可(視情況)包括直接記憶體存取(DMA)引擎567。如本文所使用且一般為此項技術者所瞭解,術語直接記憶體存取(DMA)是指允許電腦內之某些硬體子系統存取獨立於電腦之中央處理單元(CPU)之系統記憶體的特徵。DMA引擎567可在主機介面塊564與主機硬體介面562之間實施資料移動運算。在一些實施方式中,記憶體存取介面566可實施並非由主機介面塊564提供之協定堆棧(例如,快速PCI)的部分,諸如將主機介面塊564連接到晶片上互連件572。
為了用於大型儲存裝置虛擬化之功能的目的,介面裝置520可包括一或多個大型儲存裝置通信介面568(其可以一或多個SATA埠569及/或連接器之形式實施)或其他大型儲存通信介面,且其可附接到介面裝置520之電路板。例如且無限制,介面裝置520可包括兩個SATA埠以促進到兩個終端機系統之連接,但是應注意介面裝置可替代地包括不同數量之大型儲存連接器,使得單一介面裝置520可服務於不同數量之終端機系統。對於大型儲存裝置通信介面568之各者,可在可與特定大型儲存通信介面(例如,SATA)相容的專用處理單元560中具
體實施對應大型儲存裝置控制器570。
一或多個大型儲存裝置控制器570可藉由晶片上互連件572連接到專用處理單元560的其他邏輯單元,此可使大型儲存裝置控制器570之各者存取主機介面組件(例如,快速PCI)。晶片上互連件可組態為標準晶片上匯流排架構,其經組態以連接專用處理單元(例如,FPGA或ASIC)上的功能塊。例如,若專用處理單元560為FPGA,則可使用主-從架構(例如,高級微控制器匯流排架構(AMBA),諸如AXI4或AXI4-Lite)或另一合適的晶片上匯流排架構來互連專用處理單元的組件。AXI4可用於大型資料傳輸且AXI-Lite可用於低性能連接或組態目的。可根據如圖5中說明之主-從類型組態來組態專用處理單元邏輯塊的晶片上互連件。在已說明之示意圖中,「M」及對應的粗線表示主連接,「S」及對應的虛線表示從連接,且「Ctrl」表示控制。
介面裝置520可包括可受控於以專用處理單元560之邏輯提供之記憶體控制器576的一或多個記憶體574。記憶體單元可根據由藉由大型儲存裝置通信介面568連接之終端機系統發出的資料請求支援終端機系統與藉由主機硬體介面562連接之主機系統之間的資料傳輸。例如,記憶體574可為暫時RAM單元(諸如DDR3 RAM)或經組態以根據本文描述之原理暫時儲存由終端機系統發出的讀取請求而請求之資料。記憶體控制器576可連接到晶片上互連件572以根據接收自專用處理單元560
之其他邏輯單元的信號執行記憶體讀取/寫入操作。
在操作期間,藉由大型儲存裝置通信介面568連接之計算裝置(圖5中並未描述)的大型儲存主機控制器可請求大型儲存裝置控制器570執行讀取、寫入及其他操作。在接收到此一請求時,大型儲存裝置控制器570可使用請求的中斷藉由主機硬體介面562(例如,快速PCI)通知主機系統(圖5中未描述)上的介面裝置驅動器及儲存程序。主機系統上之軟體組件然後可決定處理請求。
例如,在讀取請求來自終端機系統的情況下,主機系統(未描述)中之儲存應用可從某個儲存源檢索此資料且將資料儲存在跨主機硬體介面562之主機裝置記憶體574中。當完成時,主機系統上之儲存應用可程式化專用處理單元560上的大型儲存裝置控制器570以藉由從介面裝置記憶體574完成讀取請求。例如且無限制,假設大型儲存主機控制器424可為SATA控制器。對於SATA事務(讀取/寫入且存在其他),串流伺服器402上之大型儲存主機控制器424會產生中斷。串流伺服器402上之大型儲存主機驅動器426檢查大型儲存主機控制器424的狀態。若確定請求為『寫入請求(write request)』,則將大型儲存主機控制器424程式化以將其資料寫入到介面裝置520上的記憶體574(例如,DDR3記憶體)。為此一目的,大型儲存主機控制器424可自身內置DMA引擎567。當將資料寫入到記憶體574時產生
另一中斷。大型儲存主機驅動器426然後使用DMA引擎567發出DMA請求以從記憶體574拷貝到主機系統記憶體440。
儲存程序可直接共用主機系統記憶體440中的緩衝器。當進行主機系統記憶體440的DMA事務時,通知儲存程序進行寫入請求且其將完成寫入事務。其可將資料寫入到硬碟、網路儲存裝置或其願意儲存資料的任何位置。
應注意,讀取或寫入操作可無需介面裝置520上之記憶體574。大容量主機儲存控制器424可直接寫入到主機系統記憶體440。例如,記憶體存取介面566可將快速PCI映射到AXI4且亦將AXI4映射到快速PCI。此特徵將允許任何AXI4主裝置寫入到主機系統記憶體。
介面裝置視情況可包括提供用於在終端機系統上運行之各個串流應用之各者額外功能(諸如雲端遊戲串流)的各種其他組件。例如,專用處理單元560亦可包括用於從一或多個終端機系統捕捉A/V串流之一或多個音訊及/或視訊(A/V)捕捉邏輯單元578。一或多個A/V捕捉邏輯單元578之各者可操作地連接到對應的A/V接收器530,其各者又可連接到合適的A/V硬體介面580,諸如HDMI埠或如圖5中說明之各者其他A/V連接埠。來自終端機系統之各者A/V輸出可藉由A/V硬體介面580使用可相容A/V連接器連接到A/V接收器530。A/V捕捉邏輯單元578可藉由主機硬體介面562與主機系統上之各者介
面裝置驅動器及A/V程序通信,主機硬體介面562可連接到主機系統匯流排(例如,週邊匯流排),且主機系統然後可經由網路將A/V串流傳遞到用戶端裝置。
GPIO控制器582亦可包括一或多個通用輸入/輸出(GPIO)塊以支援額外功能。例如且無限制,GPIO塊之各者可連接到終端機系統的一個對應終端機系統以提供額外功能,諸如終端機系統之各者功率控制及其他功能。
如上文提及,專用處理單元560可根據本揭示內容之各個態樣被實施為(例如)FPGA、ASIC或具有專用於某些功能之塊的其他積體電路,諸如大型儲存裝置控制器、記憶體控制器、DMA引擎等等。在本揭示內容之某些實施方式中,此等單元之一或多個可被提供作為可再用邏輯單元或本領域中統稱為IP塊或IP核心的其他晶片設計。
圖6描繪根據本揭示內容之各個態樣用於模擬終端機系統612之大型儲存裝置的示例性流程圖。在圖6中描繪之實例中,相交互操作地連接之介面裝置620及主機系統602經組態以模擬終端機系統612之各者大型儲存裝置。雖然圖6之說明實例為了解釋目的而描繪對由終端機系統發出之讀取請求進行的模擬,但是應注意本揭示內容之實施方式可經組態以使用已說明之組件來完成寫入請求及由終端機系統發出之其他大型儲存資料請求。
如圖6中說明,可模擬終端機系統612或任
何其他計算系統之大型儲存裝置,任何其他計算系統可具有經組態以運行各種應用(未描述)之終端機中央處理單元(CPU)681及終端機記憶體682。終端機系統612可藉由大型儲存裝置連接器使用大型儲存裝置控制器624作出各種讀取、寫入及其他資料請求。通常,此等請求將由具有對應的裝置控制器之本端大型儲存來完成。在圖6之實例中,此等資料請求可由介面裝置620與主機系統602進行通信來滿足,此可存取某個其他儲存源699以處理各種資料請求。
在圖6之說明中,由終端機系統612之大型儲存裝置控制器624發出讀取請求684,其接收於專用處理單元660之大型儲存裝置控制器670處。大型儲存裝置控制器670使用讀取請求684之中斷(例如,經由如圖6中說明之DMA引擎666)通知具體實施在主機系統602中之儲存程序632。儲存程序可為具體實施在主機系統602之主機記憶體640中之應用,其可由主機系統602之主機中央處理單元686執行以作出處理讀取請求684的決定。
如圖6中說明,儲存程序可從某個其他儲存源699(諸如儲存伺服器)檢索已請求之資料687。儲存程序可例如藉由擴展介面(未描述)(諸如PCI-e)或具有主機系統602之週邊匯流排的其他通信介面將已檢索之資料689儲存在介面記憶體674中。應注意,在一些實施方式中,介面裝置620可被實施為直接連接到主機系統週
邊匯流排之專用處理單元660且被提供作為主機系統602之整體部分,而不是被實施為附加卡或藉由擴展介面與週邊匯流排通信的其他週邊組件。
在替代實施方式中,專用處理單元660(例如,FPGA、ASIC或等效電路)可直接放置在串流伺服器402之主機板上且連接到串流伺服器上之週邊匯流排。專用處理單元可藉由快速PCI連接。
一旦由儲存程序檢索之資料儲存在介面記憶體674中,儲存程序可程式化大型儲存裝置控制器670以藉由存取介面記憶體中之儲存的資料689並將資料發送到終端機系統612來完成請求。
在讀取操作期間,大型儲存裝置控制器670可對主機系統602之作業系統中之儲存驅動器產生中斷(其可使用內置於DMA引擎666中之中斷功能而傳送)。若確定請求為讀取請求684,則儲存驅動器要求儲存程序632『讀取資料(read the data)』,該資料儲存在主機記憶體640中(儲存驅動器可共用資料)。一旦已讀取全部資料,可程式化DMA引擎666以將資料689從主機記憶體640傳送到介面記憶體674。
應注意,已參考雲端遊戲作為其中可期望根據本揭示內容之各個實施方式之大型儲存虛擬化之需要的特定實例描述本揭示內容之各個態樣,但是本揭示內容之
實施方式並未如此限制。本揭示內容之實施方式可提供大型儲存裝置進行模擬以供任何計算裝置使用,此可並未涉及雲端計算或雲端遊戲。
應注意,本揭示內容之實施方式可使用多種大型儲存通信協定之任一者,包括SATA、USB、IDE、RS232、Firewire、Thunderbolt及其他大型儲存通信介面標準。
應注意,本揭示內容之實施方式可使用多種音訊及/或視訊標準之任一者,包括HDMI、S-視訊、分量視訊、複合視訊、顯示器埠、VGA、DVI及其他A/V通信介面標準。
雖然上文為本發明之較佳實施方案的完整描述,但是亦可使用各種替代、修改及等效物。因此,不應參考上述描述來確定本發明之範圍,取而代之,應參考隨附權利要求連同其全部等效範圍來確定本發明之範圍。本文描述之任何特徵(無論是否較佳)均可與本文描述之任何其他特徵(無論是否較佳)組合。在下列權利要求中,除非另有明確說明,否則不定冠詞「一個(a/an)」是指冠詞後面之物品中之一或多個的數量。隨附權利要求不應被解譯為包括方法加功能限制,除非此一限制使用短語「用於……之方法(means...for)」在給出之權利要求中加以明確引用。
602‧‧‧主機
612‧‧‧終端機系統
620‧‧‧介面裝置
624‧‧‧大型儲存裝置控制器
632‧‧‧儲存程序
640‧‧‧主機記憶體
660‧‧‧專用處理單元
666‧‧‧DMA引擎
670‧‧‧大型儲存裝置控制器
674‧‧‧介面記憶體
681‧‧‧終端機中央處理單元(CPU)
682‧‧‧終端機記憶體
684‧‧‧讀取請求
686‧‧‧主機中央處理單元
687‧‧‧檢索已請求之資料
689‧‧‧資料
699‧‧‧其他儲存源
Claims (23)
- 一種介面裝置,其包括:一第一通信介面,該第一通信介面為一大型儲存裝置介面;一第二通信介面,該第二通信介面為一擴展介面;一記憶體單元;以及操作地連接到該等通信介面之一專用處理單元,該專用處理單元具有連接到該第一通信介面之一大型儲存裝置控制器及連接到該第二通信介面之一記憶體存取介面,其中該專用處理單元包括連接至該記憶體單元的一記憶體控制器,其中該大型儲存裝置控制器經組態以藉由該第一通信介面接收一大型儲存資料請求,其中該記憶體存取介面經組態以藉由該第二通信介面通知一主機系統該大型儲存資料請求。
- 如申請專利範圍第1項之介面裝置,其中該記憶體存取介面經組態以使用該資料請求之一中斷通知該主機系統該資料請求。
- 如申請專利範圍第1項之介面裝置,其中該記憶體存取介面包括經組態以實施資料移動運算的一DMA引擎。
- 如申請專利範圍第1項之介面裝置,其中該專用處理單元為一現場可程式化閘陣列(FPGA)。
- 如申請專利範圍第1項之介面裝置,其中該專用處理單元為一專用積體電路(ASIC)。
- 如申請專利範圍第1項之介面裝置,其進一步包括:印刷電路板(PCB),其中該第一通信介面包括固定到該PCB的一或多個大型儲存埠。
- 如申請專利範圍第1項之介面裝置,其進一步包括:一印刷電路板(PCB),其中該第二通信介面包括固定到該PCB的一或多個擴展連接器。
- 如申請專利範圍第1項之介面裝置,其中該第一通信介面包括一或多個大型儲存埠,其中該專用處理單元具有用於每個該大型儲存埠的大型儲存控裝置制器。
- 如申請專利範圍第1項之介面裝置,其中該第一通信介面包括複數個大型儲存埠,其中該專用處理單元具有複數個大型儲存裝置控制器,其中每個該大型儲存裝置控制器連接到該等大型儲存埠之一對應大型儲存埠。
- 如申請專利範圍第1項之介面裝置,其中該第一通信介面包括一或多個串列高級技術附件 (SATA)埠,其中該專用處理單元具有用於每個該SATA埠的一SATA裝置控制器。
- 一種系統,其包括:中央處理單元,一第一記憶體單元,其操作地連接到該中央處理單元;一第二記憶體單元;一儲存程序,其具體實施在該第一記憶體單元中且可由該中央處理單元執行;一第一通信介面,該第一通信介面為一大型儲存介面;操作地連接到該第一通信介面的一專用處理單元,該專用處理單元具有連接到該第一通信介面的一大型儲存裝置控制器以及一記憶體存取介面,其中該專用處理單元包括連接至該第二記憶體單元的一記憶體控制器,其中該大型儲存裝置控制器經組態以藉由該第一通信介面接收一大型儲存資料請求,其中該記憶體存取介面經組態以通知該儲存程序該大型儲存資料請求,其中該儲存程序經組態以藉由存取一儲存裝置系統來處理該資料請求。
- 如申請專利範圍第11項之系統,其進一步包括: 其中該資料請求為一讀取請求,其中該儲存程序經組態以從該儲存裝置系統檢索對應於該讀取請求的資料,其中該儲存程序經組態以將該檢索的資料儲存在該第二記憶體單元上,其中該儲存程序經組態以程式化該大型儲存裝置控制器以藉由程式化該大型儲存裝置控制器以從該第二記憶體單元讀取來完成該讀取請求。
- 如申請專利範圍第11項之系統,其進一步包括:一第二通信介面,該第二通信介面為一擴展介面,其中該記憶體存取介面連接到該第二通信介面,其中該第二通信介面連接到該處理器匯流排。
- 如申請專利範圍第11項之系統,其進一步包括:一印刷電路板(PCB),及一第二通信介面,該第二通信介面為一擴展介面,其中該DMA引擎連接到該第二通信介面,其中該第二通信介面連接到該處理器匯流排,其中該第一通信介面、該第二通信介面及該專用處理單元固定到該PCB。
- 如申請專利範圍第11項之系統,其中該DMA引擎直接連接到該處理器匯流排。
- 如申請專利範圍第11項之系統, 其中該記憶體存取介面經組態以使用該資料請求之一中斷通知該儲存程序該資料請求。
- 如申請專利範圍第11項之系統,其中該記憶體存取介面包括經組態以實施資料移動運算的一DMA引擎。
- 如申請專利範圍第11項之系統,其中該第一通信介面包括一或多個大型儲存埠,其中該專用處理單元具有用於每個該大型儲存埠的一大型儲存裝置控制器。
- 如申請專利範圍第11項之系統,其中該專用處理單元為一現場可程式化閘陣列(FPGA)。
- 如申請專利範圍第11項之系統,其中該專用處理單元為一專用積體電路(ASIC)。
- 如申請專利範圍第11項之系統,其進一步包括:一終端機系統,其藉由一大型儲存連接器操作地連接到該第一通信介面,該終端機系統具有經組態以發出該大型儲存資料請求的一大型儲存主機控制器。
- 如申請專利範圍第11項之系統,其進一步包括:複數個終端機系統,其中該專用處理單元具有複數個該大型儲存裝置控制器,其中該第一通信介面具有複數個大型儲存埠, 其中每個該終端機系統用一大型儲存連接器連接到該等大型儲存埠之一對應大型儲存埠,其中每個該大型儲存埠連接到該等大型儲存裝置控制器中之一對應大型儲存埠。
- 一種方法,其包括:a)在一大型儲存裝置控制器處從一第一計算裝置接收一大型儲存資料請求;b)用連接到該大型儲存裝置控制器之一記憶體存取介面通知具體實施在一第二計算裝置中之一儲存程序該資料請求;c)用該第二計算裝置之該儲存程序存取具有對應於.該資料請求之資料的一儲存裝置系統;d)用該第二計算裝置之該儲存程序將對應於該資料請求的之該資料儲存在一第一記憶體單元上;e)用該第二計算裝置之該儲存程序程式化該大型儲存裝置控制器以從該第一記憶體單元存取該資料以完成該資料請求。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/135,213 US10353633B2 (en) | 2013-12-19 | 2013-12-19 | Mass storage virtualization for cloud computing |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201537447A TW201537447A (zh) | 2015-10-01 |
TWI531958B true TWI531958B (zh) | 2016-05-01 |
Family
ID=53400073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103136465A TWI531958B (zh) | 2013-12-19 | 2014-10-22 | 雲端計算之大型儲存虛擬化 |
Country Status (9)
Country | Link |
---|---|
US (2) | US10353633B2 (zh) |
EP (2) | EP3690664A1 (zh) |
JP (1) | JP2016534463A (zh) |
KR (1) | KR101788724B1 (zh) |
CN (2) | CN110888599B (zh) |
BR (1) | BR112016004712B1 (zh) |
RU (1) | RU2649771C2 (zh) |
TW (1) | TWI531958B (zh) |
WO (1) | WO2015094474A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990446B2 (en) | 2012-10-04 | 2015-03-24 | Sony Computer Entertainment America, LLC | Method and apparatus for decreasing presentation latency |
US9497358B2 (en) | 2013-12-19 | 2016-11-15 | Sony Interactive Entertainment America Llc | Video latency reduction |
US9332216B2 (en) | 2014-03-12 | 2016-05-03 | Sony Computer Entertainment America, LLC | Video frame rate compensation through adjustment of vertical blanking |
US9795879B2 (en) * | 2014-12-31 | 2017-10-24 | Sony Interactive Entertainment America Llc | Game state save, transfer and resume for cloud gaming |
US10554713B2 (en) * | 2015-06-19 | 2020-02-04 | Microsoft Technology Licensing, Llc | Low latency application streaming using temporal frame transformation |
US10744407B2 (en) | 2015-09-08 | 2020-08-18 | Sony Interactive Entertainment LLC | Dynamic network storage for cloud console server |
KR102335715B1 (ko) * | 2015-12-04 | 2021-12-06 | 한국전자기술연구원 | 가상화 기반의 임베디드 하드웨어 개발 및 검증 프레임워크 구조 |
US10423331B2 (en) * | 2016-02-02 | 2019-09-24 | Samsung Electronics Co., Ltd. | Polymorphic storage devices |
US11287973B2 (en) | 2016-02-02 | 2022-03-29 | Samsung Electronics Co., Ltd. | Polymorphic storage devices |
WO2020000136A1 (en) * | 2018-06-25 | 2020-01-02 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of i/o requests |
CN111372115B (zh) * | 2020-03-03 | 2022-02-08 | 北京奇艺世纪科技有限公司 | 应用程序的访问方法及装置、通讯系统 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5034817A (en) | 1990-02-28 | 1991-07-23 | The United States Of America As Represented By The Secretary Of The Navy | Reconfigurable video line digitizer and method for storing predetermined lines of a composite video signal |
US5502462A (en) | 1993-11-01 | 1996-03-26 | The 3Do Company | Display list management mechanism for real-time control of by-the-line modifiable video display system |
US5969828A (en) | 1997-03-12 | 1999-10-19 | Minolta Co., Ltd. | Digital copying machine, image reading device used in said digital copying machine, and image processing method used in these devices |
JP2003531682A (ja) * | 2000-04-28 | 2003-10-28 | フジオメッド インコーポレイテッド | ポリ酸及びポリアルキレンオキシドの止血性組成物、並びにその使用方法 |
AR031640A1 (es) * | 2000-12-08 | 2003-09-24 | Applied Research Systems | Amplificacion isotermica de acidos nucleicos en un soporte solido |
US6874060B2 (en) * | 2001-12-07 | 2005-03-29 | Dell Products L.P. | Distributed computer system including a virtual disk subsystem and method for providing a virtual local drive |
US20030110300A1 (en) * | 2001-12-12 | 2003-06-12 | Micro-Star Int'l Co., Ltd. | Virtual storage interface device |
CN1243313C (zh) * | 2001-12-27 | 2006-02-22 | 中国科学院计算技术研究所 | 具有大容量存储器的数据流处理板 |
US7711847B2 (en) * | 2002-04-26 | 2010-05-04 | Sony Computer Entertainment America Inc. | Managing users in a multi-user network game environment |
US8037229B2 (en) * | 2002-11-21 | 2011-10-11 | Sandisk Technologies Inc. | Combination non-volatile memory and input-output card with direct memory access |
US7505890B2 (en) * | 2003-01-15 | 2009-03-17 | Cox Communications, Inc. | Hard disk drive emulator |
US7106352B2 (en) | 2003-03-03 | 2006-09-12 | Sun Microsystems, Inc. | Automatic gain control, brightness compression, and super-intensity samples |
US7287099B1 (en) * | 2003-03-18 | 2007-10-23 | Unisys Corporation | System for support of remote console by emulation of local console with multipath data flow structure |
US7565408B2 (en) * | 2003-03-20 | 2009-07-21 | Dell Products L.P. | Information handling system including a local real device and a remote virtual device sharing a common channel |
JP4179556B2 (ja) * | 2004-06-25 | 2008-11-12 | 株式会社日立情報システムズ | コンピュータ集中運用センタシステムとそのデータ管理制御方法およびプログラム |
US20060061517A1 (en) | 2004-09-23 | 2006-03-23 | Jolly Paul A | Delivering pixels received at a lower data transfer rate over an interface that operates at a higher data transfer rate |
JP4390694B2 (ja) * | 2004-12-24 | 2009-12-24 | 富士通株式会社 | Dma回路及びこれを用いたディスクアレイ装置 |
US20100017189A1 (en) * | 2006-01-04 | 2010-01-21 | Andriy Naydon | Transparent Intellectual Network Storage Device |
WO2007119236A2 (en) | 2006-04-13 | 2007-10-25 | Yosef Mizrachi | Method and apparatus for providing gaming services and for handling video content |
US7383992B2 (en) * | 2006-10-10 | 2008-06-10 | Imation Corp. | Memory card with host interface and including internal interface for receiving micro-size memory cards |
US8179388B2 (en) | 2006-12-15 | 2012-05-15 | Nvidia Corporation | System, method and computer program product for adjusting a refresh rate of a display for power savings |
KR100794312B1 (ko) * | 2006-12-27 | 2008-01-11 | 삼성전자주식회사 | 명령어 자동 처리 유니트를 포함한 메모리 컨트롤러 및그를 포함한 메모리 시스템 |
US8838856B2 (en) * | 2007-02-16 | 2014-09-16 | Emulex Corporation | Virtual universal asynchronous receiver transmitter for server systems |
US7669000B2 (en) * | 2007-10-23 | 2010-02-23 | Brocade Communication Systems, Inc. | Host bus adapter with multiple hosts |
US20090135916A1 (en) | 2007-11-26 | 2009-05-28 | Mediatek Inc. | Image processing apparatus and method |
CN101946500B (zh) | 2007-12-17 | 2012-10-03 | 伊克鲁迪控股公司 | 实时视频包含系统 |
WO2009108579A2 (en) * | 2008-02-26 | 2009-09-03 | Vmware, Inc. | Extending server-based desktop virtual machine architecture to client machines |
US8499119B2 (en) * | 2008-04-07 | 2013-07-30 | Qualcomm Incorporated | Method and apparatus for delivering and caching multiple pieces of content |
US8225019B2 (en) * | 2008-09-22 | 2012-07-17 | Micron Technology, Inc. | SATA mass storage device emulation on a PCIe interface |
JP4581012B2 (ja) | 2008-12-15 | 2010-11-17 | 株式会社東芝 | 電子機器、及び表示制御方法 |
US9344401B2 (en) * | 2009-02-04 | 2016-05-17 | Citrix Systems, Inc. | Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment |
US20100280817A1 (en) | 2009-04-30 | 2010-11-04 | Spansion Llc | Direct pointer access and xip redirector for emulation of memory-mapped devices |
US8635387B2 (en) * | 2009-10-09 | 2014-01-21 | Emulex Design & Manufacturing Corporation | Enhanced I/O performance in a multi-processor system via interrupt affinity schemes |
DE102009058795A1 (de) | 2009-12-18 | 2011-06-22 | Epcos Ag, 81669 | Piezoelektrisches Keramikmaterial, Verfahren zur Herstellung des piezoelektrischen Keramikmaterials, piezoelektrisches Vielschichtbauelement und Verfahren zur Herstellung des piezoelektrischen Vielschichtbauelements |
US8669993B2 (en) | 2010-01-11 | 2014-03-11 | Apple Inc. | User interface unit for fetching only active regions of a frame |
JP5569053B2 (ja) * | 2010-03-11 | 2014-08-13 | ソニー株式会社 | コンテンツ配信装置、コンテンツ配信方法および送信サーバ |
US8341363B2 (en) | 2010-05-03 | 2012-12-25 | Panzura, Inc. | Efficient cloud network attached storage |
CN101937261A (zh) * | 2010-05-18 | 2011-01-05 | 上海同悦信息科技有限公司 | 基于通用串行总线的云计算终端 |
EP2641363B1 (en) * | 2010-11-16 | 2018-05-23 | Telefonaktiebolaget LM Ericsson (publ) | Message targeting platform |
KR101312268B1 (ko) | 2010-12-24 | 2013-09-25 | 주식회사 케이티 | 클라우드 컴퓨팅 환경에서 게임 서비스 제공 방법, 클라우드 컴퓨팅 서버, 및 클라우드 컴퓨팅 시스템 |
EP2472879B1 (en) | 2010-12-31 | 2013-06-05 | Advanced Digital Broadcast S.A. | A method and a system for determining a video frame type |
US20120306926A1 (en) | 2011-06-06 | 2012-12-06 | Apple Inc. | Inline scaling unit for mirror mode |
US8281288B1 (en) | 2011-10-20 | 2012-10-02 | Google Inc. | Integrated development environment with network-based compilation and sandboxed native machine-language capabilities |
US10319333B2 (en) | 2012-09-26 | 2019-06-11 | Apple Inc. | Refresh rate matching for displays |
US20140195634A1 (en) * | 2013-01-10 | 2014-07-10 | Broadcom Corporation | System and Method for Multiservice Input/Output |
US20140281023A1 (en) | 2013-03-18 | 2014-09-18 | Nvidia Corporation | Quality of service management server and method of managing quality of service |
US9497358B2 (en) | 2013-12-19 | 2016-11-15 | Sony Interactive Entertainment America Llc | Video latency reduction |
-
2013
- 2013-12-19 US US14/135,213 patent/US10353633B2/en active Active
-
2014
- 2014-10-21 WO PCT/US2014/061633 patent/WO2015094474A1/en active Application Filing
- 2014-10-21 EP EP20165552.9A patent/EP3690664A1/en active Pending
- 2014-10-21 BR BR112016004712-5A patent/BR112016004712B1/pt active IP Right Grant
- 2014-10-21 RU RU2016107200A patent/RU2649771C2/ru active
- 2014-10-21 KR KR1020167007888A patent/KR101788724B1/ko active IP Right Grant
- 2014-10-21 JP JP2016538830A patent/JP2016534463A/ja active Pending
- 2014-10-21 EP EP14872001.4A patent/EP3036646B1/en active Active
- 2014-10-22 TW TW103136465A patent/TWI531958B/zh active
- 2014-12-12 CN CN201910971908.XA patent/CN110888599B/zh active Active
- 2014-12-12 CN CN201410771149.XA patent/CN104735123B/zh active Active
-
2019
- 2019-06-11 US US16/437,854 patent/US20190294382A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
KR20160046893A (ko) | 2016-04-29 |
CN104735123B (zh) | 2019-11-08 |
CN110888599A (zh) | 2020-03-17 |
EP3036646B1 (en) | 2020-06-24 |
US20190294382A1 (en) | 2019-09-26 |
BR112016004712B1 (pt) | 2022-06-14 |
JP2016534463A (ja) | 2016-11-04 |
CN110888599B (zh) | 2023-06-27 |
KR101788724B1 (ko) | 2017-10-20 |
EP3690664A1 (en) | 2020-08-05 |
EP3036646A1 (en) | 2016-06-29 |
US20150178018A1 (en) | 2015-06-25 |
RU2016107200A (ru) | 2017-08-30 |
TW201537447A (zh) | 2015-10-01 |
EP3036646A4 (en) | 2017-07-19 |
RU2649771C2 (ru) | 2018-04-04 |
CN104735123A (zh) | 2015-06-24 |
BR112016004712A2 (zh) | 2017-08-01 |
US10353633B2 (en) | 2019-07-16 |
WO2015094474A1 (en) | 2015-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI531958B (zh) | 雲端計算之大型儲存虛擬化 | |
CN110063051B (zh) | 用于重新配置服务器的系统和方法以及服务器 | |
US8473715B2 (en) | Dynamic accelerator reconfiguration via compiler-inserted initialization message and configuration address and size information | |
US10540310B2 (en) | Selectable peripheral logic in programmable apparatus | |
US8893013B1 (en) | Method and apparatus for providing a hybrid computing environment | |
TW202234263A (zh) | 實施用於雲端遊戲資料儲存及擷取之高速資料通信組構之系統及方法 | |
US10509758B1 (en) | Emulated switch with hot-plugging | |
US11775464B2 (en) | Computer system and a computer device | |
US20120297382A1 (en) | Virtual server and virtual machine management method for supporting zero client | |
JP2023532484A (ja) | クラウドゲーム用高速セーブデータストレージ | |
US11281602B1 (en) | System and method to pipeline, compound, and chain multiple data transfer and offload operations in a smart data accelerator interface device | |
WO2014000299A1 (zh) | 串口重定向处理方法、设备和系统 | |
TWI787673B (zh) | 混合式叢集系統及其計算節點 | |
US20220155966A1 (en) | Hybrid Cluster System and Computing Node Thereof | |
WO2023141418A1 (en) | Local instantiation of remote peripheral devices | |
CN110383260A (zh) | 耦合到计算机总线的设备的功能状态 |