TW201638770A - 具有雙模式中斷之微控制器或微處理器 - Google Patents
具有雙模式中斷之微控制器或微處理器 Download PDFInfo
- Publication number
- TW201638770A TW201638770A TW105106920A TW105106920A TW201638770A TW 201638770 A TW201638770 A TW 201638770A TW 105106920 A TW105106920 A TW 105106920A TW 105106920 A TW105106920 A TW 105106920A TW 201638770 A TW201638770 A TW 201638770A
- Authority
- TW
- Taiwan
- Prior art keywords
- interrupt
- microcontroller
- processing unit
- central processing
- mode
- Prior art date
Links
- 239000013598 vector Substances 0.000 claims abstract description 52
- 230000002093 peripheral effect Effects 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims description 61
- 238000000034 method Methods 0.000 claims description 34
- 230000006870 function Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
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/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
- 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
- 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/22—Microcontrol or microprogram arrangements
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Microcomputers (AREA)
- Bus Control (AREA)
Abstract
本發明提供一種微控制器,其具有:一CPU,其具有與一中斷控制器耦合之至少一個中斷輸入;複數個周邊器件;及一模式暫存器,其包括控制該微控制器之一操作模式之至少一個位元。該微控制器經組態以用一第一操作模式操作,其中在由該微控制器之一周邊器件確證一中斷之後,該中斷控制器旋即將一中斷信號轉送至該CPU且該周邊器件設定一相關聯中斷旗標,其中該中斷引起該CPU分支至與該中斷輸入相關聯之一預定中斷位址。在一第二操作模式中,在由該微控制器之一周邊器件確證一中斷之後,該中斷控制器將一中斷信號轉送至該CPU,且該CPU自產生該中斷之該周邊器件接收額外中斷資訊,其中該額外中斷資訊係用於產生一向量位址。
Description
此申請案主張2015年3月6日申請之共同擁有之美國臨時專利申請案第62/129,481號之優先權,該美國臨時專利申請案藉此出於所有目的以引用之方式併入本文。
本發明係關於微處理器或微控制器。
微控制器係包括一中央處理單元(CPU)、記憶體、I/O介面及複數個不同周邊裝置(諸如串列介面、類比轉數位轉換器、PWM調變器、計時器等等)之一單晶片之晶片系統。一般言之,諸多應用無需大量處理電力。因此,為保持低成本,可通常無需使用任何類型之外部中斷或內部中斷或使用有限數目個中斷來實施某些微控制器(諸如具有有限量之程式記憶體及資料記憶體之8位元微控制器),此係歸因於此等中斷邏輯需要一晶粒上之顯著面積之事實。例如,一製造商之一基線微控制器系列可包含不包括任何中斷能力或僅一單個中斷之裝置。一中型系列可經設計以允許一單個中斷及一相關聯中斷控制器,該相關聯中斷控制器接收複數個中斷且產生饋入至CPU之單個中斷輸入之一輸出信號。此等微控制器類型之兩者可包括具有單個中斷輸入之一CPU,其中當確證時引起程式執行完成一當前待處理指令且接著分支
至一經定義位址(中斷向量)(例如,位址0004h)。製造商之一更高端系列之微控制器可包含具有一CPU之裝置,該CPU具有:兩個中斷輸入,一者被指派一低優先級且一者被指派一高優先級;以及一中斷控制器,其用於將來自各種源之中斷分佈至該CPU之此等兩個中斷輸入。
因此,本申請案主要探討包括具有有限數目個中斷(例如,一單個中斷輸入或兩個中斷輸入)及具有一有限中斷功能性之相關聯中斷控制器之一中央處理單元之微控制器。在諸多應用中,此可仍係不夠的且必須選擇一更高端裝置(例如,一16位元微控制器或32位元微控制器),此係歸因於8位元微控制器之中斷能力太具有限制性之事實。此外,若此等微控制器意欲具有增加數目個周邊器件,則中央處理單元可能由於有限中斷功能性而不能夠支援一相關聯中斷功能。
因此,需要具有一經改良或更靈活中斷處置之一微控制器。
根據一實施例,一種微控制器可包括:一中央處理單元,其包括至少一個中斷輸入;一中斷控制器,其經組態以將至少一個中斷信號提供至該中央處理單元之該至少一個中斷輸入;複數個周邊器件,其與該中央處理單元及該中斷控制器耦合;及一模式暫存器,其包括控制該微控制器之一操作模式之至少一個位元,其中該微控制器經組態成以一第一模式及一第二模式操作,其中在該第一操作模式中,在由該微控制器之一周邊器件確證一中斷之後,該中斷控制器旋即將一中斷信號轉送至該中央處理單元且該周邊器件設定一相關聯中斷旗標,其中該中斷引起該中央處理單元分支至與該中斷輸入相關聯之一預定中斷位址,其中在該第二操作模式中,在由該微控制器之一周邊器件確證一中斷之後,該中斷控制器旋即將一中斷信號轉送至該中央處理單元且該中央處理單元自產生該中斷之該周邊器件接收額外中斷
資訊,其中該額外中斷資訊用於產生一向量位址。
根據一進一步實施例,在該第二操作模式中,在接收一中斷之後,該中央處理單元可經組態以在進入一服務常式之前執行一內容脈絡保存,且其中該中央處理單元之一暫存器接收資料,經組態以在該內容脈絡保存之後識別一中斷源。根據一進一步實施例,該暫存器可係算術邏輯單元之一工作暫存器。根據一進一步實施例,由產生中斷之一周邊器件提供之該額外資訊可用於使一常數值移位,且其中該經移位常數值經移動至該暫存器中。根據一進一步實施例,該額外資訊可係直接儲存於CPU之一工作暫存器中之一中斷號碼。根據一進一步實施例,在該第二操作模式中,可提供儲存一基底位址之一基底暫存器,且取決於一中斷源之一位移位址經轉送至中央處理單元,其中藉由將該向量位址加至儲存於該基底暫存器中之該基底位址而產生一中斷向量。根據一進一步實施例,在該第二操作模式中,微控制器可經程式化以提供一中斷服務常式,其評估工作暫存器之內容以分支至與產生該中斷之一中斷源相關聯之一各別服務常式。根據一進一步實施例,在該第一模式中,該微控制器可經程式化以提供一中斷服務常式,其輪詢一特殊功能暫存器中之一中斷旗標以判定產生該中斷之一中斷源。根據一進一步實施例,中央處理單元可包括僅一單個中斷輸入。根據一進一步實施例,該中央處理單元可包括僅一第一中斷輸入及一第二中斷輸入,其中該第一中斷輸入具有高於該第二中斷輸入之一優先級。根據一進一步實施例,當一較高優先級中斷中斷一較低優先級服務常式時,該較高優先級中斷可經組態以清除一較低優先級中斷,且一相關聯服務常式直接返回至一主碼而無需透過該低優先級服務常式返回。根據一進一步實施例,當一較高優先級中斷中斷一較低優先級服務常式時,該較高優先級中斷可經組態以直接返回至該較低優先級中斷服務常式而無需返回至一主碼。根據一進一步實施例,中
斷控制器可包括可控制邏輯以啟用自該等周邊器件接收之中斷。
根據另一實施例,一種用於在包括一中央處理單元(其包括至少一個中斷輸入)及一中斷控制器(其經組態以將至少一個中斷信號提供至該中央處理單元之該至少一個中斷輸入)之一微控制器內提供中斷功能性之方法,該方法可包括以下步驟:設定一第一操作模式或一第二操作模式;由該中斷控制器接收一中斷;且當以第一操作模式操作時,由該中斷控制器將一中斷信號轉送至該中央處理單元且設定一相關聯中斷旗標,其中該中斷引起該中央處理單元分支至與該中斷輸入相關聯之一預定中斷位址;且當以該第二操作模式操作時,由該中斷控制器將一中斷信號轉送至該中央處理單元且由該中央處理單元自產生該中斷之該周邊器件接收額外中斷資訊,其中該額外中斷資訊用於產生一向量位址。
根據該方法之一進一步實施例,在該第二操作模式中,在接收一中斷之後,該方法可在進入一服務常式之前執行一內容脈絡保存,及在該內容脈絡保存之後由經組態以識別一中斷源之該中央處理單元接收額外資訊,及將該額外資訊或導出自該額外資訊之資料儲存於一暫存器中。根據該方法之一進一步實施例,該額外資訊可係直接儲存於CPU之一工作暫存器中之一中斷號碼。根據該方法之一進一步實施例,該方法可進一步包括在使用該資料進入該服務常式之後計算一位址及分支至該位址以服務該中斷之步驟。根據該方法之一進一步實施例,該資料可用於使一常數值移位,且其中該經移位常數值經移動至該暫存器中。根據該方法之一進一步實施例,該方法可進一步包括使用該經移位值作為一位移位址以分支至一位址以服務該中斷之步驟。根據該方法之一進一步實施例,在第二操作模式中,可提供儲存一基底位址之一基底暫存器,且取決於一中斷源之一位移位址經轉送至該中央處理單元,且藉由將向量位址加至儲存於該基底暫存器中之基底
位址而產生一中斷向量。根據該方法之一進一步實施例,在該第二操作模式中,一中斷服務常式可評估該工作暫存器之內容以分支至提供與產生該中斷之一中斷源相關聯之指令之一各別位址。根據該方法之一進一步實施例,在該第一模式中,一中斷服務常式可輪詢一特殊功能暫存器中之一中斷旗標以判定產生該中斷之一中斷源。根據該方法之一進一步實施例,該中央處理單元可包括僅一單個中斷輸入。根據該方法之一進一步實施例,該中央處理單元可包括僅一第一中斷輸入及一第二中斷輸入,其中該第一中斷輸入具有高於該第二中斷輸入之一優先級。根據該方法之一進一步實施例,當一較高優先級中斷中斷一較低優先級服務常式時,該較高優先級中斷可經組態以清除一較低優先級中斷,且一相關聯服務常式可直接返回至一主碼而無需透過該低優先級服務常式返回。根據該方法之一進一步實施例,當一較高優先級中斷中斷一較低優先級服務常式時,該較高優先級中斷可經組態以直接返回至該較低優先級中斷服務常式而無需返回至一主碼。
根據又一實施例,一種微控制器可包括:一中央處理單元,其包括至少一個中斷輸入及與一算術邏輯單元耦合之一暫存器;一中斷控制器,其經組態以將至少一個中斷信號提供至該中央處理單元之至少一個中斷輸入;複數個周邊器件,其與該中央處理單元及該中斷控制器耦合;其中在由該微控制器之一周邊器件確證一中斷之後,該中斷控制器旋即將一中斷信號轉送至該中央處理單元,且該中央處理單元自產生該中斷之該周邊器件接收額外中斷資訊,其中該額外中斷資訊或導出自該額外中斷資訊之資料儲存於該暫存器中。
根據上文微控制器之一進一步實施例,在接收一中斷之後,中央處理單元可經組態以在進入一服務常式之前執行一內容脈絡保存,且該暫存器可在該內容脈絡保存之後接收額外中斷資訊。根據上文微控制器之一進一步實施例,該額外資訊可用於使一常數值移位,且其
中該經移位常數值經移動至該暫存器中。根據上文微控制器之一進一步實施例,該額外資訊可係直接儲存於CPU之一工作暫存器中之一中斷號碼。根據上文微控制器之一進一步實施例,該微控制器可經程式化以提供一中斷服務常式,其評估工作暫存器之內容以分支至與產生中斷之一中斷源相關聯之一各別服務常式。
100‧‧‧微控制器
110‧‧‧中央處理單元
115‧‧‧工作暫存器
120‧‧‧中斷控制器
125a‧‧‧中斷輸入/第一輸入/輸入
125b‧‧‧中斷輸入/第二輸入/輸入
130a至n‧‧‧周邊器件
140‧‧‧資料記憶體
150‧‧‧程式記憶體
160‧‧‧系統匯流排
170‧‧‧模式控制暫存器
180‧‧‧額外資料線/線
185‧‧‧移位暫存器
圖1展示根據一實施例之一微控制器之一方塊圖;圖2展示中斷控制器邏輯之一實施例;圖3展示可如何產生一向量位址之一實施例;圖4展示一向量位址可如何移至一工作暫存器之一實施例;圖5展示其中額外中斷資訊移至一暫存器之一微控制器之一實施例;圖6展示使用高優先級中斷及低優先級中斷之一系統之一狀態圖;圖7展示其中額外中斷資訊移至一暫存器之一微控制器之另一實施例;圖8展示中斷控制器邏輯之另一實施例。
根據各種實施例,可創建與一現有微控制器設計相容之一向量中斷系統。下文論述之特徵不限於8位元微控制器,但若此等裝置包括一不充足中斷控制架構,則該等特征亦可應用於16位元微控制器或32位元微控制器。根據各種實施例,維持一現有中斷處置且提供一第二操作模式。在第一操作模式中,具有一單個中斷輸入之此一微控制器可根據原始設計操作,例如,分支至單個預定中斷向量(例如,位址0004h)。在一第二操作模式中,微控制器可使用與一單個中斷輸入相關聯之複數個中斷向量。
對於可由新核心架構設計實現之擴展數目個周邊器件,目前現有非向量微控制器系統設計可係不夠的。一向量中斷系統可允許相對於個別中斷功能性整合此等周邊器件。
特定言之,由本申請案之受讓人製造之微控制器(諸如來自PIC10/12/16系列之微控制器)在程式記憶體中之位置0004x處皆使用一單個中斷向量。來自PIC18系列之更先進微控制器使用一雙優先級向量系統。
受讓人之PIC16微控制器系列不提供向量。更先進PIC18系列不具有一軟體解決方案且不具有監視中斷控制。此外,更先進PIC18系列以及PIC16系列須微調延時,特定言之,此係歸因於微控制器之部分上之中斷源之絕對數目。PIC16/18系列兩者皆具有區塊以使載入器實施方案啟動。
根據具有允許向量表移動以支援啟動載入器之一基底位址暫存器之各種實施例,現有習知PIC18向量中斷系統經擴展。
根據一實施例,可藉由移除至(例如)來自轉變至另一待處理高中斷之一高中斷、轉變至另一待處理低中斷之一低中斷及轉變至一低中斷之一高中斷主指令之返回來微調延時時間。換言之,可移除自中斷指令之一返回且系統直接跳躍至下一待處理中斷常式。
RTOS支援可存取高優先級中斷及低優先級中斷兩者之內容脈絡。
根據其他實施例,對於使用高優先級計時器中斷以監視低優先級通信周邊器件之系統,提供無需使用全域中斷啟用位元GIE來清除經中斷低優先級中斷之能力。根據各種實施例,若未準備好呈現自低優先級中斷移除一各別返回向量,則可將一POP指令加入至核心。
根據又另一實施例,低優先級中斷及高優先級中斷兩者之一內容脈絡保存透過內容脈絡暫存器係可見的。透過允許在低存取與高存
取之間雙態切換之內容脈絡控制暫存器保存暫存器空間。經改良微控制器具有清除命令上之低內容脈絡以支援看門狗功能之能力。
根據一些實施例之解決方案與舊型模式選項係回溯相容的以中斷至位置0004x。藉由加入在分支至0004x之前將中斷號碼載入至W暫存器中之功能來擴展該模式。
根據一些實施例,可使用2個優先級位準實施此一雙模式向量中斷,該雙模式向量中斷採用一直接向量表與用於基於軟體系統之一向量號碼兩者。
圖1展示具有含一單個中斷輸入之一CPU 110之一微控制器100之一方塊圖。CPU 110經由一系統匯流排160與複數個周邊器件130a至n耦合。可根據如所展示般具有一單獨資料記憶體140及程式記憶體150之哈佛(Harvard)架構來設計CPU 110。然而,該架構亦可使用具有一統一記憶體空間之非諾依曼(Neumann)架構。
可透過系統匯流排存取資料記憶體140且程式記憶體150可具有其自身匯流排。然而,可選擇其他設計。周邊器件130a至n之部分或其等之全部可產生饋入至一中斷控制器120之一中斷信號。中斷控制器可產生饋入至CPU 110之各別輸入之一單個中斷信號。
圖2展示以第一模式操作之一中斷控制器120之一可能實施方案之一方塊圖。可提供允許個別地啟用或停用複數個中斷之一者,且儲存可由如2中左側上展示之微控制器之各種周邊器件產生之相關聯中斷旗標的複數個特殊功能暫存器。圖2之右側展示一進一步中斷控制暫存器位元,其允許(例如)經由全域中斷啟用位元GIE大體上啟用或停用所有中斷。中斷控制暫存器可包括進一步位元,以控制如圖2之中心中所展示之系統中斷。由PEIE位元處置所有周邊器件中斷之一單獨啟用/停用控制。由啟用位元INTE及相關聯旗標INTF控制一外部中斷。此外,由RB埠改變中斷啟用位元及相關聯旗標RBIF提供一外部
埠改變感測控制。根據其他實施例,此功能性可擴展至其他埠。最後可在此位準上處置計時器0溢出中斷。在此實施例中,INTE/INTF、RBIE/RBIF及T0IE/T0IF係「系統中斷」,然而,根據其他實施例,所有中斷可被當做不具有一特定PEIE啟用位元之周邊器件中斷。此等中斷架構允許使用CPU處之一單個中斷輸入的複數個中斷。為實現此情況,中斷常式必須查詢各別旗標以在各種源之間加以區分。對於CPU,每中斷看起來一樣,此係因為僅提供一單個中斷輸入。然而,當各中斷源產生一中斷時,其可設定一相關聯旗標。因此,中斷處置器軟體必須檢查中斷處置常式中之此等旗標,以判定誰確證中斷。此外,一旦中斷已經被處置,則服務常式通常重設各別旗標。其他邏輯可用於允許處置具有一單個中斷輸入的多個中斷源。圖2僅展示如在由本申請案之受讓人製造之諸多中型微控制器中實施的一個可能解決方案。
圖3中展示一向量系統。各中斷提供一不同向量且該中斷源被加入至一基底暫存器以選擇適當中斷向量。因此,與上文所描述之其中僅產生一單個中斷向量(例如,向量0004h)的中斷處置相反,此一系統需要在中斷信號產生時產生額外資訊(例如,一向量位移)。雖然仍在CPU處使用僅一單個中斷輸入,然CPU現在將取決於經提供至CPU之額外資訊而分支至不同中斷向量。將在下文更詳細解釋使用此額外資訊而不需輪詢任何旗標以實現分支的不同技術。一CPU可直接產生替換固定單個中斷向量之一各別向量,或使用該固定單個中斷向量且提供具有硬體協助或不具有硬體協助之一軟體分支。然而,在此第二操作模式中,不存在對可顯著地減小軟體額外負擔之中斷旗標輪詢的必要性。
可提供一模式控制暫存器170,其允許中斷控制器及CPU以一第一模式(相容性模式)操作,在該第一模式中僅產生一單個中斷信號,
且軟體必須輪詢如圖1中所展示之中斷旗標。根據各種實施例,現提供透過如圖1中所展示之額外資料線180轉送中斷資訊之一第二模式。中斷資訊可係(例如)向量位移或實際中斷號碼,或允許一中斷向量系統之實施的任何其他資訊。可由周邊器件130a至n提供中斷資訊(諸如(例如)中斷號碼)。因此,(例如)如圖1中所展示,一周邊器件130a至n與中斷控制器120之間之各耦合可包含提供中斷資訊(諸如中斷號碼)之額外線。替代地,此等資訊可透過系統匯流排160被轉送至中斷控制器120或直接被轉送至CPU 110。在一項實施例中,一向量位移自動加至單個固定中斷向量位址。因此,系統針對各中斷具有不同進入點。可設定位移,使得足夠指令可被置於兩個毗鄰中斷號碼之間以分支至相關聯服務常式。替代地,中斷資訊經直接載入至一暫存器(例如,一特殊功能暫存器或算術邏輯單元之工作暫存器)中。此解決方案允許在進入固定中斷向量位址處之服務常式之後立即執行之一軟體分支中使用此資料,如將在下文更詳細解釋。
圖4展示根據一項實施例之第二模式,其中一般中斷向量處於傳統位置(例如,位址0004h處),然中斷號碼在內容脈絡保存之後被傳遞至CPU之一工作暫存器W中,以提供一回溯相容解決方案,外加構建一基於軟體之解決方案的能力。若額外資訊(諸如中斷號碼)被傳遞至攜載由其他常式使用之資訊之一暫存器(諸如一工作暫存器)中,則內容脈絡保存僅須在額外資訊傳遞之前。工作暫存器將被重寫,且因此其處於當進入一中斷服務常式時必須保存之內容脈絡之其他特殊功能暫存器部分當中。因此,在進入至中斷服務常式中之後,工作暫存器包含中斷源,其允許以下服務常式針對此特定源分支至正確服務指令。可由根據中斷號碼計算之一向量或藉由僅查詢工作暫存器且分支至各別常式來實現此情況。一向量中斷系統之此特定解決方案具有與由受讓人製造之現有微控制器中斷系統相容的優點。替代地,此資訊
可稍後用於一共同中斷服務常式中,該共同中斷服務常式首先執行所有經指派中斷所共有之指令,且接著分支至個別常式。使用經儲存於暫存器中之資訊的其他軟體解決方案係可能的。
圖5展示具有兩個中斷輸入125a及125b之一微控制器。第一輸入125a可被指派一高優先級,且第二輸入125b可被指派一低優先級。因此,輸入125a處之高優先級中斷能夠中斷一待處理之低優先級中斷常式,而輸入125b處之一低優先級中斷不能中斷一待處理高優先級中斷常式。若存在具有相同優先級或更高優先級之待處理中斷,則系統亦具有停留於中斷中的能力。根據各種實施例,可以與上文描述(藉由允許當以第二模式操作時,各中斷輸入透過線180亦接收額外資訊(例如,一中斷號碼))相同的方式來增強此一系統。因此,上文所描述之增強不限於具有含一單個中斷輸入之一CPU,而是可與具有一個以上中斷(其中各中斷或其等之至少一者如上文描述般增強)之一CPU一起使用之一系統。
根據一項實施例,該增強可進一步用於僅使用如上文所描述之第二模式之一單個中斷模式中。此實施例允許一減少之硬體解決方案。根據此實施例,額外資訊直接載入至CPU之一暫存器(較佳地,ALU之一工作暫存器)中。此解決方案提供無需必須解碼資訊且自動設定各別中斷向量之硬體之一向量中斷系統的靈活性。
圖6中之狀態圖展示在此一個兩優先級系統中可能的各種轉變。此一系統亦可具有一較高優先級中斷清除一較低優先級中斷且直接返回至主碼而無需透過該低優先級返回的能力。
圖5指示額外資訊被直接載入至CPU內之算術邏輯單元(ALU)的工作暫存器115中。根據一項實施例,可在完成保存工作暫存器之內容之一內容脈絡安全之後直接完成此一傳遞。一內容脈絡安全將某些暫存器之內容自動傳遞至一堆疊上,或傳遞至不具有軟體額外負擔之
陰影暫存器中。根據其他實施例,可與內容脈絡安全平行實現進入一不同暫存器(例如,不可另外使用之一專用暫存器)中的傳遞。因此,根據其他實施方案,額外資訊無需被傳遞至工作暫存器中,而是可亦被傳遞至另一專用特殊功能暫存器中。然而,一工作暫存器之使用係有利的,由於此一暫存器可直接用於操縱一位址。相同情況適用於任何其他CPU暫存器,且因此取決於CPU架構。
圖7展示一單個操作模式或具有兩種模式之一操作模式之又一實施例。在此處,額外資訊(諸如中斷號碼)控制一移位暫存器185(例如,使用0001h或0002h或任何其他適當位移號碼預設之移位暫存器),接著,經移位結果直接移至工作暫存器。此解決方案提供可直接用於存取一跳躍表而無需在中斷服務常式內執行進一步位址計算指令之一位移值。如圖7中所展示,僅提供一單個中斷輸入Int 0。然而,此設計亦可應用於具有一個以上中斷輸入之一CPU。
根據兩種操作模式之其他實施方案,如上文所提及,向量無需由中斷服務常式內之軟體計算。雖然此一解決方案提供回溯相容性,然其他架構可允許當接收中斷時直接應用之向量之一硬體計算,藉此允許取決於所提供之向量位址直接跳躍至各種向量位址。
該系統經設計在8位元架構(尤其在由本申請案之受讓人設計之此等8位元架構)內工作。然而,所提出之實施方案亦可應用於其他8位元系統以及使用對應中斷邏輯之16位元系統或32位元系統。
100‧‧‧微控制器
110‧‧‧中央處理單元
120‧‧‧中斷控制器
130a至n‧‧‧周邊器件
140‧‧‧資料記憶體
150‧‧‧程式記憶體
160‧‧‧系統匯流排
170‧‧‧模式控制暫存器
180‧‧‧額外資料線
Claims (31)
- 一種微控制器,其包括:一中央處理單元,其包括至少一個中斷輸入;一中斷控制器,其經組態以將至少一個中斷信號提供至該中央處理單元之該至少一個中斷輸入;複數個周邊器件,其係與該中央處理單元及該中斷控制器耦合;一模式暫存器,其包括控制該微控制器之一操作模式之至少一個位元,其中該微控制器經組態成以一第一模式及一第二模式操作,其中在該第一操作模式中,在由該微控制器之一周邊器件確證一中斷之後,該中斷控制器旋即將一中斷信號轉送至該中央處理單元,且該周邊器件設定一相關聯中斷旗標,其中該中斷引起該中央處理單元分支至與該中斷輸入相關聯之一預定中斷位址;且其中在該第二操作模式中,在由該微控制器之一周邊器件確證一中斷之後,該中斷控制器旋即將一中斷信號轉送至該中央處理單元,且該中央處理單元自產生該中斷之該周邊器件接收額外中斷資訊,其中該額外中斷資訊係用於產生一向量位址。
- 如請求項1之微控制器,其中在該第二操作模式中,於接收一中斷之後,該中央處理單元經組態以在進入一服務常式之前執行一內容脈絡保存,且其中該中央處理單元之一暫存器接收經組態資料以在該內容脈絡保存之後識別一中斷源。
- 如請求項1之微控制器,其中該暫存器係算術邏輯單元之一工作暫存器。
- 如請求項2之微控制器,其中由產生該中斷之一周邊器件提供之該額外資訊係用於使一常數值移位,且其中該經移位常數值被移動至該暫存器中。
- 如請求項2之微控制器,其中該額外資訊係直接被儲存於該CPU之一工作暫存器中之一中斷號碼。
- 如請求項1之微控制器,其中在該第二操作模式中,提供儲存一基底位址之一基底暫存器,且取決於一中斷源之一位移位址被轉送至該中央處理單元,其中藉由將該向量位址加至經儲存於該基底暫存器中之該基底位址來產生一中斷向量。
- 如請求項1之微控制器,其中在該第二模式中,該微控制器經程式化以提供一中斷服務常式,其評估該工作暫存器之該內容以分支至與產生該中斷之一中斷源相關聯之一各別服務常式。
- 如請求項1之微控制器,其中在該第一模式中,該微控制器經程式化以提供一中斷服務常式,其輪詢一特殊功能暫存器中之一中斷旗標以判定產生該中斷之一中斷源。
- 如請求項1之微控制器,其中該中央處理單元包括僅一單個中斷輸入。
- 如請求項1之微控制器,其中該中央處理單元包括僅一第一中斷輸入及一第二中斷輸入,其中該第一中斷輸入具有高於該第二中斷輸入之一優先級。
- 如請求項10之微控制器,其中當一較高優先級中斷中斷一較低優先級服務常式時,該較高優先級中斷經組態以清除一較低優先級中斷,且一相關聯服務常式直接返回至一主碼而無需透過該低優先級服務常式返回。
- 如請求項10之微控制器,其中當一較高優先級中斷中斷一較低優先級服務常式時,該較高優先級中斷經組態以直接返回至該 較低優先級中斷服務常式而無需返回至一主碼。
- 如請求項1之微控制器,其中中斷控制器包括可控制邏輯以啟用自該等周邊器件接收之中斷。
- 一種用於在包括包括至少一個中斷輸入之一中央處理單元及經組態以將至少一個中斷信號提供至該中央處理單元之該至少一個中斷輸入之一中斷控制器之一微控制器內提供中斷功能性之方法,該方法包括:設定一第一操作模式或一第二操作模式;由該中斷控制器接收一中斷;及當以該第一操作模式操作時,由該中斷控制器將一中斷信號轉送至該中央處理單元且設定一相關聯中斷旗標,其中該中斷引起該中央處理單元分支至與該中斷輸入相關聯之一預定中斷位址;且當以該第二操作模式操作時,由該中斷控制器將一中斷信號轉送至該中央處理單元且由該中央處理單元自產生該中斷之該周邊器件接收額外中斷資訊,其中該額外中斷資訊係用於產生一向量位址。
- 如請求項14之方法,其中在該第二操作模式中,於接收一中斷之後在進入一服務常式之前執行一內容脈絡保存,及在該內容脈絡保存之後由經組態以識別一中斷源之該中央處理單元接收額外資訊,及將該額外資訊或導出自該額外資訊之資料儲存於一暫存器中。
- 如請求項15之方法,其中該額外資訊係直接被儲存於該CPU之一工作暫存器中之一中斷號碼。
- 如請求項15之方法,進一步包括:在使用該資料進入該服務常式之後計算一位址,及分支至該位址以服務該中斷。
- 如請求項15之方法,其中該資料用於使一常數值移位,且其中該經移位常數值被移動至該暫存器中。
- 如請求項18之方法,進一步包括:使用該經移位值作為一位移位址,以分支至一位址以服務該中斷。
- 如請求項14之方法,其中在該第二操作模式中,提供儲存一基底位址之一基底暫存器,且取決於一中斷源之一位移位址被轉送至該中央處理單元,及藉由將該向量位址加至儲存於該基底暫存器中之該基底位址來產生一中斷向量。
- 如請求項14之方法,其中在該第二操作模式中,一中斷服務常式評估該工作暫存器之該內容以分支至提供與產生該中斷之一中斷源相關聯之指令之一各別位址。
- 如請求項14之方法,其中在該第一模式中,一中斷服務常式輪詢一特殊功能暫存器中之一中斷旗標以判定產生該中斷之一中斷源。
- 如請求項14之方法,其中該中央處理單元包括僅一單個中斷輸入。
- 如請求項14之方法,其中該中央處理單元包括僅一第一中斷輸入及一第二中斷輸入,其中該第一中斷輸入具有高於該第二中斷輸入之一優先級。
- 如請求項24之方法,其中當一較高優先級中斷中斷一較低優先級服務常式時,該較高優先級中斷經組態以清除一較低優先級中斷,且一相關聯服務常式直接返回至一主碼而無需透過該低優先級服務常式返回。
- 如請求項24之方法,其中當一較高優先級中斷中斷一較低優先級服務常式時,該較高優先級中斷經組態以直接返回至該較低優先級中斷服務常式而無需返回至一主碼。
- 一種微控制器,其包括:一中央處理單元,其包括至少一個中斷輸入及與一算術邏輯單元耦合之一暫存器;一中斷控制器,其經組態以將至少一個中斷提供至該中央處理單元之該至少一個中斷輸入;複數個周邊器件,其係與該中央處理單元及該中斷控制器耦合;其中在由該微控制器之一周邊器件確證一中斷之後,該中斷控制器旋即將一中斷信號轉送至該中央處理單元,且該中央處理單元自產生該中斷之該周邊器件接收額外中斷資訊,其中該額外中斷資訊或導出自該額外中斷資訊之資料被儲存於該暫存器中。
- 如請求項27之微控制器,其中在接收一中斷之後,該中央處理單元經組態以在進入一服務常式之前執行一內容脈絡保存,且其中在該內容脈絡保存之後該暫存器接收該額外中斷資訊。
- 如請求項27之微控制器,其中該額外資訊係用於使一常數值移位,且其中該經移位常數值被移動至該暫存器中。
- 如請求項27之微控制器,其中該額外資訊係直接被儲存於該CPU之一工作暫存器中之一中斷號碼。
- 如請求項27之微控制器,其中該微控制器經程式化以提供一中斷服務常式,其評估該工作暫存器之該內容以分支至與產生該中斷之一中斷源相關聯之一各別服務常式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562129481P | 2015-03-06 | 2015-03-06 | |
US15/060,553 US10067892B2 (en) | 2015-03-06 | 2016-03-03 | Microcontroller or microprocessor with dual mode interrupt |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201638770A true TW201638770A (zh) | 2016-11-01 |
Family
ID=56849888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105106920A TW201638770A (zh) | 2015-03-06 | 2016-03-07 | 具有雙模式中斷之微控制器或微處理器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10067892B2 (zh) |
EP (1) | EP3265921B1 (zh) |
KR (1) | KR20170122758A (zh) |
CN (1) | CN107251001B (zh) |
TW (1) | TW201638770A (zh) |
WO (1) | WO2016144777A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI681338B (zh) * | 2018-05-31 | 2020-01-01 | 瑞昱半導體股份有限公司 | 計時裝置及其運作方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426528A (zh) * | 2017-09-05 | 2019-03-05 | 东软集团股份有限公司 | 实现软件版本选择的方法、装置及存储介质、程序产品 |
US10439626B2 (en) * | 2017-12-15 | 2019-10-08 | Microchip Technology Incorporated | Analog-to-digital converter with autonomous gain stage and auto scaling, and related systems and methods |
CN111045730B (zh) * | 2019-12-12 | 2023-07-21 | 南京沁恒微电子股份有限公司 | 一种用于risc-v架构的硬件快速中断处理系统及其方法 |
US11630789B2 (en) | 2020-09-11 | 2023-04-18 | Apple Inc. | Scalable interrupts |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0212432A (ja) * | 1988-06-30 | 1990-01-17 | Nec Corp | データ処理装置 |
US5440747A (en) * | 1993-09-27 | 1995-08-08 | Hitachi America, Ltd. | Data processor with control logic for storing operation mode status and associated method |
US6202104B1 (en) | 1998-07-28 | 2001-03-13 | Siemens Aktiengesellschaft | Processor having a clock driven CPU with static design |
JP3778246B2 (ja) * | 1999-03-23 | 2006-05-24 | セイコーエプソン株式会社 | 割り込みコントローラ、asic、及び電子機器 |
US7793025B2 (en) * | 2008-03-28 | 2010-09-07 | Freescale Semiconductor, Inc. | Hardware managed context sensitive interrupt priority level control |
US8972642B2 (en) * | 2011-10-04 | 2015-03-03 | Qualcomm Incorporated | Low latency two-level interrupt controller interface to multi-threaded processor |
CN103544125B (zh) * | 2012-07-12 | 2017-02-22 | 深圳市中兴微电子技术有限公司 | 中断的控制方法、中断的处理方法、中断控制器和处理器 |
JP6266239B2 (ja) * | 2013-07-11 | 2018-01-24 | ルネサスエレクトロニクス株式会社 | マイクロコンピュータ |
-
2016
- 2016-03-03 US US15/060,553 patent/US10067892B2/en active Active
- 2016-03-04 CN CN201680011051.1A patent/CN107251001B/zh active Active
- 2016-03-04 KR KR1020177024324A patent/KR20170122758A/ko unknown
- 2016-03-04 WO PCT/US2016/020942 patent/WO2016144777A1/en active Application Filing
- 2016-03-04 EP EP16710384.5A patent/EP3265921B1/en active Active
- 2016-03-07 TW TW105106920A patent/TW201638770A/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI681338B (zh) * | 2018-05-31 | 2020-01-01 | 瑞昱半導體股份有限公司 | 計時裝置及其運作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107251001B (zh) | 2020-08-04 |
WO2016144777A1 (en) | 2016-09-15 |
EP3265921A1 (en) | 2018-01-10 |
US20160259741A1 (en) | 2016-09-08 |
CN107251001A (zh) | 2017-10-13 |
KR20170122758A (ko) | 2017-11-06 |
EP3265921B1 (en) | 2020-04-29 |
US10067892B2 (en) | 2018-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201638770A (zh) | 具有雙模式中斷之微控制器或微處理器 | |
US7386646B2 (en) | System and method for interrupt distribution in a multithread processor | |
EP3513281B1 (en) | Vector multiply-add instruction | |
US9703603B1 (en) | System and method for executing accelerator call | |
KR100681199B1 (ko) | 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치 | |
US10002102B2 (en) | Low-pin microcontroller device with multiple independent microcontrollers | |
US10303630B2 (en) | Configurable hardware accelerators | |
JPH07175666A (ja) | データプロセッサおよびその割込み要求処理方法 | |
US11086658B2 (en) | System performance enhancement with SMI on multi-core systems | |
JP2008152409A (ja) | 半導体集積回路 | |
US20030097543A1 (en) | Immediate operands | |
US3245047A (en) | Selective data transfer apparatus | |
JP2003058381A (ja) | プログラムによる例外処理設定を可能にしたプロセッサ | |
US8195919B1 (en) | Handling multi-cycle integer operations for a multi-threaded processor | |
US20080222336A1 (en) | Data processing system | |
CN114064123A (zh) | 指令处理方法、装置、设备及存储介质 | |
US20050278407A1 (en) | Addressing type of asynchronous divider | |
US8966149B2 (en) | Emulation of an input/output advanced programmable interrupt controller | |
CN108701031B (zh) | 寄存器访问控制 | |
US20090106540A1 (en) | Apparatus and method for remanipulating instructions | |
KR101646768B1 (ko) | 이퀄-모델 프로세서를 위한 인터럽트 처리장치 및 처리방법과 그 처리장치를 포함하는 프로세서 | |
US11816486B2 (en) | Efficient inter-thread communication between hardware processing threads of a hardware multithreaded processor by selective aliasing of register blocks | |
US8294721B2 (en) | Processor for three dimensional computer graphics | |
EP0933704B1 (en) | Data processor with protected non-maskable interrupt | |
JP2009181312A (ja) | プロセッサ |