TWI463325B - 電腦、嵌入式控制器及共享記憶體的方法 - Google Patents
電腦、嵌入式控制器及共享記憶體的方法 Download PDFInfo
- Publication number
- TWI463325B TWI463325B TW101133605A TW101133605A TWI463325B TW I463325 B TWI463325 B TW I463325B TW 101133605 A TW101133605 A TW 101133605A TW 101133605 A TW101133605 A TW 101133605A TW I463325 B TWI463325 B TW I463325B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- transaction
- serial peripheral
- peripheral interface
- processing unit
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Description
本發明係有關於一種電腦結構,且特別有關於嵌入式控制器以及中央處理單元之間記憶體的共享。
可使用不同技術來共享處理器之間的記憶體資源。例如,美國專利公告號7,818,529揭露一種整合式記憶體控制裝置,其包括第一介面解碼器、第二介面解碼器以及介面控制器。第一介面解碼器係經由第一串列週邊介面(serial peripheral interface,SPI)耦接於控制晶片(chip)、第二介面解碼器係經由通用傳送介面耦接於微處理器單元以及介面控制器係經由第二串列週邊介面耦接於記憶體。當介面控制器接收到來自控制晶片以及微處理器單元的請求信號時,介面控制器會經由第一與第二串列週邊介面而正確地從記憶體讀取出資料。另一方面,微處理器單元可停止繼續透過通用傳送介面從記憶體讀取出資料。因此,控制晶片以及微處理器單元可以共享相同的記憶體。
本發明實施例提供一種嵌入式控制器。上述嵌入式控制器包括一微控制器核心以及一記憶體控制電路。上述記憶體控制電路用以於一第一時脈速率,藉由一第一串列週邊介面與一中央處理單元晶片組進行通訊、於一第二時脈速率,藉由一第二串列週邊介面與一記憶體進行通訊、藉由上述第一與第二串列週邊介面來傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動、識別無記憶體異動被傳送於
上述第二串列週邊介面之時間間隔,以及從上述記憶體擷取出一資訊,以供上述微控制器核心於已識別之上述時間間隔進行操作,其中上述第一串列週邊介面不被匯流排仲裁所支援,以及上述第二時脈速率為固定。
在部分實施例中,上述資訊包括一軟體碼,用以運轉上述微控制器核心,以及其中上述記憶體控制電路在已識別之上述時間間隔從上述記憶體擷取出上述軟體碼,並使上述微控制器核心來執行已擷取之上述軟體碼。在一實施例中,上述第二時脈速率係大於或等於上述第一時脈速率。在一實施例中,上述記憶體控制電路係根據使用在上述第一串列週邊介面之一第一時脈信號,來產生一第二時脈信號,以供在上述第二串列週邊介面使用。
在另一實施例中,當上述第二串列週邊介面被上述記憶體異動所佔用且上述記憶體控制電路無法從上述記憶體擷取出上述資訊時,上述微控制器核心繼續操作。在一實施例中,當上述記憶體控制電路無法從上述記憶體擷取出上述資訊時,上述微控制器核心係使用儲存在替代記憶體之一替代資訊來繼續操作。在另一實施例中,上述記憶體控制電路產生一有效信號,以指示上述記憶體控制電路是否能從上述記憶體擷取出上述資訊。
在部分實施例中,上述記憶體控制電路依照一第一異動類型與上述中央處理單元晶片組進行通訊,以及依照一第二異動類型與上述記憶體進行通訊,以便傳送一已知之記憶體異動,其中上述第二異動類型不同於上述第一異動類型。在另一實施例中,上述第一異動類型係提供一位址資訊於一第一數量之介面線上,而上述第二異動類型係提供上述位址資訊於一第二數量之介面線上,其中上述第二數量不同於
上述第一數量。在另一實施例中,上述第一異動類型係提供一資料資訊於一第一數量之介面線上,而上述第二異動類型係提供上述資料資訊於一第二數量之介面線上,其中上述第二數量不同於上述第一數量。
在另一實施例中,每一上述第一以及第二異動類型係包括從一類型群組中所選出之至少一異動類型,其中上述類型群組包括一正常異動、一快速讀取異動、一快速讀取雙倍輸出異動、一快速讀取雙倍輸入/輸出異動及一快速讀取四倍輸入/輸出異動。在另一實施例中,上述第一異動類型係由上述中央處理單元晶片組所設定,以及其中上述記憶體控制電路對上述第一異動類型進行識別,並根據所識別之上述第一異動類型而選擇上述第二異動類型。
在一實施例中,上述記憶體控制電路對一已知之記憶體異動的類型進行識別,並根據所識別之類型而選擇上述第二時脈速率。在一實施例中,上述記憶體控制電路將位於上述第一串列週邊介面之一已知之記憶體異動轉變成位於上述第二串列週邊介面之複數記憶體異動。在另一實施例中,在一已知之異動中,上述記憶體控制電路將欲讀取之一位址從上述中央處理單元晶片組傳送至上述記憶體,並將從上述位址所讀取出之一資料從上述記憶體傳送至上述中央處理單元晶片組,使得上述資料在上述第一串列週邊介面中開始於一時脈週期被傳送,其中上述時脈週期係緊接地跟在上述位址之最後一位元。在一實施例中,分別在上述第一串列週邊介面與上述第二串列週邊介面之一第一時脈信號以及一第二時脈信號係彼此同步,並在上述已知之異動的一或多個週期具有已定義時序。
在部分實施例中,當一或多個虛擬週期被上述中央處理單元晶片組插入在上述第一串列週邊介面時,上述記憶體控制電路將上述虛擬
週期插入在由上述第二串列週邊介面所傳送之位址資訊與資料資訊之間。在一實施例中,在上述中央處理單元晶片組要求一資料之前,上述記憶體控制電路從上述記憶體預取出上述資料、以快取(cache)的方式儲存上述資料並提供所儲存之上述資料至上述中央處理單元晶片組。
在另一實施例中,不管來自中央處理單元晶片之所接收的一讀取狀態異動,上述記憶體控制電路從上述記憶體預取出一狀態資訊,並在接收到上述讀取狀態異動後,提供所預取之上述狀態資訊至上述中央處理單元晶片組。在另一實施例中,在上述中央處理單元晶片組之一起動階段的期間,上述記憶體控制電路從上述記憶體預取出一描述符區段並儲存上述描述符區段於上述嵌入式控制器之一內部記憶體,以及在上述起動階段之後,上述憶體控制電路提供所儲存之描述符區段至上述中央處理單元晶片組。
再者,本發明實施例提供一種方法。使用一嵌入式控制器,於一第一時脈速率,藉由一第一串列週邊介面與一中央處理單元晶片組進行通訊、於一第二時脈速率,藉由一第二串列週邊介面與一記憶體進行通訊,其中上述第一串列週邊介面不被匯流排仲裁所支援,以及上述第二時脈速率為固定。藉由上述第一與第二串列週邊介面,傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動。識別無記憶體異動被傳送於上述第二串列週邊介面之時間間隔。從上述記憶體擷取出一資訊,以供上述嵌入式控制器於已識別之上述時間間隔進行操作。
再者,本發明實施例提供一種電腦,包括一中央處理單元晶片組、一記憶體以及一嵌入式控制器。上述嵌入式控制器,用以於一第一時
脈速率,藉由一第一串列週邊介面與一中央處理單元晶片組進行通訊、於一第二時脈速率,藉由一第二串列週邊介面與一記憶體進行通訊、藉由上述第一與第二串列週邊介面來傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動、識別無記憶體異動被傳送於上述第二串列週邊介面之時間間隔,以及從上述記憶體擷取出一資訊,以供上述微控制器核心於已識別之上述時間間隔進行操作。上述第一串列週邊介面不被匯流排仲裁所支援,以及上述第二時脈速率為固定。
為讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉出實施例,並配合所附圖式,作詳細說明如下:
實施例:
在部分電腦架構中,電腦包括嵌入式控制器(embedded controller,EC),其可結合電腦之中央處理單元(central processing unit,CPU)進行操作。嵌入式控制器通常可實行不同系統功能,例如鍵盤掃瞄、電源管理、電池充電以及風扇控制。
本發明之實施例提供改良之嵌入式控制器結構及其方法。本發明所揭露之技術可使電腦之中央處理單元晶片組(簡稱為晶片組(chipset))以及嵌入式控制器能共享相同的記憶體,於是不需要考慮到嵌入式控制器之專屬個別之記憶體元件的需求。舉例來說,本發明所揭露之技術可將嵌入式控制器之程式碼儲存在共享的外部記憶體,而非內部的記憶體,以供嵌入式控制器能即時地從共享記憶體來提取以及執行程式碼。整體看來,在晶片組以及嵌入式控制器之間共享記憶體資源能減少嵌入式控制器以及電腦之成本與耗電,並可降低零件數以及簡化
電腦結構。
在本發明之實施例中,共享之記憶體係包括串列快閃記憶體,其係使用串列週邊介面進行通訊。嵌入式控制器係使用串列週邊介面而連接於晶片組以及記憶體之間,即經由第一串列週邊介面連接於晶片組而經由第二串列週邊介面連接於記憶體。第一串列週邊介面不支援仲裁(arbitration)。嵌入式控制器包括可執行不同系統控制功能之微控制器核心以及可執行記憶體共享之記憶體控制電路。
記憶體控制電路可藉由兩串列週邊介面在晶片組以及記憶體之間來傳送記憶體異動(memory transaction)。此外,記憶體控制電路可識別出在第二串列週邊介面上,晶片組與記憶體之間無記憶體異動被傳送的時間間隔(time interval),並使用這些時間間隔來從記憶體中提取出資訊(例如程式碼),以供微控制器核心進行操作。假如晶片組之記憶體異動被啟動而嵌入式控制器之記憶體異動正在進行時,為了能優先處理晶片組之記憶體異動,嵌入式控制器之記憶體異動會被中止。
通常,記憶體控制電路會根據第一時脈信號(晶片組端)的時脈信號,來產生第二串列週邊介面之時脈信號(記憶體端)。記憶體端之串列週邊介面的時脈信號係產生在固定之時脈速率(clock rate),其係高於晶片組端之時脈信號的時脈速率,以及兩時脈信號係彼此同步,即一時脈速率係另一時脈速率的倍數(不一定要為整數倍)且兩時脈信號為互相鎖住。(固定一詞係表示在一已知的記憶體異動中為固定。記憶體端的時脈速率可以在不同的異動中被設定成不同值,其將描述於後)。
在記憶體端之串列週邊介面的高時脈速率可致能嵌入式控制器之傳送操作,以符合晶片組-記憶體介面規格的時序要求。由於晶片組-記憶體介面通常不允許任何等待狀態(wait state),因此時序的特性就特
別地重要。此外,高時脈速率可縮短第二串列週邊介面上的記憶體異動,以便留下更多時間而能從記憶體提取出資訊至嵌入式控制器的微控制器。
不同的傳送方式描述於此,其適合由記憶體以及晶片組所支援的不同能力以及命令。此外,亦描述可排除飢餓(starvation)情況之不同技術,其中晶片組之記憶體異動會不斷地阻擋嵌入式控制器之微控制器核心所提取的資訊。此外,甚至當嵌入式控制器之微控制器核心在長時間中無法從記憶體提取出資訊時,本發明實施例所揭露之技術可致能微控制器核心來繼續操作。
系統描述
第1圖係顯示根據本發明一實施例所述之電腦20之方塊圖。電腦20可以是,例如,膝上型電腦、筆記型電腦、平板電腦,或是其他適合的電腦類型。為了簡化說明,將省略電腦20中非必要的元件。
電腦20包括中央處理單元(CPU)晶片組24(以下簡稱晶片組24),例如英特爾奔驣(Intel Pentium)晶片組。晶片組24可包括一或多個積體電路(integrated circuit,IC)。電腦20更包括嵌入式控制器28,其能實行不同的系統功能,例如,鍵盤掃瞄、電源管理、電池充電、風扇控制和/或任何其他適合的功能。
晶片組24與嵌入式控制器28皆使用快閃記憶體32之記憶體資源。在晶片組24與嵌入式控制器28之間,共享快閃記憶體32的存取之技術將詳細描述於後。在此實施例中,快閃記憶體32包括串列快閃記憶體元件,其使用串列週邊介面(SPI)進行通訊。例如,快閃記憶體32可以是串列週邊介面之記憶體,其為具有4K位元組之扇區(sector)
以及雙輸出串列週邊介面的16M位元、32M位元與64M位元之串列快閃記憶體。例如,快閃記憶體可以是華邦電子(台中市,台灣)所生產的產品W25X16、W25X16A、W25X32與W25X64。這些元件係明確描述於2008年5月5日之“Spiflash-具有4K位元組之扇區(sector)以及雙輸出串列週邊介面的16M位元、32M位元與64M位元。此外,任何合適的記憶體元件亦可以被使用。
參考第1圖,嵌入式控制器28係使用兩串列週邊介面而連接於晶片組24以及快閃記憶體32之間。第一串列週邊介面C-SPI係用來在嵌入式控制器28以及晶片組24之間進行通訊。第二串列週邊介面M-SPI係用來在嵌入式控制器28以及快閃記憶體32之間進行通訊。嵌入式控制器28包括微控制器核心36,其可實行嵌入式控制器28之不同系統功能。微控制器核心36可簡稱為微控制器。此外,嵌入式控制器28包括記憶體控制電路,其可實行本發明所描述之記憶體共享方式。在此實施例中,記憶體控制電路包括串列週邊介面橋(SPI bridge)40、快閃記憶體介面44以及緩衝器48。
串列週邊介面橋40在晶片組24以及快閃記憶體32之間傳送記憶體異動(例如讀取、寫入以及抹除異動)。此外,串列週邊介面橋40在微控制器核心36以及快閃記憶體32之間提供資訊路徑。例如,由微控制器核心36所即時執行的碼會通過串列週邊介面橋40(執行快取或非快取)。串列週邊介面橋40的操作將詳細描述於後。
快閃記憶體介面44設置於微控制器核心36以及串列週邊介面橋40之間。快閃記憶體介面44藉由核心匯流排CORE BUS與微控制器核心36進行通訊,並藉由串列週邊介面SPI與串列週邊介面橋40進行通訊。在部分實施例中,快閃記憶體介面44會接收來自於串列週邊
介面橋40之有效信號VALID,其係指示從快閃記憶體32所提取的資訊對微控制器核心36是否有效。在此實施例中,緩衝器48為64位元組之緩衝器,其係用來從快閃記憶體32中預先提取出資訊。
第1圖中,嵌入式控制器28的配置僅是個例子。在其他實施例中,任何其他合適的嵌入式控制器之配置可以被使用。嵌入式控制器28之不同元件的功能可以以硬體、軟體或其組合而實施。
在部分實施例中,嵌入式控制器28的部分功能係由可編程處理器所實施,其使用軟體進行編程,以實行所描述之功能。軟體可透過網路以電子形式下載至處理器。例如,二擇一地或是額外地,由非過渡實際媒體(non-transitory tangible media)所提供和/或儲存,例如磁性、光學或是電子記憶體。
在晶片組與嵌入式控制器之間共享串列週邊介面快閃記憶體
如先前所描述,串列週邊介面橋40在晶片組24以及快閃記憶體32之間傳送記憶體異動。通常,在晶片組24以及快閃記憶體32之間的介面規格會在記憶體異動中制訂嚴格的時序要求。介面規格通常不允許任何等待狀態或仲裁,並且在記憶體以及單一晶片組之間採用點對點連接。串列週邊介面橋40在晶片組24以及快閃記憶體32之間傳送記憶體異動,並亦在微控制器核心36以及快閃記憶體32之間安排資訊的程序,以符合嚴格的時序要求。
在部分實施例中,串列週邊介面橋40會傳送不同類型的記憶體異動。例如,在時脈速率為20MHz之標準讀取命令、在時脈速率為20MHz、33MHz與50MHz之快速讀取命令、寫入與抹除命令、控制與狀態命令及/或任何其他適合的記憶體異動。串列週邊介面橋40在
微控制器核心36以及快閃記憶體32之間控制以及安排程式碼或是其他交換資訊,例如時脈速率高達50MHz。在部分實施例中,在由晶片組24所啟動的異動以及由微控制器核心36所啟動的異動之間,第二串列週邊介面M-SPI的時脈速率可不同。
在部分實施例中,串列週邊介面橋40根據從第一串列週邊介面C-SPI所接收之時脈信號,來產生第二串列週邊介面M-SPI之時脈信號。串列週邊介面橋40通常會以較高的時脈速率來產生第二串列週邊介面M-SPI之時脈信號,其時脈速率係高於第一串列週邊介面C-SPI之時脈信號的時脈速率。一般而言,第二串列週邊介面M-SPI之時脈速率為固定,並且為第一串列週邊介面C-SPI之時脈速率的倍數(分數或是整數)。在一實施例中,第二串列週邊介面M-SPI之時脈速率係高於第一串列週邊介面C-SPI之時脈速率的4/3倍,儘管任何其他適合的比例可以被使用。在部分實施例中,至少對特定類型的異動而言,兩時脈信號係彼此同步,即具有較少或是無相互(mutual)的漂移(drift)或抖動(jitter)。對其他類型的異動而言,嚴格的同步係不需要的。較高之第二串列週邊介面M-SPI之時脈速率可獲得的效能優點將描述於後。因為第二串列週邊介面M-SPI上的較高時脈速率,串列週邊介面橋40通常能在晶片組24要求之前,先從快閃記憶體32預取出資料。預取出的資料會被快取(cache)至緩衝器48。
在部分實施例中,當傳送記憶體異動時,串列週邊介面橋40會調變異動的類型。舉例來說,串列週邊介面橋40會從晶片組24接收到快速讀取命令或是快速讀取雙倍輸出命令,並將接收到的命令轉變成雙倍輸入/輸出(dual I/O)或是四倍輸入/輸出(Quad I/O)讀取命令(即讀取命令的位址資訊以及資料資訊係以並列方式提供在二或四個介面線
上),並傳送至快閃記憶體32。在這些實施例中,當傳送記憶體異動時,串列週邊介面橋40會使用一種異動類型與晶片組24進行通訊,而使用另外的異動類型與快閃記憶體32進行通訊,並在兩種異動類型之間進行轉變(雙向)。
異動類型,例如,雙倍輸入/輸出以及四倍輸入/輸出會致能第二串列週邊介面M-SPI,以短異動(相較於第一串列週邊介面C-SPI的異動)的方式而操作在相對低之匯流排的使用。即便當晶片組24不支援這些異動類型(快閃記憶體32所支援的)時,先前所描述之異動技術可致能第二串列週邊介面M-SPI,使用短異動在低匯流排使用的情況下進行操作。結果,對中央處理單元晶片組24之記憶體異動的較低匯流排使用而言,有較多時間能在第二串列週邊介面M-SPI上使用,以便在快閃記憶體32以及微控制器核心36之間交換資訊。此外,由於大量之晶片組記憶體異動在傳送,微控制器核心36會被阻擋與快閃記憶體32進行通訊,而異動技術可減少飢餓情況的可能性。
串列週邊介面橋40使用不同類型的異動傳送至晶片組24以及傳送至快閃記憶體32的傳送方法將詳細描述於後,即第4圖與第5圖。在部分實施例中,串列週邊介面橋40會維持相同之異動類型傳送至晶片組24以及傳送至快閃記憶體32,如第3A-3C圖所顯示。
在部分實施例中,串列週邊介面橋40係根據記憶體異動的類型以及第一串列週邊介面C-SPI的時脈速率,而來選擇第二串列週邊介面M-SPI之時脈速率。例如,假如第一串列週邊介面C-SPI係設在任何低於40MHz時脈速率之快速讀取異動(單一或雙倍輸入/輸出),串列週邊介面橋40會將第二串列週邊介面M-SPI之時脈速率設為第一串列週邊介面C-SPI之時脈速率的4/3倍。例如,假如第一串列週邊介面C-SPI
係設在50MHz時脈速率的快速讀取異動(單一或雙倍輸入/輸出),串列週邊介面橋40會將第二串列週邊介面M-SPI之時脈速率與第一串列週邊介面C-SPI之時脈速率設為相同值。
在部分實施例中,儘管在第二串列週邊介面M-SPI上從快閃記憶體32所提取之資訊被晶片組記憶體異動阻擋了長時間週期,微控制器核心36會繼續運轉。在一實施例中,串列週邊介面橋40檢查每一位元群組(例如32位元),其是從快閃記憶體32傳送至微控制器核心36。對每一位元群組而言,串列週邊介面橋40會發送有效信號VALID來指示該位元群組是否有效。位元群組可能是無效的,例如,由於第二串列週邊介面M-SPI上的晶片組記憶體異動,位元群組的檢索(retrieval)會被中止。當發現位元群組為無效的,串列週邊介面橋40會重試以傳送該位元群組,直到該位元群組成功地被傳送。
在部分實施例中,當微控制器核心36無法接收到來自快閃記憶體32的資訊(例如程式碼)時,微控制器核心36不能停止或暫停。例如,在部分實施例中,嵌入式控制器28包括小的內部記憶體(未顯示),其包含另一程式碼,用以當無法使用快閃記憶體32時,可供微控制器核心36來執行。在這種情況下,微控制器核心36能使用另一程式碼來維持運行。在一實施例中,另一程式碼可實行基本系統功能,以防止電腦20的損害,例如溫度監控以及風扇控制。
在部分實施例中,串列週邊介面橋40會將第一串列週邊介面C-SPI的長晶片組記憶體異動劃分成第二串列週邊介面M-SPI的多個較短的記憶體異動。此技術具有較高效率,能使第二串列週邊介面M-SPI之嵌入式控制器的記憶體異動的有效時間較頻繁,以減少微控制器核心36之飢餓週期。在部分實施例中,串列週邊介面橋40使用
較高的第二串列週邊介面M-SPI的時脈速率和/或雙倍或四倍-輸入/輸出異動類型,來將第二串列週邊介面M-SPI上的長晶片組異動劃分成較短的異動。在一實施例中,串列週邊介面橋40會從快閃記憶體32預取出資料,並將資料以快取的方式儲存至緩衝器48。
第2圖係顯示嵌入式控制器28之操作方法的流程圖。首先,在步驟50,嵌入式控制器28在中央處理晶片24以及快閃快閃記憶體32之間傳送記憶體異動。在一般流程中,嵌入式控制器28的串列週邊介面橋40會透過第一串列週邊介面C-SPI而接收到來自晶片組24的記憶體異動(例如讀取、快速讀取或是快速讀取雙倍輸出),並對異動的命令碼(可識別出命令的類型)進行解碼,以便識別出異動的類型。串列週邊介面橋40會將進來的字元(例如位元組)進行緩衝,並透過第二串列週邊介面M-SPI以較高的時脈速率而傳送至快閃記憶體32。當在第二串列週邊介面M-SPI上接收到來自快閃記憶體32的回應時(例如相應於讀取命令之資料擷取),串列週邊介面橋40會將輸入的字元進行緩衝,並以較低的時脈速率透過第一串列週邊介面C-SPI而傳送至晶片組24。
在步驟54,在晶片組之記憶體異動的傳送期間,串列週邊介面快閃記憶體介面44可使用有效的指示來識別出無晶片組記憶體異動被傳送於第二串列週邊介面M-SPI的時間間隔。通常,快閃記憶體介面44會識別出第二串列週邊介面M-SPI為閒置的時間間隔。在步驟58,快閃記憶體介面44使用這些時間間隔來從快閃記憶體32提取出資訊(例如程式碼),以供微控制器核心36使用。在部分實施例中(例如當快閃記憶體32係包括串列週邊介面隨機存取記憶體,而不是快閃記憶體),串列週邊介面橋40可使用已識別出之時間間隔,將來自微控制
器核心36之資訊儲存至快閃記憶體32中。在步驟62,微控制器核心36會使用從快閃記憶體32所提取的資訊(例如程式碼)進行操作。
正常讀取異動
第3A-3C圖係顯示根據本發明一實施例所述之嵌入式控制器28在中央處理單元24以及快閃記憶體32之間傳送記憶體異動的信號圖。在此實施例中,嵌入式控制器28的串列週邊介面橋40會在晶片組24以及快閃記憶體32之間傳送一正常(簡單)讀取異動。上方四個信號(C_SCK、C_CS0、C_SDIO與C_SDI)係屬於第一串列週邊介面C-SPI,而下方四個信號(F_SCK、F_CS0、F_SDIO與F_SDI)係屬於第二串列週邊介面M-SPI。
信號C_SCK是第一串列週邊介面C-SPI的串列時脈信號,而信號F_SCK是第二串列週邊介面M-SPI的串列時脈信號。在此實施例中,信號F_SCK的時脈速率係高於信號C_SCK的時脈速率約4/3倍。信號C_CS0與信號F_CS0係分別為第一串列週邊介面C-SPI以及第二串列週邊介面M-SPI的晶片選擇信號。信號C_SDIO與信號F_SDIO分別帶有第一串列週邊介面C-SPI以及第二串列週邊介面M-SPI的記憶體異動之命令碼以及位址字元(以及快速讀取雙倍或四倍-輸入/輸出的資料資訊)。信號C_SDI與信號F_SDI分別帶有第一串列週邊介面C-SPI以及第二串列週邊介面M-SPI的記憶體異動之資料以及位址。
第3A圖係顯示一般所傳送之異動。如第3A圖所顯示,串列週邊介面橋40會在信號C_SDIO上識別出正常讀取異動之命令碼(在此實施例為03h)。串列週邊介面橋40將第二串列週邊介面M-SPI之時脈速率設為第一串列週邊介面C-SPI之時脈速率的4/3倍,並在一連串
的位址字元之後,將來自晶片組24之命令碼傳送至快閃記憶體32。
緊接在最後位址字元之後,串列週邊介面橋40會將從快閃記憶體32所擷取到的資料傳送至晶片組24。由於第一串列週邊介面C-SPI與第二串列週邊介面M-SPI之間的時脈為同步,最後位址字元與擷取到的資料是有可能相鄰的。相較於第一串列週邊介面C-SPI的時脈速率,使用第二串列週邊介面M-SPI之較高時脈速率可得到最後位址位元的時序最佳化。
第3B與3C圖係描述從晶片組24傳送位址字元至快閃記憶體32以及從快閃記憶體32傳送資料字元至晶片組24之間的立即切換。如圖所顯示,在信號C-SDIO上最後位址字元的結束之後,可在信號C-SDI上得到第一資料資訊。在部分記憶體規格中,相鄰是必要的。
在此實施例中,串列週邊介面橋40使用高頻時脈信號HFCK(例如具有50%工作週期之150MHz時脈信號),從信號C_SCK(第一串列週邊介面C-SPI的時脈信號)產生信號F_SCK(第二串列週邊介面M-SPI的時脈信號)。在異動的命令階段,串列週邊介面橋40的內部計數器會在信號C_SCK的六個週期內,來計數高頻時脈信號HFCK之週期的數量,以產生信號F_SCK。此機制(如第3B圖之標號“1”所顯示)會產生快於信號C_SCK之4/3倍的信號F_SCK,而每隔三個時脈信號C_SCK之週期,兩時脈信號C_SCK與F_SCK亦會彼此同步。
最後位址位元(A0)會通過串列週邊介面橋40,使得在信號F_SCK的上升邊緣之前(如第3B圖之標號“2”所顯示)快閃記憶體32之接線上的位址會穩定。在此實施例中,其他位址位元會事先由串列週邊介面橋40進行取樣,而串列週邊介面橋40會對快閃記憶體32端的位元之設置時間(setup time)以及保持時間(hold time)負責。
在最後位址位元之後,快閃記憶體32提供第一資料位元(如第3B圖之標號“3”所顯示)。第一資料位元(D0)會通過串列週邊介面橋40,使得在第一資料週期中,於晶片組24之信號C_SDI上的有效資料會出現(如第3B圖之標號“4”所顯示)。在隨後的週期中,串列週邊介面橋40會對資料進行取樣,並在信號C_SCK的上升邊緣之前提供至晶片組24。
第3C圖係顯示第3B圖之詳細時序圖。在此實施例中,信號C_SCK之時脈週期TC_SCK
的最小值為48ns。信號C_SCK之設置時間TCSU
的最大值為2ns。信號F_SCK與信號C_SCK之間的最大偏移TCD
為9ns,而信號F_SCK與信號C_SCK之間的最小偏移TCDLT
為-5ns。信號F_SCK的最高週期TFCH
為14 ns,且相同於兩倍之信號HFCK的週期THFCK
,即TFCH
=2THFCK
。信號F_SCK的時脈週期TF_SCK
為36 ns。在快閃記憶體32之輸出端之有效資料的最大延遲TVAL
為9ns。於是,在最差的條件下,介面線以及串列週邊介面橋40之最大可容許之資料延遲為48-9-14-9-2=14ns。
對部分類型的記憶體裝置而言,例如,因為信號C_SCK之設置時間TCSU
可以是負的,所以最大可允許之延遲可以更小。
所揭露的技術相對於串列週邊介面的時脈可得到信號C_SDIO(亦可稱為信號MOSI)之相對大的設置時間的優點:在部分狀況中,第二串列週邊介面M-SPI之時脈信號的上升邊緣(由嵌入式控制器所產生)可以在串列週邊介面之時脈的邊緣之前出現,而快閃記憶體32仍會正確地對信號C_SDIO進行取樣。
雙倍以及四倍輸入/輸出異動
如先前所描述,在部分實施例中,串列週邊介面橋40藉由使用一種異動類型與晶片組24進行通訊以及使用不同的異動類型與快閃記憶體32進行通訊,以傳送已知的記憶體異動。異動類型可定義,例如,以平行方式所提供之異動的位址資訊所在的介面線之數量。異動的類型可包括:正常異動、簡單異動或是快速讀取異動,其位址資訊被提供在單一介面線上;雙倍輸出異動,其位址資訊被提供在單一介面線上而資料資訊被提供在兩條介面線上;雙倍輸入/輸出異動,其位址資訊係以平行方式被提供在兩條介面線上;以及,四倍輸入/輸出異動,其位址資訊係以平行方式被提供在四條介面線上。
在部分實施例中,為了決定快閃記憶體32所能支援之異動的類型,嵌入式控制器28在起始期間會與快閃記憶體32進行通訊。在決定了所支援的異動類型之後,在傳送記憶體異動時,嵌入式控制器28會選擇相對於快閃記憶體32所欲使用之異動的類型。在一實施例中,晶片組24發送快速讀取異動,但是快閃記憶體32只能處理雙倍輸入/輸出異動。在此實施例中,串列週邊介面橋40通常會在快速類型以及雙倍輸入/輸出類型之間進行轉變,以傳送記憶體異動。所以,第二串列週邊介面M-SPI會操作在相對低之匯流排使用,而留下更多可用時間來交換快閃記憶體32以及微控制器核心36之間的資訊。
此外,在第二串列週邊介面M-SPI上的雙倍輸入/輸出異動或是四倍輸入/輸出異動的使用可對晶片組24端以及快閃記憶體32端之串列週邊介面時脈的不準確具有較高的耐受程度。在部分實施例中,第二串列週邊介面M-SPI之較高傳輸量(藉由使用較高時脈速率和/或雙倍輸入輸出異動或是四倍輸入輸出異動所獲得)會致能串列週邊介面橋40來從快閃記憶體32預取資訊。所預取的資訊會緩衝在緩衝器48,
然後再提供至晶片組24。
第4圖係顯示根據本發明另一實施例所述之嵌入式控制器28在中央處理單元24以及快閃記憶體32之間傳送記憶體異動的信號圖。在此實施例中,串列週邊介面橋40執行一快速讀取雙倍輸入/輸出異動至快閃記憶體32,以傳送由晶片組24所發送之快速讀取異動。如圖所顯示,在第一串列週邊介面C-SPI上,位址資訊係由單一介面線(信號C_SDIO)所提供。另一方面,在第二串列週邊介面M-SPI上,位址資訊係以平行方式由兩條介面線(信號F_SDIO與信號F_SDI)所提供。
在此實施例中,為了支援其他類型的異動,例如標準讀取與寫入異動以及讀取狀態異動,晶片選擇信號F_CS0在異動之命令碼階段的結束之前會出現(如第4圖之標號“1”所顯示)。在時脈信號C_SCK的第一個上升邊緣之後,時脈信號F_SCK的第一個週期會產生(如第4圖之標號“2”所顯示)。
在第二串列週邊介面M-SPI上之串列週邊介面命令的八個週期之後,在信號F_SCK之下個十二個週期的期間會發送出24位元的位址資訊(如第4圖之標號“3”所顯示)。在第一串列週邊介面C-SPI上所發送之八個虛擬(dummy)位元週期的期間內,位址階段會結束(如第4圖之標號“4”所顯示)。異動會被啟動,使得在第一串列週邊介面C-SPI之八個虛擬位元期間,在第二串列週邊介面M-SPI上之四個虛擬位元亦會結束(如第4圖之標號“5”所顯示)。假如虛擬週期被插入至第一串列週邊介面C-SPI,則串列週邊介面橋40會將虛擬週期插入至第二串列週邊介面M-SPI。對雙倍輸入/輸出異動(第4圖)以及正常讀取異動(第3A-3C圖)兩者而言,第一串列週邊介面C-SPI上的異動通常比第二串列週邊介面M-SPI上的異動會較晚結束(除非第一串列週邊介面
C-SPI上的異動會在串列週邊介面橋40所提取之64位元之前結束)。在完成了第二串列週邊介面M-SPI上的異動之後,第一串列週邊介面C-SPI上的資料會從緩衝器48被載入。
第5圖係顯示根據本發明另一實施例所述之嵌入式控制器28在中央處理單元24以及快閃記憶體32之間傳送記憶體異動的信號圖。在此實施例中,串列週邊介面橋40會執行一快速讀取四倍輸入/輸出異動至快閃記憶體32,以傳送由晶片組24所發送之快速讀取異動。如圖所顯示,在第一串列週邊介面C-SPI上,位址資訊係由在單一介面線(信號C_SDIO)所提供。然而,在第二串列週邊介面M-SPI上,位址資訊係以平行方式由四條介面線(信號F_SDIO、信號F_SDI、信號F_SDI2與信號F_SDI3)所提供。
在此實施例中,為了支援其他類型的異動,如先前所描述,晶片選擇信號F_CS0會在異動之命令碼階段的結束之前被送出(asserted)(如第5圖之標號“1”所顯示)。在時脈信號C_SCK的第一個上升邊緣之後,時脈信號F_SCK的第一個週期會產生(如第5圖之標號“2”所顯示)。
在第二串列週邊介面M-SPI上之串列週邊介面命令的八個週期之後,在信號F_SCK之下個六週期的期間會發送出24位元的位址資訊(如第5圖之標號“3”所顯示)。在第一串列週邊介面C-SPI上所發送之八個虛擬位元週期的期間內,位址階段會結束(如第5圖之標號“4”所顯示)。異動會被啟動,使得在第一串列週邊介面C-SPI之八個虛擬位元期間,在第二串列週邊介面M-SPI上之四個虛擬位元亦會結束(假如虛擬週期被插入至第一串列週邊介面C-SPI,則串列週邊介面橋40會將虛擬週期插入至第二串列週邊介面M-SPI)。對四倍輸入/輸出異動而
言,第一串列週邊介面C-SPI上的異動通常(如第5圖之標號“5”所顯示)比第二串列週邊介面M-SPI上的異動會較晚結束,除非第一串列週邊介面C-SPI上的異動會在串列週邊介面橋40所提取之64位元之前結束。在完成了第二串列週邊介面M-SPI上的異動之後,第一串列週邊介面C-SPI上的資料會從緩衝器48被載入。
第3A-3C圖以及第4-5圖所描述之傳送方式僅是個例子,並非用以限定本發明。在其他實施例中,任何其他適合的傳送方式亦可被使用。
對記憶體異動的部分類型而言,串列週邊介面橋40會識別出異動之命令碼,並相應地將第二串列週邊介面M-SPI之時脈速率設成相同於第一串列週邊介面C-SPI之時脈速率。上述異動類型包括,例如,寫入致能(命令碼06h)、寫入失能(04h)、編程(寫入)資料(02h)、寫入至狀態暫存器(01h)、致能寫入至狀態暫存器(50h或60h)、抹除、晶片抹除(c7h)或是其他適合的異動類型。對這些異動類型而言,在第一串列週邊介面C-SPI以及第二串列週邊介面M-SPI係使用相同之時脈速率,其可使內部緩衝減到最少。
在部分實施例中,串列週邊介面橋40對讀取狀態異動使用不同的程序。讀取狀態異動不具有位址欄位,並且需要立即回應。通常,串列週邊介面橋40不會有充分的時間來從快閃記憶體32提取狀態資料,並傳送所提取之狀態資料至晶片組24。在部分實施例中,串列週邊介面橋40偶爾會不管從晶片組24所接收到的讀取狀態異動,反而對快閃記憶體32的狀態資料進行提取。在一實施例中,當第二串列週邊介面M-SPI為空閒、在寫入或抹除異動之後每隔500微秒(μs)以及在每個寫入狀態異動發生時,串列週邊介面橋40會每隔2毫秒(ms)提
取狀態資料。於是,串列週邊介面橋40可維持住狀態資料的最新複製(up-to-date copy)。在偵測到由晶片組24所啟動的讀取狀態異動(05h或35h)之後,串列週邊介面橋40會以內部所儲存之狀態資料進行回應。
晶片組以及嵌入式控制器之記憶體異動的仲裁
第6圖係顯示根據本發明另一實施例所述之嵌入式控制器28在中央處理單元24以及快閃記憶體32之間傳送記憶體異動的信號圖。第6圖係描述當識別出由晶片組24所發出之標準(正常)讀取記憶體異動時,嵌入式控制器28之記憶體異動係如何被中止的。當串列週邊介面橋40識別出晶片組記憶體異動而嵌入式控制器28之記憶體異動正在進行時,串列週邊介面橋40會立即藉由使晶片選擇信號F_CS0失效(如第6圖之標號“1”所顯示),來中止嵌入式控制器28之記憶體異動。
通常,晶片選擇信號F_CS0正好在晶片組記憶體異動之命令碼階段的結束之前會生效(如第6圖之標號“2”所顯示)。假如晶片組記憶體異動之命令碼為03h(正常讀取異動),第二串列週邊介面M-SPI之時脈速率係快於第一串列週邊介面C-SPI之時脈速率的4/3倍,以及在晶片組命令碼之最後位元之後,嵌入式控制器記憶體異動會立即在第二串列週邊介面M-SPI上被啟動。
第7圖係顯示根據本發明另一實施例所述之嵌入式控制器28在中央處理單元24以及快閃記憶體32之間傳送記憶體異動的信號圖。第7圖係描述當識別出由晶片組24所發出之快速讀取記憶體異動時,嵌入式控制器28之記憶體異動係如何被中止的。當串列週邊介面橋40識別出晶片組記憶體異動時,串列週邊介面橋40會立即藉由使晶片選擇信號F_CS0失效(如第7圖之標號“1”所顯示),來中止正在進行的嵌
入式控制器記憶體異動。
通常,晶片選擇信號F_CS0正好在晶片組記憶體異動之命令碼階段的結束之前會生效(如第7圖之標號“2”所顯示)。假如晶片組記憶體異動之命令碼為0Bh(快速讀取異動)或是3Bh(快速讀取雙倍輸出異動),串列週邊介面橋40會再次使晶片選擇信號F_CS0失效。在信號C_SCK之時脈上升邊緣之後,信號F_SCK的第一個週期會產生(如第7圖之標號“3”所顯示)。
第8圖係顯示根據本發明另一實施例所述之嵌入式控制器28在中央處理單元24以及快閃記憶體32之間傳送記憶體異動的信號圖。第8圖係描述當識別出由晶片組24所發出之寫入或是抹除讀取記憶體異動時,嵌入式控制器28之記憶體異動係如何被中止的。當串列週邊介面橋40識別出晶片組記憶體異動時,串列週邊介面橋40會藉由使晶片選擇信號F_CS0失效(如第8圖之標號“1”所顯示),來中止嵌入式控制器記憶體異動。如先前所描述,晶片選擇信號F_CS0正好在晶片組記憶體異動之命令碼階段的結束之前會生效(如第8圖之標號“2”所顯示)。假如晶片組記憶體異動之命令碼為02h(簡單寫入異動)或是具有相似特性的其他命令碼(例如抹除異動),串列週邊介面橋40會將第二串列週邊介面M-SPI之時脈速率設成相同於第一串列週邊介面C-SPI之時脈速率。在晶片組命令碼之最後位元之後,位在快閃記憶體32端的異動會立即被啟動。
第6-8圖所描述之信號圖僅是個例子,並非用以限定本發明。在其他實施例中,任何其他適合的仲裁方式亦可被使用。
在部分實施例中,嵌入式控制器28會在晶片組24之初始化期間以及在初始化之後的正常操作期間使用不同方式來實行上述技術。在
晶片組24之初始化期間,晶片組24通常會在快至20MHz之時脈速率來產生標準串列週邊介面讀取異動(命令碼為03h)。這種類型的串列週邊介面異動會要求在最後位址位元的下一個時脈週期之間,串列週邊介面上的異動之第一資料位元為有效。由於嵌入式控制器28係連接於快閃記憶體32以及晶片組24之間,在異動內的最後位址應該要在第二串列週邊介面M-SPI之時脈上升邊緣之前,通過嵌入式控制器28並到達快閃記憶體32。在下一個第二串列週邊介面M-SPI之時脈(信號F_SCK)下降邊緣,來自快閃記憶體32的串列資料上的第一資料被驅動,第一串列週邊介面C-SPI上之串列資料的資料應該要在通過嵌入式控制器28之後的時脈信號C_SCK的下一個上升邊緣之前準備好。
嵌入式控制器28可以不同方式來符合這些要求。在部分實施例中,如先前所描述(在第3A-3C圖),相較於第一串列週邊介面C-SPI,嵌入式控制器28在第二串列週邊介面M-SPI上使用較高的時脈速率,使得兩時脈信號為同步。既然晶片組24以及快閃記憶體32皆支援高於20MHz的頻率,為了第一串列週邊介面C-SPI上的第一資料能準時,嵌入式控制器28能在使用第一串列週邊介面C-SPI以及第二串列週邊介面M-SPI上利用剩餘的時間。值得注意的是,由於第二串列週邊介面M-SPI之時脈速率高於第一串列週邊介面C-SPI之時脈速率,通常會在第一或第二資料位元之後使用所預取之資料。
在不同實施例中,串列週邊介面橋40會使用任何適合的技術來產生時脈信號F_SCK,以供第二串列週邊介面M-SPI使用。舉例來說,串列週邊介面橋40會使用鎖相迴路(phase locked loop,PLL)機制或是使用任何已知之其他時脈相位同步機制來對信號C_SCK以及信號F_SCK進行同步。在另一實施例中,串列週邊介面橋40可參照下列程
序來產生信號F_SCK,以供第二串列週邊介面M-SPI使用。在下列描述中,2的冪次方的除法係用移位(shift)所實施,使得結果只有整數部分被保留:
1.產生150MHz之時脈信號HFCK。
2.在第一串列週邊介面C-SPI的三個時脈週期的移動視窗中,計數時脈信號HFCK之週期的邊緣。所計數到的值標示為CNT3_150M。
3.在信號C_SCK的每個週期,在每個第一串列週邊介面C-SPI之時脈週期之內,更新時脈信號HFCK之邊緣的數量(標示為CNT1_150M)。
4.將信號F_SCK與信號C_SCK之間的比例設成4/3,使得每隔三個信號C_SCK的週期會產生四個信號F_SCK的週期。
5.從六個信號C_SCK的正邊緣開始,每隔三個邊緣(即,當從0開始計數,在邊緣6、9、12、15等等)產生一組四個信號F_SCK之時脈週期。這些點被視為信號F_SCK之啟動點。
6.在信號F_SCK之啟動點之後,等待(CNT1_150M±Const)個時脈信號HFCK的一半週期,來觸發信號F_SCK之正邊緣(可以在時脈信號HFCK的任何邊緣)。參數Const係用來表示在信號F_SCK之插入點之後的週期,相對於信號C_SCK之上升邊緣來調整信號F_SCK之上升邊緣的準確位置。
7.信號F_SCK的高週期(H_PER)為兩倍時脈信號HFCK的週期。
8.第一個時脈的時脈期間為CNT3_150M/4個時脈信號HFCK的一半週期。例如,假如CNT3_150M=59,則為59/4=14個時脈信號HFCK的一半週期。於是,第一低週期的長度是14-4=10個時脈信號HFCK的一半週期。
9.第二個信號F_SCK的高週期為兩倍時脈信號HFCK的週期。
10.第二個時脈結束在信號F_SCK之第三個週期的正邊緣,其是在信號F_SCK啟動點之後CNT3_150M/2個時脈信號HFCK的一半週期所產生。在這些實施例中,第二個時脈係結束於29個時脈信號HFCK的一半週期。
11.第三個信號F_SCK的高週期為兩倍時脈信號HFCK的週期。
12.第四個信號F_SCK的週期之正邊緣係在(CNT3_150M-(CNT3_150M/2))/2+CNT3_150M/2個時脈信號HFCK的一半週期所產生。在此實施例中,第四個信號F_SCK的週期之正邊緣係在(59-29)/2+29=44個時脈信號HFCK的一半週期所產生。
13.第四個信號F_SCK的高週期為兩倍時脈信號HFCK的週期。
14.下一個信號F_SCK之正邊緣將出現在下一組信號F_SCK之週期的第一邊緣。
在部分實施例中,嵌入式控制器28會對電腦20產生系統重置,尤其是對晶片組24。在系統重置的期間,嵌入式控制器28會從快閃記憶體32載入描述符區段(descriptor section)(尺寸通常為4K位元),並將描述符區段儲存在晶片內之隨機存取記憶體(RAM,未顯示)。在系統重置之後,於系統的啟動週期之間,嵌入式控制器28會使用預先載入的描述符區段來取代儲存在快閃記憶體32的描述符資料。在系統的啟動週期之後,快速讀取異動或是快速讀取雙倍輸出異動可以在串列週邊介面上被使用(假如描述符非原來的描述符設定,則嵌入式控制器28會超出相關的描述符)。這些異動的協議在一個異動之內的最後位址位元之後,會具有8個虛擬時脈週期。因此,相較於標準讀取異動,此技術具有較佳的時間相容性。
在啟動階段之後,晶片組24通常會讀取描述符區段,並指示在異動的最後位址位元之後,使用具有8個虛擬時脈週期之快速讀取異動或是快速讀取雙倍輸出異動(例如第8圖)。在快速讀取異動以及快速讀取雙倍輸出異動中,第二串列週邊介面M-SPI的時脈速率被設為高於或等於第一串列週邊介面C-SPI的時脈速率。所以,因為晶片組記憶體異動的最大長度為64位元,則預先提取之異動的最大長度亦為64位元。為了放鬆介面的時間限定,快速讀取雙倍輸入/輸出異動或是快速讀取四倍輸入/輸出異動可以在第二串列週邊介面M-SPI上被使用。
在最後位址位元之後,快速讀取雙倍輸入/輸出異動或是快速讀取四倍輸入/輸出異動僅需使用到四個虛擬時脈週期。在第一串列週邊介面C-SPI上傳送長記憶體異動的情況,其配置通常允許足夠的碼提取頻寬,以供嵌入式控制器28的微控制器使用。
雖然,本發明之實施例主要係描述在中央處理單元晶片組以及嵌入式控制器之微控制器之間串列週邊介面的共享。然而,本發明所描述之方法及系統亦可使用在需要串列匯流排共享,但是對匯流排而言,在匯流排主控之間卻無仲裁被定義之其他應用。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
20‧‧‧電腦
24‧‧‧中央處理單元晶片組
28‧‧‧嵌入式控制器
32‧‧‧快閃記憶體
36‧‧‧微控制器核心
40‧‧‧串列週邊介面橋
44‧‧‧快閃記憶體介面
48‧‧‧緩衝器
50-62‧‧‧步驟
C_SCK、F_SCK、HFCK‧‧‧時脈信號
C_CS0、F_CS0‧‧‧晶片選擇信號
、C_SDIO、C_SDI、F_SDIO、F_SDI‧‧‧信號
C-SPI‧‧‧第一串列週邊介面
CORE BUS‧‧‧核心匯流排
M-SPI‧‧‧第二串列週邊介面
SPI‧‧‧串列週邊介面
VALID‧‧‧有效信號
第1圖係顯示根據本發明一實施例所述之電腦之方塊圖;第2圖係顯示根據本發明一實施例所述之嵌入式控制器之操作方法的流程圖;第3A-3C圖係顯示根據本發明一實施例所述之嵌入式控制器在中央處理單元以及記憶體之間傳送記憶體異動的信號圖;第4圖係顯示根據本發明另一實施例所述之嵌入式控制器在中央處理單元以及記憶體之間傳送記憶體異動的信號圖;第5圖係顯示根據本發明另一實施例所述之嵌入式控制器在中央處理單元以及記憶體之間傳送記憶體異動的信號圖;第6圖係顯示根據本發明另一實施例所述之嵌入式控制器在中央處理單元以及記憶體之間傳送記憶體異動的信號圖;第7圖係顯示根據本發明另一實施例所述之嵌入式控制器在中央處理單元以及記憶體之間傳送記憶體異動的信號圖;以及第8圖係顯示根據本發明另一實施例所述之嵌入式控制器在中央處理單元以及記憶體之間傳送記憶體異動的信號圖。
20‧‧‧電腦
24‧‧‧中央處理單元晶片組
28‧‧‧嵌入式控制器
32‧‧‧快閃記憶體
36‧‧‧微控制器核心
40‧‧‧串列週邊介面橋
44‧‧‧快閃記憶體介面
48‧‧‧緩衝器
C-SPI‧‧‧第一串列週邊介面
CORE BUS‧‧‧核心匯流排
M-SPI‧‧‧第二串列週邊介面
SPI‧‧‧串列週邊介面
VALID‧‧‧有效信號
Claims (41)
- 一種嵌入式控制器,包括:一微控制器核心;以及一記憶體控制電路,用以於一第一時脈速率,藉由一第一串列週邊介面與一中央處理單元晶片組進行通訊、於一第二時脈速率,藉由一第二串列週邊介面與一記憶體進行通訊、藉由上述第一與第二串列週邊介面來傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動、識別無記憶體異動被傳送於上述第二串列週邊介面之時間間隔,以及從上述記憶體擷取出一資訊,以供上述微控制器核心於已識別之上述時間間隔進行操作;其中上述第一串列週邊介面不被匯流排仲裁所支援,以及上述第二時脈速率為固定。
- 如申請專利範圍第1項所述之嵌入式控制器,其中上述資訊包括一軟體碼,用以運轉上述微控制器核心,以及其中上述記憶體控制電路在已識別之上述時間間隔從上述記憶體擷取出上述軟體碼,並使上述微控制器核心執行已擷取之上述軟體碼。
- 如申請專利範圍第1項所述之嵌入式控制器,其中上述第二時脈速率係大於或等於上述第一時脈速率。
- 如申請專利範圍第1項所述之嵌入式控制器,其中上述記憶體控制電路係根據使用在上述第一串列週邊介面之一第一時脈信號,來產生一第二時脈信號,以供在上述第二串列週邊介面使用。
- 如申請專利範圍第1項所述之嵌入式控制器,其中當上述第二串列週邊介面被上述記憶體異動所佔用且上述記憶體控制電路無法從上述記憶體擷取出上述資訊時,上述微控制器核心繼續操作。
- 如申請專利範圍第5項所述之嵌入式控制器,其中當上述記憶體控制電路無法從上述記憶體擷取出上述資訊時,上述微控制器核心係使用儲存在替代記憶體之一替代資訊來繼續操作。
- 如申請專利範圍第1項所述之嵌入式控制器,其中上述記憶體控制電路產生一有效信號,以指示上述記憶體控制電路是否能從上述記憶體擷取出上述資訊。
- 如申請專利範圍第1項所述之嵌入式控制器,其中上述記憶體控制電路依照一第一異動類型與上述中央處理單元晶片組進行通訊,以及依照一第二異動類型與上述記憶體進行通訊,以便傳送一已知之記憶體異動,其中上述第二異動類型不同於上述第一異動類型。
- 如申請專利範圍第8項所述之嵌入式控制器,其中上述第一異動類型係提供一位址資訊於一第一數量之介面線上,而上述第二異動類型係提供上述位址資訊於一第二數量之介面線上,其中上述第二數量不同於上述第一數量。
- 如申請專利範圍第8項所述之嵌入式控制器,其中上述第一異動類型係提供一資料資訊於一第一數量之介面線上,而上述第二異動類型係提供上述資料資訊於一第二數量之介面線上,其中上述第二數量不同於上述第一數量。
- 如申請專利範圍第8項所述之嵌入式控制器,其中每一上述第一以及第二異動類型係包括從一類型群組中所選出之至少一異動類型,其中上述類型群組包括一正常異動、一快速讀取異動、一快速讀取雙倍輸出異動、一快速讀取雙倍輸入/輸出異動及一快速讀取四倍輸入/輸出異動。
- 如申請專利範圍第8項所述之嵌入式控制器,其中上述第一異 動類型係由上述中央處理單元晶片組所設定,以及其中上述記憶體控制電路對上述第一異動類型進行識別,並根據所識別之上述第一異動類型而選擇上述第二異動類型。
- 如申請專利範圍第1項所述之嵌入式控制器,其中上述記憶體控制電路對一已知之記憶體異動的類型進行識別,並根據所識別之類型而選擇上述第二時脈速率。
- 如申請專利範圍第1項所述之嵌入式控制器,其中上述記憶體控制電路將位於上述第一串列週邊介面之一已知之記憶體異動轉變成位於上述第二串列週邊介面之複數記憶體異動。
- 如申請專利範圍第1項所述之嵌入式控制器,其中在一已知之異動中,上述記憶體控制電路將欲讀取之一位址從上述中央處理單元晶片組傳送至上述記憶體,並將從上述位址所讀取出之一資料從上述記憶體傳送至上述中央處理單元晶片組,使得上述資料在上述第一串列週邊介面中開始於一時脈週期被傳送,其中上述時脈週期係緊接地跟在上述位址之最後一位元。
- 如申請專利範圍第15項所述之嵌入式控制器,其中分別在上述第一串列週邊介面與上述第二串列週邊介面之一第一時脈信號以及一第二時脈信號係彼此同步,並在上述已知之異動的一或多個週期具有已定義時序。
- 如申請專利範圍第1項所述之嵌入式控制器,其中當一或多個虛擬週期被上述中央處理單元晶片組插入在上述第一串列週邊介面時,上述記憶體控制電路將上述虛擬週期插入在由上述第二串列週邊介面所傳送之位址資訊與資料資訊之間。
- 如申請專利範圍第1項所述之嵌入式控制器,其中在上述中央 處理單元晶片組要求一資料之前,上述記憶體控制電路從上述記憶體預取出上述資料、以快取的方式儲存上述資料並提供所儲存之上述資料至上述中央處理單元晶片組。
- 如申請專利範圍第1項所述之嵌入式控制器,其中不管來自中央處理單元晶片之所接收的一讀取狀態異動,上述記憶體控制電路從上述記憶體預取出一狀態資訊,並在接收到上述讀取狀態異動後,提供所預取之上述狀態資訊至上述中央處理單元晶片組。
- 如申請專利範圍第1項所述之嵌入式控制器,其中在上述中央處理單元晶片組之一起動階段的期間,上述記憶體控制電路從上述記憶體預取出一描述符區段並儲存上述描述符區段於上述嵌入式控制器之一內部記憶體,以及在上述起動階段之後,上述憶體控制電路提供所儲存之描述符區段至上述中央處理單元晶片組。
- 一種共享記憶體的方法,包括:使用一嵌入式控制器,於一第一時脈速率,藉由一第一串列週邊介面與一中央處理單元晶片組進行通訊、於一第二時脈速率,藉由一第二串列週邊介面與一記憶體進行通訊,其中上述第一串列週邊介面不被匯流排仲裁所支援,以及上述第二時脈速率為固定;藉由上述第一與第二串列週邊介面,傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動;識別無記憶體異動被傳送於上述第二串列週邊介面之時間間隔;以及從上述記憶體擷取出一資訊,以供上述嵌入式控制器於已識別之上述時間間隔進行操作。
- 如申請專利範圍第21項所述之方法,其中上述從上述記憶體 擷取出上述資訊之步驟更包括:在已識別之上述時間間隔,從上述記憶體擷取出一軟體碼;以及使上述微控制器核心來執行已擷取之上述軟體碼。
- 如申請專利範圍第21項所述之方法,其中上述第二時脈速率係大於或等於上述第一時脈速率。
- 如申請專利範圍第21項所述之方法,其中上述使用上述嵌入式控制器與上述中央處理單元晶片組以及上述記憶體進行通訊之步驟更包括:根據使用在上述第一串列週邊介面之一第一時脈信號,產生一第二時脈信號,以供在上述第二串列週邊介面使用。
- 如申請專利範圍第21項所述之方法,其中上述從上述記憶體擷取出上述資訊之步驟更包括:當上述第二串列週邊介面被上述記憶體異動所佔用且來自上述記憶體之上述資訊的檢索被阻擋時,持續操作上述微控制器核心。
- 如申請專利範圍第25項所述之方法,其中上述持續操作上述微控制器核心之步驟更包括:當來自上述記憶體之上述資訊的檢索被阻擋時,使用儲存在替代記憶體之一替代資訊來操作上述微控制器核心。
- 如申請專利範圍第25項所述之方法,其中上述持續操作上述微控制器核心之步驟更包括:產生一有效信號,以指示來自上述記憶體之上述資訊的檢索是否被阻擋。
- 如申請專利範圍第21項所述之方法,其中上述傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動之步驟更包括: 依照一第一異動類型與上述中央處理單元晶片組進行通訊,以及依照一第二異動類型與上述記憶體進行通訊,以便傳送一已知之記憶體異動,其中上述第二異動類型不同於上述第一異動類型。
- 如申請專利範圍第28項所述之方法,其中上述第一異動類型係提供一位址資訊於一第一數量之介面線上,而上述第二異動類型係提供上述位址資訊於一第二數量之介面線上,其中上述第二數量不同於上述第一數量。
- 如申請專利範圍第28項所述之方法,其中上述第一異動類型係提供一資料資訊於一第一數量之介面線上,而上述第二異動類型係提供上述資料資訊於一第二數量之介面線上,其中上述第二數量不同於上述第一數量。
- 如申請專利範圍第28項所述之方法,其中每一上述第一以及第二異動類型係包括從一類型群組中所選出之至少一異動類型,其中上述類型群組包括一正常異動、一快速讀取異動、一快速讀取雙倍輸出異動、一快速讀取雙倍輸入/輸出異動及一快速讀取四倍輸入/輸出異動。
- 如申請專利範圍第28項所述之方法,其中上述第一異動類型係由上述中央處理單元晶片組所設定,以及其中上述傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動之步驟更包括:對上述第一異動類型進行識別;以及根據所識別之上述第一異動類型,選擇上述第二異動類型。
- 如申請專利範圍第21項所述之方法,其中上述使用上述嵌入式控制器與上述中央處理單元晶片組以及上述記憶體進行通訊之步驟更包括: 識別一已知之記憶體異動的類型;以及根據所識別之類型,選擇上述第二時脈速率。
- 如申請專利範圍第21項所述之方法,其中上述傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動之步驟更包括:將位於上述第一串列週邊介面之一已知之記憶體異動轉變成位於上述第二串列週邊介面之複數記憶體異動。
- 如申請專利範圍第21項所述之方法,其中在一已知之異動中上述傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動之步驟更包括:將欲讀取之一位址從上述中央處理單元晶片組傳送至上述記憶體;以及將從上述位址所讀取出之一資料,從上述記憶體傳送至上述中央處理單元晶片組;使得上述資料在上述第一串列週邊介面中開始於一時脈週期被傳送,其中上述時脈週期係緊接地跟在上述位址之最後一位元。
- 如申請專利範圍第35項所述之方法,其中分別在上述第一串列週邊介面與上述第二串列週邊介面之一第一時脈信號以及一第二時脈信號係彼此同步,並在上述已知之異動的一或多個週期具有已定義時序。
- 如申請專利範圍第21項所述之方法,其中上述傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動之步驟更包括:當一或多個虛擬週期被上述中央處理單元晶片組插入在上述第一串列週邊介面時,將上述虛擬週期插入在由上述第二串列週邊介面所傳送之位址資訊與資料資訊之間。
- 如申請專利範圍第21項所述之方法,其中上述傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動之步驟更包括:在上述中央處理單元晶片組要求一資料之前,從上述記憶體預取出上述資料;以快取的方式儲存預取之上述資料;以及提供所儲存之上述資料至上述中央處理單元晶片組。
- 如申請專利範圍第21項所述之方法,其中上述傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動之步驟更包括:不管來自中央處理單元晶片之所接收的一讀取狀態異動,從上述記憶體預取出一狀態資訊;以及在接收到上述讀取狀態異動後,提供所預取之上述狀態資訊至上述中央處理單元晶片組。
- 如申請專利範圍第21項所述之方法,其中上述傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動之步驟更包括:在上述中央處理單元晶片組之一起動階段的期間,從上述記憶體預取出一描述符區段;儲存上述描述符區段於上述嵌入式控制器之一內部記憶體;以及在上述起動階段之後,提供所儲存之描述符區段至上述中央處理單元晶片組。
- 一種電腦,包括:一中央處理單元晶片組;一記憶體;以及一嵌入式控制器,用以於一第一時脈速率,藉由一第一串列週邊介面與一中央處理單元晶片組進行通訊、於一第二時脈速率,藉由一 第二串列週邊介面與一記憶體進行通訊、藉由上述第一與第二串列週邊介面來傳送上述中央處理單元晶片組與上述記憶體之間的記憶體異動、識別無記憶體異動被傳送於上述第二串列週邊介面之時間間隔,以及從上述記憶體擷取出一資訊,以供上述微控制器核心於已識別之上述時間間隔進行操作;其中上述第一串列週邊介面不被匯流排仲裁所支援,以及上述第二時脈速率為固定。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/236,673 US8688944B2 (en) | 2011-09-20 | 2011-09-20 | Memory sharing between embedded controller and central processing unit chipset |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201314465A TW201314465A (zh) | 2013-04-01 |
TWI463325B true TWI463325B (zh) | 2014-12-01 |
Family
ID=47881758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101133605A TWI463325B (zh) | 2011-09-20 | 2012-09-14 | 電腦、嵌入式控制器及共享記憶體的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8688944B2 (zh) |
CN (1) | CN103019988B (zh) |
TW (1) | TWI463325B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9003091B2 (en) * | 2012-10-18 | 2015-04-07 | Hewlett-Packard Development Company, L.P. | Flow control for a Serial Peripheral Interface bus |
US8904078B2 (en) * | 2012-10-22 | 2014-12-02 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | High speed serial peripheral interface system |
JP6455002B2 (ja) * | 2014-07-18 | 2019-01-23 | セイコーエプソン株式会社 | 回路装置、送信モジュール、電子機器及び移動体 |
TWI619023B (zh) * | 2016-11-30 | 2018-03-21 | 瑞昱半導體股份有限公司 | 記憶體控制電路及其方法 |
CN112650574A (zh) * | 2020-12-31 | 2021-04-13 | 广州技象科技有限公司 | 基于优先级的任务调度方法、装置、系统和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI254211B (en) * | 2000-06-09 | 2006-05-01 | Cirrus Logic Inc | System-on-a-chip |
TWI294516B (zh) * | 2004-12-27 | 2008-03-11 | Yamaha Motor Co Ltd | |
US7818529B2 (en) * | 2007-09-06 | 2010-10-19 | Ite Tech. Inc. | Integrated memory control apparatus |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6687903B1 (en) | 2000-06-28 | 2004-02-03 | Emc Corporation | Inhibiting starvation in a multitasking operating system |
US7730265B1 (en) | 2007-03-06 | 2010-06-01 | Oracle America, Inc. | Starvation-avoiding unbounded transactional memory |
US7930576B2 (en) | 2007-04-10 | 2011-04-19 | Standard Microsystems Corporation | Sharing non-sharable devices between an embedded controller and a processor in a computer system |
US9165537B2 (en) * | 2011-07-18 | 2015-10-20 | Nvidia Corporation | Method and apparatus for performing burst refresh of a self-refreshing display device |
-
2011
- 2011-09-20 US US13/236,673 patent/US8688944B2/en active Active
-
2012
- 2012-09-14 TW TW101133605A patent/TWI463325B/zh active
- 2012-09-20 CN CN201210352173.0A patent/CN103019988B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI254211B (en) * | 2000-06-09 | 2006-05-01 | Cirrus Logic Inc | System-on-a-chip |
TWI294516B (zh) * | 2004-12-27 | 2008-03-11 | Yamaha Motor Co Ltd | |
US7818529B2 (en) * | 2007-09-06 | 2010-10-19 | Ite Tech. Inc. | Integrated memory control apparatus |
Also Published As
Publication number | Publication date |
---|---|
TW201314465A (zh) | 2013-04-01 |
CN103019988B (zh) | 2015-10-07 |
US20130073810A1 (en) | 2013-03-21 |
CN103019988A (zh) | 2013-04-03 |
US8688944B2 (en) | 2014-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6874044B1 (en) | Flash drive/reader with serial-port controller and flash-memory controller mastering a second RAM-buffer bus parallel to a CPU bus | |
JP5231612B2 (ja) | バス上のメモリプリフェッチコマンドを送信するための方法および装置 | |
US8266369B2 (en) | Flash memory interface | |
JP5272274B2 (ja) | メモリアクセスの順序を変更するシステム、装置、および方法 | |
EP1488323B1 (en) | Memory system with burst length shorter than prefetch length | |
US7171526B2 (en) | Memory controller useable in a data processing system | |
KR101105489B1 (ko) | Nand 플래시 메모리의 커맨드 기반 제어 | |
US8145805B2 (en) | Method for re-sequencing commands and data between a master and target devices utilizing parallel processing | |
TWI463325B (zh) | 電腦、嵌入式控制器及共享記憶體的方法 | |
US20070055813A1 (en) | Accessing external memory from an integrated circuit | |
WO2013176912A1 (en) | Flash memory controller | |
KR20010080682A (ko) | 큐 기반 메모리 컨트롤러 | |
TWI497290B (zh) | 短資料突發長度記憶體裝置的有效命令映射方法 | |
CN112578999A (zh) | 专注于延时的读取操作和专注于带宽的读取操作之间的动态改变 | |
US9690720B2 (en) | Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device | |
WO2002001566A1 (en) | Integrated circuit with flash bridge and autoload | |
CN108304334B (zh) | 应用处理器和包括中断控制器的集成电路 | |
US20110078386A1 (en) | Buffering in media and pipelined processing components | |
US7669028B2 (en) | Optimizing data bandwidth across a variable asynchronous clock domain | |
US6425071B1 (en) | Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus | |
TWI553483B (zh) | 處理器及存取記憶體的方法 | |
JP2005524175A (ja) | 集積回路における不揮発性メモリからのデータをフェッチするための方法及び対応する集積回路 | |
JP4208541B2 (ja) | メモリ制御装置 | |
JP2009037639A (ja) | ストリーミングidメソッドによるdmac発行メカニズム | |
US7055005B2 (en) | Methods and apparatus used to retrieve data from memory into a RAM controller before such data is requested |