TW201710922A - 可組態之郵箱資料緩衝器裝置 - Google Patents
可組態之郵箱資料緩衝器裝置 Download PDFInfo
- Publication number
- TW201710922A TW201710922A TW105119229A TW105119229A TW201710922A TW 201710922 A TW201710922 A TW 201710922A TW 105119229 A TW105119229 A TW 105119229A TW 105119229 A TW105119229 A TW 105119229A TW 201710922 A TW201710922 A TW 201710922A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- configurable
- master
- slave
- core
- Prior art date
Links
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/16—Handling requests for interconnection or transfer for access to memory 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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Microcomputers (AREA)
- Logic Circuits (AREA)
- Multi Processors (AREA)
Abstract
本發明揭示一種單晶片微控制器,其具有一主控核心及至少一從屬核心。該主控核心係由一主控系統時鐘計時,且該從屬核心係由一從屬系統時鐘計時,且其中各核心與複數個周邊器件相關聯以分別形成一主控微控制器及一從屬微控制器。在該主控微控制器與該從屬微控制器之間提供一通信介面,其中該通信介面具有與一流量控制邏輯耦合之複數個可組態的方向資料暫存器;該流量控制邏輯係可組態以將一方向指派至該複數個可組態之資料暫存器之各者。
Description
本申請案主張2015年6月18日申請之美國臨時專利申請案第62/181,379號之優先權,該案為所有目的特此以引用的方式併入本文中。
本發明係關於一種多處理器嵌入式系統(諸如具有多個核心之微控制器)且特定言之,本發明係關於一種用於此一嵌入式系統之可組態之郵箱資料緩衝器裝置。
多處理器核心微控制器可經設計具有完全分離之核心且各核心可在一不同系統時鐘上操作。因此,為了提供在兩個核心之間通信之能力,一特定通信介面係必要的。特定言之,需要快速且可靠地跨越兩個處理器之間的一時鐘邊界移動小量資料之一構件。解決方案必須完全可組態且對於矽使用係有效的。
根據一實施例,一種單晶片微控制器可包括一主控核心及至少一從屬核心,其中該主控核心由一主控系統時鐘計時且該從屬核心由一從屬系統時鐘計時且其中各核心與複數個周邊器件相關聯以分別形成一主控微控制器及一從屬微控制器;該單晶片微控制器在該主控微控制器與該從屬微控制器之間進一步包括一通信介面,其中該通信介
面包括與一流量控制邏輯耦合之複數個可組態之方向資料暫存器;該流量控制邏輯係可組態以將一方向指派至該複數個可組態之資料暫存器之各者。如技術方案1之單晶片微控制器,進一步包括組態各方向資料暫存器之熔絲。
根據另一實施例,該單晶片微控制器可進一步包括組態各方向資料暫存器之組態暫存器。根據另一實施例,該單晶片微控制器可進一步包括經組態以相對於該複數個可組態之方向資料暫存器在該主控核心與該從屬核心之間提供交握信號之一交握邏輯塊。根據另一實施例,該通信介面可經進一步組態以界定複數個郵箱,其中該複數個可組態之資料暫存器之連續資料暫存器之一可組態數目被指派給各郵箱。根據另一實施例,該單晶片微控制器可進一步包括組態各方向資料暫存器之熔絲。根據另一實施例,該單晶片微控制器可進一步包括組態各方向資料暫存器之組態暫存器。根據另一實施例,在該單晶片微控制器之程式化期間,可指派一可組態之資料暫存器之一資料方向。根據另一實施例,在該單晶片微控制器之程式化期間,可程式化暫存器至一郵箱之指派及該複數個可組態之資料暫存器之各者之一資料方向之指派。根據另一實施例,各資料暫存器可由一方向信號及一交握信號控制。根據另一實施例,一郵箱之該等可組態之暫存器之一者可用作為一控制暫存器。根據另一實施例,該複數個可組態之資料暫存器之至少一者可作為一狀態暫存器。根據另一實施例,該複數個可組態之資料暫存器之至少一者可作為一命令暫存器。根據另一實施例,該單晶片微控制器可進一步包括複數個多工器,其等用於界定僅自該主控核心至該可組態之資料暫存器之一者之一寫入路徑及自該可組態之資料暫存器之該一者至該從屬核心之一讀取路徑或僅自該從屬核心至該可組態之資料暫存器之一者之一寫入路徑及自該可組態之資料暫存器之該一者至該主控核心之一讀取路徑。根據另一實施例,當
分別設定自該主控核心或從屬核心至該可組態之資料暫存器之一者之該寫入路徑時,自該可組態之資料暫存器之一者至該主控核心或從屬核心之一讀取路徑係可用的。根據另一實施例,當設定自該主控核心至該可組態之資料暫存器之一者之該寫入路徑時,該主控時鐘提供用於寫入該可組態之資料暫存器之該一者之一時鐘且該從屬時鐘提供用於讀取該可組態之資料暫存器之該一者之一時鐘。根據另一實施例,當設定自該從屬核心至該可組態之資料暫存器之一者之該寫入路徑時,該從屬時鐘提供用於寫入該可組態之資料暫存器之該一者之一時鐘且該主控時鐘提供用於讀取該可組態之資料暫存器之該一者之一時鐘。根據另一實施例,該單晶片微控制器可進一步包括該通信介面內之一讀取先進先出(FIFO)記憶體及一寫入FIFO記憶體,其中該讀取FIFO記憶體包括與該從屬核心耦合之一資料輸入及與該主控核心耦合之一資料輸出且該寫入FIFO記憶體包括與該主控核心耦合之一資料輸入及與該從屬核心耦合之一資料輸出。根據另一實施例,可視情況透過一組態暫存器啟用該讀取FIFO記憶體及寫入FIFO記憶體。根據另一實施例,該單晶片微控制器可進一步包括複數個從屬核心,其中該通信介面包括複數個資料暫存器設定,各資料暫存器設定包括與一流量控制邏輯耦合之複數個可組態之方向資料暫存器;該流量控制邏輯係可組態以將一方向指派至該複數個可組態之資料暫存器之各者。
根據另一實施例,在一種用於在一單晶片微控制器上之一主控核心與一從屬核心之間提供通信之方法中,其中該主控核心由一主控系統時鐘計時且該從屬核心由一從屬系統時鐘計時且其中各核心與複數個周邊器件相關聯以分別形成一主控微控制器及一從屬微控制器,該方法包括:在該主控微控制器與該從屬微控制器之間提供一通信介面,組態與一流量控制邏輯耦合之複數個可組態之方向資料暫存器以
形成各自郵箱,對於該複數個可組態之方向資料暫存器之各者組態自或至該主控核心之一資料方向;僅透過該複數個可組態之方向資料暫存器來交換該主控核心與該從屬核心之間的資料。
根據該方法之另一實施例,在該單晶片微控制器之程式化期間,透過熔絲執行組態之該等步驟。根據該方法之另一實施例,使用該主控核心與該從屬核心之間的交握信號來執行交換之該步驟。根據該方法之另一實施例,該複數個可組態之資料暫存器之連續資料暫存器之一可組態數目可被指派給各郵箱。根據該方法之另一實施例,一郵箱之該等可組態之暫存器之一者可用作為一控制暫存器。根據該方法之另一實施例,該複數個可組態之資料暫存器之至少一者可用作為一狀態暫存器或一命令暫存器。
100‧‧‧雙核心處理器件
110‧‧‧主控微控制器/核心/主控單元
112‧‧‧主控中央處理單元(CPU)/處理器/主控核心
114‧‧‧隨機存取記憶體
116‧‧‧快閃記憶體
118‧‧‧緩衝器/比較器單元/程式隨機存取記憶體(PRAM)存取
單元
120‧‧‧從屬單元/從屬微控制器/核心/從屬器件
122‧‧‧從屬中央處理單元/處理器
126‧‧‧專用程式隨機存取記憶體(PRAM)
128‧‧‧程式隨機存取記憶體(PRAM)封套資料單元
130‧‧‧通信介面/主控/從屬資料介面
140‧‧‧額外從屬單元
150‧‧‧額外從屬單元
200‧‧‧雙核心或多核心處理器件
310‧‧‧熔絲/組態記憶體
320‧‧‧熔絲/組態記憶體
330‧‧‧共用交握邏輯塊
340‧‧‧郵箱暫存器相關聯邏輯
350‧‧‧郵箱暫存器相關聯邏輯
410‧‧‧暫存器組
420‧‧‧組態熔絲
510‧‧‧緩衝器暫存器/郵箱緩衝器
520‧‧‧緩衝器暫存器/郵箱緩衝器
530‧‧‧多工器
540‧‧‧實際郵箱
550‧‧‧多工器
560‧‧‧多工器
570‧‧‧多工器
710‧‧‧先進先出(FIFO)
720‧‧‧先進先出(FIFO)
圖1展示一雙核心微控制器之一第一實施例之一方塊圖;圖2展示一雙核心或多核心微控制器之一第二實施例之一方塊圖;圖3展示根據各種實施例之通信介面之一更詳細方塊圖;圖4展示根據各種實施例之例示性郵箱組態;圖5展示一資料寫入通道(頂部)及一資料讀取通道(底部);圖6展示一郵箱交握協定順序圖;及圖7展示雙核心或多核心微控制器之一選用額外FIFO記憶體之一方塊圖。圖8展示一讀取FIFO中斷操作;及圖9展示根據各種實施例之經組合之郵箱及FIFO通信介面之一方塊圖。
如圖1及圖2中所展示,一雙核心或多核心處理器件100、200可
經設計以具有含一主控中央處理單元(CPU)112之一主控微控制器110及各自具有一從屬中央處理單元122之一或多個從屬單元120,其中各從屬中央處理單元122之一核心設計大體上可相同於或類似於主控CPU 112之核心設計。然而,根據其他實施例,從屬CPU 122可不同於主控CPU 112。主控微控制器具有其自身之周邊器件組,如圖1及圖2中所展示。一從屬單元120可或可不具有其自身之周邊器件組且因此由自身形成一微控制器。因此,各主控器件及從屬器件形成幾乎完全獨立之處理器件且可與一專用匯流排或通信介面130通信。圖1及圖2展示具有一主控微控制器110及一單個或多個從屬微控制器120之此一設計。提供允許在兩個核心110、120之間通信之一通信介面130。如所展示,各處理器112、122可在一哈佛架構中設計。然而,根據各種實施例之原理可易於轉換成一范紐曼架構。主控單元包括(例如)用作為程式記憶體之快閃記憶體116及用作為資料記憶體之隨機存取記憶體114,各自與主控核心112耦合。
如圖1及圖2中所展示,從屬單元120可經設計無需快閃記憶體。相反,提供一專用程式隨機存取記憶體126。歸因於事實:此記憶體係揮發性的,將根據各種實施例透過主控單元110負載此記憶體。此設計選擇具有優點:避免由快閃技術提供之一瓶頸。快閃記憶體大體上比RAM慢。因此,將不存在讀取延遲且從屬單元可依一更高執行速度操作,其對於某些高速應用程式(諸如(例如)SMPS應用程式)係非常有益。如上文所述,可根據各種實施例實施一個以上從屬單元120。若兩個核心相同,則主控核心112可經設計以包含額外指令;可不在從屬單元120中實施額外指令或額外指令在從屬單元中係無功能的。此等額外指令允許自快閃記憶體116傳送資料或將資料自一外部源傳送至從屬器件120之PRAM 126。例如,根據一實施例,可在一單晶片器件內實施多個核心且各核心可具有一經指派之組態暫存器,其
中此一暫存器之位元之一者可界定各自單元是一主控單元還是一從屬單元。可呈現僅允許該等核心之一者被設定為一主控單元之邏輯。一旦已設定此位元,可允許執行額外指令。在其他單元(從屬單元)中,不會執行此等指令;例如,此等指令可解釋為非法運算碼。
由主控單元110存取PRAM 126之控制邏輯可位於如圖1中所展示之具有緩衝器/比較器單元118之主控單元中。替代地,一類似單元可配置在如圖2中所展示之具有PRAM封套資料單元128之從屬單元120內。任一單元經設計以授予特定於主控單元110或特定於從屬單元120之PRAM之存取。其他實施例可將邏輯之一些部分置於主控核心內及將其他部分置於從屬核心中或將邏輯配置在兩個單元外部。類似地,通信介面130可位於任一單元內部或完全位於兩個單元外部。可由如圖2中使用虛線所指示之通信介面130提供PRAM存取單元118或128之額外控制。圖2亦使用虛線展示額外從屬單元140及150。所有單元可透過一匯流排及各從屬單元中之相關聯封套資料單元128連接。因此,實施例不受限於一雙核心實施方案。熟習此項技術者應瞭解其他實施方案係可行的。
根據各種實施例,提供兩種方法以在主控處理器與從屬處理器之間傳送資料。基於郵箱之資料管道係預設方法且總是存在。基於FIFO之資料管係一參數化選擇。各方法具有優點及缺點。
根據各種實施例,在與資料流量控制邏輯(其可係指派給任何郵箱之熔絲)之數個區塊耦合的通信介面130內,提供一組熔絲可組態之雙向n位元「郵箱」暫存器。整個說明書中之「雙向」意謂相對於當組態一暫存器時可選擇兩個方向之一者之暫存器。在操作中,各暫存器係單向的。然而,由於一郵箱可包含經組態以在任一方向上操作之暫存器,因此該郵箱可視為雙向。在一16位元雙核心微控制器中,此等暫存器將係n=16位元寬。一些額外緩衝消除時鐘多工問題且避免必
須在各方向上複製郵箱。因此,介於一個字與16個字之間的定址資料的區塊可變成一郵箱,其中根據一些實施例,待寫入/讀取之最後暫存器將引導硬體資料流量控制協定。因為各資料暫存器之方向係可程式化的,所以在討論資料傳送協定時,參考主控單元或從屬單元是沒有意義的。因此,術語「傳輸器」及「接收器」隨後係用以分別表示資料寫入處理器及資料讀取處理器。取決於資料暫存器方向,資料寫入處理器及資料讀取處理器可分別係主控單元及從屬單元,或從屬單元及主控單元。
根據一些實施例,可由(例如)一器件熔絲(每個郵箱一個器件熔絲)來判定一郵箱暫存器操作資料方向。這可藉由一新穎郵箱暫存器設計結構之使用而變得實用,如下文將更詳細解釋。
使用資料流量控制協定來控制對一郵箱內之(共用資源)資料暫存器的存取。因此,對一基於郵箱之資料管道的存取係互斥的(即無法藉由兩個處理器同時存取基於郵箱之資料管道)。在處理對另一處理器之存取控制之前,各處理器必須完成其存取。
然而,郵箱之所有內容將被記憶體映射,且不必須依任何特定順序存取(除經指派以處置必須由兩個處理器最後存取之硬體資料流量控制協定的郵箱暫存器以外)。
此外,不需要在記憶體中依序定址構成軟體管理緩衝器之郵箱。這在其中所傳送之資料由控制、狀態及系統資料之一混合物組成的應用程式中可係有益。此外,對於由一個以上資料暫存器組成之郵箱,郵箱內之所有資料暫存器的方向不必須相同。資料流量控制協定係用以在主控單元與從屬單元之間傳送存取控制,但僅指派至協定硬體之資料暫存器必須遵循所需資料方向規則。下文將就圖4更詳細解釋郵箱之數個可能組織至各種大小、方向及能力之緩衝器。此等組織及緩衝器僅為展現郵箱方案靈活性,且不意欲作為特定使用模型。其
他組態係可行的。
各資料流量控制邏輯塊可基於一熔絲位元欄位設定(每個資料流量控制區塊一個位元欄位)而指派給任何郵箱。上文之結果係:使用者可界定高達所支援之郵箱之數目之任何大小之一資料緩衝器(其可係受限制的)。一資料流量控制邏輯塊將被指派至待寫入之該緩衝器之最後元件。緩衝器內之元件(即,個別郵箱暫存器)可經組態用於在任一方向上操作(即,緩衝器內之資料既可寫入亦可讀取)。
僅讀取及寫入資料暫存器的多工源及目的處理器時鐘引入設計時序問題,使得其不實用(且迫使2個郵箱之樣例化,每個方向上一個郵箱)。然而,根據各種實施例,支援兩側上之一寫入緩衝器及寫入資料排佈管線之一共同讀取緩衝器(具有自寫入時鐘延遲之一多工時鐘),解決時序問題且導致一有效設計。
跨越時鐘邊界之資料導管由於上文概述之原因而通常係單向的。資料流量控制通常與跨越一時鐘邊界或其他介面之一資料導管之各元件相關聯。根據各種實施例,熔絲可用以指派交握邏輯以降低設計複雜度(主要降低特殊功能暫存器需求)。
在微控制器之組態期間,即當程式化主控快閃程式時,通常僅設定熔絲,例如透過一外部程式設計師器件。通常,一初始組態經設計用於一特定應用程式,且不需要在運行時間期間改變。因此,熔絲之使用可係較佳的。然而,可代以使用程式化郵箱之其他構件。例如,可使用任何類型之非揮發性記憶體來替代熔絲。
一多核心微控制器或嵌入式系統可經設計以包括一主控核心及一從屬處理器,如圖1或圖2中所展示。如上文所提及,與一共處理器不同,一從屬處理器係一完全功能獨立處理器核心且可具有複數個經指派或可指派之周邊器件。類似地,主控處理器可具有複數個經指派或可指派之周邊器件,且在其自身之時鐘上運行。因此,不同核心可
使用不同速度計時,例如根據一些實施例,從屬核心可使用一更高時鐘以能夠控制處理密集任務。藉由RAM之使用作為大體上比快閃記憶體快之程式記憶體亦使此變得可行。
根據各種實施例,在依不同時鐘率非同步運行之主控處理器與從屬處理器之間產生一簡單16位元資料通道。此一16位元通道可經設計以最初係雙向的,其中方向可透過熔絲或一組態暫存器在程式時間處固定、穩健及靈活性的且僅需要一最小矽佔據面積,特定言之當使用熔絲用於組態時。
圖3展示包含複數個郵箱暫存器MBXD0...MBXD15相關聯邏輯340、350及熔絲310、320以及將由郵箱暫存器MBXD0...MBXD15鏈接之一主控匯流排及一從屬匯流排之方塊圖。熔絲或組態記憶體310、320控制各郵箱暫存器之方向及交握選擇。亦提供一共用交握邏輯塊330。根據一實施例,十六個郵箱暫存器可配置在一16位元雙核心微控制器中。此等暫存器可指派給不同郵箱,其中各暫存器僅可指派給一郵箱。
圖4展示將包含資料、狀態及命令字之一主控/從屬資料介面130中之郵箱之不同可能組態。應注意不指派任何H/W資料流量控制。經由一軟體協定來控制存取。如圖4中所展示,郵箱可分成不同暫存器組410。據此而言,可使用組態熔絲420,如(例如)圖4之右側上所展示。熔絲420之區塊將前9個暫存器指派至第一郵箱,保持下一暫存器未使用且將後4個暫存器指派至第二郵箱。藉由將熔絲設定為(例如)Fh或任何其他預定義值而將最後兩個暫存器用作為狀態字及命令字。
實例1展示支援2個單向緩衝器、一命令字及一狀態字之一配置。一資料流量控制邏輯塊被指派至緩衝器之各者之最後存取之字(注意緩衝器長度在所支援之郵箱之數目之限制內係任意的)。一資料流量控制邏輯塊亦被指派至該命令字。然而,因為透過軟體控制對該
狀態字之存取,所以不需要任何資料流量控制邏輯塊。未使用郵箱暫存器MSIxMBXD9。
實例2展示支援2個雙向緩衝器及一命令字之一配置。一資料流量控制邏輯塊被指派至緩衝器之一者但不是另一者之最後存取之字。此係因為應用程式可確保僅一個處理器將在完成另一緩衝器存取之後存取緩衝器。一資料流量控制邏輯塊亦被指派至該命令字。
圖5展示圖5之上半部分中之一資料寫入通道及圖5之下半部分中之一資料讀取通道。左側表示主控單元側及右側表示從屬單元側。經由用於寫入操作及直接用於讀取操作之緩衝器暫存器510或520透過多工器530來存取實際郵箱540。郵箱540大體上由主控核心控制。然而,時鐘由主控單元或從屬單元透過多工器550提供。如圖5中所展示,一旗標cfg_mbox_master_data_rd[n]判定郵箱暫存器組態為相對於主控單元之一寫入通道(圖5之頂部)或一讀取通道(圖5之底部)。寫入僅由主控單元或從屬單元允許而讀取可由主控單元或從屬單元執行。可根據一實施例實施多工器560及570以支援傳輸器寫入,緊接著(例如)一讀取(此係因為實際郵箱更新延遲達一半循環)及選擇實際郵箱暫存器作為接收器之讀取源。
根據一實施例,對於傳輸器,若一郵箱被寫入且接著在讀取之1循環內被讀取,則硬體確證pipelined_wren且讀取來自恰被寫入之緩衝器暫存器510或520。若該郵箱在其被寫入之後的1循環之後之任何點處被讀取,則pipeline_wren=0且讀取來源於實際郵箱暫存器。但是,實際郵箱總是與郵箱緩衝器510或520一起更新。其他實施方案係可行的,其中傳輸緩衝器被讀取。對於接收器,很顯然,絕沒有寫入之MBOX緩衝器510/520不被讀取,所以信號pipelined_wren=0且選擇實際郵箱。
根據一實施例,除了其資料方向之外,16個MSI郵箱資料暫存器
MSIxMBXDn(其中0<=n<=15)之各者係相同。根據一些實施例,配置可含有8個資料流量控制協定硬體區塊,資料流量控制協定硬體區塊之各者可指派至任何資料暫存器以形成一郵箱。
下文更詳細描述一通信介面之一例示性實施例。所有郵箱MSIxMBXDn資料暫存器係單向使得暫存器內容絕沒有自主控單元埠及從屬單元埠兩者讀取/寫入。各MSIxMBXDn暫存器自主控單元(作為傳輸器)讀取/寫入且僅自從屬單元(作為接收器)讀取或自從屬單元(作為傳輸器)讀取/寫入且僅自主控單元(作為接收器)讀取,取決於所選定之通道資料方向。此方法避免資料寫入衝突且意欲簡化設計。
各郵箱資料暫存器可經熔絲組態為一讀取通道或一寫入通道(從主控單元角度來看)。對於郵箱[n]:
.cfg_mbox_master_data_rd[n]=0:資料暫存器組態為一主控資料寫入通道。
.cfg_mbox_master_data_rd[n]=1:資料暫存器組態為一主控資料讀取通道。
此概念提供適當靈活性替代使得所有暫存器為雙向(其使設計變得複雜化)。此一方法之主要缺點係各暫存器之資料方向在運行時間處固定。
根據各種實施例,支援一種自動資料流量控制機構以控制通過郵箱之資料之流量。
8個資料流量交握協定硬體區塊之各者控制位於MSIxMBXS暫存器中之兩個資料備妥狀態旗標(DTRDY_α,其中α係A、B、C、D、E、F、G或H)。一旗標係用於資料傳輸器且位於介面之傳輸側上之MSIxMBXS暫存器中。另一旗標係用於資料接收器且位於介面之接收側上之MSIxMBXS暫存器中。
因為資料傳輸器總是被假定為傳送起始器,所以不需要來自資
料接收器之一硬體資料請求。若應用程式需要起始一傳送之一資料請求,則必須透過軟體來處置該資料請求。接收處理器軟體將必須對傳輸處理器指示需要資料。此可透過一中斷或透過一基於郵箱之軟體命令協定來達成。
交握協定硬體區塊之各者具有與交握協定硬體區塊相關聯之一熔絲啟用(cfg_mbox_handshake_enable_n[7:0])。必須程式化熔絲以啟用對應交握協定硬體區塊。熔絲cfg_mbox_handshake_enable_n[0]對應於交握協定硬體區塊A,cfg_mbox_handshake_enable_n[1]對應於交握協定硬體區塊B等等。
8個協定區塊之各者由cfg_mbox_handshake_register_select[31:0]內之八個4位元欄位指派至一特定MSI郵箱資料暫存器。所選定之MSI郵箱暫存器稱為郵箱協定資料暫存器。未指派之郵箱暫存器稱為郵箱資料暫存器。協定資料暫存器可係一單一郵箱或透過軟體界定為一緩衝器之一組郵箱暫存器內之一郵箱暫存器。根據一些實施例,當郵箱界定為一緩衝器時,最後緩衝器必須存取至協定資料暫存器。類似地,當接收處理器看到資料已備妥且存取郵箱時,最後緩衝器亦必須存取至協定資料暫存器。
當任一處理器存取郵箱時,資料流量控制硬體處於閒置狀態中(MSIxMBXS.DTRDY_α=0)。傳輸處理器現可存取郵箱以起始資料傳送資料流量控制。資料流量控制如下文所描述操作,其中MSIxMBXDn假定為指派至協定硬體區塊α(即,MSIxMBXDn係一協定資料暫存器):
1.傳輸處理器:
a)寫入除最後資料字之外的所有資料字(若一緩衝器)
b)Din→MSIxMBXDn(最後資料寫入);1→DTRDY_α(自動);發送一「準備讀取」中斷至接收器(自動)
2.接收處理器:
接收「準備讀取」中斷1
a)讀取除最後資料字之外的所有資料字(若一緩衝器)
b)MSIxMBXDn_α Dout(最後資料讀取);0→DTRDY_α(自動);發送一「準備寫入」中斷至傳輸器(自動)
3.傳輸處理器:
接收「準備寫入」中斷
a)0→DTRDY_α(自動2)
b)迴路返回至[1]且視需要重複。
在步驟3a之後,完成資料流量控制,且傳輸處理器可退出或繼續發送更多資料(即,迴路返回至步驟1)。圖6中展示一協定順序圖。如上文所述,由一傳輸器設定之DTRDY_α旗標寫入至MSIxMBXDn暫存器將導致來自對應郵箱之一接收器資料流量控制協定中斷(「準備讀取」)。
類似地,由MSIxMBXDn暫存器之一接收器讀取清除DTRDY_α旗標將導致來自對應郵箱之一資料傳輸器資料流量控制協定中斷(「準備寫入」)。對於正確操作之資料流量控制,傳輸處理器不能發送新資料至郵箱通道直至傳輸處理器觀察到DTRDY_α=0。類似地,接收處理器在自郵箱讀取資料之前必須等待直至DTRDY_α=1(或接收處理器可讀取舊資料)。
儘管使用中斷意欲為管理郵箱資料流量控制協定之主要方法,但亦可使用軟體來輪詢狀態位元。在應用程式(其中透過一郵箱發送之資料待在一週期性控制程序內使用)中,郵箱資料流量控制狀態旗標之軟體輪詢可係較佳方法。傳輸處理器輪詢軟體及接收處理器輪詢軟體應測試其各自DTRDY_α旗標以判定資料流量控制之狀態。從傳輸處理器及接收處理器之角度,資料流量控制狀態位元之意義如下:
.傳輸處理器:
- DTRDY_α=0:準備發送資料(郵箱為空或資料陳舊)
- DTRDY_α=1:不準備發送資料(尚未讀取郵箱)
.接收處理器:
- DTRDY_α=0:準備接收資料(郵箱為空或資料陳舊)
- DTRDY_α=1:資料可用於讀取(但尚未讀取)
因為MSIxMBXDn暫存器不經受除POR/BOR之外的任何器件重設,所以若接收器軟體能夠使用資料,則因此保存資料。假設係:若一接收器讀取已在進行中(即,觸發中斷,或輪詢及發現設定DTRDY_α),則較佳地係回傳有效(若舊)資料替代一重設值。然而,所有DTRDY_α流量控制位元(主控單元及從屬單元兩者)經受主控單元(upbm_reset_n)重設。此係必要的以在重設退出之後初始化資料流量協定區塊。若主控單元經歷一重設,則將重設協定資料流量控制MSIxMBXS.DTRDY_α旗標之主控單元視圖及從屬單元視圖兩者。假定從屬單元重設自主控單元去耦合(熔絲MSRE=0)使得若重設一主控單元則從屬單元將繼續運行,若一主控單元(傳輸器)寫入至MSIxMBXDn暫存器緊接著一主控單元重設,則從屬單元(接收器)側中斷請求將不會發生。
若從屬單元經歷一重設,則將既不重設DTRDY_α流量控制位元之主控單元視圖,亦不重設DTRDY_α流量控制位元之從屬單元視圖。若一從屬單元(傳輸器)寫入至MSIxMBXDn暫存器緊接著一從屬單元重設,則主控單元(接收器)側中斷請求仍將正常發生。亦需要使用一主控單元重設來重設主控單元DTRDY_α流量控制位元及從屬單元DTRDY_α流量控制位元兩者,以避免一可能資料衝突條件。在當主控單元重設與從屬單元重設未經耦合(熔絲MSRE=0)且一從屬單元重設將不停用從屬單元(熔絲SSRE=0)時之從屬單元
MSIxMBXS.DTRDY_α旗標的情況中,若從屬單元DTRDY_α旗標係由一從屬單元重設來重設,則可出現一可能資料衝突條件。
若從屬單元DTRDY_α旗標在一從屬單元重設上經重設,則可重設主控單元,其重設DTRDY_α旗標之主控單元視圖,但不是從屬單元之視圖。這將留給(仍在運行中之)從屬單元服務從屬單元DTRDY_α旗標的機會,且可能在主控單元寫入至對應郵箱時,讀取對應郵箱(假定郵箱為空,此係因為主控單元DTRDY_α=0)。
若接收器DTRDY_α=1,則由接收器自MSIxMBXDn暫存器之一讀取將僅產生一資料流量控制協定中斷(「準備寫入」)。若接收器DTRDY_α=0(其將係自郵箱之新資料之初始讀取之後的情況),則藉由接收器之郵箱之一後續讀取將不具效應(除回傳目標郵箱之資料內容以外)。
這允許郵箱由用於移動通過郵箱之最後資料值之暫時儲存的接收器使用。然而,在自一郵箱讀取資料之後,郵箱之內容必須視為陳舊且經受由傳輸器改變(隨時)。因此,為成功管理郵箱暫時儲存,吾人假定適當位置存在一軟體資料傳送協定,使得資料接收器可防止資料傳輸器使用新資料任意重寫郵箱之內容。例如,若接收器必須自傳輸器請求資料(經由另一郵箱或一中斷),則傳輸器將不會重寫郵箱。
正如對於任何SFR之情況,MSIxMBXDn暫存器既可位元組存取或可字存取。為當使用資料緩衝器時支援位元組大小資料處理及字大小資料處理兩者,傳輸器協定暫存器之一MS位元組或字寫入將設定對應DTRDY_α旗標。類似地,接收器協定資料暫存器(位於MSI之另一側上)之一MS位元組或字讀取將設定對應DTRDY_α旗標。
若在器件上可用,則可使用DMA在MSI之主控單元側或從屬單元側上存取郵箱資料暫存器。郵箱資料流量控制協定將產生可與DMA操作相容之中斷,其允許個別郵箱暫存器內之資料在無需CPU介入的
情況下被傳送。當主控單元子系統及/或從屬單元子系統在閒置模式中操作時,亦支援郵箱之DMA存取。
對於待傳送之第一DMA資料值(或區塊),可由軟體或可藉由手動地在軟體中寫入第一資料值(或資料之區塊)來觸發經指派之傳輸器DMA通道。當DMA寫入至一郵箱協定資料暫存器(在一區塊傳送之情況中最後寫入)時,將設定對應DTRDY_α旗標。設定傳輸器DTRDY_α旗標將在介面之接收器側上產生一「準備讀取」中斷。接收器「準備讀取」中斷(在郵箱協定資料暫存器由傳輸器寫入之後起始,其設定DTRDY_α=1)將觸發對應接收器DMA通道,且引起對應接收器DMA通道讀取目標郵箱(或在一區塊傳送之情況中讀取若干郵箱)。藉此,對應接收器DMA通道將清除對應DTRDY_α旗標。清除接收器DTRDY_α旗標將在介面之傳輸器側上產生一傳輸器「準備寫入」中斷。這將觸發經指派之傳輸器DMA通道寫入下一資料值(或資料之區塊),且自動設定DTRDY_α旗標,其再次起始序列。
因為郵箱操作為依無關時鐘速度操作之兩個處理器之間之一資料導管,所以當所有資料及控制信號跨越時鐘邊界移動時,所有資料及控制信號必須同步。當寫入資料及當資料變得可用於接收時,這將在資料與控制信號之間產生延遲。這稱為郵箱通道延時。
同步延遲係來自MSIxMBXDn之一傳輸器寫入至對應接收器中斷請求之前緣的1個傳輸器時鐘+2個接收器時鐘。在接收器中斷請求之確證之前,資料將可用於由接收器讀取。對於輪詢接收器DTRDY_α旗標之應用程式,延遲係來自MSIxMBXDn之一傳輸器寫入至接收器DTRDY_α旗標更新之1個傳輸器時鐘+3個接收器時鐘。
類似地,來自MSIxMBXDn之一接收器讀取至對應傳輸器中斷請求之前緣的延遲將係1個接收器時鐘(以更新接收器DTRDY_α旗標)+2個傳輸器時鐘。對於輪詢傳輸器DTRDY_α旗標之應用程式,延遲
係來自MSIxMBXDn之一接收器讀取至對應傳輸器中斷請求之前緣的1個傳輸器時鐘+3個接收器時鐘。
因為協定交握係完全自動,所以促成超過資料傳送延時的所有其他延遲將係軟體輪詢、中斷或DMA傳送延時之一函數。
例如,參考圖6,若吾人假定中斷(其中啟用上下文交換)用以自一郵箱讀取資料/將資料寫入至一郵箱,且吾人排除將資料寫入至該郵箱之時間,則郵箱通道延時將係自傳輸器寫入循環之端至第一接收器ISR指令之1個(同步)傳輸器時鐘+2個(同步)+5個(異常處理)接收器時鐘。
若系統使用一DMA通道來移動資料,則郵箱通道延時由DMA傳送延時(3個循環)及先前所描述之同步延時組成。即,假定一DMA通道分配至傳輸器中之一郵箱及接收器中之一郵箱兩者,在傳輸器DMA緩衝器與接收器DMA緩衝器之間移動資料之一字之郵箱通道延時(假定無匯流排仲裁延遲發生)將係3個(DMA傳送)+1個(同步)傳輸器時鐘+2個(同步)接收器時鐘至接收器DMA通道請求。資料將在3個接收器時鐘之後到達接收器緩衝器。然而,在傳送之第一循環期間,DMA將讀取MSIxMBXDn,其將觸發回傳信號以清除傳輸器DTRDY_α旗標且起始另一傳送。所以回轉延時將係1個(DMA讀取)+1個(同步)接收器時鐘+2個(同步)傳輸器時鐘至下一傳輸器DMA通道請求。因此,每個傳送字之總往返路徑延遲係6個傳輸器時鐘+4個接收器時鐘。
所提出之實施例提供經由一熔絲選擇及鎖定一資料通道之資料流動方向之能力、將數個資料通道流量控制(交握)邏輯塊之一者指派給任何郵箱之能力及在非同步時鐘域之間產生一有利植入的雙向資料通道同時避免邏輯複製之能力。
圖7展示額外選用FIFO資料管道。一雙核心或多核心微控制器之
一實施例亦可包含一組兩個FIFO 710、720,如圖7中所展示;一FIFO用於自從屬單元之資料讀取及另一FIFO用於資料寫入至從屬單元。透過參數來判定各FIFO之存在及深度。FIFO用以協調主控處理器與從屬處理器之間的資料佇列。各FIFO通道資料流動係單向的以簡化設計及操作;一FIFO係一專用讀取資料通道,另一FIFO係一專用寫入資料通道。儘管存在固有同步延遲,但FIFO設計仍係使得不需要一資料備用(歸因於由於同步延遲或操作速度差異之緩慢佔用率計算,一資料備用通常經添加以適應寫入超限)。
若FIFO不會變空(或遭遇一錯誤條件),則主控單元及從屬單元會同時存取FIFO。因此,一FIFO可提供比在由另一處理器讀取之前必須由一處理器負載之一基於郵箱之資料管道更佳之一通量。
然而,依序負載及卸載FIFO內容且FIFO內容不像一郵箱資料管道內之資料般可隨機存取。一FIFO亦係(依據定義)單向的。這使得FIFO更佳地適於需要最快方法以在處理器之間傳送資料之區塊的應用程式。
若一參數MSI_FIFO_PRESENT=1,則一雙核心或多核心微控制器之一實施例亦可含有(例如)一2通道FIFO。FIFO用以協調主控處理器與從屬處理器之間的資料佇列。若FIFO不會變空(或遭遇一錯誤條件),則主控單元及從屬單元會同時存取FIFO。因此,一FIFO可提供比在由另一處理器讀取之前必須由一處理器負載之一基於郵箱之資料管道更佳之一通量。各FIFO通道資料流動係單向的以簡化設計及操作;一通道係一專用讀取資料通道,另一通道係一專用寫入資料通道,如圖7中所展示。為了一致,總是相對於主控處理器如何看待FIFO來指稱FIFO。
此外,FIFO資料暫存器不具有暫存器名稱內之相關聯方向。然而,基於主控單元如何看待此等暫存器,主控WFDATA暫存器將係寫
入FIFO資料寫入(輸入)暫存器,及從屬WFDATA暫存器將係寫入FIFO資料讀取暫存器。類似地,主控RFDATA暫存器將係讀取FIFO資料讀取(輸出)暫存器,及從屬RFDATA暫存器將係讀取FIFO資料寫入暫存器。在以下章節中,資料傳輸器係將資料寫入至一FIFO之處理器。相反,資料接收器係自一FIFO讀取資料之處理器。
每次清除對應賦能控制位元時(對於寫入FIGO,係MSIxFIFOCS.WFEN;及對於讀取FIFO,係MSIxFIFOCS.RFEN)將停用一FIFO。在一器件重設期間,清除FIFO賦能控制位元。在正常操作條件下,FIFO將保持啟用。然而,若存在一FIFO錯誤,或若從屬處理器已重設(或已停止回應且需要被重設),則MSIxFIFOCS.WFEN控制位元及MSIxFIFOCS.RFEN控制位元可用以視需要清除及重新初始化FIFO。當被停用時,擦除FIFO內容(重設為邏輯「0」),且位址指標初始化為FIFO空狀態,其中兩個指標均設定為彼此相等(在此情況中,全部為0)。亦設定FIFO空狀態位元(對於寫入FIFO,設定為MSIxFIFOCS.WFEMPTY;及對於讀取FIFO,設定為MSIxFIFOCS.RFEMPTY)。在啟用FIFO之後,空狀態位元將保持設定直至第一資料值寫入至FIFO時。
待自主控處理器傳遞至從屬處理器之資料由主控處理器寫入至寫入FIFO資料寫入暫存器(主控單元MSIxWFDATA[15:0])。接著,從屬單元可自寫入FIFO資料讀取暫存器(從屬單元MSIxWFDATA)讀取資料。待自從屬處理器傳遞至主控處理器之資料由從屬處理器寫入至讀取FIFO資料寫入暫存器,MSIxRFDATA[15:0]。接著,主控單元可自讀取FIFO資料讀取暫存器(MSIxRFDATA)讀取資料。
因為各資料暫存器存取修改資料通道FIFO位址指標,所以資料被寫入及讀取作為一單一實體(即一字或位元組)。FIFO資料寫入暫存器(主控單元MSIxWFDATA[15:0]及從屬單元MSIxRFDATA[15:0])係唯
寫暫存器。讀取此等暫存器將回傳所有0且不會影響FIFO位址指標。FIFO資料讀取暫存器(主控單元MSIxRFDATA[15:0]及從屬單元MSIxWFDATA[15:0])係唯讀。寫入至此等暫存器將無影響。當資料傳輸器寫入至FIFO資料寫入暫存器(對於寫入FIFO,係MSIxWFDATA;及對於讀取FIFO,係MSIx-RFDATA)時資料寫入至一FIFO內之下一自由位置。最後寫入至FIFO之資料保持在暫存器中且由下一系統時鐘邊緣上之FIFO FSM負載至FIFO記憶體。此暫存器之一讀取將回傳全部0。此暫存器係不可見於資料接收器處理器(位於FIFO之讀取側上)。
當負載經定址之FIFO位置時,寫入位址指標經調整以指向圓形緩衝器內之下一自由位置。若不存在剩餘自由位置,則設定FIFO全狀態位元(對於寫入FIFO,設定為MSIxFIFOCS.WFFULL;及對於讀取FIFO,設定為MSIx-FIFOCS.RFFULL)。
當資料接收器處理器讀取FIFO資料讀取暫存器(對於寫入FIFO,係MSIxWFDATA;及對於讀取FIFO,係MSIxRFDATA)時自一FIFO讀取資料。讀取循環將自由讀取指標定址之FIFO記憶體位置存取資料。
此暫存器係不可寫,亦不可見於資料傳輸器處理器(位於FIFO之寫入側上)。在讀取經定址之FIFO位置之後,讀取位址指標經調整以指向圓形緩衝器內之下一有效資料位置。若不存在待讀取之剩餘位置,則設定FIFO空狀態位元(對於寫入FIFO,設定為MSIxFIFOCS.WFEMPTY;及對於讀取FIFO,設定為MSIxFIFOCS.RFEMPTY)。
可以多種方式使用FIFO。可請求資料或可將資料推送至一處理器。可直接隱含(使用空狀態位元狀態或相關聯中斷)資料認可或間接隱含(使用一處理器來處理中斷)資料認可。
例如,根據一實施例,FIFO空狀態位元用以產生一中斷至資料傳輸器處理器。FIFO中斷觸發選擇位元(RFITSEL1:0]及WFITSEL[1:0])結合FIFO位址指標一起使用以判定何時針對接收處理器產生一資料有效中斷。此等中斷意欲用作為資料傳送協定之部分。然而,若應用程式不需要,則可在中斷控制器巨集內停用此等中斷。
根據一實施例,當一FIFO據信為空時,設定FIFO空狀態旗標且針對資料傳輸器處理器產生一FIFO空中斷。中斷可產生於空狀態旗標(對於寫入FIFO,係MSIxFIFOCS.WFEMPTY;及對於讀取FIFO,係MSIxFIFOCS.RFEMPTY)之邏輯0至邏輯1轉變上。將資料寫入至FIFO將清除空狀態旗標且將一資料有效中斷發送至接收器。
當傳輸器處理器寫入至FIFO時,可取決於FIFO中斷觸發選擇位元(對於讀取FIFO及寫入FIFO分別係RFITSEL1:0]及WFITSEL[1:0])之狀態結合FIFO指標之內容而產生一資料有效中斷脈衝,如圖8中所概述。
當資料寫入至一先前空FIFO時,清除空狀態旗標(對於寫入FIFO,係MSIxFIFOCS.WFEMPTY;及對於讀取FIFO,係MSIxFIFOCS.RFEMPTY)且其保持清除直至FIFO再次變空時。中斷產生於空狀態旗標之邏輯1至邏輯0轉變上。
當資料寫入將導致FIFO滿足由FIFO中斷觸發選擇位元界定之臨限值時,在引起臨限值被滿足之FIFO寫入(即,並非寫入至下一FIFO位址)之後產生一資料有效中斷。若資料寫入導致FIFO變得完全,則亦將設定全狀態旗標(對於寫入FIFO,設定為MSIxFIFOCS.WFFULL;及對於讀取FIFO,設定為MSIx-FIFOCS.RFFULL)且將保持設定直至FIFO不再完全時。
設定FIFO全狀態位元之後的FIFO(對於寫入FIFO,設定為MSIxFIFOCS.WFFULL;及對於讀取FIFO,設定為
MSIxFIFOCS.RFFULL),FIFO佔用邏輯將偵測到一潛流條件且設定潛流狀態旗標(對於寫入FIFO,設定為MSIxFIFOCS.WFOF;及對於讀取FIFO,設定為MSIxFIFOCS.RFOF)。注意將會忽略資料寫入,且將不會修改FIFO寫入指標,其保存FIFO之內容。
類似地,若一資料接收器在設定FIFO空狀態位元(對於寫入FIFO,設定為MSIxFIFOCS.WFEMPTY;及對於讀取FIFO,設定為MSIxFIFOCS.RFEMPTY)之後嘗試自FIFO讀取資料,則FIFO佔用邏輯將偵測到一潛流條件且設定潛流狀態旗標(對於寫入FIFO,設定為MSIxFIFOCS.WFUF;及對於讀取FIFO,設定為MSIxFIFOCS.RFUF)。注意在讀取之前將不會調整FIFO讀取指標(正如通常一樣),其導致最近讀取之FIFO位址之一重新讀取。
主控處理器及從屬處理器可直接彼此中斷。主控單元可藉由確證MSIx-CON.MTSIRQ控制位元而發佈一中斷請求至從屬處理器。類似地,從屬單元可藉由確證MSIxCON.STMIRQ控制位元而發佈一中斷請求至主控處理器。
透過使用中斷認可控制位元(對於主控至從屬中斷請求,係MSIxCON.MTSIACK;及對於從屬至主控中斷請求,係MSIxCON.STMIACK)而認可中斷。
所有主控/從屬中斷控制/狀態位元可由任一處理器讀取。中斷請求位元由請求處理器讀取/寫入,且中斷認可位元由中斷處理器透過MSIxCON控制暫存器讀取/寫入。中斷請求位元僅由中斷處理器讀取,且中斷認可位元僅由請求處理器透過MSIxSTAT狀態暫存器讀取。
根據一實施例,當主控單元確證MSIxCON.MTSIRQ位元時,主控單元與從屬時鐘同步以變成一從屬中斷。從從屬單元角度來看,MTSIRQ位元係MSIx-STAT.MTSIRQ處之一唯讀狀態位元。當服務該
中斷時,從屬單元必須藉由設定處置器內之某點處之MSIxCON.MTSIACK位元來認可該中斷。在同步至主控時鐘域之後,主控單元將觀察到MSIxSTAT.MTSIACK=1,且接著清除MSIxCON.MTSIRQ位元(之其視圖),並取消請求。當從屬單元觀察到MSIxSTAT.MTSIRQ=0時,交握由從屬單元完成。此時,從屬單元清除MSIxCON.MTSIACK以消除認可,且接著會退出中斷處置器。
當從屬單元確證MSIxCON.STMIRQ位元時,從屬單元與主控時鐘同步以變成一主控中斷。從主控單元角度來看,STMIRQ位元係MSIxSTAT.MTSIRQ處之一唯讀位元。當完成該中斷之服務時,主控單元必須藉由設定處置器之末端處之MSIxCON.STMIACK位元來認可該中斷。在同步至從屬時鐘域之後,從屬單元將觀察到MSIxSTAT.STMIACK=1,且接著清除MSIxCON.STMIRQ位元(之其視圖),並取消請求。當主控單元觀察到MSIxSTAT.STMIRQ=0時,交握由主控單元完成。此時,主控單元清除MSIxCON.STMIACK以消除認可及中斷處置器。
圖9展示如上文所解釋之一郵箱系統與圖1及圖2之通信介面130內之一FIFO系統之一組合。如上文所提及,根據一實施例,該FIFO可預設為停用且僅郵箱可在作用中且使用者可程式化器件以啟用該FIFO,例如藉由設定一相關聯控制暫存器中之一位元。
100‧‧‧雙核心或多核心處理器件
110‧‧‧主控微控制器/核心/主控單元
112‧‧‧主控中央處理單元(CPU)/處理器/主控核心
114‧‧‧隨機存取記憶體
116‧‧‧快閃記憶體
118‧‧‧緩衝器/比較器單元/程式隨機存取記憶體(PRAM)存取單元
120‧‧‧從屬單元/從屬微控制器/核心/從屬器件
122‧‧‧從屬中央處理單元/處理器
126‧‧‧專用程式隨機存取記憶體(PRAM)
130‧‧‧通信介面/主控/從屬資料介面
Claims (26)
- 一種單晶片微控制器,其包括一主控核心及一從屬核心,其中該主控核心係由一主控系統時鐘計時,且該從屬核心係由一從屬系統時鐘計時,且其中各核心與複數個周邊器件相關聯以分別形成一主控微控制器及一從屬微控制器;該單晶片微控制器在該主控微控制器與該從屬微控制器之間進一步包括一通信介面,其中該通信介面包括與一流量控制邏輯耦合之複數個可組態的方向資料暫存器;該流量控制邏輯係可組態以將一方向指派至該複數個可組態之資料暫存器之各者。
- 如請求項1之單晶片微控制器,進一步包括組態各方向資料暫存器之熔絲。
- 如請求項1之單晶片微控制器,進一步包括組態各方向資料暫存器之組態暫存器。
- 如請求項1之單晶片微控制器,進一步包括經組態以相對於該複數個可組態之方向資料暫存器在該主控核心與該從屬核心之間提供交握信號之交握邏輯塊。
- 如請求項1之單晶片微控制器,其中該通信介面可經進一步組態以界定複數個郵箱,其中該複數個可組態之資料暫存器之連續資料暫存器之一可組態數目被指派給各郵箱。
- 如請求項5之單晶片微控制器,進一步包括熔絲,以組態各方向資料暫存器。
- 如請求項5之單晶片微控制器,進一步包括組態暫存器,以組態各方向資料暫存器。
- 如請求項1之單晶片微控制器,其中在該單晶片微控制器之程式化期間,指派一可組態之資料暫存器之一資料方向。
- 如請求項5之單晶片微控制器,其中在該單晶片微控制器之程式化期間,程式化暫存器至一郵箱之指派及該複數個可組態之資料暫存器之各者之一資料方向的指派。
- 如請求項1之單晶片微控制器,其中各資料暫存器係由一方向信號及一交握信號控制。
- 如請求項5之單晶片微控制器,其中一郵箱之該等可組態之暫存器之一者係用作為一控制暫存器。
- 如請求項1之單晶片微控制器,其中該複數個可組態之資料暫存器之至少一者係作為一狀態暫存器。
- 如請求項1之單晶片微控制器,其中該複數個可組態之資料暫存器之至少一者係作為一命令暫存器。
- 如請求項1之單晶片微控制器,其包括複數個多工器,用於界定僅自該主控核心至該可組態之資料暫存器之一者之一寫入路徑及自該可組態之資料暫存器之該一者至該從屬核心之一讀取路徑,或僅自該從屬核心至該可組態之資料暫存器之一者之一寫入路徑及自該可組態之資料暫存器之該一者至該主控核心之一讀取路徑。
- 如請求項14之單晶片微控制器,其中當分別設定自該主控核心或從屬核心至該可組態之資料暫存器之一者之該寫入路徑時,自該可組態之資料暫存器之一者至該主控核心或從屬核心之一讀取路徑係可用的。
- 如請求項14之單晶片微控制器,其中當設定自該主控核心至該可組態之資料暫存器之一者之該寫入路徑時,該主控時鐘提供用於寫入該可組態之資料暫存器之該一者之一時鐘,且該從屬時鐘提供用於讀取該可組態之資料暫存器之該一者之一時鐘。
- 如請求項14之單晶片微控制器,其中當設定自該從屬核心至該 可組態之資料暫存器之一者之該寫入路徑時,該從屬時鐘提供用於寫入該可組態之資料暫存器之該一者之一時鐘,且該主控時鐘提供用於讀取該可組態之資料暫存器之該一者之一時鐘。
- 如請求項1之單晶片微控制器,進一步包括該通信介面內之一讀取FIFO記憶體及一寫入FIFO記憶體,其中該讀取FIFO記憶體包括與該從屬核心耦合之一資料輸入及與該主控核心耦合之一資料輸出,且該寫入FIFO記憶體包括與該主控核心耦合之一資料輸入及與該從屬核心耦合之一資料輸出。
- 如請求項18之單晶片微控制器,其中視情況透過一組態暫存器啟用該讀取FIFO記憶體及寫入FIFO記憶體。
- 如請求項1之單晶片微控制器,進一步包括複數個從屬核心,其中該通信介面包括複數個資料暫存器設定,各資料暫存器設定包括與一流量控制邏輯耦合之複數個可組態的方向資料暫存器,該流量控制邏輯係可組態以將一方向指派至該複數個可組態之資料暫存器之各者。
- 一種用於在一單晶片微控制器上之一主控核心與一從屬核心之間提供通信之方法,其中該主控核心係由一主控系統時鐘計時,且該從屬核心係由一從屬系統時鐘計時,且其中各核心與複數個周邊器件相關聯以分別形成一主控微控制器及一從屬微控制器,該方法包括:在該主控微控制器與該從屬微控制器之間提供一通信介面,組態與一流量控制邏輯耦合之複數個可組態之方向資料暫存器,以形成各自郵箱,對於該複數個可組態之方向資料暫存器之各者,組態自或至該主控核心之一資料方向;僅透過該複數個可組態之方向資料暫存器來交換該主控核心 與該從屬核心之間的資料。
- 如請求項21之方法,在該單晶片微控制器之程式化期間,透過熔絲來執行組態之該等步驟。
- 如請求項21之方法,其中使用該主控核心與該從屬核心之間的交握信號來執行交換之該步驟。
- 如請求項21之方法,其中該複數個可組態之資料暫存器之連續資料暫存器之一可組態數目被指派給各郵箱。
- 如請求項24之方法,其中一郵箱之該等可組態之暫存器之一者係用作為一控制暫存器。
- 如請求項24之方法,其中該複數個可組態之資料暫存器之至少一者係作為一狀態暫存器或一命令暫存器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562181379P | 2015-06-18 | 2015-06-18 | |
US15/184,789 US10120815B2 (en) | 2015-06-18 | 2016-06-16 | Configurable mailbox data buffer apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201710922A true TW201710922A (zh) | 2017-03-16 |
Family
ID=56550308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105119229A TW201710922A (zh) | 2015-06-18 | 2016-06-17 | 可組態之郵箱資料緩衝器裝置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10120815B2 (zh) |
EP (1) | EP3311298A1 (zh) |
JP (1) | JP2018519587A (zh) |
KR (1) | KR20180019603A (zh) |
CN (1) | CN107810492B (zh) |
TW (1) | TW201710922A (zh) |
WO (1) | WO2016205675A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10002102B2 (en) * | 2015-03-13 | 2018-06-19 | Microchip Technology Incorporated | Low-pin microcontroller device with multiple independent microcontrollers |
US10002103B2 (en) * | 2015-03-13 | 2018-06-19 | Microchip Technology Incorporated | Low-pin microcontroller device with multiple independent microcontrollers |
CN106791152B (zh) * | 2016-12-30 | 2019-08-27 | Oppo广东移动通信有限公司 | 一种通信方法及移动终端 |
KR20210045009A (ko) * | 2019-10-16 | 2021-04-26 | 삼성전자주식회사 | 인터페이싱 장치, 인터페이싱 장치를 포함하는 반도체 장치 및 반도체 장치의 통신 방법 |
CN112732628A (zh) * | 2019-10-29 | 2021-04-30 | Oppo广东移动通信有限公司 | 核间数据处理方法、系统、片上系统以及电子设备 |
CN111427821B (zh) * | 2020-03-19 | 2021-10-01 | 深圳震有科技股份有限公司 | 双核amp系统共用spi接口的方法、系统及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496880B1 (en) | 1999-08-26 | 2002-12-17 | Agere Systems Inc. | Shared I/O ports for multi-core designs |
US6912716B1 (en) * | 1999-11-05 | 2005-06-28 | Agere Systems Inc. | Maximized data space in shared memory between processors |
US6957352B2 (en) * | 2002-03-15 | 2005-10-18 | Intel Corporation | Processor temperature control interface |
JP2004318628A (ja) * | 2003-04-18 | 2004-11-11 | Hitachi Industries Co Ltd | 演算処理装置 |
US20070113229A1 (en) * | 2005-11-16 | 2007-05-17 | Alcatel | Thread aware distributed software system for a multi-processor |
JP2008059282A (ja) * | 2006-08-31 | 2008-03-13 | Olympus Corp | 分散処理システム、分散処理方法及びプログラム |
KR101430687B1 (ko) * | 2007-09-28 | 2014-08-18 | 삼성전자주식회사 | 다이렉트 억세스 부팅동작을 갖는 멀티 프로세서 시스템 및그에 따른 다이렉트 억세스 부팅방법 |
US20130160028A1 (en) | 2011-12-14 | 2013-06-20 | John E. Black | Method and apparatus for low latency communication and synchronization for multi-thread applications |
US20140075091A1 (en) * | 2012-09-10 | 2014-03-13 | Texas Instruments Incorporated | Processing Device With Restricted Power Domain Wakeup Restore From Nonvolatile Logic Array |
JP2014143284A (ja) * | 2013-01-23 | 2014-08-07 | Sony Corp | 記憶素子、半導体装置、および書込方法 |
-
2016
- 2016-06-16 US US15/184,789 patent/US10120815B2/en active Active
- 2016-06-17 CN CN201680035355.1A patent/CN107810492B/zh active Active
- 2016-06-17 JP JP2017562999A patent/JP2018519587A/ja active Pending
- 2016-06-17 EP EP16742453.0A patent/EP3311298A1/en not_active Ceased
- 2016-06-17 WO PCT/US2016/038115 patent/WO2016205675A1/en unknown
- 2016-06-17 KR KR1020177037091A patent/KR20180019603A/ko unknown
- 2016-06-17 TW TW105119229A patent/TW201710922A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20160371200A1 (en) | 2016-12-22 |
WO2016205675A1 (en) | 2016-12-22 |
EP3311298A1 (en) | 2018-04-25 |
CN107810492A (zh) | 2018-03-16 |
WO2016205675A9 (en) | 2017-01-12 |
KR20180019603A (ko) | 2018-02-26 |
JP2018519587A (ja) | 2018-07-19 |
CN107810492B (zh) | 2021-08-24 |
US10120815B2 (en) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10120815B2 (en) | Configurable mailbox data buffer apparatus | |
JP3661235B2 (ja) | 共有メモリシステム、並列型処理装置並びにメモリlsi | |
US7433977B2 (en) | DMAC to handle transfers of unknown lengths | |
US6996659B2 (en) | Generic bridge core | |
US20060080478A1 (en) | Multi-threaded DMA | |
US20210019185A1 (en) | Compute task state encapsulation | |
US8086766B2 (en) | Support for non-locking parallel reception of packets belonging to a single memory reception FIFO | |
JP4903801B2 (ja) | FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法 | |
US6892266B2 (en) | Multicore DSP device having coupled subsystem memory buses for global DMA access | |
JP2007220046A (ja) | バス装置、バスシステムおよび情報転送方法 | |
US20180137082A1 (en) | Single-chip multi-processor communication | |
JP6602579B2 (ja) | 半導体装置およびシステム | |
WO2017112529A1 (en) | Configuration arbiter for multiple controllers sharing a link interface | |
US20070156937A1 (en) | Data transfer in multiprocessor system | |
CN111290983A (zh) | Usb传输设备及传输方法 | |
US7805579B2 (en) | Methods and arrangements for multi-buffering data | |
CN114746853A (zh) | 存储器与分布式计算阵列之间的数据传输 | |
US8996772B1 (en) | Host communication device and method with data transfer scheduler | |
KR102206313B1 (ko) | 시스템 인터커넥트 및 시스템 인터커넥트의 동작 방법 | |
US20120011295A1 (en) | Method and apparatus for wireless broadband systems direct data transfer | |
WO2006042108A1 (en) | Multi-threaded direct memory access | |
KR20060112349A (ko) | 에스오씨 버스 시스템 및 버스 데이터 처리방법 | |
TWI724608B (zh) | 微控制器架構及架構內資料讀取方法 | |
JP4249741B2 (ja) | バスシステム及びバスシステムを含む情報処理システム | |
Yong et al. | FPGA design for reflective memory network communication technology |