TWI767266B - 基於記憶體對映輸入輸出的記憶體空間自動分配方法 - Google Patents

基於記憶體對映輸入輸出的記憶體空間自動分配方法 Download PDF

Info

Publication number
TWI767266B
TWI767266B TW109122005A TW109122005A TWI767266B TW I767266 B TWI767266 B TW I767266B TW 109122005 A TW109122005 A TW 109122005A TW 109122005 A TW109122005 A TW 109122005A TW I767266 B TWI767266 B TW I767266B
Authority
TW
Taiwan
Prior art keywords
value
memory
processing unit
unit determines
memory allocation
Prior art date
Application number
TW109122005A
Other languages
English (en)
Other versions
TW202203005A (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 TW109122005A priority Critical patent/TWI767266B/zh
Priority to US17/360,626 priority patent/US11494079B2/en
Publication of TW202203005A publication Critical patent/TW202203005A/zh
Application granted granted Critical
Publication of TWI767266B publication Critical patent/TWI767266B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

一種基於記憶體對映輸入輸出的記憶體空間自動分配方法,由一電腦系統的一處理單元來實施,包含以下步驟:(A)判定是否儲存有一第一設定值;(B)當判定結果為否時,將一第一預設值作為一記憶體分配值;(C)根據該記憶體分配值分配記憶體空間至多個週邊根埠的週邊裝置;(D)判定分配到的記憶體空間是否皆足夠;(E)當判定結果為否時,獲得一記憶體最大需求值;(F)判定該記憶體分配值是否大於該記憶體最大需求值;(G)當判定結果為否時,增加該記憶體分配值的值,回步驟(F);及(H)當判定結果為是時,以該記憶體分配值作為該第一設定值儲存,並進行重新開機。

Description

基於記憶體對映輸入輸出的記憶體空間自動分配方 法
本發明是有關於一種記憶體空間自動分配方法,特別是指一種基於記憶體對映輸入輸出的記憶體空間自動分配方法。
伺服器的基本輸入輸出系統(Basic Input/Output System,BIOS)在開機自我檢測階段(Power-On Self-Test,POST)時伺服器的中央處理器(Central Processing Unit,CPU)會利用記憶體位址映射技術分配給例如網路卡、圖形處理晶片、視訊加速晶片等快速週邊組件互連(PCI Express,PCIe)裝置記憶體空間,而被分配的記憶體空間必須為上述PCIe裝置保留,並且不能再分配給系統實體記憶體。
由於若分配給PCIe裝置記憶體空間不足時,伺服器無法繼續進行開機程序,故現有的伺服器在分配給PCIe裝置記憶體空 間前需要由使用者根據各PCIe裝置對記憶體的需求,找出PCIe裝置中記憶體需求的最大值,並根據記憶體需求的最大值手動調整要分配給PCIe裝置記憶體空間的大小。
舉例來說,使用者可分配記憶體空間的大小之選項為1GB(Gigabyte)、4GB、16GB、64GB、256GB、1024GB,若有3個PCIe裝置其記憶體需求分別為2GB、10GB、20GB,由於PCIe裝置中記憶體需求的最大值為20GB,則使用者設定要分配給各PCIe裝置為64GB。
然而,每次開機都需要使用者根據各PCIe裝置的需求手動調整要分配記憶體空間的大小不僅耗費時間,且耗費人力成本。
因此,本發明的目的,即在提供一種能根據各PCIe裝置的需求調整要自動分配記憶體空間的基於記憶體對映輸入輸出的記憶體空間自動分配方法。
於是,本發明基於記憶體對映輸入輸出的記憶體空間自動分配方法,由一電腦系統來實施,並在開機自我檢測階段進行,該電腦系統包括一儲存單元、一記憶體、多個週邊根埠,及一電連接該儲存單元及該記憶體的處理單元,每一週邊根埠電連接至少一週邊裝置,該儲存單元儲存一基本輸入輸出系統代碼,該處理單元 執行該基本輸入輸出系統代碼以進行開機自我檢測,該方法包含一步驟(A)、一步驟(B)、一步驟(C)、一步驟(D)、一步驟(E)、一步驟(F)、一步驟(G),及一步驟(H)。
在該步驟(A)中,該處理單元判定該儲存單元的該基本輸入輸出系統代碼是否儲存有一第一設定值。
在該步驟(B)中,當該處理單元判定出該儲存單元的該基本輸入輸出系統代碼不儲存有該第一設定值時,該處理單元將一第一預設值作為一記憶體分配值。
在該步驟(C)中,該處理單元根據該記憶體分配值分配該記憶體的記憶體空間至該等週邊根埠的週邊裝置。
在該步驟(D)中,該處理單元判定該等週邊根埠的週邊裝置分配到的記憶體空間是否皆足夠。
在該步驟(E)中,當該處理單元判定出該等週邊根埠的週邊裝置之任一者分配到的記憶體空間不足夠時,該處理單元獲得一相關於該等週邊根埠的週邊裝置所需要記憶體空間的最大值的記憶體最大需求值。
在該步驟(F)中,該處理單元判定該記憶體分配值是否大於該記憶體最大需求值。
在該步驟(G)中,當該處理單元判定出該記憶體分配值不大於該記憶體最大需求值時,該處理單元增加該記憶體分配值的 值,以更新該記憶體分配值,並回到步驟(F)。
在該步驟(H)中,當該處理單元判定出該記憶體分配值大於該記憶體最大需求值時,該處理單元以該記憶體分配值作為該第一設定值儲存至該儲存單元的該基本輸入輸出系統代碼,並進行重新開機。
本發明的功效在於:當該處理單元判定出該等週邊根埠的週邊裝置之任一者分配到的記憶體空間不足夠時,藉由該處理單元增加該記憶體分配值的值直到該記憶體分配值大於該記憶體最大需求值,此外,該處理單元還能判定該記憶體分配值是否有向下調整的空間,並在判定出有向下調整的空間時,將該記憶體分配值下調,以自動分配該等週邊根埠的週邊裝置所需的記憶體空間。
11:儲存單元
12:處理單元
13:週邊根埠
131:週邊裝置
14:記憶體
15:週邊互連匯流排
201~224:步驟
本發明的其他的特徵及功效,將於參照圖式的實施方式中清楚地呈現,其中:圖1是一方塊圖,說明用來實施本發明基於記憶體對映輸入輸出的記憶體空間自動分配方法的一實施例的電腦系統;圖2是一流程圖,說明該實施例的步驟201~211;及圖3是一流程圖,說明該實施例的步驟212~223。
在本發明被詳細描述的前,應當注意在以下的說明內容中,類似的元件是以相同的編號來表示。
參閱圖1,說明用來實施本發明基於記憶體對映輸入輸出的記憶體空間自動分配方法的一實施例的一電腦系統,該電腦系統包括一儲存單元11、一記憶體14、一電連接該儲存單元11及該記憶體14的處理單元12、多個週邊根埠13,及一電連接該處理單元12、該等週邊根埠13,及該記憶體14的週邊互連匯流排15,每一週邊根埠13電連接至少一週邊裝置131。
該儲存單元11例如為唯讀記憶體(英語:Read-Only Memory,ROM)或快閃記憶體(flash memory),該處理單元12例如為一中央處理器(Central Processing Unit,CPU)。該等週邊根埠13例如為快速週邊組件互連根埠(PCIe Root Port)。該至少一週邊裝置131例如為網路卡、圖形處理晶片、視訊加速晶片等快速週邊組件互連裝置(PCIe device)。該記憶體14用以分配給該等週邊根埠13的週邊裝置131記憶體空間,以使該等週邊根埠13的週邊裝置131儲存資料至所分配到的記憶體空間,該記憶體14例如為一動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)。該週邊互連匯流排15例如為快速週邊組件互連匯流排(PCIe bus)。
參閱圖1、2、3,本發明基於記憶體對映輸入輸出的記憶體空間自動分配方法的該實施例在開機自我檢測(Power-On Self-Test,POST)階段進行,以下將說明該實施例所包含之步驟。
在步驟201中,該處理單元12判定該儲存單元11的該基本輸入輸出系統代碼是否儲存有一第一設定值。當該處理單元12判定出該儲存單元11的該基本輸入輸出系統代碼不儲存有該第一設定值時,流程進行步驟202;而當該處理單元12判定出該儲存單元11的該基本輸入輸出系統代碼儲存有該第一設定值時,則流程進行步驟203。
在步驟202中,該處理單元12將一第一預設值作為一記憶體分配值。在本實施例中,該第一預設值例如為1吉位元組(Gigabyte,GB),但不以此為限。
在步驟203中,該處理單元12將該第一設定值作為該記憶體分配值。
在步驟204中,該處理單元12根據該記憶體分配值分配該記憶體14的記憶體空間至該等週邊根埠13的週邊裝置131。
在步驟205中,該處理單元12判定該等週邊根埠13的週邊裝置131分配到的記憶體空間是否皆足夠。當該處理單元12判定出該等週邊根埠13的週邊裝置131分配到的記憶體空間皆足夠時,流程進行步驟212;而當該處理單元12判定出該等週邊根埠13 的週邊裝置131之任一者分配到的記憶體空間不足夠時,則流程進行步驟206。
在步驟206中,該處理單元12獲得一相關於該等週邊根埠13的週邊裝置131所需要記憶體空間的最大值的記憶體最大需求值。值得注意的是,在本實施例中,該處理單元12係對於每一週邊根埠13,一一讀取該週邊根埠13的週邊裝置131所需要記憶體空間,以獲得所有週邊根埠13的所有週邊裝置131所需要記憶體空間後,選取其中最大者作為該記憶體最大需求值,但不以此為限。
在步驟207中,該處理單元12判定該記憶體分配值是否大於一門檻值。當該處理單元12判定出該記憶體分配值大於該門檻值時,流程進行步驟208;而當該處理單元12判定出該記憶體分配值不大於該門檻值時,則流程進行步驟209。在本實施例中,該門檻值為1024GB,但不以此為限。
在步驟208中,該處理單元12產生一指示出分配錯誤的錯誤訊息。值得注意的是,該門檻值表示該等週邊裝置131容量的最大限制,若該記憶體分配值大於該門檻值,則表示超過該等週邊裝置131的容量限制,而該處理單元12產生該錯誤訊息。
在步驟209中,該處理單元12判定該記憶體分配值是否大於該記憶體最大需求值。當該處理單元12判定出該記憶體分配值不大於該記憶體最大需求值時,流程進行步驟210;而當該處理單 元12判定出該記憶體分配值大於該記憶體最大需求值時,則流程進行步驟211。
在步驟210中,該處理單元12增加該記憶體分配值的值,以更新該記憶體分配值,並回到步驟207。
值得注意的是,在本實施例中,在步驟210中,更新後的該記憶體分配值為原來的4倍,但不以此為限。
在步驟211中,該處理單元12以該記憶體分配值作為該第一設定值儲存至該儲存單元11的該基本輸入輸出系統代碼,並進行重新開機。
值得注意的是,在步驟211進行重開機後,會再重新進行步驟201,此時由於在步驟211已儲存該第一設定值,因此,在步驟201後流程會進行步驟203、步驟204,及步驟205,且在步驟205中,由於之前步驟步驟211所儲存的該第一設定值大於該記憶體最大需求值,因此,在步驟205後流程會進行步驟212。
要特別注意的是,在其他實施方式中,可不包含步驟207、208,在該實施方式中,步驟206後直接進行步驟209,且在步驟211中,在該處理單元12增加該記憶體分配值的值,以更新該記憶體分配值後,回到步驟209。
要再特別注意的是,步驟201~211表示當該處理單元12判定出該等週邊根埠13的週邊裝置131之任一者分配到的記憶體 空間不足夠時,該處理單元12藉由增加該記憶體分配值的值直到該記憶體分配值大於該記憶體最大需求值,以確保該等週邊根埠13的週邊裝置131之任一者分配到的記憶體空間皆足夠。舉例來說,當該記憶體最大需求值為16GB時,在步驟203該記憶體分配值初始設定為該第一設定值,即1GB,而到步驟209時,由於該記憶體分配值(1G)未大於該記憶體最大需求值(16G),故進行步驟210將該記憶體分配值放大4倍,如此重複進行步驟209及210三次後,該記憶體分配值放大到32GB,並在第4次進行步驟209時,由於該記憶體分配值(32GB)已大於該記憶體最大需求值(16GB),故進行步驟211,該處理單元12以該記憶體分配值作為該第一設定值儲存至該儲存單元11的該基本輸入輸出系統代碼,並進行重新開機。
在步驟205後的步驟212中,該處理單元12將一第二預設值作為一第二設定值。在本實施例中,該第二預設值例如為0,但不以此為限。
在步驟213中,該處理單元12獲得一相關於該等週邊根埠13之其中一者的週邊裝置131所使用記憶體空間的最大值的記憶體最大使用值。
在步驟214中,該處理單元12將該第一預設值作為該記憶體分配值,以更新該記憶體分配值。
在步驟215中,該處理單元12判定該記憶體分配值是否 大於該門檻值。當該處理單元12判定出該記憶體分配值大於該門檻值時,流程進行步驟216;而當該處理單元12判定出該記憶體分配值不大於該門檻值時,則流程進行步驟217。
在步驟216中,該處理單元12產生該錯誤訊息。
在步驟217中,該處理單元12判定該記憶體分配值是否大於該記憶體最大使用值。當該處理單元12判定出該記憶體分配值不大於該記憶體最大使用值時,流程進行步驟218;而當該處理單元12判定出該記憶體分配值大於該記憶體最大使用值時,則流程進行步驟219。
在步驟218中,該處理單元12增加該記憶體分配值的值,以更新該記憶體分配值,並回到步驟215。在本實施例中,在步驟218中,更新後的該記憶體分配值為原來的4倍,但不以此為限。
要特別注意的是,在其他實施方式中,可不包含步驟215、216,在該實施方式中,步驟214後直接進行步驟217,且在步驟218中,在該處理單元12增加該記憶體分配值的值,以更新該記憶體分配值後,回到步驟217。
在步驟219中,該處理單元12判定該記憶體分配值是否大於該第二設定值。當該處理單元12判定出該記憶體分配值大於該第二設定值時,流程進行步驟220;而當該處理單元12判定出該記 憶體分配值不大於該第二設定值時,則流程進行步驟221。
在步驟220中,該處理單元12將該記憶體分配值作為該第二設定值,以更新該第二設定值。值得注意的是,當首次執行步驟219時,由於該第二設定值為0,故該處理單元12必定判定出該記憶體分配值大於該第二設定值,而當並非首次執行步驟219該處理單元12判定出該記憶體分配值大於該第二設定值,則表示步驟213所獲得的該記憶體最大使用值比之前獲得記憶體最大使用值還大,故需要更新該第二設定值。
在步驟219或步驟220後的步驟221中,該處理單元12判定是否已獲得所有週邊根埠13的週邊裝置131所使用記憶體空間的最大值。當該處理單元12判定出尚未獲得所有週邊根埠13的週邊裝置131所使用記憶體空間的最大值時,流程回到步驟213,以獲得另一相關於該等週邊根埠13之其中另一者的週邊裝置131所使用記憶體空間的最大值的記憶體最大使用值,直到獲得所有週邊根埠13的週邊裝置131所使用記憶體空間的最大值;而當該處理單元12判定出已獲得所有週邊根埠13的週邊裝置131所使用記憶體空間的最大值時,則流程進行步驟222。
在步驟222中,該處理單元12判定該儲存單元11的該基本輸入輸出系統代碼儲存的該第一設定值是否大於該第二設定值。當該處理單元12判定出該儲存單元11的該基本輸入輸出系統 代碼儲存的該第一設定值不大於該第二設定值時,流程進行步驟223;而當該處理單元12判定出該儲存單元11的該基本輸入輸出系統代碼儲存的該第一設定值大於該第二設定值時,則流程進行步驟224。
在步驟223中,該處理單元12繼續進行開機自我檢測。
在步驟224中,該處理單元12將該第二設定值作為該第一設定值,以更新該第一設定值,並進行重新開機。要特別注意的是,在步驟211、224執行完並重新開機後,到開機自我檢測階段時,流程回到步驟201重新開始,並且由於該儲存單元11的該基本輸入輸出系統代碼已儲存有該第一設定值,因此,重新開機後必定進行到步驟203。
要特別注意的是,步驟212~224表示當該處理單元12判定出該等週邊根埠13的週邊裝置131之任一者分配到的記憶體空間足夠時,該處理單元12將該第一預設值作為該記憶體分配值,重新調整增加該記憶體分配值,最後獲得大於所有週邊根埠13的週邊裝置131所使用記憶體空間的最大值的該第二設定值,藉由該處理單元12判定該第一設定值大於該第二設定值,以判定該記憶體分配值是否有向下調整的空間,若該第一設定值大於該第二設定值,表示該記憶體分配值有向下調整的空間,將該第二設定值作為該第一設定值,以更新該第一設定值,並進行重新開機。步驟212~224 主要是因應重新開機後,可能有部分週邊裝置131關閉不需要用到,使得剩下來的週邊裝置131之記憶體最大使用值小於步驟201~211所使用的記憶體最大需求值,而有縮小記憶體分配值的空間的情況發生。
綜上所述,本發明當該處理單元12判定出該等週邊根埠13的週邊裝置131之任一者分配到的記憶體空間不足夠時,藉由該處理單元12增加該記憶體分配值的值直到該記憶體分配值大於該記憶體最大需求值;而當該處理單元12判定出該等週邊根埠13的週邊裝置131分配到的記憶體空間皆足夠時,該處理單元12將該第一預設值作為該記憶體分配值,重新調整增加該記憶體分配值,最後獲得大於所有週邊根埠13的週邊裝置131所使用記憶體空間的最大值的該第二設定值,藉由該處理單元12判定該第一設定值大於該第二設定值,以判定該記憶體分配值是否有向下調整的空間,若該第一設定值大於該第二設定值,表示該記憶體分配值有向下調整的空間,將該第二設定值作為該第一設定值,以更新該第一設定值,並進行重新開機,以達到自動調整該等週邊根埠13的週邊裝置131所要分配的記憶體空間的大小,不會因為該等週邊根埠13的週邊裝置131之任一者分配到的記憶體空間不足夠而無法開機,且能妥善安排記憶體空間之功效,故確實能達成本發明的目的。
惟以上所述者,僅為本發明的實施例而已,當不能以此 限定本發明實施的範圍,凡是依本發明申請專利範圍及專利說明書內容所作的簡單的等效變化與修飾,皆仍屬本發明專利涵蓋的範圍內。
201~211:步驟

Claims (10)

  1. 一種基於記憶體對映輸入輸出的記憶體空間自動分配方法,由一電腦系統來實施,並在開機自我檢測階段進行,該電腦系統包括一儲存單元、一記憶體、多個週邊根埠,及一電連接該儲存單元及該記憶體的處理單元,每一週邊根埠電連接至少一週邊裝置,該儲存單元儲存一基本輸入輸出系統代碼,該處理單元執行該基本輸入輸出系統代碼以進行開機自我檢測,該方法包含以下步驟:(A)該處理單元判定該儲存單元的該基本輸入輸出系統代碼是否儲存有一第一設定值;(B)當該處理單元判定出該儲存單元的該基本輸入輸出系統代碼不儲存有該第一設定值時,該處理單元將一第一預設值作為一記憶體分配值;(C)該處理單元根據該記憶體分配值分配該記憶體的記憶體空間至該等週邊根埠的週邊裝置;(D)該處理單元判定該等週邊根埠的週邊裝置分配到的記憶體空間是否皆足夠;(E)當該處理單元判定出該等週邊根埠的週邊裝置之任一者分配到的記憶體空間不足夠時,該處理單元獲得一相關於該等週邊根埠的週邊裝置所需要記憶體空間的最大值的記憶體最大需求值;(F)該處理單元判定該記憶體分配值是否大於該記憶體最大需求值;(G)當該處理單元判定出該記憶體分配值不大於該記 憶體最大需求值時,該處理單元增加該記憶體分配值的值,以更新該記憶體分配值,並回到步驟(F);及(H)當該處理單元判定出該記憶體分配值大於該記憶體最大需求值時,該處理單元以該記憶體分配值作為該第一設定值儲存至該儲存單元的該基本輸入輸出系統代碼,並進行重新開機。
  2. 如請求項1所述的基於記憶體對映輸入輸出的記憶體空間自動分配方法,在步驟(A)後及步驟(C)前,還包含以下步驟:(I)當該處理單元判定出該儲存單元的該基本輸入輸出系統代碼儲存有該第一設定值時,該處理單元將該第一設定值作為該記憶體分配值。
  3. 如請求項1所述的基於記憶體對映輸入輸出的記憶體空間自動分配方法,在步驟(F)之前,還包含以下步驟:(J)該處理單元判定該記憶體分配值是否大於一門檻值;及(K)當該處理單元判定出該記憶體分配值大於該門檻值時,該處理單元產生一指示出分配錯誤的錯誤訊息;其中,當該處理單元判定出該記憶體分配值不大於該門檻值時,進行步驟(F),且在步驟(G)中,當該處理單元判定出該記憶體分配值不大於該記憶體最大需求值時,該處理單元增加該記憶體分配值的值,以更新該記憶體分配值後,回到步驟(J)。
  4. 如請求項3所述的基於記憶體對映輸入輸出的記憶體空 間自動分配方法,其中,在步驟(J)中,該門檻值為1024吉位元組。
  5. 如請求項1所述的基於記憶體對映輸入輸出的記憶體空間自動分配方法,其中,在步驟(G)中,更新後的該記憶體分配值為原來的4倍。
  6. 如請求項1所述的基於記憶體對映輸入輸出的記憶體空間自動分配方法,在步驟(D)後,還包含以下步驟:(L)當該處理單元判定出該等週邊根埠的週邊裝置分配到的記憶體空間足夠時,該處理單元將一第二預設值作為一第二設定值;(M)該處理單元獲得一相關於該等週邊根埠之其中一者的週邊裝置所使用記憶體空間的最大值的記憶體最大使用值;(N)該處理單元將該第一預設值作為該記憶體分配值,以更新該記憶體分配值;(O)該處理單元判定該記憶體分配值是否大於該記憶體最大使用值;(P)當該處理單元判定出該記憶體分配值不大於該記憶體最大使用值時,該處理單元增加該記憶體分配值的值,以更新該記憶體分配值,並回到步驟(O);(Q)當該處理單元判定出該記憶體分配值大於該記憶體最大使用值時,該處理單元判定該記憶體分配值是否大於該第二設定值;(R)當該處理單元判定出該記憶體分配值大於該第二 設定值時,該處理單元將該記憶體分配值作為該第二設定值,以更新該第二設定值;(S)該處理單元判定是否已獲得所有週邊根埠的週邊裝置所使用記憶體空間的最大值;(T)當該處理單元判定出已獲得所有週邊根埠的週邊裝置所使用記憶體空間的最大值時,該處理單元判定該儲存單元的該基本輸入輸出系統代碼儲存的該第一設定值是否大於該第二設定值;及(U)當該處理單元判定出該第一設定值大於該第二設定值時,該處理單元將該第二設定值作為該第一設定值,以更新該第一設定值,並進行重新開機。
  7. 如請求項6所述的基於記憶體對映輸入輸出的記憶體空間自動分配方法,在步驟(N)與步驟(O)之間,還包含以下步驟:(V)該處理單元判定該記憶體分配值是否大於一門檻值;(W)當該處理單元判定出該記憶體分配值大於該門檻值時,該處理單元產生一指示出分配錯誤的錯誤訊息;其中,當該處理單元判定出該記憶體分配值不大於該門檻值時,進行步驟(O),且在步驟(P)中,當該處理單元判定出該記憶體分配值不大於該記憶體最大使用值時,增加該記憶體分配值的值,以更新該記憶體分配值後,回到步驟(V)。
  8. 如請求項6所述的基於記憶體對映輸入輸出的記憶體空 間自動分配方法,在步驟(S)之後,還包含以下步驟:(X)當該處理單元判定出尚未獲得所有週邊根埠的週邊裝置所使用記憶體空間的最大值時,回到步驟(M),以獲得另一相關於該等週邊根埠之其中另一者的週邊裝置所使用記憶體空間的最大值的記憶體最大使用值。
  9. 如請求項6所述的基於記憶體對映輸入輸出的記憶體空間自動分配方法,在步驟(T)之後,還包含以下步驟:(Y)當該處理單元判定出該第一設定值不大於該第二設定值時,該處理單元繼續進行開機自我檢測。
  10. 如請求項6所述的基於記憶體對映輸入輸出的記憶體空間自動分配方法,其中,在步驟(B)中,該第一預設值為1吉位元組,在步驟(L)中,該第二預設值為0。
TW109122005A 2020-06-30 2020-06-30 基於記憶體對映輸入輸出的記憶體空間自動分配方法 TWI767266B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW109122005A TWI767266B (zh) 2020-06-30 2020-06-30 基於記憶體對映輸入輸出的記憶體空間自動分配方法
US17/360,626 US11494079B2 (en) 2020-06-30 2021-06-28 Method for allocating address space used by MMIO and computer system utilizing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109122005A TWI767266B (zh) 2020-06-30 2020-06-30 基於記憶體對映輸入輸出的記憶體空間自動分配方法

Publications (2)

Publication Number Publication Date
TW202203005A TW202203005A (zh) 2022-01-16
TWI767266B true TWI767266B (zh) 2022-06-11

Family

ID=79031965

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109122005A TWI767266B (zh) 2020-06-30 2020-06-30 基於記憶體對映輸入輸出的記憶體空間自動分配方法

Country Status (2)

Country Link
US (1) US11494079B2 (zh)
TW (1) TWI767266B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115809167A (zh) * 2021-09-15 2023-03-17 英业达科技有限公司 快速周边组件互连接口的自我测试***及其方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201011535A (en) * 2008-09-11 2010-03-16 Inventec Corp Method for allocating and managing memory
CN101840365A (zh) * 2010-04-30 2010-09-22 广州广电运通金融电子股份有限公司 Bios安全保护方法及***
WO2013069587A1 (ja) * 2011-11-09 2013-05-16 Suginaka Junko 情報処理空間管理方法、外部デバイス及び情報処理装置
TW201543216A (zh) * 2014-05-02 2015-11-16 Via Tech Inc 延伸唯讀記憶體管理系統、方法及其管理主機

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487623B1 (en) * 1999-04-30 2002-11-26 Compaq Information Technologies Group, L.P. Replacement, upgrade and/or addition of hot-pluggable components in a computer system
US6728907B1 (en) * 2000-04-14 2004-04-27 Microsoft Corporation System and method for self-diagnosing system crashes
US6697920B2 (en) * 2002-01-24 2004-02-24 Phoenix Technologies Ltd. Extended upper memory block memory manager
TWI234708B (en) * 2003-06-11 2005-06-21 Via Tech Inc Management unit and method of flash memory device
US7284084B2 (en) * 2004-08-30 2007-10-16 International Business Machines Corporation ROM scan memory expander
JP2007141066A (ja) * 2005-11-21 2007-06-07 Toshiba Corp 情報処理装置およびメモリアドレス空間割り当て方法
JP5516221B2 (ja) * 2010-08-19 2014-06-11 富士通株式会社 論理検証装置及び論理検証方法
TWI420309B (zh) * 2010-11-12 2013-12-21 Inventec Corp 設定記憶體位址空間的方法
TWI470420B (zh) * 2011-04-27 2015-01-21 Wistron Corp 除錯方法及電腦系統
US20140006644A1 (en) * 2012-06-28 2014-01-02 Lsi Corporation Address Remapping Using Interconnect Routing Identification Bits
US9766803B2 (en) * 2015-12-31 2017-09-19 Futurewei Technologies, Inc. Mobile device camera viewfinder punch through effect
CN108074623A (zh) * 2016-11-08 2018-05-25 英业达科技有限公司 依据测试粒度决定存储器测试覆盖率的***及其方法
US11789820B2 (en) * 2021-02-19 2023-10-17 Quanta Computer Inc. Methods and systems for preventing hangup in a post routine from faulty bios settings

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201011535A (en) * 2008-09-11 2010-03-16 Inventec Corp Method for allocating and managing memory
CN101840365A (zh) * 2010-04-30 2010-09-22 广州广电运通金融电子股份有限公司 Bios安全保护方法及***
WO2013069587A1 (ja) * 2011-11-09 2013-05-16 Suginaka Junko 情報処理空間管理方法、外部デバイス及び情報処理装置
TW201543216A (zh) * 2014-05-02 2015-11-16 Via Tech Inc 延伸唯讀記憶體管理系統、方法及其管理主機

