TWI599887B - 經由共享記憶體組織來仲裁記憶體存取之技術 - Google Patents

經由共享記憶體組織來仲裁記憶體存取之技術 Download PDF

Info

Publication number
TWI599887B
TWI599887B TW103101132A TW103101132A TWI599887B TW I599887 B TWI599887 B TW I599887B TW 103101132 A TW103101132 A TW 103101132A TW 103101132 A TW103101132 A TW 103101132A TW I599887 B TWI599887 B TW I599887B
Authority
TW
Taiwan
Prior art keywords
memory
request
arbiter
organization
requests
Prior art date
Application number
TW103101132A
Other languages
English (en)
Other versions
TW201439771A (zh
Inventor
丹尼爾F 卡特
布萊斯 范甯
拉瑪達斯 納加拉珍
約瑟S 奈爾
戴伯拉 伯恩斯坦
狄帕克 勒美
艾奧安尼斯T 史可伊納斯
拉維珊卡 艾爾
Original Assignee
英特爾公司
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 英特爾公司 filed Critical 英特爾公司
Publication of TW201439771A publication Critical patent/TW201439771A/zh
Application granted granted Critical
Publication of TWI599887B publication Critical patent/TWI599887B/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
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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
    • 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/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0064Latency reduction in handling transfers
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

經由共享記憶體組織來仲裁記憶體存取之技術
本發明係有關於經由共享記憶體組織來仲裁記憶體存取之技術。
發明背景
在許多具有複數個裝置之電腦系統中,為對一個類似共享記憶體之共享資源提供存取會有一個仲裁被執行。為在該等不同的代理器或請求器之間促成仲裁,會有不同類型之仲裁機構提供。一些系統會使用一個固定式優先權仲裁系統,其中,不同之代理器會配置有特定之優先權。然而,此會導致使用率中之不公平和一或多個代理器對該共享資源之存取的取得能力之缺乏。有其他之仲裁系統會提出一個輪轉式解決方案來分配對該共享資源之存取。
在任一事件中,上述被執行之仲裁並不會考慮一些有關該共享資源類似其之功率狀態等因素。就此而論,一些經授予該共享資源之存取權的請求,會使該資源退出一個低功率狀態,雖然該裝置並不需要立即對該共享資源做此種存取。因此,當前之仲裁系統會蒙受各種缺點。
依據本發明之一實施例,係特地提出一種設備,其包含:一個組織構件,其耦接在一個半導體裝置的多個智財(IP)區塊與一個記憶體控制器之間,該組織構件係用於接收來自該等多個IP區塊的記憶體請求,該等記憶體請求中之至少幾者具有與其相關聯的一個截止期限值,用以指明在完成該記憶體請求之前的最大潛伏時間,其中,該組織構件會至少部份基於該等至少幾個記憶體請求的該截止期限值而在該等多個記憶體請求之間進行仲裁。
100‧‧‧共享記憶體組織
115,1150-1153‧‧‧代理器
118‧‧‧截止期限判定邏輯(DDL)
120‧‧‧認可仲裁器
1210,121n‧‧‧截止期限核對器邏輯
122‧‧‧第一時效式仲裁器
124‧‧‧第二時效式仲裁器
125‧‧‧優先權仲裁器選擇器
126‧‧‧時效儲存器
128‧‧‧權量儲存器
129‧‧‧優先權儲存器
130‧‧‧排程器仲裁器
140‧‧‧請求和相參性追蹤器
142‧‧‧記分板(SB)
143‧‧‧標籤
144‧‧‧資料緩衝器
146‧‧‧控制佇列器
148‧‧‧資源分配邏輯(RAL)
150‧‧‧全域定時器
160‧‧‧組態暫存器
170‧‧‧記憶體控制器
200,300,600‧‧‧方法
210,215,220,225,310-355,610-670‧‧‧區塊
250‧‧‧狀態機
255‧‧‧起始(INIT)狀態
260‧‧‧有效狀態
270‧‧‧更新時效狀態
280‧‧‧減量代理器權量狀態
360,400‧‧‧邏輯
365‧‧‧配置儲存器
368,375‧‧‧加法器
370‧‧‧減法器
372,374,376,378,410,4100-410n‧‧‧正反器
380,382,390‧‧‧比較器
384,385,4350-435n‧‧‧AND邏輯閘
386,387,4250-425n-2,440‧‧‧OR邏輯閘
420,4200-420n‧‧‧多工器
4300-430n‧‧‧邏輯閘
500‧‧‧狀態機
510‧‧‧自我更新狀態機
512‧‧‧進入自我更新狀態
514‧‧‧請求自我更新狀態
516‧‧‧退出自我更新狀態
520‧‧‧讀取/寫入同意狀態機
522‧‧‧同意讀取請求狀態
524‧‧‧同意寫入請求狀態
530‧‧‧讀取狀態機
532‧‧‧繞過同意狀態
534‧‧‧高優先權讀取請求同意狀態
536‧‧‧最大努力同意讀取請求狀態
538‧‧‧低優先權等時性同意讀取請求狀態
700‧‧‧單晶片系統(SoC)
7100-710n‧‧‧核心0-n
715,725‧‧‧共享式快取記憶體
7200-720n‧‧‧圖形單元0-n
728,729‧‧‧小晶片級互連器
730‧‧‧系統代理器
735‧‧‧共享記憶體組織
740‧‧‧記憶體控制器(MC)
744,746‧‧‧互連器
780‧‧‧內部代理器
800‧‧‧系統
810‧‧‧處理器
815‧‧‧系統記憶體
820‧‧‧大容量儲存器
822‧‧‧快閃裝置
824‧‧‧顯示器
825‧‧‧觸控螢幕
830‧‧‧觸控板
835‧‧‧內嵌式控制器(EC)
836‧‧‧鍵盤
837‧‧‧風扇
838‧‧‧可信賴平台模組(TPM)
839‧‧‧熱感測器
840‧‧‧感測器集線器
841‧‧‧加速度計
842‧‧‧環境光源感測器(ALS)
843‧‧‧指南針
844‧‧‧迴轉儀
845‧‧‧近場通訊(NFC)單元
846‧‧‧熱感測器
850‧‧‧無線區域網路(WLAN)單元
852‧‧‧藍芽(Bluetooth)單元
854‧‧‧照相機模組
855‧‧‧全球定位系統(GPS)模組
856‧‧‧無線廣域網路(WWAN)單元
857‧‧‧用戶識別模組(SIM)
860‧‧‧數位信號處理器(DSP)
862‧‧‧整合式編碼器/解碼器(CODEC)和放大器
863‧‧‧輸出喇叭
864‧‧‧耳機插口
865‧‧‧麥克風(MC)
HDA‧‧‧硬碟機元件
I2C‧‧‧內部整合電路
INIT‧‧‧起始狀態
LPC‧‧‧低接腳數型介面
MEM‧‧‧記憶體通道互連器
NGFF‧‧‧下一代規格(NGFF)
PCIE‧‧‧快速PCI介面(PCI Express)
PRI‧‧‧優先權通道互連器
SATA‧‧‧串行先進技術附件
SB‧‧‧邊帶通道互連器
SDIO‧‧‧安全數位卡I/O介面
SMBUS‧‧‧系統管理匯流排
SPI‧‧‧串列周邊介面
UART‧‧‧通用異步收發傳輸器
USB‧‧‧通用序列匯流排
ps2‧‧‧索尼遊戲機2
圖1係依據本發明的一個實施例之部份共享記憶體組織的方塊圖;圖2係依據本發明的一個實施例之認可仲裁器的進一步細節之方塊圖;圖3係依據本發明的一個實施例用以在判定一個仲裁中選者時更新一個代理器有關之年齡值的方法之流程圖;圖4係依據本發明的一個實施例之認可仲裁器狀態機的方塊圖;圖5係依據本發明的一個實施例在一個認可仲裁器中用以執行第一級別仲裁之方法的流程圖;圖6係依據本發明的一個實施例之部份資源分配邏輯的方塊圖;圖7係依據本發明的一個實施例之記分板指數產 生邏輯的方塊圖;圖8係依據本發明的一個實施例之排程器仲裁器有關的狀態機之方塊圖;圖9係依據本發明的一個實施例用以執行記憶體排程之方法的流程圖;圖10係依據本發明的一個實施例之SoC的方塊圖;而圖11則係依據本發明的一個實施例出現在一個電腦系統中之組件的方塊圖。
較佳實施例之詳細說明
在各種實施例中,一個共享記憶體組織可使本說明書中亦被指稱為一個代理器之複數個獨立裝置耦接至一個共享記憶體(舉例而言,經由一個居間之記憶體控制器)。在眾多之實施例中,該共享記憶體組織係一個包括不同類型之智財(IP)邏輯區塊的單一小晶片半導體裝置之互連結構。該共享記憶體組織經配置可促成與一些時間關鍵等時性裝置有關之服務品質(QoS)需求相容,同時亦會提供一些有關本說明書中亦被指稱為最大努力裝置之非等時性裝置的記憶體頻寬選擇參數。
在此一方式中,會發生記憶體頻寬之可靠且可預期的配置和排程,以支援複數個連接至該共享記憶體組織之裝置和裝置類型。藉由在一個常見之共享記憶體組織(而非一個記憶體控制器或其他之非組織性電路)納入QoS功能 性,該設計可能更容易橫跨複數個類似單晶片系統(system on chip,SoC)之半導體裝置而被重複使用,因為該設計係與記憶體技術無關。
彼等實施例因而會執行一個共享記憶體組織中之資源分配、頻寬均分、和時間觀念QoS性質,以提供可預期及可靠之記憶體頻寬和潛伏時間,使滿足該等連接至該組織之裝置的需求。
每個耦接至該共享記憶體組織之裝置係分配到某一類之服務類別。在一個實施例中,此項分配可使用該組織之組態暫存器來加以識別。該組織可能支援複數個之服務級別。雖然本發明之界定範圍並非受限於此一關係,在一個實施例中,可能會出現兩種服務級別之類別的裝置,其中包括一個供潛伏時間敏感裝置使用之等時級別的服務類別,和一些可容許較長之潛伏時間來服務彼等對記憶體的請求之裝置所使用的一個最大努力服務級別之類別。雖然本發明之界定範圍並非受限於此一關係,在一些實施例中,一些潛伏時間敏感裝置會包括一些內容呈現裝置,諸如音訊或視訊播放器、照相機裝置、等等,而一些優先權較低之裝置會包括一些處理器核心、圖形處理單元、等等。
一個形式成請求截止期限之時間,係自該等等時性裝置傳達至該組織,以對該組織指示該被請求之潛伏時間,而完成對記憶體的一個請求。為促成同步化,該組織會廣播一個全域定時器給所有等時性請求代理器。此全域 定時器會在來自該組織之輸出上面繼續不斷地受到驅動,以致可供該等等時性裝置用來取樣。響應此一時間值,該等代理器會判定一個有關完成一個請求之潛伏時間需求,以及將此一潛伏時間值加至該全域定時器值,以形成該請求有關的一個截止期限。就一個範例而言,上述有關一個讀取之潛伏時間可由該代理器之資料緩衝器中的資料量和該代理器加諸該緩衝器之排空率來加以判定。若該代理器每250奈秒(ns)消耗1條快取記憶體線之資料,以及在該緩衝器中具有8條快取記憶體線之資料,一個新請求所需必要在該緩衝器清空前之截止期限將為8x250ns或2微秒(μs)。基於此傳達上之潛伏時間或截止期限值,該組織可能會基於該等記憶體之當前功率狀態的知識和該組織中未決之其他未經排程的記憶體請求所需要之潛伏時間而作出較佳的排程決斷。此一截止期限傳達可能會增進記憶體頻寬以及亦會節省系統電力。
使用請求截止期限會提供來自一個等時性裝置有關每個請求之潛伏時間資訊給該組織。一些被規劃在該組織內之組態暫存器會提供有關該記憶體配置類似該等記憶體退出一個低電力,舉例而言自我更新,的狀態所需要之潛伏時間的資訊給該組織。該組織亦會藉由傳送一個標誌給該記憶體控制器,舉例而言,成一個狀態通道之形式,來控制該記憶體控制器何時促使所裝接之記憶體進入及退出該自我更新之狀態。該組織會藉由評估所有未決之記憶體請求有關的潛伏時間需求來判定該等記憶體何時應進入 及退出自我更新。由於該組織具有所有未決之記憶體請求有關退出自我更新所需的潛伏時間和所需要的潛伏時間之知識,更大管理該等記憶體之功率狀態的變遷,可能會相對於先存技藝產生額外之電力節省。
彼等實施例亦可能藉由容許記憶體請求被亂序地排程來提供記憶體頻寬中之效率,然而,此就一些請求可能會造成長的排程潛伏時間。為解決此一顧慮,該組織可將一個優先權級別,舉例而言,一個高或低的優先權,分配給每個等時性記憶體請求。當排定高優先權等時性請求時,所容許之亂序排程的數量係少於在排程最大努力或低優先權等時性請求時可被接收者。限制高優先權等時性請求有關之亂序排程的數量會被完成,以確定滿足該請求潛伏時間之需求。由於請求優先權係判定自該請求之截止期限,該組織可在一個請求被排程之後,立刻就一個等時性裝置判定其他未決之請求的優先權級別。使用該截止期限方法,所有未決之請求的優先權級別僅僅會在該全域定時器遞增時被改變。
彼等實施例亦可能橫跨複數個之SoC實現體提昇該複雜式QoS記憶體排程演算法之可攜性和重複使用性,其中,會有智慧性記憶體排程邏輯合併在該組織中,同時在該記憶體控制器中可能實現一個技術專屬性記憶體控制器邏輯。
彼等實施例亦可能將防缺乏(anti-starvation)演算法納入該組織之複數個仲裁點內。在一個實施例中,此 等防缺乏演算法包括一個認可仲裁器所使用之加權時效式仲裁方法和一個使用在一個記憶體排程器和請求追蹤器中的有效之最老的排程佇列。此外,彼等請求權量可能被用來交換於該組織中之仲裁點處的不同優先權級別之間,以及自正排程之讀取請求交換至寫入請求,相照於一個固定之優先權仲裁,其中,來自一些高優先權等時性裝置之請求總會得選。
在一個實施例中,該共享記憶體組織包括兩個用來排程正被傳送給該記憶體控制器之請求的仲裁點。該第一仲裁點係被用來認可自該等裝置進入該共享記憶體組織之請求,以及係被稱作一個認可仲裁器。該第二仲裁點係被用來排程自該共享記憶體組織傳送給該記憶體控制器之請求,以及係被稱作一個排程器仲裁器。
每個連接至該共享記憶體組織之裝置具有一個連接在該等裝置與組織間之請求介面。該請求介面會供應有關可供QoS記憶體排程使用之請求的資訊。在一個實施例中,此資訊包括一個記憶體位址、順序ID欄位、和一個作業碼欄位。就一些等時性裝置而言,有一個稱作請求截止期限欄位之附加欄位係被設置來指示完成該請求所需之潛伏時間。值得注意到的是,在SoC之一些實現體中,該記憶體組織介面可能係使連接至其他之組織或一些容許複數個之裝置共享一個常見之請求介面的交換器。
茲參考圖1,所顯示係一部份依據本發明的一個實施例之共享記憶體組織的方塊圖。誠如圖1中所顯示,有 一個共享記憶體組織100,耦接在多個代理器1150-1153(一般稱之為代理器115)與一個記憶體控制器170之間。值得注意到的是,在一些實施例中,係存在有超過一個的記憶體控制器。當然,為便於例示瞭解計,該記憶體控制器並未顯示耦接至一個系統記憶體,諸如一個動態隨機存取記憶體(DRAM)或其他之系統記憶體。
在圖1中所顯示之實施例中,不同類型之代理器係耦接至一個共享記憶體組織100。特言之,該等不同之代理器係包括一第一服務級別(COS)代理器類型,亦即,所謂之等時性代理器,和一第二服務級別代理器類型,亦即,所謂之最大努力COS代理器。誠如所見,每個代理器115可能傳達請求資訊給一個認可仲裁器120。反過來,該認可仲裁器120可回傳對應之控制類型資訊給該等代理器。此外,該等等時性代理器(亦即,圖1之實施例中的代理器1151和1153)進一步包括一個用以傳達請求截止期限資訊給該認可仲裁器120之附加鏈路。基於此一目的,此等代理器進一步經配置可接收來自一個亦耦接至該認可仲裁器120和一個排程器仲裁器130兩者之全域定時器150的全域定時資訊。
在圖1之實施例中,該認可仲裁器120可能被配置來接收自一些代理器115進入之請求(以及請求來自一些等時性代理器之截止期限資訊),以及選擇認可給該排程器仲裁器130之適當請求。為在其之仲裁程序中有所幫助,該認可仲裁器120會接收來自一組組態暫存器160之配置資訊,後者係進一步耦接至該排程器仲裁器130。此外,有一個請 求和相參性追蹤器140可能會耦接至該等仲裁器120和130。通常,該追蹤器140可能包括複數個之記分板(SB)142、一個資料緩衝器144和對應之位址標籤儲存器145、一個控制佇列器146和其他類似各種緩衝器之資源、一個類似資源分配邏輯(RAL)148之邏輯、等等。在一些實現體中,該標籤陣列和資料緩衝器可能位於該追蹤器以外之他處。雖然在圖1之實施例中係顯示在此高級別下,理當瞭解的是,本發明之界定範圍並非受限於此一關係。
該共享記憶體組織可能包括某一定之有限資源,彼等在來自一個請求代理器之請求被該認可仲裁器同意之前首先會受到配置。此等資源包括該內部資料緩衝器和位址標籤儲存器中有效的登錄項。其他之有限資源包括該記憶體排程器和請求追蹤器記分板中有效的登錄項。該組織之內部資料緩衝器、標籤陣列、和記憶體排程器記分板有關的資源存在一對一之對應關係。在一個實施例中,此等資源會被分配至一個預定之記憶體區域(舉例而言,一個類似64位元組之快取記憶體線寬度)。每個有效的請求亦會在該請求和相參性追蹤器中分配有其自身之登錄項,但至記憶體中之同一區域的複數個請求會共享該資料緩衝器、標籤陣列、和記憶體排程器記分板中之同一登錄項。雖然多於1個的請求係可能被分配給同一資料緩衝器、標籤陣列、和排程器記分板登錄項,就該請求和相參性追蹤器中之所有未完結的讀取請求而言,只有1個讀取請求會被排程給該記憶體控制器。
所有裝置有關之請求介面會連接至該組織之認 可仲裁器。彼等等時性裝置會使用該請求匯流排之截止期限欄位而將所需要之潛伏時間指示給該組織以完成該請求。該組織會傳送一個全域定時器值給所有附接至該組織之等時性裝置。就每個要傳送給該組織之請求而言,舉例而言,一個截止期限邏輯中之等時性裝置,會判定該請求完成所需必要之潛伏時間,以及將該值加至該全域定時器之當前值以建立該請求截止期限。一些不同之方法可能會被不同之等時性裝置使用來判定該請求所需要之潛伏時間,但所有之等時性裝置會使用該請求介面之截止期限欄位而將該請求潛伏時間指示給該組織。
在一個實施例中,該認可仲裁器具有兩個級別之優先權。該仲裁器中存在一個供緊急等時性請求使用之高優先權路徑。一個請求係被認為屬緊急性,倘若該請求代理器被配置為一個等時性代理器以及該請求之截止期限欄位係少於一個組態暫存器中所儲存之值,其係指明一個被稱作一個緊急臨界值之臨界值。該認可仲裁器亦具有一個供最大努力使用及供一些不被視為屬緊急之等時性請求使用的低優先權路徑。該仲裁之最終級別係使用一個在該高優先權仲裁之中選者與該低優先權仲裁之中選者中間做選擇的優先權選擇器來加以完成。
在一個實施例中,該認可仲裁器最終選擇器具有兩個可使用一個組態暫存器加以選擇之模態。該第一模態係一個固定之優先權模態,其中假定至少有一個高優先權請求出現在該認可仲裁器之輸入處,該選擇器在選擇該低 優先權仲裁路徑之中選者前會選擇該高優先權仲裁路徑之中選者。該最終選擇器之第二模態係一個加權式輪轉模態,其中,該最終選擇器會在N個高優先權請求被同意後自同意該高優先權路徑交換至同意該低優先權路徑。該選擇器接著會在交換回同意來自該高優先權路徑之請求前同意來自該低優先權路徑之中選者的M個低優先權請求。在一個實施例中,N和M有關之值係使用一些組態暫存器來指明。
茲參考圖2,所顯示係依據本發明的一個實施例之認可仲裁器的進一步細節之方塊圖。誠如圖2中所顯示,該仲裁器120會接收來自該請求代理器之進入請求。在此一例示圖中,該等請求代理器1150和1151係一些非等時性或最大努力代理器,而彼等代理器1152和1153係一些等時性代理器。理應注意到的是,該等等時性代理器可能包括或係耦接至一個被用來計算彼等請求所需要之潛伏時間的截止期限判定邏輯118。在一個實施例中,其中至少有一些代理器為第三方IP區塊,此邏輯可被實現在一個使該代理器耦接至該共享記憶體組織之包裹器或介面邏輯中。
在所顯示之實施例中,該認可仲裁器120包括一第一時效式仲裁器122和一第二時效式仲裁器124,彼等係分別對應於低和高優先權時效式仲裁器。因此,誠如所見,來自所有代理器115之請求係提供至該第一仲裁器122,而僅有來自一些等時性代理器1152和1153之請求會提供至該第二仲裁器124。為判定來自該等等時性代理器中的一個代理器之特定請求是否屬一種緊急狀態,有一對截止期限核 對器邏輯1210和121n各在耦接上係為接收來自此等等時性代理器中的一個對應者之請求加上來自該全域定時器150之全域定時資訊。基於該代理器所提供之截止期限資訊與該全域定時資訊的比較,一個對應請求有關之緊急狀態的標誌可使提供至該第二仲裁器124。
在運作中,該等仲裁器122和124在運作上可自一組進入請求選出一個仲裁中選者。在所顯示之實施例中,此判定係部份基於來自一個用以儲存每個代理器有關之年齡值的時效儲存器126之資訊。來自每個仲裁器之對應中選者可能係耦接至一個優先權仲裁器選擇器125,其會基於運作模態選擇一個提供至該排程器仲裁器130(為圖2之例示方便計並未顯示出)之對應請求。基於此一目的,該選擇器125可能至少部份基於一個優先權儲存器129中之資訊來選擇一個被認可要給該排程器仲裁器之請求。雖然圖2之實施例中係顯示在此高級別下,理應瞭解的是,本發明之界定範圍並非受限於此一關係。
加權時效式仲裁細節
該認可仲裁器所實現之時效式演算法,係使自上次被仲裁器同意起己等候最久之請求代理器將會被給定最高之優先權級別。一旦有一個代理器已接收到該最高優先權級別,該代理器之優先權級別將不會改變,除非該代理器已得到該仲裁器之同意。在此一方式中,使用輪轉仲裁會常見到缺乏之難題,可能藉由確保一個正請求的代理器有關之優先權級別僅可增加優先權級別直至該請求代理器 已被該仲裁器同意為止而得以避免。
該認可仲裁器亦會考慮到要分配給所有請求代理器之代理器權量。彼等權量係被用來分配每個請求代理器有關之請求頻寬的百分比。在一個實施例中,每個代理器係經由一個儲存在一個代理器權量組態暫存器中之值指定一個權量值。在一個實施例中,上述分配給一個代理器之請求頻寬的百分比係等於該代理器權量值除以所有代理器之權量的總和。
加權時效式演算法
該認可仲裁器加權時效式演算法係基於一個請求代理器上次得到該仲裁器之同意時的相對時效。就每個連接至該認可仲裁器之請求代理器而言,係存在一個例示之時效計數器和一個例示之權量計數器。該認可仲裁器中之高優先權和低優先權仲裁路徑兩者會共享一些連接至該認可仲裁器之代理器有關的常見之時效和權量計數器。該請求代理器之時效和權量暫存器的更新係在選擇該最終仲裁中選者之後由該最終選擇器(亦即,該優先權仲裁器選擇器125)來加以判定。
所有請求代理器有關之時效暫存器(舉例而言,時效儲存器126),首先係響應一個至該認可仲裁器之重置輸入的接收而被起始。當重置被確立時,該等時效暫存器會被起始至一個在0處開始及在N-1之值處結束的範圍內之獨一值,其中,N之值係等於連接至該認可仲裁器之請求介面的個數。
在該請求代理器確立任何請求之前,該等代理器權量計數器(舉例而言,屬權量儲存器128)係自該組織之代理器權量組態暫存器中的規劃值起始。一旦該等權量計數器被起始,一個代理器有關之計數器會就該代理器得到同意的每個請求被減量1。一旦一個代理器之權量計數器達至零以及假如該代理器再次得到該認可仲裁器之同意,該計數器會就該代理器之權量隨著該組態暫存器中所規劃之值一起重新被載入。
在一個實施例中,該等第一和第二仲裁器122和124中所執行之時效式仲裁方法,會使用一個請求位元向量(每個仲裁器有其自身之向量)來判定該仲裁之中選者。當一個請求就一個代理器而被確立時,該仲裁器會使用該請求代理器有關之年齡值,而作為該請求之優先權級別。該仲裁器有關之優先權級別和因而之位元向量寬度的範圍係自0至N-1。該時效式演算法會保證所有請求代理器有關之年齡值總是獨一無二,以及因而每一仲裁總會僅存在一個中選者。
當該請求仲裁之中選者有關的權量計數器已經達至零時,該仲裁器會更新所有代理器有關之時效暫存器。在一個實施例中,所有代理器有關之時效暫存器會依據以下保證該等代理器有關之年齡值總為獨一值的規則而被更新。
規則1:當該代理器之時效等於該仲裁之中選者的時效時,該代理器有關之時效暫存器會被設定為零以指示最早期之請求時效或最低之優先權。
規則2:當該代理器之時效少於該仲裁之中選者時,該代理器之時效暫存器會遞增1。
規則3:當該代理器之時效大於該仲裁之中選者時,該代理器之時效暫存器不會改變。
茲參考圖3,所顯示係一個在判定一個仲裁中選者時用以更新一個代理器有關之年齡值的方法之流程圖,其可能會在該中選者之權量值等於零時被執行來更新年齡值。誠如所見,該優先權仲裁器選擇器可能執行之方法200,開始是判定一個代理器之年齡值是否等於該中選者值(菱形區塊210)。倘若如此,該控制會進行至區塊215,其中,此得選之代理器的年齡值可被更新至該最低優先權級別,其在一個實施例中可能會等於零。自該等區塊215和菱形區塊210兩者,該控制會進行至菱形區塊220,其中,該年齡值是否少於該中選者值(亦即,對應於該代理器之時效)係可被判定。倘若如此,該控制會進行至區塊225,其中,該代理器之年齡值係可被更新,舉例而言,使之遞增。若無此等情況發生,該代理器之時效係大於該仲裁之中選者,以及就此而論,此特定之代理器有關的年齡值並不會改變。理應注意的是,該方法200可在有一個中選者被選定時在每輪仲裁之推論下就每個代理器加以執行。雖然在圖3之實施例中係顯示在此高級別下,理應瞭解的是,本發明之界定範圍並非受限於此一關係。
茲參考圖4,所顯示係依據本發明的一個實施例之認可仲裁器狀態機的方塊圖。誠如圖4中所顯示,一個可能存在於圖1之認可仲裁器120中的狀態機250,首先會自一 個重置確立進入一個起始(INIT)狀態255。自此一狀態,該控制會進行至一個有效狀態260,其會保持在其中,只要尚未接收到請求。當有一個請求被接收到以及一個被同意之代理器具有零之權量時,該控制會進行至一個更新時效狀態270,其中,該時效儲存器會被更新,以及一個仲裁中選者有關之權量計數器會重新載入一個預定之值,舉例而言,得自一個組態暫存器。該控制接著會依據一個額外之請求是否存在和該被同意之代理器的權量值,而進行至該有效狀態260和減量代理器權量狀態280中的一個狀態,或者會停留在該更新時效狀態270處。同理,在減量代理器權量狀態280下,一個中選者仲裁權量計數器會被減量。但在此並未執行權量計數器重新載入。雖然圖4中係顯示在此高級別下,理應瞭解的是,本發明之界定範圍並非受限於此一關係。
表1提供了依據本發明的一個實施例之認可架構的每一狀態之說明。
茲參照圖5,所顯示係依據本發明的一個實施例之認可仲裁器中用以執行第一級別之仲裁的方法之流程圖。誠如圖5中所顯示,該方法300可能會在該認可仲裁器內被執行,其目的係為在進入記憶體請求間執行仲裁加上基於一個仲裁而更新各種時效和權量值兩者。誠如圖5中所見,該方法300可能開始是接收來自一個耦接至該組織之裝置的記憶體請求(區塊310)。為更明確例示有關來自一個潛伏時間敏感裝置之截止期限式請求的運作,假定此記憶體請求包括一個截止期限值或與之相關聯,以及因而係提供自一個等時性或潛伏時間敏感裝置。就此一範例而言,此一潛伏時間敏感裝置係一個媒體播放器。誠如所見,該控制會進行至菱形區塊315,其中,可判定該截止期限值是否大於一個潛伏時間臨界值。在一個實施例中,此潛伏時間臨界值係自接收到一個請求之時間直至其被完成(舉例而言,藉由供應被請求之資訊回頭給該請求裝置而供應一個寫入請求有關之寫入完成)時的最小潛伏時間。理應注意的是,該截止期限值在一個實施例中係該請求裝置可容許處置該記憶體請求的最大潛伏時間。
仍參照圖5,假若該截止期限值被判定係大於該潛伏時間臨界值,該控制會進行至區塊320b,該記憶體請求會前進至一個低優先權仲裁器。否則,該控制會進行至區塊320a,其中,該記憶體請求會前進至一個高優先權仲裁器。
仍參照圖5,理應注意的是,一些類似區塊325(區 塊325a和325b)之平行路徑的存在下,一個仲裁係基於一個與提供請求給該對應之仲裁器的裝置之年齡值相關聯的位元向量而在該對應之仲裁器中被執行。其次在區塊330(區塊330a和330b)處,該等得選記憶體請求會前進至一個最終仲裁器。接著在區塊335處,一個最終仲裁會被執行來選擇該中選者記憶體請求。取決於此最終仲裁器有關之配置模態,該中選者請求可使僅選擇自該高優先權仲裁器,或者高優先權與低優先權路徑之間可能會有一個加權發生。因此,在此,該中選者記憶體請求會前進至一個記憶體排程器記分板。其中,其可被儲存在一個登錄項中以因而促使該記憶體排程器仲裁器中之仲裁能夠考慮此記憶體請求。
仍參照圖5,各種更新運作可能進一步響應該最終之仲裁器的選擇一個中選者而被執行。特言之,在菱形區塊340處,該中選者代理器之權量值可被判定是否等於零。倘若如此,該控制會進行至區塊345,其中,此權量值可被更新至其被配置之值,舉例而言,儲存在該共享記憶體組織之組態暫存器中。該控制其次會進行至區塊350,其中,所有代理器之年齡值係可被更新(區塊350)。基於此一目的,所有非得選之代理器可能會使彼等之年齡值遞增,而該得選之代理器可能會使其年齡值被設定至一個低優先權值,舉例而言,零。假如取而代之在菱形區塊340處,該中選者代理器之權量值被判定為非零,該控制會進行至區塊355,其中,該中選者代理器之權量值會被減量。雖然在圖5之實施例中係顯示在此高級別下,理應瞭解的是,本發 明之界定範圍並非受限於此一關係。
共享資源分配之共享記憶體組織
該記憶體組織包括用以容許該組織內之共享資源公平分配的邏輯,舉例而言,圖1之資源配置邏輯148。在一個實施例中,此等共享資源係該組織之內部資料緩衝器、位址標籤儲存器、和請求追蹤器記分板。由於就任何請求代理器而言並不存在專用之資源,彼等機構可能會限制未完結的請求之數目,彼等在該組織中就每個代理器而言係屬未決,同時亦容許登錄項為一個代理器而被保留,舉例而言,藉由在此等共享資源中保留一些虛擬登錄項。該組織容許指定代理器極限以防止任何一個請求代理器用盡該組織所有有效的共享資源。
有一部份之記憶體排程演算法會處理極小化記憶體技術有關之讀取對寫入周轉時間在性能上的衝擊。為極小化記憶體排程器在排程讀取請求至排程寫入請求間之交換次數,有一個清空集區被用來佇列寫入請求。該清空集區容許寫入請求標的記憶體累加進該記憶體組織中,直至有足夠之寫入請求已被接收而容許該組織之記憶體排程器傳送該寫入請求給該記憶體控制器使作為緊接之請求串列為止。為避免該組織中所有有效的資源被該清空集區用盡,有一個清空極限可被指定。當被指定時,該清空極限可使該組織阻擋來自該認可仲裁器處的所有代理器之新寫入請求,直至該清空集區中之登錄項的數目少於就該清空集區所規劃之值為止。
寫入請求有關之記憶體組織清空集區
當有一個寫入請求接收自一個請求代理器時,該組織會將該寫入資料自該請求代理器轉移至一個內部資料緩衝器。一旦該新資料被寫入至該組織之內部資料緩衝器,以及該請求自該代理器之觀點而言係已退出,該緩衝器登錄項會被視為在該"清空集區"中。就相參性記憶體流量而言,該組織可能會接收來自該請求代理器之監聽式請求。該等監聽式請求可或為讀取自或為寫入至記憶體之請求。當該組織接收到來自一個請求代理器之監聽式讀取或寫入請求時,其會傳送一個監聽請求給所有耦接至該組織之快取代理器。該快取代理器將會響應一個監聽式請求,其係命中在彼等之快取記憶體中以及將會回傳一條已被該快取代理器修飾過之快取記憶體線有關的回復(WB)資料。該WB資料接著會被寫入該組織之內部資料緩衝器內以及接著被考慮為包括在寫入請求標的記憶體之清空集區中。當該清空集區中之登錄項的數目達至就該清空極限所規劃之值時,一些新寫入請求,舉例而言,如該請求作業碼欄位之解碼所判定,會在該認可仲裁器處被阻擋。
記憶體組織保留和極限
該記憶體組織會容許就任何代理器使用一些代理器保留組態暫存器來指定保留。使用此等組態暫存器,該使用者可指定該記憶體組織中就每個代理器要保留之登錄項的數目。一個代理器有關被保留之登錄項係上述分配給該代理器之第一登錄項和要就該代理器使退出之最終登 錄項。為判定一個代理器被保留之登錄項是否被分配或退出,每個代理器係具有一個可相對該組態暫存器中所指定之值進行比較的請求計數器。若該請求計數器中之值少於或等於該組態暫存器中之值,該代理器被保留之登錄項便會被使用。
上述用來提供被保留之登錄項給代理器的機構,會隨著被保留之登錄項就請求代理器的被分配或釋放而改變該全臨界值極限。起初,所有代理器有關之全臨界值在計算上係藉由自該記分板中之登錄項的總數減去所有代理器(舉例而言,如組態暫存器所指定)有關被保留之登錄項的總數。當被保留之登錄項分配給一個代理器時,有一個纍加器被使用來基於已被使用所保留之登錄項的總數來調整該全臨界值。當該記憶體組織中未決之請求的總數達至此經調整之全臨界值時,一些已使用了彼等被保留之登錄項或並不具有被指定保留之登錄項的代理器會被阻擋。一些尚未使用彼等被保留之登錄項的代理器並不會被該認可仲裁器阻擋,直至彼等已使用了彼等所有被保留之登錄項,以及未決之請求的總數達至該經調整之全臨界值極限為止。
彼等代理器極限亦可能被指定在該記憶體組織之組態暫存器中。此等代理器極限在一個實施例中,可能藉由設定一個代理器有關之請求極限為零而被解能。當該等代理器極限被解能時,任何代理器可能會分配到該請求追蹤器之所有現存的登錄項。為防止一個單一代理器使用 所有的請求追蹤器登錄項,一個請求極限可被指定給該代理器。當該代理器之請求計數器達至就該代理器所指定之請求極限時,該代理器至該認可仲裁器有關之請求輸入會被解能。當該請求追蹤器退出該代理器有關之請求以及該代理器之請求計數器變得少於該代理器之請求極限時,該代理器至該認可仲裁器有關之請求輸入便會被解能。
茲參考圖6,所顯示係依據本發明的一個實施例之部份資源分配邏輯的方塊圖。誠如圖6中所顯示,該邏輯360可能被用來控制所有代理器間共享之各種資源的分配。誠如所見,有一個加法器368會基於接收自一個配置儲存器365之代理器保留值而判定被保留之登錄項的總數。由此總保留登錄項值,彼等標籤登錄項會在該減法器370處被減除。此成就之值係經過一個正反器372使供應至一個加法器375,其會結合此值與所使用接收自一個正反器374的被保留之登錄項的數目,該正反器374在下文進一步說明會基於一些遞增和減量之保留計數值而交替地使遞增及減量。
就此而論,該加法器375所產生之總和係對應於一個經調整之全臨界值,其係提供至一個比較器382的一個輸入,後者會進一步接收來自一個正反器376的被分配之標籤登錄項的數目。倘若該經調整之全臨界值被判定係少於或等於此被分配之標籤登錄項的數目,便會有一個全旗標產生,以及被使用來遮沒一些不具有保留登錄項或已使用了彼等之保留登錄項的代理器之請求。
誠如進一步所見,另一個比較器380經配置可接 收一個給定之請求器的保留配置值和該請求器有關(來自正反器378)之請求計數器值。該比較器因而會產生一個有關該請求器是否具有任何自由之保留登錄項的標誌,其係提供為一個給一對AND邏輯閘384和385之輸入,後者會進一步接收一個通道同意和該通道有關之登錄項的退出之標誌。就此而論,此等AND邏輯閘因而會分別產生該對應之請求器有關的遞增和減量值。類似之邏輯和運作會就其他之請求器加以執行,而使所有遞增和減量之保留值提供給對應之OR邏輯閘386和387,彼等會分別產生該遞增之保留計數值和該減量之保留計數值。
最終,一個請求器有關之請求計數器值會提供至另一個比較器390,連帶該請求器有關經配置之限制值,以因而判定此請求器是否已達至其之極限。倘若如此,此一極限之標誌會被用來遮沒掉來自此一代理器之請求以供進一步仲裁。雖然圖6之實施例中係顯示在此高級別下,理應瞭解的是,本發明之界定範圍並非受限於此一關係。
共享記憶體組織排程器仲裁細節
彼等實施例可能會合併複數個之排程演算法,以提昇重複使用一些橫跨用以支援不同之記憶體技術的複數個SoC。該組織之記憶體排程器邏輯包含一些先進之QoS排程演算法,以及亦會被最佳化以極小化大多個記憶體技術中常見在性能上之瓶頸。該等使用所舉為例之DRAM的記憶體會發生之典型性能瓶頸,包括進入及離開低功率記憶體狀態、讀取至寫入之周轉次數、對同一DRAM排組但不 同列之記憶體的連續性記憶體存取、和對不同之DRAM排組的連續性記憶體存取。藉由在該共享記憶體組織之排程邏輯中納入複雜性亂序排程演算法,該組織可被調適至多個不同之SoC,其係藉由裝接一些簡化式技術專屬性條件限制解算器至該組織,以支援彼等有關記憶體技術或配置之獨一需求。
除提昇該記憶體排程邏輯可攜性外,彼等實施例亦會提供記憶體請求潛伏時間之可預測性,其中,一個先進式亂序排程演算法與QoS排程邏輯之組合,會造成提昇最大請求潛伏時間之可預測性,其中,該記憶體控制器係具有甚少重定記憶體請求之順序的彈性。
一旦有一個請求受到該認可仲裁器之同意,其會被加入該排程器記分板內之佇列中。該排程器記分板會儲存有關該請求之資訊,其會被使用來轉發該請求至該記憶體控制器以執行對記憶體之讀取或寫入。在一個實施例中,該資訊包括請求位址、請求長度、指令類型(讀取或寫入)、服務類別之級別、記憶體通道、記憶體排組、記憶體級秩、和分頁命中/失誤狀態。
最老可供利用的佇列之記憶體排程器
彼等實施例會供應基於一個傳送給該記憶體控制器之請求的歷史之亂序分頁感知性排程,雖然該組織並不具有該記憶體排組之真實狀態的直接知識。更明確而言,該組織之記憶體排程器會使用該排程器記分板作為一個已傳送給記憶體之請求歷史緩衝器。由於該排程器記分 板係被用來反映該請求之歷史,其只要有可能會尋求在該記分板中保留一個請求有關之狀態資訊。該記憶體排程器會使用一個被稱為最老有效之佇列的結構來判定可供利用要被重新分配之最老的記分板登錄項。
該最老有效的佇列亦會被該記憶體排程器使用來避免一些由於該等至記憶體之請求的亂序排程而會發生之缺乏難題。該組織之記憶體排程器會使用該最老可供利用之佇列來判定相同服務級別之類別和類型的請求,讀取或寫入究有多少已將該最老未決之請求繞過至記憶體。一旦已繞過該最老之請求的請求數目達至某一經規劃之極限(舉例而言,被軟體設定),該組織之記憶體排程器會解能請求之亂序排程,以及會同意該最老未決之請求。
誠如上文所指,該排程器會使用該最老有效的佇列來追蹤其記分板中之所有請求的相對時效。當該認可仲裁器同意一個瞄向一個新記憶體位址之請求時,一個進入該排程器記分板中之指數指標會加進該最老有效的佇列之末尾登錄項內,其接著會被視為最新之請求。當所有未決之請求已完成來回於該等請求之代理器以及來回於該等記憶體控制器的資料傳遞時,一個記分板登錄項係可供利用使重新分配,以及可就該認可仲裁器所同意之新請求而被重新分配。由於該亂序排程所致,該最老可供利用之佇列中的最老登錄項可能不會總是可供重新分配利用。
為選擇要被重新分配至一個新請求之記分板登錄項,該排程器會偵測是否已完成所有至一個記分板登錄 項之未完結的請求。在一個實施例中,該排程器會使用一個請求位元向量,其具有一個長度等於該記分板登錄項數目,以指示何者登錄項可供重新分配利用。該請求位元向量中被設定為1的位元係指示該登錄項為對應於該位元位置可供重新分配利用。該請求位元向量接著會被傳送至該最老有效的佇列。該最老可供利用之佇列會使用該佇列中所儲存之指數來選擇該請求向量中對應於該佇列之登錄項有關的請求之位元。該佇列的每個登錄項係與該請求向量中之獨一位元相關聯,以及有一個"找出第一"功能會自該佇列中之最老登錄項開始執行,以判定要被重新分配之最老可供利用的請求。在判定該要被重新分配之最老可供利用的登錄項之後,該登錄項有關之記分板指數係輸出自該最老有效的佇列。
茲參考圖7,所顯示係依據本發明的一個實施例之記分板指數產生邏輯的方塊圖。誠如圖7中所顯示,該邏輯400包括多個耦接成串列配置用以儲存一個對應之記分板指數的正反器4100-410n。誠如所見,該等正反器410經配置可接收一個對應於一個進入該排程器的一個記分板內之指數指標的記分板指數,其亦為至該標籤陣列和資料緩衝器之指數。該正反器410在配置上可能依自最新(亦即,正反器4100)至最老(亦即,正反器410n)之順序。在一個實施例中,每個正反器可能為一個D-型正反器,不過,本發明之界定範圍並非受限於此一關係,以及進一步應瞭解的是,其他之儲存器元件係可能被使用。
誠如所見,每個正反器410之輸出係耦接至對應多個多工器4200-420n中的一個多工器,彼等各係進一步被配置來接收一個記分板請求向量之位元。就此而論,此位元向量會提供一個標誌,舉例而言,經由一個設定位元,以指示一個對應之記分板登錄項可供重新分配利用。使用來自該等多工器4200-420n之輸出,一個同意信號可或直接自該比較器輸出(如同自比較器420n)或經由該等邏輯閘4300-430n的一個對應之邏輯閘而產生出(其在所示之實施例中係被配置為一些AND邏輯閘,彼等具有一個接收自對應之多工器420的第一輸入和一個對應至一個對應之OR邏輯閘4250-425n-2的反相輸出之第二輸入。在此一方式中,該等同意信號中一次只有一個獨一信號可能為有效。
誠如圖7中進一步所見,該等同意輸出信號可能會耦接至多個亦被配置來接收一個進入之指數信號的AND邏輯閘4350-435n的一個對應邏輯閘。該等來自AND邏輯閘435n之輸出復可能耦接至一個OR邏輯閘440,以因而輸出一個對應於該最老有效的登錄項之記分板指數,以致有一個1-熱多工器功能會被執行,因而提供該經同意之請求的記分板指數之單一熱多工化。
共享記憶體組織記憶體排程細節
該組織記憶體排程器包含三個會共同工作來排程傳送給該記憶體控制器之請求的狀態機。
茲參考圖8,所顯示係依據本發明的一個實施例有關一個排程器仲裁器之狀態機的方塊圖。誠如圖8中所顯 示,一個類似圖1之排程器仲裁器130可能在硬體、軟體、和/或韌體中被執行之狀態機500,可能開始是在重置該系統時進入一個起始狀態INIT。該控制其次會進入一個自我更新狀態機510,其或包括一個進入自我更新狀態512、或一個請求自我更新狀態513、和一個退出自我更新狀態516。
誠如圖8中所見,自該退出自我更新狀態516,該控制會進入一個讀取/寫入同意狀態機520,其復包括一個同意讀取請求狀態522和一個同意寫入請求狀態524。自此等狀態,該控制復會進入一個讀取狀態機530,其包括多個狀態,亦即,一個繞過同意狀態532、一個高優先權讀取請求同意狀態534、一個最大努力同意讀取請求狀態536、和一個低優先權等時性同意讀取請求狀態538。雖然所顯示係在此具有促使退出和進入該等各種狀態(如下文在表2和4中之進一步說明)之特定條件的高級別下,理應瞭解的是,本發明之界定範圍並非受限於此一關係,以及有各種修飾體和變更形式係屬可能。
自我更新狀態機
彼等實施例可能控制該等記憶體何時被容許進入及退出一個亦被稱作自我更新狀態之低功率記憶體狀態。該自我更新狀態機係負責控制何時傳送一個標誌給該記憶體控制器以進入或退出自我更新。就最大努力讀取請求而言,該自我更新狀態機會立刻變遷至該退出自我更新狀態。就一些等時性讀取請求而言,該記憶體排程器會核對該請求截止期限,以判定其為滿足該請求所需之讀取潛 伏時間是否要退出自我更新。要判定為滿足該等時性讀取需求是否需要離開自我更新,該記憶體排程器會自該全域定時器之當前值減去該請求之截止期限。該減法之結果係對照該組織中的一個組態暫存器加以核對,後者會被程式規劃以反映該記憶體控制器退出自我更新及該組織回傳資料給該請求代理器所需最差情況之潛伏時間。
就寫入請求而言,該組織會計數該清空集區內之髒登錄項的數目,以及會相照一個可被規劃稱為清空高水位線值(HWM)之臨界值而核對該結果。若該髒登錄項之數目超過該清空高水位線值之值,該自我更新狀態機會將控制進行至該退出自我更新狀態。此外,該組織會核對有關對同一標籤位址之讀取/寫入衝突,其中,該請求會受到該認可仲裁器之阻擋。當該組織判定一個請求受到一個住址衝突、代理器極限之阻擋時,或者假如該請求追蹤器或記憶體排程器記分板己裝滿,該控制便會自該自我更新狀態機進行至退出自我更新狀態。在一個實施例中,該組織亦包含一個可被規劃來解能該進入自我更新之組態暫存器。
當該記憶體排程器傳送一個標誌給該記憶體控制器以退出自我更新時,彼等請求可能開始是被傳送給該記憶體控制器。該記憶體排程器會繼續傳送一個標誌給該記憶體控制器以保持離開自我更新,同時其會主動傳送記憶體請求給該記憶體控制器。當該記憶體排程器完成傳送所有讀取請求給該記憶體控制器以及該清空集區中之寫入請求的數目低於該臨時性高水位線值極限時,該記憶體排 程器會變遷至該請求自我更新狀態。
在該請求自我更新狀態中,若並無新請求得到該認可仲裁器之同意,該狀態機會在一個稱作進入自我更新延遲的可規劃式延遲值被滿足之後,變遷至該進入自我更新狀態。在一個實施例中,此延遲會在該組織之組態暫存器中加以規劃。若有新請求得到該認可仲裁器之同意,該自我更新狀態機可能會在某一定條件下變遷至該退出自我更新狀態。若有一個新的最大努力讀取請求被接收到,或者若有一個寫入請求被接收到而造成該清空集區中之登錄項的數目超過該高水位線值組態暫存器中所規劃之數目,該自我更新狀態機便會自該請求自我更新狀態變遷回至該退出自我更新狀態。當該狀態機在該請求自我更新狀態中時,若有一個等時性讀取請求被接收到,該請求之截止期限值會對照一個經規劃被稱作該進入自我更新臨界值之值而被核對。若該截止期限潛伏時間大於該進入自我更新臨界值,該狀態機會繼續在請求自我更新狀態中,若一個請求有關之截止期限潛伏時間低於該進入自我更新臨界值,該狀態機將會變遷至該退出自我更新狀態。
該自我更新狀態機會驅動狀態至該記憶體控制器,以保持離開自我更新直至該狀態機變遷至該進入自我更新狀態為止。一旦在該進入自我更新狀態中,該狀態機會傳送一個標誌給該記憶體控制器以進入自我更新。
以下之表2係說明一個依據本發明的一個實施例之自我更新狀態機。
讀取/寫入同意狀態機
在一個實施例中,該記憶體排程器會使用一些可被配置之臨界值來指明何時開始及停止傳遞一個寫入請求串列給該記憶體控制器。該記憶體排程器可能執行寫入資料給記憶體之不同類型的傳遞,舉例而言,一個高優先權 傳遞和一個低優先權傳遞,本說明書亦分別稱作寫入請求的一個高優先權清空和至記憶體之寫入請求的臨時性清空。當該清空集區中之登錄項的數目達至或超過一個臨界值(該清空高水位線值)時,該記憶體排程器會開始排程對記憶體之高優先權寫入清空,以及會開始傳送寫入請求給該記憶體控制器。該記憶體排程器會繼續使用該高優先權清空機構來排程寫入請求,直至該清空集區中之登錄項的數目達至或少於一個臨界值(該清空低水位線值(LWM))為止。
一個臨時性清空亦可能以該組織記憶體排程器來加以執行。一個臨時性清空會在該記憶體排程器已完成傳送所有讀取請求給該記憶體控制器以及該清空集區中之登錄項的數目超過一個臨界值(臨時性清空極限)時被觸發。在一個實施例中,該臨時性清空極限為性能計典型地可被設定低於該高水位線值但大於或等於該低水位線值。在一些情況中,此臨時性清空極限可被設定為0以清空所有之寫入資料至記憶體。一旦該最終讀取請求會被傳送給該記憶體控制器,若該清空集區中之登錄項的數目高於該臨時性清空極限,一個被稱作該臨時性清空定時器之計數器會開始在每個時鐘周期下被遞增。若無至記憶體之新讀取請求被該組織接收到以及該臨時性清空定時器已達至該臨時性清空延遲所指定儲存在一個組態暫存器中之臨界值的值,該記憶體排程器便會開始傳送寫入請求給該記憶體控制器。該臨時性清空會繼續直至該清空集區中之登錄項的數目少於該臨時性清空極限為止,或者直至有一個新讀取 請求被該組織接收到為止。
該讀取/寫入狀態機會負責自同意讀取請求變遷至同意寫入請求。在一個實施例中,該記憶體排程器係可被配置來容許寫入請求具有超過讀取請求之優先權,以及在讀取請求與寫入請求之間變遷時使用權量(以便避免該系統因寫入請求而呈飽和時之讀取缺乏)。當彼等權量被致能時,該記憶體組織會使用一些組態暫存器而獨立地指定該等讀取和寫入權量。
以下之表3係說明依據本發明的一個實施例之讀取/寫入同意狀態機。
讀取狀態機
該讀取狀態機會負責在高優先權等時性讀取請求、最大努力讀取請求、與低優先權等時性讀取請求之間交換。該讀取狀態機經配置可在複數個模態中的一個模態中運作。在一個實施例中,係提供有兩個此等模態。一第一模態係一個固定之優先權模態,其中,該讀取狀態機會對高優先權等時性讀取授以最高優先權,對最大努力讀取請求授以中等優先權,以及對低優先權等時性讀取請求接收最低優先權。一第二模態係為促成使用在高優先權等時性讀取與最大努力讀取請求之間進行交換有關的權量。在此一模態中,低優先權等時性請求只有當其中不再存在任何高優先權等時性或最大努力讀取請求時方會被同意。
表4係依據本發明的一個實施例之讀取狀態機的說明。
排程器代理器權量
該記憶體排程器會使用代理器權量來配比(proportioning)同一服務級別之類別內的代理器間之記憶體頻寬。在一個實施例中,彼等組態暫存器會指明每個請求代理器有關之權量值,以及每個代理器會有一個權量計數器提供。該等代理器權量組態暫存器係共用於該認可仲裁器與該記憶體排程器之間。
當該記憶體排程器中不存在任何連接至該組織之代理器的未決請求時,該等代理器權量計數器會以該等代理器權量組態暫存器中所指定之值載入。當彼等請求被該認可仲裁器同意以及加入該記憶體排程器記分板內之佇列時,會 有一個代理器ID欄位連同該請求資訊一起被儲存在該記憶體排程器記分板中。當該記憶體排程器同意其記分板中的一個請求時,該代理器ID欄位會被用來判定該請求之來源,以及該代理器有關之權量計數器會使減量1。一旦一個代理器之權量計數器已經達至零,該代理器之剩餘請求便會被遮沒,以及不再參與該排程器仲裁。當一個代理器由於其權量計數器之達至零所致而遮沒仲裁時,該記憶體排程器會繼續排程來自剩餘之代理器的請求。一旦所有代理器有關之權量計數器已經達至零,或者若一個代理器之權量計數器並非為零但就該代理器而言並無剩餘之請求,所有代理器權量計數器會重新載入來自彼等代理器權量組態暫存器之值。
茲參照圖9,所顯示係依據本發明的一個實施例用以執行記憶體排程之方法的流程圖。誠如圖9中所顯示,該方法600可能會被該共享記憶體組織之排程器仲裁器執行。誠如所見,該方法600可從自該記憶體排程器記分板選擇一個記憶體請求以遞送給一個記憶體控制器(區塊610)開使。有各種考量可能被納入考慮來判定該適當之登錄項,其中包括該記憶體之狀態、各種請求之狀態、該未決之請求的位址地點間之關係、等等。其次在區塊620處,該被選定之代理器的權量值會被更新。在一個實施例中,該權量值之減量會被執行。理應注意的是,雖然該等代理器有關之權量值有關的初始值係與得自該組態暫存器亦被該認可仲裁器使用者相同,理應瞭解的是,就每個仲裁器會提供不同之權量計數器,以促成此等權量值之獨立控制。
仍參照圖9,其次在菱形區塊630處,該被選定之代理器的權量值可被判定是否等於零。理應注意的是,此判定可能係在該最低優先權值為零之實施例中。當然,本發明之界定範圍並非受限於此一關係,以及此判定可能係在其他基於另一預定值之比較的實施例中。若該權量值被判定為零,該控制會進行至區塊640,在此,此被選定之代理器會遮沒該記憶體排程器內之進一步仲裁。
自菱形區塊630和區塊640兩者,該控制會進行至菱形區塊650,在此,所有代理器之權量值會被判定是否等於零。倘若如此,該控制會進行至區塊660,在此,所有該等代理器有關之權量值可被更新至彼等經配置之值,舉例而言,得自該組織之組態暫存器。另外,該控制會自菱形區塊650進行至菱形區塊670,以判定該記憶體排程器中就具有一個非零之權量值的代理器而言是否存在任何剩餘之請求。倘若如此,該等請求舉例而言可經由該方法600之另一迭代而加以處置。另外,若無額外之請求剩下,該控制會進行至區塊660,在此,該等權量值可如所說明加以更新。雖然所顯示係圖9之實施例中的特定實現體,理應瞭解的是,本發明之界定範圍並非受限於此一關係。
以下之表5提供有關多個時鐘周期的排程記憶體之範例性運作,其係基於三個代理器有關之初始權量值如下:代理器0權量=4代理器1權量=2代理器2權量=1
亂序分頁感知性排程
該記憶體排程器會重新排序傳送給該記憶體控制器之請求,以及尋求最佳化最大可能之記憶體頻寬的請 求串流。該記憶體排程器包含一些組態暫存器,彼等經規劃可提供有關其所裝接之記憶體控制器的資訊給該排程器。在一個實施例中,此等組態暫存器包括就該記憶體通道、排組、級秩、和列位址係使用何者位址位元有關之資訊。使用該組態暫存器中所規劃之記憶體配置資訊,該記憶體排程器會判定該排程器記分板中的每個請求之排組、級秩、列、和通道。該記憶體排程器記分板亦包含每個請求有關被用來最佳化傳送給該記憶體控制器之請求的分頁命中狀態位元,以便對該記憶體中之同一分頁的請求在傳送請求給不同之分頁前使傳送給該記憶體控制器。
在起始之後以及在有任何請求傳送給該記憶體控制器之前,該記憶體排程器會清除其記分板中之所有分頁命中狀態位元。當彼等請求傳送給該記憶體控制器時,該記憶體排程器會更新該記分板中之分頁命中狀態位元,以指示其他之請求係要至同一分頁或要至記憶體中之不同分頁。雖然該排程器並無法感知到一個給定之記憶體排組中的分頁之實際狀態,此等分頁命中狀態位元可能會就最佳記憶體頻寬而被用作一個有關何者請求為要傳送給該記憶體控制器之最佳候選對象的提示。
當有一個請求傳送給該記憶體控制器時,該記憶體排程器會比較該記分板中未決之所有其他請求有關的通道、級秩、和排組資訊。若一個記分板登錄項之通道、級秩、和排組資訊與一個傳送給該記憶體控制器之請求相匹配,該登錄項之列位址會相照於傳送給該記憶體控制器之 請求的列位址相比較。若一個記分板登錄項之列位址就該請求而言係相匹配,該分頁命中狀態位元會被設定為1;若該列位址並不與該請求相匹配,該分頁命中狀態位元會被設定為0以指示一個分頁失誤。就該等通道、級秩、或排組位元不同於傳送給該記憶體控制器之請求的記分板登錄項而言,該分頁命中狀態並不會發生更新。
當有新請求被該認可仲裁器同意以及加入該排程器記分板之佇列時,該列位址資訊會相照於當前在該記分板中之所有登錄項進行比較。若該新請求之列位址與該排程器記分板中的一或多個登錄項相匹配以及任何相匹配之登錄項的分頁命中狀態位元被設定,該新請求有關之分頁命中狀態亦會被設定。若該列位址並未與該記分板中之任何登錄項相匹配,或者所有與其匹配之登錄項具有被設定為零之分頁命中狀態,該新請求有關之分頁命中狀態亦會被設定為零。
使用該排程器記分板中所儲存之分頁命中和級秩狀態資訊,該記憶體排程器會基於一個已被判定提供大部份DRAM-式記憶體技術有關之最佳頻寬的優先權編碼式排程方案來重定傳送給該記憶體控制器之請求的順序。該記憶體排程器會在同意具有較低之優先權級別的請求之前同意較高之優先權請求。
以下之表6係顯示依據本發明的一個實施例被一個記憶體排程器使用之不同的優先權級別。
時效式記憶體排程和缺乏預防
為避免由於該亂序分頁感知性排程演算法所致之請求的缺乏,該時效觀念至少部份被用來排程請求。就每個服務級別(COS)之類別而言,該記憶體排程器包含一個用以指明一個亂序(OOO)排程極限之組態暫存器。為提供一個較短之最大讀取潛伏時間給該等時性COS類別,該OOO排程極限典型地係被設定為一個小於該最大努力COS類別之OOO排程極限的值。該記憶體排程器會在其有關最大努力和等時性COS類別之記分板中建立一個有關所有未決之請求的請求位元向量。此等請求位元向量會被傳送至該最老可供利用之佇列,其會判定該仍屬未決之最老請求。該最老可供利用之佇列會輸出一個被設定為1之位元以指示該最老之請求的單一熱編碼式位元向量。當該記憶體排程器基於其分頁感知性排程演算法而同意請求OOO時,該記憶體排程器會計數有多少非為每個COS類別有關之最老未決的請求之請求被同意。一旦該計數器達至該COS類別有關之COS排程極限,其可能藉由一個COS類別有關之 潛伏時間可接受的最差情況所完成的性能分析來判定,該分頁感知性排程邏輯會被解能,以及該OOO類別有關之最老請求會得到該記憶體排程器之同意。任何時刻有一個COS類別有關之最老的請求被同意,該COS類別有關之計數器會被重置為零。為提供一個OOO類別有關之最低可能的潛伏時間,該COS排程極限可被規劃為零,而基本上解能該COS類別有關之分頁感知性排程邏輯。當該OOO排程極限就一個COS類別而被設定為零時,彼等對記憶體之請求可能會使用請求時效來加以排程,後者係由該最老可供利用之佇列來加以判定。
最大努力最大潛伏時間缺乏預防
就最大努力讀取請求而言,該組織會利用該排程器記分板中之截止期限儲存器資訊來儲存一個被用來指明一個用以排程最大努力請求有關之最大潛伏時間值的值。該記分板係一個登錄項集區,以及一個儲存在該記分板中之請求可能為一個由上述亦就每個請求儲存在該記分板中之請求的服務類別之級別所判定的最大努力或等時性請求。在該記分板中的一個請求為一個最大努力讀取請求之情況中,一個最大可容許之潛伏時間,舉例而言,一個儲存在一個組態暫存器中之預程式規劃值會被用來排程該請求。當該請求被加入該記分板中之佇列以及係一個最大努力讀取請求時,該最大潛伏時間值會被加至該全域定時器之當前值。一旦該全域定時器達至該最大努力請求有關之最大潛伏時間所儲存的值,分頁感知性排程就該請求便會 被忽略,以及會在其為未決之最老請求時,舉例而言,如該最老可供利用之佇列所判定,造成該請求之被排程。
請求追蹤器寫入優先權和權量
該請求追蹤器會負責使資料自該請求代理器傳遞至該組織之內部記憶體緩衝器。該共享記憶體組織所使用之寫入通訊協定,會使所有之寫入資料依請求順序自該請求代理器傳遞至該組織中之內部記憶體緩衝器。在一個實施例中,該請求追蹤器會每個代理器使用分開之鏈結列表來保留該寫入請求之調配。該請求追蹤器可能會在資料自該請求代理器傳遞至該內部資料緩衝器之前就一個寫入請求而執行相參性核對。
就寫入請求而言,該請求追蹤器可能被配置來支援一或多個優先權級別。當有一個請求得到該認可仲裁器之同意時,該請求有關之截止期限資訊係儲存在一個具有長度對應於該請求追蹤器中之登錄項的數目之陣列中。該組織會使用一個所舉為例儲存在一個組態暫存器中之臨界值來指明一個請求截止期限值何時被考慮為高優先權。每個有關一個請求之截止期限值會相照於該組態暫存器中所規劃之臨界值進行比較。當該截止期限潛伏時間少於該組態暫存器中之值時,在該追蹤器之記分板登錄項中會有一個位元就該請求而被設定,以指明該請求為一個高優先權請求。
當就兩個優先權級別運作而被致能時,若一個代理器有關之寫入請求達至該鏈結式列表的頭端以及該高優 先權位元就該請求而被設定時,該寫入請求會被視為高優先權。若任何該等代理器鏈結式列表的頭端處之任何寫入請求係指明該寫入請求為一個高優先權請求,其他代理器有關之其他鏈結式列表之頭端處的所有低優先權寫入請求,會在輸入至該寫入請求仲裁器之前被遮沒。若該同一優先權級別之複數個請求出現在該代理器鏈結式列表的頭端處,便會有一個仲裁被執行以選擇何者代理器要選擇傳遞該寫入資料。
請求追蹤器寫入請求仲裁器
該寫入請求仲裁器會使用一個加權優先權式公平仲裁器來選擇何者代理器傳遞寫入資料。該寫入請求仲裁器有關之權量會在該請求追蹤器中之組態暫存器中加以規劃。該寫入仲裁器會在重置下分配一個獨一之優先權給每個代理器。在每個周期上面,該仲裁器只會考慮一些具有準備好傳遞且同意給具有該最高優先權之請求器的資料之請求候選對象。當被同意時,一個請求候選對象之權量會被減量1。若該經同意之候選對象早已具有一個零之權量,則該仲裁器亦會更新請求候選對象優先權如下:該經同意之候選對象的優先權係被設定至該最低優先權(舉例而言,零);所有具有低於該經同意之候選對象的優先權之候選對象會遞增彼等之優先權,以及所有具有高於該經同意之候選對象的優先權之候選對象會聽任不變。
請求追蹤器讀取資料回傳
彼等請求代理器或支援順序性資料回傳或支援 亂序性資料回傳。為支援亂序性資料回傳,會有一個順序ID欄位被使用。一個順序ID會與每個請求一起自該代理器傳送出以及會儲存在該請求追蹤器記分板中。來自具有同一順序ID之同一代理器的請求會按請求順序加以回傳。來自具有不同之順序ID的同一代理器有關之請求的資料並不需要按請求順序加以回傳。在一個實施例中,該請求追蹤器會使用一些鏈接式列表以確保讀取資料在回傳給該請求代理器時會按適當之順序。
上述要寫入資料之內部資料緩衝器的登錄項會在一個請求被該認可仲裁器同意之前被選定。當有一個請求被該認可仲裁器同意時,上述將該指數納入該內部資料緩衝器內之請求資訊會轉送至該請求追蹤器。當資料自該記憶體控制器回傳時,該記憶體排程器會將一個讀取完成標誌轉送給該請求追蹤器,其包括正被寫進該資料之內部資料緩衝器的指數欄位和一個有關該記憶體位址之何者組塊已完成記憶體的讀取之標誌。當該請求追蹤器接收到一個讀取完成時,其會比較該指數欄位與所有儲存在該請求追蹤器記分板中之請求有關的指數欄位。若有一個記分板登錄項之指數欄位與一個請求有關之讀取完成相匹配,以及該請求有關之所有組塊位元就該讀取完成已被設定,該請求追蹤器記分板中便會有一個位元被設定以指明該讀取請求業已完成。
若有一個讀取請求已達至該鏈接式列表的頭端以及該請求追蹤器中之讀取完成狀態位元被設定以及該請 求有關之所有相參性核對業已完成,該請求係可供利用來回傳讀取資料給該代理器。類似於寫入請求,該請求追蹤器會使用一個記分板登錄項有關之請求截止期限資訊來指明請求優先權。在一個實施例中,該請求追蹤器會就具有資料備妥之記分板登錄項而建立兩個請求位元向量以回傳至該請求代理器。一個單一位元向量係有關低優先權讀取請求,以及另一個位元向量係有關高優先權讀取請求。該等請求位元向量會輸入至該請求追蹤器之最老可供利用的佇列。該最老可供利用之佇列會判定何者請求為兩者請求位元向量之最老者。該請求追蹤器具有一個配置模態,其在被致能時將會在回傳任何低優先權請求有關的資料之前造成自該最老可供利用之佇列所選定的最老之高優先權請求回傳資料。當該高優先權資料回傳之支援未被致能時,該請求追蹤器會處理所有準備好要回傳具有同一優先權級別之讀取資料的記分板登錄項。在此一模態中,只有該低優先權位元向量會被用作一個給該最老可供利用之佇列的輸入,其復可判定該記分板中最老的讀取請求。上述被判定為最老之記分板登錄項有關的讀取資料復會回傳給該請求代理器。
彼等實施例可能被使用在許多不同之soC或其他用以整合各種IP至一個單一小晶片上面之半導體裝置中,使經由一個記憶體組織而將此等IP連接至記憶體。再有的一個依據本發明的一個實施例之記憶體組織,可能被使用來提供一個可滿足至少一些此等IP之等時性需求的 QoS級別。
茲參考圖10,所顯示係依據本發明的一個實施例之SoC的方塊圖。誠如圖10所顯示,SoC 700係一個包括複數個之IP區塊連同如上文所說明之共享記憶體仲裁器的單一小晶片半導體裝置。在圖10之實施例中,係提供有多個核心7100-710n,彼等各可獨立地執行指令。在一個實施例中,所有此等核心係屬一個單一設計,諸如一個順序性核心設計,舉例而言,屬類似一個AtomTM式核心之英代爾ArchitectureTM。在其他實施例中,該等核心可能為一些類似諸如英代爾CoreTM式設計之英代爾ArchitectureTM(IA)32核心的亂序處理器。在其他實施例中,係可能有一個異質核心之混合體提供。此外,可能有多個圖形引擎提供,亦即,獨立之圖形單元7200-720n,彼等各會獨立地執行圖形運作。誠如所見,該等複數個之核心係耦接至一個共享式快取記憶體715,諸如一個級別2(L2)快取記憶體,以及同理,該等圖形引擎係耦接至另一個共享式快取記憶體725。
一個系統代理器730係經由對應之小晶片級互連器728和729耦接至此等核心和圖形引擎。誠如所見,該系統代理器730包括一個可能如本說明書所說明加以配置之共享記憶體組織735。當然,各種其他邏輯、控制器、和其他單元,諸如一個電力管理單元,可能存在於該系統代理器730內。誠如所見,該共享記憶體組織735會與一個記憶體控制器740相通訊,其復耦接至一個非晶片級記憶體,諸 如一個被配置為DRAM之系統記憶體。此外,該系統代理器730係經由一組互連器744耦接至一或多個內部代理器750,諸如各種周邊裝置。在一個實施例中,該互連器744可能包括一個優先權通道互連器、一個邊帶通道互連器、和一個記憶體通道互連器。一個經類似配置之互連器746會提供該系統代理器730與一或多個非晶片級代理器(為便於圖10之實施例的例示計並未示出)間之通訊。雖然圖10中係顯示在此高級別下,理應瞭解的是,本發明之界定範圍並非受限於此一關係。
茲參考圖11,所顯示係依據本發明的一個實施例存在於一個電腦系統中之組件的方塊圖。誠如圖11中所顯示,該系統800可包括許多不同之組件。此等組件可被實現為一些積體電路(IC)、彼等之零件、雜散式電子裝置、或其他模組,彼等係配接至一個電路板,諸如一個主機板或加入式電腦系統卡、或為一些另外合併在該電腦系統之底架內的組件。亦應注意到的是,圖11之方塊圖係意圖顯示該電腦系統之眾多組件的高階視圖。然而,理應瞭解的是,一些實現體可能存在一些額外之組件,以及進一步在其他之實現體中可能發生所顯示之組件的不同安排。
誠如圖11中所見,一個可能為一個類似超低電壓處理器之低功率多核心處理器插口的處理器810,可能作用為一個用以與該系統之各種組件相通訊的主處理單元和中央集線器。此等處理器可被實現為一個如本說明書所說明之SoC。在一個實施例中,該處理器810可能為一個Inte1® 架構CoreTM式處理器,諸如i3、i5、i7、或另一個來自美國加利福尼亞州聖克拉拉市之英代爾公司上市的此種處理器,諸如一個結合一或多個CoreTM式核心與一或多個Intel® ATOMTM式核心之處理器,以因而實現一個單一SoC中之高功率和低功率核心。然而,理應瞭解的是,其他類似美國加利福尼亞州桑尼維爾市之超微公司(AMD)上市的低功率處理器、一個出自ARM控股公司之ARM式設計、或一個出自美國加利福尼亞州桑尼維爾市之科技公司的MIPS-式設計、或彼等之許可證持有人或採納者,可能取而代之存在於其他實施例中,諸如一個蘋果A5或A6處理器。
該處理器810可能與一個系統記憶體815相通訊,後者在一個實施例中可經由複數個之記憶體裝置加以實現,以提供某一給定數量之系統記憶體。為提供類似資料、應用軟體、一或多個作業系統、等等之資訊的永久儲存,一個大容量儲存器820亦可能耦接至該處理器810。而且,如圖11中所顯示,舉例而言,一個快閃裝置822可能經由一個串列周邊介面(SPI)而耦接至處理器810。此快閃裝置可能提供非揮發性儲存給系統軟體,其中包括一個基本輸入/輸出軟體(BIOS)加上該系統之其他韌體。
有各種輸入/輸出(IO)裝置可能存在於該系統800內。圖11之實施例中明確顯示一個顯示器824,其可能為一個被配置在該底盤之蓋子部分內的高畫質LCD或LED面板。此顯示器面板亦可能提供一個觸控螢幕825,舉例而言,外在地適配在該顯示器面板上面,而使經由一個與此 觸控螢幕之使用者互動,使用者輸入可使提供至該系統以促成所需要之運作,舉例而言,有關該資訊之顯示、資訊之存取、等等。在一個實施例中,該顯示器824可能經由一個可被實現為一個高性能圖形互連器之顯示器互連器而使耦接至該處理器810。該觸控螢幕825可能經由另一個在一個實施例中可能為I2C互連器之互連器使耦接至該處理器810。誠如圖11中之進一步顯示,除觸控螢幕825外,藉由觸控方式之使用者輸入亦可經由一個觸控板830而發生,後者可能被配置在該底盤內以及亦可能與該觸控螢幕825耦接至同一I2C互連器。
就感知性運算和其他目的計,各種感測器可能存在於該系統內以及可在不同之方式中使耦接至該處理器810。某一定之慣性和環境感測器可能透過一個感測器集線器840,舉例而言,經由一個I2C互連器,使耦接至該處理器810。在圖11中所顯示之實施例中,此等感測器可能包括一個加速度計841、一個環境光源感測器(ALS)842、一個指南針843、和一個迴轉儀844。其他之環境感測器可能包括一或多個熱感測器846,其在一個實施例中可能經由一個系統管理匯流排(SMBus)使耦接至該處理器810。
而且,如圖11中所見,各種周邊裝置可能經由一個低接腳數型(LPC)互連器使耦接至該處理器810。在所顯示之實施例中,各種組件可透過一個內嵌式控制器(EC)835使相耦接。此等組件可包括一個鍵盤836(舉例而言,經由一個PS2介面使耦接)、一個風扇837、和一個熱感測器839。 在一些實施例中,該觸控板830亦可能經由一個PS2介面使耦接至該EC 835。此外,一個類似遵循日期2003年十月2日之可信賴運算集團TPM規格1.2版的可信賴平台模組(TPM)838之安全處理器,亦可能經由此LPC互連器使耦接至該處理器810。
該系統800可在多種包括無線方式之方式中與外部裝置相通訊。在圖11所顯示之實施例中,係存在各種無線模組,彼等各可對應於一個就某一特定之無線通訊協定加以配置的無線電。一個有關類似近距離之短範圍中的無線通訊之方法,可能係經由一個近場通訊(NFC)單元845,其在一個實施例中可能經由一個SMBus與該處理器810相通訊。理應注意的是,一些彼此緊密接近之裝置可經由此NFC單元845進行通訊。舉例而言,一個使用者可經由緊密配接該兩裝置以及促使傳遞類似身份證明資訊、付款資訊之資訊、類似影像資料或等等之資料,而促使該系統800與另一個類似該使用者之智慧型手機的手提式裝置相通訊。無線電力傳遞亦可能使用一個NFC系統加以執行。
誠如圖11中進一步所見,一些額外之無線單元可包括其他包括一個無線區域網路(WLAN)單元850和一個藍芽(Bluetooth)單元852之短範圍無線引擎。使用該WLAN單元850,係可實現一些依據一個給定之電機電子工程師學會(IEEE)802.11標準的Wi-FiTM通訊,而經由藍芽單元852係可發生一些經由一個藍芽通訊協定之短範圍通訊。此等單元可能舉例而言經由一個萬用串列匯流排(USB)鏈路或一個 通用異步收發傳輸器(UART)鏈路而與該處理器810相通訊。或者此等單元可能經由一個互連器、經由一個符合該快速PCI介面(PCI ExpressTM(PCIeTM))規格基本規格3.0版(2007年一月17日出版)、或另一個類似串列資料輸入/輸出(SDIO)標準之此等通訊協定,使耦接至該處理器810。當然,此等可能被配置在一或多個加入式插卡上面之周邊裝置間的真實實體連結,可能藉由該等配接至一個主機板之下一代規格(NGFF)連接器。
此外,無線廣域通訊,舉例而言,依據一個蜂巢式網路或其他無線廣域通訊協定,可經由一個無線廣域網路(WWAN)單元856而發生,後者復可能耦接至一個用戶識別模組(SIM)857。此外,為促成接收及使用地點資訊,一個全球定位系統(GPS)模組855亦可能存在。理應注意的是,在圖11中所顯示之實施例中,該WWAN單元856和一個類似照相機模組854之整合式圖像獲取設備,可能經由一個給定之USB通訊協定,諸如一個USB 2.0或3.0,或者一個UART或I2C通訊協定。再次地,此等單元之真實實體連結可使經由一個NGFF加入式插卡至一個被配置在該主機板上面之NGFF連接器的配接。
為提供音訊輸入和輸出,一個音訊處理器在實現上可經由一個數位信號處理器(DSP)860,其可能經由一個高解析度音訊(HDA)鏈路使耦接至該處理器810。同理,該DSP 860可能與一個整合式編碼器/解碼器(CODEC)和放大器862相通訊,後者復可能耦接至一些可能被實現在該底盤 內之輸出喇叭863。同理,該放大器和CODEC 862在耦接上可接收來自一個麥克風865之音訊輸入,在一個實施例中,該麥克風在實現上可經由雙陣列麥克風來提供高品質音訊輸入而促成該系統內之各種運作的聲音激勵式控制。亦應注意的是,音訊輸出可自該放大器/CODEC 862提供至一個耳機插口864。雖然圖11之實施例中顯示了此等特定組件,理應瞭解的是,本發明之界定範圍並非受限於此一關係。
以下之範例係隸屬進一步之實施例。在一個實施例中,一個裝置包括一個耦接在一個半導體裝置之IP區塊與一個記憶體控制器間的組織,其中,該組織係為接收來自該IP區塊之記憶體請求,彼等至少有一些具有一個與彼等相關聯之截止期限值以指明該記憶體請求完成前的一個最大潛伏時間。該組織係為至少部份基於該至少一些記憶體請求之截止期限值而在該等記憶體請求間進行仲裁。
該組織可能包括一個認可仲裁器,以接收該等記憶體請求以及選擇該等記憶體請求中的一個請求,使提供至一個記憶體排程器仲裁器,以及該記憶體排程器仲裁器可能係耦接至該認可仲裁器,以選擇來自多個記憶體請求的一第一記憶體請求而使提供至該記憶體控制器。
該認可仲裁器包括一第一仲裁器和一第二仲裁器,該第一仲裁器可接收來自多個IP區塊的第一子集之記憶體請求和來自該等多個IP區塊的第二子集之記憶體請求的第一部分,以及該第二仲裁器可接收來自該等多個IP區塊的第二子集之記憶體請求的第二部分。該等多個IP區塊 的第二子集包括一些潛伏時間敏感裝置。該第二仲裁器係為進一步接收具有該等接收自該等多個IP區塊的第二子集的記憶體請求的每個第二部分之截止期限值。
在一個實施例中,該認可仲裁器係可使控制在一第一模態中和一第二模態中運作,來自該第二仲裁器之記憶體請求在該第一模態中會透過來自該第一仲裁器之記憶體請求加以選擇,以及來自該第一仲裁器的M個記憶體請求在該第二模態中會在來自該第二仲裁器的N個記憶體被選定之後加以選擇,其中,M和N係得自一個組態暫存器。
在一個實施例中,該認可仲裁器進一步包括一第三仲裁器,其會耦接至該第一仲裁器和第二個仲裁器的一個輸出,以及會在該等第一和第二仲裁器之輸出間進行仲裁。
該記憶體排程器仲裁器可能會至少部份基於該等記憶體請求之位址資訊以及至少部份基於與該組織之記分板的一個登錄項中所儲存的一個記憶體請求相關聯之分頁命中狀態資訊,來亂序地重定該記憶體請求之順序。
在一個實施例中,有一個介面邏輯耦接至一第一IP區塊,其包括一個基於該第一IP區塊之第一記憶體請求有關的潛伏時間需求來產生該截止期限值之截止期限邏輯和一個自該組織提供至該第一IP區塊之全域定時器值。有一個截止期限核對器在耦接上可能接收來自該第一IP區塊之截止期限值以及將該第一記憶體請求基於該截止期限值和一個全域定時器之值而引導至一第一仲裁器或至一第二 仲裁器。
在一個實施例中,有一個資源分配邏輯會就每個多個IP區塊將一些虛擬之登錄項保留在該組織之多個共享資源內。此資源分配邏輯會進一步限制每個該等多個IP區塊至該等多個共享資源之預定數目,以及該等多個共享資源係包括一個具有多個各可儲存一個寫入請求之登錄項的清空集區,以及該資源分配邏輯係要限制該等多個登錄項至一個清空極限,其中,該認可仲裁器會在該清空集區之大小等於該清空極限時阻擋進入之寫入請求。
在一個實施例中,一個方法係包括:接收來自多個耦接至一個SoC之共享記憶體組織的裝置的一個裝置之記憶體請求,其中,該記憶體請求係與一個截止期限值相關聯;響應該截止期限值之少於一個潛伏時間臨界值而將該記憶體請求轉送至該共享記憶體組織之第一仲裁器;至少部份基於該等多個裝置之年齡值而在該第一仲裁器中執行一個包括該記憶體請求之第一多個的記憶體請求間之仲裁,以及轉送該等第一多個記憶體請求之中選者記憶體請求給該共享記憶體組織之最終仲裁器;以及在該最終仲裁器中執行一個最終仲裁以選擇用以儲存進該共享記憶體組織之記分板中的最終記憶體請求。
在一個實施例中,該方法進一步包括:響應該截止期限值之大於該潛伏時間臨界值而轉送該記憶體請求至一第二仲裁器;至少部份基於該等多個裝置之年齡值而在第二仲裁器中執行包括該記憶體請求之第二多個的記憶體 請求間之仲裁;以及轉送該等第二多個記憶體請求的中選者記憶體請求給該最終仲裁器。
在一個實施例中,該方法進一步包括判定一個與該最終記憶體請求相關聯之裝置的權量值是否等於一個預定之值,以及倘若如此便將該權量值更新至一個經配置之值以及更新其他該等多個裝置之年齡值。而且,當上述與該最終記憶體請求相關聯之裝置的權量值並不等於該預定之值時,上述與該最終記憶體請求相關聯之裝置的權量值便會被減量。
在一個實施例中,該方法進一步包括:經由該共享記憶體組織之記憶體排程器而選擇來自該記分板之記憶體請求以遞送給一個記憶體控制器;以及倘若一個與該選定之記憶體請求相關聯的裝置之權量值等於一個預定之值,便遮沒該裝置不使進一步受到該記憶體排程器內之仲裁。
在一個實施例中,該方法進一步包括判定每個該等多個裝置之權量值是否等於該預定之值,以及倘若如此便更新每個該等多個裝置之權量值至一個經配置的值。
在一個實施例中,一個單晶片系統包括多個各可獨立執行指令之核心、多個各可獨立執行圖形運作之圖形引擎、一個對應於一第一潛伏時間敏感裝置之第一內容呈現裝置、一個對應於一第二潛伏時間敏感裝置之第二內容呈現裝置、和一個耦接至該等多個核心、該等多個圖形引擎、該等第一和第二內容呈現裝置、和一個記憶體控制器之組織、該組織'用以接收來自該等多個核心、該等多個圖 形引擎、和該等第一和第二內容呈現裝置之記憶體請求。來自該等第一和第二內容呈現裝置之記憶體請求,係具有一個與彼等相關聯之截止期限值,以指明該記憶體請求完成前之最大潛伏時間,以及該組織係為至少部份基於來自該等第一和第二內容呈現裝置之記憶體請求的截止期限值而進行該等記憶體請求間之仲裁。
在一個實施例中,該組織進一步包括:一個認可仲裁器,其係用以接收該等記憶體請求以及選擇該等記憶體請求中的一個請求以提供給一個記憶體排程器仲裁器;以及該記憶體排程器仲裁器係耦接至該認可仲裁器以選擇來自多個記憶體請求的第一記憶體請求而提供給該記憶體控制器。該認可仲裁器可能包括:一第一仲裁器,其係用以接收來自該等多個核心和該等多個圖形引擎的記憶體請求,以及有條件地接收來自該等第一和第二內容呈現裝置之至少一些記憶體請求;和一第二仲裁器,其係用以接收來自該等第一和第二內容呈現裝置之記憶體請求。該記憶體排程器仲裁器可能至少部份基於該等記憶體請求之位址資訊和與該組織之記分板的一個登錄項中所儲存之記憶體請求相關聯的分頁命中狀態資訊而亂序地重定至少一些記憶體請求之順序。
一個截止期限核對器可能接收一個與來自該第一內容呈現裝置之第一記憶體請求相關聯的截止期限值,以及基於該截止期限值和一個全域定時器之值而將該第一記憶體請求引導至該第一仲裁器或至該第二仲裁器。
彼等實施例可能被實現在代碼中,以及可能被儲存在一個非暫時性儲存媒體上面,後者上面己儲存了一些指令,彼等可被用來規劃一個系統以執行該等指令。該儲存媒體可能包括但非受限任何類型之碟片,其中包括磁片、光碟、固態驅動器(SSD)、唯讀光碟機(CD-ROM)、可覆寫光碟機(CD-RW)、和磁光碟機、類似唯讀記憶體(ROM)之半導體裝置、類似動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)之隨機存取記憶體(RAM)、可抹除可規劃唯讀記憶體(EPROM)、快閃記憶體、電可抹除可規劃唯讀記憶體(EEPROM)、磁性或光學卡、或任何其他類型適用來儲存電子指令之媒體。
雖然本發明業已參照有限數目之實施例加以說明,本技藝之專業人士將可自彼等理解出多種修飾體和變更形式。該附加之申請專利範圍係意圖涵蓋所有此等在本發明之真實精神和界定範圍內的修飾體和變更形式。
100‧‧‧共享記憶體組織
1150-1153‧‧‧代理器
120‧‧‧認可仲裁器
130‧‧‧排程器仲裁器
140‧‧‧請求和相參性追蹤器
142‧‧‧記分板(SB)
143‧‧‧標籤
144‧‧‧資料緩衝器
146‧‧‧控制佇列器
148‧‧‧資源分配邏輯(RAL)
150‧‧‧全域定時器
160‧‧‧組態暫存器
170‧‧‧記憶體控制器

Claims (30)

  1. 一種用於仲裁記憶體存取之設備,其包含:一個組織,其耦接在一個半導體裝置的多個智財(IP)區塊與一個記憶體控制器之間,該組織經組配以接收來自該等多個IP區塊的多個記憶體請求,其中,該組織經組配以接收來自該等多個IP區塊中的一個第一IP區塊之該等多個記憶體請求中的一個記憶體請求,該記憶體請求具有包括一期限欄位之多個欄位,該期限欄位用以提供由該第一IP區塊所傳送之一截止期限值,用以指明在完成該記憶體請求之前的一個最大潛伏時間,該最大潛伏時間由該第一IP區塊所決定,及其中,該組織經組配以至少部份基於包括在該記憶體請求之該期限欄位中的該截止期限值而在該等多個記憶體請求之間進行仲裁。
  2. 如請求項1之設備,其中,該組織包含:一個認可仲裁器,用以接收該等多個記憶體請求、及選擇該等多個記憶體請求中之一者以提供給一個記憶體排程器仲裁器;以及該記憶體排程器仲裁器,其耦接至該認可仲裁器,該記憶體排程器仲裁器用以自一群記憶體請求中選擇一第一記憶體請求以提供給該記憶體控制器。
  3. 如請求項2之設備,其中,該認可仲裁器構件包括一第一仲裁器和一第二仲裁器,該第一仲裁器用以接收來自 該等多個IP區塊之一第一子集的記憶體請求以及來自該等多個IP區塊之一第二子集的該等多個記憶體請求之一第一部分,該第二仲裁器用以接收來自該等多個IP區塊之該第二子集的該等多個記憶體請求之一第二部分。
  4. 如請求項3之設備,其中,該等多個IP區塊之該第二子集包含數個潛伏時間敏感裝置。
  5. 如請求項4之設備,其中,該第二仲裁器係進一步用以接收一個截止期限值,該截止期限值包括在從該等多個IP區塊之該第二子集所接收到的該等多個記憶體請求之該第二部分之各者中。
  6. 如請求項2之設備,其中,該認可仲裁器可受控制來在一第一模態和一第二模態中運作,在該第一模態中,來自該第二仲裁器的記憶體請求係超越來自該第一仲裁器的記憶體請求而受到選擇,而在該第二模態中,來自該第一仲裁器的M個記憶體請求係在來自該第二仲裁器的N個記憶體請求被選擇之後受到選擇,其中,M和N係得自一個組態暫存器。
  7. 如請求項3之設備,其中,該認可仲裁器進一步包括一第三仲裁器,該第三仲裁器耦接至該第一仲裁器和該第二仲裁器的輸出端,並係用於在該等第一和第二仲裁器的該等輸出端之間進行仲裁。
  8. 如請求項2之設備,其中,該記憶體排程器仲裁器係用以至少部份基於該等記憶體請求之位址資訊而亂序地 重定該群記憶體請求之順序。
  9. 如請求項8之設備,其中,該記憶體排程器仲裁器係用以至少部份基於與儲存在該組織的一個記分板的一個登錄項中的一個記憶體請求相關聯的分頁命中狀態資訊而亂序地重定該群記憶體請求之順序。
  10. 如請求項1之設備,其進一步包含:一個介面邏輯,其耦接至該第一IP區塊,該介面構件包括一個截止期限邏輯,用以基於針對該第一IP區塊之一第一記憶體請求的一個潛伏時間需求以及從該組織所提供給該第一IP區塊的一個全域定時器值而產生該截止期限值。
  11. 如請求項10之設備,其進一步包含:一個截止期限核對器,用以接收來自該第一IP區塊的該截止期限值、及用以基於該截止期限值和一個全域定時器之值而將該第一記憶體請求路由至一第一仲裁器或至一第二仲裁器。
  12. 如請求項1之設備,其進一步包含:資源分配邏輯,用以針對該等多個IP區塊中之各者而保留在該組織的多個共享資源中的數個虛擬登錄項。
  13. 如請求項12之設備,其中,該資源分配邏輯係進一步用以使該等多個IP區塊中之各者受限於該等多個共享資源的一個預定數目。
  14. 如請求項12之設備,其中,該等多個共享資源包括一個清空集區,該清空集區具有多個登錄項,該等多個登錄 項各用以儲存一個寫入請求,其中,該資源分配邏輯係用以使該等多個登錄項受限於一個清空極限,並且其中,該認可仲裁器係用以在該清空集區之大小等於該清空極限時阻擋要進入的寫入請求。
  15. 一種用於仲裁記憶體存取之方法,其包含下列步驟:接收來自多個裝置中的一個裝置的一個記憶體請求,該等多個裝置耦接至一個單晶片系統(SoC)的一個共享記憶體組織,該記憶體請求具有包括一期限欄位之多個欄位,該期限欄位用以提供由該裝置所決定的一個截止期限值,該截止期限值要指明用於完成該記憶體請求的一個潛伏時間需求;響應於該截止期限值少於一個潛伏時間臨界值,將該記憶體請求轉送給該共享記憶體組織的一第一仲裁器;至少部份基於該等多個裝置的年齡值而在該第一仲裁器中於包括有該記憶體請求的第一複數個記憶體請求之間進行仲裁,並將該等第一複數個記憶體請求的一個中選者記憶體請求轉送給該共享記憶體組織的一最終仲裁器;以及在該最終仲裁器中進行最終仲裁,以選擇一個最終記憶體請求以儲存在該共享記憶體組織的一個記分板中。
  16. 如請求項15之方法,其進一步包含下列步驟:響應於該截止期限值大於該潛伏時間臨界值,將該記憶體請求轉送給一第二仲裁器, 至少部份基於該等多個裝置的該等年齡值而在該第二仲裁器中於包括有該記憶體請求的第二複數個記憶體請求之間進行仲裁,以及將該等第二複數個記憶體請求的一個中選者記憶體請求轉送給該最終仲裁器。
  17. 如請求項15之方法,其進一步包含下列步驟:判定出與該最終記憶體請求相關聯的一個裝置之一個權量值是否等於一個預定值,並且若判定結果為是則將該權量值更新成一個所配置值並更新該等多個裝置中之其他者的年齡值。
  18. 如請求項17之方法,其進一步包含下列步驟:在與該最終記憶體請求相關聯的該裝置之該權量值不等於該預定值時,使與該最終記憶體請求相關聯的該裝置之該權量值減量。
  19. 如請求項15之方法,其進一步包含下列步驟:經由該共享記憶體組織的一個記憶體排程器,選擇來自該記分板的一個記憶體請求以遞送給一個記憶體控制器;以及若與所選擇的該記憶體請求相關聯的一個裝置之一個權量值等於一個預定值,便遮沒該裝置使其不在該記憶體排程器內受進一步仲裁。
  20. 如請求項19之方法,其進一步包含下列步驟:判定出該等多個裝置中之各者之一個權量值是否等於該預定值,並且若判定結果為是則將用於該等多個 裝置中之各者之該權量值更新成一個所配置值。
  21. 一種單晶片系統,其包含:多個核心,各經組配以獨立地執行指令;多個圖形引擎,各經組配以獨立地執行圖形運作;一第一內容呈現裝置,其對應於一第一潛伏時間敏感裝置;一第二內容呈現裝置,其對應於一第二潛伏時間敏感裝置;以及一個組織,其耦接至該等多個核心、該等多個圖形引擎、該等第一和第二內容呈現裝置、及一個記憶體控制器,該組織經組配以接收來自該等多個核心、該等多個圖形引擎、及該等第一和第二內容呈現裝置的記憶體請求,其中,要從該等第一和第二內容呈現裝置接收到的該等記憶體請求具有包括一期限欄位之多個欄位,以提供被包括在其中的一個截止期限值,用以指明在完成該記憶體請求之前的一個最大潛伏時間,該最大潛伏時間由各別的該等第一和第二內容呈現裝置所決定,且該組織經組配以至少部份基於來自該等第一和第二內容呈現裝置的該等記憶體請求之該截止期限值而在該等記憶體請求之間進行仲裁。
  22. 如請求項21之系統,其中,該組織進一步包含:一個認可仲裁器,用以接收該等記憶體請求,及用以選擇該等記憶體請求中之一者以提供給一個記憶體排程器仲裁器;以及 該記憶體排程器仲裁器,其耦接至該認可仲裁器,該記憶體排程器仲裁器用以從多個記憶體請求中選擇一第一記憶體請求以提供給該記憶體控制器。
  23. 如請求項22之系統,其中,該認可仲裁器包括一第一仲裁器和一第二仲裁器,該第一仲裁器用以接收來自該等多個核心和該等多個圖形引擎的該等記憶體請求,及用以有條件地接收來自該等第一和第二內容呈現裝置的至少幾個記憶體請求,而該第二仲裁器係用以接收來自該等第一和第二內容呈現裝置的該等記憶體請求。
  24. 如請求項22之系統,其中,該記憶體排程器仲裁器係用以至少部份基於該等記憶體請求之位址資訊以及與儲存在該組織的一個記分板的一個登錄項中的一個記憶體請求相關聯的分頁命中狀態資訊而亂序地重定該等記憶體請求中之至少幾者的順序。
  25. 如請求項23之系統,其進一步包含:一個截止期限核對器,其用以接收與來自該第一內容呈現裝置的一第一記憶體請求相關聯的一個截止期限值、及用以基於該截止期限值和一個全域定時器的值而將該第一記憶體請求路由至該第一仲裁器或至該第二仲裁器。
  26. 一種通訊裝置,其被安排成用以執行如請求項15、16、17、18、19及20中之任一者所述之方法。
  27. 一種包含有至少一個機器可讀取媒體的媒體,其包含多個指令,該等指令響應於被執行於一個運算裝置上而致 使該運算裝置去實行如請求項15、16、17、18、19及20中之任一者所述之方法。
  28. 一種用於處理指令的設備,其被配置成進行如請求項15、16、17、18、19及20中之任一者所述之方法。
  29. 一種用於仲裁記憶體存取之設備,其包含用於進行如請求項15、16、17、18、19及20中之任一項所述之方法的構件。
  30. 一種電子裝置,其包含:一請求代理器,其要被耦接至一組織,該請求代理器經組配以產生一請求,該請求包括多個欄位,該等多個欄位包括一請求期限欄位,該請求期限欄位具有要基於從該組織所接收之一全域定時器值及用於該組織以完成該請求之一潛伏時間值之一截止期限值。
TW103101132A 2013-01-17 2014-01-13 經由共享記憶體組織來仲裁記憶體存取之技術 TWI599887B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/743,795 US9535860B2 (en) 2013-01-17 2013-01-17 Arbitrating memory accesses via a shared memory fabric

Publications (2)

Publication Number Publication Date
TW201439771A TW201439771A (zh) 2014-10-16
TWI599887B true TWI599887B (zh) 2017-09-21

Family

ID=51166166

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103101132A TWI599887B (zh) 2013-01-17 2014-01-13 經由共享記憶體組織來仲裁記憶體存取之技術

Country Status (7)

Country Link
US (1) US9535860B2 (zh)
EP (1) EP2946301A4 (zh)
JP (1) JP5886470B2 (zh)
KR (1) KR101746313B1 (zh)
CN (1) CN104321758B (zh)
TW (1) TWI599887B (zh)
WO (1) WO2014113225A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI816032B (zh) * 2020-04-10 2023-09-21 新唐科技股份有限公司 多核心處理器電路

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6175794B2 (ja) * 2013-02-19 2017-08-09 株式会社リコー データ処理装置およびデータ処理方法
US9372818B2 (en) * 2013-03-15 2016-06-21 Atmel Corporation Proactive quality of service in multi-matrix system bus
US9298654B2 (en) * 2013-03-15 2016-03-29 International Business Machines Corporation Local bypass in memory computing
US9811453B1 (en) * 2013-07-31 2017-11-07 Juniper Networks, Inc. Methods and apparatus for a scheduler for memory access
US20150058926A1 (en) * 2013-08-23 2015-02-26 International Business Machines Corporation Shared Page Access Control Among Cloud Objects In A Distributed Cloud Environment
JP6398309B2 (ja) * 2013-11-27 2018-10-03 株式会社リコー 情報処理装置、および情報処理方法
US9307057B2 (en) * 2014-01-08 2016-04-05 Cavium, Inc. Methods and systems for resource management in a single instruction multiple data packet parsing cluster
US20150199134A1 (en) * 2014-01-10 2015-07-16 Qualcomm Incorporated System and method for resolving dram page conflicts based on memory access patterns
US9229885B2 (en) * 2014-05-21 2016-01-05 Freescale Semiconductor, Inc. Adaptive scheduling queue control for memory controllers based upon page hit distance determinations
US10230531B2 (en) 2014-10-23 2019-03-12 Hewlett Packard Enterprise Development Lp Admissions control of a device
US10699031B2 (en) 2014-10-30 2020-06-30 Hewlett Packard Enterprise Development Lp Secure transactions in a memory fabric
US10715332B2 (en) 2014-10-30 2020-07-14 Hewlett Packard Enterprise Development Lp Encryption for transactions in a memory fabric
US20160162186A1 (en) * 2014-12-09 2016-06-09 San Disk Technologies Inc. Re-Ordering NAND Flash Commands for Optimal Throughput and Providing a Specified Quality-of-Service
US20160188529A1 (en) * 2014-12-25 2016-06-30 Intel Corporation Guaranteed quality of service in system-on-a-chip uncore fabric
US9785223B2 (en) * 2014-12-25 2017-10-10 Intel Corporation Power management in an uncore fabric
US9971711B2 (en) * 2014-12-25 2018-05-15 Intel Corporation Tightly-coupled distributed uncore coherent fabric
US9904635B2 (en) * 2015-08-27 2018-02-27 Samsung Electronics Co., Ltd. High performance transaction-based memory systems
US10838883B2 (en) 2015-08-31 2020-11-17 Via Alliance Semiconductor Co., Ltd. System and method of accelerating arbitration by approximating relative ages
TWI575384B (zh) 2015-09-04 2017-03-21 慧榮科技股份有限公司 通道控制裝置
US10185501B2 (en) 2015-09-25 2019-01-22 Intel Corporation Method and apparatus for pinning memory pages in a multi-level system memory
KR20170060300A (ko) * 2015-11-24 2017-06-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10552936B2 (en) 2016-03-02 2020-02-04 Alibaba Group Holding Limited Solid state storage local image processing system and method
CN105808475B (zh) * 2016-03-15 2018-09-07 杭州中天微系统有限公司 基于预测的低功耗隔离地址翻转请求发射装置
JP2017188072A (ja) * 2016-04-05 2017-10-12 ルネサスエレクトロニクス株式会社 半導体装置及びアクセス管理方法
CN107329913B (zh) * 2016-04-28 2019-12-13 深圳市中兴微电子技术有限公司 一种访问控制的方法及装置
US10402120B2 (en) * 2016-07-15 2019-09-03 Advanced Micro Devices, Inc. Memory controller arbiter with streak and read/write transaction management
CN106294227B (zh) * 2016-08-02 2019-12-03 芯启源(上海)半导体科技有限公司 仲裁设备、动态自适应仲裁方法及系统
US10310909B2 (en) 2016-09-12 2019-06-04 International Business Machines Corporation Managing execution of computer operations with non-competing computer resource requirements
US20190065243A1 (en) * 2016-09-19 2019-02-28 Advanced Micro Devices, Inc. Dynamic memory power capping with criticality awareness
US10372642B2 (en) * 2016-09-29 2019-08-06 Intel Corporation System, apparatus and method for performing distributed arbitration
US10146444B2 (en) 2016-10-03 2018-12-04 Samsung Electronics Co., Ltd. Method for read latency bound in SSD storage systems
KR20180063419A (ko) 2016-12-01 2018-06-12 삼성전자주식회사 호스트와 양방향 통신을 수행하도록 구성된 스토리지 장치 및 그것의 동작 방법
US10152434B2 (en) * 2016-12-20 2018-12-11 Advanced Micro Devices, Inc. Efficient arbitration for memory accesses
US10505860B1 (en) * 2017-05-30 2019-12-10 Xilinx, Inc. System and method for round robin scheduling
US10861504B2 (en) 2017-10-05 2020-12-08 Advanced Micro Devices, Inc. Dynamic control of multi-region fabric
US10558591B2 (en) * 2017-10-09 2020-02-11 Advanced Micro Devices, Inc. Method and apparatus for in-band priority adjustment forwarding in a communication fabric
CN107908577B (zh) * 2017-11-24 2021-03-26 中国航空工业集团公司西安航空计算技术研究所 一种具有仲裁功能的多通路访问存储控制器的电路
US10700954B2 (en) * 2017-12-20 2020-06-30 Advanced Micro Devices, Inc. Scheduling memory bandwidth based on quality of service floorbackground
US11196657B2 (en) 2017-12-21 2021-12-07 Advanced Micro Devices, Inc. Self identifying interconnect topology
US10649813B2 (en) * 2018-03-29 2020-05-12 Intel Corporation Arbitration across shared memory pools of disaggregated memory devices
US10476810B1 (en) * 2018-04-26 2019-11-12 Hewlett Packard Enterprise Development Lp Network source arbitration
US11520713B2 (en) 2018-08-03 2022-12-06 International Business Machines Corporation Distributed bus arbiter for one-cycle channel selection using inter-channel ordering constraints in a disaggregated memory system
JP7292044B2 (ja) * 2019-02-07 2023-06-16 キヤノン株式会社 制御装置および制御方法
CN109992205B (zh) 2019-03-27 2020-06-02 无锡海斯凯尔医学技术有限公司 数据存储的装置、方法及可读存储介质
US11507522B2 (en) 2019-12-06 2022-11-22 Advanced Micro Devices, Inc. Memory request priority assignment techniques for parallel processors
US11223575B2 (en) 2019-12-23 2022-01-11 Advanced Micro Devices, Inc. Re-purposing byte enables as clock enables for power savings
CN111562888B (zh) * 2020-05-14 2023-06-23 上海兆芯集成电路有限公司 存储器自更新的调度方法
US11625352B2 (en) * 2020-06-12 2023-04-11 Advanced Micro Devices, Inc. DRAM command streak management
EP4182800A1 (en) * 2020-09-14 2023-05-24 Google LLC Memory request timeouts using a common counter
US20240004551A1 (en) * 2020-10-26 2024-01-04 Google Llc Modulating Credit Allocations in Memory Subsystems
CN112597080B (zh) * 2020-12-29 2022-10-21 联芸科技(杭州)股份有限公司 读请求控制装置及方法以及存储器控制器
CN113312323B (zh) * 2021-06-03 2022-07-19 中国人民解放军国防科技大学 并行文件系统中降低访问延迟的io请求调度方法及系统
TWI774594B (zh) * 2021-10-28 2022-08-11 瑞昱半導體股份有限公司 儲存裝置共享系統及儲存裝置共享方法
US20230325086A1 (en) * 2022-04-07 2023-10-12 Apple Inc. Bandwidth-Aware Fabric Traffic Shaping

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124132A1 (en) * 2000-05-24 2002-09-05 Seagate Technology Llc Method and apparatus for disc drive buffer segment management
US20110113204A1 (en) * 2009-08-14 2011-05-12 Nxp B.V. Memory controller with external refresh mechanism
US8190804B1 (en) * 2009-03-12 2012-05-29 Sonics, Inc. Various methods and apparatus for a memory scheduler with an arbiter
US20130007386A1 (en) * 2011-06-29 2013-01-03 Synopsys Inc. Memory arbiter with latency guarantees for multiple ports

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923859A (en) * 1995-04-13 1999-07-13 Compaq Computer Corporation Dual arbiters for arbitrating access to a first and second bus in a computer system having bus masters on each bus
US6078998A (en) * 1997-02-11 2000-06-20 Matsushita Electric Industrial Co., Ltd. Real time scheduling of prioritized disk requests
US6006303A (en) * 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
US6266718B1 (en) * 1998-10-14 2001-07-24 Micron Technology, Inc. Apparatus for controlling data transfer operations between a memory and devices having respective latencies
US6415369B1 (en) * 2000-08-29 2002-07-02 Agere Systems Guardian Corp. Shared devices and memory using split bus and time slot interface bus arbitration
US6799257B2 (en) 2002-02-21 2004-09-28 Intel Corporation Method and apparatus to control memory accesses
JP2003323335A (ja) 2002-05-01 2003-11-14 Pfu Ltd メモリ装置及びその制御方法
JP4748641B2 (ja) 2004-12-06 2011-08-17 ルネサスエレクトロニクス株式会社 情報処理システム
JP4625836B2 (ja) * 2005-01-31 2011-02-02 パナソニック株式会社 アクセス調停装置
WO2007003984A1 (en) * 2005-06-30 2007-01-11 Freescale Semiconductor, Inc. Device and method for arbitrating between direct memory access task requests
US7797467B2 (en) * 2005-11-01 2010-09-14 Lsi Corporation Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
US8151008B2 (en) 2008-07-02 2012-04-03 Cradle Ip, Llc Method and system for performing DMA in a multi-core system-on-chip using deadline-based scheduling
US8032678B2 (en) 2008-11-05 2011-10-04 Mediatek Inc. Shared resource arbitration
EP2296091A1 (en) 2009-09-14 2011-03-16 Nxp B.V. Servicing low-latency requests ahead of best-effort requests
JP2011065359A (ja) 2009-09-16 2011-03-31 Canon Inc メモリシステム
US8560796B2 (en) * 2010-03-29 2013-10-15 Freescale Semiconductor, Inc. Scheduling memory access requests using predicted memory timing and state information
US8775754B2 (en) * 2011-06-24 2014-07-08 Arm Limited Memory controller and method of selecting a transaction using a plurality of ordered lists

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124132A1 (en) * 2000-05-24 2002-09-05 Seagate Technology Llc Method and apparatus for disc drive buffer segment management
US8190804B1 (en) * 2009-03-12 2012-05-29 Sonics, Inc. Various methods and apparatus for a memory scheduler with an arbiter
US20110113204A1 (en) * 2009-08-14 2011-05-12 Nxp B.V. Memory controller with external refresh mechanism
US20130007386A1 (en) * 2011-06-29 2013-01-03 Synopsys Inc. Memory arbiter with latency guarantees for multiple ports

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Lee, J. W., Ng, M. C., & Asanovic, K. (2008, June). Globally-synchronized frames for guaranteed quality-of-service in on-chip networks. In Computer Architecture, 2008. ISCA'08. 35th International Symposium on (pp. 89-100). IEEE. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI816032B (zh) * 2020-04-10 2023-09-21 新唐科技股份有限公司 多核心處理器電路

Also Published As

Publication number Publication date
TW201439771A (zh) 2014-10-16
WO2014113225A1 (en) 2014-07-24
CN104321758A (zh) 2015-01-28
KR20150086514A (ko) 2015-07-28
JP2015511052A (ja) 2015-04-13
KR101746313B1 (ko) 2017-06-12
EP2946301A4 (en) 2016-09-07
CN104321758B (zh) 2017-12-26
US9535860B2 (en) 2017-01-03
JP5886470B2 (ja) 2016-03-16
US20140201471A1 (en) 2014-07-17
EP2946301A1 (en) 2015-11-25

Similar Documents

Publication Publication Date Title
TWI599887B (zh) 經由共享記憶體組織來仲裁記憶體存取之技術
EP3238083B1 (en) Mitigating traffic steering inefficiencies in distributed uncore fabric
EP3238080B1 (en) Guaranteed quality of service in system-on-a-chip uncore fabric
TWI522792B (zh) 用以產生要求之設備、用於記憶體要求之方法、及運算系統
US9785223B2 (en) Power management in an uncore fabric
US10133670B2 (en) Low overhead hierarchical connectivity of cache coherent agents to a coherent fabric
US9971711B2 (en) Tightly-coupled distributed uncore coherent fabric
EP3238085B1 (en) Virtual legacy wire