TWI416324B - 用於嵌入式控制器裝置之結構化虛擬暫存器 - Google Patents
用於嵌入式控制器裝置之結構化虛擬暫存器 Download PDFInfo
- Publication number
- TWI416324B TWI416324B TW099105033A TW99105033A TWI416324B TW I416324 B TWI416324 B TW I416324B TW 099105033 A TW099105033 A TW 099105033A TW 99105033 A TW99105033 A TW 99105033A TW I416324 B TWI416324 B TW I416324B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- virtual
- embedded
- structure definition
- host
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
本發明大體係關於嵌入式系統內之虛擬暫存器之使用。
嵌入式控制器可含有暫存器。此等暫存器之一功能可為允許在嵌入式控制器與外部實體(諸如外部主機處理器)之間交換資料。
暫存器可為嵌入式控制器中之實體硬體暫存器。嵌入式控制器之硬體結構可限制實體硬體暫存器之數目。增加實體硬體暫存器必須要改變硬體設計。另一種類型的暫存器為虛擬暫存器。虛擬暫存器在嵌入式控制器之記憶體中實施,並模擬實際的實體硬體暫存器。
在使用嵌入式控制器內之虛擬暫存器時出現一問題:可能難以確定虛擬暫存器在記憶體中駐留之位置。手動確定可為一繁重而又容易出錯的任務。當電腦程式的作者不得不在原始程式碼中進行大量手動確定時,困難加劇。
本文描述在嵌入式系統之內容背景中使用結構化虛擬暫存器之技術。
在一些實施例中,嵌入式控制器包括對應於嵌入式控制器之記憶體內之一或多個可自外部存取之位置之複數個虛擬暫存器。嵌入式控制器亦包括虛擬暫存器結構定義,其使得能夠自此等虛擬暫存器中讀取資料或將資料儲存於此等虛擬暫存器中。可經由連接至嵌入式控制器之匯流排或經由其他方式存取該等可自外部存取之位置。在一些實施例中,嵌入式控制器可有選擇地延遲或拒絕自外部存取其虛擬暫存器。嵌入式控制器可自感測器及/或裝置獲取資料並使得可經由其虛擬暫存器得到該資料。虛擬暫存器結構定義提供了用於分配、維護以及更新虛擬暫存器集合之改良方法。
主機系統可經由一或多個匯流排耦接至嵌入式控制器,且可操作以存取虛擬暫存器。主機系統能夠使用虛擬暫存器結構定義而自嵌入式控制器之記憶體中之複數個虛擬暫存器中讀取資料或將資料儲存於該複數個虛擬暫存器中。主機系統可儲存存在於嵌入式控制器中之虛擬暫存器結構定義之本端複本,並可使用該本端複本來促進對嵌入式控制器中之虛擬暫存器之存取。
在另一實施例中,電腦系統含有嵌入式控制器及主機系統。嵌入式控制器能夠使用儲存之指令及虛擬暫存器結構定義而自複數個虛擬暫存器中讀取資料或將資料儲存於該複數個虛擬暫存器中,該複數個虛擬暫存器對應於嵌入式控制器之記憶體中之一或多個可自外部存取之位置。主機系統能夠使用儲存之指令及虛擬暫存器結構定義(或其複本)而自複數個虛擬暫存器中讀取資料或將資料儲存於該複數個虛擬暫存器中。可經由一或多個匯流排提供由主機系統自外部存取。在一些實施例中,嵌入式控制器可有選擇地延遲或拒絕自外部存取虛擬暫存器。嵌入式控制器可自感測器及/或裝置獲取資料。在所有上述實施例中,可利用直接記憶體存取(DMA)進行自外部存取。
本說明書包括提及「一個實施例」或「一實施例」。短語「在一個實施例中」或「在一實施例中」的出現不一定指同一實施例。特定特徵、結構或特性可按與本發明相符的適當方式相組合。
術語:下列段落提供了在本發明(包括所附申請專利範圍)中出現的術語的定義及/或語境:「包含」,該術語為開放性的。如在所附申請專利範圍中所使用的,該術語並不排除額外結構或步驟。
「電腦系統」,該術語在技術上具有其普通的且公認的含義,包括能夠互相通信之一或多個計算裝置,例如主機系統及嵌入式處理器。「電腦系統」包括儲存於計算裝置上之任何電腦指令。計算裝置包括至少一或多個處理單元及記憶體子系統。記憶體子系統可儲存可由一或多個處理單元執行之程式指令。
「處理器」,該術語包括經組態以執行程式指令之任何電路(例如中央處理單元(CPU))。如在此處所使用的,「處理器」可指具有一或多個處理器之電腦子系統。處理器可具有位於單個晶粒上之一或多個處理「核」。處理器可分布於多個晶粒上。
「經組態以」,如在此所使用的,該術語意謂,特定的硬體或軟體件經配置以在操作時執行特定任務。因此,「經組態以」執行任務A之電腦系統意謂,電腦系統包括電路、儲存於記憶體種之程式指令或其他結構,其在電腦系統操作期間執行或可用於執行任務A(因而,即使電腦系統當前未開機,亦可「經組態以」執行任務A。)。類似地,「經組態以」執行任務B之電腦程式包括指令,當其被電腦系統執行時執行任務B。
「記憶體位址範圍」,如在此所使用的,指在記憶體位址空間中邏輯上相連的一串連續的一或多個位元組。
「直接記憶體存取」,如在此所使用的,具有其在嵌入式計算技術領域中之所有普通含義。
***
現在轉至圖1A,可見到含有虛擬暫存器映射之實例現有技術資料表100。在本實例中,邏輯上類似的虛擬暫存器SOFT1及SOFT4分別位於記憶體位址(或位移)0x181h及0x180h處。SOFT1及SOFT4與虛擬暫存器SOFT2及SOFT3(分別位於記憶體位址或位移0x29h及0x2Ah處)間隔數百位元組。使用該資料表之程式設計師可能需要手動將虛擬暫存器之記憶體位址抄寫進程式碼以存取該虛擬暫存器。此種手動鍵入過程會導致錯誤。該手動抄寫之問題因以下事實而加劇:存在至少不同的兩方產生錯誤的機率:供嵌入式控制器中使用之程式設計師編碼之軟體,及供嵌入式控制器裝置之用戶使用之程式設計師編碼之主機軟體。此外,若虛擬暫存器之佈局發生改變或被擴展,則必須手動更新資料表100,此係繁重的任務,並可導致虛擬暫存器映射之高度分裂。在更新資料表100之過程中也會引入錯誤。
轉至圖1B-1D,其描繪風扇控制(fan control)之實例結構定義110。該結構定義110用C程式碼120表示為Fan_Control結構。實例總虛擬暫存器映射用C程式碼130表示。C程式碼130列出了1個「Status」虛擬暫存器、8個「Sensor」虛擬暫存器及3個「Fan_Control」虛擬暫存器。虛擬暫存器映射及結構定義可使用C程式設計語言或使用其他不同程式設計語言,以與上述實例不同的方式實施。舉例而言,虛擬暫存器不必限於C程式碼中之一「struct」。因此虛擬暫存器映射及結構定義不限於上述內容。
給定圖1C-1D的C程式碼,Vritual_Register_Map類型的指標可經設定為虛擬暫存器區域在記憶體中之基底位址(用VREG_BASE_ADDR表示):
struct Virtual_Register_Map*vregs=(struct Virtual_Register_Map*) VREG_BASE_ADDR;
對風扇2之Configuration(組態)欄位之參照簡單地表示為:
X=vregs->Fan_Control[2].Configuration;
虛擬暫存器之位移不需要由程式設計師來計算,因為編譯器能夠自結構定義中確定Configuration欄位之位址。若後續使用12個感測器而不是僅使用8個,則參照Fan_Control[2].Configuration之程式碼可保持不變,即使該程式碼之前表示的實際記憶體位置很可能被4個額外感測器需要的空間所替代。
在某些實施例中,嵌入式控制器之每一虛擬暫存器會具有相對於記憶體中虛擬暫存器區域之基址之顯式位移。位移可藉由將在所考慮之虛擬暫存器之前出現之所有結構之結構大小相加,然後加上所考慮之變數之位移而計算得到。舉例而言,在上述Fan_Control實例中,若假設結構Status為32位元組,結構Sensor為8位元組,且結構Fan_Control為16位元組,則Fan_Control[2].Configuration之位移為(32+8*8+2*16+4),即132。若軟體之新版本要求虛擬暫存器之不同佈局,Fan_Control[2].Configuration之位移可能改變,但對該值之邏輯參照將保持為vregs->Fan_Control[2].Configuration,使得用C或其他高階語言編寫之軟體不必更改。
現在轉至圖2,其描繪嵌入式控制器200之方塊圖。如圖所示,嵌入式控制器200包括耦接至嵌入式記憶體220之嵌入式處理器210。嵌入式處理器210可具有單個處理單元,但並不限於此種情形。在一些實施例中,嵌入式處理器210可具有多個核及/或多個處理單元。嵌入式記憶體220可為能夠儲存資料之記憶體技術之任意可能組合,該記憶體技術包括(但不限於)SDRAM、DDR SDRAM、RDRAM、SRAM、快閃記憶體、EPROM、EEPROM以及其他各種類型之ROM等,以及儲存媒體或記憶體媒體(諸如磁性媒體(如磁碟)或光學媒體(如CD、DVD以及相關技術等))。嵌入式記憶體220可為揮發性或非揮發性記憶體或其某一組合。在一些實施例中,嵌入式控制器200亦可耦接至若干感測器240、裝置245以及匯流排260。
嵌入式記憶體220包括記憶體位置230。記憶體位置230共同表示(或實施)一或多個可自外部存取之虛擬暫存器。在一些實施例中,主機系統中之主機處理器可經由匯流排260(諸如低引線數(LPC)匯流排)或其他任何匯流排或介面自外部存取記憶體位置230。匯流排260可直接連接至主機系統,或者可存在允許自外部存取記憶體位置230之其他中間硬體裝置及/或匯流排(參見圖4,在下文討論)。在一些實施例中,自外部存取對應於記憶體位置230之虛擬暫存器可受到嵌入式控制器之干預。舉例而言,自外部存取對應於記憶體位置230之虛擬暫存器可被延遲或拒絕,以防止主機系統自外部修改關鍵資源。在一些實施例中此種干預可藉由執行指令226實現。
在一些實施例中,嵌入式記憶體220可包括資料記憶體儲存區(store)224部分,其中含有記憶體位置230。然而,記憶體位置230不限於資料記憶體儲存區224,其可位於嵌入式記憶體220內之任何位置。記憶體位置230可位於記憶體位址之連續範圍內,或可位於兩個或兩個以上非連續片段中(亦即,在虛擬暫存器佈局中形成「洞」或空白)。因此,表示一或多個虛擬暫存器之記憶體位置230界定一在嵌入式控制器200與外部處理器及/或系統之間的「虛擬通信區域」。亦可使用直接記憶體存取(DMA)來存取記憶體位置230。
嵌入式記憶體220亦可儲存程式指令226。在一些實施例中,嵌入式記憶體220包括嵌入式程式記憶體儲存區222部分,其中含有程式指令226。嵌入式記憶體220進一步儲存虛擬暫存器結構定義250,其在一些實施例中可含於程式記憶體儲存區222中。在一些實施例中,虛擬暫存器結構定義250可位於程式指令226之外部,而在其他實施例中,虛擬暫存器結構定義可位於程式指令226內,或者可存在兩者之某一組合。舉例而言,若自採用C程式設計語言編寫之原始程式碼編譯程式指令226,則虛擬暫存器結構定義250可存在於指令226內,作為對對應於記憶體位置230之特定記憶體位址之參照。若程式指令226基於Java程式設計語言,則虛擬暫存器結構定義250可體現為含有虛擬暫存器佈局之獨立物件。然而,虛擬暫存器結構定義250不限於此等方面,其可在不同實施例中以不同方式實施。
虛擬暫存器結構定義250可實質上含有邏輯「映射」,其在記憶體220中之位置230對應於某些虛擬暫存器。程式指令226可由嵌入式處理器210執行,以使用虛擬暫存器結構定義250來定位嵌入式記憶體220中之對應於特定虛擬暫存器之特定位址。程式指令226亦可執行來產生資料並將資料儲存於在相應記憶體位置230處之特定虛擬暫存器中。待儲存於虛擬暫存器中之資料可自耦接至嵌入式控制器200之複數個感測器240或裝置245中之任何一或多者獲取。產生之資料也可為獲取之資料。
在一些實施例中,可修改虛擬暫存器結構定義250以產生第二虛擬暫存器結構定義。該第二結構定義可含有在嵌入式暫存器220中之對應於各種虛擬暫存器之記憶體位置230之不同邏輯「映射」。舉例而言,假設虛擬暫存器VR1及VR2為16位元寬,分別位於嵌入式記憶體220之位址空間0x00至0x0F以及0x10至0x1F中。之後,可能需要以較高的精度量測儲存於VR1中之資料,VR1變成32位元寬虛擬暫存器。第二虛擬暫存器結構定義可反映新的32位元寬VR1存在於位址空間0x00至0x1F中,並顯示VR2之邏輯位置移動至位址空間0x20至0x2F。或者,第二虛擬暫存器結構定義可顯示VR2位於其原始位置(0x10至0x1F),而替代地將位於嵌入式記憶體220內之其他地方之16位元位址空間當作當前32位元寬VR1之第二部分(亦即,VR1不需要為連續的)。
嵌入式記憶體220為電腦可讀記憶體媒體。在一個實施例中,儲存於嵌入式記憶體中之程式指令226可由嵌入式處理器210執行,以使用虛擬暫存器結構定義250來將環境監測資料儲存於嵌入式記憶體220中之一或多個特定位置230中。該一或多個特定位置230可作為虛擬暫存器被主機處理器或其他外部實體藉由使用虛擬暫存器結構定義250來存取。然而,主機處理器不需要使用儲存於嵌入式控制器中之結構定義。主機處理器可替代地使用本端儲存之虛擬暫存器結構定義250之複本(儲存於主機記憶體中),其將使主機處理器能夠適當地存取對應於嵌入式控制器之一或多個虛擬暫存器之記憶體位置230。在一些實施例中,一或多個虛擬暫存器可對應於兩個或兩個以上非連續記憶體位置230。在一些實施例中,主機系統可週期性地自嵌入式系統接收虛擬暫存器結構定義250之經更新版本。
程式指令226亦可由嵌入式處理器210執行,以在將環境監測資料儲存於一或多個特定記憶體位置230之前產生該資料。可使用能夠監測環境狀況或能夠與環境狀況互動、並耦接至嵌入式控制器200之感測器240或裝置245來產生及/或獲取環境監測資料。然而,環境監測資料之產生及獲取不限於此方面。另外,程式指令226不限於產生及/或獲取環境資料。在將資料儲存於一或多個特定記憶體位置230中之前,可產生或獲取任何類型之資料。該資料可包括,例如,除錯資料、網路訊務監測資料、健康監測資料、電力監測資料、系統錯誤碼或其他類型之資料。
圖3說明例示性主機系統300。主機系統300包括主機處理器310及主機記憶體320,主機記憶體320為電腦可讀記憶體媒體。主機記憶體320可為熟習嵌入式系統技術者能夠想到的能儲存資料之記憶體技術之任意可能組合,該記憶體技術包括(但不限於)SDRAM、DDR SDRAM、RDRAM、SRAM、快閃記憶體、EPROM、EEPROM、其他各種類型之ROM等,以及儲存媒體或記憶體媒體(諸如磁性媒體(如磁碟)或光學媒體(如CD、DVD以及相關技術等))。主機記憶體220可為揮發性或非揮發性記憶體或其某一組合。
儲存於主機記憶體320中的為主機指令326及虛擬暫存器結構定義350。在一些實施例中,虛擬暫存器結構定義350為儲存於嵌入式控制器之嵌入式記憶體中之虛擬暫存器結構定義250的精確複本。在其他實施例中,虛擬暫存器結構定義350可實質上對應於虛擬暫存器結構定義250,以便結構定義350可用於確定可作為虛擬暫存器自外部存取的存在於嵌入式控制器中的記憶體位址中之一些(若不是全部)。換言之,在一些實施例中,虛擬暫存器結構定義350僅包含含於虛擬暫存器結構定義250中之資訊的一子集。虛擬暫存器結構定義350可位於程式指令326的外部,而在其他實施例中,虛擬暫存器結構定義350可位於指令326內。也可存在其某一組合。
主機指令326可由主機處理器310執行,以使用虛擬暫存器結構定義350來確定嵌入式控制器的嵌入式記憶體中之一或多個記憶體位址。主機指令326可執行以自對應於嵌入式控制器的嵌入式記憶體的儲存位置的一或多個虛擬暫存器中讀取資料或將資料儲存於該一或多個虛擬暫存器中。在一些實施例中,主機指令326可執行以使用直接記憶體存取讀取資料或儲存資料。然而,主機指令不限於此方面,且可使用熟習此項技術者能夠想到的任何技術來存取記憶體位置230中的資料。
現在轉至圖4,其展示電腦系統實施例400,包含嵌入式控制器200、主機處理器310、主機系統記憶體320、北橋集線器470以及南橋集線器471。注意,除了另外指示,圖4中之結構的功能性實質上類似於上文參考圖2及圖3中之彼等相同結構所描述的功能性。
在電腦系統400中,嵌入式控制器200耦接至匯流排260,在一些實施例中,匯流排260可為低引線數匯流排。匯流排260經由南橋集線器471及北橋集線器470將控制器200連接至主機處理器310及主機系統記憶體320。溫度感測器240及風扇裝置245耦接至嵌入式控制器200。然而,嵌入式控制器不限於此方面,其可具有耦接至其之任意數目個感測器240或裝置245。在一些實施例中,北橋470及南橋471可省略,或可被允許嵌入式控制器200連接至主機處理器310及主機記憶體320的其他結構代替。
在圖4所繪示的實施例中,儲存於嵌入式記憶體220內之程式指令226可由嵌入式處理器210執行,以自感測器240或裝置245獲取資料。在一些實施例中,感測器240可為溫度感測器,裝置245可為風扇裝置。程式指令226亦可由嵌入式處理器執行,以使用虛擬暫存器結構定義250將獲取的資料儲存於對應於嵌入式控制器200的一或多個虛擬暫存器的一或多個記憶體位置230中。在其他實施例中,記憶體位置230可自嵌入式控制器200的外部進行存取。在圖4所繪示之實施例中,儲存於主機系統記憶體320內之指令326可由主機處理器310執行,以使用虛擬暫存器結構定義350而自對應於一或多個記憶體位置230的虛擬暫存器中讀取資料,以及將資料寫入至該虛擬暫存器中。注意,結構定義350可為結構定義250的精確複本,或者其可實質上對應於結構定義250,以便結構定義350可用於確定可作為虛擬暫存器自外部存取的存在於嵌入式控制器中的記憶體位址中之一些(若不是全部)。
在一些實施例中,程式指令226亦可由嵌入式處理器210執行,以有選擇地阻止或延遲對複數個記憶體位置230中之一或多者的內容的修改。舉例而言,為了防止或延遲對關鍵資源的修改,可如此做。
***
儘管以上內容描述了特定實施例,但是此等實施例並非意欲限制本發明的範疇,即使在關於一特定特徵僅描述了單個實施例的情形。在本發明中提供的特徵的實例旨在進行說明,而不是限制,除非另有陳述。上述描述旨在涵蓋對受益於本發明的熟習此項技術者而言顯而易見的替代物、修改以及等效物。
本發明的範疇包括在此揭示(顯式地或隱含地)之任何特徵或特徵的組合或其任何概括,無論其是否緩解了在此提出的問題中之任一者或全部。因此,可在本申請案(或主張其優先權的申請案)的訴訟期間將新的申請專利範圍表示成任一此特徵組合。詳言之,參考所附申請專利範圍,獨立項中之特徵可與附屬項中之特徵組合,且各別獨立項中之特徵可按任何合適方式進行組合,並不僅限於所附申請專利範圍中列舉的特定組合方式。
100...先前技術資料表
110...實例結構定義
120...C程式碼
130...C程式碼
200...嵌入式控制器
210...嵌入式處理器
220...嵌入式記憶體
222...嵌入式程式記憶體儲存區
224...資料記憶體儲存區
226...程式指令
230...記憶體位置
240...感測器
245...裝置
250...虛擬暫存器結構定義
260...匯流排
300...例示性主機系統
310...主機處理器
320...主機記憶體
326...主機指令
350...虛擬暫存器結構定義
400...電腦系統實施例
470...北橋集線器
471...南橋集線器
圖1A描述虛擬暫存器映射佈局的先前技術;
圖1B描述風扇控制的結構的實例定義;
圖1C展示表示圖1B的結構的C程式碼的實例;
圖1D展示表示虛擬暫存器映射佈局的C程式碼的實例;
圖2為根據一個實施例的嵌入式控制器的方塊圖;
圖3為根據另一實施例的主機系統的方塊圖;及
圖4為根據再一實施例的電腦系統的方塊圖。
200...嵌入式控制器
210...嵌入式處理器
220...嵌入式記憶體
222...嵌入式程式記憶體儲存區
224...資料記憶體儲存區
226...程式指令
230...記憶體位置
240...感測器
245...裝置
250...虛擬暫存器結構定義
260...匯流排
Claims (14)
- 一種記憶體系統,其包含:一嵌入式處理器;一嵌入式記憶體,其耦接至該嵌入式處理器,其中該嵌入式記憶體具有複數個記憶體位置;其中,該嵌入式記憶體儲存一第一虛擬暫存器結構定義,該第一虛擬暫存器結構定義可由該嵌入式處理器使用,以將資料儲存於該複數個記憶體位置之一或多個第一部分處;且其中該複數個記憶體位置之該一或多個第一部分可作為複數個虛擬暫存器而由一主機處理器使用該第一虛擬暫存器結構定義自外部存取。
- 如請求項1之系統,其中該嵌入式記憶體包含:一資料記憶體儲存區,其中該資料記憶體儲存區含有該複數個記憶體位置;及一程式記憶體儲存區,其中該程式記憶體儲存區含有指令,該等指令可由該嵌入式處理器執行以產生該資料。
- 如請求項1之系統,其中該第一虛擬暫存器結構定義可操作以經修改以產生一第二虛擬暫存器結構定義;其中該第二虛擬暫存器結構定義可由該嵌入式處理器使用,以將資料儲存於該複數個記憶體位置之一或多個第二部分處;且其中該複數個記憶體位置之該一或多個第二部分可作 為複數個虛擬暫存器而由一主機處理器使用該第二虛擬暫存器結構定義自外部存取。
- 如請求項1之系統,其進一步包含:複數個感測器及/或複數個裝置,其耦接至該嵌入式記憶體且可操作以獲取該資料。
- 一種電腦可讀記憶體媒體,其包含複數個記憶體位置,其中該電腦可讀記憶體媒體儲存:至少一虛擬暫存器結構定義;及程式指令,其可由一嵌入式處理器執行且可配合該至少一虛擬暫存器結構定義進行操作,以將環境監測資料儲存於該複數個記憶體位置之一或多個特定位置中;其中該複數個記憶體位置之該一或多個特定位置可作為複數個虛擬暫存器而由一主機處理器使用該至少一虛擬暫存器結構定義自外部存取。
- 如請求項5之電腦可讀記憶體媒體,其中該等程式指令可由該嵌入式處理器執行,以在將該環境監測資料儲存於該複數個嵌入式記憶體位置之該一或多個特定位置中之前產生該資料。
- 一種記憶體系統,其包含:一主機處理器,其耦接至一主機記憶體;其中該主機記憶體含有:至少一虛擬暫存器結構定義;及指令,其可由該主機處理器執行且可配合該至少一虛擬暫存器結構定義進行操作,以自一嵌入式控制器之 一或多個虛擬暫存器中讀取資料;其中對於該虛擬暫存器中之每一者,該至少一虛擬暫存器結構定義可由該主機處理器使用,來為該嵌入式控制器之彼虛擬暫存器確定一特定記憶體位置之一相應記憶體位址。
- 如請求項7之系統,其中,該等指令可執行以使用直接記憶體存取自該嵌入式控制器之該一或多個虛擬暫存器中讀取資料。
- 如請求項8之系統,其中,該等指令可執行以使用直接記憶體存取將資料儲存於該嵌入式控制器之該一或多個虛擬暫存器中。
- 一種電腦可讀記憶體媒體,其儲存:一虛擬暫存器結構定義,其含有指示一嵌入式控制器內之一或多個特定記憶體位置的資訊,該一或多個特定記憶體位置對應於該嵌入式控制器之複數個虛擬暫存器;及程式指令,其可由一主機處理器執行且可配合該虛擬暫存器結構定義進行操作,以自該嵌入式控制器之該複數個虛擬暫存器中讀取資料。
- 如請求項10之電腦可讀記憶體媒體,其中該等指令可由該主機處理器執行,以將資料儲存於該嵌入式控制器之該複數個虛擬暫存器中;且其中該等指令可由該主機處理器執行,以使用直接記憶體存取而自該複數個虛擬暫存器中讀取資料或將資料 儲存於該複數個虛擬暫存器中。
- 一種電腦系統,其包含:一主機處理器,其耦接至一主機記憶體;及一嵌入式控制器,其包含耦接至嵌入式記憶體之一嵌入式處理器;其中該主機記憶體及該嵌入式記憶體各含有至少一虛擬暫存器結構定義;其中該主機記憶體含有主機指令,該等主機指令可由該主機處理器執行並可配合含於該主機記憶體中之該至少一虛擬暫存器結構定義進行操作,以自複數個虛擬暫存器中讀取資料,該複數個虛擬暫存器對應於該嵌入式控制器之該嵌入式記憶體中之一或多個位置。
- 如請求項12之系統,其進一步包含:複數個溫度感測器,其耦接至該嵌入式控制器;其中該嵌入式記憶體含有嵌入式指令,該等嵌入式指令可由該嵌入式處理器執行並可配合含於該嵌入式記憶體中之該至少一虛擬暫存器結構定義進行操作,以自該複數個溫度感測器中獲取資料,並將該獲取的資料儲存於該複數個虛擬暫存器中之一或多者中。
- 如請求項12之系統,其中該等主機指令可由該主機處理器執行,以試圖將資料儲存於該複數個虛擬暫存器中;且其中該嵌入式記憶體含有嵌入式指令,該等嵌入式指令可由該嵌入式處理器執行,以有選擇地阻止對該複數個虛擬暫存器中之一或多者之內容的修改。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/389,791 US8122205B2 (en) | 2009-02-20 | 2009-02-20 | Structured virtual registers for embedded controller devices |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201035758A TW201035758A (en) | 2010-10-01 |
TWI416324B true TWI416324B (zh) | 2013-11-21 |
Family
ID=42631915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099105033A TWI416324B (zh) | 2009-02-20 | 2010-02-22 | 用於嵌入式控制器裝置之結構化虛擬暫存器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8122205B2 (zh) |
TW (1) | TWI416324B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145655A1 (en) * | 2009-12-11 | 2011-06-16 | Mike Erickson | Input/output hub to input/output device communication |
US11435811B2 (en) * | 2019-12-09 | 2022-09-06 | Micron Technology, Inc. | Memory device sensors |
JP6998436B1 (ja) * | 2020-10-19 | 2022-01-18 | レノボ・シンガポール・プライベート・リミテッド | 情報処理装置、情報処理システム、及び制御方法 |
CN112948242A (zh) * | 2021-02-23 | 2021-06-11 | 深圳宝新创科技股份有限公司 | 嵌入式控制器的调试方法、终端设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205272A1 (en) * | 2003-03-31 | 2004-10-14 | International Business Machines Corporation | Apparatus and method for virtualizing interrupts in a logically partitioned computer system |
WO2007023458A2 (en) * | 2005-08-22 | 2007-03-01 | Nxp B.V. | Controlling embedded memory access |
US20090000227A1 (en) * | 2007-06-28 | 2009-01-01 | Nordex Energy Gmbh | Wind energy plant tower |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5920881A (en) | 1997-05-20 | 1999-07-06 | Micron Electronics, Inc. | Method and system for using a virtual register file in system memory |
US7210026B2 (en) | 2002-06-28 | 2007-04-24 | Sun Microsystems, Inc. | Virtual register set expanding processor internal storage |
US7076708B2 (en) | 2003-09-25 | 2006-07-11 | International Business Machines Corporation | Method and apparatus for diagnosis and behavior modification of an embedded microcontroller |
US20060253659A1 (en) | 2005-05-05 | 2006-11-09 | International Business Machines Corporation | Method and virtual port register array for implementing shared access to a register array port by multiple sources |
US7945721B1 (en) * | 2006-08-11 | 2011-05-17 | Oracle America, Inc. | Flexible control and/or status register configuration |
JP5085180B2 (ja) | 2007-04-24 | 2012-11-28 | 株式会社東芝 | 情報処理装置およびアクセス制御方法 |
US7743177B2 (en) * | 2007-06-29 | 2010-06-22 | Sirf Technology Holdings, Inc. | High sensitivity global navigation satellite system (GNSS) receiver platform having DMA controller for transferring between internal and external memory |
-
2009
- 2009-02-20 US US12/389,791 patent/US8122205B2/en active Active
-
2010
- 2010-02-22 TW TW099105033A patent/TWI416324B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205272A1 (en) * | 2003-03-31 | 2004-10-14 | International Business Machines Corporation | Apparatus and method for virtualizing interrupts in a logically partitioned computer system |
TW200506611A (en) * | 2003-03-31 | 2005-02-16 | Ibm | Apparatus and method for virtualizing interrupts in a logically partitioned computer system |
WO2007023458A2 (en) * | 2005-08-22 | 2007-03-01 | Nxp B.V. | Controlling embedded memory access |
US20090000227A1 (en) * | 2007-06-28 | 2009-01-01 | Nordex Energy Gmbh | Wind energy plant tower |
Also Published As
Publication number | Publication date |
---|---|
US20100217957A1 (en) | 2010-08-26 |
TW201035758A (en) | 2010-10-01 |
US8122205B2 (en) | 2012-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2997477B1 (en) | Page table data management | |
KR100944563B1 (ko) | 변환 색인 버퍼의 확장 페이지 테이블에의 동기화 | |
TWI499909B (zh) | 階層式不可改變的內容可定址的記憶體處理器 | |
US7370160B2 (en) | Virtualizing memory type | |
TWI516930B (zh) | 對一範圍之分錄進行轉譯後備緩衝器無效化的方法與裝置 | |
JP5348429B2 (ja) | 持続性メモリのためのキャッシュコヒーレンスプロトコル | |
CN109154907B (zh) | 在输入-输出存储器管理单元中使用多个存储器元件来执行虚拟地址到物理地址转译 | |
JP5778296B2 (ja) | 仮想計算機システム、仮想化機構、及びデータ管理方法 | |
US11307993B2 (en) | Dynamic remapping of virtual address ranges using remap vector | |
JP2013174975A (ja) | メモリシステムとそのデータ書き込み方法 | |
TWI416324B (zh) | 用於嵌入式控制器裝置之結構化虛擬暫存器 | |
JP2007048296A (ja) | 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム | |
JP4763598B2 (ja) | プロセッサおよびデバイス | |
TW201039349A (en) | Data accessing method for flash memory and storage system and controller using the same | |
JP2009514043A5 (zh) | ||
JP4735765B2 (ja) | Linuxプログラム起動システム | |
GB2466695A (en) | Processor and prefetch support program | |
JP2010092113A (ja) | 記憶装置、電子装置、および、データ管理方法 | |
JP2021515307A (ja) | 処理回路上で実行されるべきプログラムをデバッグするときにメタデータにアクセスする方法 | |
CN110858145B (zh) | 一种Linux操作系统下BIOS的更新方法和装置 | |
CN115904513A (zh) | 一种设备资产信息处理方法、装置、设备及可读存储介质 | |
CN116820849A (zh) | 内存spd读写测试方法、装置、电子设备和存储介质 | |
WO2017020194A1 (zh) | 一种文件系统保护方法、装置及存储设备 | |
JP2018151692A (ja) | 計算機及びアプリケーション管理方法 | |
JPH05265799A (ja) | データ処理装置 |