TWI777268B - 虛擬記憶管理方法及處理器 - Google Patents

虛擬記憶管理方法及處理器 Download PDF

Info

Publication number
TWI777268B
TWI777268B TW109134851A TW109134851A TWI777268B TW I777268 B TWI777268 B TW I777268B TW 109134851 A TW109134851 A TW 109134851A TW 109134851 A TW109134851 A TW 109134851A TW I777268 B TWI777268 B TW I777268B
Authority
TW
Taiwan
Prior art keywords
virtual memory
storage
memory
storage units
virtual
Prior art date
Application number
TW109134851A
Other languages
English (en)
Other versions
TW202215247A (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 大陸商星宸科技股份有限公司
Priority to TW109134851A priority Critical patent/TWI777268B/zh
Publication of TW202215247A publication Critical patent/TW202215247A/zh
Application granted granted Critical
Publication of TWI777268B publication Critical patent/TWI777268B/zh

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)
  • Memory System (AREA)

Abstract

本申請提供一種虛擬記憶管理方法,應用於包含運算加速器的智慧處理器,所述方法包括:從一物理記憶體上確定m個儲存單元,m個儲存單元組成一虛擬記憶體;將m個儲存單元劃分為n個儲存組;確定每一儲存組的位址映射關係,以得到n個位址映射關係,n個位址映射關係為虛擬記憶體的n個虛擬位址與m個儲存單元的物理位址的對應關係,其中, m、n係根據運算加速器的需求動態更新。本方法中,每個儲存組的儲存單元數量可根據運算加速器的需要進行設置,並動態更新虛擬記憶體的資料儲存位元寬及資料儲存深度從而可提高資料的存取效率。

Description

虛擬記憶管理方法及處理器
本申請涉及電子技術領域,特別涉及一種虛擬記憶管理方法及處理器。
當前,諸如智慧手機、個人電腦等電子設備都包括記憶體,例如RAM(Random Access Memory,隨機存取記憶體),記憶體用於儲存資料。電子設備存取記憶體上儲存的資料時,通常都是通過固定的存取介面來存取記憶體,一次能夠存取的儲存空間寬度和深度都是不可變的。從而,限制了資料的存取效率。
本申請提供一種虛擬記憶管理方法及處理器,可以提高資料的儲存和存取效率。
本申請提供一種虛擬記憶管理方法,應用於一智慧處理器,其包含一運算加速器。本申請的虛擬記憶管理方法包括:從一物理記憶體上確定m個儲存單元,所述m個儲存單元組成一虛擬記憶體,所述儲存單元為所述物理記憶體的最小儲存單元;並將所述m個儲存單元劃分為n個儲存組;以及確定每一所述儲存組的位址映射關係,以得到n個位址映射關係,所述n個位址映射關係為所述虛擬記憶體的n個虛擬位址與所述m個儲存單元的物理位址的對應關係,其中,m、n均為正整數,m大於等於n,且m、n係根據所述運算加速器的需求動態更新。
本申請還提供一種處理器,用以執行一程式碼,以實現一虛擬記憶管理方法,所述虛擬記憶管理方法應用於一智慧處理器,所述智慧處理器包含一運算加速器。所述虛擬記憶管理方法包括:從一物理記憶體上確定m個儲存單元,所述m個儲存單元組成一虛擬記憶體,所述儲存單元為所述物理記憶體的最小儲存單元;並將所述m個儲存單元劃分為n個儲存組;以及確定每一所述儲存組的位址映射關係,以得到n個位址映射關係,所述n個位址映射關係為所述虛擬記憶體的n個虛擬位址與所述m個儲存單元的物理位址的對應關係,其中,m、n均為正整數,m大於等於n,且m、n係根據所述運算加速器的需求動態更新
本申請提供一種虛擬記憶管理方法,應用於一智慧處理器,其包含一第一運算加速器及一第二運算加速器。所述虛擬記憶管理方法包括:從一物理記憶體上確定m個儲存單元,所述m個儲存單元組成一第一虛擬記憶體,所述儲存單元為所述物理記憶體的最小儲存單元;將所述m個儲存單元劃分為n個儲存組;確定對應所述第一虛擬記憶體的一第一位址映射表,其包含所述第一虛擬記憶體的n個虛擬位址與所述m個儲存單元的物理位址的對應關係;從所述物理記憶體上確定i個儲存單元,所述i個儲存單元組成一第二虛擬記憶體;將所述i個儲存單元劃分為j個儲存組;以及,確定對應所述第二虛擬記憶體的一第二位址映射表,其包含所述第二虛擬記憶體的j個虛擬位址與所述i個儲存單元的物理位址的對應關係。所述第一虛擬記憶體用以儲存所述第一運算加速器的資料,所述第二虛擬記憶體用以儲存所述第二運算加速器的資料。而m、n、i、j均為正整數,m大於等於n,i大於等於j,且m不等於i。
本申請還提供一種處理器,用以執行一程式碼,以實現一虛擬記憶管理方法,所述虛擬記憶管理方法應用於一智慧處理器,其包含一第一運算加速器及一第二運算加速器。所述虛擬記憶管理方法包含:從一物理記憶體上確定m個儲存單元,所述m個儲存單元組成一第一虛擬記憶體,所述儲存單元為所述物理記憶體的最小儲存單元;將所述m個儲存單元劃分為n個儲存組;確定對應所述第一虛擬記憶體的一第一位址映射表,其包含所述第一虛擬記憶體的n個虛擬位址與所述m個儲存單元的物理位址的對應關係;從所述物理記憶體上確定i個儲存單元,所述i個儲存單元組成一第二虛擬記憶體;將所述i個儲存單元劃分為j個儲存組;以及,確定對應所述第二虛擬記憶體的一第二位址映射表,其包含所述第二虛擬記憶體的j個虛擬位址與所述i個儲存單元的物理位址的對應關係。所述第一虛擬記憶體用以儲存所述第一運算加速器的資料,所述第二虛擬記憶體用以儲存所述第二運算加速器的資料。而m、n、i、j均為正整數,m大於等於n,i大於等於j,且m不等於i。
本申請提供的虛擬記憶管理方法,通過將m個儲存單元劃分為n個儲存組,每個儲存組的儲存單元數量可以根據運算加速器的需要進行設置,並動態更新虛擬記憶體的資料儲存位元寬(width)及資料儲存深度,從而可以提高資料的儲存和存取效率。
下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述。顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域技術人員在沒有付出創造性勞動前提下所獲得的所有其他實施例,都屬於本申請的保護範圍。
參考圖1,圖1為本申請實施例提供的電子設備100的結構示意圖。
本申請實施例提供一種電子設備,諸如電子設備100。所述電子設備100可以為智慧手機、平板電腦、遊戲裝置、AR(Augmented Reality,擴增實境)設備、資料儲存裝置、音訊播放裝置、視頻播放裝置等設備。
電子設備100包括晶片10。晶片10可以作為電子設備100的主控SOC(System on Chip,系統單晶片)。晶片10可以進行資料運算,從而對電子設備100進行整體監控,並實現電子設備100的各種功能。
參考圖2,圖2為圖1所示電子設備的晶片10的第一種結構示意圖。晶片10包括智慧處理器(Intelligent Processing Unit,IPU)11、中央處理器(Central Processing Unit,CPU)12以及物理記憶體13。IPU 11與CPU 12、物理記憶體13電連接,CPU 12還與物理記憶體13電連接。智慧處理器11用於進行資料處理,例如進行圖像資料處理、視頻資料處理、音訊資料處理等。中央處理器12可用於運行電子設備100的作業系統,以及進行資料運算,從而實現對電子設備100的整體監控。物理記憶體13可用於儲存資料,例如儲存圖像資料、音訊資料等,還可用於儲存IPU 11、CPU 12在運行過程中產生的資料。
物理記憶體13可以包括多種類型的記憶體,例如SRAM(Static Random-Access Memory,靜態隨機存取記憶體)、DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)等。
參考圖3,圖3為圖1所示電子設備的晶片10的第二種結構示意圖。圖3中,IPU 11中內建有虛擬記憶管理器和多個引擎,例如引擎0、引擎1……引擎N,所述引擎可以為運算加速器。此外,IPU 11中還可以內建物理記憶體13。虛擬記憶管理器用於根據物理記憶體13創建虛擬記憶體(Virtual Buffer,VB),並對虛擬記憶體進行管理。所述引擎可透過虛擬記憶體存取物理記憶體13。
參考圖4,圖4為本申請實施例提供的晶片10的物理記憶體13的結構示意圖。物理記憶體13可以包括多個記憶庫(bank),例如bank 0至bank 3等。每一所述記憶庫bank可以包括多個儲存單元(slot),例如slot 0至slot 31等。例如,bank 0可以包括slot 0至slot 7,bank 3可以包括slot 24至slot 31。實施上,儲存單元為物理記憶體13的最小儲存單元,每一儲存單元的寬度為128bit(位元),深度為512 bit。
本申請實施例還提供一種虛擬記憶管理方法,其可應用於智慧處理器11中。實施上,可藉由電子設備100中的一處理器執行程式碼來實現此虛擬記憶管理方法,例如可由晶片10的CPU 12執行程式碼來實現此虛擬記憶管理方法,從而根據物理記憶體13創建虛擬記憶體(Virtual Buffer,VB)。虛擬記憶體可以用於儲存資料(實際上資料是儲存於對應的物理記憶體13的儲存單元上),並提供給電子設備進行存取,例如供所述IPU 11中的引擎進行存取。
參考圖5,圖5為本申請實施例提供的虛擬記憶管理方法的第一種流程示意圖。此實施例中係藉由CPU 12執行程式碼來實現此虛擬記憶管理方法,虛擬記憶管理方法各步驟將於下面進行詳細說明。
步驟210,從物理記憶體上確定m個儲存單元,所述m個儲存單元組成虛擬記憶體,所述儲存單元為所述物理記憶體的最小儲存單元。首先,CPU 12可從物理記憶體13上確定m個儲存單元,例如確定出的m個儲存單元可以包括slot 0至slot 3。其中,m為正整數,例如2、4、8等。所述m個儲存單元即可組成虛擬記憶體。而此儲存單元可為物理記憶體13的最小儲存單元。
實施上,所述m個儲存單元可以為所述物理記憶體13上連續的儲存單元,例如slot 0、slot 1、slot 2、slot3。所述m個儲存單元也可以為所述物理記憶體13上不連續的儲存單元,例如slot 0、slot 2、slot 5、slot7等。
步驟220,將所述m個儲存單元劃分為n個儲存組。CPU 12從物理記憶體13上確定出m個儲存單元後,將所述m個儲存單元劃分為n個儲存組(group)。n為正整數,且m大於等於n。從而,劃分的n個儲存組中,每一儲存組包括至少一個儲存單元。例如,m個儲存單元包括slot 0、slot 1、slot 2、slot3,可以將slot 0、slot 1劃分為group 0,將slot 2、slot3劃分為group1。
可以理解的,當一個儲存組包括多個儲存單元時,所述多個儲存單元並列成一個儲存組,從而可以增加虛擬記憶體儲存資料的頻寬。其中,並列可以理解為進行並列的多個儲存單元的頻寬進行疊加。例如,當group 0包括slot 0、slot 1,slot 0、slot 1的頻寬均為128bit時,slot 0、slot 1並列後得到的儲存組的頻寬即為256bit,從而可以增加頻寬。
步驟230,確定每一所述儲存組的位址映射關係,以得到n個位址映射關係,所述n個位址映射關係為所述虛擬記憶體的n個虛擬位址與所述m個儲存單元的物理位址的對應關係。實施上,虛擬記憶體的一虛擬位址係用以存取此虛擬記憶體中的一儲存組,藉由對應此虛擬位址的位址映射關係,得到物理記憶體13上對應的儲存單元的物理位址(即實際位址)。
詳細來說,CPU 12劃分出n個儲存組後,即可確定每一儲存組的虛擬位址與此儲存組所對應的儲存單元間的位址映射關係,以得到n個位址映射關係。通過此n個位址映射關係,可將對此虛擬記憶體的存取轉變到存取物理記憶體13上對應的儲存單元。
進一步地,為提升存取物理記憶體13的效率,CPU 12可依據不同的存取需求動態決定及更新m及n的值,亦即決定選取儲存單元的數目及劃分的儲存組的數目。舉例來說,CPU 12規劃一虛擬記憶體VB0供IPU 11中的引擎0運算時暫存資料,CPU 12可依據引擎0當下的運算需求決定適當的虛擬記憶體VB0大小供引擎0使用,例如,m為4,n為2。當引擎0運算需求改變時,CPU 12可動態改變虛擬記憶體VB0的大小,例如,將m改為6,將n改為3。實施上,CPU 12可藉由重新執行步驟210-230以改變虛擬記憶體VB0的大小。
更進一步地,參考圖3,當所述IPU 11中的引擎為複數個時,亦即所述IPU 11包括的運算加速器為複數個時,例如包括第一運算加速器及第二運算加速器,CPU 12可針對每一個引擎的需求分別創建對應的虛擬記憶體。舉例來說,CPU 12針對引擎0(例如第一運算加速器)的需求創建虛擬記憶體VB0,供引擎0使用,VB0用以儲存引擎0的資料;CPU 12亦針對引擎1(例如第二運算加速器)的需求創建虛擬記憶體VB1,供引擎1使用,VB1用以儲存引擎1的資料。而虛擬記憶體VB0的大小可不同於虛擬記憶體VB1的大小。如前所述,CPU 12可將m個儲存單元劃分為n個儲存組以形成虛擬記憶體VB0。同樣地,CPU 12可藉由執行步驟210-230將i個儲存單元劃分為j個儲存組以形成虛擬記憶體VB1,其中,i、j為正整數,且i大於等於j。虛擬記憶體VB0的大小可不同於虛擬記憶體VB1的大小,即m可不等於i,或n可不等於j。此外,如前所述,CPU 12可以確定對應於VB0的第一位址映射表,其包含VB0的所述n個虛擬位址與所述m個儲存單元的物理位址的對應關係;CPU 12亦可以確定對應於VB1的第二位址映射表,其包含VB1的所述j個虛擬位址與所述i個儲存單元的物理位址的對應關係。
可以理解的,所述位址映射關係可以包括所述儲存組中的每一儲存單元的邏輯位址。在一些實施例中,物理記憶體13上的每一儲存單元可具有一個唯一的儲存單元編號,或者可在一個確定的記憶庫中具有一個唯一的儲存單元編號,此時所述位址映射關係也可以包括所述儲存組中的每一儲存單元的編號。
請一併參考圖6,圖6為本申請實施例提供的虛擬記憶管理方法的第一種應用示意圖。
在一應用示例中,物理記憶體包括多個記憶庫bank 0至bank 3,bank 0包括儲存單元slot 0至slot 7,bank 3包括儲存單元slot 24至slot 31。slot 0至slot 3可組成虛擬記憶體VB0,slot 24至slot 27可組成虛擬記憶體VB2。
需要說明的是,對於m個儲存單元所確定的一個虛擬記憶體,所述m個儲存單元可以以不同的劃分方式來劃分為n個儲存組,從而最終得到的n個位址映射關係也可能是不同的。不同的劃分方式所得到的n個位址映射關係都可以用於存取同一個虛擬記憶體。
請一併參考圖7、圖8,圖7為本申請實施例提供的虛擬記憶管理方法的第二種應用示意圖,圖8為本申請實施例提供的虛擬記憶管理方法的第三種應用示意圖。
如圖7所示,對於slot 0至slot 3組成的虛擬記憶體VB0,slot 0、slot 1、slot 2、slot 3可以劃分為1個儲存組,例如劃分為group 0。隨後,確定group 0的位址映射關係,得到的1個位址映射關係即可用於存取虛擬記憶體VB0。
如圖8所示,對於slot 0至slot 3組成的虛擬記憶體VB0,slot 0、slot 1、slot 2、slot 3可以劃分為4個儲存組,例如slot 0劃分為group 0,slot 1劃分為group 1,slot 2劃分為group 2,slot 3劃分為group 3。隨後,分別確定group 0、group 1、group 2、group 3的位址映射關係,得到的4個位址映射關係也可以用於存取虛擬記憶體VB0。
參考圖9,圖9為本申請實施例提供的虛擬記憶管理方法的第二種流程示意圖。相較於圖5的第一種流程示意圖,在第二種流程示意圖係將圖5中的步驟230細分為步驟231-233,詳細說明如下。
步驟231,確定每一所述儲存組中的所有儲存單元所屬的記憶庫,並獲取所述記憶庫的第一位址標記。
CPU 12將確定出的m個儲存單元劃分為n個儲存組後,可以進一步依次確定每一所述儲存組中的所有儲存單元所屬的記憶庫,並獲取所述記憶庫的第一位址標記。所述第一位址標記為所述記憶庫可以區分於其他記憶庫的標記,例如記憶庫的編號等。
步驟232,根據每一所述儲存組中的每一儲存單元獲取第二位址標記。CPU 12依次根據每一所述儲存組中的每一儲存單元獲取第二位址標記。所述第二位址標記可以用於在所述記憶庫中區分於其他的儲存單元,例如儲存單元的編號等。
步驟233,根據每一所述儲存組的第一位址標記和第二位址標記確定所述儲存組的位址映射關係。
例如,CPU 12確定出的m個儲存單元包括4個儲存單元slot 0、slot 1、slot 2、slot 3,4個儲存單元劃分為1個儲存組group 0。隨後,CPU 12確定group 0中的slot 0、slot 1、slot 2、slot 3所屬的記憶庫,例如可確定slot 0、slot 1、slot 2、slot 3屬於記憶庫bank 0。隨後,獲取bank 0的第一位址標記,例如是bank 0的記憶庫編號等。所述第一位址標記可以記為bank mask。所述第一位址標記可以使bank 0區分於物理記憶體13的其他記憶庫,從而根據所述第一位址標記即可從物理記憶體13的多個記憶庫中確定出bank 0。
隨後,CPU 12根據group 0中的slot 0、slot 1、slot 2、slot 3獲取第二位址標記,例如儲存單元編號等。第二位址標記可記為slot mask。第二位址標記可使slot 0、slot 1、slot 2、slot 3區分於bank 0中其他的儲存單元,從而根據第二位址標記即可從bank 0中確定出slot 0、slot 1、slot 2、slot 3。
最後,CPU 12即可從bank 0的第一位址標記以及slot 0、slot 1、slot 2、slot 3的第二位址標記確定group 0的位址映射關係。
在另一實施例中,CPU 12確定出的m個儲存單元包括4個儲存單元slot 0、slot 1、slot 2、slot 3,4個儲存單元劃分為4個儲存組group 0、group 1、group 2、group 3。隨後,電子設備100依次確定group 0中的slot 0所屬的記憶庫、group 1中的slot 1所屬的記憶庫、group 2中的slot 2所屬的記憶庫、group 3中的slot 3所屬的記憶庫,例如可以確定slot 0所屬的記憶庫為bank 0,slot 1所屬的記憶庫為bank 0,slot 2所屬的記憶庫為bank 0,slot 3所屬的記憶庫為bank 0。隨後,依次獲取group 0中的bank 0的第一位址標記、slot 0的第二位址標記;group 1中的bank 0的第一位址標記、slot 1的第二位址標記;group 2中的bank 0的第一位址標記、slot 2的第二位址標記;group 3中的bank 0的第一位址標記、slot 3的第二位址標記。
最後,電子設備100即可根據group 0對應的第一位址標記和第二位址標記確定group 0的位址映射關係,根據group 1對應的第一位址標記和第二位址標記確定group 1的位址映射關係,根據group 2對應的第一位址標記和第二位址標記確定group 2的位址映射關係,根據group 3對應的第一位址標記和第二位址標記確定group 3的位址映射關係。
在一實施例中,由於物理記憶體13的每一記憶庫都具有區分於其他記憶庫的編號,因此在獲取記憶庫的第一位址標記時,可以獲取所述記憶庫的記憶庫編號,並將所述記憶庫編號作為所述記憶庫的第一位址標記。例如,對於記憶庫bank 0,可以將記憶庫編號0作為第一位址標記。
需要說明的是,由於電腦是以二進位來儲存資料的,因此還可以對獲取到的記憶庫編號進行格式轉換。例如,可以通過4位元二進位數字來表示記憶庫編號,並在4位元二進位數字前面添加預設符號,諸如4’b。例如,記憶庫編號0轉換後可以表示為4’b0001,記憶庫編號2轉換後可以表示為4’b0100。
同樣的,在確定第二位址標記時,也可以對儲存單元編號進行格式轉換。例如,可以通過8位二進位數字來表示第二位址標記,並在8位元二進位數字前面添加預設符號,諸如8’b。例如,儲存單元編號0轉換後可以表示為8’b00000001,儲存單元編號0、1、2、3轉換後可以表示為8’b00001111。
可以理解的,CPU 12根據每一所述儲存組的第一位址標記和第二位址標記確定所述儲存組的位址映射關係時,可以根據格式轉換後的第一位址標記和第二位址標記來確定儲存組的位址映射關係。例如,第一位址標記為4’b0001,第二位址標記為8’b00000001,則可以確定儲存組的位址映射關係包含12’b000100000001的訊息。當第一位址標記為4’b0100且第二位址標記為8’b00001111時,則可以確定儲存組的位址映射關係包含12’b010000001111的訊息。
在一些實施例中,參考圖10,圖10為本申請實施例提供的虛擬記憶管理方法的第三種流程示意圖。第三種流程示意圖中,當n大於1時,將所述m個儲存單元劃分為n個儲存組之後,虛擬記憶管理方法還包括如下所說明的步驟。
步驟241,將所述n個儲存組進行級聯(cascade)。
當劃分的n個儲存組為多個儲存組,也即n大於1時,例如,當4個儲存單元slot 0、slot 1、slot 2、slot 3劃分為4個儲存組group 0、group 1、group 2、group 3時,可以將group 0、group 1、group 2、group 3進行級聯,以增加虛擬記憶體儲存資料的深度和電子設備存取資料的深度。其中,級聯可以理解為將進行級聯的多個儲存組的深度進行疊加。
例如,group 0、group 1、group 2、group 3的深度均為512bit時,將group 0、group 1、group 2、group 3進行級聯後,得到的虛擬記憶體的深度即為2048bit,從而可以增加深度。
繼續參考圖10,在一實施例中,在確定每一所述儲存組的位址映射關係,以得到n個位址映射關係之後,虛擬記憶管理方法還包括如下所說明的步驟。
步驟251,根據所述n個位址映射關係生成位址映射表。位址映射表可包含虛擬記憶體的n個虛擬位址與m個儲存單元的物理位址的對應關係。
需要說明的是,同一個虛擬記憶體,根據儲存組的劃分方式不同,所得到的位址映射表也可能是不同的。也即,一個虛擬記憶體可對應於多個位址映射表。不同的位址映射表可用於供不同的引擎進行存取。
例如,引擎1只能存取512bit寬度的儲存空間,引擎2只能存取256bit寬度的儲存空間,若要使引擎1和引擎2能夠存取同一個虛擬記憶體,可生成對應同一虛擬記憶體的2個不同位址映射表,其中一個使用4個slot並列,使資料存取寬度為512bit,另外一個使用2個slot並列,使資料存取寬度為256bit。
步驟261,為所述虛擬記憶體分配虛擬記憶體標識。CPU 12生成位址映射表之後,可以為虛擬記憶體分配虛擬記憶體標識。其中,所述虛擬記憶體標識可以用於區分於其他的虛擬記憶體。例如,所述虛擬記憶體標識可以為虛擬記憶體號,諸如VB0、VB3等。
步驟262,建立所述虛擬記憶體標識與所述位址映射表的對應關係。CPU 12建立虛擬記憶體標識與位址映射表的對應關係。從而,根據虛擬記憶體標識即可獲取到對應的映射關係表,並根據映射關係表存取對應的虛擬記憶體。
步驟271,獲取所述虛擬記憶體標識。
步驟272,根據所述虛擬記憶體標識獲取所述虛擬記憶體的位址映射表。
步驟273,根據所述位址映射表,透過所述虛擬記憶體存取物理記憶體。
電子設備100在建立虛擬記憶體標識與位址映射表的對應關係之後,可以提供對虛擬記憶體的存取功能。在存取虛擬記憶體時,例如電子設備100中的引擎在存取虛擬記憶體時,首先獲取虛擬記憶體標識,隨後根據所述虛擬記憶體標識獲取所述虛擬記憶體的位址映射表,並根據所述位址映射表透過所述虛擬記憶體存取物理記憶體。
例如,首先獲取虛擬記憶體標識VB0,隨後獲取VB0對應的位址映射表,從而引擎即可根據地址映射表存取儲存在虛擬記憶體對應物理記憶體的各個儲存單元中的資料。
由上可知,本申請實施例提供的虛擬記憶管理方法,通過將m個儲存單元劃分為n個儲存組,每個儲存組的儲存單元數量可以根據IPU 11中運算加速器的需要進行設置,並動態更新虛擬記憶體的資料儲存位元寬及資料儲存深度,從而可以提高資料的儲存和存取效率。
以上對本申請實施例所提供的虛擬記憶管理方法、處理器進行了詳細介紹。本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本申請的方法及其核心思想;同時,對於本領域的技術人員,依據本申請的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。
100:電子設備 10:晶片 11:智慧處理器 12:中央處理器 13:物理記憶體 bank:記憶庫 slot:儲存單元 210~230,210~233,210~273:步驟 VB:虛擬記憶體 group:儲存組
為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹。顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對於本領域技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本申請實施例提供的電子設備的結構示意圖。 圖2為圖1所示電子設備的晶片的第一種結構示意圖。 圖3為圖1所示電子設備的晶片的第二種結構示意圖。 圖4為本申請實施例提供的晶片的物理記憶體的結構示意圖。 圖5為本申請實施例提供的虛擬記憶管理方法的第一種流程示意圖。 圖6為本申請實施例提供的虛擬記憶管理方法的第一種應用示意圖。 圖7為本申請實施例提供的虛擬記憶管理方法的第二種應用示意圖。 圖8為本申請實施例提供的虛擬記憶管理方法的第三種應用示意圖。 圖9為本申請實施例提供的虛擬記憶管理方法的第二種流程示意圖。 圖10為本申請實施例提供的虛擬記憶管理方法的第三種流程示意圖。
210~230:步驟

