TW202225976A - 虛擬化寄存器裝置和存取該裝置的方法和電腦程式產品 - Google Patents

虛擬化寄存器裝置和存取該裝置的方法和電腦程式產品 Download PDF

Info

Publication number
TW202225976A
TW202225976A TW110113314A TW110113314A TW202225976A TW 202225976 A TW202225976 A TW 202225976A TW 110113314 A TW110113314 A TW 110113314A TW 110113314 A TW110113314 A TW 110113314A TW 202225976 A TW202225976 A TW 202225976A
Authority
TW
Taiwan
Prior art keywords
register
virtualized
virtual
mentioned
group
Prior art date
Application number
TW110113314A
Other languages
English (en)
Other versions
TWI777491B (zh
Inventor
發明人放棄姓名表示權
Original Assignee
大陸商上海壁仞智能科技有限公司
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 大陸商上海壁仞智能科技有限公司 filed Critical 大陸商上海壁仞智能科技有限公司
Publication of TW202225976A publication Critical patent/TW202225976A/zh
Application granted granted Critical
Publication of TWI777491B publication Critical patent/TWI777491B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Hardware Redundancy (AREA)

Abstract

本發明涉及一種虛擬化寄存器裝置和存取該裝置的方法和電腦程式產品,其中該虛擬化寄存器包含:寄存器空間;多個組選擇器和塊選擇器。寄存器空間劃分出多個實體塊,其中每個實體塊包含多個寄存器組,每個寄存器組包含多個寄存器。每個組選擇器耦接相應的實體塊中的多個寄存器組,用於依據相應於虛擬設備的或者虛擬設備所執行功能的第一控制訊號啓動相應的實體塊中的多個寄存器組中的一個。塊選擇器耦接多個組選擇器,用於依據相應於虛擬機指令的第二控制訊號啓動多個組選擇器中的一個,其中的虛擬機指令被轉換為虛擬設備上的一個操作。本發明通過如上所述的寄存器組的劃分,以及動態執行塊選擇和組選擇來改變存取路徑,不需要對之前存儲在寄存器中的資料進行保存和恢復,提升寄存器存取的效率。

Description

虛擬化寄存器裝置和存取該裝置的方法和電腦程式產品
本發明涉及寄存器,尤指一種虛擬化寄存器裝置和存取該裝置的方法和電腦程式產品。
在虛擬化環境下,寄存器的虛擬化非常重要,每個虛擬機用戶都可以存取自己本身的虛擬設備的寄存器,似乎整個實體設備是被該虛擬機佔用。對於支持虛擬化的設備來說,其需要保證對寄存器存取的隔離性,高效性,同時也需要減少對硬體設計難度和資源的佔用。
傳統上,在一些實施方式中,硬體可為每個虛擬機用戶都分配一套獨立的寄存器空間。然而,實體寄存器的硬體資源非常大,其需要佔用非常大的硬體介面空間,並且隨著支持的虛擬設備個數的增加,其需要的實體硬體資源也隨之增多,甚至巨大到難以實現。
在另一些實施方式中,硬體可包含仲裁器(Arbiter),以分時共享的方式來讓所有的虛擬機用戶存取完整的寄存器,達到寄存器虛擬化的目的。然而,每次提供一個虛擬機用戶對寄存器的存取前,都需要仲裁器將之前的另一個虛擬機用戶的寄存器內容保存好,並且在此虛擬機用戶於下次切換回來之前將保存好的內容再寫入到寄存器硬體上。也就是說,針對每次的虛擬機用戶切換,仲裁器都需要執行一個保存和恢復的過程,開銷比較大。當虛擬設備個數比較多的時候,其保存和恢復時間則非常長,會大大影響設備虛擬化的效率。
為了解決或降低如上所述實施方式的技術問題,本發明提出一種虛擬化寄存器裝置和存取該裝置的方法和電腦程式產品。
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。
本發明的實施例涉及一種虛擬化寄存器裝置,包括:寄存器空間;多個組選擇器和塊選擇器。寄存器空間劃分出多個實體塊,其中每個實體塊包含多個寄存器組,每個寄存器組包含多個寄存器。每個組選擇器耦接相應的實體塊中的多個寄存器組,用於依據相應於虛擬設備的或者虛擬設備所執行功能的第一控制訊號啓動相應的實體塊中的多個寄存器組中的一個。塊選擇器耦接多個組選擇器,用於依據相應於虛擬機指令的第二控制訊號啓動多個組選擇器中的一個,其中虛擬機指令被轉換為虛擬設備上的一個操作。
本發明的實施例還涉及一種存取如上所述虛擬化寄存器裝置的方法,由處理單元於載入並執行虛擬設備的計算機程式碼時實施,包括:控制塊選擇器,用於從多個組選擇器中啓動相應於此虛擬設備的一個;依據即將發出請求的虛擬設備或者虛擬設備所執行功能的資訊控制已經啓動的組選擇器,用於啓動多個寄存器組中的一個;以及發送請求給讀取/寫入電路,用於存取已經啓動的寄存器組,從寄存器中讀取資料,或者寫入資料到寄存器。
本發明的實施例還涉及一種存取虛擬化寄存器裝置的方法,由處理單元於載入並執行虛擬設備的計算機程式碼時實施,該虛擬化寄存器裝置包含寄存器空間、地址解碼器和讀取/寫入電路,該寄存器空間包含多個實體塊。該方法包括:從多個實體塊中決定出相應於虛擬設備的一個;依據即將發出請求的虛擬設備或者虛擬設備所執行功能的資訊選擇出決定的實體塊中多個寄存器組中的一個;發送相應於決定的實體塊中的選擇的寄存器組的地址給地址解碼器,用於啓動選擇出的寄存器組;以及發送請求給讀取/寫入電路,用於存取已經啓動的寄存器組,從寄存器中讀取資料,或者寫入資料到寄存器。
本發明還涉及一種電腦程式產品,用於儲存能夠被處理單元執行的程式碼,並且當程式碼被處理單元執行時實現如上所述的存取虛擬化寄存器裝置。
上述實施例的優點之一,通過以上所述寄存器組的劃分,以及動態執行塊選擇和組選擇來改變存取路徑,不需要對之前存儲在寄存器中的資料進行保存和恢復,提升寄存器存取的效率。
上述實施例的另一個優點,不需要為了支援更多的虛擬機而預先保留超過實際需要的寄存器數目,節省硬體成本。
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、”第二”、”第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
必須了解的是,當元件描述為”連接”或”耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為”直接連接”或”直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如”介於”相對於”直接介於”,或者是”鄰接”相對於”直接鄰接”等等。
參考圖1。電子裝置10可實施在大型主機、工作站、個人電腦、筆記本電腦(Laptop PC)、平板電腦、行動電話、數位相機、數位攝影機等電子產品之中。電子裝置10至少包含處理單元110、虛擬化寄存器裝置130、指令快取(instruction cache)150和指令排程器(instruction scheduler)170,並且通過實體線相互連接,以傳遞資料、地址、控制訊號等。指令快取150用於存儲多個虛擬機或者虛擬設備的多條指令,而指令排程器170用於依據程式計數器(Program Counter,PC)為每個虛擬機或者虛擬設備從指令快取150獲取待執行的指令。指令排程器170可包含程式計數器寄存器,用於記錄現在正執行的指令位置(也就是指令地址)。每當從指令快取150提取一條指令後,程式計數器加一。執行緒束指令排程器170在適當的時間點將指令送到處理單元110來執行。處理單元110可載入並執行相應於不同虛擬機或者虛擬設備的計算機程式碼,虛擬機是通過軟體模擬的計算機系統,具有完整硬體功能,運行在一個與其他虛擬機完全隔離的環境中。不同的虛擬機可運行不同的作業系統,例如Linux、紅帽(Redhat)等,並且不同的虛擬機之間相互實體隔離,也就是說,一個虛擬機中的資料、資料表、變數和執行結果等資訊,不能夠被任何一個其他的虛擬機存取。一個虛擬機可提供多種虛擬設備的功能,例如,資料計算、地址翻譯、視訊處理、音訊處理、有線和無線資料傳輸等。處理單元110可包含算術邏輯單元,為一個虛擬設備執行各式各樣的操作,例如,整數、浮點數的加法和乘法計算、比較操作、布林(Boolean)運算、位元位移、代數函數(如平面插值、三角函數、指數函數、對數函數)等。此外,處理單元110還可為一個虛擬設備執行執行不同元件之間的資料搬移。處理單元110在執行的過程中,可從虛擬化寄存器裝置130讀取資料,和回寫執行結果到虛擬化寄存器裝置130。
參考圖2,舉例來說,處理單元110上能夠運行相應於兩個虛擬機212和214的相關計算機指令,虛擬機212和214分別提供虛擬設備232和234的功能。虛擬設備232和234在執行的過程中需要寫入資料到虛擬化寄存器裝置130,以及從虛擬化寄存器裝置130讀取資料。虛擬化寄存器裝置130包含寄存器空間250,用於存儲不同虛擬設備執行時需要存取的資料。寄存器空間250可劃分出多個不重疊的實體塊252 和254,並且將每個實體塊分配給特定虛擬機使用。例如,把實體塊252分配給虛擬機212,並且把實體塊254分配給虛擬機214。換句話說,只有虛擬機212中執行的虛擬設備232或其他虛擬設備才能夠存取實體塊252中的寄存器,虛擬機214中執行的虛擬設備234或其他虛擬設備則不能存取實體塊252中的寄存器。每個實體塊可包含多個寄存器組,例如,實體塊252包含四個寄存器組252-1至252-4,並且實體塊254包含四個寄存器組254-1至254-4。寄存器組的定義可讓用戶自行定義,其可按照寄存器的類型(例如用於資料傳輸、設備屬性等待等),或者按照寄存器的功能進行定義(例如視訊處理、地址翻譯、資料計算等)。對於實現相同功能的虛擬設備來說,每個寄存器組內的寄存器都是相同的,這樣保證實現的虛擬設備都一樣。也可以將寄存器依體現的功能劃分,這樣一個寄存器組就能夠用來體現一個虛擬設備的功能。
這些寄存器組可分配給不同的虛擬設備,或者分配給不同虛擬設備中執行的不同功能。例如,虛擬機212上執行三個虛擬設備:虛擬Wi-Fi通信裝置、虛擬顯示器和虛擬視訊解碼器。虛擬視訊解碼器中提供視訊和音訊解碼的功能。寄存器組252-1可分配給虛擬機212上執行的虛擬Wi-Fi通信裝置,寄存器組252-2可分配給虛擬機212上執行的虛擬顯示器。另外,寄存器組252-3和252-4可分別分配給虛擬機212上執行的虛擬視訊解碼器所提供的視訊解碼和音訊解碼的功能。雖然圖2中描述了寄存器空間250劃分出兩個實體塊的範例,但是所屬技術領域人員可在寄存器空間250中根據系統的需要來劃分出更多的實體塊以支援更多數目的虛擬機,本發明並不因此受限制。雖然圖2中描述了相同大小的實體塊252和254的範例,但是所屬技術領域人員可根據系統的需要讓實體塊的大小不同,以滿足虛擬機不同的需要,本發明並不因此受限制。
每個寄存器組可包含多個寄存器。在一些實施例中,不同寄存器組中的寄存器數目是一樣的,保證每個虛擬設備或者虛擬設備中的功能擁有相同的寄存器資源。參考圖3,每個寄存器組包含1024個寄存器。例如,寄存器組252-1包含寄存器300-1至300-1024,每個寄存器可存儲32位元(即4位元組,4 Bytes)的資料,使寄存器組252-1可存儲4KB的資料。雖然圖3中描述了每個寄存器組包含1024個寄存器的範例,所屬技術領域人員可根據系統的需要在每個寄存器組中設置更多或者更少的寄存器,本發明並不因此受限制。例如,每個寄存器組包含2048、512或256個寄存器,使每個寄存器組可存儲8KB、2KB或1KB的資料。
在另一些實施例中,不同寄存器組中的寄存器數目依據用戶需求而有不同,用於保證按需分配,體現靈活性。例如,寄存器組252-1、252-2、252-3和252-4分別包含1024、512、2048和512個寄存器。
參考回圖2,虛擬化寄存器裝置130包含塊選擇器272和兩個組選擇器274和276,用來依據處理單元110傳來的控制訊號設置存取路徑,其中該控制訊號相應於特定虛擬設備或者特定虛擬設備中執行的特定功能。塊選擇器272耦接組選擇器274和276,組選擇器274耦接寄存器組252-1至252-4,組選擇器276耦接寄存器組254-1至254-4。塊選擇器272依據從處理單元110傳來的控制訊號啓動(enable)組選擇器274或276,其中該控制訊號相應於虛擬機指令。所屬技術領域人員理解,虛擬機指令會被轉換為特定虛擬設備上的一個操作。組選擇器274依據從處理單元110傳來的控制訊號啓動寄存器組252-1至252-4中的一個,組選擇器276依據從處理單元110傳來的控制訊號啓動寄存器組254-1至254-4中的一個,其中該控制訊號相應於特定虛擬設備或者特定虛擬設備中執行的特定功能。而虛擬化寄存器裝置130還包含讀取/寫入電路290,用於從存取路徑指出的寄存器讀取資料,或者寫入資料到存取路徑指出的寄存器。詳細來說,當虛擬化寄存器裝置130接受到了虛擬設備232或234發送過來的寄存器請求,讀取/寫入電路290存取由塊選擇器272、組選擇器274和276設置出的存取路徑中的寄存器。
以上所述的寄存器空間250的分割、每個實體塊中的寄存器組的分配等邏輯可記錄在虛擬設備232和234的計算機程式碼中,並且讓這些邏輯被處理單元110載入並執行時據以控制虛擬化寄存器裝置130中的塊選擇器272和組選擇器274和276,用於動態設置存取路徑。
搭配參考如圖4所示的存取虛擬化寄存器裝置130的方法,此方法由處理單元110載入並執行虛擬設備232或234的計算機程式碼時實施,包含以下步驟:
步驟S410:控制塊選擇器,用於從多個組選擇器中啓動相應於虛擬機指令的一個。所屬技術領域人員理解,虛擬機指令會被轉換為特定虛擬設備上的一個操作。例如,當虛擬裝置212即將發出請求時,控制塊選擇器272來啓動組選擇器274。
步驟S420:依據即將發出請求的虛擬設備(或者虛擬設備所執行功能)的資訊控制已經啓動的組選擇器,用於啓動多個寄存器組中的一個。例如,當虛擬機212上執行的虛擬設備(以下假設為虛擬Wi-Fi通信裝置)232即將發出請求時,控制組選擇器274來啓動寄存器組252-1。
步驟S430:發送請求給讀取/寫入電路290,用於存取已經啓動的寄存器組,從指定的寄存器中讀取資料,或者寫入資料到指定的寄存器。請求中可包含類型(如讀取、寫入、刪除等)、偏移(offset)、待寫入資料等。例如,虛擬機212上執行的虛擬Wi-Fi通信裝置232發出請求給讀取/寫入電路290,希望從偏移為「100」的地址中讀取資料。讀取/寫入電路290從寄存器310-100讀取資料,並且回覆給虛擬Wi-Fi通信裝置232。
步驟S440:判斷此虛擬設備(或者此虛擬設備所執行功能)是否完成寄存器存取。如果是,則流程繼續進行步驟S410的處理。否則,流程繼續進行步驟S430的處理。
以上所述的方法包含了加速存取機制,虛擬化寄存器裝置130可以在寄存器組啓動以後保證寄存器的存取路徑不變,直到下一次寄存器組的啓動發生了改變。這樣對於一個虛擬設備(或者一個虛擬設備所執行的特定功能)在一段時間內存取同一個寄存器組時,不需要虛擬化寄存器裝置130再做任何存取路徑的改變操作。也就是說,在一個虛擬設備(或者一個虛擬設備所執行的特定功能)完成已經啓動的寄存器組的預先設定存取前,不控制塊選擇器272和組選擇器274和276來改變存取路徑,減少了整個存取過程的時間開銷,從而提高存取效率。
圖2中所示的塊選擇器272、組選擇器274和276的功能也可以改為使用軟體實現。參考圖5所示另一些實施例的虛擬化寄存器裝置530,虛擬化寄存器裝置530包含地址解碼器532,用於依據虛擬設備232或234傳送的地址來啓動多個寄存器組252-1至254-4中的一個。
因應圖5所示的虛擬化寄存器裝置530的設置,搭配參考如圖6所示的存取虛擬化寄存器裝置530的方法,此方法由處理單元110載入並執行虛擬設備232或234的計算機程式碼時實施,包含以下步驟:
步驟S610:從多個實體塊中決定出相應於虛擬設備的一個。例如,當虛擬裝置232即將發出請求時,選擇實體塊252。
步驟S620:依據即將發出請求的虛擬設備(或者虛擬設備所執行功能)的資訊選擇出決定實體塊中多個寄存器組中的一個。例如,當虛擬機212上執行的虛擬設備(以下假設為虛擬Wi-Fi通信裝置)232即將發出請求時,選擇實體塊252中的寄存器組252-1。
步驟S630:發送相應於決定實體塊中的選擇寄存器組的地址給地址解碼器532,用於啓動選擇出的寄存器組。
步驟S640:發送請求給讀取/寫入電路290,用於存取已經啓動的寄存器組,從指定的寄存器中讀取資料,或者寫入資料到指定的寄存器。此步驟的詳細技術內容類似步驟S430,所屬技術領域人員可參考步驟S430的描述,為求簡明不再贅述。
上述實施例的優點之一,通過以上所述寄存器組的劃分,以及動態執行塊選擇和組選擇來改變存取路徑,不需要對之前存儲在寄存器中的資料進行保存和恢復,提升寄存器存取的效率。
上述實施例的另一個優點,不需要為了支援更多的虛擬機而預先保留超過實際需要的寄存器數目,節省硬體成本。
本發明所述的方法中的全部或部分步驟可以計算機指令實現,例如應用程式、驅動程式、作業系統等。此外,也可實現於其他類型程式。所屬技術領域具有通常知識者可將本發明實施例的方法撰寫成計算機指令,為求簡潔不再加以描述。依據本發明實施例方法實施的計算機指令可儲存於適當的電腦可讀取媒體,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。
雖然圖1、圖2、圖5中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖4、圖6的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
10:電子裝置 110:處理單元 130:虛擬化寄存器裝置 150:指令快取 170:指令排程器 212,214:虛擬機 232,234:虛擬設備 250:寄存器空間 252,254:實體塊 252-1~252-4,254-1~254-4:寄存器組 272:塊選擇器 274,276:組選擇器 290:讀取/寫入電路 310-1~310-1024:寄存器 S410~S440:方法步驟 530:虛擬化寄存器裝置 532:地址解碼器 S610~S640:方法步驟
圖1為依據本發明實施例的電子裝置的方塊圖。
圖2為依據本發明實施例的運行的虛擬設備和虛擬化寄存器裝置的方塊圖。
圖3為依據本發明實施例的寄存器組的劃分範例。
圖4為依據本發明實施例的存取虛擬化寄存器裝置的方法流程圖。
圖5為依據本發明實施例的運行的虛擬設備和虛擬化寄存器裝置的方塊圖。
圖6為依據本發明實施例的存取虛擬化寄存器裝置的方法流程圖。
130:虛擬化寄存器裝置
212,214:虛擬機
232,234:虛擬設備
250:寄存器空間
252,254:實體塊
252-1~252-4,254-1~254-4:寄存器組
272:塊選擇器
274,276:組選擇器
290:讀取/寫入電路

Claims (13)

  1. 一種虛擬化寄存器裝置,包含: 寄存器空間,劃分出多個實體塊,其中每個上述實體塊包含多個寄存器組,每個上述寄存器組包含多個寄存器; 多個組選擇器,其中每個上述組選擇器耦接相應的上述實體塊中的上述多個寄存器組,用於依據相應於虛擬設備的或者上述虛擬設備所執行功能的第一控制訊號啓動相應的上述實體塊中的上述多個寄存器組中的一個;以及 塊選擇器,耦接上述多個組選擇器,用於依據相應於虛擬機指令的第二控制訊號啓動上述多個組選擇器中的一個, 其中,上述虛擬機指令被轉換為上述虛擬設備上的一個操作。
  2. 如請求項1所述的虛擬化寄存器裝置,其中,上述多個實體塊之間不重疊。
  3. 如請求項1所述的虛擬化寄存器裝置,其中,上述第一控制訊號和上述第二控制訊號由處理單元發出。
  4. 如請求項1所述的虛擬化寄存器裝置,包含:讀取/寫入電路,用於依據處理單元發出的請求存取已經啓動的上述寄存器組,從指定的寄存器中讀取資料,或者寫入資料到指定的寄存器。
  5. 如請求項4所述的虛擬化寄存器裝置,其中,上述多個寄存器組中包含的寄存器數目相同。
  6. 如請求項4所述的虛擬化寄存器裝置,其中,上述多個寄存器組中包含的寄存器數目不同。
  7. 一種存取虛擬化寄存器裝置的方法,由處理單元於載入並執行虛擬設備的計算機程式碼時實施,其中,上述虛擬化寄存器裝置包含塊選擇器、多個組選擇器和讀取/寫入電路,每個上述組選擇器耦接實體塊中的上述多個寄存器組,上述存取虛擬化寄存器裝置的方法包含: 控制上述塊選擇器,用於從上述多個組選擇器中啓動一個; 依據即將發出請求的上述虛擬設備或者上述虛擬設備所執行功能的資訊控制已經啓動的上述組選擇器,用於啓動多個寄存器組中的一個;以及 發送請求給上述讀取/寫入電路,用於存取已經啓動的上述寄存器組,從寄存器中讀取資料,或者寫入資料到寄存器。
  8. 如請求項7所述的存取虛擬化寄存器裝置的方法,包含: 在上述虛擬設備或者上述虛擬設備所執行功能完成已經啓動的上述寄存器組的預先設定存取前,不控制上述塊選擇器和上述組選擇器來改變存取路徑。
  9. 如請求項8所述的存取虛擬化寄存器裝置的方法,上述虛擬化寄存器裝置包含寄存器空間,上述寄存器空間劃分出多個實體塊,其中每個上述實體塊包含多個寄存器組,上述多個實體塊之間不重疊。
  10. 一種電腦程式產品,包含程式碼,其中,當處理單元執行上述程式碼時,實施如請求項7至9中任一項所述的存取虛擬化寄存器裝置的方法。
  11. 一種存取虛擬化寄存器裝置的方法,由處理單元於載入並執行虛擬設備的計算機程式碼時實施,其中,上述虛擬化寄存器裝置包含寄存器空間、地址解碼器和讀取/寫入電路,上述寄存器空間包含多個實體塊,上述存取虛擬化寄存器裝置的方法包含: 從上述多個實體塊中決定出相應於上述虛擬設備的一個; 依據即將發出請求的上述虛擬設備或者上述虛擬設備所執行功能的資訊選擇出決定的上述實體塊中多個寄存器組中的一個; 發送相應於決定的上述實體塊中的選擇的上述寄存器組的地址給上述地址解碼器,用於啓動選擇出的上述寄存器組;以及 發送請求給上述讀取/寫入電路,用於存取已經啓動的上述寄存器組,從寄存器中讀取資料,或者寫入資料到寄存器。
  12. 如請求項11所述的存取虛擬化寄存器裝置的方法,其中,上述多個實體塊之間不重疊。
  13. 一種電腦程式產品,包含程式碼,其中,當處理單元執行上述程式碼時,實施如請求項11至12中任一項所述的存取虛擬化寄存器裝置的方法。
TW110113314A 2020-12-30 2021-04-14 虛擬化暫存器裝置和存取該裝置的方法和電腦程式產品 TWI777491B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011611273.1A CN112667354B (zh) 2020-12-30 2020-12-30 计算机可读取存储介质、虚拟化寄存器装置及访问该装置的方法
CN202011611273.1 2020-12-30

Publications (2)

Publication Number Publication Date
TW202225976A true TW202225976A (zh) 2022-07-01
TWI777491B TWI777491B (zh) 2022-09-11

Family

ID=75411133

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110113314A TWI777491B (zh) 2020-12-30 2021-04-14 虛擬化暫存器裝置和存取該裝置的方法和電腦程式產品

Country Status (3)

Country Link
US (1) US11941424B2 (zh)
CN (2) CN112667354B (zh)
TW (1) TWI777491B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704091B (zh) * 2021-07-30 2024-02-09 郑州云海信息技术有限公司 一种逻辑代码调试方法、装置、设备及存储介质
CN113808000B (zh) * 2021-11-19 2022-04-26 北京壁仞科技开发有限公司 数据管理装置及数据管理方法
CN115988218B (zh) * 2023-03-14 2023-06-09 摩尔线程智能科技(北京)有限责任公司 一种虚拟化视频编解码系统、电子设备和存储介质
CN116820344B (zh) * 2023-07-03 2024-04-26 摩尔线程智能科技(北京)有限责任公司 存储器访问电路及存储器访问方法、集成电路和电子设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
JPH0754468B2 (ja) * 1984-12-19 1995-06-07 株式会社日立製作所 仮想計算機システム
US7685401B2 (en) 2006-12-27 2010-03-23 Intel Corporation Guest to host address translation for devices to access memory in a partitioned system
US7908458B2 (en) * 2007-11-21 2011-03-15 Microchip Technology Incorporated Ethernet controller
WO2010030996A1 (en) * 2008-09-15 2010-03-18 Virsto Software Storage management system for virtual machines
US8726274B2 (en) * 2010-09-10 2014-05-13 International Business Machines Corporation Registration and initialization of cluster-aware virtual input/output server nodes
US20140173160A1 (en) * 2011-06-07 2014-06-19 Telefonaktiebolaget L M Ericsson (Publ) Innovative Structure for the Register Group
CN106775919B (zh) * 2015-11-24 2020-03-13 龙芯中科技术有限公司 状态信息控制方法及装置
US10754789B1 (en) * 2017-11-15 2020-08-25 Amazon Technologies, Inc. Address translation for storage class memory in a system that includes virtual machines
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10671460B2 (en) 2018-02-05 2020-06-02 Micron Technology, Inc. Memory access communications through message passing interface implemented in memory systems
CN110633055B (zh) * 2019-09-18 2023-05-16 东软集团股份有限公司 一种访问rpmb分区的方法、装置及相关设备

Also Published As

Publication number Publication date
US11941424B2 (en) 2024-03-26
CN112667354A (zh) 2021-04-16
CN112667354B (zh) 2022-05-06
US20220206835A1 (en) 2022-06-30
TWI777491B (zh) 2022-09-11
CN114840305A (zh) 2022-08-02

Similar Documents

Publication Publication Date Title
TWI777491B (zh) 虛擬化暫存器裝置和存取該裝置的方法和電腦程式產品
US10324832B2 (en) Address based multi-stream storage device access
US11947991B2 (en) Methods and apparatus to process commands from virtual machines
US10866905B2 (en) Access parameter based multi-stream storage device access
CN107015845B (zh) Gpu虚拟化
WO2021004231A1 (zh) 一种闪存设备中的数据存储方法及闪存设备
JP5384576B2 (ja) 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用
JP5241737B2 (ja) プロセッサ・システムにおいて命令レベルでのリソース割り当ての識別を可能にする方法および装置
US8135899B1 (en) Expansion of virtualized physical memory of virtual machine
US7120778B2 (en) Option ROM virtualization
US8132167B2 (en) Context based virtualization
US20060282624A1 (en) Information processing apparatus, process control method and computer program therefor
EP3647932B1 (en) Storage device processing stream data, system including the same, and operation method thereof
US10824342B2 (en) Mapping mode shift between mapping modes that provides continuous application access to storage, wherein address range is remapped between said modes during data migration and said address range is also utilized bypass through instructions for direct access
KR20200016809A (ko) 솔리드-스테이트 스토리지 미디어의 격리 영역들의 가상화
US10061701B2 (en) Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility
US11188365B2 (en) Memory overcommit by speculative fault
CN110058946B (zh) 设备虚拟化方法、装置、设备及存储介质
WO2015090043A1 (zh) 一种数据换入内存的方法和装置
US10459662B1 (en) Write failure handling for a memory controller to non-volatile memory
CN113485791B (zh) 配置方法和访问方法、装置、虚拟化系统和存储介质
US11093175B1 (en) Raid data storage device direct communication system
US20150186180A1 (en) Systems and methods for affinity dispatching based on network input/output requests
US20120216189A1 (en) Methods, Devices and Computer Program Products for Emulating a Physical Hard Drive as Multiple Virtual Hard Drives
US11003378B2 (en) Memory-fabric-based data-mover-enabled memory tiering system

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent