TWI724608B - 微控制器架構及架構內資料讀取方法 - Google Patents
微控制器架構及架構內資料讀取方法 Download PDFInfo
- Publication number
- TWI724608B TWI724608B TW108139981A TW108139981A TWI724608B TW I724608 B TWI724608 B TW I724608B TW 108139981 A TW108139981 A TW 108139981A TW 108139981 A TW108139981 A TW 108139981A TW I724608 B TWI724608 B TW I724608B
- Authority
- TW
- Taiwan
- Prior art keywords
- bus
- memory
- data
- microcontroller
- cache
- Prior art date
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明提出一種微控制器架構,包括微控制器、系統記憶體、指令記憶體及資料記憶體,還包括相連接的第一匯流排及第二匯流排;微控制器連接第一匯流排及第二匯流排,指令記憶體及資料記憶體連接第一匯流排,系統記憶體連接第二匯流排。本發明同時提出一種架構內資料讀取方法。上述微控制器架構及架構內資料讀取方法將傳統的單匯流排分為第一匯流排與第二匯流排,其分別連接不同的元件,解決了傳統架構中存在的仲裁優先權、資料讀取延遲及效率低下等弊病,改善了微控制器架構的整體性能。
Description
本發明涉及微控制器,尤其涉及一種微控制器架構及架構內資料讀取方法。
目前,微控制器架構通常將指令線、資料線、系統線及直接記憶體存取控制器(Direct Memory Access,縮寫為DMA)等主程式直接藉由匯流排與記憶體及外部設備做資料的收送;這種做法會因為從埠連接過多的主埠造成微控制器無法在第一時間發送和接收資料,造成了系統不必要的延遲與仲裁優先順序的問題。
請參閱圖1,圖示為本發明技術領域先前技術的微控制器架構系統框圖。其中,微控制器、DMA、指令記憶體、資料記憶體、系統記憶體及外部設備均連接一條匯流排,一條匯流排承載了系統內全部的資料收送。
傳統的微控制器架構通常是將資料堆疊與指令堆疊存儲在系統記憶體內,而系統記憶體又同時支援多個主埠的資料收送,這時系統記憶體會出現性能瓶頸,這樣的架構方式會存在仲裁優先權與長延遲的問題。
另一方面,在實現DMA傳輸時,是由DMA直接掌管匯流排,因此,存在著一個匯流排控制權轉移問題,即DMA傳輸前,微控制器要把匯流排控制權交給DMA,而在結束DMA傳輸後,DMA應把匯流排控制權再交回給微控制器,DMA傳輸期間微控制器無法藉由匯流排與其它單元進行資料收送,浪費了系統資源,降低了效率。
有鑑於此,有必要提供一種微控制器架構及架構內資料讀取方法,以解決上述問題。
本發明提供一種微控制器架構,包括微控制器、系統記憶體、指令記憶體及資料記憶體,還包括相連接的第一匯流排及第二匯流排;所述微控制器連接所述第一匯流排及所述第二匯流排,所述指令記憶體及所述資料記憶體連接所述第一匯流排,所述系統記憶體連接所述第二匯流排;所述微控制器藉由所述第一匯流排與所述指令記憶體及所述資料記憶體進行資料收送,所述微控制器藉由所述第二匯流排與所述系統記憶體進行資料收送,所述指令記憶體及所述資料記憶體藉由所述第一匯流排連接的所述第二匯流排與所述系統記憶體進行資料收送。
進一步地,所述微控制器架構還包括快取記憶體及快取控制器;所述快取記憶體連接所述快取控制器,所述快取控制器連接所述第一匯流排及所述第二匯流排;所述快取控制器控制所述快取記憶體內的資料寫入或讀取,所述快取控制器藉由所述第一匯流排與所述微控制器進行資料收送,所述快取控制器藉由所述第二匯流排與所述系統記憶體進行資料收送。
進一步地,當所述微控制器需讀取所述系統記憶體內的資料時,會先藉由與所述第一匯流排連接的所述快取控制器檢查所述快取記憶體內是否有相同的資料;若所述快取記憶體內有相同的資料,則所述微控制器直接藉由所述快取控制器與所述第一匯流排讀取所述快取記憶體內的資料,反之則所述微控制器藉由所述第二匯流排讀取所述系統記憶體內的資料。
進一步地,所述微控制器架構還包括DMA;
所述DMA連接所述第二匯流排;所述DMA藉由所述第二匯流排與所述系統記憶體進行資料收送;所述DMA藉由所述第一匯流排與所述指令記憶體及所述資料記憶體進行資料收送。
進一步地,所述系統記憶體內的指令堆疊藉由所述第二匯流排連接的所述DMA或所述微控制器轉移到所述指令記憶體內,所述系統記憶體內的資料堆疊藉由所述第二匯流排連接的所述DMA或所述微控制器轉移到所述資料記憶體內。
進一步地,所述微控制器架構內的應用程式均存儲在所述系統記憶體內,常用的副程式存儲在所述指令記憶體與所述資料記憶體內。
進一步地,所述微控制器架構還包括外部設備;所述外部設備連接所述第二匯流排,藉由所述第二匯流排與所述微控制器進行資料及收送。
本發明同時提供一種微控制器架構內資料讀取方法,所述微控制器架構包括微控制器、系統記憶體、資料記憶體、指令記憶體、快取記憶體、與所述快取記憶體連接的快取控制器,以及與所述微控制器相連接的第一匯流排和第二匯流排;所述系統記憶體連接所述第二匯流排,所述快取控制器連接所述第一匯流排與所述第二匯流排,所述資料記憶體與所述指令記憶體均連接所述第一匯流排;所述方法包括:所述微控制器接收讀取所述系統記憶體內的資料與指令;所述微控制器藉由所述第一匯流排連接的所述快取控制器檢查所述快取記憶體內是否有與所述系統記憶體相同的資料;若所述快取記憶體內有相同的資料,則所述微控制器直接藉由所述快取控制器與所述第一匯流排讀取所述快取記憶體內的資料;
若所述快取記憶體內沒有相同的資料,則所述微控制器藉由所述第二匯流排讀取所述系統記憶體內的資料。
進一步地,所述微控制器架構還包括與所述第二匯流排連接的DMA;所述方法還包括:所述DMA藉由所述第二匯流排與所述系統記憶體進行資料收送;所述DMA藉由所述第二匯流排連接的所述第一匯流排與指令記憶體及資料記憶體進行資料收送。
進一步地,所述方法還包括:所述系統記憶體內的指令堆疊藉由所述第二匯流排連接的所述DMA或所述微控制器轉移到所述指令記憶體內;所述系統記憶體內的資料堆疊藉由所述第二匯流排連接的所述DMA或所述微控制器轉移到所述資料記憶體內。
上述發明提出的微控制器架構及架構內資料讀取方法,藉由將傳統的單匯流排分為第一匯流排與第二匯流排並分別連接不同的元件,解決了傳統架構中存在的仲裁優先權、資料讀取延遲及效率低下等弊病,改善了微控制器架構的整體性能。
100:微控制器架構
10:微控制器
20:系統記憶體
30:指令記憶體
40:資料記憶體
50:第一匯流排
60:第二匯流排
70:快取控制器
71:快取記憶體
80:DMA
90:外部設備
圖1是本發明技術領域先前技術的微控制器架構的模組示意圖。
圖2是本發明一實施例的微控制器架構的模組示意圖。
圖3是本發明一實施例的微控制器架構內資料讀取方法的流程示意圖。
為了能夠更清楚地理解本發明的上述目的、特徵與優點,下面結合附圖與具體實施方式對本發明進行詳細描述。需要說明的是,在不衝突的情況下,本申請的實施方式及實施方式中的特徵可以相互組合。
在下面的描述中闡述了很多具體細節以便於充分理解本發明,所描述的實施方式僅是本發明一部分實施方式,而不是全部的實施方式。基於本發明中的實施方式,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施方式,都屬於本發明保護的範圍。
除非另有定義,本文所使用的所有的技術與科學術語與屬於本發明的技術領域的技術人員通常理解的含義相同。本文中在本發明的說明書中所使用的術語只是為了描述具體的實施方式的目的,不是旨在限制本發明。
本文所使用的術語“及/或”包括一個或複數相關的所列項目的任意的與所有的組合。
請參閱圖2,圖示為本發明提出的微控制器架構一實施例的模組示意圖,微控制器架構100內包括微控制器10、系統記憶體20、指令記憶體30、資料記憶體40、第一匯流排50、第二匯流排60、快取控制器70、快取記憶體71、DMA80及外部設備90。
在本實施例中,微控制器10連接第一匯流排50及第二匯流排60;快取記憶體71連接快取控制器70,快取控制器70連接第一匯流排50及第二匯流排60;指令記憶體30連接第一匯流排50;資料記憶體40連接第一匯流排50;系統記憶體20連接第二匯流排60;DMA80連接第二匯流排60;外部設備90連接第二匯流排60;第一匯流排50連接第二匯流排60。
微控制器10藉由第一匯流排50分別與指令記憶體30及資料記憶體40進行資料收送,藉由第二匯流排60與系統記憶體20及外部設備90進行資料收送,指令記憶體30及資料記憶體40藉由第一匯流排50連接的第二匯流排60與系統記憶體20進行資料收送。
快取控制器70控制快取記憶體71內的資料寫入或讀取,快取控制器70藉由第一匯流排50與微控制器10進行資料收送,快取控制器70藉由第二匯流排60與系統記憶體20進行資料收送。
當微控制器10需讀取系統記憶體20內的資料時,會先藉由第一匯流排50連接的快取控制器70檢查快取記憶體71內是否有相同的資料;若快取記憶體71內有相同的資料則微控制器10直接藉由快取控制器70與第一匯流排50讀取快取記憶體71內的資料,反之則微控制器10藉由第二匯流排60讀取系統記憶體20內的資料。
DMA80藉由第二匯流排60與系統記憶體20進行資料收送,藉由第二匯流排60連接的第一匯流排50與指令記憶體30及資料記憶體40進行資料收送。
系統記憶體20內的指令堆疊可藉由第二匯流排60連接的DMA80或微控制器10轉移到指令記憶體30內,系統記憶體20內的資料堆疊可藉由第二匯流排60連接的DMA80或微控制器10轉移到資料記憶體40內。
微控制器架構100內的應用程式均存儲在系統記憶體20內,常用的副程式存儲在指令記憶體30與資料記憶體40內。
請參閱圖3,本發明同時提出一種微控制器架構內資料讀取方法,資料讀取方法應用於上述微控制器架構100。資料讀取方法的步驟如下:
S101:微控制器10接收系統記憶體20內的資料與指令。
S102:微控制器10藉由第一匯流排50連接的快取控制器70檢查快取記憶體71內是否有與系統記憶體20相同的資料;若快取記憶體71內有相同的資料,則進入步驟S103:微控制器10直接藉由快取控制器70與第一匯流排50讀取快取記憶體71內的資料;若快取記憶體71內沒有相同的資料,則進入步驟S104:微控制器10藉由第二匯流排60讀取系統記憶體20內的資料。
在一實施方式中,資料讀取方法還包括:
DMA80藉由第二匯流排60與系統記憶體20進行資料收送;DMA80藉由第二匯流排60連接的第一匯流排50與指令記憶體30及資料記憶體40進行資料收送。
在一實施方式中,資料讀取方法還包括:系統記憶體20內的指令堆疊藉由第二匯流排60連接的DMA80或微控制器10轉移到指令記憶體30內;系統記憶體20內的資料堆疊藉由第二匯流排60連接的DMA80或微控制器10轉移到資料記憶體40內。
本發明提出的微控制器架構100及架構內資料讀取方法,微控制器10可藉由第一匯流排50直接讀取指令記憶體30與資料記憶體40中的指令與資料,還可以直接與快取控制器70做資料收送,這時都不會有其它埠爭搶第一匯流排50的使用權;DMA80也可以藉由第二匯流排60完成直接記憶體訪問而無需微控制器10轉讓匯流排控制權;藉由將常用的副程式存儲在指令記憶體30與資料記憶體40內,增加了副程式在系統記憶體20內存儲的彈性並改善了系統記憶體20的效能。
使用本發明提出的微控制器架構100及架構內資料讀取方法,藉由將傳統的單匯流排分為第一匯流排50與第二匯流排60並分別連接不同的元件,解決了傳統架構方法中存在的仲裁優先權、資料讀取延遲及效率低下等弊病,改善了微控制器架構的整體性能。
對於本領域技術人員而言,顯然本發明不限於上述示範性實施例的細節,而且在不背離本發明的精神或基本特徵的情況下,能夠以其他的具體形式實現本發明。因此,無論從哪一點來看,均應將實施例看作是示範性的,而且是非限制性的,本發明的範圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義與範圍內的所有變化涵括在本發明內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。此外,顯然“包括”一詞不排除其他器或步驟,單數不排除複數。
以上所述,僅為本發明的較佳實施例,並非是對本發明作任何形式上的限定。另外,本領域技術人員還可在本發明精神內做其它變化,當然,這些依據本發明精神所做的變化,都應包含在本發明所要求保護的範圍之內。
100:微控制器架構
10:微控制器
20:系統記憶體
30:指令記憶體
40:資料記憶體
50:第一匯流排
60:第二匯流排
70:快取控制器
71:快取記憶體
80:DMA
90:外部設備
Claims (9)
- 一種微控制器架構,包括微控制器、系統記憶體、指令記憶體及資料記憶體,其改良在於,所述微控制器架構還包括相連接的第一匯流排及第二匯流排;所述微控制器連接所述第一匯流排及所述第二匯流排,所述指令記憶體及所述資料記憶體連接所述第一匯流排,所述系統記憶體連接所述第二匯流排;所述微控制器藉由所述第一匯流排與所述指令記憶體及所述資料記憶體進行資料收送,所述微控制器藉由所述第二匯流排與所述系統記憶體進行資料收送,所述指令記憶體及所述資料記憶體藉由所述第一匯流排連接的所述第二匯流排與所述系統記憶體進行資料收送;其中,所述微控制器架構還包括快取記憶體及快取控制器;所述快取記憶體連接所述快取控制器,所述快取控制器與所述第一匯流排和所述第二匯流排分別連接;所述快取控制器控制所述快取記憶體內的資料寫入或讀取,所述快取控制器藉由所述第一匯流排與所述微控制器進行資料收送,所述快取控制器藉由所述第二匯流排與所述系統記憶體進行資料收送,所述系統記憶體包括資料與指令。
- 如請求項1所述之微控制器架構,其中,當所述微控制器需讀取所述系統記憶體內的資料時,會先藉由與所述第一匯流排連接的所述快取控制器檢查所述快取記憶體內是否有相同的資料;若所述快取記憶體內有相同的資料,則所述微控制器直接藉由所述快取控制器與所述第一匯流排讀取所述快取記憶體內的資料,反之則所述微控制器藉由所述第二匯流排讀取所述系統記憶體內的資料。
- 如請求項1所述之微控制器架構,其中,所述微控制器架構還包括DMA;所述DMA連接所述第二匯流排; 所述DMA藉由所述第二匯流排與所述系統記憶體進行資料收送;所述DMA藉由所述第一匯流排與所述指令記憶體及所述資料記憶體進行資料收送。
- 如請求項3所述之微控制器架構,其中,所述系統記憶體內的指令堆疊藉由所述第二匯流排連接的所述DMA或所述微控制器轉移到所述指令記憶體內,所述系統記憶體內的資料堆疊藉由所述第二匯流排連接的所述DMA或所述微控制器轉移到所述資料記憶體內。
- 如請求項4所述之微控制器架構,其中,所述微控制器架構內的應用程式均存儲在所述系統記憶體內,常用的副程式存儲在所述指令記憶體與所述資料記憶體內。
- 如請求項1所述之微控制器架構,其中,所述微控制器架構還包括外部設備;所述外部設備連接所述第二匯流排,並藉由所述第二匯流排與所述微控制器進行資料收送。
- 一種微控制器架構內資料讀取方法,微控制器架構包括微控制器、系統記憶體、資料記憶體、指令記憶體、快取記憶體、與所述快取記憶體連接的快取控制器,以及與所述微控制器相連接的第一匯流排和第二匯流排;所述系統記憶體連接所述第二匯流排,所述快取控制器與所述第一匯流排和所述第二匯流排分別連接,所述資料記憶體與所述指令記憶體均連接所述第一匯流排;所述方法包括:所述微控制器接收讀取所述系統記憶體內的資料與指令;所述微控制器藉由所述第一匯流排連接的所述快取控制器檢查所述快取記憶體內是否有與所述系統記憶體相同的資料;若所述快取記憶體內有相同的資料,則所述微控制器直接藉由所述快取控制器與所述第一匯流排讀取所述快取記憶體內的資料;若所述快取記憶體內沒有相同的資料,則所述微控制器藉由所述第二匯流 排讀取所述系統記憶體內的資料。
- 如請求項7所述之微控制器架構內資料讀取方法,其中,所述微控制器架構還包括與所述第二匯流排連接的DMA;所述方法還包括:所述DMA藉由所述第二匯流排與所述系統記憶體進行資料收送;所述DMA藉由所述第二匯流排連接的所述第一匯流排與指令記憶體及資料記憶體進行資料收送。
- 如請求項8所述之微控制器架構內資料讀取方法,其中,所述方法還包括:所述系統記憶體內的指令堆疊藉由所述第二匯流排連接的所述DMA或所述微控制器轉移到所述指令記憶體內;所述系統記憶體內的資料堆疊藉由所述第二匯流排連接的所述DMA或所述微控制器轉移到所述資料記憶體內。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108139981A TWI724608B (zh) | 2019-11-04 | 2019-11-04 | 微控制器架構及架構內資料讀取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108139981A TWI724608B (zh) | 2019-11-04 | 2019-11-04 | 微控制器架構及架構內資料讀取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI724608B true TWI724608B (zh) | 2021-04-11 |
TW202119222A TW202119222A (zh) | 2021-05-16 |
Family
ID=76604885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108139981A TWI724608B (zh) | 2019-11-04 | 2019-11-04 | 微控制器架構及架構內資料讀取方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI724608B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200421101A (en) * | 2003-04-14 | 2004-10-16 | Renesas Tech Corp | Data transfer control apparatus |
TW200912660A (en) * | 2007-07-12 | 2009-03-16 | Atmel Corp | Dual bus matrix architecture for micro-controllers |
TW201222267A (en) * | 2010-11-26 | 2012-06-01 | Weltrend Semiconductor Inc | Double parallel bus operation structure |
TW201820155A (zh) * | 2016-11-03 | 2018-06-01 | 美商微晶片科技公司 | 具有可程式化優先等級的系統仲裁器 |
TW201822003A (zh) * | 2016-11-30 | 2018-06-16 | 挪威商諾迪克半導體股份有限公司 | 互連系統 |
TW201823974A (zh) * | 2011-12-22 | 2018-07-01 | 美商英特爾股份有限公司 | 執行置換運算的處理器及具有該處理器的電腦系統 |
TW201830256A (zh) * | 2017-02-13 | 2018-08-16 | 美商微晶片科技公司 | 用於循環緩衝區之自主硬體管理之裝置及方法 |
-
2019
- 2019-11-04 TW TW108139981A patent/TWI724608B/zh active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200421101A (en) * | 2003-04-14 | 2004-10-16 | Renesas Tech Corp | Data transfer control apparatus |
TW200912660A (en) * | 2007-07-12 | 2009-03-16 | Atmel Corp | Dual bus matrix architecture for micro-controllers |
TW201222267A (en) * | 2010-11-26 | 2012-06-01 | Weltrend Semiconductor Inc | Double parallel bus operation structure |
TW201823974A (zh) * | 2011-12-22 | 2018-07-01 | 美商英特爾股份有限公司 | 執行置換運算的處理器及具有該處理器的電腦系統 |
TW201820155A (zh) * | 2016-11-03 | 2018-06-01 | 美商微晶片科技公司 | 具有可程式化優先等級的系統仲裁器 |
TW201822003A (zh) * | 2016-11-30 | 2018-06-16 | 挪威商諾迪克半導體股份有限公司 | 互連系統 |
TW201830256A (zh) * | 2017-02-13 | 2018-08-16 | 美商微晶片科技公司 | 用於循環緩衝區之自主硬體管理之裝置及方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202119222A (zh) | 2021-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100932408B1 (ko) | 스위치 매트릭스를 통한 데이터 전송을 개선하는 흐름 제어방법 | |
KR101720134B1 (ko) | 버스 브리지 장치 | |
WO2016127552A1 (zh) | 一种直接内存存取dma控制器及数据传输的方法 | |
US8880745B2 (en) | Efficient scheduling of transactions from multiple masters | |
CN108959136B (zh) | 基于spi的数据传输加速装置、系统及数据传输方法 | |
US10956347B2 (en) | Data transfer device, arithmetic processing device, and data transfer method | |
US7865644B2 (en) | Method and apparatus for attaching multiple slave devices to a single bus controller interface while supporting command pipelining | |
CN102841869A (zh) | 一种基于fpga的多通道i2c控制器 | |
US20160371200A1 (en) | Configurable Mailbox Data Buffer Apparatus | |
US6782439B2 (en) | Bus system and execution scheduling method for access commands thereof | |
US8886844B2 (en) | Efficient scheduling of read and write transactions in dynamic memory controllers | |
CN111290983A (zh) | Usb传输设备及传输方法 | |
TWI724608B (zh) | 微控制器架構及架構內資料讀取方法 | |
US7203781B2 (en) | Bus architecture with primary bus and secondary or slave bus wherein transfer via DMA is in single transfer phase engagement of primary bus | |
US8938561B2 (en) | Time-sharing buffer access system | |
US20210133129A1 (en) | Architecture for microcontroller and method for reading data applied to microcontroller | |
US8462561B2 (en) | System and method for interfacing burst mode devices and page mode devices | |
US20150227481A1 (en) | System interconnect and operating method of system interconnect | |
US20100153610A1 (en) | Bus arbiter and bus system | |
US20150227475A1 (en) | Arbitration circuit and processing method of arbitration circuit | |
JP4567373B2 (ja) | データ転送装置及び通信データ処理システム | |
KR101324580B1 (ko) | 복수의 dma 채널을 갖는 메모리 시스템 및 복수의 dma 채널에 대한 통합 관리 방법 | |
JP2012123717A (ja) | データ処理装置 | |
KR20160072872A (ko) | 멀티코어 기반의 통신 데이터 처리를 위한 장치 및 이를 이용하여 중앙처리장치의 부하를 감소하는 방법 | |
JP2009169559A (ja) | データ転送装置 |