TWI261166B - Free list and ring data structure management - Google Patents

Free list and ring data structure management Download PDF

Info

Publication number
TWI261166B
TWI261166B TW092122128A TW92122128A TWI261166B TW I261166 B TWI261166 B TW I261166B TW 092122128 A TW092122128 A TW 092122128A TW 92122128 A TW92122128 A TW 92122128A TW I261166 B TWI261166 B TW I261166B
Authority
TW
Taiwan
Prior art keywords
usa
buffer
memory
data
queue
Prior art date
Application number
TW092122128A
Other languages
English (en)
Other versions
TW200406672A (en
Inventor
Gilbert Wolrich
Mark B Rosenbluth
Debra Bernstein
John Sweeney
James D Guilford
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
Publication of TW200406672A publication Critical patent/TW200406672A/zh
Application granted granted Critical
Publication of TWI261166B publication Critical patent/TWI261166B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9031Wraparound memory, e.g. overrun or underrun detection

Description

I26ll66 故、發明說明: 【發明所屬之技術領域】 本申請專利案係關於自由表與環形資料結構之管理 【先前技術】 網路處理器可藉由在鏈結 動態地緩衝資料封包。與一 送後’该緩衝器可返回一池 可用緩衝器。 記憶體緩衝器内儲存接收資料 特足緩衝為相關連之資料已傳 ,稱為「自由表」,其中儲存 ,網路處理器亦可使用靜態配置(例如預定記憶體緩衝器)緩 衝資料封包。環形資料結構包括此類預定記憶體位置。一 指標可用以追蹤環形資料結構之插入位置。另一指標可用 以追縱環形資料結構之移除位置。 有效官理大量池及緩衝器可為網路處理器操作及成 的重要因素。 【發明内容】 、二,圖1 ’用於處理資料封包之網路系統1〇包括資料封包 :=2丄其搞合至網路裝置14之輸入,例如連接其他網 塔裝置 < 介面。網路奘署、 置14<輛出耦合至資料封包之目的 地16,例如連接其他網路裝置之介面。 一網路處理器18,豆且右阳 置 匕括 ^ 有用以以記憶體資料結構操作的記 fe體。處理器執行指人分”、 -^ A ^ ^ ^ 7並以圯憶體資料結構操作,其組態 汉疋為貝料封包儲存 接收之资# # 6 A ^务土特足目的地。網路處理器 按收足貝枓封包為網 ^ Ά -V' 、己。網路衣置14可例如包括網路 父換或網路路由器或、 '、/、<邯分。資料封包12之源極可包 87304 1261165 括藉由以南資料封包傳送線速率操作之通信路徑連接至其 他網路裝置的介面,例如光學載體丨〇十億位元線(即〇c_ 1 92)或其他線速率。資料封包之目的地丨6可包括相同的網 路連結或介面。 參考圖2,網路處理器1 8具有多個程式設計引擎,其分別 執行接收管線2 1、傳送排程器24、仵列管理器27及傳送管 線28之功能。每個程式設計引擎具有多項目内容可定址記 fe 體(content addressable memory; CAM),用以追縱 N個最 近使用佇列描述符,其中N為CAM内項目之數量。例如, 仔列管理器27包括CAM 29。網路處理器丨8包括記憶體控制 為34 ’其耦合至第一記憶體3〇及第二記憶體32。第三記憶 體17包括用以使引擎以如下所詳述之方式操作的軟體指 令。儘管所說明之實施例使用分離記憶體,可使用單一記 憶體執行上述第一及第二記憶體之工作。記憶體控制器34 以接收他們的順序啟動彳宁列命令,並與彳宁列管理器2 7交換 資料。第一記憶體30具有用以儲存資料之記憶體空間。第 一 € te體32耦合至彳宁列管理器27及網路處理器1 8的其他組 件。 【實施方式】 如圖2所示,第一記憶體3〇及第二記憶體32駐存於網路處 理器18外部。或者,第一記憶體3〇及/或第二記憶體32可在 網路處理器1 8内部。處理器丨8亦包括連接接收匯流排及傳 送匯流排(其耦合至接收及傳送緩衝器2〇、36)的硬體介面 87304 1261166 接收、、爰衝為20組悲設定為緩衝自資料封包源極丨2接收的 資料封包。每個資料封包可包含一真實資料部分,代表傳 运至目的地的實際資料,一源極資料部分,代表資料源極 網路位址,以及一目的地資料部分,代表資料目的地之網 各U址。接收管線2 1耦合至接收緩衝器2〇之輸出。接收管 線21亦耦合至接收環22,其可具有先進先出(first_in_first_ ut,FIFO)貝料結構。接收環22|馬合至彳宁列管理哭27。 接收g線2 1組悲設定為處理來自接收緩衝器2〇之資料封 包,並在第二記憶體32記憶體位址38包括的資料緩衝器内 儲存資料封包。接收管線21藉由接收環22向佇列管理器27 提出請求23,以便在佇列末端附加一緩衝器。 —貝料封包由接收管線21處理,接收管線可產生針對 件列管理器27的進入许列請求23。接收管線21可包括以管 線万式工作的多重執行線程程式設計引擎。迎擊接收封 包,將其分類並根據分類儲存於輸出传列。此接收處理決 足用於每個封包之輸出挣列。藉由管線作業,程式設㈣ 擎可執行指令執行之第一階段,當指令傳送至下一階段, 可啟_指令。等待第—指令完成時處理器不必間置。因 ^ S、泉作業可導致系統性能改進。進入停列請求代表 加-緩衝描述符之請求,其向第—記憶體㈣緩衝描 辦列内最後緩衝描述符描述—新接收緩衝器。 21可在產生進入件列請求前緩衝幾個封包。同時,所產生 進入佇列請求之總數可減少。 傳送排程器24藉由接收環如合至㈣管理器27,並負 87304 1261166 貝根據特定標準產生㈣列請求25。此類標準可包括當特 4列緩衝器内緩衝器數量到達預定水準時的時間。傳送 f衫傳送封包之順序。㈣列請求25代表從挣列 8私除第-緩衝器之請求。傳送排程器⑽包括用以產生 ^丁列請求25之排程演算法,例㈤「循環」、優先基礎或 tr程演算法。傳送排程器24組態可設定為使用擁擠避 免二支術,例如隨機預先偵測(咖⑽⑽吻; )其包括用於封包流量之計嘗絲斗 個停列保持-位元,其表示該侍:是否V空。…器為每 式:==27,其在一實施例中由單一多重執行線程程 :二、處理ΐ自接收管線21之進入_青求及 個、’态24《出佇列請求。佇列管理器27藉由為每 個仔列保持鏈結表資料結構提供動態記憶體配置。 作列管理器27包括軟體组件’其组態設定為管理描料 ―丁列:資料結構快取記憶體(「仵列描述符」)。如 不’仔列描述符46a包括頭指標心,其指向仔列第—项Α, 尾指標5—〇b’其指向侍列最後項C,以及計數欄50c,々亍 數Γ用於全部㈣插述符之頭指標位:字 時使用二的冪運作更有效。 仔歹】篇迷付 參:圖2’快取記憶體具有一標籤部分⑷及一 一。快取記憶體之標鐵部分44a位於仵列管 予 二,快取記憶體之資料儲存部分州位於記憶體控制: 。標鐵部分44_CAM 29管理,其可包括硬體組件了里 87304 1261166 組怨設定為實施一快取記憶體項目替換政策,例如最不常 用(least recently used ; LRU)政策。絲記憶體内每—項: 標籤部分參考用以執行進入仵列或出侍列操作的最後N個仔 列描述符之一。記憶體内佇列描述符位置作為CAM項目儲 ^對應㈣描述符在進人CAM之位址料於記憶體控制 益34<資料儲存部分44b。置於佇列的實際資料(例如,包 括於圖3之記憶體位址38&至38〇内)儲存於第二記憶體= 内’並由位於第—記憶體30内之緩衝描述符(例如48:列 仔列管理器27可替代性地維修進人㈣請求及幻宁列姓 求。對於單-緩衝器封包,進人㈣請求參考資料儲存: 分桃内項目之尾指標。出仵列請求參考資料儲存部分桃 :項目之頭指標。由料取記憶體包括有效更新侍列描述 符,當需要對相同仵列之接近同時進入侍列及出㈣操作 時,可不需要將存取鎖定於-㈣描述符。因此可避免隨 附鎖定之原子存取及潛時。 資料儲存部分4仆保持—特定數量之最近使用(m〇s recenUy used ;卿)㈣插述符46表。每個㈣描述符自 括對應緩衝描述符48 MRU侍列之指標。—項實施例中,$ 料儲存部分44b内MRU仵列描述符46數量為十六。每個刪 传列描述符46由位於標籤部分…内的一組指標45參考。^ 外’每個MRW列描述符46可與—唯—識別符相關連1 便其可預先識別。 標籤邵分44a中第― 參考圖3,說明快取記憶體之操作 87304 -10- 1261166 項與指標4 5 a相關i牵,豆指* a ρ、λ、欠,, W關連,、知向K於資料儲存部分44b内之 麵挣列描述符46a。仵列插述符46a與緩衝描述符術之 MRLM宁列相關連,以下將詳細說明之。仔列描述符恤包括 頭:標50a,其指向第一緩衝描述符A,及尾指標働,其指 向最後緩衝描料C。選擇性計數㈣e在緩衝描述符仏件 列内保持緩衝描述符數量。此㈣巾計數欄*設置為值 「3」,其代表緩衝描述符A、B及c。如以下所進一步詳 述,頭指標5〇a、尾指標50b及計數攔5〇c可依據進入佇列請 求及出佇列請求修正。 缓衝描述符係描述-緩衝器之資料結構、緩衝描述符可 包括一位址攔、一單元計數攔及封包末端(end 〇f packet; EOP)位元。位址欄包括資料緩衝器之記憶體位址。由於每 個資料緩衝器可進一步分為多個單元’單元計數攔包括關 於緩衝器單元計數之資訊。Ε〇ρ位元設置成表示緩衝器係 封包内最後緩衝器。 再參考圖2,本技術在可包括靜態隨機存取記憶體 (static random access memory ; SRAM)的第一記憶體 3〇 内緩 衝描述符位址及可包括動態隨機存取記憶體 random access memory ; DRAM)的第二記憶體32内資料緩衝 器位址之間實施隱含映射53。在這種情況下,佇列係緩衝 描述符之順序表,其描述可儲存於間斷性位址的資料緩衝 器。 例如如圖3所示,除佇列内最後緩衝描述符外,佇列 内每個緩衝描述符A、B包括指向佇列内下一緩衝描述符之 87304 11 1261166 缓衝描述符指標 衝描述符指標55c為NULL。 再參考圖2,非快取佇列描述符50儲存於第一記憶體% 内,目前不由資料儲存部分4仆參考。每個非快取佇列描述 符50亦可與唯一識別符相關連。此外,每個非快取佇列描 述符50包括指向緩衝描述符52對應非快取佇列之指標5 i。 如此,緩衝描述符52每個非快取佇列包括指向記憶體位址 3 8(位於第二記憶體32内)所包括之對應資料緩衝器的浐 57。 不 每個進入佇列請求包括與對應資料封包相關連之資料緩 位址38。此外’每個進入侍列或出侍列請求包括— 付’其指足與記憶體位址38所包括之資料緩衝器相關 I的非快取佇列描述符5〇或MRU佇列描述符46。 參考圖4及圖5,佇列管理器27依據接收進入佇列請求 23 ’產生100針對記憶體控制器处進入佇列命令η 入㈣請求23與記憶體位址_包括之隨後資 ::目關連’並在記憶體位址38c包括之資料緩衝器後 、入仔列命令13可包括指定位於資料错存部分44b内 <刪仔列描述符46的資訊。假定進入
Uh ArAr ^ P目求 2 3 包括 及與資料緩衝器相關連之位址的資 成。目“向佇列48a内緩衝器描述符 列管理器27。評估谁入广别社+、 7尾扣裇50b返回仔 s it 3 ^ 丁 '^求23以決定指定佇列描述符 目則疋口在/貝料儲存部分4仆 替代工作以下進—步說明。“執行U°替代工作。 87304 -12· 1261166 掛與緩衝描述符C相關連之緩衝描述符指標55e自NULL值改 ^ η又置102成才曰向隨後緩衝描述符D。其藉由將緩衝描述 仃扣払55c设置於緩衝描述符D之位址而完成。緩衝描述符 D指向記憶ff位址38d内資料緩衝器,其儲存接收資料封 包,如線53d所示。 /旦緩衝描述符指標w已設置,尾指標_即設置104成 才曰向虛線61所示之緩徐〆μ ^ ^ ^ 友衝描述付D。其猎由將尾指標5〇b設置 於緩衝描述符D之位址而完成。由於緩衝描述符D現在係传 列48a内最後緩衝描述符’緩衝描述符指標⑸之值為 nuu^此外,計數搁5〇c内之值更新為「4」,以反映㈣ 48L内緩衝描述符之數量。因&,緩衝描述符d藉由使用位 於資料儲存部分44b内的仵列描述符46a加人侍列術。 、若進入㈣命令13包括—㈣識別符,其指定不在刪 仔列描述符46内的㈣描述符,❹理器27以指定传列 描述符替代特定卿传列描述符46。因此,指定件列描述 付及對應非快取緩衝描述符佇列藉由資料儲存部分4仆參 考。此外’對於一進入仵列命令’與指定许列描述符相關 連的新參考緩衝描料52料更新為指向記憶體位㈣(儲 存接收資料封包)所包括特定資料緩衝器之記憶體位址。由 於作列描述符已在資料儲存部分44b内,MRU㈣描述符私 可迅速有效地更新。 參考圖6,處理器18可接收106與相同佇列描述符々Μ及广 列48a相關連之隨後進入佇列請求。例如’假定佇列管理Z 27接收與新到達資料緩衝器38e相關連之隨後進入1 : 1丁列泛目 87304 -13- 1261166 、二亦饭疋記憶體位址38e所包括之資料缓衝器與佇列描述 付46&相關連。尾指標5〇b可設置成指向緩衝器E,如虛線62 所=尾指標50b不必從記憶體取回即可更新,因為其已在 =料儲存部分44b内。因此,可減少對相同緩衝器佇列背對 背進入佇列操作之潛時。因此,佇列管理器可管理對大量 仔列< 4求以及僅對一些佇列或單一佇列之連續請求。另 外仔列言理器27發送命令,向記憶體控制器34指示使用 哪-個多資料儲存部分項目來執行命令。 多考固及圖8,仔列管理器27依據接收200出仵列請求 25 ’屋生200針對記憶體控制器34之出传列命令15。此範例 中,出许列請求與㈣描述符46a相關連,並代表自第二記 憶㈣取回資料緩衝器之請求。-旦取回資料緩衝器,其 可自^ €憶體32傳送至傳送緩衝器%。㈣列請求^包 括才曰疋仔歹】私逑付46a之資訊。例如,仵列描述符之頭 扎心5_日向第—緩衝描述符A,其依次指向記憶體位址w 内資料緩衝器。@ ρ 4 ,、 记fe目豆位址3 8a内資料緩衝器返回佇 列管理器27。 頭指標50a設置2〇2成指向佇列—内下一緩衝描述符B, 如虛線64所示。其可藉由將頭指標5〇a設置於緩衝b描述符 之位址而完成。計數攔5〇c内值更新為「4」,反映緩衝描 述符之剩餘數量。因此,記憶體位址…内包括之資 料緩衝器藉由使用位於資料儲存部分桃之仵列描述符恤 從仵列48a取回。 件列管理器27可接收204與相同传列描述符相關連之隨後 87304 -14- 1261166 出佇列請求25。例如假定件 _ Π ϋ、# . g理态27接收與佇列描述符 〇a相關連弋進一步出佇主 叫求25。參考圖9,如線64所 $ ’頭指標46a目前指向緩衝哭 1^ 的B,其現在係第一緩衝器, 口為對緩衝器A之先前參考已 一 扣 乂 夕除。頭指標50a可設置206成 曰向緩衝器C,如虛線65所 扣如 而不必首先從記憶體取回頭 守曰標5 0 a,因為其已名咨4iL右丘 / ”枓儲存邵分44b内。因此,可減少 對相同緩衝器传列背對# + 1丁〜θ對3出佇列操作之潛時。 」然而在二些情況中’目前佔據資料鍺存部分44卜項目之 込行6a並不與圮憶體位址3朴内資料緩衝器相關 連。㈣形中,處理器18執行2〇8與上述—項相同之替代工 作。-旦完成替代工作,則如上所述執行與出㈣請求相 關連之操作。 —丁歹】描€苻之快取記憶體可以分散式方式實施,使得標 藏P刀44a位万“己憶體控制器34内,且資料儲存部分桃位 於弟-記憶體3G内。記憶體位址38内包括之接收自接收緩 衝=20的資料緩衝器可迅速處理。例如,t用於該传列描 述符之頭指標作為頭指標之第一出佇列記憶體讀取結果更 新時’即可開始第二對出仔列命令。同樣,當用於該仵列 描迟符之尾和標作為尾指標之第一進入佇列記憶體讀取結 果t新時’即可開始第二對進入侍列命令。此外,使用緩 衝^彳宁列例如緩衝器鏈結表,可提供處理大量佇列之靈 活方法。貪料緩衝器可迅速進入佇列至緩衝器佇列及從緩 衝器佇列出佇列。 快取元憶體資料儲存部分44b之項目(並非用以儲存說明 87304 -15 - 1261166 資料缓衝器件列处播士次、 J、、、。構之貝訊)可用於儲存 或永久性常駐项目之自由表結構m ^作為非快取 取或永久性常駐目> *兄明作為非快 員目弋屺憶體環形結 為永久性常駐嚷目之日諸結構的資^’⑺說明作 組合。永久性常駐項目係 、些用法的任何 項目。 θ為新项目製造空間而移除之 自由表起當前未用緩衝器池之 置記憶體之系統用作緩衝储存哭。此自,表可由動態配 配置來自自“μ 相接收資料 時,根據需要從池中取—項目。 匕或早兀 時-項目返回、、也中’、匕或早兀傳送或廢棄 時,可利用出使用鏈結表資料結構實施自由表 命令從當前未用緩衝器侍列前部取-新 入β夫水’終止使用之緩衝器可利用進入佇列命令加 入*則未用緩衝器佇列末端。 太=’當使用堆叠資料結構實施自由表時,可為新接收 貝…二用爆出命令將新緩衝器從堆疊移除。可終止使用之 ’、犮衝态可利用推入命令加入堆疊。由於堆疊係後進先出 (last-m,first-out;LIFO)資料結構,緩衝器以與加入堆叠 相反《順序移除。最近加人堆疊之緩衝器係最先移除之 衝器。 圖10所示,未用於儲存MRU佇列描述符46之快取記憶 ,資料儲存部分4 4 b的大量項目1 4 6可用以儲存說明一個^ =個自由表結構之侍列描述符146a。—項實施例中,說明 資料儲存部分内資料緩衝器之佇列描述符46的數量為十 87304 -16- 1261166 K,快取記憶體資料儲存部分44b内項目總數為六十四。 用以儲存說明自由表結構之佇列描述符的資料儲存部分 員目146可為非快取或永久性常駐項目。因此,對於每個說 舄要儲存之自由表結構的仔列描述符,提取替代工作可 僅在系統初始化執行一,欠’將他們載入佇列資料儲存部分 項目之子集146。 么當緩衝器内包含之資料已傳送,即終止緩衝器之使用, 緩衝器返回自由表,補充當前未用緩衝器池。處理引擎執 行線程,例如提供佇列管理器27之執行線程,可產生針對 參考自由表項目146之記憶體控制器的進入佇列命令。 參考圖11 ’其說明快取記憶體之操作。此範例中,說明 自由表⑽結構之仵列描述符146a包括一頭指標15〇a,复 指向自由表第-緩衝器V,—尾指標簡,其指向自由表最 後緩衝HY ’以及—計數欄15Ge ’其保持自由表他緩衝器 =數量。此情形中,計數欄⑽設置為值「4」,代表緩衝 二、W、X及Y。如以下戶斤進一步詳述,頭指標150a、尾 指標150b及計數搁15〇。可依據與自由表相關連之進入佇列 及出佇列命令而修正。 自由表148a内每個緩衝器,例如第一緩衝器V,包含指诗 下一順序緩衝器W之緩衝哭沪栌〗办曰# 、 犮衝^^曰私1 55V。與取後緩衝器γ相齡 連之緩衝器指標155y且有_ w & Μτττ τ ^ y,、百汉置為NULL的一值,指示其為朽 列148a内最後緩衝器。 在圖12所示範例中,曰二 乾幻中目則指向緩衝器Y之尾指標15肋返0 佇列管理器27。目前盥缒备的 - /、、、爱衝為Y相關連之缓衝器指標1 55y包 87304 17. 1261166 3 NULL值,表示其為自由表148a内最後缓衝器。緩衝器 指標155y設置成指向隨後緩衝器z,其係正終止使用之緩衝 器。其可藉由將緩衝器指標155y設置於緩衝器z之位址而完 成。 一旦緩衝器指標1557已設置,尾指標15〇13即設置成指向 虛、、泉161所不足緩衝器Z。此可藉由將尾指標150b設置於緩 衝器z之位址而完成。此外,計數欄i5〇c内值更新為 5」,以反映自由表148&内緩衝器之數量。因此,緩衝器 Z精由使用位於資料儲存部分44b之佇列描述符146a加入自 由表148a。 當儲存及正向處理器接收新資料封包時,系統配置來自 自由表之緩衝器。 參考圖1 3,其說明快取記憶體之操作。此範例中,處理 引擎執行線程,例如提供佇列管理器27之執行線程,可產 生針對參考自由表項目之記憶體控制器34的出佇列命令。 出佇列請求與說明自由表146a結構之資訊相關連,並代表 自記憶體取回未用緩衝器之請求。—旦取回未用緩衝器, /、可彳疋记體傳送至接收緩衝器。出佇列請求25包括指定 自由表146a結構之資訊。說明自由表14以結構之資訊的頭 指標15〇a指向自由表内第一緩衝器v。因此,未用緩衝器v 返回彳宁列管理器。 參考圖14,頭指標150a設置成指向自由表14心内下一緩 衝為…,如虛線164所示。其可藉由將頭指標150a設置於緩 衝态W之位址而完成。計數欄15〇c内值更新為「4」,反映 87304 -18- 1261166 、、爰衝器(w至z)剩餘數量。因此,未 此禾用緩衝态V藉由使用說 明位於資料儲存部分44b内乏白士本 刀内乏自由表l46a結構的資訊從自由 83取回,並可由處理器使用以儲存新接收封包或單 元。 如上所述,參考說明快取記憶體内自由表結構之資訊的 進入件列操作係用以將緩衝器返回該自“。參考說明快 取繼内自由表結構之資訊的出传列操作係用以將緩衝 器從該自由表移除。使用本技術,處理器可藉由使用已用 於執行其他工作之硬體(例如,記憶體控制器、CAM)以有 效且低成本的方式管理大量自由表。 未用於儲存說明資料緩衝器㈣結構之資訊的快取記憶 肢貝料儲存邵分44 b的項目亦可田认μ 抑 ,、Θ不了用於官理環形資料結構。 於環形資料結構包括且有子g佘p 4 t 、 祜,、有預疋尺寸及位置之連續記憶體位 址區塊,其可用於靜態記憶體配置。 參考圖1 5,此技術定屢廿舍、A 、、 疋我並μ犯命令,其使用快取記憶體 、”料儲存α卩刀44b的項目246以儲存說明環3〇〇結構之資 訊。說明環結構之資訊⑽包括_頭指標⑽,其追縱插 入資料之記憶體位置_3, 一尾指標讓,其追蹤移除資 轴之記憶體位置0001,以及一選擇性計數欄25〇c,其追 蹤環300内項目數量。用 、、 双里用以储存祝明環結構之資訊的資料 存口P刀〈項目246可為非快取或永久性常駐項目。由於環形 、 尺寸典雨何時指標250a或250b指向環 末端之位址,其繞回環開始之位址。 程式設計引擎之内女π於4 士 内又了I迗一存進命令,使資料寫入環 87304 -19- 1261166 形資料結構。存進命令指定長度欄及頭指標,其中長度欄 指定為大量字元。 參考圖16,資料字元303在頭指標250a指示之位址〇〇〇3寫 入環。一旦資料字元已寫入位址〇〇〇3,頭指標25〇a設置成 指向下一記憶體位置0004,如虛線} 75所示。其藉由將頭指 才禾2 5 0 a汉置於兄丨$體位置〇 〇 〇 4而完成。此外,計數欄2 5 〇 c 内值更新為「3」,以反映環3〇〇内資料字元之數量。另 外,计數攔及狀態位元(指示是否有足夠記憶體可用於將指 定字元長度寫入環)返回發送存進命令之程式設計引擎内 文。因此,藉由使用說明位於資料儲存部分44b之環246a結 構的資訊,資料寫入環300。 程式設計引擎之内文可發送一讀出命令,使資料從環形 資料結構讀出。讀出命令指定長度欄及尾指標,其中長度 欄指定為大量字元。 參考圖17,資料字元301在尾指標25讣指示之位址〇〇〇1從 環讀出。一旦已讀取資料字元,尾指標25此設置成指向記 憶體位置0002,如虛線176所示。其藉由將尾指標2渴設置 T記憶體位置0002而完成。此外,計數攔乃…内值更新為 「2」,以反映環3〇〇内資料字元之數量。因此,藉由使用 說明位於資料儲存部分44b之環246a結構的資訊,資料從環 3_多除。若計數欄25〇c小於讀出命令指定之長度搁,識: 付(例如零f料字元’其表示環3⑽為幻返回發送讀出命令 之秸式設計引擎内文,且無資料從環移除。
由於網路處理器可包括多個程式設計引擎U 87304 -20- 1261166 行線程或内文’觀察編碼如何在任何單獨程式設 =㈣行線程上執行,及追縱不同程式設計引擎執行線 私關表彼此的進展可有助於網路虛 ^ ^ ]谷處理态上運行的除錯應用 私式。 本技術定義及實施一組曰誌登载命令,其提供一種觀寧 編碼如何在i统操作過程中執行之方法。本技術使用快取 =憶,之資料儲存部分44b的項目,其不用於儲存說明資料 ㈣讀列結構之資訊。這些項目用於管理實施成日誌的 壤形賴結構。每-個這些項目包括說明環結構之資訊。 如先前結合圖15至17所述,說明環結構之資訊包括一 頭指標25Ga,其追㈣人資料之位置,—尾指標纖,立 追蹤移除資料之位置,以及一選擇性計數攔We,其追縱 製成之日誌項目數量。由於程式執行過程中資料插入日誌 但無資料自日諸移除,對於此目的尾指標·較頭指標 心更有意義。用以支援_令之項目可永久性常駐於 資料儲存部分内。 儘管當到達程式預定位置時’執行程式可產生訊息,提 供關於執行内文之狀態的有用資訊,$以支援日德的指令 數量應係最小。另夕卜’用以支援日語的系統資源可干擾系 :即時程式設讎。因此,曰誌内資訊數量應與提供此 資訊所需之指令及週期數量平衡。 程式設計引擎内文可發送-日誌命令。日誌命令定義為 將長度攔指定之大量字元自記憶體暫存器移動至該日諸, 其中每個字元可包括三十二個日誌登载資訊位元。當到達 87304 -21 - 1261166 程式内預定檢查點時,日誌命令可用於將大量來自記憶體 暫存器之字元儲存於日諸。 journal_tag命令定義為將長度欄指定之大量字元自記憶 體暫存器移動至該日誌。每個字元包括三十二個日誌登載 資訊位元,其包括四個程式設計引擎識別位元,三個執行 線程識別位元及二十五個日誌登載資訊位元。因此, journal_tag命令可包括日諸命令提供之資料資訊,亦可包括 關於哪一個程式設計引擎及該程式設計引擎之哪一個内文 發送j〇urnal_tag命令之資訊。 fast Journal命令定義為將命令位址欄自記憶體暫存器移 動至日誌。由於全部命令具有一位址欄,fast_journal命令 提供關於到達除錯程式内哪一個命令或檢查點之資訊。 fast_journal_tag命令定義為將命令位址欄自記憶體暫存 器移動至日誌,其中每個字元可包括四個程式設計引擎識 別位元,三個内文識別位元及二十五個命令位址位元以指 示發送何命令。因此,fast」ournal_tag命令可包括 fast Journal命令提供之資料資訊,亦可包括關於哪一個程 式設計引擎及該程式設計引擎之哪一個内文發送命令之資 訊。 本技術可提供一種以有效及低成本方式實施精確追蹤系 統之方法,其係利用已用於執行其他工作之硬體。一項實 施例包括十六個程式設計引擎,每一個具有八項内文。該 實施例每個SRAM通道亦可包括六十四個資料儲存部分項 目,其中十六個用以儲存說明資料緩衝器佇列結構之資 87304 -22- 1261166 訊。由於每個SRAM通道可用以儲存說明日誌結構之資訊的 資料儲存部分項目多至四十八個,本技術可支援多個日 遠。其他實施例可在某些方面不同。 寫入實施環形資料結構之日誌的全部記憶體位置後,尾 指標繞回日誌開始位址繼續寫入資料。若環形資料結構完 王寫入,卩現後日德寫入操作將重寫先前寫 . 新資料將存在於環内。上述存進命令使用狀態 足夠仏體可用於將指定字元長度寫入環,將環形完全通 知返回發送存進命令之程式引擎内文。相比之下,若插入 指標超出移除指標,由於不需要等待,全部w命令完 成0 二、.死的各種功能可使用硬體、軟體或硬體及軟體的为 =施二如,本系統一些方面可使用由機器執娜 執中具有儲存指令,或者使用在可程式電腦或肩 序或物件導向程式” t二…使用高水準卷 .,q 弋1又计b έ貫施,與電腦系統通信。此 外,母個此類電腦程式可 般或特殊用途可程上锗存,例如可由一 、『私式电細I買取的唯讀記憶體 memory ; R〇m) 〇nly 作時组能m 電腦讀取以執行上述工 f f、、’且Μ及操作電腦。 其他具體實施例都屬 【圖式簡單說明】 甲-專利靶圍的靶嚀内。 圖1係說明知把& 已括g線網路處理哭,系 圖2係說明一示『卜…-《系統的万塊圖; β性官線網路處理器的方塊圖; 87304 -23 - 1261166 圖3係 範 性快取資料結構的 · 圖4係流程圖,說明根據—會施 圖, 求的流程; 例對一佇列之進入佇列請 圖5係顯示根據一實施例的進 列之進入佇列操 圖6係方塊圖,顯示根據一/列操作之方塊圖; 作後的進入侍列操作;⑽例對—件 圖7係流程圖,說明根據—實 的流程; j # 一作列之出佇列請求 圖8係顯示根據一實施例的出 圖9係方塊圖,顯示根據 :《万鬼圖’ 後的出仵列操作; …列對-仔列之出仵列操作 圖10係根據一實施例包括自 ^ ^ ^ m ^ 4-L 纪丨思體控制器-常駐指 ‘的快取資料結構之方塊圖; 圖11係根據一實施例包括進 ^ ^ ^ α 仔列操作前自由表記憶體 拴制备-吊駐指標的快取資料結構之方塊圖; 圖12係顯示根據一實施例對 4對自由表 < 進入佇列操作的方 塊圖; 圖13係根據一實施例包括+ 仔列操作前自由表記憶體控 制器-常駐指標的快取資料結構之方塊圖; 圖14係顯示根據一實施例對自由表之出仵列操作的方塊 圖; 圖15係根據一貫施例包括記憶體環形資料結構記憶體控 制為-常駐指標的快取货料結構之方塊圖· 圖16係說明根據一實施例之存進命令操作的方塊圖; 87304 24- 1261166 圖1 7係說明根據一實施例之讀出命令操作的方塊圖。 【圖式代表符號說明】 6 硬體介面 8 硬體介面 10 網路系統 12 源極 13 進入仔列命令 14 網路裝置 15 出传列命令 16 目的地 17 第三記憶體 18 網路處理器 20 接收緩衝器 21 接收管線 22 接收環 23 請求 24 傳送排程器 25 出佇列請求 27 佇列管理器 28 傳送管線 29 内容可定址記憶體 30 第一記憶體 87304 -25- 1261166 32 第二記憶體 34 記憶體控制器 36 傳送緩衝器 38 ?己憶體位址 45 指標 46 佇列描述符 48 緩衝描述符 50 非快取佇列描述符 52 缓衝描述符 53 隱含映射 57 指標 61 虛線 62 虛線 64 , 虛線 100 產生 102 設置 104 設置 106 接收 1《8 設置 lit) 執行 146 項目 161 虛線 164 虛線 87304.doc -26- 1261166 175 虛線 176 虛線 200 產生 202 設置 204 接收 206 設置 246 項目 300 環 301 資料 303 資料字元 38a 記憶體位址 38c 記憶體位址 38d 記憶體位址 38e 資料缓衝器 44a 標籤部分 44b 資料儲存部分 45a 指標 46a 4〒列描述符 48a 緩衝描述符 50a 頭指標 50b 尾指標 50c 計數欄 87304 -27- 1261166 55c 緩衝描述符指標 55d 緩衝描述符指標 146a 佇列描述符 148a 自由表 150a 頭指標 150b 尾指標 150c 計數搁 155v 緩衝器指標 1 5 5y 緩衝器指標 246a 資訊 250a 頭指標 250b 尾指標 250c 計數欄 A 第一項 C 最後項 E 緩衝器 V 第一緩衝器 W 緩衝器 Y 最後緩衝器 Z 緩衝器 87304 -28-

Claims (1)

  1. 1261166 發明專利說明書 (本說明書格式、順序及粗體字,請勿任意更動,※記號部分請勿填寫) ※申請案號: ※申請日期: 「…分類: 壹、發明名稱:(中文/英文) 自由表與環形資料結構之管理 FREE LIST AND RING DATA STRUCTURE MANAGEMENT 武、申請人:(共1人) 姓名或名稱:(中文/英文) 美商英特爾公司 INTEL CORPORATION 代表人··(中文/英文) 大衛赛門 DAVID SIMON 住居所或營業所地址:(中文/英文) 美國加州聖塔卡拉瓦市米遜大學路2200號 2200 MISSION COLLEGE BLVD. SANTA CLARA, CA 95052, U.S.A. 國籍:(中文/英文) 美國 U.S.A. 87304 1261166 參、發明人:(共5人) 姓名:(中文/英文) 1·吉伯特沃里齊 GILBERT WOLRICH 2·馬克Β·羅森布魯茲 MARK B. ROSENBLUTH 3·黛博菝伯恩思坦 DEBRA BERNSTEIN 4·約翰史威尼 JOHN SWEENEY 5.詹姆士 D.顧爾佛 JAMES D. GUILFORD 住居所地址:(中文/英文) 1.美國麻塞诸基州佛朗明罕市希德米爾路4號 4 CIDER MILL ROAD, FRAMINGHAM, ΜΑ 01701, U.S.A. 2·美國麻塞諸塞州優克司布利其市奎思特謬路4號 4 CRESTVIEW DRIVE, UXBRIDGE, ΜΑ 01569, U.S.A. 3·美國麻塞諸塞州沙德貝利市歐德蘭卡斯特路312號 312 OLD LANCASTER ROAD, SUDBURY, ΜΑ 01776, U.S.A. 4. 美國麻塞諸塞州哈佛市瑪帝根巷38號 38 MADIGAN LANE P.O. BOX 640? HARVARD, ΜΑ 01451, U.S.A. 5. 美國麻塞諸塞州諾茲玻羅市馬虛皮路17號 17 MASHPEE CIRCLE, NORTHBOROUGH, ΜΑ 01532, U.S.A. 國籍··(中文/英文) 1. 美國 U.S.A. 2. 美國 U.S.A. 3. 美國 U.S.A. 4. 美國 U.S.A. 5. 美國 U.S.A· 87304 1261166 肆、聲明事項: □本案係符合專利法第二十條第一項口第一款但書或□第二款但書規定之期 間,其日期為:年月日。 R1本案申請前已向下列國家(地區)申請專利: 1. 美國;2002 年 08 月 13 日;USSN 10/218,682 2. 3. 4. 5. $主張國際優先權(專利法第二十四條)·· 【格式請依:受理國家(地區);申請日;申請案號數順序註記】 1·美國;2002 年 08 月 13 日;USSN 10/218,682 2. 3. 4. 5. 二]主張國内優先權(專利法第二十五條之一): 【格式請依:申請日;申請案號數順序註記】 1. 2. ]主張專利法第二十六條微生物: □國内微生物【格式請依:寄存機構;日期;號碼順序註記】 國外微生物【格式請依:寄存國名;機構;日期;號碼順序註記】 □熟習該項技術者易於獲得,不須寄存。 87304
