freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第四部分intel網(wǎng)絡處理器-資料下載頁

2025-08-23 08:14本頁面

【導讀】Intel網(wǎng)絡處理器概述。包括網(wǎng)絡處理器硬件及軟件體系結(jié)構(gòu)。編程接口和互連機制,但沒有給出細節(jié)。IXA的三個重要組成部分:。在其它功能單元的支持下執(zhí)行快路徑上的操作。XScaleCore:Intel網(wǎng)絡處理器的高層控制和管理單元,負責。控制面及異常包處理,運行嵌入式實時操作系統(tǒng)。IXA可移植框架:為基于Intel網(wǎng)絡處理器的軟件開發(fā)提供應用編。使用多個可并行操作的微引擎,通過增加微引擎的數(shù)目、提高微。與各種外部連接的接口。多服務接入平臺等。IXP2800:16個微引擎,主要面向邊緣網(wǎng)和核心網(wǎng)應用,可用于骨干網(wǎng)。的路由與交換、無線設備、10Gbps的企業(yè)交換和路由等。IXP2850:在IXP2800的基礎上增加了加密單元,可達到10Gb/s的加。一個IXP網(wǎng)絡處理器是一塊獨立的芯片,包含一組復雜的可編程及不。1條或多條DRAM總線。引入命令總線仲裁器對各主控單元發(fā)出的命令進行排隊判優(yōu),保。證指令的優(yōu)先級,避免指令的沖突和擁塞。引擎被進一步分成兩個簇,每個簇使用獨立的SRAM數(shù)據(jù)總線,

  

【正文】 據(jù)包的第一個 mpacket, RX為該數(shù)據(jù)包分配一個 DRAM緩沖器。 ? 當一個完整的數(shù)據(jù)包被放入緩沖器后, RX將緩沖器的地址傳遞給流水線中的下一個微塊。 ? 輸出微塊( TX)負責將分組從內(nèi)存發(fā)送到物理輸出端口,并回收相應的 DRAM緩沖器: ? TX將分組劃分成一系列 mpacket,將每個 mpacket從內(nèi)存拷貝到 MSF的 TBUF中。 ? 釋放 DRAM緩沖器。 ? 一個 RX或 TX微塊可以處理多個物理接口,這時 RX或 TX必須從分組流中區(qū)分出對應各個物理接口的包,可以將 RX或 TX所在微引擎的 8個線程在分組流之間劃分。 包緩沖器機制 ? Intel SDK軟件提供了一種包緩沖器機制,一般情況下可獲得較好的性能。 ? 包緩沖器機制從 DRAM的一個較大的連續(xù)地址空間中分配一組固定大?。ǖ湫椭禐?2048字節(jié))的緩沖器,每個緩沖器用來存放一個包。 ? 包并不總是從緩沖器的開頭放起,而是在包的前面隨機加上一段長度為0、 128字節(jié)、 256字節(jié)或 384字節(jié)的填充字節(jié),以提高整體的吞吐量。 ? 隨機填充的原因: ? DRAM被組織成 4個 bank,每個 bank的寬度為 128字節(jié); DRAM控制器提供 4條并行的數(shù)據(jù)通路,當每個處理器訪問一個不同的 bank時,訪存可以并行執(zhí)行。 ? 隨機填充可將包頭分布到 4個 bank中。 緩沖器隊列與緩沖器分配 ? 如何管理空閑的包緩沖器: ? 空閑包緩沖器的信息存放在什么地方? ? 如何最小化包緩沖器分配和回收的開銷? ? IXP2xxx依靠硬件支持實現(xiàn)高速處理: ? 在 SRAM中使用一個單鏈表( FIFO隊列)管理空閑包緩沖器,鏈表中的一個元素對應 DRAM中的一個空閑緩沖器。 ? 利用 SRAM控制器硬件( QArray)實現(xiàn) FIFO操作。 緩沖器隊列與緩沖器分配(續(xù)) ? 舉例: ? 欲從 DRAM的地址 B開始分配 32個連續(xù)的包緩沖器; ? 軟件在 SRAM中分配一個具有 32個連續(xù)元素的隊列(空閑緩沖器鏈表),鏈表的起始位置為 F; ? 若出隊操作返回一個鏈表元素的地址為 A,那么 DRAM中對應的緩沖器地址為: 預先計算以下兩個值: DL_DS_RATIO = buffer size / free list element size DL_REL_BASE = B – F DL_DS_RATIO 緩沖器地址為: buffer address = A DL_DS_RATIO + DL_REL_BASE 若 DL_DS_RATIO為 2的冪次 , 則乘法可以用移位代替 。 緩沖器句柄 ? 由于空閑鏈表單元地址與 DRAM中的緩沖器地址一一對應,因此空閑鏈表單元地址就被用來標識緩沖器。 ? 軟件總是使用空閑鏈表單元地址來標識緩沖器,并只在需要時轉(zhuǎn)換成對應的 DRAM地址。 ? Intel使用 緩沖器句柄 來表示對應了一個空閑鏈表單元的 SRAM地址。為傳輸一個包,微塊將包的緩沖器句柄傳遞給另一個微塊。 ? 緩沖器句柄由 4個字節(jié)組成, 3個字節(jié)的 SRAM地址以及 1個字節(jié)的附加信息(緩沖器中是否包含了包的開頭或結(jié)尾,一個包使用的緩沖器個數(shù))。 ? 將一個緩沖器句柄插入空閑鏈表意味著相應的包緩沖器被釋放,因而丟棄數(shù)據(jù)包是一個開銷很小的操作。 包轉(zhuǎn)發(fā)和存儲器環(huán) ? IXP2xxx使用存儲器環(huán)支持處理器之間的通信: ? 存儲器環(huán)提供一種基本的生產(chǎn)者 消費者機制。 ? 存儲器控制器實現(xiàn)對環(huán)的互斥操作(插入和刪除)原語。 ? 使用存儲器環(huán)的優(yōu)點: ? 插入和刪除操作很快,開銷不比常規(guī)的存儲器操作大很多 ? 免去了程序員解決互斥訪問的責任 ? Scratchpad和 SRAM中都存在環(huán),但 Scratch ring的操作更快。因此,建議使用 Scratch ring作為處理器之間傳遞數(shù)據(jù)包的機制, SRAM ring用于對操作速度要求不高的通信場合或別的用途。 ? 典型地,在流水線的每一對相鄰級之間以及微引擎和 XScale Core之間都存在一個 Scratch ring。 Scratch ring 用 Scratch ring連接流水線級以及微引擎和 XScale Core 隊列數(shù)組( QArray) ? IXP2xxx使用 QArray硬件結(jié)構(gòu)實現(xiàn)對鏈表和環(huán)緩沖器的自動快速操作: ? QArray位于 SRAM控制器中,每個入口包含一個隊列(環(huán))描述符,能自動快速完成隊列(環(huán))的入隊和出隊操作。 ? 每個 QArray只包含 64個入口,只能將最常使用的隊列(環(huán))入口放置在 QArray中,其它入口保存在 SRAM中,需要時換入。 ? QArray常用于緩存以下 3種數(shù)據(jù)結(jié)構(gòu): ? 長期駐留的隊列描述符:如空閑緩沖器鏈表、丟包隊列等。 ? 長期駐留的環(huán)緩沖器描述符:也是包處理過程中經(jīng)常要用到的。 ? 緩存的隊列描述符:隊列描述符本身緩存在 QArray中,但它們在QArray中的位置及狀態(tài)緩存在 CAM中。 對緩存的隊列描述符進行操作 ? 當需要使用隊列描述符時,微引擎先進行 CAM查找。 ? 若查找成功,微引擎利用返回的隊列描述符位置,直接對緩存的隊列描述符進行操作。 ? 若查找失敗,表明隊列描述符尚示緩存在 QArray中,微引擎利用返回的 LRU,命令 SRAM將該 LRU寫回外部存儲器,然后讀入所需的隊列描述符,緩存在 QArray中,對其進行操作,修改后的隊列描述符仍緩存在 QArray中 。 主要內(nèi)容 ? Intel網(wǎng)絡處理器概述 ? XScale核 ? 微引擎 ? 其它功能單元 ? 編程模型 ? 參考設計 POS應用的硬件配置 POS: Packet over SONET/SDH或稱 PPP over SONET/SDH,指使用 PPP封 裝將 IP數(shù)據(jù)報映射到 SONET/SDH幀上。 POS IPv4轉(zhuǎn)發(fā)的軟件組件 X1 X4 X1 X1 X1 X1 X1 X1 X1 X? Packet RX ? 將從媒體接口收到的 mpacket重組,將重組后的包傳給流水線的下一級: ? 判斷 mpacket是否為包的第一個或最后一個 mpacket,通過將屬于同一個包的所有mpacket依次存放在 DRAM緩沖器中得到完整的包; ? 將包緩沖器句柄及包的元數(shù)據(jù)(偏移量、大小等)通過微引擎 微引擎 Scratch ring傳遞給下一級。 ? 使用微引擎中的全部 8個線程,每個線程一次處理一個 mpacket。 ? 為保持包的順序,線程嚴格按順序執(zhí)行。 ? 最多支持 16個虛擬端口,所有這些端口的重組上下文保存在本地存儲器。 ? 數(shù)據(jù)包從 Packet RX被傳遞給一個應用特定的系統(tǒng)微塊 DL_Sink[]。 PPP解封裝和分類 ? DL_Source[]從 scratch ring取出包緩沖器句柄,讀入包元信息,從 DRAM中將32個字節(jié)的包頭讀入到由傳輸寄存器維護的 header cache中。 ? 線程嚴格按順序從 scratch ring中讀數(shù)據(jù)包,并發(fā)信號通知下一個線程接收。 ? PPP解封裝 /分類微塊通過更新數(shù)據(jù)包元信息中的偏移量和大小從數(shù)據(jù)包中去掉 PPP頭。 ? 根據(jù) PPP頭將數(shù)據(jù)包分成 IPv IPv6或 PPP控制包( LCP、 IPCP等)。 ? 如果數(shù)據(jù)包是一個 PPP控制包或 IPv6包,該包被標記為 IX_EXCEPTION,否則沿流水線往下傳。 IPv4轉(zhuǎn)發(fā) ? 按照 RFC 1812檢查 IP頭的有效性,若 IP頭無效,將數(shù)據(jù)包標記為 IX_DROP;否則 ? 對目的 IP地址執(zhí)行最長前綴匹配查找,查找結(jié)果為一個下一跳 ID、一個交換結(jié)構(gòu)blade ID和一個輸出端口,這三個域保存在包元數(shù)據(jù)中;若沒有找到匹配項或其它情形,數(shù)據(jù)包被標記為 IX_EXCEPTION。 ? 系統(tǒng)微塊 DL_QM_Sink[]檢查包是否要丟棄或發(fā)給 XScale Core,如果不是,DL_QM_Sink[]通過一個 scratch ring向隊列管理器 QM發(fā)送一個入隊請求,并將緩存的包頭寫入 DRAM,將包的元信息寫入 SRAM。 基于 Cell的隊列管理器( Cell QM) ? 負責對發(fā)送隊列執(zhí)行入隊和出隊操作,發(fā)送隊列用硬件 SRAM鏈表實現(xiàn)。 ? 通過 scratch ring接收功能流水線的入隊請求(以包為單位),接收 CSIX調(diào)度器的離隊請求(以 cell)為單位。 ? 每當隊列狀態(tài)發(fā)生轉(zhuǎn)移, QM通過鄰居環(huán)向 CSIX調(diào)度器發(fā)送一個消息。 ? 在每一次離隊操作后, QM通過一個 scratch ring向 CSIX TX微塊發(fā)送一個傳輸請求(每次傳輸一個 cell)。 ? QM上的線程利用本地線程間信令機制嚴格按順序執(zhí)行。 CSIX調(diào)度器 ? 調(diào)度將要發(fā)送給 CSIX交換結(jié)構(gòu)的數(shù)據(jù)包,對交換結(jié)構(gòu)端口采用round robin,對同一端口上的各隊列采用加權(quán) round robin。 ? 調(diào)度和發(fā)送均以 cframe為單位進行: ? 接收從交換結(jié)構(gòu)來的流控消息(控制到每一個輸出 IXP2400的流量) ? 接收來自 QM的隊列狀態(tài)轉(zhuǎn)移消息 ? 檢查 TX流水線中的 cframe長度是否在門限內(nèi) ? 確定一個要調(diào)度的隊列( Round Robin) ? 向 QM發(fā)送一個離隊消息 CSIX TX ? 從 QM接收發(fā)送請求消息,每接收一個發(fā)送請求就將一個 cframe移入一個 TBUF: ? 數(shù)據(jù)包的分片狀態(tài)以及包的元數(shù)據(jù)被緩存在本地存儲器中并用 CAM進行查找; ? 在每個 cframe前加上 CSIX頭和 TM(流量管理)頭; ? 數(shù)據(jù)包發(fā)送完畢后,釋放相應的緩沖器。 ? 使用折疊技術(shù)嚴格按順序執(zhí)行。 CSIX RX ? 從 CSIX交換結(jié)構(gòu)接收 cframe,并將它們重組成 IP包。 ? 支持高達 64K個 VOQ( Virtual Output Queue),這意味著重組上下文存放在SRAM中,折疊技術(shù)用來優(yōu)化上下文的讀 修改 寫。 ? 本地存儲器中緩存了 16個上下文, CAM被用來查找上下文。輸入 blade ID和 QoS類被用來唯一地標識一個上下文,并用作查找 CAM的關(guān)鍵字。 ? 包重組結(jié)束后,建立包的元信息,并將元信息傳遞給流水線的下一級。 PPP封裝 ? 根據(jù)包的元數(shù)據(jù)中的下一跳 ID,將一個 PPP頭加到數(shù)據(jù)包上,并將數(shù)據(jù)包傳遞到流水線的下一級。 ? 如果一跳 ID被設置為一個非法的值( 1),那么該微塊假設 PPP頭已經(jīng)加上了,只是將包傳遞到下一級。 基于包的隊列管理器 ? 和基于 cell的隊列管理器基本相同,只是對包而不是對cframe進行操作。 ? 對于調(diào)度器的每個離隊請求,返回一個離隊響應消息,消息中包含調(diào)度器實現(xiàn) DRR算法所需要的包長度。 包調(diào)度器 ? 調(diào)度將要從 POS接口上發(fā)送的 POS分組 。 ? 在不同端口間采用 WRR算法,在同一端口的不同隊列間采用 DRR算法。 ? 調(diào)度器利用 Packet TX微塊的反饋信息監(jiān)視每個端口上已調(diào)度但尚未發(fā)送的包的數(shù)量。如果數(shù)量超過一個預定的值,調(diào)度器停止調(diào)度該端口。 Packet TX ? 通過媒體接口發(fā)送數(shù)據(jù)包: ? 將數(shù)據(jù)包分割成 mpacket,并將 mpacket移入 TBUF。 ? 最多支持 16個虛擬端口,發(fā)送上下文保存在本地存儲器。 ? 監(jiān)視 MSF中對應每個端口的 TBUF利用率是否超出了一個門限,若是則停止向那個端口發(fā)送,所有向該端口發(fā)送數(shù)據(jù)包的請求在本地存儲器中排隊。 ? 定期向調(diào)度器反饋已發(fā)送了多少數(shù)據(jù)包。 ? 支持 SPHY 1 32(一個 OC48端口)、 MPHY4(四個 OC12端口)和MPHY16(最多 16個虛擬端口)三種配置。 ? 對前兩種配置,微塊運行在一個微引擎上;對于 MPHY16模式,微塊運行在兩個微引擎上。
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1