TWI695266B - 中斷產生單元 - Google Patents
中斷產生單元 Download PDFInfo
- Publication number
- TWI695266B TWI695266B TW105114116A TW105114116A TWI695266B TW I695266 B TWI695266 B TW I695266B TW 105114116 A TW105114116 A TW 105114116A TW 105114116 A TW105114116 A TW 105114116A TW I695266 B TWI695266 B TW I695266B
- Authority
- TW
- Taiwan
- Prior art keywords
- event
- interrupt
- generating unit
- register
- ppi
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Microcomputers (AREA)
- Programmable Controllers (AREA)
- Bus Control (AREA)
Abstract
一微控制器(2)具有一處理器(6)、周邊設備(18、20、22、24、26)、一可程式周邊互連(PPI)(10)、一事件產生單元(EGU)(17)及一記憶體(8)。周邊設備回應來自PPI的工作信號。EGU透過通報一事件至PPI,來回應一事件產生暫存器(57、59)的內容的一預定改變。所儲存的PPI映射可將一EGU事件映射至周邊設備其中之一的一工作。自一EGU事件至二或二以上的周邊工作的映射造成PPI透過在一最大時間限制內傳送各別的工作信號,來回應來自EGU的一事件信號。在記憶體中的軟體包括指令,以在一映射記憶體中儲存該映射,及形成事件產生暫存器內容的預定改變。在另一觀點中,一中斷產生單元(17)經配置以傳送一中斷至處理器(6),以回應對於來自PPI(10)的工作信號的接收。
Description
本發明係關於一種微控制器。
微控制器時常用於重視計時的應用,例如無線電裝置。存在某些場合,重視的是包含一或一以上的周邊設備的二工作實質上同時被在一微控制器上的一處理器啟動。裝置例如必須透過串列介面啟動通信,並準確地同時開始一計時器。通常會透過指示處理器啟動多個工作的第一個,接著立即指示其啟動其他工作而完成此事。然而,即使使用接續的軟體指令而實現此事,處理器仍可能在觸發第一工作後,而在觸發第二工作前,接收一中斷。如此可能引起不想要的作用。
此問題可透過在關鍵時間遮罩某些中斷,或設定不同優先性於不同中斷,在一定程度上獲得緩解。然而,此等方法均不完美,甚至對於軟體引進額外的複雜性。
本發明提供一替代方法。
自一第一觀點,本發明提供一種微控制器,包括:一處理器;複數周邊設備;
一可程式周邊互連;一事件產生單元;及一記憶體,其儲存軟體,其中:事件產生單元包括一事件產生暫存器,其可透過處理器定址;事件產生單元連接至可程式周邊互連;且事件產生單元經配置以偵測事件產生暫存器內容的一預定改變,並通報一事件至可程式周邊互連,以回應對於此一預定改變的偵測;各周邊設備連接至可程式周邊互連;各周邊設備經組態以透過執行一各別的工作,回應來自可程式周邊互連的一工作信號;可程式周邊互連經組態以存取一映射記憶體,其中可儲存複數映射,各將事件產生單元的一事件映射至周邊設備其中之一的一工作;可程式周邊互連經組態使得,當自事件產生單元的一事件至周邊設備其中之一的一工作的一映射被儲存在映射記憶體中時,可程式周邊互連會透過傳送一工作信號至周邊設備,回應來自事件產生單元的事件的一信號;可程式周邊互連經組態使得,當映射記憶體儲存自事件產生單元的一事件至二或二以上的不同工作的映射時,可程式周邊互連會自接收事件的一信號起,在一預定最大時間內傳送二或二以上的各別的工作信號;及軟體包括指令,其可透過處理器執行,以(i)將自事件產生單元的一事件至至少二不同周邊設備的工作的映射儲存在映射記憶體中,並(ii)形成事件產生暫存器內容的預定改變。
故本技術領域中具有通常知識者當理解,根據本發明,當被執行時,軟體將原子性地(atomically)且在一預定最大時框中觸發二或二以上的周
邊設備工作。由於只有一單一處理器寫入指令用於啟動周邊設備工作,觸發一處理器中斷所中斷的二工作就沒有風險了。
預定最大時間可具有任何值,但較佳為10微秒以下;更佳為1微秒以下;最佳為0.1微秒以下。其較佳為足夠低以至於二或二以上的工作在實用目的上可視為同時觸發。預定最大時間可少於100處理器時脈週期;較佳可少於10或5時脈週期。在某些實施例中,其可少於一處理器時脈週期。對於各種可能的映射,預定最大時間較佳為固定。可程式周邊互連較佳經配置以同時傳送二或二以上的各別工作信號(例如,在提供至可程式周邊互連或提供至處理器的一時脈信號的一週期內)。此時,對於各種可能的映射,在可程式周邊介面接收一事件的一信號及傳送映射至該事件的二或二以上的工作信號之間,較佳存在一固定時間延遲。
可程式周邊互連是已知的,例如,如本發明人的專利案WO 2013/088121所述者。在某些較佳實施例中,可程式周邊互連實質上相同於專利案WO 2013/088121所述的一可程式周邊互連,雖非必要,但在此併入其整體內容作為參考。
可程式周邊互連較佳亦支援周邊設備至周邊設備通道的編程。在某些實施例中,微控制器亦包括一或一以上的周邊設備,其會產生事件,經組態以通報一事件至可程式周邊互連(PPI)。可程式周邊互連較佳經配置使得在一第一周邊設備的一事件及一第二周邊設備的一工作之間一映射被儲存,並使得,當在一第一周邊設備的一事件及一第二周邊設備的一工作之間一映射被儲存在記憶體中時,互連會透過傳送一工作信號至第二周邊設備來提供一通道,以回應來自第一周邊設備的事件的一信號。藉此,如同介接一事件產生周邊設備,可程式周邊互連可便於介接事件產生單元。在某些實施例中,事件產生單元可作為一種事件產生周邊設備。
周邊設備不限於任何特別類型,並可包括例如:一計時器、一UART、一電壓比較器、一加密引擎、一類比至數位轉換器(ADC)、一數位至類比轉換器(DAC)、一無線電傳送器、一無線電接收器等周邊設備。一事件可自一周邊設備通報,以回應任何輸入、狀態改變、一條件滿足等本領域中具有通常知識者所熟知者,例如,當一計時器到達一目標值。工作可為任何透過周邊設備執行的功能或操作,例如透過一介面傳輸資料。
事件產生單元可經配置以通報只有一單一類型的事件,但較佳可通報複數不同事件。其等可透過各別不同事件線,或使用各別不同事件暫存器被通報。事件產生單元可具有複數事件產生暫存器,其可透過處理器定址。各事件產生暫存器可相關聯於一各別不同事件。不同事件較佳在一儲存映射中可被唯一地識別,例如,透過使用事件產生暫存器的位址作為一識別元,或透過使用其他預定組的識別元。
當理解的是,不像是一習知周邊設備,其事件表示周邊設備的狀態的某種改變(例如,某種操作的完成),來自事件產生單元的一事件不具有固有意義,反之,是透過產生其的處理器(或其他元件)以寫入事件產生暫存器的方式而被賦予意義的。
PPI可透過用於各事件及工作的各別的線來連接至周邊設備及/或事件產生單元,事件及工作信號可透過其等傳送;亦即各事件或工作均有一線。信號可為脈衝或編碼值。輸入線可連接至在PPI內的一或一以上的多工器;例如各通道均有一多工器。輸出線可延伸自在PPI內的一或一以上的解多工器;例如各通道均有一解多工器。PPI可經組態以根據儲存在記憶體中的一映射設定或控制一通道的一多工器及一解多工器。
在某些實施例中,PPI可透過匯流排,例如透過使用記憶體映射輸入/輸出(MMIO)的位址匯流排存取周邊設備及/或事件產生單元的工作暫存器
或事件暫存器或兩者。故PPI可透過相關聯事件暫存器內容的一改變來接收一事件信號及/或可透過改變相關聯工作暫存器內容來傳送一工作信號。PPI可連接至一匯流排(例如可包括一位址匯流排、資料匯流排及控制匯流排的一系統匯流排),其亦連接至處理器。相同匯流排可連接周邊設備及/或事件產生單元至處理器。PPI可透過在間隔中讀取事件暫存器來偵測一事件暫存器內容的一改變;例如定期輪詢(regular polling),或透過接收來自事件產生周邊設備或事件產生單元的一中斷。當接收一中斷時,PPI可接著讀取一對應事件暫存器內容。
一事件暫存器或工作暫存器可包括一單一位元(亦即用於通報旗標或二進位信號),或可包括複數位元,例如8、16或32位元。
事件產生單元可透過事件信號線通報一事件至可程式周邊互連(PPI)。或者,其可透過暫存器的一改變來通報事件,此時PPI可經組態以在間隔中輪詢暫存器以偵測改變。此暫存器可為事件產生暫存器本身或用於事件產生單元的一分開的事件暫存器。
在某些實施例中,在一映射中的一工作的識別為一工作暫存器的位址,其相關聯於該工作,如專利案WO 2013/088121所述者,但並非必要,而一工作接收周邊設備的一工作的識別例如可包括(i)一周邊設備識別元及(ii)一工作識別元或信號線識別元,其等無關於任何相關聯工作暫存器(其未必存在周邊設備上)的位址。
一工作接收周邊設備可包括一工作暫存器,其可透過處理器定址,相關聯於一工作,並經組態以執行該工作,以回應工作暫存器內容的一改變。一第一周邊設備的一事件及一第二周邊設備的一工作的一映射接著包括(i)第一周邊設備的事件的一識別,及(ii)相關聯於工作的一工作暫存器位址。PPI可經組態使得,當在一第一周邊設備的一事件及一第二周邊設備的一工作之間
一映射被儲存在記憶體中時,互連會透過傳送一工作信號至第二周邊設備來提供一通道,以回應來自第一周邊設備事件的一信號。
事件產生周邊設備可包括一事件暫存器,其可透過處理器定址,並相關聯於一事件。雖然事件暫存器在一積體電路上可位在於相關聯於周邊設備的邏輯的直接相鄰處,但此並非必要,其可位在相距周邊設備的其他元件某種距離處;對於工作暫存器亦同。暫存器可包括任何適合的記憶體結構。當通報一事件時,周邊設備可改變事件暫存器內容;例如,當其通報一事件時,透過寫入一二進位'1'至事件暫存器。
在某些實施例中,在一映射中的一第一周邊設備的一事件的識別為相關聯於事件的一事件暫存器的位址。藉此,一通道可透過在記憶體中儲存二暫存器位址被簡單地組態:一事件暫存器位址及一工作暫存器位址。在處理器上執行的軟體可透過一函式呼叫或直接寫入位址至儲存映射的記憶體而完成之,但並非必要,然而,第一周邊設備的事件的識別可包括一周邊設備識別元及一事件或信號線識別元,其等無關於未必存在的任何相關聯事件暫存器位址。
事件產生單元較佳包括至少一事件暫存器,其可透過處理器定址,相關聯於事件產生單元的一事件。在某些實施例中,事件產生暫存器為事件暫存器。在其他實施例中,事件暫存器與事件產生暫存器分開(亦即,具有一不同位址)。單元可經組態使得事件產生暫存器的一預定改變可導致事件暫存器的一預定改變。在某些實施例中,事件產生暫存器可為用於事件產生單元的一工作暫存器。事件產生單元可包括複數事件產生暫存器及複數事件暫存器。各事件產生暫存器可為相關聯於事件暫存器之一各別者,使得事件產生暫存器其中之一的改變導致事件暫存器之一相關聯者的一改變。
事件產生單元可包括將二或二以上的事件產生暫存器相關聯於一事件的邏輯,例如,在通報一特別事件前,要求在二不同事件產生暫存器中的
預定改變,可能以一預定順序為之。換句話說,事件產生單元可包括邏輯,用於當或只當有關於二或二以上的事件產生暫存器的一條件被滿足時,傳送一事件信號。該邏輯可為固定的(亦即,硬佈線的),或可程式的。
在某些實施例中,事件產生單元可自可程式周邊互連(例如透過一工作線,或透過事件產生暫存器內容的一改變)接收一工作信號,並透過通報一事件至可程式周邊互連回應。如此對於若事件產生單元亦經組態以當通報一事件時傳送中斷至處理器的情況很有用,以下將更詳細地說明。
如同一事件產生周邊設備的一事件被識別的方式,事件產生單元的一事件可在一映射中被識別,例如透過一相關聯事件暫存器的位址,或透過對於事件具有唯一性的其他識別元。
PPI是可程式的,意即其可經程式或組態以定義在使用一或一以上的映射的周邊設備之間的連接。PPI不必包括其本身用於執行軟體指令的一處理單元,但如此亦無不可。
在映射記憶體中的一映射可採取任何適合的形式。在某些實施例中,一事件暫存器位址及一工作暫存器位址,或此等暫存器的指標可被儲存為在一陣列、表或資料庫中的有關項(entry)。例如,PPI可持有一表,其具有一數目的列,各對應至一不同通道,及二行,其第一行用於識別一事件暫存器,而第二行用於識別一工作暫存器。當理解的是,該一陣列或表可為一邏輯結構,且不必限於在記憶體中的資料的任何特別實體位置。PPI可包括一第一組暫存器,用於儲存工作暫存器位址,及一第二組暫存器,用於儲存事件暫存器位址。各組可存在一相等數目的暫存器。第一組的一暫存器可控制一多工器,其連接至透過第二組的一對應暫存器控制的一解多工器,因而定義一通道。
記憶體可與PPI分開,例如處在矽的分開的區域或處在不同晶片,但較佳為PPI的積體元件,其可減少存取時間。記憶體可為揮發性的(例如RAM)
或非揮發的(例如EEPROM或快閃記憶體)。映射較佳被儲存在較佳可透過處理器定址的一或一以上的暫存器中。PPI提供的各通道可具有一相關聯事件端點暫存器及一相關聯工作端點暫存器,其可各別地適於儲存事件暫存器的位址及工作暫存器的位址。某些通道可使用此等暫存器以儲存其他類型的事件及/或工作識別元。
映射可透過PPI或處理器或兩者被寫入至記憶體。處理器可透過指示PPI儲存適當的映射間接建立在周邊設備之間的一通道。
PPI較佳包括或可存取一或一以上的查找表,其可用於自一映射查找一暫存器位址,以決定對應至暫存器位址的一特別事件線或工作線(或事件埠或工作埠)。其可接著選擇線或埠作為用於一通道的輸入或輸出(例如透過適當地控制一多工器或解多工器)。查找表可採取任何適合的形式,且不必被實現為在記憶體中的一實體表。
PPI可支援任何數目的通道;例如1、8、16、32以上。一通道可為在前往PPI的一事件輸入埠或線及來自PPI的一工作輸出埠或線之間的任何實體(例如電性)或邏輯的連接。一通道可連結一或一以上的輸入至一或一以上的輸出(例如使用邏輯閘以沿著通道路徑定義分支或岔路)。
PPI較佳包括啟用及/或停用一通道的一機制。PPI可包括一位元欄位暫存器,具有相關聯於各通道的一位元,並經組態使得若其在位元欄位暫存器中的相關聯的位元被設定至一預定值(例如一二進位1),則一通道被啟用。
一事件產生周邊設備可具有多於一事件暫存器。相似地,一工作接收周邊設備可具有多於一工作暫存器。
如上所述,PPI可經配置以透過傳送二或二以上的工作信號,回應一事件信號,可能至不同工作接收周邊設備。在某些實施例中,此可透過在映射記憶體中儲存複數映射關係,各將事件(例如,透過一事件暫存器位址識別
者)映射至一各別不同工作(例如,透過各別的工作暫存器位址識別者)而完成之。在其他實施例中,此可透過儲存將一事件直接映射至二或二以上的工作的一單一映射關係而完成之;例如透過儲存在映射記憶體中的一表,其包括三或三以上的行,其一用於事件,而另外二或二以上的行用於各別的工作。
事件產生單元較佳只有前往PPI的一或一以上的事件線、前往處理器的零或零以上的中斷線及零或零以上的暫存器,而沒有其他輸出。其較佳只有一時脈輸入、一或一以上的暫存器及零或零以上的工作線,而沒有其他輸入。事件產生單元典型地比一習知周邊設備更簡單。就其元件數目或其閘數目而言,其較佳小於在微控制器上的任何其他周邊設備。其較佳不具有計時機制(不像是一計時器周邊設備)。其較佳只有零或零以上的事件暫存器、工作暫存器及組態暫存器(不像是一串列介面,或數位至類比轉換器,其例如具有用於接收及傳輸任意資料而前往其他元件或裝置的連接),而不具有其他資料輸入機制。
事件產生單元可包括電路,用於當通報一事件時,傳送一中斷至處理器。中斷可為一可遮罩中斷或一不可遮罩中斷。其可具有一輸入,用於當通報一特別事件時,啟用及/或停用前往處理器的一中斷的傳送。事件產生單元可包括一或一以上的組態暫存器,用於組態事件產生單元,以當其偵測事件產生暫存器內容的一改變時,傳送一中斷至處理器。單元可包括用以各別地組態可遮罩及不可遮罩中斷的分開的組態暫存器。
當事件產生單元包括用於自可程式周邊介面接收一工作信號的一輸入時,傳送一中斷至處理器的能力就特別有用。此接著使可程式周邊介面經程式使得在一周邊設備上的一事件可導致事件產生單元傳送一中斷至處理器。如此對於若周邊設備無法傳送一中斷本身,或周邊設備被指派只有一有限數目的中斷(例如,一中斷),表示來自周邊設備的所有中斷均必須在一有限數目
的中斷服務常式(例如,一中斷服務常式)中處理的情況很有用。反之,透過PPI及事件產生單元傳送一中斷至處理器,周邊設備可有效增加其所可傳送至處理器的不同中斷數目(例如具有不同中斷數目)。如此可簡化中斷服務常式的編程。對於支援不同優先程度的中斷的處理器,亦可啟用一周邊設備給複數不同中斷程度的中斷處理器,其可大於周邊設備可不透過事件產生單元來存取的中斷程度數目。
例如,一周邊設備可具有稱為"NEWVALUE"的一事件,其每100us發生,及稱為"ERROR"的另一事件,其僅當某種事物出錯時通報。然而,周邊設備可只具有前往處理器的一中斷線,對於"ERROR"事件,無法達成一高優先性的中斷。然而,透過組態在周邊設備及事件產生單元之間的一PPI通道使得來自周邊設備的"ERROR"事件的一信號會導致PPI啟動(activate)在事件產生單元上的一工作線,並透過設定事件產生單元以當其透過工作線接收一信號時傳送高優先性的中斷至處理器時,周邊設備可提供有傳送一"ERROR"中斷至高優先性的處理器的能力。如此可使處理器快速回應"ERROR"事件。
在某些實施例中,微控制器可包括複數事件產生單元,各透過一組中斷線連接至處理器,各組具有一各別不同中斷優先程度。或者,一事件產生單元可具有一或一以上的工作(或事件),其可用於傳送一第一優先程度的一中斷,及一或一以上的其他工作(或事件),其可用於傳送一第二優先程度的一中斷。工作(或事件)及中斷優先程度的關聯可為固定的或可組態的(例如,根據在事件產生單元上的一或一以上的暫存器值)。
使用連接至可程式周邊互連以產生處理器中斷的一單元的想法在本質上是新穎且進步的,故自一更進一步的觀點,本發明提供一種微控制器包括:一處理器;
複數周邊設備;一可程式周邊互連;及一中斷產生單元,其中:周邊設備的一事件產生周邊設備經組態以通報一事件至可程式周邊互連;中斷產生單元經配置以傳送一中斷至處理器,以回應對於來自可程式周邊互連的一工作信號的接收;可程式周邊互連經組態以存取一記憶體,其可在(i)一第一周邊設備的一事件及(ii)中斷產生單元或一第二周邊設備的一工作之間儲存一映射;及可程式周邊互連經組態使得,當在一第一周邊設備的一事件及中斷產生單元的一工作之間一映射被儲存在記憶體中時,可程式周邊互連會透過傳送用於工作的一工作信號至中斷產生單元,來回應來自第一周邊設備事件的一信號。
任何上述觀點及實施例的任何特徵亦可為此觀點的一特徵。特別地,中斷產生單元可為一事件產生單元。其可因此經配置以偵測一事件產生暫存器內容的一預定改變,並通報一事件至可程式周邊互連,以回應對於該一預定改變的偵測。其可為上述的一事件產生單元。中斷產生單元可具有此處所述的事件產生單元的任何特徵。可程式周邊互連(PPI)可具有上述的PPI的任何特徵。
中斷產生單元可透過一工作線連接至可程式周邊互連,並可透過工作線傳送工作信號。或者,其可寫入至一工作暫存器,其透過可程式周邊互連監控。
事件產生周邊設備可經組態以透過一事件線通報一事件至可程式周邊互連。或者,其可寫入至一事件暫存器,其透過可程式周邊互連監控。
中斷產生單元較佳經配置以自接收工作信號起,較佳在一預定最大時間內,或在接收一工作信號後,在一固定時間延遲內,傳送中斷,以直接回應對於一工作信號的接收。
微控制器可包括一記憶體儲存軟體,軟體包括指令,其可透過處理器執行,以將自事件產生周邊設備的一事件至中斷產生單元的一工作的一映射儲存在映射記憶體中。
在任何觀點中,雖然事件產生暫存器或暫存器被認為事件產生單元的一部分,當理解的是,此不限於其等在微控制器上的實體位置。事件產生暫存器較佳可透過處理器定址,例如透過匯流排。其等較佳可透過處理器被寫入及/或讀取。各事件產生暫存器可佔據記憶體的一相鄰區域,或可分開在複數位置。此處所謂一暫存器可為只有一單一位元長度(可能不超過一較大的位元欄位),或可包括複數位元(例如一32位元字組)。
微控制器較佳包括揮發性的及/或非揮發的記憶體,例如RAM及/或快閃記憶體。記憶體的一部分可儲存程式碼。
處理器可為任何適合的處理器。在某些實施例中,其為ARMTM的一處理器,例如ARMTM的CortexTM系列的一處理器。微控制器可包括複數匯流排,例如一處理器匯流排及一周邊設備匯流排。事件產生單元較佳連接至一或一以上的匯流排。
微控制器較佳為一積體裝置,當然亦可具備某些晶片外(off-chip)元件,例如一石英振盪器、電容器等,以進行操作。此等元件可視為微控制器的一部分,或有別於微控制器。
中斷或事件產生單元在微控制器中較佳為分開的硬體模組,而有別於處理器。中斷或事件產生單元可包括類比及/或數位元件,包括電晶體、電
阻器、電容器等,經配置以提供此處所述的功能。微控制器當然可具有不透過一工作線連接至可程式周邊互連或不透過一事件線連接的其他周邊設備。
在某些實施例中,微控制器包括無線電收發機。其可為無線電單片(on-a-chip)裝置。
本發明的某些較佳實施例只是舉例地被描述,參考附圖,其中:
2:微控制器
6:中央處理單元
8:主記憶體
10:PPI
12:邏輯區域
14:內部記憶體
16:匯流排
17:事件產生單元
18:計時器
20:數位至類比轉換器
22:UART
24:硬體加密引擎
26:電壓比較器
28、30、32:暫存器
36、38、40、42:暫存器
44、46、48、50:暫存器
52、54:暫存器
56:暫存器
57、59、61、63:暫存器
64、74、76:線
66、72、78:暫存器
68:邏輯OR閘
70:核心
80:開關
圖1為顯示實施本發明的第一系統的元件的示意圖;圖2為在周邊設備暫存器之間儲存映射的記憶體結構表;圖3為在實現本發明的第二系統中的連接至PPI的若干周邊設備的示意圖;圖4為在PPI內的特別通道的有關元件的示意圖;及圖5為顯示事件產生單元的示意圖。
圖1顯示一微控制器(MCU)2(例如積體電路或多晶片模組),其包括中央處理單元(CPU)6、主記憶體8,及具有一邏輯區域12及一內部記憶體14的PPI 10。CPU 6及PPI 10均連接至匯流排16。
同樣連接至匯流排16的是一事件產生單元17及示例的五周邊設備:一計時器18、一數位至類比轉換器(DAC)20、一UART 22、一硬體加密引擎24、一電壓比較器26。
計時器18具有一輸出事件暫存器28、一溢位事件暫存器30及一輸入工作暫存器32。DAC 20具有二轉換完成事件暫存器36、38及二觸發工作暫存器40、42。UART 22具有一RX接收事件暫存器44、一TX完成事件暫存器46、一
RX觸發工作暫存器48及一TX觸發工作暫存器50。硬體加密引擎24具有一加密完成事件暫存器52及一觸發工作暫存器54,而電壓比較器26具有一單一比較器輸出事件暫存器56。某些暫存器為單一位元暫存器,而其他可容納一多位元值。當然,其他實施例可具有不同周邊設備,而周邊設備可具有任何數目的事件或工作暫存器。
事件產生單元17具有一第一事件暫存器57、一第二事件暫存器59、一第一工作暫存器61及一第二工作暫存器63。當然,其他實施例可具有不同數目的事件或工作暫存器。在本實施例中,事件產生單元17經配置使得第一工作觸發第一事件,並使得第二工作觸發第二事件。在其他實施例中,可存在更複雜的邏輯以映射工作至事件。
周邊設備18-26及事件產生單元17的暫存器與主記憶體8及PPI記憶體14分享一記憶體定址空間,使得其等可透過PPI邏輯12及選擇性地透過CPU 6來使用記憶體映射I/O而被存取。
匯流排16可為一單一匯流排,如圖所示,或可形成自二或二以上的分開的匯流排。
在使用上,CPU 6例如可指示PPI 10產生通道,以連接DAC 20轉換完成事件之一至UART 22的觸發工作,使得UART 22在一DAC轉換完成後傳輸資料。當接收此指令時,PPI 10在容納於其記憶體14的一表中產生一新的項,以連結DAC 20轉換完成暫存器36的位址及UART 22觸發工作暫存器48的位址。
CPU 6亦例如可指示PPI 10產生一通道,以連接事件產生單元17的第一事件暫存器57至UART 22的TX觸發工作暫存器50,及另一通道,以連接事件產生單元17的相同第一事件暫存器57至計時器18的輸入工作暫存器32。藉此,當UART 22透過寫入一'1'位元至事件產生單元17的第一工作暫存器61來開啟一傳
輸的同時,CPU 6可開啟計時器18。此程序是原子性的(atomic),亦即不會被一CPU 6的中斷所中斷。
圖2顯示可被儲存在PPI的記憶體14中的示例的邏輯資料結構。其具有一數目的列,各包括一映射數目、事件暫存器位址及工作暫存器位址。
PPI邏輯12經組態以週期性地輪詢在表中的每個事件暫存器,以決定何時改變在暫存器中一值。當一改變被偵測時,PPI邏輯12寫入新的值(或一預定值,例如一二進位'1')至在表中被映射至特別事件暫存器的所有工作暫存器。
PPI邏輯12可選擇性地經組態以在事件暫存器中對於一新的值執行某種處理,而取代寫入一程序結果至一或一以上的工作暫存器。例如,若事件暫存器包括一多位元值,則PPI邏輯12可決定其是否高於之前的值,並根據在記憶體14中的一映射寫入一個一位元至一單一位元工作暫存器。PPI 10可就CPU 6所執行的(若有的話)某種程序而被指示。處理的類型可被儲存為在映射表中的另外一行。
若CPU 6欲撤銷(deactivate)通道,則其可直接將在儲存在PPI的記憶體14中的表中的相關項擦除而完成之。其不必直接指示周邊設備(但在某些情況下,如此當然亦無不可)。
圖3~5係關於一組實施例,其中PPI 10透過用於各個各別的事件及工作信號的個別的線連接至周邊設備18-26及事件產生單元17。此可使用上述的記憶體映射的輸入/輸出作為一替代,或MCU 2可支援兩種通信模式(例如,透過暫存器使CPU 6與周邊設備互動,及透過專線使PPI 10與周邊設備互動)而完成之。
圖3顯示m周邊設備,其連接至一PPI(其可為如上所述相同PPI 10,或一不同PPI)。在此等目的上,事件產生單元17可視為另一周邊設備。PPI
提供n通道,各具有一相關聯事件端點暫存器(EEP)及工作端點暫存器(TEP)。各暫存器可容納在周邊設備其中之一的一暫存器位址。
圖4提供相關聯於n通道之一的元件的細部。各通道具有相似的一組元件。通道的EEP連接至一事件信號查找表,其交互參照一組周邊設備事件暫存器位址及一內部事件線識別元,其有關於在相關聯於通道的PPI中的一多工器(MUX)的輸入之一。PPI經組態以設定MUX選擇相關聯於EEP內含位址的輸入。
相似地,通道的TEP連接至一工作信號查找表,其交互參照一組周邊設備工作暫存器位址及一內部工作線識別元,其有關於在相關聯於通道的PPI中的一解多工器(DEMUX)的輸出之一。PPI經組態以設定DEMUX選擇相關聯於TEP內含位址的輸出。
二周邊設備A、B連接至通道的MUX。其等之一可為一事件產生單元。周邊設備A可提供二事件信號AE0、AE1,各具有其本身的線以進入MUX。周邊設備B可提供一單一事件信號BE0,其亦具有一線以進入MUX。相似的線會連接至其他n-1通道(圖未示)的多工器。
通道的DEMUX連接至三輸出線,其一前往在周邊設備A上的一工作輸入AT0,而其二前往在周邊設備B上的不同工作輸入BT0、BT1。
在PPI中,來自MUX的輸出透過一開關連接至DEMUX的輸入。當開關關閉時,連接形成,使得一事件信號(例如一脈衝)自MUX所選擇的周邊設備之一被傳送至DEMUX,進而到達周邊設備其中之一的一所選擇的工作輸入。開關的狀態透過一暫存器被控制,可透過一CPU(圖未示)被寫入。
在某些替代配置中,一通道可具有多個解多工器,各連接至通道的MUX的輸出。藉此,一單一事件可為分岔的以觸發複數周邊設備工作。
PPI經配置以自接收一輸入事件通道起,在一預定最大時間內,發送工作信號。在某些實施例中,此時間延遲對於所有通道均是固定的。在不同或分岔的通道中的信號被平行處理。
圖5示意地闡明事件產生單元17的內部。
對於一特殊工作n而言,事件產生單元17透過一輸入工作線64連接至PPI 10,一工作信號可沿著其被傳送以觸發工作n。事件產生單元17亦具有相關聯於工作n的一工作暫存器66,若在CPU 6上執行的韌體寫入一二進位'1'至工作暫存器66,則其傳送一信號以觸發工作。當PPI透過工作線64傳送工作信號時,工作暫存器66的內容亦可透過事件產生單元17自動更新。來自PPI的工作線64及指明工作暫存器66的狀態的一輸出在一邏輯OR閘68中被結合並傳送至事件產生單元17的核心70。
在一直接的實施例中,核心70簡單地在一一對一映射中連接各工作n及一各別的事件n。在更複雜的實施例中,核心70可包括將一或一以上的工作相關聯至一或一以上的事件的邏輯,例如,在通報"事件1"前,要求"工作1"及"工作2"均被觸發。
核心70可輸出用於一事件m的一事件信號。此導致一相關聯事件暫存器72的內容改變以指明一事件已被通報(例如,透過將一單一位元暫存器內容自一二進位'0'改變為一二進位'1')。相同事件信號亦透過事件輸出線74離開並被傳送至PPI 10。
事件暫存器72的此改變亦可經組態以導致一信號透過中斷信號線76被傳送至在CPU 6中的一中斷控制器(IntC)。是否傳送中斷信號取決於一中斷啟用暫存器(INTEN)78的狀態,其可透過CPU 6被寫入。若一二進位'1'已被寫入至對應至事件n的一位元位置,則開關80關閉而中斷信號會被傳送。
CPU 6可以一數目的不同方式將事件產生單元17結合於PPI 10。
例如,CPU 6可組態PPI 10以觸發二或二以上的周邊設備工作,以回應對於來自事件產生單元17的用於一事件n的一信號的接收。CPU 6可接著寫入一'1'位元至在事件產生單元17上的工作暫存器66,其會導致事件產生單元17透過第n事件信號線74傳送一事件信號至PPI 10。PPI 10接著會同時且原子性地觸發所有工作。
在另一例中,CPU 6可啟動第m中斷信號線76,並可產生一映射給PPI 10,以建立自一周邊設備的一事件至前往事件產生單元17的第m輸入工作線的一通道。周邊設備可接著透過連接周邊設備至PPI 10的適當的事件線,透過通報事件至PPI 10,導致一中斷被傳送至CPU 6。藉此,周邊設備可自指派至前往CPU 6的其本身的中斷線的一優先性來中斷一不同優先性的CPU 6。
透過描述一以上的特定實施例,而不限於此等實施例,本技術領域中具有通常知識者當理解,本發明已被闡明;在隨後的申請專利範圍中,許多改變及修飾都是可能的。
2:微控制器
6:中央處理單元
8:主記憶體
10:PPI
12:邏輯區域
14:內部記憶體
16:匯流排
17:事件產生單元
18:計時器
20:數位至類比轉換器
22:UART
24:硬體加密引擎
26:電壓比較器
28、30、32:暫存器
36、38、40、42:暫存器
44、46、48、50:暫存器
52、54:暫存器
56:暫存器
57、59、61、63:暫存器
Claims (9)
- 一種微控制器,包括:一處理器;複數周邊設備,包括一事件產生周邊設備;一可程式周邊互連;及一中斷產生單元,其中:該事件產生周邊設備經組態以通報一事件至該可程式周邊互連;該中斷產生單元經配置以傳送一中斷至該處理器,以回應對於來自該可程式周邊互連的一工作信號的接收;該可程式周邊互連經組態以存取一映射記憶體,其可在(i)該事件產生周邊設備的一事件及(ii)該中斷產生單元的一工作之間儲存一映射;及該可程式周邊互連經組態使得,當該事件產生周邊設備的該事件及該中斷產生單元的該工作之間一映射被儲存在該映射記憶體中時,該可程式周邊互連會透過傳送用於該工作的一工作信號至該中斷產生單元,回應來自該事件產生周邊設備的該事件的一信號,因而導致該中斷產生單元傳送一中斷至該處理器,及該中斷產生單元不包含一計時機制,且除了一時脈輸入、一或一以上的暫存器、及零或零以上的工作線之外,沒有其他輸入。
- 如請求項1所述之微控制器,其中該中斷產生單元亦為一事件產生單元,經配置以偵測一事件產生暫存器內容的一預定改變,並通報一事件至該可程式周邊互連,以回應對於該一預定改變的偵測。
- 如請求項1或2所述之微控制器,其中該中斷產生單元經配置以自接收該工作信號起,在一預定最大時間內傳送該中斷。
- 如請求項1或2所述之微控制器,其中該中斷產生單元經配置以在接收該工作信號後,在一固定時間延遲內,傳送該中斷。
- 如請求項1或2所述之微控制器,包括複數中斷產生單元,各透過一組中斷線連接至該處理器,各組中斷線具有一各別不同中斷優先程度。
- 如請求項1或2所述之微控制器,包括一記憶體,其儲存軟體,該軟體包括指令,其可透過該處理器執行,以將自該事件產生周邊設備的一事件至該中斷產生單元的一工作的一映射儲存在該映射記憶體中。
- 如請求項1或2所述之微控制器,其中該中斷產生單元透過一工作線連接至該可程式周邊互連。
- 如請求項1或2所述之微控制器,其中該中斷產生單元在微控制器中為一分開的硬體模組,而有別於該處理器。
- 如請求項1或2所述之微控制器,其中該微控制器為一無線電單片裝置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1510597.6A GB2540341B (en) | 2015-06-16 | 2015-06-16 | Event generating unit |
GB1510597.6 | 2015-06-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201701163A TW201701163A (zh) | 2017-01-01 |
TWI695266B true TWI695266B (zh) | 2020-06-01 |
Family
ID=53784844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105114116A TWI695266B (zh) | 2015-06-16 | 2016-05-06 | 中斷產生單元 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10515024B2 (zh) |
EP (1) | EP3311289B1 (zh) |
JP (1) | JP6803859B2 (zh) |
KR (1) | KR20180017178A (zh) |
CN (1) | CN107690631B (zh) |
GB (2) | GB2541133B (zh) |
TW (1) | TWI695266B (zh) |
WO (1) | WO2016203193A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI817747B (zh) * | 2022-09-29 | 2023-10-01 | 旺宏電子股份有限公司 | 記憶體裝置及其管理方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201801572D0 (en) * | 2018-01-31 | 2018-03-14 | Nordic Semiconductor Asa | Inter-processor communication |
GB201806465D0 (en) | 2018-04-20 | 2018-06-06 | Nordic Semiconductor Asa | Memory-access controll |
GB201810653D0 (en) * | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Secure peripheral interconnect |
GB201810663D0 (en) * | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Peripheral Power Domains |
GB201810662D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Peripheral Access On A Secure-Aware Bus System |
GB201810659D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Secure-Aware Bus System |
JP7377459B2 (ja) * | 2020-03-24 | 2023-11-10 | マツダ株式会社 | エンジンルーム排熱構造 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050251640A1 (en) * | 2004-05-05 | 2005-11-10 | Wheeler Andrew R | System and method for configuring a computer system |
US20110197003A1 (en) * | 2010-02-05 | 2011-08-11 | Serebrin Benjamin C | Interrupt Virtualization |
US20110289242A1 (en) * | 2010-05-21 | 2011-11-24 | Oracle International Corporation | Managing interrupts in a virtualized input/output device supporting multiple hosts and functions |
GB2497528A (en) * | 2011-12-12 | 2013-06-19 | Nordic Semiconductor Asa | Peripheral Communication |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3632139A1 (de) | 1986-09-22 | 1988-04-07 | Bbc Brown Boveri & Cie | Verfahren zur ausfuehrung von zwei in verschiedenen programmiersprachen geschriebenen programmen |
JPH05307617A (ja) * | 1992-04-28 | 1993-11-19 | Mitsubishi Electric Corp | 半導体装置 |
JPH07105022A (ja) * | 1993-10-04 | 1995-04-21 | Mitsubishi Electric Corp | マイクロコンピュータ |
US5689713A (en) | 1995-03-31 | 1997-11-18 | Sun Microsystems, Inc. | Method and apparatus for interrupt communication in a packet-switched computer system |
GB9611715D0 (en) | 1996-06-05 | 1996-08-07 | Int Computers Ltd | Peripheral device control |
US6243785B1 (en) | 1998-05-20 | 2001-06-05 | 3Com Corporation | Hardware assisted polling for software drivers |
US7089344B1 (en) | 2000-06-09 | 2006-08-08 | Motorola, Inc. | Integrated processor platform supporting wireless handheld multi-media devices |
US6748548B2 (en) | 2000-12-29 | 2004-06-08 | Intel Corporation | Computer peripheral device that remains operable when central processor operations are suspended |
FR2905819B1 (fr) | 2006-09-12 | 2013-01-18 | Wavecom | Procede de gestion de l'architecture logicielle d'un circuit de radiocommunication,application,produit programme d'ordinateur et circuit correspondants. |
US7822899B2 (en) | 2007-03-08 | 2010-10-26 | Renesas Electronics Corporation | Data processor and control system |
US8026739B2 (en) * | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US20080276073A1 (en) | 2007-05-02 | 2008-11-06 | Analog Devices, Inc. | Apparatus for and method of distributing instructions |
GB0724439D0 (en) | 2007-12-14 | 2008-01-30 | Icera Inc | Data transfer |
WO2009124324A1 (en) * | 2008-04-04 | 2009-10-08 | Convatec Technologies Inc, | Drainable ostomy pouch |
EP2488956A1 (en) | 2009-10-14 | 2012-08-22 | Energy Micro AS | Direct peripheral interconnect |
KR20110045949A (ko) * | 2009-10-28 | 2011-05-04 | 삼성전자주식회사 | 회전 변환을 이용한 영상 부호화, 복호화 방법 및 장치 |
FR2953307B1 (fr) | 2009-12-01 | 2011-12-16 | Bull Sas | Controleur d'acces direct a une memoire pour le transfert direct de donnees entre memoires de plusieurs dispositifs peripheriques |
FR2953308B1 (fr) | 2009-12-01 | 2011-12-09 | Bull Sas | Systeme autorisant des transferts directs de donnees entre des memoires de plusieurs elements de ce systeme |
GB2521607B (en) | 2013-12-23 | 2016-03-23 | Nordic Semiconductor Asa | Integrated-Circuit Radio |
US9952987B2 (en) * | 2014-11-25 | 2018-04-24 | Intel Corporation | Posted interrupt architecture |
-
2015
- 2015-06-16 GB GB1617254.6A patent/GB2541133B/en active Active
- 2015-06-16 GB GB1510597.6A patent/GB2540341B/en not_active Expired - Fee Related
-
2016
- 2016-05-06 WO PCT/GB2016/051310 patent/WO2016203193A1/en active Application Filing
- 2016-05-06 KR KR1020187001251A patent/KR20180017178A/ko active IP Right Grant
- 2016-05-06 EP EP16721906.2A patent/EP3311289B1/en active Active
- 2016-05-06 TW TW105114116A patent/TWI695266B/zh active
- 2016-05-06 US US15/578,665 patent/US10515024B2/en active Active
- 2016-05-06 JP JP2017565127A patent/JP6803859B2/ja active Active
- 2016-05-06 CN CN201680033126.6A patent/CN107690631B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050251640A1 (en) * | 2004-05-05 | 2005-11-10 | Wheeler Andrew R | System and method for configuring a computer system |
US20110197003A1 (en) * | 2010-02-05 | 2011-08-11 | Serebrin Benjamin C | Interrupt Virtualization |
US20110289242A1 (en) * | 2010-05-21 | 2011-11-24 | Oracle International Corporation | Managing interrupts in a virtualized input/output device supporting multiple hosts and functions |
GB2497528A (en) * | 2011-12-12 | 2013-06-19 | Nordic Semiconductor Asa | Peripheral Communication |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI817747B (zh) * | 2022-09-29 | 2023-10-01 | 旺宏電子股份有限公司 | 記憶體裝置及其管理方法 |
Also Published As
Publication number | Publication date |
---|---|
GB201510597D0 (en) | 2015-07-29 |
US20180217947A1 (en) | 2018-08-02 |
CN107690631B (zh) | 2021-03-30 |
GB2540341A (en) | 2017-01-18 |
CN107690631A (zh) | 2018-02-13 |
JP2018518773A (ja) | 2018-07-12 |
KR20180017178A (ko) | 2018-02-20 |
EP3311289B1 (en) | 2020-12-09 |
GB201617254D0 (en) | 2016-11-23 |
TW201701163A (zh) | 2017-01-01 |
JP6803859B2 (ja) | 2020-12-23 |
GB2540341B (en) | 2019-06-26 |
EP3311289A1 (en) | 2018-04-25 |
GB2541133B (en) | 2018-01-03 |
GB2541133A (en) | 2017-02-08 |
US10515024B2 (en) | 2019-12-24 |
WO2016203193A1 (en) | 2016-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI695266B (zh) | 中斷產生單元 | |
JP5786100B2 (ja) | 周辺機器同士の通信 | |
US10002103B2 (en) | Low-pin microcontroller device with multiple independent microcontrollers | |
US9875202B2 (en) | Peripheral communication system with shortcut path | |
CN106415524B (zh) | 用于为多处理器核心装置指派装置引脚功能的装置及方法 | |
EP3268871B1 (en) | Low-pin microcontroller device with multiple independent microcontrollers | |
CN107710174B (zh) | 存储器监视单元 | |
US9390043B2 (en) | Trigger routing unit | |
US20130117533A1 (en) | Coprocessor having task sequence control | |
US7350015B2 (en) | Data transmission device | |
US9256558B2 (en) | Direct memory access descriptor-based synchronization | |
TWI581103B (zh) | 以精確計時用於實施匯流排操作的方法與系統 | |
JP5404144B2 (ja) | データ処理装置 | |
EP1450255B1 (en) | Microcontroller device for complex processing procedures and corresponding interrupt management process | |
JP6535516B2 (ja) | マルチ・プログラマブルデバイス・システムとその制御方法 | |
JP2000242508A (ja) | 割り込み調停回路 |