TW092122128A 2002-08-13 2003-08-12 Free list and ring data structure management TWI261166B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/218,682 US7337275B2 (en) 2002-08-13 2002-08-13 Free list and ring data structure management

Publications (2)

Publication Number Publication Date
TW200406672A TW200406672A (en) 2004-05-01
TWI261166B true TWI261166B (en) 2006-09-01

Family

ID=31714580

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092122128A TWI261166B (en) 2002-08-13 2003-08-12 Free list and ring data structure management

Country Status (6)

Country Link
US (1) US7337275B2 (zh)
EP (1) EP1604493A2 (zh)
CN (1) CN100499565C (zh)
AU (1) AU2003282676A1 (zh)
TW (1) TWI261166B (zh)
WO (1) WO2004015525A2 (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US7836228B1 (en) * 2004-06-18 2010-11-16 Oracle America, Inc. Scalable and lock-free first-in-first-out queue implementation
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
GB2393273A (en) * 2002-09-20 2004-03-24 Sharp Kk Method and apparatus for detecting an error in writing to persistent memory
US6889288B2 (en) * 2002-12-02 2005-05-03 Emc Corporation Reducing data copy operations for writing data from a network to storage of a cached data storage system by organizing cache blocks as linked lists of data fragments
CN1689284B (zh) * 2003-01-20 2010-04-28 富士通微电子株式会社 网络交换装置和网络交换方法
US7660908B2 (en) * 2003-05-01 2010-02-09 International Business Machines Corporation Implementing virtual packet storage via packet work area
US20050108713A1 (en) * 2003-11-18 2005-05-19 Geye Scott A. Affinity mask assignment system and method for multiprocessor systems
JP4536361B2 (ja) * 2003-11-28 2010-09-01 株式会社日立製作所 データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法
US7213099B2 (en) * 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
US7478374B2 (en) * 2004-03-22 2009-01-13 Intel Corporation Debug system having assembler correcting register allocation errors
US20060067348A1 (en) * 2004-09-30 2006-03-30 Sanjeev Jain System and method for efficient memory access of queue control data structures
US8190809B2 (en) * 2004-11-23 2012-05-29 Efficient Memory Technology Shunted interleave for accessing plural memory banks, particularly those having partially accessed cells containing data for cache lines
US7779198B2 (en) * 2004-11-23 2010-08-17 Efficient Memory Technology Method and apparatus of multiple abbreviations of interleaved addressing of paged memories
US7555630B2 (en) * 2004-12-21 2009-06-30 Intel Corporation Method and apparatus to provide efficient communication between multi-threaded processing elements in a processor unit
US20060140203A1 (en) * 2004-12-28 2006-06-29 Sanjeev Jain System and method for packet queuing
CN100370866C (zh) * 2005-03-02 2008-02-20 华为技术有限公司 无线网络控制器日志记录系统及其方法
US20060236011A1 (en) * 2005-04-15 2006-10-19 Charles Narad Ring management
US20060277126A1 (en) * 2005-06-06 2006-12-07 Intel Corporation Ring credit management
US20160098279A1 (en) * 2005-08-29 2016-04-07 Searete Llc Method and apparatus for segmented sequential storage
US8201172B1 (en) 2005-12-14 2012-06-12 Nvidia Corporation Multi-threaded FIFO memory with speculative read and write capability
US8429661B1 (en) * 2005-12-14 2013-04-23 Nvidia Corporation Managing multi-threaded FIFO memory by determining whether issued credit count for dedicated class of threads is less than limit
US20070245074A1 (en) * 2006-03-30 2007-10-18 Rosenbluth Mark B Ring with on-chip buffer for efficient message passing
US8458366B2 (en) * 2007-09-27 2013-06-04 Oracle America, Inc. Method and system for onloading network services
US7926013B2 (en) * 2007-12-31 2011-04-12 Intel Corporation Validating continuous signal phase matching in high-speed nets routed as differential pairs
US7591019B1 (en) 2009-04-01 2009-09-15 Kaspersky Lab, Zao Method and system for optimization of anti-virus scan
US9262554B1 (en) * 2010-02-16 2016-02-16 Pmc-Sierra Us, Inc. Management of linked lists within a dynamic queue system
KR20140106576A (ko) * 2011-12-14 2014-09-03 옵티스 셀룰러 테크놀리지, 엘엘씨 버퍼 리소스 관리 방법 및 원격통신 장비
CN102984089B (zh) * 2012-11-19 2018-09-28 中兴通讯股份有限公司 流量管理调度方法及装置
US9674086B2 (en) * 2013-11-05 2017-06-06 Cisco Technology, Inc. Work conserving schedular based on ranking
CN106126442A (zh) * 2016-06-17 2016-11-16 北京京坤倍益科技发展有限公司 一种数据存储结构和遥感卫星数据存储系统
CN106326397A (zh) * 2016-08-19 2017-01-11 东软集团股份有限公司 生成索引文件的方法及装置
US10298496B1 (en) * 2017-09-26 2019-05-21 Amazon Technologies, Inc. Packet processing cache
US10228869B1 (en) 2017-09-26 2019-03-12 Amazon Technologies, Inc. Controlling shared resources and context data
CN108496161A (zh) * 2017-09-29 2018-09-04 深圳市大疆创新科技有限公司 数据缓存装置及控制方法、数据处理芯片、数据处理系统
EP3487129A1 (en) * 2017-11-15 2019-05-22 InterDigital CE Patent Holdings Batch oriented service chaining method and corresponding devices and computer program
CN110716695A (zh) * 2019-09-12 2020-01-21 北京浪潮数据技术有限公司 一种节点日志的存储方法、系统、电子设备及存储介质
CN110993005B (zh) * 2019-12-11 2021-03-26 海光信息技术股份有限公司 电路结构、芯片、训练方法及训练装置
CN111124641B (zh) * 2019-12-12 2023-10-31 中盈优创资讯科技有限公司 一种利用多线程的数据处理方法及系统
US11681630B2 (en) * 2020-09-18 2023-06-20 Kioxia Corporation System and method for scaling command orchestration through address mapping

Family Cites Families (165)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3373408A (en) 1965-04-16 1968-03-12 Rca Corp Computer capable of switching between programs without storage and retrieval of the contents of operation registers
US3478322A (en) 1967-05-23 1969-11-11 Ibm Data processor employing electronically changeable control storage
BE795789A (fr) 1972-03-08 1973-06-18 Burroughs Corp Microprogramme comportant une micro-instruction de recouvrement
US3881173A (en) 1973-05-14 1975-04-29 Amdahl Corp Condition code determination and data processing
IT986411B (it) 1973-06-05 1975-01-30 Olivetti E C Spa Sistema per trasferire il control lo delle elaborazioni da un primo livello prioritario ad un secondo livello prioritario
FR2253415A5 (zh) 1973-12-04 1975-06-27 Cii
US3913074A (en) 1973-12-18 1975-10-14 Honeywell Inf Systems Search processing apparatus
US4045782A (en) 1976-03-29 1977-08-30 The Warner & Swasey Company Microprogrammed processor system having external memory
US4130890A (en) 1977-06-08 1978-12-19 Itt Industries, Inc. Integrated DDC memory with bitwise erase
US4392758A (en) 1978-05-22 1983-07-12 International Business Machines Corporation Underscore erase
US4189767A (en) 1978-06-05 1980-02-19 Bell Telephone Laboratories, Incorporated Accessing arrangement for interleaved modular memories
JPS56164464A (en) 1980-05-21 1981-12-17 Tatsuo Nogi Parallel processing computer
US4400770A (en) 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
CA1179069A (en) 1981-04-10 1984-12-04 Yasushi Fukunaga Data transmission apparatus for a multiprocessor system
US4569016A (en) 1983-06-30 1986-02-04 International Business Machines Corporation Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
US4868735A (en) 1984-05-08 1989-09-19 Advanced Micro Devices, Inc. Interruptible structured microprogrammed sixteen-bit address sequence controller
US4742451A (en) 1984-05-21 1988-05-03 Digital Equipment Corporation Instruction prefetch system for conditional branch instruction for central processor unit
US4777587A (en) 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses
JPS62103893A (ja) 1985-10-30 1987-05-14 Toshiba Corp 半導体メモリ及び半導体メモリシステム
US5021945A (en) 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US4745544A (en) 1985-12-12 1988-05-17 Texas Instruments Incorporated Master/slave sequencing processor with forced I/O
US4724521A (en) 1986-01-14 1988-02-09 Veri-Fone, Inc. Method for operating a local terminal to execute a downloaded application program
US5297260A (en) 1986-03-12 1994-03-22 Hitachi, Ltd. Processor having a plurality of CPUS with one CPU being normally connected to common bus
US4992934A (en) 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US5073864A (en) 1987-02-10 1991-12-17 Davin Computer Corporation Parallel string processor and method for a minicomputer
US4866664A (en) 1987-03-09 1989-09-12 Unisys Corporation Intercomputer communication control apparatus & method
US5142683A (en) 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and method
DE68913629T2 (de) 1988-03-14 1994-06-16 Unisys Corp Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem.
US5008808A (en) 1988-06-23 1991-04-16 Storage Technology Corporation Consolidation of commands in a buffered input/output device
US5165025A (en) 1988-10-06 1992-11-17 Lass Stanley E Interlacing the paths after a conditional branch like instruction
US5142676A (en) 1988-12-28 1992-08-25 Gte Laboratories Incorporated Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory
US5155854A (en) 1989-02-03 1992-10-13 Digital Equipment Corporation System for arbitrating communication requests using multi-pass control unit based on availability of system resources
US5155831A (en) 1989-04-24 1992-10-13 International Business Machines Corporation Data processing system with fast queue store interposed between store-through caches and a main memory
US5166872A (en) 1989-07-17 1992-11-24 Ability Technologies Corporation System and method for controlling devices through communication processors and pluralities of address-associated device controllers sharing each communication processor
US5113516A (en) 1989-07-31 1992-05-12 North American Philips Corporation Data repacker having controlled feedback shifters and registers for changing data format
US5168555A (en) 1989-09-06 1992-12-01 Unisys Corporation Initial program load control
US5263169A (en) 1989-11-03 1993-11-16 Zoran Corporation Bus arbitration and resource management for concurrent vector signal processor architecture
DE3942977A1 (de) 1989-12-23 1991-06-27 Standard Elektrik Lorenz Ag Verfahren zum wiederherstellen der richtigen zellfolge, insbesondere in einer atm-vermittlungsstelle, sowie ausgangseinheit hierfuer
US5247671A (en) 1990-02-14 1993-09-21 International Business Machines Corporation Scalable schedules for serial communications controller in data processing systems
JPH0799812B2 (ja) 1990-03-26 1995-10-25 株式会社グラフイックス・コミュニケーション・テクノロジーズ 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置
DE69129872T2 (de) 1990-03-27 1999-03-04 Philips Electronics Nv Datenverarbeitungssystem mit einem leistungsverbessernden Befehlscachespeicher
US5390329A (en) 1990-06-11 1995-02-14 Cray Research, Inc. Responding to service requests using minimal system-side context in a multiprocessor environment
US5432918A (en) 1990-06-29 1995-07-11 Digital Equipment Corporation Method and apparatus for ordering read and write operations using conflict bits in a write queue
US5347648A (en) 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
CA2045790A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites Branch prediction in high-performance processor
US5404482A (en) 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
US5367678A (en) 1990-12-06 1994-11-22 The Regents Of The University Of California Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically
EP0522513A2 (en) 1991-07-09 1993-01-13 Hughes Aircraft Company High speed parallel microcode program controller
US5255239A (en) 1991-08-13 1993-10-19 Cypress Semiconductor Corporation Bidirectional first-in-first-out memory device with transparent and user-testable capabilities
US5623489A (en) 1991-09-26 1997-04-22 Ipc Information Systems, Inc. Channel allocation system for distributed digital switching network
US5392412A (en) 1991-10-03 1995-02-21 Standard Microsystems Corporation Data communication controller for use with a single-port data packet buffer
GB2260429B (en) 1991-10-11 1995-05-24 Intel Corp Versatile cache memory
US5392391A (en) 1991-10-18 1995-02-21 Lsi Logic Corporation High performance graphics applications controller
EP0538817B1 (en) 1991-10-21 2001-07-25 Kabushiki Kaisha Toshiba High-speed processor capable of handling multiple interrupts
US5452437A (en) 1991-11-18 1995-09-19 Motorola, Inc. Methods of debugging multiprocessor system
US5357617A (en) 1991-11-22 1994-10-18 International Business Machines Corporation Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor
US5442797A (en) 1991-12-04 1995-08-15 Casavant; Thomas L. Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging
JP2823767B2 (ja) 1992-02-03 1998-11-11 松下電器産業株式会社 レジスタファイル
US5459842A (en) 1992-06-26 1995-10-17 International Business Machines Corporation System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory
DE4223600C2 (de) 1992-07-17 1994-10-13 Ibm Mehrprozessor-Computersystem und Verfahren zum Übertragen von Steuerinformationen und Dateninformation zwischen wenigstens zwei Prozessoreinheiten eines Computersystems
US5274770A (en) 1992-07-29 1993-12-28 Tritech Microelectronics International Pte Ltd. Flexible register-based I/O microcontroller with single cycle instruction execution
US5442756A (en) 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor
US5692167A (en) 1992-07-31 1997-11-25 Intel Corporation Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor
US5649109A (en) 1992-10-22 1997-07-15 Digital Equipment Corporation Apparatus and method for maintaining forwarding information in a bridge or router using multiple free queues having associated free space sizes
US5481683A (en) 1992-10-30 1996-01-02 International Business Machines Corporation Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions
US5450603A (en) 1992-12-18 1995-09-12 Xerox Corporation SIMD architecture with transfer register or value source circuitry connected to bus
WO1994015287A2 (en) 1992-12-23 1994-07-07 Centre Electronique Horloger S.A. Multi-tasking low-power controller
US5404464A (en) 1993-02-11 1995-04-04 Ast Research, Inc. Bus control system and method that selectively generate an early address strobe
US5448702A (en) 1993-03-02 1995-09-05 International Business Machines Corporation Adapters with descriptor queue management capability
US5522069A (en) 1993-04-30 1996-05-28 Zenith Data Systems Corporation Symmetric multiprocessing system with unified environment and distributed system functions
WO1994027216A1 (en) 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
CA2122182A1 (en) 1993-05-20 1994-11-21 Rene Leblanc Method for rapid prototyping of programming problems
US5363448A (en) 1993-06-30 1994-11-08 United Technologies Automotive, Inc. Pseudorandom number generation and cryptographic authentication
CA2107299C (en) 1993-09-29 1997-02-25 Mehrad Yasrebi High performance machine for switched communications in a heterogenous data processing network gateway
US5446736A (en) 1993-10-07 1995-08-29 Ast Research, Inc. Method and apparatus for connecting a node to a wireless network using a standard protocol
US5450351A (en) 1993-11-19 1995-09-12 International Business Machines Corporation Content addressable memory implementation with random access memory
US6079014A (en) * 1993-12-02 2000-06-20 Intel Corporation Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state
US5487159A (en) 1993-12-23 1996-01-23 Unisys Corporation System for processing shift, mask, and merge operations in one instruction
US5490204A (en) 1994-03-01 1996-02-06 Safco Corporation Automated quality assessment system for cellular networks
US5659722A (en) 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
US5542088A (en) 1994-04-29 1996-07-30 Intergraph Corporation Method and apparatus for enabling control of task execution
US5721870A (en) 1994-05-25 1998-02-24 Nec Corporation Lock control for a shared main storage data processing system
US5544236A (en) 1994-06-10 1996-08-06 At&T Corp. Access to unsubscribed features
US5574922A (en) 1994-06-17 1996-11-12 Apple Computer, Inc. Processor with sequences of processor instructions for locked memory updates
US5666551A (en) * 1994-06-30 1997-09-09 Digital Equipment Corporation Distributed data bus sequencing for a system bus with separate address and data bus protocols
FR2722041B1 (fr) 1994-06-30 1998-01-02 Samsung Electronics Co Ltd Decodeur de huffman
US5640538A (en) 1994-08-22 1997-06-17 Adaptec, Inc. Programmable timing mark sequencer for a disk drive
US5813031A (en) * 1994-09-21 1998-09-22 Industrial Technology Research Institute Caching tag for a large scale cache computer memory system
US5717760A (en) 1994-11-09 1998-02-10 Channel One Communications, Inc. Message protection system and method
US5610864A (en) 1994-12-23 1997-03-11 Micron Technology, Inc. Burst EDO memory device with maximized write cycle timing
US5550816A (en) 1994-12-29 1996-08-27 Storage Technology Corporation Method and apparatus for virtual switching
US5649157A (en) 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
TW360852B (en) 1995-04-12 1999-06-11 Matsushita Electric Ind Co Ltd Pipeline processor
US5592622A (en) 1995-05-10 1997-01-07 3Com Corporation Network intermediate system with message passing architecture
US5812799A (en) * 1995-06-07 1998-09-22 Microunity Systems Engineering, Inc. Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing
US5541920A (en) 1995-06-15 1996-07-30 Bay Networks, Inc. Method and apparatus for a delayed replace mechanism for a streaming packet modification engine
KR0180169B1 (ko) 1995-06-30 1999-05-01 배순훈 가변길이 부호기
US5613071A (en) 1995-07-14 1997-03-18 Intel Corporation Method and apparatus for providing remote memory access in a distributed memory multiprocessor system
US5680641A (en) 1995-08-16 1997-10-21 Sharp Microelectronics Technology, Inc. Multiple register bank system for concurrent I/O operation in a CPU datapath
US5689566A (en) 1995-10-24 1997-11-18 Nguyen; Minhtam C. Network with secure communications sessions
KR0150072B1 (ko) 1995-11-30 1998-10-15 양승택 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치
US5699537A (en) 1995-12-22 1997-12-16 Intel Corporation Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions
US5790813A (en) * 1996-01-05 1998-08-04 Unisys Corporation Pre-arbitration system allowing look-around and bypass for significant operations
US6088783A (en) * 1996-02-16 2000-07-11 Morton; Steven G DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5933627A (en) * 1996-07-01 1999-08-03 Sun Microsystems Thread switch on blocked load or store using instruction thread field
US6058465A (en) * 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
US6173349B1 (en) * 1996-10-18 2001-01-09 Samsung Electronics Co., Ltd. Shared bus system with transaction and destination ID
US6029228A (en) * 1996-12-31 2000-02-22 Texas Instruments Incorporated Data prefetching of a load target buffer for post-branch instructions based on past prediction accuracy's of branch predictions
US6249829B1 (en) * 1997-01-10 2001-06-19 U.S. Philips Corporation Communication bus system with reliable determination of command execution
US5893162A (en) * 1997-02-05 1999-04-06 Transwitch Corp. Method and apparatus for allocation and management of shared memory with data in memory stored as multiple linked lists
US5742587A (en) 1997-02-28 1998-04-21 Lanart Corporation Load balancing port switching hub
EP0931290A1 (en) * 1997-03-21 1999-07-28 International Business Machines Corporation Address mapping for system memory
US5941949A (en) * 1997-05-14 1999-08-24 Citrix Systems, Inc. System and method for transmitting data from a server application to more than one client node
US6047334A (en) * 1997-06-17 2000-04-04 Intel Corporation System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence
US6233599B1 (en) * 1997-07-10 2001-05-15 International Business Machines Corporation Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers
US6104700A (en) * 1997-08-29 2000-08-15 Extreme Networks Policy based quality of service
US6223277B1 (en) * 1997-11-21 2001-04-24 Texas Instruments Incorporated Data processing circuit with packed data structure capability
US6029170A (en) * 1997-11-25 2000-02-22 International Business Machines Corporation Hybrid tree array data structure and method
US6212602B1 (en) * 1997-12-17 2001-04-03 Sun Microsystems, Inc. Cache tag caching
US6230119B1 (en) * 1998-02-06 2001-05-08 Patrick Michael Mitchell Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit
US6092175A (en) * 1998-04-02 2000-07-18 University Of Washington Shared register storage mechanisms for multithreaded computer systems with out-of-order execution
US6408325B1 (en) * 1998-05-06 2002-06-18 Sun Microsystems, Inc. Context switching technique for processors with large register files
US6505281B1 (en) * 1998-06-02 2003-01-07 Raymond C. Sherry Hard disk drives employing high speed distribution bus
TW374967B (en) * 1998-06-22 1999-11-21 Winbond Electronics Corp Ethernet switch having shared memory structure and method of the shared memory
US6724767B1 (en) * 1998-06-27 2004-04-20 Intel Corporation Two-dimensional queuing/de-queuing methods and systems for implementing the same
US6628652B1 (en) * 1998-09-18 2003-09-30 Lucent Technologies Inc. Flexible telecommunications switching network
US6505229B1 (en) * 1998-09-25 2003-01-07 Intelect Communications, Inc. Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems
US6247086B1 (en) * 1998-11-12 2001-06-12 Adaptec, Inc. PCI bridge for optimized command delivery
US6182183B1 (en) * 1998-11-13 2001-01-30 Sonics, Inc. Communications system and method with multilevel connection identification
US6230261B1 (en) * 1998-12-02 2001-05-08 I. P. First, L.L.C. Method and apparatus for predicting conditional branch instruction outcome based on branch condition test type
US6212604B1 (en) * 1998-12-03 2001-04-03 Sun Microsystems, Inc. Shared instruction cache for multiple processors
GB2344665B (en) * 1998-12-08 2003-07-30 Advanced Risc Mach Ltd Cache memory
US6378124B1 (en) * 1999-02-22 2002-04-23 International Business Machines Corporation Debugger thread synchronization control points
CA2266283C (en) * 1999-03-19 2006-07-11 Wen Tong Data interleaver and method of interleaving data
US6570877B1 (en) * 1999-04-07 2003-05-27 Cisco Technology, Inc. Search engine for forwarding table content addressable memory
US6401149B1 (en) * 1999-05-05 2002-06-04 Qlogic Corporation Methods for context switching within a disk controller
US6351808B1 (en) * 1999-05-11 2002-02-26 Sun Microsystems, Inc. Vertically and horizontally threaded processor with multidimensional storage for storing thread data
US6430646B1 (en) * 1999-08-18 2002-08-06 Ati International Srl Method and apparatus for interfacing a processor with a bus
US6539439B1 (en) * 1999-08-18 2003-03-25 Ati International Srl Method and apparatus for interfacing a bus at an independent rate with input/output devices
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6529999B1 (en) * 1999-10-27 2003-03-04 Advanced Micro Devices, Inc. Computer system implementing system and method for ordering write operations and maintaining memory coherency
US6523108B1 (en) * 1999-11-23 2003-02-18 Sony Corporation Method of and apparatus for extracting a string of bits from a binary bit string and depositing a string of bits onto a binary bit string
TW445730B (en) * 1999-11-30 2001-07-11 Via Tech Inc Output queuing scheme for forwarding packets in sequence
US6357016B1 (en) * 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor
US6889319B1 (en) * 1999-12-09 2005-05-03 Intel Corporation Method and apparatus for entering and exiting multiple threads within a multithreaded processor
US7051329B1 (en) * 1999-12-28 2006-05-23 Intel Corporation Method and apparatus for managing resources in a multithreaded processor
US6278289B1 (en) * 2000-05-01 2001-08-21 Xilinx, Inc. Content-addressable memory implemented using programmable logic
US6513089B1 (en) * 2000-05-18 2003-01-28 International Business Machines Corporation Dual burst latency timers for overlapped read and write data transfers
US6587905B1 (en) * 2000-06-29 2003-07-01 International Business Machines Corporation Dynamic data bus allocation
US7681018B2 (en) * 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US20020053017A1 (en) * 2000-09-01 2002-05-02 Adiletta Matthew J. Register instructions for a multithreaded processor
US6781992B1 (en) * 2000-11-30 2004-08-24 Netrake Corporation Queue engine for reassembling and reordering data packets in a network
US6847645B1 (en) * 2001-02-22 2005-01-25 Cisco Technology, Inc. Method and apparatus for controlling packet header buffer wrap around in a forwarding engine of an intermediate network node
TW556077B (en) * 2001-06-05 2003-10-01 Via Tech Inc Controller for improving buffer management efficiency and the buffer management method
JP3489573B2 (ja) * 2001-07-11 2004-01-19 日本電気株式会社 パケット処理装置
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US20030065862A1 (en) * 2001-09-28 2003-04-03 Wyland David C. Computer system and method for communications between bus devices
US6934729B2 (en) * 2001-10-18 2005-08-23 International Business Machines Corporation Method and system for performing shift operations
US7028118B2 (en) * 2001-12-12 2006-04-11 Texas Instruments Incorporated Multi-channel buffered serial port debugging
US6754795B2 (en) * 2001-12-21 2004-06-22 Agere Systems Inc. Methods and apparatus for forming linked list queue using chunk-based structure
US7089379B1 (en) * 2002-06-28 2006-08-08 Emc Corporation Large high bandwidth memory system
US6941438B2 (en) * 2003-01-10 2005-09-06 Intel Corporation Memory interleaving

Also Published As

Publication number Publication date
US7337275B2 (en) 2008-02-26
EP1604493A2 (en) 2005-12-14
US20040034743A1 (en) 2004-02-19
AU2003282676A1 (en) 2004-02-25
WO2004015525A2 (en) 2004-02-19
AU2003282676A8 (en) 2004-02-25
TW200406672A (en) 2004-05-01
CN100499565C (zh) 2009-06-10
CN1757202A (zh) 2006-04-05
WO2004015525A3 (en) 2005-10-20

Similar Documents

Publication Publication Date Title
TWI261166B (en) Free list and ring data structure management
US7269179B2 (en) Control mechanisms for enqueue and dequeue operations in a pipelined network processor
CN103946803B (zh) 具有高效工作排队的处理器
US7546399B2 (en) Store and forward device utilizing cache to store status information for active queues
US6996639B2 (en) Configurably prefetching head-of-queue from ring buffers
US20020041520A1 (en) Scratchpad memory
CN101208671A (zh) 管理消息队列
CN102141905A (zh) 一种处理器体系结构
US20070245074A1 (en) Ring with on-chip buffer for efficient message passing
TW201237632A (en) Buffer management scheme for a network processor
US5448708A (en) System for asynchronously delivering enqueue and dequeue information in a pipe interface having distributed, shared memory
US7039054B2 (en) Method and apparatus for header splitting/splicing and automating recovery of transmit resources on a per-transmit granularity
WO2022127873A1 (zh) 实现网络芯片高速调度的方法、设备及存储介质
US9009415B2 (en) Memory system including a spiral cache
US7277990B2 (en) Method and apparatus providing efficient queue descriptor memory access
CN101848150B (zh) 维护多播计数器的计数值的方法及装置
CN106375249B (zh) 交换芯片的控制方法及控制系统
US8255623B2 (en) Ordered storage structure providing enhanced access to stored items
CN102073539B (zh) 队列请求处理方法和装置
CN112822126B (zh) 报文存储方法、报文出入队列方法及存储调度装置
US6754742B1 (en) Queue management system having one read and one write per cycle by using free queues
CN116800692B (zh) 活动队列的调度方法、装置及存储介质
CN108418879A (zh) 一种高可靠性的海量异构数据传输方法及系统
JP3044653B2 (ja) ゲートウェイ装置
CN117938964A (zh) 一种广告投放的调度方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees