TW527540B - Prioritized bus request scheduling mechanism for processing device - Google Patents

Prioritized bus request scheduling mechanism for processing device Download PDF

Info

Publication number
TW527540B
TW527540B TW089127868A TW89127868A TW527540B TW 527540 B TW527540 B TW 527540B TW 089127868 A TW089127868 A TW 089127868A TW 89127868 A TW89127868 A TW 89127868A TW 527540 B TW527540 B TW 527540B
Authority
TW
Taiwan
Prior art keywords
array
flag
register
patent application
item
Prior art date
Application number
TW089127868A
Other languages
English (en)
Inventor
David L Hill
Derek T Bachand
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TW527540B publication Critical patent/TW527540B/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/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Small-Scale Networks (AREA)
  • Selective Calling Equipment (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Train Traffic Observation, Control, And Security (AREA)
  • Digital Computer Display Output (AREA)
  • Image Processing (AREA)

Description

527540 五、發明說明(1) 發明背景 本發明是關於使用在處理裝置及其他代理之排程器。 眾所周知,很多現代計算系統皆使用多重代理架構,典 型的系統如圖1所示。圖中,複數個的代理1 1 〇 一 1 6 0根據 預定的匯流排通訊協定在外部匯流排1 7 0上通訊,"代理" 可能包含通用處理器1 1 0 — 1 4 0、記憶體控制器1 5 0、介面 晶片集160、輸入輸出裝置和/或其他積體電路(無標示) 來處理資料要求。匯流排1 7 0可容許多個外部匯流排交易 同時進行處理。 在多重代理系統,外部匯流排1 7 0的頻寬可界定系統效 能的限制。代理内的時鐘速度通常較外部匯流排的時鐘速 度快上許多。例如在某一段時間内,處理器核心(無標示) 可發出多個資料要求(讀取要求及寫入要求),而外部匯流 排1 7 〇則僅執行一單獨要求。此外,一代理更必需與其他 代理共同分旱匯流排1 7 0。這些因素都會對代理内處理資 料要求的過程產生不必要之潛伏期。 ' 並非所有資料要求皆是平等產生的。現在,本發明的受 讓人一 一英代爾公司,正從事一種代理的設計,此代理將 處理核心的讀取要求、預取要求以及寫入要求。核心讀取 要求乃代理之處理核心(π核心π )對己定址的資料提出^取 的要求,通常核心讀取要求會識別代理即時所需的資f。 相對來說,預取要求則涉及那些核心似乎在短期内^會用 到的資料;在核心實際發出讀取要求之前,預取進入二理 的貧料儲存於内部快取記憶體,並成為核心可用的資料。
第5頁 527540 五、發明說明(2) 内部快取記憶體以快於外部匯流排的時鐘速度運作,因此 能減短潛伏期以滿足預期的核心要求。寫入要求通常用 識別那些要從代理回傳至系統儲存裝置的資料;這些資 因為代理不再需要而將被驅逐’而代理則會讀取新資料並 取代其原先所佔用的記憶體位置。至於其他資料要求則盥 其他優先化條件相聯。 〃 為了對外部匯流排施以頻寬限^,以及觀察到代理内所 要處理之不同資料要求間的相對優先化條件,發明者 這裡需要一種匯流排控制演算法之技藝,此技藝根據預定 的優先化方案來排行要告示在外部匯流排的要求。 發明概述 本發明的具體實施例提供一儲存需要排程的資料之排程 器。此排程器可包含一陣列,該陣列將根據 案來識別序列輸入項間的相對優先化條件;以及一優先化 暫存器陣列’ &陣列則根據第二優先化方案來識別序列輸 )項間的相對優先化條件。另有複數個相器耦合至該陣 列及。亥4先化暫存器陣列,用以確定所要排程的料。 圖式之簡短說明 、 :1為-適合本發明具體實施例之多重代理計算機系統 万塊圖。 圖2為根據本發明的具體實施例,說明—處理器體 實施例。 圖3為-根據本發明的具體實施例之外部異動佇列方塊 圖〇 527540 五、發明說明(3) 圖4為一根據本發明 圖。 的具肢實施例之優先化矩陣方塊 圖5為一根據本發明 流程圖。 的一體實施例之異動佇列處理方法 圖6為一根據本發明的另— 方塊圖。 種具體實施例之優先化陣列 圖7為一根據本發明呈 說明優先化矩陣陣列之宜、一-汽施例之方塊圖,此方塊圖 通訊。 呆一列’與相聯旗標偵測器之間的 發明之詳細説明 本舍明的具體實施例,摇 易管理系统使用。# % '、棱先化排私器給代理的交 定眾多要Γ :可包含一優先化矩陣…確 優先化要告示在外部匯流排上。此 二ίϊ;Γ子中之要求的帳戶。優先化矩陣亦可包ί4 對陣列應用最高優先:非;:ί—,求時,優先化矩陣會 之要求,將合+ $、,#、罩,瑕早且與要求型態相聯 肝a被識別出來亚進行排程。 圖2乃根據本發明的具體實^ ^ ^ ^ ^ ^ ^ 2 0 0。交易管理器本質上A P 4 兄明父易官理系統 一 kkg 尽上為已知,可能包含一仲裁哭21 η 240和一外邱薙^ 勒彳τ列23〇、一外部異動佇列 不 外部匯流排控制器2 5 0。伸哉哭9 ! η桩a " 源送來的要卡加M > 作裁器21 0接收從不同資 = 、又或者是外部異動仔列24。 、i之要求包含代表產生型態 要衣代碼,而如果合適的 527540
話,還會5含識別所要執行之要求,其資料的位址。仲裁 器2 1 0把這些要求作優先化處理,並以優先化後的順序來 實施。 、 快取記憶體220可能是内部記憶體。典型的,快取記憶 體22ϋ ί統Γ快取記憶體,其儲存指令資料和變數資料 稱 資料)。由仲裁器21Q送來的要求將會輸入快取記憔 體2 20和内部異動佇列“ο。對於讀取要求,快取記憶體心 2 2 0可包含控制邏輯(無標示)來確定被要求的資料是否存 於其内;如果是,則該要求便被稱為”命中”快取記憶體 0,,快取§己憶體2 2 〇就會透過一通訊路徑(同樣無標示)把 貝料提供給核心。不然,則該要求便被稱為,,未中"快取記 憶體。快取記憶體2 2 G也可透過線路2 2 2通知内部異動件列 2 3 0命中或未中的結果。 内部異動佇列2 3 0可包含控制電路與缓衝記憶體來處理 仲裁器2 1 0送來的要求。仲裁器2丨〇發出的每一要求皆置於 内部異動佇列2 3 0内。内部異動佇列2 3 〇亦同時接收來自快 取記憶體22 0的命中/未中指示符。假如一要求命中快取 冗憶體22 0,則當該已序列之要求前進離開内部異動佇列 2 3 0 %,序列2 3 0準許其終結。但假如要求未中快取記憶體 220,則會透過從外部記憶體(無標示)取回所需資料來&完 成該要求。在這一例子,當要求前進離開内部異動佇列 2 30時,内部異動佇列23〇引發其進入外部異動佇列24〇。 同樣的,外部異動佇列24〇可包含控制電路與緩衝記憶 體。按照處理器内所發出的序列要求,其將使外部匯流排
第8頁 527540 五、發明說明(5) 交易告示在外部匯流排1 70上。外部異動佇列240可透過外 部匯流排控制器2 5 0來控制匯流排1 7 0之運作。典型的,一 種匯流排通訊協定會定義給匯流排1 7 0、外部異動佇列2 4 0 及控制器2 5 0,此通訊協定將控制它們之間信號之產生與 接收。 在另一實施例中,内部異動佇列2 3 0以及外部異動佇列 2 4 0可被單一序列取代。因此,圖2亦把内部異動符列2 3 0 與外部異動佇列2 4 0包含於單一之π異動佇列”内來說明。 本發明的原理皆可應用在以上兩種具體實施例。
典型的,一次讀取資料的外部匯流排交易,將引發預定 單位大小的資料被處理器讀取。例如,單一的匯流排交易 將引發6 4個位元組的資料被處理器讀取。這種單位大小通 常被稱為”快取列”;不同的系統擁有不同大小的快取列。 所以,雖然處理器需要的資料可能僅是快取列之某一部 分’但卻會讀取整個快取列。處理器會從快取列儘量取用 本身程式流程所需要的資料。
本發明的具體實施例可提供交易管理系統2 〇 〇 一預取序 列2 6 0。預取序列2 6 0將監視仲裁器21〇發出的要求,並且 確定讀取要求有否顯現出一種或多種預定型樣。當核心發 出一系列讀取要求至順序的記憶體位置(例如·· A,a + 1, ^+2,或B,B 一1,B —2),此可能表示核心正進行處理一 糸列有規則的、順序的指令或資料。假如任何型樣被識別 出來’預取序列2 6 0會發出一要發出之讀取要求,此讀取 要求會在需要同樣資料的核心要求前產生。預取會對改善
第9頁 527540 處 前 資 以 發明說明(6) 里二效此方面有所貢獻,因為在核心2 〇 〇要求資之 料巴資料儲存於快取記憶體22"。當核二… 使用次:f料已存於快取記憶體22 0中,則在核心200 ^ ^用[核心_不需再被迫等待外部匯流排交易 圖3為根據本發明的具體實施例,所引伸之代理 動佇列—3 0 0方塊圖。外部異動佇列3〇〇可能包含—控制器、 0、複數個的序列暫存器32Q —0至32〇 —7(集體標示為 、以及一優先化矩陣33〇。雖然在圖3中標示出八個暫
存器32 0,但根據本發明的原理,暫存器數量的多寡可視 需求而定。 控制器3 1 0中介外部異動佇列3 〇 〇至代理内其他元件。控 制器310可引發交易進入序列暫存器32〇或從其中移除,也 可把資料寫入其攔位。控制器3丨〇亦可把要告示在外部匯 流排1 7 0 (圖1)上的交易排行次序。在一具體實施例,控制 器3 1 0可以是一種狀態機器。 暫存器3 2 0可於異動仔列3 〇 〇儲存序列相關資料。每一序 列暫存器3 2 0可由多個攔位構成,並包含一位址欄位3 4 0、 一第一狀態欄位3 5 0以及一第二狀態欄位3 6 0。狀態欄位 3 4 0、3 5 0可儲存關於各別交易之管理資訊。所以,每一序 列暫存器3 2 0維護一對外部匯流排交易之資料是可行的。 位址欄位3 4 0可識別要求所指向的一外部記憶體位址範 圍。 狀態欄位3 5 0、3 6 0可識別關於各別交易之管理資訊。例
第10頁 527540 五、發明說明(7) ' ~- 如,狀態欄位3 5 0、3 6 0可識別交易狀態一〜嬖如說, 交易正等待在外部匯流排上告示,或已經告示了 ,或易 已接收到快取記憶體一致性結果,又或交易已完成 的’當狀態欄位3 50、3 6 0 —同指示各別交易已完成,交' 將會從暫存器3 20中清除。 勿 暫存32 0亦可承載資訊,無論在狀態搁位或盆他地 方,這些資訊可分辨出暫存器間何者儲存讀取要求、何 fd寫入要求,以及何者儲存有效資肖、何者可用來配置 新貧料。 如前討論,異動佇列3 0 0之具體實施例可儲存一對外 匯流排交易之資料於每一暫存器32 0。此雙 用:執行資料"盲預取"之代^當一核心讀取要求引發適從 外:記憶體讀取資料之動料,盲預取將引發相鄰記憶體 位;且的貝枓同時,代理讀取。通常,核心會使用複數個同 ,:己憶體位置的資料。透過預取相鄰記憶體位置的資料, 貝料將置於較快的内部快取記憶體,且為可用的,核心可 攸預取位置取用需要的資料。因此,盲預取可改善代理效 能。 〜在盲預取系統中,控制器3丨〇會接收核心讀取要求的資 料,輸入適當貧料至位址攔位34〇,以及狀態欄位35〇、 3 6 0之一。然後控制器3丨〇則輸入盲預取資料至狀態欄位 3 j 0、3 餘下者。如圖· 3所示,狀態欄位3 5 〇、3 6 〇被標示 來反映父易中何者為與核心要求相關、何者為與盲預取要 求相關。所以,當核心要求儲存於異動佇列3 0 0時,盲預
527540 五、發明說明(8) ------- :要2也隨其同時儲存於異動佇列3。〇内。在圖3的例子 二曰存1§32〇 — 〇、32〇〜1、3 20 -3、3 2 0 - 6 和 3 2 0 - 7 說明核 心項取要求盥盲:¥ 爻J /、售預取要求間可能的組合。 異動 >[宁列3 Q Q亦y (| ^ ,, j儲存預取要求發出的,,圖型化預取要求 Μ料。在一圖别 >(卜& π 〇 匕預取系統中,控制器3 1 0接收型樣化預 彳°號輸入適當資料至位址欄位3 4 0,以及狀態欄 位 3 6 〇之。控制器3 1 0本身亦增加盲預取予圖型化 預求’亚輸入盲預取相聯資料至狀態欄位3 5 0、3 6 0餘 I比炎在此例中,暫存器狀態欄位3 5 0、3 6 0會識別兩種要 二白:、、預取要求。在圖3的例子中,暫存器3 2 0 - 4和3 2 0 - 5 η月由圖型化預取要求與盲預取要求如何儲存於異動佇列 3 0 0 中。 根據本發明的具體實施例,優先化矩陣330確定告示在 外部^流排上的指令之行程。在第一具體實施例中,優先 化矩陣3 3 0使核心讀取要求優先於預取要求(兩種皆可), 預取要求優先於寫人要求。根據本發明的另一種具 趾只施例,優先化矩陣3 3 〇確定核心内配置之暫存器的行 程0 圖4為根據本發明的具體實施例,說明優先化矩陣4〇〇。 優先化矩陣4GG由陣列41〇、核心讀取遮罩42Q、預取讀取 =13〇於、寫入遮罩440與旗標福測器450構成。陣列41〇識 7,、動仔列3 0 0 (圖3)内儲存的各種要求之相對時齡。核心 讀取遮罩42 0識別儲存在異動仵列内尚未告示至外部匯流 排的核心讀取要求。預取遮罩43〇識別儲存在異動佇列内
第12頁 527540 五、發明說明(9) " ' --- =未告示至外部匯流棑的預取要求。寫入遮罩44〇識別儲 存j異動佇列内尚未告示至外部匯流排的寫入要求。在具 體貝施例中,核心讀取遮罩4 2 0、預取讀取遮罩4 3 〇、 遮罩400各別可為暫存器。 "、、 對於一N暫存器異動佇列來說,優先化矩陣4〇〇可包含n 乘N陣列410。陣列内每一位置儲存一代表兩暫存器間相 $先化條件之旗標,旗標列與各別暫存器3 2 〇 (圖3 )相聯。 當旗標被設定於某一列,此指示出其他暫存器儲存的要求 皆較與此列相聯的儲存中之要求早。因此,在圖4的例子 中,如旗標被設定於列〇,則代表儲存於暫存器3 2 〇 — 〇的要 求較異,動佇列3 0 0 (圖3)内其他地方所儲存的要求都晚。圖 4中’列之時齡順序以括號標示於每一列旁。此例中,列& 的旗標識別其為最早的儲存中之要求,列3的旗標識別其 為最晚的儲存中之要求。 ’、 陣列4 1 0的行可與其他暫存器相聯。例如,行〇與暫存器 3 2 0 - 0 (圖3 )相聯。旗標可被設定於陣列41 〇行0,而其他列 則指示出其他暫存器與暫存器3 2 0 - 0間之相對優先化條 件。例如,圖4中標示旗標被設定於列1、3、5及6與行〇交 會的位置,表示對應於暫存器(暫存器3 2 0 - 1、3 2 0-3、 320 -5、3 20 -6)的要求較儲存於暫存器3 2 0- 0的要求來得 晚。 核心讀取遮罩4 2 0由複數個旗標、異動佇列内任一暫存 器3 2 0構成。核心讀取遮罩4 2 0内每一位置與陣列41 0的各 別行相聯。核心讀取遮罩42 0的旗標識別儲存在暫存器320
第13頁 527540 五、發明說明(ίο) 内,尚未告示至外部匯流排的核心讀取 4的例子n。讀取遮罩識別儲存 Hi。在圖 32H、32。—3、32"以及32。_7的核心讀取二0、 圖3提供的例子吻合。 受木。此例與 預取遮罩43 0由複數個旗標、異動佇列内任 構成。預取遮罩内每一位置與陣列41〇的各別行::器32。 取遮罩430的旗標識別儲存在暫存器32〇内,尚 '預 部匯流排的核心預取要求為何者。在圖4的例子中二至外 預取要求儲存在暫存器32〇_〇、32。_丨、32〇_3成 320-5、3 20-6以及320_7内。根據本發明的具體實施例 預取遮罩43G不需分辨型樣化預取要求與盲預取要求。, 寫入遮罩440同樣由複數個旗標、異動佇列内任—斬 器構成。寫人遮罩㈣内每-位置與陣列41()的各曰子 聯。寫入遮罩440的旗標識別儲存在暫存器32〇内 示至外龍流排的寫人要求為何1。圖 未。 在暫存器32 0-2内的寫入要求。 两〜储存 根據一具體實施例,核心讀取遮罩42〇、預取遮罩43〇鱼 寫入遮罩440的旗標位置用來與陣列41 〇各別行的旗標位置 互相通訊。例如,各遮罩42〇—44〇的行〇用來與陣列41〇行〇 ^所有旗標位置互相通訊。根據一具體實施例,無論核心 喟取遮罩42 0、預取遮罩430或寫入遮罩44〇的旗標狀態皆 可在一相對應旗標位置使旗標失能。典型的,在同一時 内,遮罩42 0-440中只有一可賦能。此原理將會詳加討論 如下。
527540 五'發明說明(11) 優$化矩陣4 0 0包含旗標偵測器45〇、陣列41〇内任一 列三每一旗標偵測器4 5 0從陣列4 1 0内相聯列的旗標位置接 收第一輸入。每一旗標偵測器45〇亦從每一遮罩42〇—44Q的 預疋旗標位置接收一輸入。如一旗標偵測器4 5 〇偵測不到 陣列41 0内相聯列的旗標,但卻從任一遮罩42〇 — 44〇中積測 到有效旗標,則其會產生一有效輸出。再次的,在一具體 實施例中,同一時間内,遮罩42〇-44〇 t只有一可賦能, 只有一旗標偵測器45 0會產生一有效輸出。此有效輸出會 識別出異動佇列下一會排程的儲存t之要求。 根據一具體實施例,遮罩420 -44 0會根據相對優先化方 案來賦能。例如,核心讀取要求優先於預取要求,以及預 取要求優先於寫入要求。要實施此優先化方案,控制邏輯 (無標示)可識別核心讀取遮罩42 0有否儲存任何旗標,如 有的話,則核心讀取遮罩420賦能,而其他遮罩43〇、44〇 則使其失能。核心讀取遮罩4 2 0的内容確定陣列4 1 〇内的旗 標為何者,如有任何旗標,則使其失能。核心讀取遮罩" 4 2 0的内容亦可能輸入至偵測器4 5 〇。預取遮罩4 3 〇及寫入 遮罩4 4 0的内容將不被準許去影響陣列4 1 〇或偵測器4 5 〇之 運作。 假如核心讀取遮罩4 2 G並未儲存任何旗標,控制邏輯會 確定預取遮罩4 3 0有否儲存任何旗標。如有的話,則預取 遮罩4 3 0赋能’核心讀取遮罩4 2 0及寫入遮罩4 4 〇則使其失 能。預取遮罩430的内容會應用在陣列41〇去使某些旗標失 能。預取遮罩4 3 0的内容亦可能輸入至偵測器μ 〇。
第15頁 527540 五、發明說明(12) 假如核心讀取遮罩4 2 0及預取遮罩4 3 0並未儲存任何旗 標,則寫入遮罩440賦能。寫入遮罩440的内容會應用在陣 列410去使其内某些旗標失能。寫入遮罩440的内容亦可能 輸入至旗標偵測器4 5 0。 透過提供遮罩(如核心讀取遮罩4 2 0 )内容至偵測器,該 遮罩可防止旗標偵測器45 0對遮罩4 20無法辨識的要求類型 產生一有效輸出。在圖4的例子中,雖然儲存於列4的要求 為異動彳宁列(圖3)中最早的,但此要求並非核心讀取要求 (因在核心讀取遮罩行4中並無設定旗標)。因此,其他某 些暫存器所儲存最早的核心讀取要求,會優先於與列4相 聯的要求。透過輸入核心讀取要求行4的内容至與行4相聯 之旗標偵測器450,^標偵測器450將會被禁止產生一有效 輸出信號。 根據一具體實施例,當遮罩420-440應用在陣列41 0,遮 罩旗標會引致陣列内旗標失能。使陣列旗標失能可防止其 相聯之旗標偵測器4 5 0接收到該旗標;即便該旗標已設 定。考慮圖3的例子,如前所論,核心讀取遮罩4 2 0防止旗 標偵測器4 5 0識別列4為最早的要求,因為列4並未與核心 讀取要求相聯。列2所識別的第二早要求,同樣是與寫入 要求相聯,所以核心讀取遮罩4 2 0也防止了旗標偵測器4 5 0 與列2相聯而產生一有效輸出信號。優先化矩陣4 0 0所識別 出最早之核心讀取要求,其實乃全部要求中的第三早,即 列7所識別的。因此,旗標偵測器4 5 0識別暫存器3 2 0 - 7儲 存了下一排程指令。
第16頁 527540 五、發明說明(13) 當核心讀取遮罩4 2 0應用在陣列4 1 0,核心讀取遮罩4 2 0 確定旗標的那一行需賦能,餘者全部失能。在圖4的例子 中,在行0、1、3、6及7的旗標賦能,在行2、4及5的旗標 失能。因此,當核心讀取遮罩4 2 0應用在陣列41 0時,列7 的兩個旗標失能;因該等旗標並未在核心讀取遮罩4 2 〇相 對應的位置設定。於是,對應列7之旗標偵測器4 5 0便產生 一有效輸出信號。 當預取遮罩430或寫入遮罩440應用在陣列41〇時,旗標 之失能就像前面對核心讀取遮罩42 〇的描述一般。 因此,優先化矩陣40G之具體實施例,提供陣列41〇來維 濩一異動佇列3 0 0 (圖3 )内各部分要求之時齡的絕對帳戶。 各種遮罩準許優先化矩陣4〇〇按要求類型來優先化那些要 求"奐言之’不管是核心讀取要求、預取要求或寫入要 求。 當要求儲存至異動佇列3 0 0或從其中清除一二 °當w接收到一新要4 儲暫存 充分地把對庫士 i ΐ 佇列内最晚的要求,故月 :=之列(列3)的旗標全部設定。 暫存器便被清除。於/存器的要求已完成後, 設。透過清除對應行的旗標二應;^的旗標全部重 易’如陣㈣。所代表,時齡均會:已上除指令晚的交 527540 五、發明說明(14) 前述討論所介紹之陣列4 1 〇為一儲在始 娘械目一^ , 城存旗標的正規化N乘N 很據一具體η施例’陣列4 1 〇實咚 士 ΛΑ + d n k上包含的旗標位 陣列 置數,少於一真正的N方陣。圖4%明、才1工;^的旗標位 上的母一位置一一即位置(〇,0),(1,n,(2, Τ ή π,趵皆為Χ。陣列410主對角線上並不需要提供旗標位 置,因為暫存器不用記錄本身時齡之優先化條件。因此, 使用11正規化陣列”或類似的言詞,只是意欲表明1為一真 正正規化且為Ν乘Ν之陣列。除了主對角線外,旗標位置;f 存於陣列内任何地方。 圖5根據本發明的具體實施例,說明異動佇列3 〇 〇之作業 1 0 0 0之處理方法。當異動佇列3 0 0決定新要求要告示至外、 部匯机排時,其將決定異動佇列内有否非告示性的核心讀 ,要求(步驟101 〇)。如有,則異動佇列將對陣列使用核心 續,遮罩(步驟1 0 2 〇 ),並對儲存於已識別之暫存器内的核 心讀取要求進行排程(步驟1 0 3 0 )。 使Ϊ Ϊ ί動佇列並未存有任何非告示性的核心讀取要求, 了如^疋異動佇列内有否非告示性的預取要求(步驟1 〇4〇) 已4別二!! ΐ動彳宁列將對陣列使用預取遮罩,並對儲存於 } 曰子器内的預取要求進行排程(步驟1 0 5 0 - 1 〇 6 〇 決ΐ = = = = :任何非告示性的預取要求’其將 有,則 有否非告不性的寫入要求(步驟1 0 7 0 )。如 別之暫存對陣列使用寫人遮罩,1㈣存於已識 的寫入要求進行排程(步驟丨〇 8 〇 -丨〇 9 〇 )。依 第18頁 527540
據步驟1 0 3 0、1 〇 6 〇、1 〇 9 〇的結果, 存 或假如異動佇列並未 07’則方法1 ο〇〇結 有任何非告示性的寫入要求(步驟1 束。 =排程環境之應用例也符合本發明的原理。例如, 示至外部匯流排之要求夕卜,異動仔列亦與代理: 八他凡件通訊(譬如核心),以協助此等元件管理資料
很多讀取要求會需要元件為其新接收的資料配 這裡,儲存新接收的資料至暫存器稱為” ,要一次資料填充的讀取或預取要求稱為" ^要求。可是,有些要求需要在資料填充前,先把儲 ^子^"已配置之暫存器的資料驅逐。這種要求則稱為"驅逐 f、,,。因為先作資料驅逐而後填充,其處理時間較單獨 的貝料填充久,所以為了滿足對這些通訊排程之目的,里 動佇列會置驅逐要求優先於資料填充。本發明的原理可應 用在此實施例中。 圖6為根據本發明的另一種具體實施例,說明優先化矩 陣500。優先化矩陣5 0 0包含陣列51〇、核心讀取遮罩52〇、 預取遮罩5 3 G、寫人遮罩5 4 G與旗標偵測器5 5 Q。核心讀取 遮罩520、預取遮罩5 3 0、寫入遮罩54〇可組成一優先化暫 存P車列5 6 0 °在某一 % ’優先化暫存器陣列中的遮罩 520 540,其中僅有一者為有效的。這些元件可依循之前 描述的具體實施例來運作。 圖6的具體實施例還包含一第二優先化暫存器陣列57〇, 其又包含驅逐遮罩580及填充遮罩59〇。如之前各個具體實
第19頁 527540 五、發明說明(16) 施例所論’在某一刻,優先化暫存器陣列5 7 〇中的遮罩 580 590 ’其中僅有一者為有效的。對應於異動符列中每 暫存器’遮罩580-590各包含一旗標位置。每一遮罩之 旗標位置用來與陣列41 0的對應行互相通訊。 驅逐遮罩58 0之旗標會識別異動佇列暫存器32〇 (圖3)有 否儲存驅逐要求。根據一具體實施例,當對應的驅逐要求 已被告示在外部匯流排後,驅逐遮罩5 8 〇會設定旗標。對 於待決中的驅逐要求並不需要設定旗標。 填充遮罩5 9 0之旗標會識別異動佇列暫存器3 2 〇 (圖3 )有 否儲存填充要求。根據一具體實施例,當對應的填充要求 已被告示在外部匯流排後,填充遮罩5 9 〇會設定旗標。不 同的是,在交易對相關驅逐要求安排通訊後,對於此驅逐 要求’填充遮罩5 9 0會設定旗標。 。優先化暫存器陣列5 〇 〇尚可包含一組與第二優先化暫存 抑陣列5 7 0相聯之旗標偵測器6 〇 〇。每一旗標偵測器⑽〇會 接收彳文陣列5 1 〇相聯列傳來的第一輸入,以及從第二優先 =暫f器陣列5 7 〇内有效遮罩5 8 0或5 9 0之相聯旗標位置傳 =的第二個輸入。旗標偵測器可從第二優先化暫存器陣列 接收有效旗標,但不能偵測陣列51〇内,可產生有效輸 出信號的有效旗標。異動佇列3 0 0 (圖3)透過暫存器3 20與 有效旗標偵測器6 0 0相聯來通訊。 哭在$ 一組旗標偵測器550或第二組6〇〇内的每一旗標偵測 器,皆透過一獨立的通訊路徑(圖6中無標示)與陣列51〇内 相聯列之旗標位置聯繫。
心/MO 五、發明說明(17) 本發明之原理可作f隹一 用途,優先化矩陣可===步的延伸。只要符合本發明的 視所需而定。根據數量之優先化暫存器陣列, 的有效輸出信號,合盥=例,一組旗標偵測器所產生 處理。因此,當多重^ &偵測器所產生的信號平行 陣列時,其皆為^行化方案使用在多重優先化暫存器 圖7為一根據本發明的呈者 中列71 0(圖6之列2)盥相鹋f %例之方塊圖,說明陣列 訊。關於旗標偵測^^2() f標偵測器72〇、730之間的通 内,列的每一旌根據—具體實施例,該陣列 一單獨的平行資;;=旗標偵測器720間,均包含 74。、75。。傳輸閑74。:、;5;2徑上可能設有傳輸閘 各別相聯旗標控制。 一 ° !由優先化暫存器陣列内之 陣列傳來的旗標,把浐;,態了,由各別優先化暫存器 而防止抓旗、75G改變成非傳導的,從 在另一狀態下,由夂入相聯旗標福測器720、730 ° 傳輸間740改變成由可^先化暫存器陣列傳來的旗標,把 入相聯旗標偵测器m 從而容許列川把旗標狀態輸 先列中的-列咖一)、優 720。之一旗標1^ ’將直接輸入相聯旗標偵測器 為第’第一優先化暫存器陣列之旗標2標示 I旗桿2枵W則ν器72〇的輸入,而第二優先化暫存器陣列 桿第二旗標偵測器73〇的輸入。所有其他的旗 ^ k控制傳輪閘。因此,如圖7的例子所示,第一優先化
第21頁 527540 五、發明說明(18) 暫存器陣列之旗標0-1及3-7控制相聯於列710之旗標位置 0- 1及3-7的傳輸閘。同樣的,第二優先化暫存器陣列之旗 標0-1及3-7控制相聯於列710之旗標位置0-1及3-7的傳輸 閘。 本發明的許多具體實施例已在這裡作出明確的說明與描 述。然而,可理解的,在不違背本發明的精神與預期範圍 下,本發明的修改例及變形例皆涵蓋於前述教義中,且均 在隨附申請範圍内。
第22頁 527540 圖式簡單說明
第23頁

Claims (1)

  1. W7540 六、申請專利範圍 1 * 一種排程器,包含: 供需要排程之資料 一根據第一優先化方 化條件之陣列,以及 一根據第二優先化方 化條件之優先化暫存器陣 複數個偵測器耦合至 2 ·如申請專利範圍第j 維陣列。 3 ·如申請專利範圍第i 器陣列包含複數個遮罩暫 第二優先化方案内每一 ^ 4 ·如申凊專利範圍第3 之輪入項用來與偵測器互 相對應行互相通訊。 5 ·如申請專利範圍第3 等複數個遮罩暫存器内容 器的控制邏輯。 6 ·如申請專利範圍第1 在輪入端偵測到從優先化 測不到該陣列的旗標時, 7 ·如申請專利範圍第j 一根據第三優先化方 化條件之第二優先化暫存 二 使用的記憶體, 案來識別序列輸入項間相對優先 案來識別序列輸入項間相對優先 列,以及 該陣列及優先化暫存器陣列。 項之排程器,其中該陣列為一 項之排程器,其中該優先化暫存 存器,该專遮罩暫存器的每一與 先狀態關聯。 項之排程器,其中遮罩暫存器内 相通訊’以及陣列内之輸入項的 項之排程器,進一步包含依據該 來有選擇的啟動其中一遮罩暫存 項之排程器,其中每一偵測器如 暫存器陣列傳來的旗標,但卻偵 會產生有效輸出。 項之排程器,進一步包含: 案來識別序列輸入項間相對優先 器陣列,以及
    第24頁 527540
    一第二複數個偵測器 化暫存器陣列。 其耦合至該陣列及該第二優先 8· 一種外部異動彳宁列,包含: 相關資料 複數個序列輸入項,用以儲存待決要求的 一優先化矩陣,包含: 列,及 一識別序列輸入項内之資料 之相對時齡的時齡陣 要求類型使 應於各別序 内相對應之 一優先化暫存器 用的遮罩暫存器,每一 列輸入項之旗標位置, 序列互’相通訊。 陣列’其具有供複數個 遮罩暫存器都具有相對 该旗標位置用來與陣列 陣9進一如:Λ專第1 2 3 4 5 6 7 8項之異動件列…該優先化矩 :-二一與相對應之序列輪入項關聯的旗標债測 益’母一旗軚偵測器用來與該時齡陣列内之序列的欄互相
    第25頁 1 0'如申請專利範圍第9項之異動佇列,其中該優先化 2 暫存器陣列之旗標位置應用在時齡陣列,以防止該旗標積 3 測器偵測時齡陣列内之旗標,但設定於該優先化暫存器陣 4 列内相對應之旗標位置的旗標除外。 5 11·如申請專利範圍第9項之異動佇列,其中每一旗標 6 #'測1§用來與該優先化暫存器陣列内相對應之旗標位置互 相通訊。 7 12·如申請專利範圍第8項之異動佇列,每次只能用某 8 遮罩暫存器’而根據按要求類型定義之預定優先化方 527540
    木,此一遮罩暫存器會成為最高非空暫存哭 13.如申請專利範圍第8項之異動佇列,。進— ::優先化暫存器陣列’具有複數個暫-步包含 要處理之驅逐要求與資料填充要求關··:二異動们 T標位置相對應於各別序列輸入項,言玄 暫存器, 陣列内相對應之輸入項。 T位置耦g 所 有 至 14· 一種外部異動佇列,包含·· 複數個序列輸入項用來儲存待決要求的相 一優先化矩陣,包含: 關資料 列,及 識別序列輸入項内 + 一優先化暫存器陣列,其具有供異動件 之資料填充要求與驅逐要求使用的遮罩暫存器,所要處 暫存器都具有相對應於各別序列輸入項之旗f U 一遮 位置用來與陣列内相對應之序列互相通訊。π ι,旗 1 5·如申請專利範圍第1 4項之異動佇列,其中节 ^陣進一步包含一與相對應之序列輸入項關聯的^债 时’母一旗標偵測器用來與該時齡陣列内之序列之互 通訊。 16·如申請專利範圍第丨5項之異動佇列,進一步包含 $合至該等旗標偵測器之控制器,當驅逐要求之遮罩暫 器使用在陣列時,控制器通知核心一資料驅逐要求,以 應旗標偵測器之輸出。 17·如申請專利範圍第1 5項之異動佇列,其中該優先 理 罩 標 化 相 存響 化
    第26頁 527540 六、申請專利範圍 暫存器陣列之旗標位置應用在時齡陣列,以防止該旗標偵 測器偵測時齡陣列内之旗標,但設定於該優先化暫存器陣 列内相對應之旗標位置的旗標除外。 18. 如申請專利範圍第1 5項之異動佇列,其中每一旗標 偵測器用來與該優先化暫存器陣列内相對應之旗標位置互 相通訊。 19. 如申請專利範圍第1 4項之異動佇列,其中在每次只 啟用某一遮罩暫存器,而根據按要求類型定義之預定優先 化方案,此一遮罩暫存器會成為最高非空暫存器。
    20. 一種供處理核心讀取要求、預取要求及寫入要求之 代理使用的排程方法,包含: 假如代理具有待決之核心讀取要求,則排程最早之核 心讀取要求; 否則,假如代理具有待決之預取要求,則排程最早之 預取要求, 否則,假如代理具有待決之寫入要求,則排程最早之 寫入要求。
    21. 如申請專利範圍第2 0項之方法,進一步包含,在第 一排程步驟前: 對暫存器實施旗標偵測,以識別代理是否存有非告示 性之核心讀取要求,以及 除非該旗標僅被識別為奉行上述實施步驟,否則確定 核心有無待決之核心讀取要求。 2 2.如申請專利範圍第2 0項之方法,進一步包含,在第
    第27頁 527540 六、申請專利範圍 一排程步驟前: 對暫存器實施旗標偵測,以識別代理是否存有非告示 性之預取要求,以及 除非該旗標僅被識別為奉行上述實施步驟,否則確定 核心有無待決之預取要求。 23. 如申請專利範圍第20項之方法,進一步包含,在第 一排程步驟前: 對暫存器實施旗標偵測,以識別代理是否存有非告示 性之寫入要求,以及
    除非該旗標僅被識別為奉行上述實施步驟,否則確定 核心有無待決之寫入要求。 m
    第28頁
TW089127868A 1999-12-28 2000-12-26 Prioritized bus request scheduling mechanism for processing device TW527540B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/474,010 US6499090B1 (en) 1999-12-28 1999-12-28 Prioritized bus request scheduling mechanism for processing devices

Publications (1)

Publication Number Publication Date
TW527540B true TW527540B (en) 2003-04-11

Family

ID=23881855

Family Applications (1)

Application Number Title Priority Date Filing Date
TW089127868A TW527540B (en) 1999-12-28 2000-12-26 Prioritized bus request scheduling mechanism for processing device

Country Status (10)

Country Link
US (5) US6499090B1 (zh)
EP (2) EP1242894B1 (zh)
KR (1) KR100604220B1 (zh)
CN (1) CN1316392C (zh)
AT (2) ATE478379T1 (zh)
AU (1) AU1627101A (zh)
DE (2) DE60044851D1 (zh)
HK (2) HK1051726A1 (zh)
TW (1) TW527540B (zh)
WO (1) WO2001048617A2 (zh)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6499090B1 (en) * 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices
US6826644B1 (en) * 2000-08-10 2004-11-30 Serverworks Corporation Peripheral component interconnect arbiter implementation with dynamic priority scheme
US6604160B1 (en) * 2000-09-28 2003-08-05 International Business Machines Corporation Computing system arbitrating and selectively providing resource-seeking tasks with takeaway of non-shareable resources
US7752400B1 (en) * 2000-12-14 2010-07-06 F5 Networks, Inc. Arbitration and crossbar device and method
US6996120B2 (en) * 2001-03-14 2006-02-07 Siemens Communications, Inc. Methods for improving bus performance and bandwidth utilization of a parallel bus LAN
US7305008B2 (en) * 2001-03-14 2007-12-04 Siemens Communications, Inc. Parallel bus LAN
US7107386B1 (en) 2001-08-08 2006-09-12 Pasternak Solutions, Llc Memory bus arbitration using memory bank readiness
US6804738B2 (en) * 2001-10-12 2004-10-12 Sonics, Inc. Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US7194561B2 (en) * 2001-10-12 2007-03-20 Sonics, Inc. Method and apparatus for scheduling requests to a resource using a configurable threshold
US7143157B2 (en) * 2002-03-25 2006-11-28 Hewlett-Packard Development Company, L.P. Managing the network impact of a digital transmitter
US6732242B2 (en) 2002-03-28 2004-05-04 Intel Corporation External bus transaction scheduling system
US7058937B2 (en) * 2002-04-12 2006-06-06 Intel Corporation Methods and systems for integrated scheduling and resource management for a compiler
DE10218646A1 (de) * 2002-04-25 2003-11-13 Infineon Technologies Ag An einen Bus angeschlossene Einrichtung
US20040059879A1 (en) * 2002-09-23 2004-03-25 Rogers Paul L. Access priority protocol for computer system
US6941428B2 (en) * 2002-09-25 2005-09-06 International Business Machines Corporation Memory controller optimization
US6931493B2 (en) * 2003-01-16 2005-08-16 International Business Machines Corporation Implementation of an LRU and MRU algorithm in a partitioned cache
US7062582B1 (en) 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
US8386648B1 (en) 2003-06-26 2013-02-26 Nvidia Corporation Hardware support system for accelerated disk I/O
WO2005015805A2 (en) * 2003-08-08 2005-02-17 Visionflow, Inc. Software and hardware partitioning for multi-standard video compression and decompression
US8683132B1 (en) 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US7665069B2 (en) * 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US8504992B2 (en) 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US8356142B1 (en) * 2003-11-12 2013-01-15 Nvidia Corporation Memory controller for non-sequentially prefetching data for a processor of a computer system
US8700808B2 (en) * 2003-12-01 2014-04-15 Nvidia Corporation Hardware support system for accelerated disk I/O
US7543142B2 (en) 2003-12-19 2009-06-02 Intel Corporation Method and apparatus for performing an authentication after cipher operation in a network processor
US20050149744A1 (en) * 2003-12-29 2005-07-07 Intel Corporation Network processor having cryptographic processing including an authentication buffer
US7512945B2 (en) 2003-12-29 2009-03-31 Intel Corporation Method and apparatus for scheduling the processing of commands for execution by cryptographic algorithm cores in a programmable network processor
US7529924B2 (en) * 2003-12-30 2009-05-05 Intel Corporation Method and apparatus for aligning ciphered data
US8243744B2 (en) * 2004-03-01 2012-08-14 Futurewei Technologies, Inc. Priority sorting
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US7441087B2 (en) * 2004-08-17 2008-10-21 Nvidia Corporation System, apparatus and method for issuing predictions from an inventory to access a memory
US8624906B2 (en) * 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7739436B2 (en) * 2004-11-01 2010-06-15 Sonics, Inc. Method and apparatus for round robin resource arbitration with a fast request to grant response
US8698817B2 (en) 2004-11-15 2014-04-15 Nvidia Corporation Video processor having scalar and vector components
JP4305378B2 (ja) * 2004-12-13 2009-07-29 ソニー株式会社 データ処理システム、アクセス制御方法、その装置およびそのプログラム
US8065457B2 (en) * 2005-09-09 2011-11-22 Advanced Micro Devices, Inc. Delayed memory access request arbitration
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US7616218B1 (en) * 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives
US8593474B2 (en) * 2005-12-30 2013-11-26 Intel Corporation Method and system for symmetric allocation for a shared L2 mapping cache
US7461216B2 (en) * 2006-02-23 2008-12-02 Hewlett-Packard Development Company, L.P. Memory controller
US20070255613A1 (en) * 2006-05-01 2007-11-01 International Business Machines Corporation Method and apparatus for execution of a process
US8543792B1 (en) 2006-09-19 2013-09-24 Nvidia Corporation Memory access techniques including coalesing page table entries
US8601223B1 (en) 2006-09-19 2013-12-03 Nvidia Corporation Techniques for servicing fetch requests utilizing coalesing page table entries
US8352709B1 (en) 2006-09-19 2013-01-08 Nvidia Corporation Direct memory access techniques that include caching segmentation data
US8347064B1 (en) 2006-09-19 2013-01-01 Nvidia Corporation Memory access techniques in an aperture mapped memory space
US7870459B2 (en) * 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US8700883B1 (en) 2006-10-24 2014-04-15 Nvidia Corporation Memory access techniques providing for override of a page table
US8707011B1 (en) 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
US8706975B1 (en) 2006-11-01 2014-04-22 Nvidia Corporation Memory access management block bind system and method
US8347065B1 (en) * 2006-11-01 2013-01-01 Glasco David B System and method for concurrently managing memory access requests
US8504794B1 (en) 2006-11-01 2013-08-06 Nvidia Corporation Override system and method for memory access management
US8607008B1 (en) 2006-11-01 2013-12-10 Nvidia Corporation System and method for independent invalidation on a per engine basis
US8533425B1 (en) * 2006-11-01 2013-09-10 Nvidia Corporation Age based miss replay system and method
US8700865B1 (en) 2006-11-02 2014-04-15 Nvidia Corporation Compressed data access system and method
US8868397B2 (en) 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
US20080162735A1 (en) * 2006-12-29 2008-07-03 Doug Voigt Methods and systems for prioritizing input/outputs to storage devices
JP4410270B2 (ja) * 2007-04-17 2010-02-03 株式会社東芝 バス制御装置
JP4710024B2 (ja) * 2007-06-20 2011-06-29 富士通株式会社 キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US7923341B2 (en) * 2007-08-13 2011-04-12 United Solar Ovonic Llc Higher selectivity, method for passivating short circuit current paths in semiconductor devices
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8308545B2 (en) * 2007-11-09 2012-11-13 Wms Gaming Inc. Wagering game with enhanced player-selection bonus feature
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US7734854B2 (en) * 2008-01-04 2010-06-08 International Business Machines Corporation Device, system, and method of handling transactions
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8356128B2 (en) * 2008-09-16 2013-01-15 Nvidia Corporation Method and system of reducing latencies associated with resource allocation by using multiple arbiters
US8370552B2 (en) * 2008-10-14 2013-02-05 Nvidia Corporation Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
CN101510164B (zh) * 2009-03-25 2013-05-22 北京中星微电子有限公司 一种多业务调度方法、装置与系统
US8698823B2 (en) * 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
EP2387200B1 (en) 2010-04-23 2014-02-12 Compuverde AB Distributed data storage
US8775754B2 (en) * 2011-06-24 2014-07-08 Arm Limited Memory controller and method of selecting a transaction using a plurality of ordered lists
US8490107B2 (en) 2011-08-08 2013-07-16 Arm Limited Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US8650365B2 (en) * 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US8856459B1 (en) * 2011-12-07 2014-10-07 Apple Inc. Matrix for numerical comparison
US9148384B2 (en) * 2012-02-10 2015-09-29 Hewlett-Packard Development Company, L.P. Posted and unencumbered queues
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
CN102799487A (zh) * 2012-06-29 2012-11-28 记忆科技(深圳)有限公司 基于阵列/lun的io调度方法及装置
US9612972B2 (en) * 2012-12-03 2017-04-04 Micron Technology, Inc. Apparatuses and methods for pre-fetching and write-back for a segmented cache memory
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US20140250272A1 (en) * 2013-03-04 2014-09-04 Kabushiki Kaisha Toshiba System and method for fetching data during reads in a data storage device
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
KR101993028B1 (ko) 2015-02-05 2019-06-26 에스케이하이닉스 주식회사 메모리 컨트롤러
JP2017027479A (ja) * 2015-07-24 2017-02-02 富士通株式会社 データ読出し方法及び情報処理システム
CN107193761B (zh) * 2016-03-15 2021-07-27 厦门旌存半导体技术有限公司 队列优先级仲裁的方法与装置
US11874782B1 (en) * 2018-07-20 2024-01-16 Robert Gezelter Fast mass storage access for digital computers
US11288199B2 (en) 2019-02-28 2022-03-29 Micron Technology, Inc. Separate read-only cache and write-read cache in a memory sub-system
US10908821B2 (en) 2019-02-28 2021-02-02 Micron Technology, Inc. Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system
US10970222B2 (en) 2019-02-28 2021-04-06 Micron Technology, Inc. Eviction of a cache line based on a modification of a sector of the cache line
US11106609B2 (en) 2019-02-28 2021-08-31 Micron Technology, Inc. Priority scheduling in queues to access cache data in a memory sub-system
US11507522B2 (en) * 2019-12-06 2022-11-22 Advanced Micro Devices, Inc. Memory request priority assignment techniques for parallel processors
US10963402B1 (en) * 2019-12-28 2021-03-30 Advanced Micro Devices, Inc. Using age matrices for managing entries in sub-queues of a queue

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2587229B2 (ja) * 1987-03-11 1997-03-05 日本テキサス・インスツルメンツ株式会社 アービタ回路
US4958820A (en) * 1987-08-20 1990-09-25 Minolta Camera Kabushiki Kaisha Sheet storing apparatus for copying machine
US5222223A (en) 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
US5168570A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Method and apparatus for a multiple request toggling priority system
US5535395A (en) 1992-10-02 1996-07-09 Compaq Computer Corporation Prioritization of microprocessors in multiprocessor computer systems
US5586294A (en) 1993-03-26 1996-12-17 Digital Equipment Corporation Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
US5537573A (en) 1993-05-28 1996-07-16 Rambus, Inc. Cache system and method for prefetching of data
US5524220A (en) * 1994-08-31 1996-06-04 Vlsi Technology, Inc. Memory subsystems having look-ahead instruction prefetch buffers and intelligent posted write buffers for increasing the throughput of digital computer systems
US5761706A (en) 1994-11-01 1998-06-02 Cray Research, Inc. Stream buffers for high-performance computer memory system
US5638534A (en) * 1995-03-31 1997-06-10 Samsung Electronics Co., Ltd. Memory controller which executes read and write commands out of order
US5701426A (en) 1995-03-31 1997-12-23 Bull Information Systems Inc. Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio
JPH08328941A (ja) * 1995-05-31 1996-12-13 Nec Corp メモリアクセス制御回路
WO1996041271A1 (en) 1995-06-07 1996-12-19 Advanced Micro Devices, Inc. Programmable bus arbiter including real time priority indicator fields for arbitration priority selection
US5740399A (en) 1995-08-23 1998-04-14 International Business Machines Corporation Modified L1/L2 cache inclusion for aggressive prefetch
US5790813A (en) * 1996-01-05 1998-08-04 Unisys Corporation Pre-arbitration system allowing look-around and bypass for significant operations
US5761452A (en) 1996-03-18 1998-06-02 Advanced Micro Devices, Inc. Bus arbiter method and system
US6272600B1 (en) * 1996-11-15 2001-08-07 Hyundai Electronics America Memory request reordering in a data processing system
US6178466B1 (en) * 1998-06-12 2001-01-23 Unisys Corporation System for maximizing bandpass on an interface directly coupling two units where the interface has independently operative data and address interconnections, and computer sysem employing same.
US6286083B1 (en) * 1998-07-08 2001-09-04 Compaq Computer Corporation Computer system with adaptive memory arbitration scheme
US6499090B1 (en) 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices
JP3839288B2 (ja) * 2001-09-12 2006-11-01 株式会社ルネサステクノロジ メモリカード

Also Published As

Publication number Publication date
ATE504041T1 (de) 2011-04-15
US6782457B2 (en) 2004-08-24
US7133981B2 (en) 2006-11-07
HK1051726A1 (en) 2003-08-15
CN1382276A (zh) 2002-11-27
EP2157515B1 (en) 2011-03-30
WO2001048617A2 (en) 2001-07-05
US20050268051A1 (en) 2005-12-01
US6606692B2 (en) 2003-08-12
US7487305B2 (en) 2009-02-03
WO2001048617A3 (en) 2002-01-31
US20030018863A1 (en) 2003-01-23
EP2157515A1 (en) 2010-02-24
US6499090B1 (en) 2002-12-24
DE60044851D1 (de) 2010-09-30
EP1242894B1 (en) 2010-08-18
KR100604220B1 (ko) 2006-07-24
HK1141603A1 (en) 2010-11-12
CN1316392C (zh) 2007-05-16
DE60045804D1 (de) 2011-05-12
KR20020069186A (ko) 2002-08-29
US20070094462A1 (en) 2007-04-26
ATE478379T1 (de) 2010-09-15
US20030196050A1 (en) 2003-10-16
EP1242894A2 (en) 2002-09-25
AU1627101A (en) 2001-07-09

Similar Documents

Publication Publication Date Title
TW527540B (en) Prioritized bus request scheduling mechanism for processing device
US8180974B2 (en) System, apparatus, and method for modifying the order of memory accesses
US8266389B2 (en) Hierarchical memory arbitration technique for disparate sources
US7284102B2 (en) System and method of re-ordering store operations within a processor
JP5118199B2 (ja) マルチスレッドおよびマルチコア・システムのためのキャッシュ、および、その方法
US5265233A (en) Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
US8352712B2 (en) Method and system for specualtively sending processor-issued store operations to a store queue with full signal asserted
US20080189501A1 (en) Methods and Apparatus for Issuing Commands on a Bus
TW200417913A (en) Microprocessor including cache memory supporting multiple accesses per cycle
US9311244B2 (en) Enforcing ordering of snoop transactions in an interconnect for an integrated circuit
US20020188807A1 (en) Method and apparatus for facilitating flow control during accesses to cache memory
EP1668513B1 (en) Cache bank interface unit
KR100282118B1 (ko) 하이스루풋단일포트다중갱신유니트태그제어기
US7552247B2 (en) Increased computer peripheral throughput by using data available withholding
Comisky et al. A scalable high-performance DMA architecture for DSP applications
US5926840A (en) Out-of-order fetching
CN114721996B (zh) 一种分布式原子操作的实现方法与实现装置

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees