TWI443675B - 記憶體系統以及存取記憶體之方法 - Google Patents

記憶體系統以及存取記憶體之方法 Download PDF

Info

Publication number
TWI443675B
TWI443675B TW098137359A TW98137359A TWI443675B TW I443675 B TWI443675 B TW I443675B TW 098137359 A TW098137359 A TW 098137359A TW 98137359 A TW98137359 A TW 98137359A TW I443675 B TWI443675 B TW I443675B
Authority
TW
Taiwan
Prior art keywords
memory
processor
access
clock
clock domain
Prior art date
Application number
TW098137359A
Other languages
English (en)
Other versions
TW201101330A (en
Inventor
Kari Ann O'brien
George Lattimore
Joern Soerensen
Matthew B Rutledge
Paul William Hollis
Original Assignee
Mediatek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mediatek Inc filed Critical Mediatek Inc
Publication of TW201101330A publication Critical patent/TW201101330A/zh
Application granted granted Critical
Publication of TWI443675B publication Critical patent/TWI443675B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Multi Processors (AREA)

Description

記憶體系統以及存取記憶體之方法
本發明有關於記憶體系統以及存取記憶體之方法。
單晶片系統(System On a Chip,SoC)具有多個嵌式(embedded)處理器,其中,每個處理器在存取記憶體時係採用獨特的記憶體存取時序以及資料匯流排寬度要求。在一種實現中,兩個嵌式處理器根據自身(native)的存取時序方案各存取一個單獨的嵌式記憶體模組。在另一種實現中,兩個具有不同的記憶體存取時序方案的處理器可以使用橋接過程(bridging process)而存取一個共享記憶體裝置。舉例說明,假如第一處理器指定為根據第一時脈頻率存取記憶體,第二處理器指定為根據第二時脈頻率存取記憶體,以及共享記憶體模組配置為根據該第一時脈頻率而存取。第一處理器根據自身記憶體存取時序來存取共享記憶體模組。第二處理器可以使用橋接過程而存取共享記憶體模組,其中,橋接過程將第二時脈域(clock domain)轉換成第一時脈域,而第一時脈域與共享記憶體模組相容,並將來自共享記憶體模組的響應自第一時脈域轉換回到第二時脈域,而第二時脈域與第二處理器相容。
先前技術中,不同的處理器存取記憶體的不同記憶體存取請求需要從一個時脈域轉換到另外一個,多個處理器共享同一個記憶體裝置需要使用橋接過程,而有較大的延遲,所以成本很高。
有鑑於此,本發明特提供記憶體系統以及存取記憶體之方法。
本發明提供一種記憶體系統,包含:一第一處理器,用於根據一第一時脈頻率存取記憶體;一第二處理器,用於根據一第二時脈頻率存取記憶體;一記憶體裝置,用於根據該第一時脈頻率或者該第二時脈頻率選擇性地運作;以及一記憶體控制器,用於致能該記憶體裝置之架構之動態配置,以允許該第一處理器根據該第一時脈頻率,存取該記憶體裝置之一第一部分,以及允許該第二處理器根據該第二時脈頻率,存取該記憶體裝置之一第二部分。
本發明又提供一種記憶體系統,包含:一第一處理器,用於根據一第一時序方案存取記憶體;一第二處理器,用於根據一第二時序方案存取記憶體;一記憶體裝置,該記憶體裝置具有多個記憶庫,該多個記憶庫由該第一處理器或者該第二處理器存取,該多個記憶庫配置為根據該第一時序方案或者該第二時序方案,選擇性地運行;以及一記憶體控制器,用於致能該多個記憶庫之架構之動態配置,以根據該第一時序方案由該第一處理器存取該多個記憶庫之第一組,以及根據該第二時序方案由該第二處理器存取該多個記憶庫之第二組。
本發明另提供一種存取記憶體之方法,包含:動態配置一記憶體裝置之架構,以允許該記憶體裝置之一第一部分由第一處理器,根據一第一時序方案而存取,以及允許該記憶體裝置之一第二部分由第二處理器,根據一第二時序方案而存取;自該第一處理器接收一第一記憶體存取指令;根據該第一時序方案,因應該第一記憶體存取指令,存取該記憶體裝置之該第一部分;自該第二處理器接收一第二記憶體存取指令;根據該第二時序方案,因應該第二記憶體存取指令,存取該記憶體裝置之該第二部分。
本發明再提供一種存取記憶體之方法,包含:動態配置一記憶體裝置之架構,該記憶體裝置具有在一第一處理器以及該第二處理器所共享之多個記憶庫,以允許該多個記憶庫之第一組由該第一處理器根據一第一時脈頻率所存取,以及允許該多個記憶庫之第二組由該第二處理器根據一第二時脈頻率所存取;以及用於由該第一處理器以及該第二處理器存取該多個記憶庫之多個仲裁請求,來自該第一處理器之仲裁請求根據該第一時脈頻率而同步,而來自該第二處理器之仲裁請求根據該第二時脈頻率而同步。
本發明再提供一種記憶體系統,包含:一記憶體裝置,具有多個部分,該多個部分之每一者配置為根據多個時序方案而運行;以及一致能器,一應用程式被執行時,致能該記憶體裝置之架構之動態配置,以允許該記憶體裝置之多個部分之每一者動態配置為根據該一第一時序方案或者一第二時序方案而被存取。
本發明所提供之記憶體系統以及存取記憶體之方法,無需將記憶體存取請求從一個時脈域轉換到另外一個,所以,單獨的記憶體裝置可以由多個處理器所共享,所以所需記憶體裝置的數量就可以降低,而且整體的系統的成本就可以相應降低。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定元件。所屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同一個元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及後續的請求項當中所提及的“包括”和“包含”係為一開放式的用語,故應解釋成“包含但不限定於”。以外,“耦接”一詞在此係包含任何直接及間接的電氣連接手段。間接的電氣連接手段包括通過其他裝置進行連接。
參考第1圖,第1圖為具有配置記憶體架構之實例系統100的示意圖,其中,系統100包含第一處理器102、第二處理器104以及記憶體控制器106,第一處理器102根據第一存取時序方案(例如,依據第一時脈頻率訊號118,CLK1)以及第一資料匯流排寬度存取記憶體,第二處理器104根據第二存取時序方案(例如,依據第二時脈頻率訊號120,CLK2)以及第二資料匯流排寬度存取記憶體。記憶體控制器106動態配置記憶體裝置108的架構,例如,記憶體裝置108的第一部分110可以根據相應的記憶體存取要求而由第一處理器102存取,而記憶體裝置108的第二部分112可以根據相應的記憶體存取要求而由第二處理器104存取。第一部分110以及第二部分112的配置可以在系統100啟動過程中設定,或者當該第一處理器或者第二處理器執行應用程式時而動態調整,換言之,記憶體裝置108的第一部分110以及第二部分112的配置可以在記憶體裝置108以及記憶體控制器106啟動過程中配置,以調整第一部分110以及第二部分112的大小。
在一些例子中,系統100可以為單晶片系統,其中,第一處理器102為嵌式通用微處理器單元(microprocessor,MCU),而第二處理器104為嵌式數位訊號處理器(Digital Signal Processor,DSP),記憶體裝置108可以為嵌式記憶體模組。第一處理器102以及第二處理器104具有不同的存取時序以及資料寬度要求。舉例說明,第一處理器102使用記憶體的第一部分110作為系統記憶體(或者第三級記憶體,簡稱為L3記憶體),以及第一處理器102透過第一介面匯流排130而存取(寫入或者讀取)記憶體108的第一部分110,以下,將用作L3記憶體的第一部分110稱之為L3記憶體110,其中,該第一介面匯流排130具有第一匯流排寬度。第二處理器104使用記憶體裝置108的第二部分112作為第二級(level 2,簡稱為L2)記憶體(例如,可以為快取記憶體),第二處理器104透過第二介面匯流排132存取記憶體裝置108的第二部分112,以下,將用作L2記憶體的第一部分112稱之為L2記憶體112,其中,該第二介面匯流排132具有第二匯流排寬度。在一些例子中,第一介面匯流排130為32位元寬,而第二介面匯流排132為64位元寬。在此種情況下,透過64位元寬的第二介面匯流排132存取L2記憶體112比透過32位元寬的第一介面匯流排130存取L3記憶體110要快。
在一些實現中,記憶體裝置108具有用於存取L3記憶體110的32位元寬的讀取/寫入埠113,以及用於存取L2記憶體112的64位元寬的讀取/寫入埠116。L3記憶體110接收第一時脈訊號118(CLK1),第一時脈訊號118(CLK1)具有第一時脈頻率,而第一時脈頻率對應第一處理器102存取記憶體的時脈頻率。L2記憶體112接收第二時脈訊號120(CLK2),第二時脈訊號120(CLK2)具有第二時脈頻率,而第二時脈訊號120(CLK2)為第二處理器104用於存取記憶體的時脈頻率。由此,就可以平行存取L2記憶體以及L3記憶體,其中L2記憶體以及L3記憶體之每一者都為根據對應的存取時序方案以及匯流排寬度而存取。
如第1圖所示的例子給出了記憶體裝置108架構為兩部分,第一部分110以及第二部分112。記憶體裝置108可以架構為使用三個或者更多的存取時序方案以及匯流排寬度(假設具有額外的時脈訊號以及資料匯流排)而存取的三部分或者更多部分。這樣的共享的記憶體裝置可以具有用於L1/L2/L3時脈域、L2/L3/L4時脈域、L1/L2/L3/L4時脈域以及等等的介面。不同時脈域的時脈訊號可以彼此同步或者異步。也就是說,記憶體裝置108配置為根據三個或者更多時脈頻率選擇性地運行,而記憶體控制器106致能記憶體裝置108動態配置,以允許根據記憶體裝置108運行的三個或者更多時脈頻率之任何一者,而存取該記憶體裝置108之一部分。
請參閱第2圖,第2圖為具有配置記憶體架構之實例系統100的示意圖,將記憶體裝置108的第一部分110分配為L3記憶體,進而由第一處理器102獨佔使用,將記憶體裝置108的第二部分112分配為L2記憶體,進而由第二處理器104獨佔使用,將記憶體裝置108的共享記憶體部分290作為共享L2-L3記憶體,進而由第一處理器102以及第二處理器104共同使用。多工器128可用作多工第一時脈訊號118(CLK1)以及第二時脈訊號120(CLK2),依賴於哪個處理器存取共享記憶體部分290以及存取共享記憶體部分290之時脈頻率,然後多工器128發送已選擇時脈訊號至共享記憶體部分290,進而確定共享記憶體部分290由第一處理器102或者由第二處理器104存取,從而,上述過程可以進一步描述為:基於哪個處理器存取記憶體裝置108以及存取之時脈頻率,該記憶體控制器自動確定記憶體裝置108之架構配置。在此例子中,依賴於應用,記憶體控制器106可以動態調整L2記憶體與L3記憶體在共享記憶體部分290中的比例,但是不會改變共享記憶體部分290中保留為分別由第一處理器102以及第二處理器104所獨佔使用的L3記憶體以及L2記憶體的大小。當然,記憶體控制器106也可以致能該記憶體裝置108之動態配置,以根據第一時脈頻率(第一時脈訊號118,CLK1),允許第一處理器102存取記憶體裝置108之全部,或者根據第二時脈頻率(第二時脈訊號120,CLK2),允許第二處理器104存取該記憶體裝置108之全部。
第3圖為系統100致能記憶體裝置108,使其重新動態配置的示例架構。記憶體裝置108可以包含多個記憶庫(memory bank),例如記憶庫114a、記憶庫114b、記憶庫114c等等,請注意,既然記憶體裝置108可以包含多個記憶庫,那麽第一部分110(如L3記憶體)、第二部分112(如L2記憶體)以及共享記憶體部分290也包含多個記憶庫。記憶體控制器106配置為用於致能多個記憶庫的每個記憶庫,使其透過第一介面匯流排130或者第二介面匯流排132被存取。多個記憶庫與記憶體控制器106之間的每個資料匯流排(例如,匯流排124a以及匯流排126a)均足夠寬,以支持最大的資料寬度運作。舉例說明,每個資料匯流排可以為64位元寬以允許32位元或者64位元的運作。
在一些實現中,第一部分110以及第二部分112沿著記憶庫的邊界分割,換言之,記憶體控制器106沿著多個記憶庫的邊界分配記憶體裝置108的第一部分110以及第二部分112,第一部分110以及第二部分112分別作為L3記憶體以及L2記憶體,這樣L2記憶體以及L3記憶體的運作一般就可以同時(concurrent)進行,以增強系統效能。每個記憶庫自多工器(例如128a)接收時脈訊號,其中,多工器(例如128a)多工第一時脈訊號118(CLK1)以及第二時脈訊號120(CLK2)。在一些例子中,第一時脈訊號118(CLK1)具有150MHz的頻率,而第二時脈訊號120(CLK2)具有75MHz的頻率。第一時脈訊號118(CLK1)以及第二時脈訊號120(CLK2)可以為同步或者異步。需要補充說明的是,此實施例中,多個多工器之每一者與多個記憶庫之一者對應,該多個多工器之每一者自具有第一時脈頻率之第一時脈訊號118(CLK1)以及具有第二時脈頻率之第二時脈頻率訊號120(CLK2)選擇,然後將已選擇的時脈訊號傳輸給對應的記憶庫。
除了時脈頻率,L2記憶體以及L3記憶體可以具有其他不同的存取要求。例如,L3記憶體具有延遲寫入(late write)要求(其表現為落後位址半個或者一整個時脈週期),而L2記憶體則不然。因為每個記憶庫都可以配置為L2記憶體或者L3記憶體,所以如果已經選擇了該功能,每個記憶庫均配置為能夠支持延遲寫入。
在一些實現中,記憶體控制器106可以在啟動時配置記憶體裝置108,以具有使用者指定的記憶體配置。舉例說明,假如記憶體裝置108具有8Mb的記憶體,第一使用者可以設定2Mb的記憶體用作L2記憶體,6Mb的記憶體用作L3記憶體,而第二使用者可以設定7Mb的記憶體用作L2記憶體,1Mb的記憶體用作L3記憶體。例如,系統100可以自FLASH(NAND或者NOR型)裝置啟動(BOOT)。在啟動之後,使用者指定的記憶體配置(包含記憶體控制器配置以及時脈配置)寫入控制器暫存器,作為啟動過程的一部分。
舉例說明,只要存取的不是同一個記憶庫,用於L3記憶體的埠116以及用於L2記憶體的埠113可以平行存取共享的記憶體裝置108(例如,獲得或者發送資料以及位址)。共享的記憶體裝置108外的仲裁器可以處理優先級以及共享特點(feature)所引起的衝突(conflict)。例如,當單一埠實現用於每個記憶庫時,用於L3記憶體的埠116以及用於L2記憶體的埠113重疊存取同樣的記憶庫是不允許的。
在一些實現中,記憶體控制器106可以在主動的週期時間(active cycle times)内,致能記憶體的架構的重新配置。這意味著當給定應用程式開始工作以及需要更多記憶體時,應用程式可以重新即時(on-the-fly)配置記憶體分配,或者僅花費幾個週期來切換或者重新配置記憶體分配。例如,記憶體架構可以設計為,記憶體的第一部分使用一個時脈邊緣激活,而記憶體的第二部分使用不同的時脈邊緣激活。
透過支持不同的資料寬度以及存取時間,系統100允許L2記憶體以及L3記憶體資源的應用特定優化(application specific optimization),以及可以改善裸晶(die)面積(成本)。共享記憶體裝置108可以具有多個不同資料寬度的讀取/寫入埠,其中,每個埠具有不同的存取時序。透過均衡L2記憶體以及L3記憶體的使用,每個應用可以獨立於硬體中的固定記憶體大小而優化。此外,使用者可以動態改變L2記憶體對L3記憶體分配,進而作為期望的配置,而不引起配置步驟或者相關延遲的配置(除了當自一個時脈域切換到另一個時脈域時幾個時脈週期的延遲)。
假設一次只能單一存取一個記憶庫,同時由L2介面(例如,存取L2記憶體的埠)以及L3介面(例如,存取L3記憶體的埠)存取只能發生在不同的記憶庫。為了處理潛在的L2介面以及L3介面存取同一記憶庫的衝突,使用仲裁器來保證不發生L2介面以及L3介面同時存取同一記憶庫的衝突。即記憶體控制器包含一仲裁單元,用於仲裁由第一處理器102以及第二處理器104存取該記憶體裝置108之多個記憶庫。
共享L2-L3記憶體透過減少對於L3記憶體到L2記憶體的轉換(transfer)的需要而進一步提高系統效能,反之亦然(如果第一處理器102以及第二處理器104只能有一者存取L2記憶體或者L3記憶體時,反之轉換就是必要的)。這意味著共享L2-L3記憶體允許第一處理器102或者第二處理器104在同樣的資料上運行,但是不要求記憶體的轉換,因此可以提高系統效能。在系統100中,與使用橋接過程將記憶體存取要求自一個時脈域轉換到另一個的傳統系統相比,第一處理器102以及第二處理器104記憶體存取的延遲(latency)會降低。使用單一記憶體模組,而不使用兩個記憶體模組,會降低在半導體晶片上的面積,進而降低系統100的成本。
多個記憶庫可以具有相同或者不同的資料寬度以及記憶庫存取時間。記憶庫可以包含32位元庫、64位元庫,或者上述二者的結合。設計記憶庫時,存取時間、面積(area)、縱橫比(aspect ratio)、功率消耗以及可能的L2記憶體與L3記憶體的使用比例的可能性等因素都可以考慮進來。
系統100允許在執行應用程式過程中動態配置記憶體架構。例如,請參考第4圖,第4圖為記憶體存取配置的實例系統100的示意圖,假設共享記憶體具有6Mb,而每個記憶庫相應地為1Mb。應用程式可以確定,L3記憶體需要4Mb,而L2記憶體要2Mb,然後應用程式給記憶體控制器106發送指令以重新配置共享記憶體的架構。如第4圖所示,記憶庫114a至記憶庫114d都配置為L3記憶體110,記憶庫114a至記憶庫114d的每個記憶庫接收第一時脈訊號118(CLK1),然後透過第一介面匯流排130,使用與L3記憶體110相關的存取時序方案來存取每個記憶庫,例如寫入以及讀取資料以及位址。記憶庫114e以及記憶庫114f配置為L2記憶體112,記憶庫114e以及記憶庫114f的每個記憶庫接收第二時脈訊號120(CLK2),然後透過第二介面匯流排132,使用與L2記憶體112相關的存取時序方案來存取每個記憶庫,例如寫入以及讀取資料以及位址。
執行中,應用程式可以確定需要更多的L2記憶體。例如,請參考第5圖,第5圖為記憶體存取配置的實例系統100的示意圖,應用程式可以要求L2記憶體112增加到4百萬(mega)位元,將作為L3記憶體110減少到2百萬位元,然後給記憶體控制器106發送指令,以相應地重新配置共享的記憶體裝置108的架構。在重新配置記憶體裝置108的幾個時脈週期後(例如,5個或者更少的第一時脈訊號118以及第二時脈訊號120之較慢一者的時脈週期),記憶庫114a以及記憶庫114b配置為L3記憶體110,記憶庫114a以及記憶庫114b的每個記憶庫接收第一時脈訊號118(CLK1),然後透過第一介面匯流排130,使用與L3記憶體110相關的存取時序存取每個記憶庫,例如寫入以及讀取資料以及位址。記憶庫114c到記憶庫114f配置為L2記憶體112,其中,記憶庫114c到記憶庫114f的每個記憶庫接收第二時脈訊號120(CLK2),然後透過第二介面匯流排132使用與L2記憶體112相關的存取時序方案而存取每個記憶庫。
重新配置L2記憶體以及L3記憶體的比例所需時間量,可以依賴於記憶體架構以及記憶體控制器106的配置而有所不同。在一些實現中,L2記憶體以及L3記憶體的重新配置可以花掉多於5個時脈週期才能完成。在一些實現中,L2記憶體以及L3記憶體的重新配置可以花掉3個或者更少的第一時脈訊號118以及第二時脈訊號120較慢處理器時脈的時脈週期才能完成。
在第4圖以及第5圖的例子中,記憶庫114a到記憶庫114f可以由第一處理器102或者第二處理器104存取。有多種記憶體裝置可以用於實現共享記憶庫114a到記憶庫114f。例如,一些記憶體裝置可以優化為32位元存取(此處,稱之為32位元記憶體裝置),然後一些記憶體裝置可以優化為64位元存取(此處,稱之為64位元記憶體裝置)。共享記憶庫114a到記憶庫114f可以由下述方式實現:(1)使用僅僅32位元記憶體裝置,(2)使用僅僅64位元記憶體裝置,或者(3)使用32位元以及64位元記憶體裝置的結合。
當選擇結合記憶體裝置而實現時,較優的功率消耗使用可以為第一處理器102存取32位元記憶體裝置,而第二處理器104存取64位元記憶體裝置。使用32位元記憶體裝置的記憶庫的部分以及使用64位元記憶體裝置的記憶庫的部分可以基於第一處理器102以及第二處理器104預測的使用而確定。例如,如果預測到,大多數應用中,第一處理器102可能使用4百萬位元的L3記憶體,第二處理器104可能使用2百萬位元的L2記憶體,然後記憶庫114a到114d就可以使用32位元的記憶體裝置而實現,而記憶庫114e到114f就可以使用64位元的記憶體裝置而實現。請注意,本發明不以上述32位元以及64位元記憶體裝置為限。具有其他匯流排寬度的記憶體裝置,例如,128位元以及64位元、128位元以及32位元、32位元以及16位元、64位元以及16位元,或者其它大小都可以採用,而不必基於2的冪(例如,48位元以及24位元)。
在上述例子中,在系統100的運行中,如果第一處理器102存取記憶庫114a到記憶庫114d,而第二處理器104使用記憶庫114e到記憶庫114f(如第4圖所示),則可以達到較優的功率消耗使用。重新配置記憶體使用,以允許第一處理器102存取記憶庫114a以及記憶庫114b,而允許第二處理器104存取記憶庫114c到記憶庫114f(如第5圖所示)也是可能的,但是使用第二處理器104存取記憶庫114c到記憶庫114d可能會增加功率消耗,因為記憶庫114c到記憶庫114d對於64位元記憶體存取沒有優化,其中,64位元記憶體為第二處理器104使用。
系統100的優勢就在於,設計系統100的人不需要為了設計系統而理解記憶體108的實現細節,就可以允許第一處理器102根據第一時脈頻率存取記憶體108的部分,以及允許第二處理器104根據第二時脈頻率存取記憶體108的部分。系統100的另一個優勢就是,因為對於兩個處理器和兩個時脈域而言,共享記憶體裝置都是可用的,所以就不需要在兩個時脈域之間轉換記憶體内容。
第6A圖為記憶體控制器106的示意圖。記憶體控制器106包含控制暫存器介面300,控制暫存器介面300透過暫存器匯流排301自系統控制器(圖未示)接收暫存器控制資料。暫存器控制資料可以用於配置記憶體控制器106以及記憶庫,例如L2記憶體以及L3記憶體部分的大小。暫存器控制資料可以在啟動過程中,自FLASH記憶體中擷取。控制暫存器介面300將資訊發送給第一位址解碼器304以及第二位址解碼器306,以指定哪個記憶體位址與L3記憶體110相關,哪個記憶體位址與L2記憶體112相關,其中,L3記憶體110由第一處理器102獨佔使用,L2記憶體112由第二處理器104獨佔使用,而作為共享記憶庫的共享記憶體部分290可以由第一處理器102以及第二處理器104共同存取。在此例子中,暫存器匯流排301上的資料與第一時脈訊號118(CLK1)同步。
第一介面匯流排130上的記憶體存取請求(例如,讀取或者寫入請求)由第一位址解碼器304接收,第一位址解碼器304確定該記憶體存取請求是否為用於保留的L3記憶體110或者作為共享記憶庫的共享記憶體部分290(此處,可以將共享記憶庫的共享記憶體部分290稱之為第三部分)。如果記憶體請求為用於保留的L3記憶體110,那麽記憶體控制器106根據該記憶體請求存取L3記憶體110。第一介面匯流排130以及L3記憶體110都與第一時脈訊號118(CLK1)同步。
如果第一介面匯流排130上的記憶體存取請求為用於作為共享記憶庫的共享記憶體部分290,那麽該請求經過匯流排322,發送到時脈域(clock domain crossing and arbitration unit)交叉以及庫仲裁單元302。作為共享記憶庫的共享記憶體部分290具有配置為由第一處理器102存取的記憶體(例如,配置為L3記憶體)以及由第二處理器104存取的記憶體(例如,配置為L2記憶體)。依賴於記憶體存取請求是否為用於由第一處理器102存取的記憶體或者由第二處理器104存取的記憶體,記憶體控制器106使用恰當的時脈頻率以及時序方案而存取作為共享記憶庫的共享記憶體部分290的一部分。時脈域交叉以及庫仲裁單元302也仲裁存取同樣記憶庫的請求,以阻止衝突的發生。在此實施例中,時脈域交叉以及庫仲裁單元302,用於仲裁第一處理器102以及第二處理器104對該記憶體裝置108之多個記憶庫的存取。
第二介面匯流排132上的記憶體存取請求由第二位址解碼器306接收,而第二位址解碼器306確定該記憶體存取請求是否為用於保留的L2記憶體112或者作為共享記憶庫的共享記憶體部分290。如果記憶體存取請求為用於保留的L2記憶體112,那麽記憶體控制器106根據該記憶體存取請求,存取L2記憶體112。第二介面匯流排132以及L2記憶體112都與第二時脈訊號120(CLK2)同步。
如果第二介面匯流排132上的記憶體存取請求為用於作為共享記憶庫的共享記憶體部分290,那麽該請求經過匯流排324,發送到時脈域交叉以及庫仲裁單元302。作為共享記憶庫的共享記憶體部分290具有配置為由第一處理器102存取的記憶體(例如,配置為L3記憶體)以及由第二處理器104存取的記憶體(例如,配置為L2記憶體)。依賴於記憶體存取請求是否為用於該共享記憶庫290的由第一處理器102存取的記憶體(例如,配置為L3記憶體)或者共享記憶庫290的由第二處理器104存取的記憶體(例如,配置為L2記憶體),記憶體控制器106使用恰當的時脈頻率以及時序方案而存取該共享記憶庫290的一部分。
在一些實現中,記憶體控制器106以及記憶體裝置108的配置可以透過控制暫存器介面300經由寫入暫存器資料而改變。舉例說明,在應用程式執行中,應用程式促使控制器寫入記憶體控制器106中的暫存器,以將記憶庫配置改變為L2記憶體以及L3記憶體。
在一些例子中,記憶體控制器106監視記憶體存取指令的執行,然後確定記憶庫在L2記憶體的配置以及L3記憶體的配置中,何時切換合適。當記憶體控制器106透過控制暫存器介面300而接收暫存器控制資料(其中,暫存器控制資料指示出一個記憶庫自第一時脈頻率切換到第二時脈頻率),那麽在切換到第二時脈頻率之前,記憶體控制器106就確定前一個記憶體存取指令(用於存取該記憶庫,使用第一時脈頻率)是否已經完成。也就是說,在確定前一個存取指令已經完成時,記憶體控制器106就可以接收到一訊號,請注意,指示出記憶庫自第一時脈頻率切換到第二時脈頻率的訊號不以上述訊號為限制,任何可以指示切換完成的訊號都可以使用。
第6B圖為時脈域交叉以及庫仲裁單元302的示意圖,其中,時脈域交叉以及庫仲裁單元302在第一時脈域請求器310以及第二時脈域請求器312中使用握手(handshaking)程序(process)以致能記憶體存取請求的仲裁,其中,記憶體存取請求自第一處理器102以及第二處理器104(圖未示)發出。第一時脈域請求器310為邏輯電路,該邏輯電路與第一時脈訊號118(CLK1)同步,然後第一時脈域請求器310透過第一資料匯流排322,自第一處理器102接收讀取以及寫入記憶體存取指令,然後將指令傳輸至記憶庫。第二時脈域請求器312為邏輯電路,該邏輯電路與該第二時脈訊號(CLK2)120同步,然後第二時脈域請求器312透過第二資料匯流排324,自第二處理器104接收讀取以及寫入記憶體存取指令,然後將讀取以及寫入記憶體存取指令傳輸至記憶庫。其中,在一給定時間,第一時脈域請求器310以及第二時脈域請求器312僅有一者被授權以存取任何一特定記憶庫。
時脈域交叉以及記憶庫仲裁單元302允許第一處理器102(運行在第一時脈域)或者第二處理器104(運行在第二時脈域)透過共享記憶庫匯流排314而存取作為共享記憶庫的共享記憶體部分290(圖未示)。當前授權給共享記憶庫匯流排314時脈域一直為共享記憶庫匯流排314的控制時脈域,直到來自其它時脈域的已同步的仲裁請求被控制時脈域授權。仲裁請求訊號以及仲裁授權訊號都是同步的。一個時脈域請求器,第一時脈域請求器310或者第二時脈域請求器312,可以將仲裁結果輸出給仲裁多工器316,其中,仲裁多工器316發出已選擇記憶體存取請求給指定的作為共享記憶庫的共享記憶體部分290。
舉例說明,請聯合參閱第17圖以及第18圖,第17圖以及第18圖為記憶體存取配置的實例示意圖,假設共享記憶庫290包含記憶體裝置108的記憶庫114a到記憶庫114f。下面描述的過程,記憶體控制器106首先配置為存取如第17圖所示的記憶體裝置108,而第一處理器102存取記憶庫114a到記憶庫114d,第二處理器104存取記憶庫114e到記憶庫114f,然後重新配置,以存取如第18圖所示的記憶體裝置108,其中,第一處理器102存取記憶庫114a到記憶庫114b,而第二處理器104存取記憶庫114c到記憶庫114f。作為共享記憶庫的共享記憶體部分290的記憶庫由第一處理器102存取的記憶體,作為L3記憶體,故也可稱之為L3記憶庫,而共享記憶庫290的記憶庫由第二處理器104存取的記憶體,作為L3記憶體,故也可稱之為L2記憶庫。
第一時脈域請求器310被授權存取該特定記憶庫,直到第二時脈域請求器312存取特定記憶庫,然後,第一時脈域請求器310以及第二時脈域請求器312實施一仲裁過程,以確定該第二時脈域請求器是否被授權存取該特定記憶庫。第一處理器102以及第二處理器104之間的仲裁握手程序由第6B圖中的第一時脈域請求器310以及第二時脈域請求器312處理,以在特定記憶庫(在本發明中,例如可以為記憶庫114c以及記憶庫114d)由第一處理器102存取而切換到由第二處理器104存取之前,保證第一時脈域(例如,CLK1的情況下)中對記憶庫114c以及記憶庫114d的所有記憶體存取請求都完成。第二時脈域請求器312透過發送仲裁請求訊號318給第一時脈域請求器310,而請求存取記憶庫114c以及記憶庫114d。同步單元320a自第二時脈域請求器312接收仲裁請求訊號318,然後在將仲裁請求訊號318發送給第一時脈域請求器310之前,將仲裁請求訊號318與第一時脈訊號118(CLK1)同步。第一時脈域請求器310確定,是否有對記憶庫114c以及記憶庫114d的等待(pending)的記憶體存取,即,第二時脈域請求器312請求存取該特定記憶庫。如果確實有等待的記憶體存取,那麽,第一時脈域請求器310等到直到記憶體存取請求完成(也就是說確定從第一處理器102存取特定記憶庫之所有記憶體存取請求已經完成時),然後將仲裁授權訊號319發送給第二時脈域請求器312。仲裁授權訊號319由同步單元320b來同步。然後,如第18圖所示,記憶庫114c以及記憶庫114d可以由第二處理器104存取。
當記憶體控制器106配置為致能由第一處理器102存取記憶庫114c以及記憶庫114d(如第17圖所示),那麽,仲裁多工器316允許來自第一時脈域請求器310的記憶體存取請求傳遞給記憶庫114c以及記憶庫114d。然後,如果第一處理器102嘗試存取記憶庫114c以及記憶庫114d,則第一時脈域請求器310將記憶體存取請求直接發送給記憶庫114c以及記憶庫114d,而不使用仲裁過程,而由於不經過仲裁過程,第一處理器102就不會經歷延遲。
當記憶體控制器106配置為致能由第二處理器104存取記憶庫114c以及記憶庫114d(如第18圖所示),使用上面所述仲裁過程來保證恰當的切換,而當等待仲裁過程的完成,就存在一個延遲。在仲裁過程完成之後,記憶體控制器106則重新配置,以允許第二處理器104存取記憶庫114c以及記憶庫114d,仲裁多工器316允許來自第二時脈域請求器312的記憶體存取請求傳遞給記憶庫114c以及記憶庫114d。然後,如果第二處理器104嘗試存取記憶庫114c以及記憶庫114d,則第二時脈域請求器312將記憶體存取請求直接發送給記憶庫114c以及記憶庫114d,而不使用仲裁過程,而由於不經過仲裁過程,第二處理器104就不會經歷延遲。在此過程中,同步單元320c自第二時脈域請求器312接收請求然後在將請求發送給第一時脈域請求器310之前,將請求與第一時脈訊號118(CLK1)同步,而仲裁授權訊號由同步單元320d來同步。然後,記憶庫114c以及記憶庫114d可以由第二處理器104存取。總而言之,同步單元用於同步仲裁請求訊號與仲裁授權訊號。
因此,如上所述,使用單一時脈域的共享記憶庫的連續存取沒有仲裁的延遲(latency)。儘管如此,對於切換時脈域卻有仲裁懲罰,包含多個時脈域同步延遲。
下面為用於作為L2記憶體的第二部分112(以及共享記憶體290中由第二處理器104存取的記憶庫)以及作為L3記憶體的第一部分110(以及共享記憶體290中由第一處理器102存取的記憶庫)的存取時序方案的例子。
第7圖為示例的L3記憶體存取時序示意圖160。時序示意圖160給出了寫入週期140以及讀取週期142過程中,用於介面時序以及内部時序的訊號準位,其中,使用時脈訊號CLK_L3作為參考。與介面時序有關的訊號包含記憶庫選擇訊號144、位址以及控制訊號146、寫入資料148以及讀取資料150。與内部時序有關的訊號包含輸入閂鎖指示訊號152、寫入資料閂鎖指示訊號154、寫入存取開始訊號156、以及讀取存取開始訊號158。在此例子中,所有L3記憶體操作,除了寫入存取開始,都為自時脈訊號CLK_L3的下降邊緣而自計時(self timed),例如,在此實施例中,當時脈訊號CLK_L3的週期為14.4ns,那麼時脈訊號CLK_L3半週期時間為7.2ns,自時脈訊號CLK_L3的下降邊緣到記憶庫選擇訊號144有效的時間為2.44ns,自時脈訊號CLK_L3的下降邊緣到位址以及控制訊號146有效的時間為2.5ns,自時脈訊號CLK_L3的下降邊緣到寫入資料148有效的時間為5.5ns,而自時脈訊號CLK_L3的下降邊緣到讀取資料150有效的時間為11.1ns。
第8圖為示例的L2記憶體存取時序示意圖170。時序示意圖170寫入週期172以及讀取週期174過程中,用於介面時序以及内部時序的訊號準位,其中,使用時脈訊號CLK_L2以及時脈訊號EARLY_CLK_L2作為參考。時脈訊號CLK_L2用作閂鎖輸出。時脈訊號EARLY_CLK_L2觸發寫入和讀取存取。在此例子中,所有L2記憶體操作,除了寫入存取開始,都為自時脈訊號EARLY_CLK_L2的下降邊緣而自計時(time),例如,在此實施例中,當時脈訊號CLK_L3的週期為7.2ns,那麽時脈訊號CLK_L3半週期時間為3.6ns,自時脈訊號CLK_L3的下降邊緣到記憶庫選擇訊號144有效的時間為1.25ns,自時脈訊號CLK_L3的下降邊緣到位址以及控制訊號146有效的時間為1.65ns,自時脈訊號CLK_L3的下降邊緣到寫入資料148有效的時間為2.45ns,而自時脈訊號CLK_L3的下降邊緣到讀取資料150有效的時間為8.5ns。
第9圖為L2記憶體存取以及L3記憶體存取交錯並指示為存取同一記憶庫的時序示意圖180。此種實現可以發生在共享記憶體部分290(共享L2_L3記憶體)中。L2記憶體使用時脈訊號CLK_L2作為參考,L3記憶體(系統記憶體)使用時脈訊號CLK_L3作為參考。在此例子中,時脈訊號CLK_L2與時脈訊號CLK_L3具有同樣的頻率。在此示意圖中記作:L2使用CLK_L2,L3(系統)使用CLK_L3=CLK_L2,以及對同一記憶庫交錯L2& L3存取。典型地,在旁路(bypass)模式下,此實施例中,CLK_L3=CLK_L2,CLK_L2可以為13MHz或者26MHz,此種情況,對於L2& L3存取來說,為低頻運作。
第10圖為L2記憶體存取以及L3記憶體存取被指示為存取不同記憶庫的時序示意圖190。L2記憶體使用時脈訊號CLK_L2作為參考,L3記憶體使用時脈訊號CLK_L3作為參考。在此例子中,時脈訊號CLK_L2與時脈訊號CLK_L3具有同樣的頻率。在此示意圖中記作:L2& L3存取不同的記憶庫,可以同時發生。
第11A圖以及第11B圖為L2記憶體存取以及L3記憶體存取交錯並指示為存取同一記憶庫的時序示意圖200以及示意圖210。此種實現可以發生在共享記憶體部分290(共享L2_L3記憶體)中。L2記憶體使用時脈訊號CLK_L2作為參考,L3記憶體使用時脈訊號CLK_L3作為參考。在此例子中,時脈訊號CLK_L2的頻率為時脈訊號CLK_L3的頻率的二倍。示意圖中簡單的描述,基本同第9圖,此處不再贅述。
第12圖為L2記憶體存取以及L3記憶體存取被指示為存取不同記憶庫,而且可以同時發生的時序示意圖220。L2記憶體使用時脈訊號CLK_L2作為參考,L3記憶體使用時脈訊號CLK_L3作為參考。在此例子中,時脈訊號CLK_L2的頻率為時脈訊號CLK_L3的頻率的二倍。示意圖中簡單的描述,基本同第10圖,此處不再贅述。
第13A圖以及第13B圖為L2記憶體存取以及L3記憶體存取交錯並指示為存取同一記憶庫的時序示意圖230以及示意圖240。此種實現可以發生在共享記憶體部分290(共享L2_L3記憶體)中。L2記憶體使用時脈訊號CLK_L2作為參考,L3記憶體使用時脈訊號CLK_L3作為參考。在此例子中,時脈訊號CLK_L2的頻率為時脈訊號CLK_L3的頻率的三倍。示意圖中簡單的描述,基本同第9圖,此處不再贅述。
第14圖為L2記憶體存取以及L3記憶體存取被指示為存取不同記憶庫,而且可以同時發生的時序示意圖250。L2記憶體使用時脈訊號CLK_L2作為參考,L3記憶體使用時脈訊號CLK_L3作為參考。在此例子中,時脈訊號CLK_L2的頻率為時脈訊號CLK_L3的頻率的三倍。示意圖中簡單的描述,基本同第9圖,此處不再贅述。
第15A圖以及第15B圖為L2記憶體存取以及L3記憶體存取交錯並指示為存取同一記憶庫的時序示意圖260以及示意圖270。此種實現可以發生在共享記憶體部分290(共享L2_L3記憶體)中。L2記憶體使用時脈訊號CLK_L2作為參考,L3記憶體使用時脈訊號CLK_L3作為參考。在此例子中,時脈訊號CLK_L2的頻率為時脈訊號CLK_L3的頻率的四倍。示意圖中簡單的描述,基本同第9圖,此處不再贅述。
第16圖為L2記憶體存取以及L3記憶體存取被指示為存取不同記憶庫,而且可以同時發生的時序示意圖280。L2記憶體使用時脈訊號CLK_L2作為參考,L3記憶體使用時脈訊號CLK_L3作為參考。在此例子中,時脈訊號CLK_L2的頻率為時脈訊號CLK_L3的頻率的四倍。示意圖中簡單的描述,基本同第10圖,此處不再贅述。
可以理解的是,本發明不以上述實施例為限。
儘管闡述了一些實施例,但是所屬領域習知技藝者可以了解,其他均等變形以及明顯變形的實現方式以及應用也在本發明包含範圍之内。因此本發明不以上述實施方式為限。例如,多種元件均可實現在硬體、韌體、軟體或者任何上述三者的組合中。記憶體裝置108可以分為多個部分,而分為兩個部分也不必僅作為L2記憶體以及L3記憶體而被存取。兩個部分可以均作為兩個L3記憶體模組或者兩個L2快取模組,等等。裝置名稱“L2記憶體”以及“L3記憶體”(或者“系統記憶體”)僅僅用以描述本發明,然本發明不以此為限。
在第4圖以及第5圖中,L2記憶體以及L3記憶體的邊界與記憶庫的邊界對齊。系統設計為記憶體裝置108可以根據區塊(block)而配置也是可以的,而區塊包含多於一個記憶庫,而且不必與記憶庫對齊。每個記憶體區塊都可以接收各自的時脈訊號,以及具有各自的讀取/寫入存取埠。L2記憶體以及L3記憶體的時序示意圖可以不同,如第7圖-第16圖所示。
在第2圖-第5圖的例子中,多工器128放置在記憶體控制器106中,而已選擇的時脈訊號由記憶體控制器106提供給記憶體裝置108。將多工器128放置在記憶體控制器106外也是可以的,但是仍然由記憶體控制器106所控制。
在第17圖以及第18圖的例子中,6個記憶庫中每一者都可以由第一處理器102或者第二處理器104存取。在一些實現中,時脈域交叉以及記憶庫仲裁單元302可以有6個仲裁多工器316,每一個均與單獨的共享記憶庫匯流排314相關聯,以允許同時存取該6個記憶庫。在一些實現中,僅使用一個仲裁多工器315以及一個共享記憶庫匯流排314。此操作允許更少的存取同時發生,但是卻可以改進存取時序以及降低邏輯複雜性。
請注意,雖然以上述實施例說明本發明,然本發明不以上述實施例為限。例如,如第4圖以及第5圖所示的實施例中揭示了記憶體裝置108分配為分別由第一處理器102以及第二處理器104存取的第一部分110以及第二部分112。而如第17圖以及第18圖所示所示的實施例中揭示了記憶體裝置108分配為第一部分110、第二部分112以及共享記憶體部分290,共享記憶體部分290再分配為由第一處理器102存取的記憶體以及由第二處理器104存取的記憶體。所以,如第17圖以及第18圖所示記憶體裝置108架構配置中,第一部分110與共享記憶體部分290中由第一處理器102存取的記憶體部分,以及第二部分112與共享記憶體部分290中由第二處理器104存取的記憶體部分就可以分別稱之為記憶體裝置108的第一部分以及第二部分,進而分別由第一處理器102以及第二處理器104存取。不同之處在於,如第17圖以及第18圖所示的配置實施例中,共享記憶體部分290可以配置為由第一處理器102以及第二處理器104分別獨佔存取的部分,或者配置為由第一處理器102以及第二處理器104共同存取的部分。然本發明不以上述實施例為例,例如可以分為由使用三個或者更多的存取時序方案以及匯流排寬度(假設具有額外的時脈訊號以及資料匯流排)而存取的三部分或者更多部分。
記憶體裝置108可以為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)裝置,靜態隨機存取記憶體(Static Random Access Memory,SRAM)裝置,或者其它類型記憶體。第一介面匯流排130以及第二介面匯流排132的寬度可以如上所述而有所不同。例如,多個匯流排中的一個為128位元寬,或者更寬。
任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視所附之申請專利範圍所界定者為準。
100...系統
102...第一處理器
104...第二處理器
106...記憶體控制器
108...記憶體裝置
110...第一部分
112...第二部分
124a、126a...匯流排
128、128a...多工器
130...第一介面匯流排
132...第二介面匯流排
113...埠
116...埠
118...第一時脈訊號
120...第二時脈訊號
290...共享記憶體部分
114、114a、114b、114c、114d、114e、114f...記憶庫
300...控制暫存器介面
302...時脈域交叉以及庫仲裁單元
304...第一位址解碼器
306...第二位址解碼器
301...暫存器匯流排
310...第一時脈域請求器
312...第二時脈域請求器
314...共享記憶庫匯流排
316...仲裁多工器
318...仲裁請求訊號
320a、320b、320c、320d...同步單元
322...第一資料匯流排
324...第二資料匯流排
140...寫入週期
142...讀取週期
144...記憶庫選擇訊號
146...位址以及控制訊號
148...寫入資料
150...讀取資料
152...輸入閂鎖指示訊號
154...寫入資料閂鎖指示訊號
156...寫入存取開始訊號
158...讀取存取開始訊號
172...寫入週期
174...讀取週期
160、170、180、190、200、210、220、230、240、250、260、270、280...時序示意圖
CLK_L3、CLK_L2、EARLY_CLK_L2...時脈訊號
第1圖為具有配置記憶體架構之實例系統的示意圖;
第2圖為具有配置記憶體架構之實例系統的示意圖;
第3圖為系統致能記憶體裝置,使其重新動態配置的示例架構;
第4圖為記憶體存取配置的實例系統的示意圖;
第5圖為記憶體存取配置的實例系統的示意圖;
第6A圖為記憶體控制器的示意圖;
第6B圖為時脈域交叉以及庫仲裁單元的示意圖;
第7圖為示例的L3記憶體存取時序示意圖;
第8圖為示例的L2記憶體存取時序示意圖;
第9圖為L2記憶體存取以及L3記憶體存取交錯,並指示為存取同一記憶庫的時序示意圖;
第10圖為L2記憶體存取以及L3記憶體存取,被指示為存取不同記憶庫的時序示意圖;
第11A圖以及第11B圖為L2記憶體存取以及L3記憶體存取交錯,並指示為存取同一記憶庫的時序示意圖;
第12圖為L2記憶體存取以及L3記憶體存取,被指示為存取不同記憶庫,而且可以同時發生的時序示意圖;
第13A圖以及第13B圖為L2記憶體存取以及L3記憶體存取交錯,並指示為存取同一記憶庫的時序示意圖;
第14圖為L2記憶體存取以及L3記憶體存取,被指示為存取不同記憶庫,而且可以同時發生的時序示意圖;
第15A圖以及第15B圖為L2記憶體存取以及L3記憶體存取交錯,並指示為存取同一記憶庫的時序示意圖;
第16圖為L2記憶體存取以及L3記憶體存取,存取不同記憶庫,被指示為可以同時發生的時序示意圖;
第17圖以及第18圖為記憶體存取配置的實例示意圖。
100...系統
102...第一處理器
104...第二處理器
106...記憶體控制器
108...記憶體裝置
110...第一部分
112...第二部分
113...埠
116...埠
118...第一時脈訊號
120...第二時脈訊號
130...第一介面匯流排
132...第二介面匯流排

Claims (35)

  1. 一種記憶體系統,包含:一第一處理器,用於根據一第一時脈頻率存取記憶體;一第二處理器,用於根據一第二時脈頻率存取記憶體;一記憶體裝置,用於根據該第一時脈頻率或者該第二時脈頻率選擇性地運作;以及一記憶體控制器,用於致能該記憶體裝置之架構之動態配置,以允許該第一處理器根據該第一時脈頻率,存取該記憶體裝置之一第一部分,以及允許該第二處理器根據該第二時脈頻率,存取該記憶體裝置之一第二部分,其中,該記憶體控制器包含:一第一時脈域請求器,根據該第一時脈頻率運作,以及將多個記憶體存取指令自該第一處理器傳輸至該記憶體裝置之多個記憶庫;以及一第二時脈域請求器,根據該第二時脈頻率運作,以及將記憶體存取指令自該第二處理器傳輸至該多個記憶庫,其中,在一給定時間,該第一時脈域請求器以及該第二時脈域請求器僅有一者被授權以存取該多個記憶庫之任何一特定記憶庫;其中該記憶體控制器配置為在該特定記憶庫被該第一時脈域請求器存取之後,該第二時脈域請求器將一仲裁請求訊號發送至該第一時脈域請求器,然後該第一時脈域請求器確定由該第一處理器存取該特定記憶庫之所有記憶體存取請求已經完成時,該第一時脈域請求器 將一仲裁授權訊號發送至該第二時脈域請求器。
  2. 如申請專利範圍第1項所述之記憶體系統,其中,當該第一處理器或者該第二處理器執行一應用程式時,該記憶體控制器致能該記憶體裝置之架構之重新配置,以調整該第一部分以及該第二部分之大小。
  3. 如申請專利範圍第1項所述之記憶體系統,其中,當該記憶體裝置以及該記憶體控制器啟動時,該記憶體控制器致能該記憶體裝置之架構之重新配置,以調整該第一部分以及該第二部分之大小。
  4. 如申請專利範圍第1項所述之記憶體系統,其中,該記憶體裝置包含多個記憶庫,以及該記憶體控制器沿著該多個記憶庫的邊界,分配該記憶體裝置的該第一部分以及該第二部分。
  5. 如申請專利範圍第4項所述之記憶體系統,包含多個多工器,該多個多工器之每一者與該多個記憶庫之一者對應,該多個多工器之每一者自具有第一時脈頻率之該第一時脈訊號以及具有第二時脈頻率之該第二時脈頻率訊號選擇,然後將已選擇之時脈訊號傳輸給對應的記憶庫。
  6. 如申請專利範圍第1項所述之記憶體系統,其中,該記憶體控制器致能該記憶體裝置之架構之動態配置,以允許該第一處理器根據該第一時脈頻率,獨佔存取該記憶體裝置之一第三部分。
  7. 如申請專利範圍第6項所述之記憶體系統,其中,該記憶體控制器致能該記憶體裝置之架構之重新配置,以調整該第一部分以及該第二部分之大小,以及該記憶體控 制器包含一位址解碼器,用於自該第一處理器接收多個記憶體存取請求,以及該位址解碼器確定該多個記憶體存取請求是否用於存取該記憶體裝置之該第一部分或者該第三部分。
  8. 如申請專利範圍第1項所述之記憶體系統,其中,使用5個或者更少的該第一時脈頻率以及第二時脈頻率之較慢者的時脈週期,該記憶體控制器致能該記憶體裝置之架構之重新配置,以重新分配該記憶體裝置之該第一部分以及該第二部分之大小。
  9. 如申請專利範圍第1項所述之記憶體系統,其中,該記憶體裝置之該第一部分為使用一第一匯流排寬度存取,該記憶體裝置之該第二部分為使用一第二匯流排寬度存取。
  10. 如申請專利範圍第1項所述之記憶體系統,其中,該記憶體控制器監視多個記憶體存取指令之執行,以及在接收到一訊號之後,立刻從該第一時脈頻率切換到該第二時脈頻率,以存取該記憶體裝置之一部分,以及在切換至該第二時脈頻率之前,該記憶體控制器確定,使用該第一時脈頻率之存取該記憶體裝置之該部分之前一記憶體存取指令是否已經完成。
  11. 如申請專利範圍第1項所述之記憶體系統,其中,該記憶體控制器包含一仲裁單元,用於仲裁該第一處理器以及該第二處理器對該記憶體裝置之多個記憶庫之存取。
  12. 如申請專利範圍第1項所述之記憶體系統,其中,直到該第二時脈域請求器存取一特定記憶庫,該第一時脈 域請求器被授權存取該特定記憶庫,然後,該第一時脈域請求器以及該第二時脈域請求器實施一仲裁過程,以確定該第二時脈域請求器是否被授權存取該特定記憶庫。
  13. 如申請專利範圍第1項所述之記憶體系統,其中,該記憶體控制器包含一個或者多個同步單元,該一個或者多個同步單元用於在不同時脈域,同步該仲裁請求訊號,以及同步該仲裁授權訊號。
  14. 如申請專利範圍第1項所述之記憶體系統,其中,該記憶體裝置配置為根據三個或者更多時脈頻率選擇性地運作,而該記憶體控制器致能該記憶體裝置之動態配置,以允許根據該記憶體裝置運行的該三個或者更多時脈頻率之任何一者,存取該記憶體裝置之一部分。
  15. 如申請專利範圍第1項所述之記憶體系統,其中,基於哪個處理器存取該記憶體裝置以及存取該記憶體裝置之時脈頻率,該記憶體控制器自動確定該記憶體裝置之架構。
  16. 如申請專利範圍第15項所述之記憶體系統,其中,該記憶體控制器致能該記憶體裝置之動態配置,以根據該第一時脈頻率允許該第一處理器存取該記憶體裝置之全部,或者根據該第二時脈頻率允許該第二處理器存取該記憶體裝置之全部。
  17. 如申請專利範圍第1項所述之記憶體系統,其中該記憶體控制器配置為在該第二處理器授權存取該特定記憶庫之後,當該第一處理器請求存取該特定共用記憶庫時,該第一時脈域請求器發送另一仲裁請求訊號給該第二時脈 域請求器,在該第二時脈域請求器確定來自該第二處理器對於該特定記憶庫之記憶體存取請求已經完成之後,該第二時脈域請求器發送另一仲裁授權訊號至該第一時脈域請求器。
  18. 一種記憶體系統,包含:一第一處理器,用於根據一第一時脈頻率存取記憶體;一第二處理器,用於根據一第二時脈頻率存取記憶體;一記憶體裝置,該記憶體裝置具有多個記憶庫,該多個記憶庫由該第一處理器或者該第二處理器存取,該多個記憶庫配置為根據該第一時脈頻率或者該第二時脈頻率,選擇性地運行;以及一記憶體控制器,用於致能該多個記憶庫之架構之動態配置,以根據該第一時脈頻率由該第一處理器存取該多個記憶庫之第一組,以及根據該第二時脈頻率由該第二處理器存取該多個記憶庫之第二組,其中該記憶體控制器包含:一第一時脈域請求器,該第一時脈域請求器根據該第一時脈頻率運行,以及將多個記憶體存取指令自該第一處理器傳輸至該多個記憶庫;以及一第二時脈域請求器,該第二時脈域請求器根據該第二時脈頻率運行,以及將該多個記憶體存取指令自該第二處理器傳輸至該多個記憶庫,其中在一給定時間內該第一時脈域請求器以及該第二時脈域請求器僅一者被授權存取 任何一特定記憶庫;當該第一處理器被授權存取一特定記憶庫以及該第二處理器嘗試存儲該特定記憶庫時,該第二時脈域請求器發送一仲裁請求訊號至該第一時脈域請求器,在該第一時脈域請求器確定來自第一處理器的對該特定記憶庫之多個記憶體存取請求已經完成時,該第一時脈域請求器發送一仲裁授權訊號至該第二時脈域請求器。
  19. 如申請專利範圍第18項所述之記憶體系統,其中,該記憶體控制器包含一個或者多個同步單元,該一個或者多個同步單元用於在不同時脈域,同步該仲裁請求訊號與該仲裁授權訊號。
  20. 如申請專利範圍第18項所述之記憶體系統,其中該記憶體控制器配置為在該第二處理器授權存取該特定記憶庫之後,當該第一處理器請求存取該特定共用記憶庫時,該第一時脈域請求器發送另一仲裁訊號至該第二時脈域請求器,在該第二時脈域請求器確定來自該第二處理器對於該特定記憶庫之記憶體存取請求已經完成之後,該第二時脈域請求器發送另一仲裁授權訊號至該第一時脈域請求器。
  21. 一種存取記憶體之方法,包含:動態配置一記憶體裝置之架構,以允許該記憶體裝置之一第一部分由第一處理器根據一第一時序方案而存取,以及允許該記憶體裝置之一第二部分由第二處理器根據一第二時序方案而存取;在一記憶體控制器中以一第一時脈域請求器自該第 一處理器接收一第一記憶體存取指令,其中該第一時脈域請求器根據該第一時序方案之一第一時脈頻率運作;根據該第一時序方案,因應該第一記憶體存取指令,從該第一時脈域請求器發送該第一記憶體存取指令給該記憶體裝置,以致能該第一處理器存取該記憶體裝置之該第一部分;在該記憶體控制器中以一第二時脈域請求器自該第二處理器接收一第二記憶體存取指令,其中,該第二時脈域請求器根據該第二時序方案之一第二時脈頻率運作;根據該第二時序方案,因應該第二記憶體存取指令,從該第二時脈域請求器發送該第二記憶體存取指令給該記憶體裝置,以致能該第二處理器存取該記憶體裝置之該第二部分;在一特定記憶庫被授權給該第一處理器存取之後,該第二時脈域請求器發送一仲裁請求訊號給該第一時脈域請求器,以及在該第一時脈域請求器決定該第一處理器對該特定記憶庫之記憶體存取請求已經被完成之後,發送一仲裁授權訊號給該第二時脈域請求器;以及在一給定時間授權該第一時脈域請求器或者該第二時脈域請求器其中只有一者存取任何特定記憶庫。
  22. 如申請專利範圍第21項所述之存取記憶體之方法,其中,根據該第一時序方案存取該記憶體裝置之該第一部分包含根據該第一時脈頻率存取該記憶體裝置之該第一部分,以及根據該第二時序方案存取該記憶體裝置之該第二部分包含根據該第二時脈頻率存取該記憶體裝置之該 第二部分。
  23. 如申請專利範圍第22項所述之存取記憶體之方法,更包含:對於該記憶體裝置之多個記憶庫之每一記憶庫,選擇具有該第一時脈頻率之一第一時脈訊號以及具有該第二時脈頻率之一第二時脈訊號之一者,然後將已選時脈訊號傳遞給該記憶庫。
  24. 如申請專利範圍第21項所述之存取記憶體之方法,更包含當由該第一處理器或者該第二處理器執行一應用程式時,重新配置該記憶體裝置之架構,以調整該第一部分以及該第二部分之大小。
  25. 如申請專利範圍第21項所述之存取記憶體之方法,更包含在該記憶體裝置以及該記憶體控制器啟動之後,立刻重新配置該記憶體裝置之架構,以調整該第一部分以及該第二部分之大小。
  26. 如申請專利範圍第21項所述之存取記憶體之方法,更包含沿著該記憶體裝置之多個記憶庫之邊界,分配該記憶體裝置之該第一部分以及該第二部分。
  27. 如申請專利範圍第21項所述之存取記憶體之方法,更包含,根據,使用5個或者更少的該第一時脈頻率以及該第二時脈頻率之較慢一者的時脈週期,重新配置該記憶體裝置,以重新分配該第一部分以及該第二部分之大小。
  28. 如申請專利範圍第21項所述之存取記憶體之方法,更包含,使用一第一匯流排寬度存取該記憶體裝置該第一部分,以及使用一第二匯流排寬度存取該記憶體裝置 該第二部分。
  29. 如申請專利範圍第21項所述之存取記憶體之方法,其中,該記憶體控制器監視該第一記憶體存取指令以及該第二記憶體存取指令之執行,在接收到自該第一存取時序切換至該第二存取時序之一訊號後,在切換至該第二存取時序之前,確定與該第一存取時序方案有關之該第一記憶體存取指令是否已經完成。
  30. 如申請專利範圍第21項所述之存取記憶體之方法,更包含:該記憶體控制器配置為在該第二處理器授權存取該特定記憶庫之後,當該第一處理器請求存取該特定記憶庫時,該第一時脈域請求器發送另一仲裁訊號給該第二時脈域請求器,在該第二時脈域請求器確定來自該第二處理器對於該特定共用記憶庫之記憶體存取請求已經完成之後,該第二時脈域請求器發送另一仲裁授權訊號給該第一時脈域請求器。
  31. 一種存取記憶體之方法,包含:動態配置一記憶體裝置之架構,該記憶體裝置具有在一第一處理器以及一第二處理器所共享之多個記憶庫,以允許該多個記憶庫之第一組由該第一處理器根據一第一時脈頻率所存取,以及允許該多個記憶庫之第二組由該第二處理器根據一第二時脈頻率所存取;以及用於由該第一處理器以及該第二處理器存取該多個記憶庫之多個仲裁請求,來自該第一處理器之仲裁請求根據該第一時脈頻率而同步,而來自該第二處理器之仲裁請求根據該第二時脈頻率而同步; 所述之存取記憶體之方法,包含授權該第一處理器存取一特定記憶庫,直到該第二處理器請求存取該記憶庫,然後實施仲裁握手,以確定該第二處理器是否已經被授權存取該特定記憶庫,其中實施該仲裁握手包含:自一第二時脈域請求器至一第一時脈域請求器發送一仲裁請求訊號,在該第一時脈域請求器確定來自該第一處理器的存取該特定記憶庫之該記憶體存取請求已經完成之後,自該第一時脈域請求器發送一仲裁授權訊號至該第二時脈域。
  32. 如申請專利範圍第31項所述之存取記憶體之方法,更包含:授權由該第二處理器存取該特定記憶庫,直到該第一處理器請求存取該特定記憶庫,自該第一時脈域請求器至該第二時脈域請求器發送另一仲裁請求訊號,在該第二時脈域請求器確定來自該第二處理器的存取該特定記憶庫之該記憶體存取請求已經完成之後,自該第二時脈域請求器發送另一仲裁授權訊號至該第一時脈域請求器。
  33. 如申請專利範圍第31項所述之存取記憶體之方法,更包含,在不同時脈域,同步該仲裁請求訊號以及同步該仲裁授權訊號。
  34. 一種記憶體系統,包含:一記憶體裝置,具有多個部分,該多個部分之每一者配置為根據多個時序方案而運行;以及一致能器,當一應用程式被執行時,致能該記憶體裝置之架構之動態配置,以允許該記憶體裝置之多個部分之每一者動態配置為根據該一第一時序方案或者一第二時序 方案而被存取,其中該致能器包含記憶體控制器,該記憶體控制器包含一第一時脈域請求器,該第一時脈域請求器根據多個時序方案之一者之一第一時脈頻率運作以及將來自該第一處理器之一記憶體存取指令傳遞給該共用記憶庫,以及第二時脈域請求器,該第二時脈域請求器根據多個時序方案之一之一第二時間頻率運作,以及將來自該第二處理器之記憶體存取指令傳遞給該共用記憶庫,其中,該第一時脈域請求器以及該第二時脈域請求器只有一者在給定時間被授權存取任何特定記憶庫;其中該記憶體控制器配置為在一特定記憶庫被該第一時脈域請求器存取之後,該第二時脈域請求器發送一仲裁請求訊號給該第一時脈域請求器,以及在該第一時脈域請求器決定來自該第一處理器之對於該記憶體存取請求已經被完成時,該第一時脈域請求器發送一仲裁授權訊號給該第二時脈域請求器。
  35. 如申請專利範圍第34項所述之記憶體系統,其中該記憶體控制器配置為在該第二處理器授權存取該特定記憶庫之後,當該第一處理器請求存取該特定記憶庫時,該第一時脈域請求器發送一仲裁訊號給該第二時脈域請求器,在該第二時脈域請求器決定來自該第二處理器對於該特定記憶庫之記憶體存取請求已經完成之後,該第二時脈域請求器發送另一仲裁授權訊號至該第一時脈域請求器。
TW098137359A 2009-06-17 2009-11-04 記憶體系統以及存取記憶體之方法 TWI443675B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/486,308 US8296526B2 (en) 2009-06-17 2009-06-17 Shared memory having multiple access configurations

Publications (2)

Publication Number Publication Date
TW201101330A TW201101330A (en) 2011-01-01
TWI443675B true TWI443675B (zh) 2014-07-01

Family

ID=42199814

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098137359A TWI443675B (zh) 2009-06-17 2009-11-04 記憶體系統以及存取記憶體之方法

Country Status (4)

Country Link
US (1) US8296526B2 (zh)
EP (1) EP2264609A1 (zh)
CN (1) CN101923523B (zh)
TW (1) TWI443675B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI719622B (zh) * 2019-07-01 2021-02-21 新加坡商瑞昱新加坡有限公司 多晶片系統

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5570619B2 (ja) * 2010-02-23 2014-08-13 ラムバス・インコーポレーテッド 異なるメモリ種類にアクセスする異なる速度での時分割多重化
US8848731B2 (en) 2011-01-31 2014-09-30 Qualcomm Incorporated System and method for facilitating data transfer using a shared non-deterministic bus
CN103493022B (zh) * 2011-03-28 2016-05-04 富士通株式会社 多核处理器系统
CN102509556A (zh) * 2011-11-23 2012-06-20 常州金土木自动化研究所有限公司 无源远距离单线传输可读写存储器及其工作方法
CN103129185B (zh) * 2011-12-05 2016-04-06 珠海天威技术开发有限公司 数据存储装置及其数据访问方法、成像设备
TW201339842A (zh) * 2012-03-20 2013-10-01 Copystar Backup & Storage Corp 協同式匯流排仲裁多工架構及依該架構所進行之資料存取仲裁方法
EP2842039A4 (en) * 2012-04-25 2015-12-09 Hewlett Packard Development Co ASSIGNMENT OF DYNAMIC MEMORY
US9448947B2 (en) * 2012-06-01 2016-09-20 Qualcomm Incorporated Inter-chip memory interface structure
CN102750241A (zh) * 2012-06-13 2012-10-24 中国科学院声学研究所 一种上位机和下位机之间的通信方法及系统
US8984203B2 (en) * 2012-10-09 2015-03-17 Sandisk Technologies Inc. Memory access control module and associated methods
WO2015192765A1 (en) 2014-06-16 2015-12-23 Mediatek Inc. Apparatus and method for processing data samples with different bit widths
US9747963B2 (en) * 2014-11-03 2017-08-29 Mediatek Inc. Multi-channel memory system using asymmetric channel frequency scaling and related power management method
CN105741517B (zh) * 2014-12-10 2019-03-29 联芯科技有限公司 一种射频控制器及对射频控制器的配置方法
US10241941B2 (en) * 2015-06-29 2019-03-26 Nxp Usa, Inc. Systems and methods for asymmetric memory access to memory banks within integrated circuit systems
KR102641515B1 (ko) * 2016-09-19 2024-02-28 삼성전자주식회사 메모리 장치 및 그것의 클록 분배 방법
US10846018B2 (en) * 2017-04-05 2020-11-24 Mediatek Inc. Memory device, memory controller and associated memory system operated according to selected clock signals
CN118069218A (zh) * 2017-09-12 2024-05-24 恩倍科微公司 极低功率微控制器系统
JP6903275B2 (ja) * 2017-09-14 2021-07-14 オムロン株式会社 制御装置および制御方法
KR102659701B1 (ko) * 2018-06-04 2024-04-22 에스케이하이닉스 주식회사 반도체 장치
CN110688331B (zh) * 2018-07-05 2021-08-17 珠海全志科技股份有限公司 一种SoC芯片及读取数据的方法
TWI743859B (zh) * 2020-06-30 2021-10-21 旺宏電子股份有限公司 記憶體裝置、電子裝置及與其相關的讀取方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965974B1 (en) * 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
US6401176B1 (en) * 1997-11-14 2002-06-04 Agere Systems Guardian Corp. Multiple agent use of a multi-ported shared memory
US7352836B1 (en) * 2001-08-22 2008-04-01 Nortel Networks Limited System and method of cross-clock domain rate matching
US7502817B2 (en) 2001-10-26 2009-03-10 Qualcomm Incorporated Method and apparatus for partitioning memory in a telecommunication device
KR100450680B1 (ko) * 2002-07-29 2004-10-01 삼성전자주식회사 버스 대역폭을 증가시키기 위한 메모리 컨트롤러, 이를이용한 데이터 전송방법 및 이를 구비하는 컴퓨터 시스템
DE10254615A1 (de) * 2002-11-22 2004-06-17 Infineon Technologies Ag Schnittstellenschaltung
US7555585B2 (en) * 2006-06-30 2009-06-30 Broadcom Corporation Optimized performance and power access to a shared resource in a multiclock frequency system on a chip application

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI719622B (zh) * 2019-07-01 2021-02-21 新加坡商瑞昱新加坡有限公司 多晶片系統
US11157206B2 (en) 2019-07-01 2021-10-26 Realtek Singapore Private Limited Multi-die system capable of sharing non-volatile memory

Also Published As

Publication number Publication date
US20100325368A1 (en) 2010-12-23
TW201101330A (en) 2011-01-01
CN101923523B (zh) 2012-12-19
EP2264609A1 (en) 2010-12-22
CN101923523A (zh) 2010-12-22
US8296526B2 (en) 2012-10-23

Similar Documents

Publication Publication Date Title
TWI443675B (zh) 記憶體系統以及存取記憶體之方法
US7793008B2 (en) AMBA modular memory controller
JP4737438B2 (ja) 複数の処理ユニットでリソースを共有する情報処理装置
US5983327A (en) Data path architecture and arbitration scheme for providing access to a shared system resource
US6769046B2 (en) System-resource router
US6691216B2 (en) Shared program memory for use in multicore DSP devices
JP3661235B2 (ja) 共有メモリシステム、並列型処理装置並びにメモリlsi
US20070033369A1 (en) Reconfigurable integrated circuit device
EP1095327A1 (en) Low power, high speed communications bus
EP1564646A2 (en) Configurable embedded processor
JPH0877098A (ja) 制御されたバーストメモリアクセスを備えたデータプロセッサおよびその方法
US7418535B2 (en) Bus system and method of arbitrating the same
US6948017B2 (en) Method and apparatus having dynamically scalable clock domains for selectively interconnecting subsystems on a synchronous bus
US6954869B2 (en) Methods and apparatus for clock domain conversion in digital processing systems
US7006521B2 (en) External bus arbitration technique for multicore DSP device
US7069363B1 (en) On-chip bus
US20060248247A1 (en) Apparatus and method for controlling access to a memory
JP2024512684A (ja) データファブリッククロックスイッチング
US20040064662A1 (en) Methods and apparatus for bus control in digital signal processors
JP4124579B2 (ja) バス制御システム
JP3818621B2 (ja) バスブリッジ回路およびデータ処理システム
EP1380960A1 (en) Memory access from different clock domains