TWI819635B - 記憶體控制系統與記憶體控制方法 - Google Patents

記憶體控制系統與記憶體控制方法 Download PDF

Info

Publication number
TWI819635B
TWI819635B TW111120515A TW111120515A TWI819635B TW I819635 B TWI819635 B TW I819635B TW 111120515 A TW111120515 A TW 111120515A TW 111120515 A TW111120515 A TW 111120515A TW I819635 B TWI819635 B TW I819635B
Authority
TW
Taiwan
Prior art keywords
memory
circuit
devices
access
requests
Prior art date
Application number
TW111120515A
Other languages
English (en)
Other versions
TW202349218A (zh
Inventor
賴奇劭
史旭冬
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 瑞昱半導體股份有限公司
Priority to TW111120515A priority Critical patent/TWI819635B/zh
Priority to US18/196,620 priority patent/US12074800B2/en
Application granted granted Critical
Publication of TWI819635B publication Critical patent/TWI819635B/zh
Publication of TW202349218A publication Critical patent/TW202349218A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Feedback Control In General (AREA)
  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)

Abstract

記憶體控制系統包含前端電路系統、流量排程電路系統以及後端電路系統。前端電路系統用以接收從複數個裝置發出的複數個存取請求,並根據多個控制訊號調整該些裝置存取一記憶體的順序。流量排程電路系統用以基於該些存取請求產生複數個流量資料,並基於一神經網路模型與一預設規則分析該些流量資料,以決定該些控制訊號。後端電路系統用以根據該些控制訊號調整該記憶體的工作排程。

Description

記憶體控制系統與記憶體控制方法
本案是關於記憶體控制系統,尤其是利用神經網路模型來自動調適存取記憶體排程的記憶體控制系統與記憶體控制方法。
現有的記憶體控制器常使用決策樹(decision tree)的概念來調整存取記憶體的排程(scheduling),以具有較好的穩定度以及可預測性。然而,決策樹的設置方式需透過韌體來根據已知的條件更新決策條件。如此,上述的記憶體控制器無法即時地優化對延遲時間較為敏感的裝置之效能。
於一些實施態樣中,本案的目的之一為(但不限於)提供一種利用神經網路模型來自動調適存取排程的記憶體控制系統與方法。
於一些實施態樣中,記憶體控制系統包含前端電路系統、流量排程電路系統以及後端電路系統。前端電路系統用以接收從複數個裝置發出的複數個存取請求並根據多個控制訊號調整該些裝置存取一記憶體的順序。流量排程電路系統用以基於該些存取請求產生複數個流量資料,並基於一神經網路 模型與一預設規則分析該些流量資料,以決定該些控制訊號。後端電路系統用 以根據該些控制訊號調整該記憶體的工作排程。
於一些實施態樣中,記憶體控制方法包含下列操作:分別經由複數個連接埠接收從複數個裝置發出的複數個存取請求;基於該些存取請求產生複數個流量資料,並基於一神經網路模型與一預設規則分析該些流量資料,以決定分別對應於該些裝置的複數個控制訊號;以及根據該些控制訊號調整一記憶體的工作排程並調整該些裝置存取該記憶體的順序。
有關本案的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
0~4:分數區間
100:記憶體控制系統
101[1]~101[n]:裝置
103:互連電路
110:前端電路系統
120:流量排程電路系統
130:後端電路系統
140:埠實體層電路
150:記憶體
210:監測電路
220:緩衝器電路
230:處理器電路
240:控制電路
250:流量控制器電路
300,310,320:效能延遲模型資料
700:記憶體控制方法
D[1]~D[n]:流量資料
O[1]~O[n]:尚未完成的請求的數量
P[1]~P[n],S[1]~S[m]:連接埠
PR:預設規則
PT1[1]~PT1[x],PT2[1]~PT2[y]:訊號式樣
R1~R4:讀取請求
S610,S620,S710,S720,S730:操作
SD:決策訊號
T[1]~T[n]:延遲時間
T0,T1,T2:時間
TL1~TL3:臨界值
VC:控制訊號
〔圖1〕為根據本案一些實施例繪製的一種記憶體控制系統的示意圖;〔圖2〕為根據本案一些實施例繪製圖1的流量排程電路系統的示意圖;〔圖3A〕為根據本案一些實施例繪製一種效能延遲模型資料的示意圖;〔圖3B〕為根據本案一些實施例繪製一種效能延遲模型資料的示意圖;〔圖3C〕為根據本案一些實施例繪製一種效能延遲模型資料的示意圖;〔圖4〕為根據本案一些實施例繪製圖2的監測電路之操作示意圖;〔圖5〕為根據本案一些實施例繪製圖2的緩衝器電路的操作示意圖;〔圖6〕為根據本案一些實施例繪製一種神經網路模型的操作流程圖;以及〔圖7〕為根據本案一些實施例繪製一種記憶體控制方法的流程圖。
本文所使用的所有詞彙具有其通常的意涵。上述之詞彙在普遍常用之字典中之定義,在本案的內容中包含任一於此討論的詞彙之使用例子僅為示例,不應限制到本案之範圍與意涵。同樣地,本案亦不僅以於此說明書所示出的各種實施例為限。
關於本文中所使用之『耦接』或『連接』,均可指二或多個元件相互直接作實體或電性接觸,或是相互間接作實體或電性接觸,亦可指二或多個元件相互操作或動作。如本文所用,用語『電路系統』可為由至少一電路形成的單一系統,且用語『電路』可為由至少一個電晶體與/或至少一個主被動元件按一定方式連接以處理訊號的裝置。
如本文所用,用語『與/或』包含了列出的關聯項目中的一個或多個的任何組合。在本文中,使用第一、第二與第三等等之詞彙,是用於描述並辨別各個元件。因此,在本文中的第一元件也可被稱為第二元件,而不脫離本案的本意。為易於理解,於各圖式中的類似元件將被指定為相同標號。
圖1為根據本案一些實施例繪製的一種記憶體控制系統100的示意圖。於一些實施例中,記憶體控制系統100可由一單晶片系統實現。於一些實施例中,記憶體控制系統100可用以根據多個裝置101[1]~101[n]的即時需求調整記憶體150的工作排程以及該些裝置存取記憶體150的順序,以維持整體系統的效能,其中n可為大於1的正整數。
於一些實施例中,記憶體控制系統100可經由互連電路103耦接至多個裝置101[1]~101[n],其中互連(interconnection)電路103可包含多種類型的匯流排電路。例如,互連電路103可包含(但不限於)高級可擴充介面 (advanced extensible interface)電路。多個裝置101[1]~101[n]可分別經由多個 連接埠P[1]~P[n]連接至互連電路103。
記憶體控制系統100包含前端電路系統110、流量排程電路系統120、後端電路系統130以及埠實體層(port physical layer PHY)電路140。前端電路系統110包含一介面電路(未示出),其可經由互連電路103耦接至多個連接埠P[1]~P[n]以及多個裝置101[1]~101[n]。前端電路系統110用以接收從該些裝置101[1]~101[n]所發出的多個存取請求。於一些實施例中,前端電路系統110可將對應於該些連接埠P[1]~P[n]每一者的存取請求進行初步仲裁。例如,前端電路系統110可根據該些連接埠P[1]~P[n]每一者的服務品質(quality of service,QOS)層級、存取的期滿數值(例如為一次讀寫所使用的時間上限)、尚未完成(outstanding)的請求之數量上限等資訊進行初步仲裁。
於另一些實施例中,當多個裝置101[1]~101[n]的數量增加且多個連接埠P[1]~P[n]的位置分散時,多個裝置101[1]~101[n]可透過互連電路103根據流量模型執行的分層分流來連接至多個連接埠S[1]~S[m],其中數值m遠小於數值n。前端電路系統110可將對應於該些連接埠S[1]~S[m]每一者的存取請求進行初步仲裁。例如,前端電路系統110可根據該些連接埠S[1]~S[m]每一者的QOS層級、存取的期滿數值、尚未完成的請求數量上限等資訊進行初步仲裁。
流量排程電路系統120用以基於上述的多個存取請求產生多個流量資料(例如為圖2的流量資料D[1]~D[n]),並基於神經網路模型以及預設規則分析該些流量資料,以決定多個控制訊號VC。流量排程電路系統120可耦接至前端電路系統110中的介面電路(例如為多個連接埠S[1]~S[m]或是多個連接 埠P[1]~P[n]),以接收多個裝置101[1]~101[n]所發出的多個存取請求。關於流量排程電路系統120的設置方式與相關操作將於後參照圖2說明。於另一些實施例中,流量排程電路系統120可直接監測多個連接埠S[1]~S[m],以獲得多個裝置101[1]~101[n]所發出的多個存取請求。換言之,在不同實施例中,流量排程電路系統120可監測多個連接埠P[1]~P[n]或是多個連接埠S[1]~S[m],以獲得該些存取請求。
後端電路系統130經由埠實體層電路140耦接到記憶體150,並根據多個控制訊號VC調整記憶體150的工作排程,且前端電路系統110可根據多個控制訊號VC調整多個裝置101[1]~101[n]存取記憶體150的順序。如此,可調整多個裝置101[1]~101[n]對記憶體150的資料存取時間。例如,當流量排程電路系統120基於多個流量資料判斷出特定裝置(例如為裝置101[1])讀取記憶體150的時間將超出一預期值時,流量排程電路系統120可輸出控制訊號VC來控制後端電路系統130以提高記憶體150的讀取優先權並延長其操作時間,並輸出控制訊號VC來控制前端電路系統110以提高該特定裝置經過的特定連接埠(例如為連接埠S[1])的決策優先權以維持該特定裝置存取該記憶體150的平均時間。換言之,流量排程電路系統120所產生的決策結果(即多個控制訊號VC)可用來排序多個連接埠S[1]~S[m]對記憶體150的存取順序,進而維持整體系統的效能。
於一些實施例中,記憶體150可為(但不限於)同步動態隨機存取記憶體(synchronous dynamic random access memory)。於一些實施例中,埠實體層電路140可包含資料收發電路、時脈/功率管理電路、命令/地址控制電路、資料佇列電路等等,以操作為後端電路系統130與記憶體150之間的溝通媒 介。後端電路系統130可將傳輸協定轉換為記憶體協定,並進行記憶體指令(例如包含,但不限於,讀取、寫入、激活(activate)、預充電(pre-charge)、自動更新(auto-refresh)等等)的排程(相當於前述的工作排程)。
於一些實施例中,前端電路系統110與後端電路系統130中每一者可由至少一數位邏輯控制電路實施。例如,前端電路系統110可包含介面電路、暫存器電路、仲裁器電路等實施,且後端電路系統130可包含介面電路、暫存器電路、調度器電路等實施。於一些實施例中,前端電路系統110與後端電路系統130可整合為一記憶體控制器電路系統。於一些實施例中,前端電路系統110與後端電路系統130可以使用現有的記憶體控制器電路實施。上述關於各個電路系統的實施方式用於示例,且本案並不以此為限。
圖2為根據本案一些實施例繪製圖1的流量排程電路系統120的示意圖。於一些實施例中,流量排程電路系統120包含監測電路210、緩衝器電路220、處理器電路230、控制電路240以及流量控制器電路250。於一些實施例中,上述多個電路可由執行後述的多個功能的數位電路實施。
監測電路210可監測多個連接埠P[1]~P[n](或是S[1]~S[m]),以接收多個裝置101[1]~101[n]發出的多個存取請求。監測電路210用以根據該些存取請求監測對應於多個連接埠P[1]~P[n](或是S[1]~S[m])中每一者的延遲時間(標示為T[1]~T[n])以及該些存取請求中尚未完成的請求之數量(標示為O[1]~O[n])。關於延遲時間以及尚未完成的請求之數量將於後參照圖4說明。
緩衝器電路220耦接至監測電路210,並接收多個延遲時間T[1]~T[n]以及多個尚未完成的請求的數量O[1]~O[n]的資訊。緩衝器電路220用以 根據多個延遲時間T[1]~T[n]以及多個尚未完成的請求的數量O[1]~O[n]的資訊產生多個流量資料(標示為D[1]~D[n])。關於緩衝器電路220的相關操作將於後參照圖5說明。
處理器電路230用以運行神經網路模型以根據多個流量資料D[1]~D[n]與預設規則PR產生多個決策訊號SD。於一些實施例中,前述的神經網路模型可為(但不限於)全連接(fully-connected)神經網路模型。於一些實施例中,藉由該神經網路模型,處理器電路230可根據多個流量資料D[1]~D[n]進行特徵擷取以辨識各個連接埠P[1]~P[n](或是S[1]~S[m])當前的效能需求,並根據擷取到的特徵進行決策以產生多個決策訊號SD。關於神經網路模型的例子將於後參照圖6說明。
控制電路240用以根據多個決策訊號SD以及預設規則PR產生多個控制訊號VC。流量控制器電路250用以儲存預設規則PR,並提供預設規則PR的資訊給處理器電路230以及控制電路240,以根據預設規則PR與處理器電路230以及控制電路240協同運作。於一些實施例中,流量控制器電路250更接收多個延遲時間T[1]~T[n]以及多個尚未完成的請求之數量O[1]~O[n]的資訊,並接收系統資訊以及後端電路系統130的操作資訊(未示出),以協助調整存取排程。
於一些實施例中,預設規則PR包含多個連接埠P[1]~P[n](或S[1]~S[m])中每一者的效能延遲模型資料。於一些實施例中,效能延遲模型資料用以指示多個連接埠P[1]~P[n](或S[1]~S[m])中之一對應者之效能對記憶體150之存取延遲時間的敏感度。於一些實施例中,效能延遲模型資料還可包含多個連接埠P[1]~P[n](或S[1]~S[m])中每一者的服務品質層級的資訊以及 尚未完成的請求數量之上限值,其可用於設定預設規則PR與/或在訓練神經網路模型時設定預設範圍。服務品質層級越高,代表對應的連接埠在初步仲裁後會具有較高的存取優先順序。尚未完成的請求數量之上限值代表對應的連接埠可在一定期間內發出最大存取請求數量。若進一步根據平均存取延遲時間及存取資料量等資訊進行分析,可推算出該對應連接埠可獲取的頻寛上限。關於效能延遲模型資料的說明將於後參照圖3A至圖3C說明。為易於理解,圖3A至圖3C是依序以多個連接埠P[1]~P[3]以及其對應的裝置101[1]~101[3]為例說明,但本案並不以此為限。其他連接埠P[4]~P[n]以及對應的裝置101[4]~101[n]可根據圖3A至圖3C的模型進行分類。
圖3A為根據本案一些實施例繪製一種效能延遲模型資料300的示意圖。基於事先的量測與/或模擬以及事先定好的延遲需求與容忍度要求,可測得對應於連接埠P[1](或S[1])的效能延遲模型資料300,其中前端電路系統110可經由連接埠P[1]與連接埠S[1]連接到裝置101[1]。於此例中,使用連接埠S[1]進行記憶體傳輸的裝置101[1]屬於對記憶體150之存取延遲時間較為敏感的裝置(例如為中央處理器)。如圖3A所示,若延遲時間越長,連接埠P[1]或S[1](以及裝置101[1])之效能就越低。換言之,在此例中,效能延遲模型資料300可指示連接埠P[1](或是連接埠S[1])具有較高的服務品質層級以及較高的尚未完成之請求的上限值,以確保連接埠P[1]或S[1]以及裝置101[1]之效能。
圖3B為根據本案一些實施例繪製一種效能延遲模型資料310的示意圖。類似地,基於事先的量測與/或模擬以及事先定好的延遲需求與容忍度要求,可測得對應於連接埠P[2]或S[2]的效能延遲模型資料310,其中前端電路系統110可經由連接埠P[2]與連接埠S[2]連接到裝置101[2]。於此例中,使用連接 埠S[2]進行記憶體傳輸的裝置101[2]屬於對記憶體150之存取延遲時間較不敏感的裝置(例如為,但不限於,圖像處理單元)。如圖3B所示,在連接埠P[2]或S[2]可滿足最低的頻寬要求下,裝置101[2]的效能相對不容易受到延遲時間的影響。然而,若延遲時間超過臨界值TL1,連接埠P[2]或S[2]與裝置101[2]的效能將會開始下降。因此,在延遲時間未超過臨界值TL1時,效能延遲模型資料310可指示連接埠P[2]或S[2]可具有較低的服務品質層級以及較高的尚未完成之請求數量的上限值。或者,在延遲時間超過臨界值TL1時,效能延遲模型資料310可指示連接埠P[2]或S[2]可具有較高的服務品質層級,或可指示連接埠P[2]或S[2]可具有較低的服務品質層級但具有較高的尚未完成的請求數量的上限值。
圖3C為根據本案一些實施例繪製一種效能延遲模型資料320的示意圖。類似地,基於事先的量測與/或模擬以及事先定好的延遲需求與容忍度要求,可測得對應於連接埠P[3]或S[3]的效能延遲模型資料320,其中前端電路系統110可經由連接埠P[3]與連接埠S[3]連接到裝置101[3]。於此例中,使用連接埠S[3]進行記憶體傳輸的裝置101[3]屬於對記憶體150之存取延遲時間有即時需求的裝置(例如為,但不限於,顯示器、影像顯示控制器等等)。如圖3C所示,在一定的特定延遲時間下,連接埠P[3]或S[3](與/或裝置101[3])之效能可以維持在正常數值。然而,一旦連接埠P[3]的延遲時間超過臨界值TL2,裝置101[3]之操作會直接失效(例如,顯示器上的圖像出現破圖),造成其效能直接降低。因此,在連接埠P[3]的延遲時間超過臨界值TL2時,效能延遲模型資料320可指示連接埠P[3]或S[3]需維持將尚未完成的請求數量的上限值維持在一合適的數值,並具有最高的服務品質層級,以確保不會出現操作失效。在連接埠 P[3]的延遲時間未超過臨界值TL2時,效能延遲模型資料320可指示連接埠P[3]或S[3]維持具有相對較高的服務品質層級。
據此,應可理解,流量控制器電路250可根據預設規則PR中的多個效能延遲模型資料300、310與320的資訊來與處理器電路230與控制電路240協同運作,以調整對應的連接埠P[1]~P[3](或S[1]~S[3])存取記憶體150的排程,進而動態地維持對應的裝置101[1]、101[2]與101[3]的效能。例如,當連接埠P[3](或S[1])的延遲時間快要超過圖3C的臨界值TL3(其設置以小於臨界值TL2)時,流量控制器電路250可基於預設規則PR而與控制電路240協同運作以調整多個控制訊號VC,進而讓連接埠P[3]具有較優先的順序來存取記憶體150。此外,藉由流量控制器電路250,可確保神經網路模型所產生的決策不會超出各個連接埠P[1]~P[n](或S[1]~S[m])的限制。例如,可避免神經網路模型的決策讓一連接埠的尚未完成之請求的數量太少,或可避免神經網路模型的決策讓一連接埠的服務品質層級過低而影響到其效能。
圖4為根據本案一些實施例繪製圖2的監測電路210之操作示意圖。為易於理解,圖4僅示出用來監測一個連接埠(例如為連接埠P[1])上的延遲時間以及尚未完成的請求的數量之操作。如圖4所示,監測電路210可定期地監測連接埠P[1]上的存取請求(圖4中以讀取請求為例)。
在圖4的例子中,連接埠P[1]收到從裝置101[1]發出的四個讀取請求R1~R4。在時間T0,前一次的監測(或可稱為取樣)期間剛結束。在時間T1,監測電路210偵測到在時間T0之後所發出的讀取請求為讀取請求R2。在時間T2,監測電路210偵測到裝置101[1]經由連接埠P[1]收到多個讀取請求R1~R4中的一對應者(即在前一次監測期間結束後最早收到的讀取請求R2)的回應, 並據此記錄讀取請求R2的延遲時間以及多個讀取請求R1~R4中尚未完成的請求之數量,以作為對應於連接埠P[1]的延遲時間T[1]以及尚未完成請求的數量O[1]之資訊。
於此例中,讀取請求R2的延遲時間相當於時間T1與時間T2之間的差值。於一些實施例中,監測電路210可在裝置101[1]經由連接埠P[1]收到讀取請求R2所要讀取的第一筆資料時,確認裝置101[1]收到對應於讀取請求R2的回應。在此條件下,多個讀取請求R1~R4中在時間T2尚未完成的請求之數量為4(包含讀取請求R2)。或者,於另一些實施例中,監測電路210可在裝置101[1]經由連接埠P[1]收到讀取請求R2所要讀取的全部資料時,確認裝置101[1]收到對應於讀取請求R2的回應。在此條件下,多個讀取請求R1~R4中在時間T2尚未完成的請求之數量為3(僅包含讀取請求R1、R3與R4)。
藉由上述設置方式,監測電路210在一個監測期間內只需要記錄一個存取請求的延遲時間,而非記錄每一個存取請求的延遲時間。如此一來,可降低監測的成本與複雜度。於一些實施例中,所記錄到的延遲時間可視為該監測期間內所有存取請求之平均延遲時間。於一些實施例中,藉由獲取平均延遲時間以及尚未完成之請求的數量,可以預測對應連接埠之存取資料速率。應當理解,圖4是以讀取請求為例說明,但本案並不以此為限。在各個實施例中,存取請求可以是讀取請求,也可以是寫入請求。
圖5為根據本案一些實施例繪製圖2的緩衝器電路220的操作示意圖。為易於理解,圖5以產生對應於連接埠P[1]的流量資料D[1]為例說明。
在一些實施例中,多個流量資料D[1]~D[n]每一者包含多個第一訊號式樣(pattern)以及多個第二訊號式樣,其中多個第一訊號式樣分別對 應於不同時間長度,且多個第二訊號式樣分別對應於不同數值。例如,流量資料D[1]包含多個訊號式樣PT1[1]~PT1[x](即前述的第一訊號式樣)以及多個訊號式樣PT2[1]~PT2[y](即前述的第二訊號式樣),其中x與y分別為大於1的正整數。在圖5的例子中,多個訊號式樣PT1[1]~PT1[x]以及多個訊號式樣PT2[1]~PT2[y]中每一者包含多個位元。
緩衝器電路220可定期地根據監測電路210所記錄到的對應於連接埠P[1]的延遲時間的時間長度來選擇性地調整多個訊號式樣PT1[1]~PT1[x]中之一者所對應的特定位元,並定期地基於該特定位元對每一個訊號式樣PT1[1]~PT1[x]中的所有位元進行平移,以更新流量資料D[1]。例如,前述的特定位元可用來更新多個訊號式樣PT1[1]~PT1[x]中的一對應者的最高有效位元,且該特定位元具有一預設邏輯值(例如為邏輯值0)。多個訊號式樣PT1[1]~PT1[x]分別對應於不同的時間長度。例如,訊號式樣PT1[1]所對應的時間長度為小於100個單位周期(cycle),訊號式樣PT1[2]所對應的時間長度為100至199個單位周期,訊號式樣PT1[3]所對應的時間長度為200至299個單位周期。依此類推,應可理解時間長度與多個訊號式樣PT1[1]~PT1[x]之間的對應關係。
在上述的條件下,若監測電路210所記錄到的對應於連接埠P[1]的延遲時間的時間長度小於100個單位周期,緩衝器電路220可將訊號式樣PT1[1]所對應的特定位元更新為邏輯值1,並將剩餘的多個訊號式樣PT1[2]~PT1[x]中每一者所對應的特定位元更新為邏輯值0。接著,緩衝器電路220可將多個訊號式樣PT1[1]~PT1[x]中的所有位元進行右移,其中該特定位元會移入至最高有效位元。如此,訊號式樣PT1[1]中的最高有效位元將更新為邏輯值1,且剩餘的多個訊號式樣PT1[2]~PT1[x]中每一者最高有效位元將維持為邏輯值 0。藉由上述設置方式,可定期地更新流量資料D[1]中的多個訊號式樣PT1[1]~PT1[x]。
類似地,緩衝器電路220可定期地根據監測電路210所記錄到的對應於連接埠P[1]的尚未完成的請求之數量來選擇性地調整多個訊號式樣PT2[1]~PT2[y]中之一者所對應的特定位元,並定期地基於該特定位元對每一個訊號式樣PT2[1]~PT2[y]中的所有位元進行平移,以更新流量資料D[1]。例如,前述的特定位元可用來更新多個訊號式樣PT2[1]~PT2[y]中的一對應者的最高有效位元,且該特定位元具有一預設邏輯值(例如為邏輯值0)。多個訊號式樣PT2[1]~PT2[y]分別對應於不同的數值範圍,且這些數值範圍對應於不同的尚未完成請求的數量。例如,訊號式樣PT2[1]所對應的數值範圍為小於4,訊號式樣PT2[2]所對應的數值範圍為4~8,訊號式樣PT2[3]所對應的數值範圍為9~13。依此類推,應可理解數值範圍與多個訊號式樣PT2[1]~PT2[y]之間的對應關係。
在上述的條件下,若監測電路210所記錄到的對應於連接埠P[1]的尚未完成的請求之數量小於4,緩衝器電路220可將訊號式樣PT2[1]所對應的特定位元更新為邏輯值1,並維持剩餘的多個訊號式樣PT2[2]~PT2[y]中每一者所對應的特定位元為邏輯值0。接著,緩衝器電路220可將多個訊號式樣PT2[1]~PT2[y]中的所有位元進行右移,其中該特定位元會移入至最高有效位元。如此,訊號式樣PT2[1]中的最高有效位元將更新為邏輯值1,且剩餘的多個訊號式樣PT2[2]~PT2[y]中每一者最高有效位元將維持為邏輯值0。藉由上述設置方式,可定期地更新流量資料D[1]中的多個訊號式樣PT2[1]~PT2[y]。
於一些實施例中,緩衝器電路220可包含多個移位暫存器,以執行圖5中的操作。於一些實施例中,緩衝器電路220可在一預設期間內執行圖5中的操作,且該預設期間可根據記憶體150的更新時間以及系統可容忍最低的延遲時間來進行設定。
圖6為根據本案一些實施例繪製一種神經網路模型的操作流程圖。於一些實施例中,可透過評分的方式來評估驗證神經網路模型所產生的決策是否正確。例如,如圖3A所示,依據不同的延遲時間,效能延遲模型資料300可以劃分為多個分數區間0~4。如圖3B所示,依據不同的延遲時間,效能延遲模型資料310可以劃分為3個分數區間0~2。如圖3C所示,依據不同的延遲時間,效能延遲模型資料320可以劃分為3個分數區間0~2。依據不同效能,該些分數區間所對應的分數可以由下表所示的方式進行配置:
Figure 111120515-A0305-02-0016-1
在處理器電路230運行神經網路模型以根據多個流量資料D[1]~D[n]產生對應的決策結果(即多個決策訊號SD)時,處理器電路230可利用上表來計算整體系統的分數。若分數越高,代表經過神經網路模型的決策後,整體系統的效能就越好。如此,可確認神經網路模型的決策為正確的。例如,處理器電路230可利用下式來計算整體系統的分數:
Figure 111120515-A0305-02-0017-2
其中,Total score代表整體系統的分數,m為分數區間的數量,且Score(i)代表分數區間所對應的分數。例如,參考上表,以連接埠P[1]來說,若延遲時間對應於分數區間0,對應的分數即為5。上述計算分數的算式用於示例,且本案並不以此為限。例如,在一些實施例中,上述的計算式還可以基於連接埠的數量進行歸一化(normalized)。
參照圖6,於操作S610,根據所有連接埠的效能計算整體系統的分數。於操作S620,使用神經網路模型根據多個流量資料產生多個決策訊號以調整多個裝置存取記憶體的排程,以提高整體系統的分數。例如,經過前一次的調整後,處理器電路230使用上述的算式得到整體系統的分數,且處理器電路230根據多個流量資料D[1]~D[n]判斷連接埠P[1]的效能較低,而連接埠P[3]的效能較高且具有一定的延遲容忍度。因此,神經網路模型可決定將連接埠P[1]的服務品質層級拉高,並降低連接埠P[3]的服務品質層級以及限制連接埠P[3]的尚未完成的請求之數量,以進一步地提高整體系統的分數。
應當理解,上述的操作亦可用來訓練神經網路的模型。例如,在神經網路模型產生決策結果前,可以計算整體系統的第一分數。在神經網路模型產生決策結果後,可以計算整體系統的第二分數,並確認第二分數是否高於第一分數。若第二分數不高於第一分數,則需要修正神經網路模型中的參數與/或調整特徵擷取的判斷方式(例如為前述的Score(i))。
圖4至圖6的操作是以監測多個連接埠P[1]~P[n]為例進行說明,但本案並不以此為限。於另一些實施例中,圖4至圖6的操作亦可藉由監測多個連接埠S[1]~S[m]來執行。
圖7為根據本案一些實施例繪製一種記憶體控制方法700的流程圖。於操作S710,分別經由多個連接埠接收從多個裝置發出的多個存取請求。於操作S720,基於該些存取請求產生多個流量資料,並基於神經網路模型與預設規則分析該些流量資料,以決定分別對應於該些裝置的多個控制訊號。例如,可藉由流量排程電路系統120執行圖2、圖4、圖5與/或圖6中的多個操作,來實現操作S720。於操作S730,根據該些控制訊號調整一記憶體的工作排程並調整該些裝置存取該記憶體的順序。
上述記憶體控制方法700的多個操作之說明可參考前述多個實施例,故於此不再贅述。上述多個操作僅為示例,並非限定需依照此示例中的順序執行。在不違背本案的各實施例的操作方式與範圍下,在記憶體控制方法700下的各種操作當可適當地增加、替換、省略或以不同順序執行。或者,在記憶體控制方法700下的一或多個操作可以是同時或部分同時執行。
綜上所述,在本案一些實施例中提供的記憶體控制系統與記憶體控制方法可定期地監測連接埠的延遲時間與尚未完成的請求數量來產生流量資料,並藉由神經網路模型分析該些流量資料來調整記憶體的排程與存取順序。如此,可即時地根據系統需求調整存取記憶體排程,以更有效地維持系統效能。
雖然本案之實施例如上所述,然而該些實施例並非用來限定本案,本技術領域具有通常知識者可依據本案之明示或隱含之內容對本案之技術 特徵施以變化,凡此種種變化均可能屬於本案所尋求之專利保護範疇,換言之,本案之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
100:記憶體控制系統
101[1]~101[n]:裝置
103:互連電路
110:前端電路系統
120:流量排程電路系統
130:後端電路系統
140:埠實體層電路
150:記憶體
P[1]~P[n],S[1]~S[m]:連接埠
VC:控制訊號