Claims (13)

  1. 一種虛擬記憶管理方法,應用於一智慧處理器,所述智慧處理器包含一運算加速器,該虛擬記憶管理方法包括:從一物理記憶體上確定m個儲存單元,所述m個儲存單元組成一虛擬記憶體,所述儲存單元為所述物理記憶體的最小儲存單元;將所述m個儲存單元劃分為n個儲存組;以及確定每一所述儲存組的位址映射關係,以得到n個位址映射關係,所述n個位址映射關係為所述虛擬記憶體的n個虛擬位址與所述m個儲存單元的物理位址的對應關係;其中,m、n均為正整數,m大於等於n,且m、n係根據所述運算加速器的需求動態更新。
  2. 如請求項1之虛擬記憶管理方法,其中,所述物理記憶體包括多個記憶庫,每一所述記憶庫包括多個所述儲存單元,所述確定每一所述儲存組的位址映射關係,包括:確定每一所述儲存組中的所有儲存單元所屬的記憶庫,並獲取所述記憶庫的一第一位址標記;根據每一所述儲存組中的每一儲存單元獲取一第二位址標記;以及根據每一所述儲存組的儲存單元所屬記憶庫的第一位址標記和每一所述儲存組的第二位址標記確定所述儲存組的位址映射關係。
  3. 如請求項2之虛擬記憶管理方法,其中,所述獲取所述記憶庫的所述第一位址標記,包括:獲取所述記憶庫的一記憶庫編號;以及將所述記憶庫編號作為所述記憶庫的第一位址標記。
  4. 如請求項2之虛擬記憶管理方法,其中,所述根據每一所述儲存組中的每一儲存單元獲取所述第二位址標記,包括r獲取每一所述儲存組中的每一儲存單元的一所述儲存單元編號;以及根據每一所述儲存組的多個儲存單元的儲存單元編號確定所述儲存組的第二位址標記。
  5. 如請求項1之虛擬記憶管理方法,還包括:將所述n個儲存組進行級聯。
  6. 如請求項1之虛擬記憶管理方法,還包括:根據所述n個位址映射關係生成一位址映射表。
  7. 如請求項6之虛擬記憶管理方法,還包括:為所述虛擬記憶體分配一虛擬記憶體標識;以及建立所述虛擬記憶體標識與所述位址映射表的對應關係。
  8. 如請求項7之虛擬記憶管理方法,還包括:獲取所述虛擬記憶體標識;根據所述虛擬記憶體標識獲取所述虛擬記憶體的位址映射表;以及根據所述位址映射表存取所述物理記憶體。
  9. 一種處理器,用以執行一程式碼,以實現一虛擬記憶管理方法,所述虛擬記憶管理方法應用於一智慧處理器,所述智慧處理器包含一運算加速器,所述虛擬記憶管理方法包括:從一物理記憶體上確定m個儲存單元,所述m個儲存單元組成一虛擬記憶體,所述儲存單元為所述物理記憶體的最小儲存單元;將所述m個儲存單元劃分為n個儲存組;以及確定每一所述儲存組的位址映射關係,以得到n個位址映射關係,所述n個位址映射關係為所述虛擬記憶體的n個虛擬位址與所述m個儲存單元的物理位址的對應關係;其中,m、n均為正整數,m大於等於n,且m、n係根據所述運算加速器的需求動態更新。
  10. 一種虛擬記憶管理方法,應用於一智慧處理器,所述智慧處理器包含一第一運算加速器及一第二運算加速器,該虛擬記憶管理方法包括:從一物理記憶體上確定m個儲存單元,所述m個儲存單元組成一第一虛擬記憶體,所述儲存單元為所述物理記憶體的最小儲存單元;將所述m個儲存單元劃分為n個儲存組;確定對應所述第一虛擬記憶體的一第一位址映射表,其包含所述第一虛擬記憶體的n個虛擬位址與所述m個儲存單元的物理位址的對應關係;從所述物理記憶體上確定i個儲存單元,所述i個儲存單元組成一第二虛擬記憶體; 將所述i個儲存單元劃分為j個儲存組;以及確定對應所述第二虛擬記憶體的一第二位址映射表,其包含所述第二虛擬記憶體的j個虛擬位址與所述i個儲存單元的物理位址的對應關係;其中,所述第一虛擬記憶體用以儲存所述第一運算加速器的資料,所述第二虛擬記憶體用以儲存所述第二運算加速器的資料;其中,m、n、i、j均為正整數,m大於等於n,i大於等於j,且m不等於i。
  11. 如請求項10之虛擬記憶管理方法,還包括:為所述第一虛擬記憶體分配一虛擬記憶體標識;以及建立所述第一虛擬記憶體標識與所述第一位址映射表的對應關係。
  12. 如請求項11之虛擬記憶管理方法,還包括:獲取所述虛擬記憶體標識;根據所述虛擬記憶體標識獲取所述第一虛擬記憶體對應的所述第一位址映射表;以及根據所述第一位址映射表存取所述物理記憶體。
  13. 一種處理器,用以執行一程式碼,以實現一虛擬記憶管理方法,所述虛擬記憶管理方法應用於一智慧處理器,所述智慧處理器包含一第一運算加速器及一第二運算加速器,所述虛擬記憶管理方法包括:從一物理記憶體上確定m個儲存單元,所述m個儲存單元組成一第一虛擬記憶體,所述儲存單元為所述物理記憶體的最小儲存單元;將所述m個儲存單元劃分為n個儲存組; 確定對應所述第一虛擬記憶體的一第一位址映射表,其包含所述第一虛擬記憶體的n個虛擬位址與所述m個儲存單元的物理位址的對應關係;從所述物理記憶體上確定i個儲存單元,所述i個儲存單元組成一第二虛擬記憶體;將所述i個儲存單元劃分為j個儲存組;以及確定對應所述第二虛擬記憶體的一第二位址映射表,其包含所述第二虛擬記憶體的j個虛擬位址與所述i個儲存單元的物理位址的對應關係;其中,所述第一虛擬記憶體用以儲存所述第一運算加速器的資料,所述第二虛擬記憶體用以儲存所述第二運算加速器的資料;其中,m、n、i、j均為正整數,m大於等於n,i大於等於j,且m不等於i。
TW109134851A 2020-10-07 2020-10-07 虛擬記憶管理方法及處理器 TWI777268B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW109134851A TWI777268B (zh) 2020-10-07 2020-10-07 虛擬記憶管理方法及處理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109134851A TWI777268B (zh) 2020-10-07 2020-10-07 虛擬記憶管理方法及處理器

Publications (2)

Publication Number Publication Date
TW202215247A TW202215247A (zh) 2022-04-16
TWI777268B true TWI777268B (zh) 2022-09-11

Family

ID=82197498

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109134851A TWI777268B (zh) 2020-10-07 2020-10-07 虛擬記憶管理方法及處理器

Country Status (1)

Country Link
TW (1) TWI777268B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI833588B (zh) * 2023-03-01 2024-02-21 南亞科技股份有限公司 邏輯位址轉換裝置、方法以及非暫態電腦可讀取儲存媒體

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090276601A1 (en) * 2006-10-12 2009-11-05 Foundry Networks, Inc. Virtual memory mapping for efficient memory usage
US20120102258A1 (en) * 2010-10-22 2012-04-26 International Business Machines Corporation Dynamic memory affinity reallocation after partition migration
US20120117301A1 (en) * 2010-11-04 2012-05-10 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
TWI365385B (en) * 2005-05-05 2012-06-01 Ibm Managing computer memory in a computing environment with dynamic logical partitioning
TWI494770B (zh) * 2011-12-08 2015-08-01 Intel Corp 用以於交易執行期間有效率地處理多個虛擬位址映射的方法、裝置及系統

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI365385B (en) * 2005-05-05 2012-06-01 Ibm Managing computer memory in a computing environment with dynamic logical partitioning
US20090276601A1 (en) * 2006-10-12 2009-11-05 Foundry Networks, Inc. Virtual memory mapping for efficient memory usage
US20120102258A1 (en) * 2010-10-22 2012-04-26 International Business Machines Corporation Dynamic memory affinity reallocation after partition migration
US20120117301A1 (en) * 2010-11-04 2012-05-10 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
TWI494770B (zh) * 2011-12-08 2015-08-01 Intel Corp 用以於交易執行期間有效率地處理多個虛擬位址映射的方法、裝置及系統

Also Published As

Publication number Publication date
TW202215247A (zh) 2022-04-16

Similar Documents

Publication Publication Date Title
JP2019532412A (ja) プロセッサベースシステムにおける空間サービス品質(QoS)タグ付けを使用する異種メモリシステムの柔軟な管理の実現
CN107454203A (zh) 在分布式系统中生成唯一id的方法
WO2021258512A1 (zh) 数据的聚合处理装置、方法和存储介质
CN111352863B (zh) 内存管理方法、装置、设备及存储介质
US11567661B2 (en) Virtual memory management method and processor
CN111984425B (zh) 用于操作系统的内存管理方法、装置及设备
CN117093371B (zh) 缓存资源分配方法、装置、电子设备和存储介质
TW201734820A (zh) 在基於處理器之系統中之記憶體中之壓縮記憶體線之優先級存取
WO2021218502A1 (zh) 一种页交换的方法、存储系统和电子设备
CN108762915B (zh) 一种在gpu内存中缓存rdf数据的方法
CN114860627B (zh) 基于地址信息动态生成页表的方法
TWI777268B (zh) 虛擬記憶管理方法及處理器
CN110532243A (zh) 数据处理方法、装置和电子设备
CN113900966A (zh) 一种基于Cache的访存方法及装置
CN115470156A (zh) 基于rdma的内存使用方法、系统、电子设备和存储介质
WO2024187779A1 (zh) 业务数据存储方法、装置、计算机设备和存储介质
JP2018501559A (ja) 不均一メモリアーキテクチャにおける改善されたレイテンシのためのシステムおよび方法
CN112380004B (zh) 内存管理方法、装置、计算机可读存储介质及电子设备
US20240275848A1 (en) Content initialization method, electronic device and storage medium
US7505997B1 (en) Methods and apparatus for identifying cached objects with random numbers
US10146791B2 (en) Open file rebalance
US20210149960A1 (en) Graph Data Storage Method, System and Electronic Device
JP2018502379A (ja) 不均一メモリアーキテクチャにおける改善されたレイテンシを可能にするためのシステムおよび方法
TWI793676B (zh) 應用於類神經網路之填充架構
US6671783B1 (en) Method and article for managing references between objects in memories of different durations in a run-time environment

Legal Events

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