TWI356304B - Network device of processing packets efficiently a - Google Patents

Network device of processing packets efficiently a Download PDF

Info

Publication number
TWI356304B
TWI356304B TW097114476A TW97114476A TWI356304B TW I356304 B TWI356304 B TW I356304B TW 097114476 A TW097114476 A TW 097114476A TW 97114476 A TW97114476 A TW 97114476A TW I356304 B TWI356304 B TW I356304B
Authority
TW
Taiwan
Prior art keywords
memory
packet
address
header
network
Prior art date
Application number
TW097114476A
Other languages
English (en)
Other versions
TW200945044A (en
Inventor
Kuo Cheng Lu
Original Assignee
Ralink Technology 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 Ralink Technology Corp filed Critical Ralink Technology Corp
Priority to TW097114476A priority Critical patent/TWI356304B/zh
Priority to US12/272,761 priority patent/US20090262739A1/en
Publication of TW200945044A publication Critical patent/TW200945044A/zh
Application granted granted Critical
Publication of TWI356304B publication Critical patent/TWI356304B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet
    • 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/9042Separate storage for different parts of the packet, e.g. header and payload

Description

1356304 九、發明說明: 【發明所屬之技術領域】 尤指一種可有效率處理封包 本發明係相關於一種網路裝置 之網路裝置。 【先如技術】 在現今咖賴置巾,_記_已被歧制來改善整體 的糸統效能。細,使職取記憶體可能要面對二個問題,一為 #一致性的問題’另—烟題是因為處理封包產生的快取污染 (滅Ρ。編)。許多高階的嵌人式處理器都具有快取記憶體, 但它們大錄雜有快取記,_之_ —雜。當網路裝置 使用快取記㈣來處簡包時,t鱗理器便要注意轉一致性 的問題。此外,當資料儲存在快取記憶體中—段時間都沒有被重 覆利用,稱為快取污染,但於由封包的特性,使用快取記憶體處 理封包便會存在這個問題。 凊參考第1圖’第1圖為先前技術之網路褒置10使用快取記 憶體處理資料所產生之資料不一致之示意圖。一直接記憶存取 (DMA)裝置18將由網路接收一封包並儲存於一中央處理器12 分派的外部記憶體16空間中,在該封包完全被接收之後,直接記 憶存取(DMA)裝置18送出—中斷請求至中央處理器12以進行 封包處理。當中央處理器12具有一快取記憶體l4 (Cache)時, 根據使用雜取齡,例如寫?(writethrough)或寫回(_ 1356304 12將在快取記憶體複製該封包的暫存構 為、、,考…、而,令央處理器12在存取該封包之暫存播後, 便開始產生,取記憶體14及外部記憶體16之資料一致性的問 題=田t央處理器12讀取封包的内容後,必須先清除 (_h址)脉記憶體I切避免讀取_存在快取記憶體14 中的舊資料:當中央處理器12通知直接記憶存取裝置18以傳送 修改的封包日τΓ ’中+虛搜55 1 q、,>^ j / 、°。12必須》月理(flush)快取記憶體14, 以將快取記憶體14中的駐存封包複製到外部記憶體Μ。因此,利 用快取記題Μ猶桃歧會祕絲鮮,並 憶體14的效能。 牛瓜的取。己 請參考第2圖,第2圖為先前技術之網路褒置20使用窺探 4ΓΓ!)/置翁絲記髓之射4之移圖。絲裝置U I檢查令央處理器12之快取記憶體14與外部記憶體Μ中之資料 •:二處理益12在執行程式及處理資料時’可能會將其所 ㈤的―貝料由料記‘_16载人絲取記鐘 些資料的存取速度。然而,當中央广理决對迈 中ά·1 & 12已經對快取記憶體14 == 後,—定會馬上更新外部記憶體16 * •^貝;'·在此k,右_記憶存取裝置18要存取外部記憶體 ^則可能會錯誤地存取到這些未更新的龍1此,當直接纪 16 ^ 存=ί _14之#_屬於絲__ μ要 子取的貝料,確保直接記憶存轉置18存取到的資料具有正確的 丄356304 内容。然而,窺探裝置22受限於中央處 實作上是轉_。 巾央處“叫如速度,在 請參考第3圖,第3圖為先前技術之網路裝置 存記憶體(Scratch pad memory)處理封 映 表瓸邱八ru』、 匕之不思圖。封包可分為 =:(header)及承載資料(payl〇ad),通常封 遇比封包之承載資料常被存取。因此, 頭[刀 取介面個難㈣包之麵料縣概料,麵^直之接= /刀儲存於祕記碰24,例如㈣記鐘(s =儲!於外部記憶體16,例如動態記憶體(心= 央處理Θ 12可在减記憶體24中存取封包之表 理速度。當中央處理器12完成封包處理後,一傳送:8 :直: 記憶存取介齡勸紐記_ 24巾讀取姑之 部記憶體16中讀取封包之承載資料,以將該封包傳送出去。^ 高速記了㈣—致性及快取污__ ,= 前技術中,接收器26及傳送器28之直接記憶存取介面必= 侧傳輸封包姉卩分縣__作。此外,對、= 器衫,封包儲存於不連續的記憶體空間,若中央處理^里 為該封包之賴,中央處理器12仍需將該封包複製到續 憶體空間以使用該封包。 逆、,只的5己 【發明内容】 I ’包含: 本發明係提供-種可有效率處理封包之網路裝 1356304 第-記憶體’·一接收器,用來接收來自― 2包儲存於該第一記憶體;—t央處理,並將該 傳送器,用來傳送該封包至該網路;一第二=處理该封包;-封包之表頭部分;及 ^體,用來儲存該 該第二記憶體,並且該接收器=二_於該第-記憶體及 表頭快取控制器存取該第一記憶體及該二傳送器透過該 該第二記,_之健 之表科分之位址對應到 體。 綠靖包之麵部分儲存於該第二記憶. 本發日_供—_路裝置處輯包之方法 态由一網路接收一封包;一中虚 匕3 接收 器,以將伟勺# 、地冰供一描述子給該接收 子之後門一記憶體;將該接收器於讀取該描述 及將1 1定長度之_定義聽聽之表頭部分; 存該封包之表頭部分之位址對應到一第二記 憶體之位址,骑該封包之表頭部分齡於該第二記憶體。 【實施方式】 二參考第4圖’第4 Κ為本發明之網路裝置4〇使職頭快取 控制f處理資料之示意圖。網路裝置40包含-接收器42、一中央 處理益44、一傳达器46、一第一記憶體48、一第二記憶體50及 表頭I*夬取控制器52 ( header cache controller,HCC )。在本實施例 中第。己隐體48為大容量之外部記憶體,通常為動態記憶體 1356304 ⑺RAM),第二記憶體50為高速記憶體’例如靜態記憶體 二缩),第二咖50之存取時間小於第—記憶體48之存取 時間。表頭快取控制裔52輕接於第一記憶體耶及第二記惊體%, 並且接收器42、申央處理器44及傕诸哭v a —° ’ 52存取第一記._及第二記=%:表頭快取控制器 似“ G表·取控制器52根據 地表將第-記憶體耶之位址對應到第二記憶體如之位址, ”胃__ 46 _到記錄於對應 表之第-記憶體48之位址時,接收器42、十央處理器44及傳逆 ㈣就會存取到第二記憶體5〇之相對應位址之資料。由於封包 ^員^header)遠比封包之承㈣料⑹細d)常被存取, =,表頭快取控繼52可將第—記憶體48儲存封包之表頭部 5^0 50 5 、匕之表頭部分,以提升網路裝置40的效能。 ^發明麵触蝴g52可輯存轉包之紐來判斷封 封包之承載資料。當接收器42由一網路接收—封 、处理态44將提供一描述子(descriptor)給接收器42 ==Γ 一第一記憶體48。當接收器42於讀取該描述子 接收器42於=取:包之表頭部分,因此,表頭快取控制器52將 為該封包之^子之後開始寫入之一預定長度之資料定義 第一記,_心所以當接收器42儲存該封包之表頭部分於 個對應拳間日ζ,表職取控制器52會在第三記《 5G找到— 二曰I並記錄第—記憶體48與第二記憶體5〇之對應位 1356304 址於該對應表_。若第二記憶體5〇 控制琴52 1、n & '又有可用空間時,表頭快取 卜二i r行糊師,:_讀购-記憶⑽ 50中讀出後,將清除(麵lidate)該封包^心由弟二記憶體 體物二記憶㈣之對應她。之表術之第一記憶 細42之直接記憶存取介面⑽歷) 封包之表頭部分時,表頭快取控制器%將寫入的資料 繼财。當蘭包完全被接收之後,若中央處理 :要存取該封包之表頭部分時,表頭快取控制器52可將中央 導向到第二記憶體5Q。在中央處理器44完成封包處理 之後’中央處理器44將通知傳送器46傳輸該封包。當傳送器奶 之直接咖存取介面開始讀取該封包時,表頭快取控制器Μ根據 .對應表檢查讀取的位址。當讀取的位址為儲存封包的表頭部分 時’表頭快取控制器52可將傳送器46之直接記憶存取介面導向 到第二記憶體5G。在封包的表頭部分完全被讀取之後,表頭快取 控制器52將清除(invalidate)該封包之表頭部分之第—記憶體48 與第二記憶體50之對應位址。 凊參考第5圖,第5圖為本發明之網路裝置4〇處理封包之路 徑之示意圖。封包在網路系統中包含三種傳輸方式:第一、封包 由網路傳輸到-終端。第二、封包由網路傳輸到一終端,再由該 終端傳輸到網路。第三、封包由-終端傳輸到網路。因此,本發 ►0JU4 明之網路裝置40處理封包之雜包含下列六種: 路把1 ··當接《 42之直接記憶縣介_始寫人—接收封包之 表頭部分時,表取控_2將寫人的資料分派 二記憶體50中。 路L 2 .當·ϋ 42之直接記憶存取介面開始寫人該接收封包之 承載資料時’表頭快取控制器52將該封包之承載資料分 派到第一記憶體48中。 路徑3 :當中央處理器44要存取該封包之表頭部分時,表獅 控制€ 52可將中央處理器44導向到第二記憶體%。 理器44Γ出· ΤΙ轉傳在中央處理器44本身結束時,中央處 該封包Λ 取控制器52,使其清除(― 路徑5 .〜=分之第—記憶體48與第二記㈣5G之對應位址。 :傳心46之直接記憶存取介面棘該接㈣包之表頭 部分時’表頭快取控制器52將傳送器46之直接記憶存 路% 取介面導向到第二記憶體5〇。 6 .虽傳Μ 46之直接記憶存取介面開始讀取該接收封包之 承載貧料時,表頭快取控制器52將傳送器46之直接記 憶存取介面導向到第-記憶體48。 ° 及第二^第6圖’第6圖為表頭快取控制器存取第一記憶體48 容量體5〇之對應表。在本實施例中,第一記憶體似為大 憶體,例如靜㈣_ I隐體第一5己隐體5〇為向迷記 匕體。表頭快取控制器52可利用第6圖之對應 一記憶體48之位址導向到第二記憶體50之位址,例如第 4 體招之位細對應到第二記憶體50之位址聰,所以 &之央iff44蝴記億存取介面存取第—記賴招之位址 因此,m ’實際上是存取第二記憶體50之位址1024之資料。 的第-==理器44在處理封包之表頭部分時’是使用速度較快 纪憶存取可提升財。絲’對财央_44或直接 記_ 48 封包之表頌部分及封包之承賴料儲存第一 體=接===_4 4繼娜的記憶 表啊八j 傳㈣46也不需為了要分_送封包之 頌‘及封包之承載資料而有所修改。 表頭^所=\本Γ明之網路裝置使用高速記憶趙來處理封包之 效率。本發明網路裝置,包含-第-記憶體 ^處理器、一傳送器及-表頭快取 制器存取該第-記憶體::;理=傳^ 將該第-記憶體儲存該封包之體。絲頭快取控制器用來 體之位址,以將該封包之表頭之位址對應到該第二記憶 收器由該網路接收一封_、出封包之表頭部分。當該接 收器,以將該封包儲存2第;^處理器提供—描述子給該接 將該接收器於讀取該描述憶體,此時該表頭快取控制器 交開始寫入之一預定長度之資料定 12 濟健二匕之表頭部分’接著,該表頭快取控織將該第〆記憶 _子韻包之表頭部分之位址對應到—第二記憶體之位址,以 择/化之表頭部分儲存於該第二記憶體。由於第二記憶體之速 度較快,因此可提相崎置的效能。 '上所述僅為本發明之較佳實施例,凡依本發明中請專利範 所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。 【圖式簡單說明】 第1圖為先術使職取記憶财理㈣所產生之#料不一致 之示意圖。 第圖為先則技術使用窺探裝置處理快取記憶體之資料之示意圖。 第3圖為先則技術制向速暫存記憶體處理資料之示意圖。 第4圖為網路系統中使用本發明之表頭快取控制器處理資料之示 意圖。 第5圖為網路系統中封包之路徑之示音圖。 第6圖為表頭快取控㈣存取第—記憶體及第二記憶體之對應表。 網路裝置 中央處理器 快取記憶體 外部記憶體 【主要元件符號說明】 10、20、30、40 12、44 14 16 13 1356304 18 直接記憶存取裝置 22 窺探裝置 24 局速記憶體 26、42 接收器 28、46 傳送器 48 第一記憶體 50 第二記憶體 52 表頭快取控制器 14

Claims (1)

1J56304 十、申請專利範圍·· !· 一種網路裝置,包含: 一第一記憶體;. -聯’用來接收來自一網 該第一記憶體丨 ·匕,並將该封包館存於 一令央處理H,用來處理該封包;
,送器,用轉魏封包至該網路. :=制:=f(— 且該接收器、兮中血步 。己隐體及該第二記憶體,並 制器存取該第:記::該傳送器透過該表頭㈣ 器用來將該第-記倾儲===,該表頭快取控制 應到該第二記憶體之位址,以將部分之位址對 該第二記憶體。 、…于匕之表碩部分館存於 2. 如請求項1所述之 記憶體及对 巾該麵絲控㈣將該第一 ^體之對應位址儲存於—對應表中。 3. 如請求項!所述之網 器於讀取物述子之射以麵快取控_將該接收 該封包之麵部。1始寫人之—預定長度之資料定義為 4.如請求項丨所述之 罔路裝置’其找表頭快取控制 器於該傳送 15 部分後,清除(lnvalld— ‘憶體之位址對應 態記憶 =求項1所述之網路裝置,其中該第—記憶體為動 亥第一5己憶體為靜態記憶體。 6. 其中該第二― 如請求項1所述之 該第一記憶體。 網路裝置,其巾該封包之承載資料係儲存於 '8. -種纟轉裝置處理封包之方法,包含: -接收器由一網路接收—封包; 中央處理减供—描述子(deseripto〇給該接收器,以將該 封包儲存於-第—記憶體; 將^^取該描述子之後開始讀取之一預定長度之資 枓疋義為5玄封包之表頭部分;及 第 記憶體之位址, 將該第-記憶體儲存該封包之表頭部分之位址對應到一 以將該封包之表頭部分儲存於該第二記憶 垓方法另包含·· 9·如清求項8所述之方法, 將该第一記憶體及該第 中。 二記憶體之對應位⑽存於—對應表 10·如請求項8所述之方法,該方法另包含: ;專送器。買取δ玄封包之表頭部分後,清除(invalidate)該第 记憶體及該第二記憶體之對應位址。 U.如請求項8所述之方法,該方法另包含: 5亥中央處理器發出一指令以清除該第一記憶體及該第二記憶 體之對應位址。 12.如請求項8所述之方法,該方法另包含: 將該封包之承载資料館存於該第一記憶體。
、圖式:
TW097114476A 2008-04-21 2008-04-21 Network device of processing packets efficiently a TWI356304B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW097114476A TWI356304B (en) 2008-04-21 2008-04-21 Network device of processing packets efficiently a
US12/272,761 US20090262739A1 (en) 2008-04-21 2008-11-17 Network device of processing packets efficiently and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW097114476A TWI356304B (en) 2008-04-21 2008-04-21 Network device of processing packets efficiently a

Publications (2)

Publication Number Publication Date
TW200945044A TW200945044A (en) 2009-11-01
TWI356304B true TWI356304B (en) 2012-01-11

Family

ID=41201047

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097114476A TWI356304B (en) 2008-04-21 2008-04-21 Network device of processing packets efficiently a

Country Status (2)

Country Link
US (1) US20090262739A1 (zh)
TW (1) TWI356304B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011016087A1 (ja) * 2009-08-05 2011-02-10 株式会社 東芝 通信装置
EP2541851A1 (en) * 2011-06-30 2013-01-02 Astrium Limited Apparatus and method for use in a spacewire-based network
CN103947158B (zh) 2011-11-15 2017-03-01 国立研究开发法人科学技术振兴机构 信息包数据提取装置、信息包数据提取装置的控制方法
US9148819B2 (en) * 2012-11-06 2015-09-29 Peraso Technologies, Inc. In-place A-MSDU aggregation for wireless systems
CN107547417A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 一种报文处理方法、装置及基站

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032190A (en) * 1997-10-03 2000-02-29 Ascend Communications, Inc. System and method for processing data packets
US6947430B2 (en) * 2000-03-24 2005-09-20 International Business Machines Corporation Network adapter with embedded deep packet processing
US6665750B1 (en) * 2001-12-12 2003-12-16 Advanced Micro Devices, Inc. Input/output device configured for minimizing I/O read operations by copying values to system memory
US6654865B2 (en) * 2002-01-31 2003-11-25 Ubicom, Inc. Netbufs: communication protocol packet buffering using paged memory management
US7472205B2 (en) * 2002-04-24 2008-12-30 Nec Corporation Communication control apparatus which has descriptor cache controller that builds list of descriptors
US7286549B2 (en) * 2002-10-30 2007-10-23 Intel Corporation Method, system, and program for processing data packets in packet buffers
TWI240520B (en) * 2004-03-26 2005-09-21 Ascen Vision Technology Inc Packet processing apparatus and method
US7292591B2 (en) * 2004-03-30 2007-11-06 Extreme Networks, Inc. Packet processing system architecture and method
US7783769B2 (en) * 2004-03-31 2010-08-24 Intel Corporation Accelerated TCP (Transport Control Protocol) stack processing
TWI241808B (en) * 2004-07-28 2005-10-11 Realtek Semiconductor Corp Network address-port translation apparatus and method for IP fragment packets
JP4700063B2 (ja) * 2004-11-19 2011-06-15 ノースロップ グラマン コーポレイション リアルタイムパケット処理システムおよび方法
TWI288543B (en) * 2005-07-15 2007-10-11 Faraday Tech Corp Packet detection system, packet detection device and method for receiving packets
CN100442264C (zh) * 2005-10-14 2008-12-10 威盛电子股份有限公司 封包处理系统与方法
US20070110027A1 (en) * 2005-11-15 2007-05-17 Mediatek Incorporation Systems and methods for processing packet streams
US7916641B2 (en) * 2006-06-29 2011-03-29 Wi-Lan, Inc. System and process for packet delineation
US20080240103A1 (en) * 2007-03-30 2008-10-02 Andreas Schmidt Three-port ethernet switch with external buffer
US20090106501A1 (en) * 2007-10-17 2009-04-23 Broadcom Corporation Data cache management mechanism for packet forwarding

Also Published As

Publication number Publication date
US20090262739A1 (en) 2009-10-22
TW200945044A (en) 2009-11-01

Similar Documents

Publication Publication Date Title
TW552515B (en) Input/output (I/O) address translation in a bridge proximate to a local I/O bus
TWI356304B (en) Network device of processing packets efficiently a
TWI304930B (en) Computer system with processor cache that stores remote cache presence information
TWI259976B (en) Cache allocation apparatus, method and system, and machine-accessible medium which stores executable instructions
TW542958B (en) A method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system
TWI336846B (en) An exclusive ownership snoop filter
TW390986B (en) Cache memory system
CN103946810B (zh) 配置非易失性随机访问存储器内分区的方法及计算机系统
JP5173952B2 (ja) 部分書込と非スヌープアクセスとの間のメモリ順序付け要件の充足
TWI444828B (zh) PCI Express增強及延伸
TW508575B (en) CLFLUSH micro-architectural implementation method and system
TW201102829A (en) Hardware assisted inter-processor communication
TWI322944B (en) Method and apparatus for reducing overhead in a data processing system with a cache
TW200809511A (en) Systems and methods for transactions between processor and memory
TW201009578A (en) Reducing back invalidation transactions from a snoop filter
TWI292101B (en) Pushing of clean data to one or more processors in a system having a coherency protocol
TWI237177B (en) Allocating cache lines
US8209490B2 (en) Protocol for maintaining cache coherency in a CMP
CN105393228B (zh) 读写闪存中数据的方法、装置及用户设备
TW201225102A (en) Hardware dynamic cache power management
TW201250486A (en) PCIE interface card
TW200945033A (en) Memory allocation and access method and device using the same
TWI277872B (en) Method and related apparatus for internal data accessing of computer system
TWI499910B (zh) 具有相黏移除引擎之系統快取記憶體
TW201015579A (en) Buffer memory device, memory system, and data readout method

Legal Events

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