Claims (10)

  1. 一種記憶體控制系統,包含:一前端電路系統,用以接收從複數個裝置發出的複數個存取請求,並根據複數個控制訊號調整該些裝置存取一記憶體的順序,其中該些裝置的效能對該記憶體的存取延遲時間具有至少一敏感度;一流量排程電路系統,用以基於該些存取請求產生複數個流量資料,並基於一神經網路模型與一預設規則分析該些流量資料,以決定該些控制訊號;以及一後端電路系統,用以根據該些控制訊號調整該記憶體的工作排程。
  2. 如請求項1之記憶體控制系統,其中該前端電路系統經由一連接埠耦接至該些裝置中之一第一裝置以接收該些存取請求中的複數個第一請求,且該流量排程電路系統用以在該第一裝置收到對於該些第一請求中的一對應者之回應時,記錄該些第一請求中的該對應者的一延遲時間以及該些第一請求中的剩餘者的一數量,並基於該延遲時間與該數量產生該些流量資料中對應於該連接埠的一第一資料。
  3. 如請求項2之記憶體控制系統,其中該第一資料包含複數個第一訊號式樣以及複數個第二訊號式樣,該流量排程電路系統用以根據該延遲時間的長度調整該些第一訊號式樣,並根據該數量的大小調整該些第二訊號式樣。
  4. 如請求項3之記憶體控制系統,其中該些第一訊號式樣分別對應於不同時間長度,且該些第二訊號式樣分別對應於不同數值。
  5. 如請求項3之記憶體控制系統,其中該流量排程電路系統用以定期地根據該延遲時間的長度選擇性地調整該些第一訊號式樣中之一者所對應的一特定位元,並定期地基於該特定位元平移該些第一訊號式樣中每一者的所有位元,以更新該第一資料。
  6. 如請求項5之記憶體控制系統,其中該特定位元用來更新該些第一訊號式樣中之該者的一最高有效位元。
  7. 如請求項3之記憶體控制系統,其中該流量排程電路系統用以定期地根據該數量的數值大小選擇性地調整該些第二訊號式樣中之一者的一特定位元,並定期地基於該特定位元平移該些第二訊號式樣中每一者的所有位元,以更新該第一資料。
  8. 如請求項1之記憶體控制系統,其中該前端電路系統經由複數個連接埠分別耦接至該些裝置以接收該些存取請求,且該流量排程電路系統包含:一監測電路,用以根據該些存取請求監測對應於該些連接埠中每一者的一延遲時間與該些存取請求中的尚未完成之請求的一數量;一緩衝器電路,用以根據該些連接埠中每一者的該延遲時間與該數量產生該些流量資料;一處理器電路,用以運行該神經網路模型以根據該些流量資料與該預設規則產生複數個決策訊號;一控制電路,用以根據該些決策訊號與該預設規則產生該些控制訊號;以及一流量控制器電路,用以儲存該預設規則,並根據該預設規則與該處理器電路以及該控制電路協同運作。
  9. 如請求項1之記憶體控制系統,其中該前端電路系統經由複數個連接埠分別耦接至該些裝置以接收該些存取請求,該預設規則用以記錄該些連接埠中每一者所對應的一效能延遲模型資料,且該效能延遲模型資料用以指示該些裝置中耦接至該些連接埠中的一對應者的一對應裝置之效能對該記憶體之存取延遲時間的敏感度。
  10. 一種記憶體控制方法,包含:分別經由複數個連接埠接收從複數個裝置發出的複數個存取請求;基於該些存取請求產生複數個流量資料,並基於一神經網路模型與一預設規則分析該些流量資料,以決定分別對應於該些裝置的複數個控制訊號;以及根據該些控制訊號調整一記憶體的工作排程並調整該些裝置對該記憶體的存取順序,其中該些裝置的效能對該記憶體的存取延遲時間具有至少一敏感度。
TW111120515A 2022-06-01 2022-06-01 記憶體控制系統與記憶體控制方法 TWI819635B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW111120515A TWI819635B (zh) 2022-06-01 2022-06-01 記憶體控制系統與記憶體控制方法
US18/196,620 US12074800B2 (en) 2022-06-01 2023-05-12 Memory control system and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111120515A TWI819635B (zh) 2022-06-01 2022-06-01 記憶體控制系統與記憶體控制方法

Publications (2)

Publication Number Publication Date
TWI819635B true TWI819635B (zh) 2023-10-21
TW202349218A TW202349218A (zh) 2023-12-16

Family

ID=88976269

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111120515A TWI819635B (zh) 2022-06-01 2022-06-01 記憶體控制系統與記憶體控制方法

Country Status (2)

Country Link
US (1) US12074800B2 (zh)
TW (1) TWI819635B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9191457B2 (en) * 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207846A (zh) * 2012-01-17 2013-07-17 擎泰科技股份有限公司 内存控制器及控制方法
TWI514157B (zh) * 2013-07-09 2015-12-21 Hewlett Packard Development Co 用於寫入流量控制之記憶體模組與方法、以及電腦系統
TWI645295B (zh) * 2017-06-20 2018-12-21 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
US20210064788A1 (en) * 2019-09-04 2021-03-04 Rambus Inc. Securing address information in a memory controller
TW202137011A (zh) * 2015-07-20 2021-10-01 美商英特爾股份有限公司 用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119196A (en) * 1997-06-30 2000-09-12 Sun Microsystems, Inc. System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US6907002B2 (en) * 2000-12-29 2005-06-14 Nortel Networks Limited Burst switching in a high capacity network
US7461214B2 (en) * 2005-11-15 2008-12-02 Agere Systems Inc. Method and system for accessing a single port memory
US8615629B2 (en) * 2010-01-18 2013-12-24 Marvell International Ltd. Access scheduler
US11221764B2 (en) * 2010-01-29 2022-01-11 Mosys, Inc. Partitioned memory with shared memory resources and configurable functions
US20120137090A1 (en) * 2010-11-29 2012-05-31 Sukalpa Biswas Programmable Interleave Select in Memory Controller
US8670310B2 (en) * 2010-12-21 2014-03-11 Hewlett-Packard Development Company, L.P. Dynamic balancing priority queue assignments for quality-of-service network flows
US10229144B2 (en) * 2013-03-15 2019-03-12 Cavium, Llc NSP manager
US20170083474A1 (en) * 2015-09-22 2017-03-23 Advanced Micro Devices, Inc. Distributed memory controller
US10412780B2 (en) * 2017-05-25 2019-09-10 Apple Inc. Adapting discontinuous reception cycles using scheduling requests
US10417175B2 (en) * 2017-12-30 2019-09-17 Intel Corporation Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator
EP3820092A1 (en) * 2019-11-07 2021-05-12 Nokia Solutions and Networks GmbH & Co. KG Communication system
TWI760715B (zh) 2020-03-19 2022-04-11 瑞昱半導體股份有限公司 藉助於交易辨識碼之屬性來控制資料回應的方法以及系統
US11924064B2 (en) * 2021-12-22 2024-03-05 Atlassian Pty Ltd. Apparatuses, methods, and computer program products for predictive determinations of causal change identification for service incidents

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207846A (zh) * 2012-01-17 2013-07-17 擎泰科技股份有限公司 内存控制器及控制方法
TWI514157B (zh) * 2013-07-09 2015-12-21 Hewlett Packard Development Co 用於寫入流量控制之記憶體模組與方法、以及電腦系統
TW202137011A (zh) * 2015-07-20 2021-10-01 美商英特爾股份有限公司 用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體
TWI645295B (zh) * 2017-06-20 2018-12-21 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
US20210064788A1 (en) * 2019-09-04 2021-03-04 Rambus Inc. Securing address information in a memory controller

Also Published As

Publication number Publication date
US20230396552A1 (en) 2023-12-07
TW202349218A (zh) 2023-12-16
US12074800B2 (en) 2024-08-27

Similar Documents

Publication Publication Date Title
CN103198856B (zh) 一种ddr控制器及请求调度方法
US7420990B2 (en) Adaptive-allocation of I/O bandwidth using a configurable interconnect topology
CN1327370C (zh) 资源管理装置
CN111737173B (zh) I2c总线通信控制方法、装置、系统及可读存储介质
US9477586B1 (en) Power-aware memory controller circuitry
US10783950B2 (en) Memory management systems and methods using a management communication bus
JP2013528970A (ja) ネットワークで使用される方法、装置及びシステム
TWI819635B (zh) 記憶體控制系統與記憶體控制方法
CN108427629A (zh) 一种数据压缩的SoC芯片信息追踪装置和性能优化方法
US20090037635A1 (en) Bus arbitration device
CN103136120A (zh) 行缓冲管理策略确定方法和装置、bank划分方法和装置
US8364860B2 (en) Data-processing system and data-processing method
CN114371957A (zh) 一种ddr控制器及ddr数据刷新控制方法
CN116893991B (zh) 一种axi协议下的存储模块转换接口及其转换方法
JP2009251713A (ja) キャッシュメモリ制御装置
CN116225995B (zh) 一种总线系统及芯片
CN115881183B (zh) 训练触发方法、装置、设备及存储介质
CN115562617B (zh) 一种fifo存储器的深度设置方法、系统及电子设备
Jian et al. Understanding and optimizing power consumption in memory networks
CN114610138B (zh) 带宽控制单元、处理器芯片以及访存流量控制方法
US10684965B2 (en) Method to reduce write responses to improve bandwidth and efficiency
CN117251390A (zh) 存储器控制系统与存储器控制方法
TWI755015B (zh) 整合信號與電源之全晶片系統的模擬分析系統及其模擬分析方法
US11874774B2 (en) Mechanism to efficiently rinse memory-side cache of dirty data
CN117742652B (zh) 一种基于动态窗口统计的memory带宽优化装置及方法