TW201913371A - 用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置 - Google Patents
用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置 Download PDFInfo
- Publication number
- TW201913371A TW201913371A TW106129241A TW106129241A TW201913371A TW 201913371 A TW201913371 A TW 201913371A TW 106129241 A TW106129241 A TW 106129241A TW 106129241 A TW106129241 A TW 106129241A TW 201913371 A TW201913371 A TW 201913371A
- Authority
- TW
- Taiwan
- Prior art keywords
- shared
- electronic device
- variable
- data
- memory
- Prior art date
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本發明提供一種用來於電子裝置中進行硬體資源管理之方法及對應的電子裝置。該方法包含:利用該電子裝置中之一微處理器執行一組程式碼之至少一部分,以控制該電子裝置,其中該電子裝置之多個運作包含一預定運作,該組程式碼包含用來控制該預定運作之一預定程式模組,該預定程式模組包含一局部程式,且該局部程式提供一變數存取服務予該預定程式模組;以及利用該微處理器執行該局部程式,以控制該電子裝置進行該預定運作。
Description
本發明係有關於電子裝置的實施,尤指一種用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置。
由於程式記憶體(program memory)諸如指令記憶體(instruction memory)的價格通常很高、且由於常被應用於一電子裝置之微處理器的最大定址範圍是有限的,例如「8051」型微處理器之最大定址範圍為16位元(bit),故微處理器只能使用(程式記憶體中之)64千位元組(kilobyte, KB)的儲存空間。在這樣的架構下,硬體資源相當有限。例如:當該電子裝置之設計者計畫要賦予該電子裝置很多功能時,64千位元組的大小往往是不足的,這導致有些功能必須被捨棄,使得在有限的製造成本之控管下,電子裝置的功能的多樣性無法提昇。因此,需要一種新穎的方法及記憶體存取架構,以在沒有副作用或較不可能帶來副作用之狀況下提昇電子裝置的功能的多樣性。
本發明之一目的在於提供一種用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置,以解決上述問題。
本發明之另一目的在於提供一種用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置,以減少該電子裝置的至少一程式模組(諸如一或多個程式模組)中之每一程式模組之機器碼量(machine code size)。
本發明之又一目的在於提供一種用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置,以在沒有副作用或較不可能帶來副作用之狀況下提昇電子裝置的功能的多樣性。
本發明之至少一實施例提供一種用來於一電子裝置中進行硬體資源管理之方法。該方法可包含:利用該電子裝置中之一微處理器(microcontroller)執行一組程式碼之至少一部分,以控制該電子裝置,其中該電子裝置之多個運作包含一預定運作,該組程式碼包含用來控制該預定運作之一預定程式模組,該預定程式模組包含一局部程式(partial program),且該局部程式提供一變數存取服務予該預定程式模組;以及利用該微處理器執行該局部程式,以控制該電子裝置進行該預定運作。例如,利用該微處理器執行該局部程式以控制該電子裝置進行該預定運作可包含:將對應於一索引之資料從對應於該索引之一資料儲存區複製到一共享記憶體(shared memory)儲存區中之至少一共享變數(shared variable),其中該至少一共享變數是非陣列變數(non-array variable);操作(operate)該至少一共享變數中之該資料,以控制該電子裝置進行該預定運作之至少一部分,其中操作該至少一共享變數中之該資料包含存取該至少一共享變數中之該資料;以及將該至少一共享變數中之最新資料從該共享記憶體儲存區中之該至少一共享變數複製到對應於該索引之該資料儲存區。
本發明之至少一實施例提供一種電子裝置,其可包含:一記憶體,用來儲存該電子裝置之一組程式碼;以及一微處理器,耦接至該記憶體。該微處理器可用來執行該組程式碼之至少一部分,以控制該電子裝置,其中該電子裝置之多個運作包含一預定運作,該組程式碼包含用來控制該預定運作之一預定程式模組,該預定程式模組包含一局部程式,且該局部程式提供一變數存取服務予該預定程式模組。此外,該微處理器執行該局部程式,以控制該電子裝置進行該預定運作,其中執行該局部程式以控制該電子裝置進行該預定運作包含:將對應於一索引之資料從對應於該索引之一資料儲存區複製到一共享記憶體儲存區中之至少一共享變數,其中該至少一共享變數是非陣列變數,且該多個資料儲存區包含該共享記憶體儲存區以及對應於該索引之該資料儲存區;操作該至少一共享變數中之該資料,以控制該電子裝置進行該預定運作之至少一部分,其中操作該至少一共享變數中之該資料包含存取該至少一共享變數中之該資料;以及將該至少一共享變數中之最新資料從該共享記憶體儲存區中之該至少一共享變數複製到對應於該索引之該資料儲存區。
本發明的好處之一是,藉由適當地進行硬體資源管理,本發明能針對變數存取運作進行妥善的控制,以有效地減少該電子裝置的至少一程式模組(諸如一或多個程式模組)中之每一程式模組之機器碼量,且可在硬體資源有限的狀況下大幅地提昇電子裝置的功能的多樣性。此外,依據本發明之相關實施例來實施並不會增加許多額外的成本。因此,相關技術的問題可被解決。相較於相關技術,本發明能在沒有副作用或較不可能帶來副作用之狀況下達到電子裝置之最佳化效能。
第1圖為依據本發明一實施例之一種電子裝置100的示意圖。電子裝置100可包含微處理器110與記憶體120。記憶體120可包含資料記憶體12,且可另包含程式記憶體124諸如指令記憶體(instruction memory),其中資料記憶體122可包含多個資料儲存區(未顯示於第1圖)。微處理器110與記憶體120可彼此耦接。例如資料記憶體122與程式記憶體124可分別透過資料匯流排與程式匯流排耦接至微處理器110,但本發明並不限於此。記憶體120可用來儲存資訊。例如資料記憶體122與程式記憶體124可分別儲存程式資料122D與程式碼124P。本實施例中,記憶體120(例如資料記憶體122與程式記憶體124)可為隨機存取記憶體,電子裝置100可另包含非揮發性記憶體(non-volatile memory, NV memory)130,且程式碼124P可從非揮發性記憶體130載入(load)至程式記憶體124,但本發明並不限於此。依據某些實施例,於電子裝置100中不需要設置非揮發性記憶體130,且程式碼124P可從電子裝置100以外載入至程式記憶體124。依據某些實施例,記憶體120可為任何類型的記憶體(例如非揮發性記憶體)。電子裝置100的例子可包含(但不限於):儲存裝置(例如隨身碟、硬式磁碟機、固態硬碟)、電視機、監視器(monitor)、穿戴裝置、多功能行動電話、個人電腦或任何其它類型的電子裝置。尤其是,電子裝置100可為多埠(Port)之電子裝置。
微處理器110可執行程式碼124P,諸如電子裝置100之一組程式碼,以控制電子裝置100之多個運作,其可分別對應於電子裝置100的各種功能。該多個運作包含一預定運作,其可對應於上述各種功能中之某一功能。例如,該組程式碼可包含用來控制該預定運作之一預定程式模組,該預定程式模組可包含一局部程式,且該局部程式可提供一變數存取服務予該預定程式模組,以減少該預定程式模組存取陣列變數的機會(例如避免該預定程式模組存取任何陣列變數)。
為了便於理解,假設傳統方法使用陣列變數variable[x]來儲存某一個電子裝置之每一個埠的變數,其中x = 0代表埠0,x = 1代表埠1,依此類推。上述陣列變數variable[x]不只被使用一次,且這個電子裝置的各種操作中還有許多其它的陣列變數。若設計者嘗試賦予這個電子裝置很多功能,則各個陣列變數的存取運作(諸如讀取、寫入)會使這個電子裝置的韌體(firmware)程式之整體的機器碼量變得很大,而無法放入有限的記憶體儲存空間中。因此,設計者被迫捨棄一些功能。
相較於此,本發明可有效地解決問題。第2圖繪示第1圖所示電子裝置100於一實施例中之資料記憶體配置200。共享記憶體(shared memory)儲存區SHM與資料儲存區{PM(0), PM(1), …, PM(N - 1)}可位於第1圖所示資料記憶體122中,其中程式資料122D可包含資料記憶體配置200中之資料。本發明的方法可將所有的陣列變數全部改為一般變數,即非陣列變數(non-array variable),並可透過共享記憶體儲存區SHM進行資料交換,以操控到全部N個埠的變數。例如埠0至埠(N - 1)的變數可分別儲存於專屬的資料儲存區{PM(0), PM(1), …, PM(N - 1)}中,不會彼此受到影響。由於陣列變數variable[x]改為一般變數(諸如變數VARIABLE)可以減少微處理器抓取位址x的機器碼(machine code),所以當變數的數量愈多或變數被操作的次數愈多,則機器碼量降低的幅度愈大。
為了便於理解,埠0至埠(N - 1)的變數可作為資料儲存區{PM(0), PM(1), …, PM(N - 1)}中之資料的例子,但本發明並不限於此。依據某些實施例,任何其它類型的變數亦可作為資料儲存區{PM(0), PM(1), …, PM(N - 1)}中之資料的例子。
第3圖為依據本發明一實施例之一種用來於一電子裝置中進行硬體資源管理之方法300的流程圖。方法300可作為上述本發明的方法之一例,且可應用於第1圖所示電子裝置100。
於步驟310中,電子裝置100將程式碼124P(諸如上述該組程式碼)載入到程式記憶體124,以容許微處理器110執行程式碼124P。例如該組程式碼可以不包含任何陣列變數,但本發明並不限於此。
於步驟320中,微處理器110執行程式碼124P之至少一部分,以控制電子裝置100。
於步驟330中,微處理器110執行該局部程式,以控制電子裝置100進行該預定運作。例如該局部程式可為一變數存取服務迴圈,且微處理器110可依據索引X執行該變數存取服務迴圈,以於該變數存取服務迴圈中隨著索引X之變化控制電子裝置100進行該預定運作,但本發明並不限於此。
依據本實施例,微處理器110可依據下列步驟a至g控制電子裝置100進行該預定運作: a. 令X = 0; b. 若X < N,則前往步驟c,否則,前往步驟g; c. 複製對應於索引X之資料儲存區PM(X)至共享記憶體儲存區SHM,例如:將對應於索引X之資料從對應於索引X之資料儲存區PM(X)複製到共享記憶體儲存區SHM中之至少一共享變數(例如一共享變數VARIABLE、或多個共享變數{variable1, variable2, variable3, …}),其中該至少一共享變數是非陣列變數,且該多個資料儲存區包含共享記憶體儲存區SHM以及對應於索引X之資料儲存區PM(X); d. 操作(operate)位於共享記憶體儲存區SHM中之一般變數,例如:操作該至少一共享變數(例如共享變數VARIABLE、或共享變數{variable1, variable2, variable3, …})中之該資料,以控制電子裝置100進行該預定運作之至少一部分,其中操作該至少一共享變數中之該資料可包含存取該至少一共享變數中之該資料; e. 複製共享記憶體儲存區SHM至對應於索引X之資料儲存區PM(X),例如:將該至少一共享變數中之最新資料從共享記憶體儲存區SHM中之該至少一共享變數(例如共享變數VARIABLE、或共享變數{variable1, variable2, variable3, …})複製到對應於索引X之資料儲存區PM(X); f. 令X = X + 1且前往步驟b; g. 結束; 其中步驟330之運作可包含步驟a至g之至少一部分(例如一部分或全部),尤其是步驟c至e,且步驟b至f所形成的迴圈可作為該變數存取服務迴圈之一例。
基於本發明的方法諸如方法300,透過該變數存取服務,該組程式碼中之至少一部分程式碼之機器碼量已變小,使電子裝置100之一記憶體(例如程式記憶體124、或任何其它類型的記憶體)的儲存容量足以儲存該組程式碼(亦即,該組程式碼已經變小且小到足以被放進這個記憶體)。尤其是,透過該變數存取服務,該預定程式模組中之所有需要陣列變數之處已分別被取代為關於該至少一共享變數(例如共享變數VARIABLE、或共享變數{variable1, variable2, variable3, …})之多個存取運作,以減少該預定程式模組於程式記憶體124中之機器碼量(其代表該預定程式模組於程式記憶體124中之大小)。例如:透過該變數存取服務,當該組程式碼被載入到程式記憶體124時,該組程式碼中之該預定程式模組已變小(例如已被最小化),但本發明不限於此。假設電子裝置100之該多個運作分別對應於電子裝置100之多個功能,且該預定運作對應於該多個功能中之一預定功能。例如,透過該變數存取服務,該組程式碼當中對應於該預定功能之程式碼已變小(例如已被最小化),以於程式記憶體124中保留儲存空間給該組程式碼當中對應於其它功能之程式碼。
依據某些實施例,步驟d之運作可予以變化。例如,操作該至少一共享變數中之該資料可另包含:將至少一運算子施加於(apply to)該至少一共享變數(例如共享變數VARIABLE、或共享變數{variable1, variable2, variable3, …})中之該資料,以產生該至少一共享變數中之該最新資料。
舉例來說,符號{OP_A, OP_B, OP_C, OP_D, …}可代表運算子,其例子可包含(但不限於):讀、寫、各種運算(諸如加、減、乘、除、模(mod)運算…等)及各種涉及讀/寫的操作。上述傳統方法中可能操作各種陣列變數諸如陣列變數{variable1[x], variable2[x], variable3[x], …},如下列虛擬程式碼所示:(以C語言為例) for(x=0; x<N; x++) // N is Number of Port { OP_A variable1[x]; // 操作陣列變數variable1[x] OP_B variable2[x]; // 操作陣列變數variable2[x] OP_C variable1[x]; // 操作陣列變數variable1[x] OP_D variable3[x]; // 操作陣列變數variable3[x] }
相較於此,本發明的方法可透過該變數存取服務來操作共享變數{variable1, variable2, variable3, …}(其為非陣列變數),如下列虛擬程式碼所示:(以C語言為例) for(X=0; X<N; X++) // N可代表埠的數量 { memcpy(shared_memory, port_memory[X], memory_size); // 複製對應於索引X之資料儲存區至共享記憶體儲存區 OP_A variable1; // 操作共享記憶體儲存區SHM中之共享變數variable1 OP_B variable2; // 操作共享記憶體儲存區SHM中之共享變數variable2 OP_C variable1; // 操作共享記憶體儲存區SHM中之共享變數variable1 OP_D variable3; // 操作共享記憶體儲存區SHM中之共享變數variable3 memcpy(port_memory[X], shared_memory, count); // 複製共享記憶體儲存區至對應於索引X之資料儲存區 } 其中指標(pointer)shared_memory與port_memory[X]可分別指向共享記憶體儲存區SHM與對應於索引X之資料儲存區PM(X),數值memory_size可代表資料儲存區PM(X)之整個區域的大小(例如資料儲存區PM(X)的大小等同於共享記憶體儲存區SHM的大小),且上列虛擬程式碼中之迴圈可作為該變數存取服務迴圈之另一例。舉例來說,該預定程式模組可為一函式、且該函式可包含這個迴圈,但本發明並不限於此。 表1
表1是傳統方法與本發明的方法之間的比較表。關於資料記憶體的需求,Q是變數的平均大小,M是變數的數量,且N是埠的數量,其中(Q * M)可稱為總位元組數(total byte count);例如:至少一變數中之每一變數可占用一個位元組、及/或至少一變數中之每一變數可占用多個位元組。由於傳統方法使用陣列變數(例如陣列變數{variable1[x], variable2[x], variable3[x], …}),故所需資料記憶體的儲存空間為所有陣列變數的儲存空間的總和,即 (Q * M * N) 位元組。另外,由於本發明的方法使用一般變數,故所需資料記憶體的儲存空間為所有一般變數的儲存空間的總和(即總位元組數(Q * M))再乘以(N + 1),即 (Q * M * (N + 1)) 位元組,其中1是指需額外增加一份一般變數(其儲存於共享記憶體儲存區SHM)。例如資料儲存區PM(X)與共享記憶體儲存區SHM中之每一者的大小可等於總位元組數(Q * M)。
關於程式記憶體的需求,M是變數的數量,K是變數被讀取/寫入的平均次數,T是微處理器存取時需額外處理陣列索引的機器碼量(以「8051」型微處理器為例,當採用某一個編譯器(compiler)及某一個最佳化等級(optimization level)時,讀取陣列變數時比讀取一般變數時多出10位元組(byte),寫入陣列變數時比寫入一般變數時多出12位元組,但本發明並不限於此),R是微處理器操作(例如數學運算、邏輯運算、存取…等)變數的機器碼量,S是函式memcpy( )的機器碼量。本發明的方法比傳統方法雖然多出對應於 (2 * S) 的機器碼量,但節省了對應於 (M * K * T) 的機器碼量,其通常遠大於對應於 (2 * S) 的機器碼量。因此,本發明的方法可大幅地減少至少一程式模組(諸如一或多個程式模組)的機器碼量,且可在硬體資源相當有限的狀況下賦予電子裝置100很多功能,以提昇電子裝置100的功能的多樣性。
依據某些實施例,程式記憶體124諸如指令記憶體可以是揮發性記憶體(例如靜態隨機存取記憶體(Static Random Access Memory;可簡稱為SRAM)、動態隨機存取記憶體(Dynamic Random Access Memory;可簡稱為DRAM)...等)、或非揮發性記憶體(例如遮罩唯讀記憶體(Mask Read-Only Memory;可簡稱為Mask ROM)、快閃記憶體(Flash memory;可簡稱為Flash)、電子可抹除可編程唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory;可簡稱為EEPROM)…等)。依據某些實施例,資料記憶體122可以是揮發性記憶體(例如SRAM、DRAM...等)、或非揮發性記憶體(例如Flash、EEPROM…等)。依據某些實施例,程式記憶體124與資料記憶體122可以共用同一個實體記憶體(Physical Memory)、或分別使用各自的實體記憶體。例如:若要共用,不可使用Mask ROM。依據某些實施例,機器碼可以只被製作在積體電路(IC)內的Mask ROM裡、或者可以只被燒錄在Flash或EEPROM裡、或者可以只被載入到隨機存取記憶體裡,但本發明不限於此。例如:機器碼可被製作在積體電路內的Mask ROM裡、被燒錄在Flash或EEPROM裡、及/或被載入到隨機存取記憶體。依據某些實施例,降低機器碼量的好處可包含:能在程式記憶體124之原來的儲存空間內增加分別對應於更多功能之程式以增加電子裝置100的附加價值、及/或減小程式記憶體124的大小以降低成本。依據某些實施例,不同的編譯器或不同等級的碼最佳化(Code Optimization)的相關設定可影響機器碼量。
另外,傳統方法除了使用陣列(array)變數之外,也有可能使用指標(pointer)變數、結構(struct)變數、聯合(union)變數、混合上述變數…等間接存取(需額外處理陣列/指標索引(array/pointer index)或結構/聯合成員(struct/union member))數值的變數。相較於此,本發明可透過該變數存取服務來減少機器碼量。例如:於某些實施例中,一般變數可泛指不需處理陣列/指標索引或結構/聯合成員等額外處理的變數。依據某些實施例,在對應於索引X之資料儲存區PM(X)中,不同變數所佔的大小可能不同,例如:某(些)變數可佔1個位元組,某(些)變數可佔2個位元組,某(些)變數可佔4個位元組、及/或某(些)變數可佔超過4個位元組。
本發明的方法除了能採用該變數存取服務迴圈來實現上述之該局部程式以外,也可以用非迴圈的方式來實現該局部程式。例如,本發明的方法可透過該變數存取服務來操作共享變數{variable1, variable2, variable3, …},如下列虛擬程式碼所示:(以C語言為例) void func(void) { OP_A variable1; // 操作共享記憶體儲存區SHM中之共享變數variable1 OP_B variable2; // 操作共享記憶體儲存區SHM中之共享變數variable2 OP_C variable1; // 操作共享記憶體儲存區SHM中之共享變數variable1 OP_D variable3; // 操作共享記憶體儲存區SHM中之共享變數variable3 } // 埠0 memcpy(shared_memory, port_memory[0], memory_size); // 複製對應於索引X(X = 0)之資料儲存區至共享記憶體儲存區 func(); memcpy(port_memory[0], shared_memory, memory_size); // 複製共享記憶體儲存區至對應於索引X(X = 0)之資料儲存區 // 埠1 memcpy(shared_memory, port_memory[1], memory_size); // 複製對應於索引X(X = 1)之資料儲存區至共享記憶體儲存區 func(); memcpy(port_memory[1], shared_memory, memory_size); // 複製共享記憶體儲存區至對應於索引X(X = 1)之資料儲存區 // ……. // 埠(N - 1) memcpy(shared_memory, port_memory[N-1], memory_size); // 複製對應於索引X(X = N - 1)之資料儲存區至共享記憶體儲存區 func(); memcpy(port_memory[N-1], shared_memory, memory_size); // 複製共享記憶體儲存區至對應於索引X(X = N - 1)之資料儲存區 其中func( )可代表函式。上述之該變數存取服務迴圈之運作已被打散成引用函式func( )的N組指令,使微處理器110如同依據索引X執行該變數存取服務迴圈,但本發明不限於此。上列(引用函式func( )的)該N組指令可模擬該變數存取服務迴圈,但本發明不限於此。
本發明的方法可降低韌體程式之整體的機器碼量,但本發明並不限於此。依據某些實施例,本發明的方法可降低任何其它類型的程式(諸如應用程式(Application)或驅動程式(Driver)的程式碼)之整體的機器碼量。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧電子裝置
110‧‧‧微處理器
120‧‧‧記憶體
122‧‧‧資料記憶體
122D‧‧‧程式資料
124‧‧‧程式記憶體
124P‧‧‧程式碼
130‧‧‧非揮發性記憶體
200‧‧‧記憶體配置
300‧‧‧方法
310‧‧‧將程式碼載入到程式記憶體之步驟
320‧‧‧執行程式碼之至少一部分以控制電子裝置之步驟
330‧‧‧執行局部程式以控制電子裝置進行預定運作之步驟
PM(0), PM(1), …, PM(N - 1)‧‧‧資料儲存區
SHM‧‧‧共享記憶體儲存區
第1圖為依據本發明一實施例之一種電子裝置的示意圖。 第2圖繪示第1圖所示電子裝置於一實施例中之資料記憶體配置。 第3圖為依據本發明一實施例之一種用來於一電子裝置中進行硬體資源管理之方法的流程圖。
Claims (19)
- 一種用來於一電子裝置中進行硬體資源管理之方法,該方法包含有: 利用該電子裝置中之一微處理器(microcontroller)執行一組程式碼之至少一部分,以控制該電子裝置,其中該電子裝置之多個運作包含一預定運作,該組程式碼包含用來控制該預定運作之一預定程式模組,該預定程式模組包含一局部程式(partial program),且該局部程式提供一變數存取服務予該預定程式模組;以及 利用該微處理器執行該局部程式,以控制該電子裝置進行該預定運作,其中執行該局部程式以控制該電子裝置進行該預定運作包含: 將對應於一索引之資料從對應於該索引之一資料儲存區複製到一共享記憶體(shared memory)儲存區中之至少一共享變數(shared variable),其中該至少一共享變數是非陣列變數(non-array variable); 操作(operate)該至少一共享變數中之該資料,以控制該電子裝置進行該預定運作之至少一部分,其中操作該至少一共享變數中之該資料包含存取該至少一共享變數中之該資料;以及 將該至少一共享變數中之最新資料從該共享記憶體儲存區中之該至少一共享變數複製到對應於該索引之該資料儲存區。
- 如申請專利範圍第1項所述之方法,其中該至少一共享變數包含多個共享變數;以及執行該局部程式以控制該電子裝置進行該預定運作包含: 將對應於該索引之該資料從對應於該索引之該資料儲存區複製到該共享記憶體儲存區中之該多個共享變數,其中該多個共享變數是非陣列變數; 分別操作該多個共享變數中之該資料,以控制該電子裝置進行該預定運作之至少一部分,其中分別操作該多個共享變數中之該資料包含分別存取該多個共享變數中之該資料;以及 將該多個共享變數中之該最新資料從該共享記憶體儲存區中之該多個共享變數複製到對應於該索引之該資料儲存區。
- 如申請專利範圍第2項所述之方法,其中分別操作該多個共享變數中之該資料另包含: 分別將多個運算子施加於(apply to)該多個共享變數中之該資料,以產生該多個共享變數中之該最新資料。
- 如申請專利範圍第1項所述之方法,其中操作該至少一共享變數中之該資料另包含: 將至少一運算子施加於(apply to)該至少一共享變數中之該資料,以產生該至少一共享變數中之該最新資料。
- 如申請專利範圍第1項所述之方法,其中該局部程式提供該變數存取服務予該預定程式模組,以減少該預定程式模組存取(access)陣列變數(array variable)的機會。
- 如申請專利範圍第1項所述之方法,其中透過該變數存取服務,該組程式碼中之至少一部分程式碼之機器碼量(machine code size)已變小,使該電子裝置之一記憶體的儲存容量足以儲存該組程式碼。
- 如申請專利範圍第1項所述之方法,其中,透過該變數存取服務,該預定程式模組中之所有需要陣列變數之處已分別被取代為關於該至少一共享變數之多個存取運作,以減少該預定程式模組於該電子裝置之一記憶體中之機器碼量(machine code size),其中該機器碼量代表該預定程式模組於該記憶體中之大小。
- 如申請專利範圍第1項所述之方法,其中,透過該變數存取服務,當該組程式碼被載入(load)到該電子裝置之一記憶體時,該組程式碼中之該預定程式模組已變小。
- 如申請專利範圍第1項所述之方法,其中該電子裝置之該多個運作分別對應於該電子裝置之多個功能,且該預定運作對應於該多個功能中之一預定功能;以及該方法另包含: 將該組程式碼載入(load)到該電子裝置之一記憶體,以容許該微處理器執行該組程式碼,其中透過該變數存取服務,該組程式碼當中對應於該預定功能之程式碼已變小,以於該記憶體中保留儲存空間給該組程式碼當中對應於其它功能之程式碼。
- 如申請專利範圍第1項所述之方法,其中該電子裝置包含至少一記憶體;以及該記憶體包含多個資料儲存區,且該多個資料儲存區包含該共享記憶體儲存區以及對應於該索引之該資料儲存區。
- 一種電子裝置,包含有: 一記憶體,用來儲存該電子裝置之一組程式碼;以及 一微處理器(microcontroller),耦接至該記憶體,用來執行該組程式碼之至少一部分,以控制該電子裝置,其中該電子裝置之多個運作包含一預定運作,該組程式碼包含用來控制該預定運作之一預定程式模組,該預定程式模組包含一局部程式(partial program),且該局部程式提供一變數存取服務予該預定程式模組; 其中,該微處理器執行該局部程式,以控制該電子裝置進行該預定運作,其中執行該局部程式以控制該電子裝置進行該預定運作包含: 將對應於一索引之資料從對應於該索引之一資料儲存區複製到一共享記憶體(shared memory)儲存區中之至少一共享變數(shared variable),其中該至少一共享變數是非陣列變數(non-array variable),且該多個資料儲存區包含該共享記憶體儲存區以及對應於該索引之該資料儲存區; 操作(operate)該至少一共享變數中之該資料,以控制該電子裝置進行該預定運作之至少一部分,其中操作該至少一共享變數中之該資料包含存取該至少一共享變數中之該資料;以及 將該至少一共享變數中之最新資料從該共享記憶體儲存區中之該至少一共享變數複製到對應於該索引之該資料儲存區。
- 如申請專利範圍第11項所述之電子裝置,其中該至少一共享變數包含多個共享變數;以及執行該局部程式以控制該電子裝置進行該預定運作包含: 將對應於該索引之該資料從對應於該索引之該資料儲存區複製到該共享記憶體儲存區中之該多個共享變數,其中該多個共享變數是非陣列變數; 分別操作該多個共享變數中之該資料,以控制該電子裝置進行該預定運作之至少一部分,其中分別操作該多個共享變數中之該資料包含分別存取該多個共享變數中之該資料;以及 將該多個共享變數中之該最新資料從該共享記憶體儲存區中之該多個共享變數複製到對應於該索引之該資料儲存區。
- 如申請專利範圍第12項所述之電子裝置,其中分別操作該多個共享變數中之該資料另包含: 分別將多個運算子施加於(apply to)該多個共享變數中之該資料,以產生該多個共享變數中之該最新資料。
- 如申請專利範圍第11項所述之電子裝置,其中操作該至少一共享變數中之該資料另包含: 將至少一運算子施加於(apply to)該至少一共享變數中之該資料,以產生該至少一共享變數中之該最新資料。
- 如申請專利範圍第11項所述之電子裝置,其中該局部程式提供該變數存取服務予該預定程式模組,以減少該預定程式模組存取(access)陣列變數(array variable)的機會。
- 如申請專利範圍第11項所述之電子裝置,其中透過該變數存取服務,該組程式碼中之至少一部分程式碼之機器碼量(machine code size)已變小,使該記憶體的儲存容量足以儲存該組程式碼。
- 如申請專利範圍第11項所述之電子裝置,其中,透過該變數存取服務,該預定程式模組中之所有需要陣列變數之處已分別被取代為關於該至少一共享變數之多個存取運作,以減少該預定程式模組於該記憶體中之機器碼量(machine code size),其中該機器碼量代表該預定程式模組於該記憶體中之大小。
- 如申請專利範圍第11項所述之電子裝置,其中,透過該變數存取服務,當該組程式碼被載入(load)到該記憶體時,該組程式碼中之該預定程式模組已變小。
- 如申請專利範圍第11項所述之電子裝置,其中該電子裝置之該多個運作分別對應於該電子裝置之多個功能,且該預定運作對應於該多個功能中之一預定功能;以及該電子裝置將該組程式碼載入(load)到該記憶體,以容許該微處理器執行該組程式碼,其中透過該變數存取服務,該組程式碼當中對應於該預定功能之程式碼已變小,以於記憶體中保留儲存空間給該組程式碼當中對應於其它功能之程式碼。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106129241A TWI647619B (zh) | 2017-08-29 | 2017-08-29 | 用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106129241A TWI647619B (zh) | 2017-08-29 | 2017-08-29 | 用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI647619B TWI647619B (zh) | 2019-01-11 |
TW201913371A true TW201913371A (zh) | 2019-04-01 |
Family
ID=65804153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106129241A TWI647619B (zh) | 2017-08-29 | 2017-08-29 | 用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI647619B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030126416A1 (en) * | 2001-12-31 | 2003-07-03 | Marr Deborah T. | Suspending execution of a thread in a multi-threaded processor |
US7200534B2 (en) * | 2005-03-07 | 2007-04-03 | Agilent Technologies, Inc. | Radiographic imaging systems and methods for designing same |
US9436475B2 (en) * | 2012-11-05 | 2016-09-06 | Nvidia Corporation | System and method for executing sequential code using a group of threads and single-instruction, multiple-thread processor incorporating the same |
-
2017
- 2017-08-29 TW TW106129241A patent/TWI647619B/zh active
Also Published As
Publication number | Publication date |
---|---|
TWI647619B (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI403954B (zh) | 具有指令集之電子系統、微控制器及其指令執行方法 | |
TWI461910B (zh) | 用於依照組態資訊執行原子記憶體操作之記憶體及方法 | |
US20060112215A1 (en) | Apparatus and method for processing data of flash memory | |
JP7088897B2 (ja) | データアクセス方法、データアクセス装置、機器及び記憶媒体 | |
JP2008537618A (ja) | 自動化ページベースのramシャドウイングを備えるコンピュータ装置、及び、操作方法 | |
KR20100095904A (ko) | 컴퓨팅 시스템, 그것의 부팅 방법, 및 코드 데이터 피닝 방법 | |
TWI570559B (zh) | 快閃記憶體及其存取方法 | |
KR20200121372A (ko) | 하이브리드 메모리 시스템 | |
US11481315B2 (en) | Booting an application from multiple memories | |
KR20170133250A (ko) | 듀얼 프로그램 동작을 사용하는 불휘발성 메모리 장치, 그것을 포함하는 메모리 시스템 및 그들의 동작 방법 | |
CN110928803B (zh) | 一种内存管理方法及装置 | |
JP2014225197A (ja) | データ記憶システムおよびその制御方法 | |
JP2018160189A (ja) | メモリシステム | |
US20240134572A1 (en) | Allocation of memory by mapping registers referenced by different instances of a task to individual logical memories | |
KR102130813B1 (ko) | 재구성 가능 프로세서 및 재구성 가능 프로세서를 동작하는 방법 | |
TWI647619B (zh) | 用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置 | |
CN109471673B (zh) | 用来于电子装置中进行硬件资源管理的方法及电子装置 | |
JP2013254357A (ja) | 情報処理装置および方法、並びにプログラム | |
TWI811633B (zh) | 電子裝置與其操作方法 | |
TW201526005A (zh) | 快閃記憶體燒錄方法與電腦可讀取媒體 | |
KR101502741B1 (ko) | 리던던시 로딩 효율 향상 | |
EP3834090B1 (en) | Fast initialization of complex in-memory data structures | |
US10809946B2 (en) | Array control program, array control method, and array control apparatus | |
US20230214538A1 (en) | Control device and access method | |
US20170123970A1 (en) | Method, apparatus and computer program for management of flash memory |