Also Published As

Publication number Publication date
TW202203005A (zh) 2022-01-16
US20210405873A1 (en) 2021-12-30
US11494079B2 (en) 2022-11-08

Similar Documents

Publication Publication Date Title
JP5305848B2 (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム
US9940291B2 (en) Assigning processors to memory mapped configuration
CN111857840B (zh) 基本输入输出***bios启动方法及装置
CN112955880B (zh) 用于处理片上***中的地址解码的装置和方法
US10318460B2 (en) UMA-aware root bus selection
CN110399217B (zh) 一种内存资源分配方法、装置及设备
US10871970B1 (en) Memory channel storage device detection
US10558468B2 (en) Memory channel storage device initialization
TWI767266B (zh) 基於記憶體對映輸入輸出的記憶體空間自動分配方法
US10838861B1 (en) Distribution of memory address resources to bus devices in a multi-processor computing system
CN110297726B (zh) 具有串行存在检测数据的计算机***及内存模块控制方法
US8312257B2 (en) System and method for performing hardware resource assignment in a large-scaled system
US7284084B2 (en) ROM scan memory expander
JP2002288104A (ja) コンピュータシステム、そのリソース割り当て方法及びプログラム
CN116483740B (zh) 内存数据的迁移方法、装置、存储介质及电子装置
US11500648B2 (en) Method for fast booting processors in a multi-processor architecture
US9201662B2 (en) System and method for pre-operating system memory map management to minimize operating system failures
CN115185874B (zh) 一种pcie资源的分配方法及相关装置
US11372792B1 (en) Automatic bus resource adjustment in a multiple root bridge computing system
CN115664953A (zh) 一种外接设备的资源分配方法及相关装置
US20040168004A1 (en) Method, system, and apparatus for eliminating bus renumbering in a computer system
CN113946432A (zh) 基于内存映像输入输出的内存空间自动分配方法
CN110134443A (zh) 在计算设备中执行附件的选项rom的方法和设备
CN106445573B (zh) 固件升级方法、装置及高速***设备互联集群***
CN113791905A (zh) 计算资源分配方法、装置及电子设备和存储介质