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

正文內(nèi)容

第四部分intel網(wǎng)絡(luò)處理器-wenkub.com

2024-08-28 08:14 本頁面
   

【正文】 ? 支持 SPHY 1 32(一個 OC48端口)、 MPHY4(四個 OC12端口)和MPHY16(最多 16個虛擬端口)三種配置。 Packet TX ? 通過媒體接口發(fā)送數(shù)據(jù)包: ? 將數(shù)據(jù)包分割成 mpacket,并將 mpacket移入 TBUF。 包調(diào)度器 ? 調(diào)度將要從 POS接口上發(fā)送的 POS分組 。 PPP封裝 ? 根據(jù)包的元數(shù)據(jù)中的下一跳 ID,將一個 PPP頭加到數(shù)據(jù)包上,并將數(shù)據(jù)包傳遞到流水線的下一級。 ? 支持高達(dá) 64K個 VOQ( Virtual Output Queue),這意味著重組上下文存放在SRAM中,折疊技術(shù)用來優(yōu)化上下文的讀 修改 寫。 CSIX調(diào)度器 ? 調(diào)度將要發(fā)送給 CSIX交換結(jié)構(gòu)的數(shù)據(jù)包,對交換結(jié)構(gòu)端口采用round robin,對同一端口上的各隊(duì)列采用加權(quán) round robin。 ? 通過 scratch ring接收功能流水線的入隊(duì)請求(以包為單位),接收 CSIX調(diào)度器的離隊(duì)請求(以 cell)為單位。 ? 如果數(shù)據(jù)包是一個 PPP控制包或 IPv6包,該包被標(biāo)記為 IX_EXCEPTION,否則沿流水線往下傳。 PPP解封裝和分類 ? DL_Source[]從 scratch ring取出包緩沖器句柄,讀入包元信息,從 DRAM中將32個字節(jié)的包頭讀入到由傳輸寄存器維護(hù)的 header cache中。 ? 使用微引擎中的全部 8個線程,每個線程一次處理一個 mpacket。 ? 若查找成功,微引擎利用返回的隊(duì)列描述符位置,直接對緩存的隊(duì)列描述符進(jìn)行操作。 ? QArray常用于緩存以下 3種數(shù)據(jù)結(jié)構(gòu): ? 長期駐留的隊(duì)列描述符:如空閑緩沖器鏈表、丟包隊(duì)列等。因此,建議使用 Scratch ring作為處理器之間傳遞數(shù)據(jù)包的機(jī)制, SRAM ring用于對操作速度要求不高的通信場合或別的用途。 ? 將一個緩沖器句柄插入空閑鏈表意味著相應(yīng)的包緩沖器被釋放,因而丟棄數(shù)據(jù)包是一個開銷很小的操作。 ? 軟件總是使用空閑鏈表單元地址來標(biāo)識緩沖器,并只在需要時轉(zhuǎn)換成對應(yīng)的 DRAM地址。 緩沖器隊(duì)列與緩沖器分配 ? 如何管理空閑的包緩沖器: ? 空閑包緩沖器的信息存放在什么地方? ? 如何最小化包緩沖器分配和回收的開銷? ? IXP2xxx依靠硬件支持實(shí)現(xiàn)高速處理: ? 在 SRAM中使用一個單鏈表( FIFO隊(duì)列)管理空閑包緩沖器,鏈表中的一個元素對應(yīng) DRAM中的一個空閑緩沖器。 ? 包緩沖器機(jī)制從 DRAM的一個較大的連續(xù)地址空間中分配一組固定大?。ǖ湫椭禐?2048字節(jié))的緩沖器,每個緩沖器用來存放一個包。 ? 輸出微塊( TX)負(fù)責(zé)將分組從內(nèi)存發(fā)送到物理輸出端口,并回收相應(yīng)的 DRAM緩沖器: ? TX將分組劃分成一系列 mpacket,將每個 mpacket從內(nèi)存拷貝到 MSF的 TBUF中。芯片制造商建議的 mpacket大小為 128字節(jié) 。 Mpacket ? 輸入和輸出微塊與 MSF連接,需要處理到內(nèi)存的實(shí)際傳輸。 ? 例如,微塊要將數(shù)據(jù)包發(fā)送給 XScale Core時, ? 調(diào)用 dl_set_exception[],給出微塊 ID、異常代碼和dl_next_block等參數(shù)。 微塊的邏輯調(diào)用圖 拉平的微塊調(diào)用圖 Dispatch loop(續(xù)) ? Dispatch loop提供兩個系統(tǒng)微塊: ? DL_Source[]:該微塊是一個源微塊,從 scratch ring中取一個包。 ? IX_NULL: 指示正在處理的是一個空數(shù)據(jù)包。 ? 為使微塊具有一般性,邏輯輸出用符號名字表示,定義在頭文件中,并賦以適當(dāng)?shù)奈K ID。 ? 用微代碼編寫的微塊: ? 初始化宏 ? 包處理宏 ? 用 MicroC編寫的微塊: ? 初始化函數(shù) ? 包處理函數(shù) 微塊的名字和 ID ? 每個微塊在系統(tǒng)內(nèi)都有一個唯一的名字和一個 8比特的 ID。 微塊與流水線級 ? 一般而言, ? 一個上下文流水線級被映射到一個微引擎中的一個微塊以及 XScale Core中一個相關(guān)聯(lián)的內(nèi)核組件, dispatch loop一般不需要。 ? 一個微塊組可以在一個或多個微引擎上實(shí)例化,但兩個微塊組不能使用相同的微引擎。 ? 一個典型的網(wǎng)絡(luò)系統(tǒng)至少包括三個連接成一條流水線的微塊(輸入、處理、輸出),復(fù)雜的系統(tǒng)可以加入更多的微塊。 ? 實(shí)際應(yīng)用中時延超限情形居多,可以通過增加微引擎中的線程數(shù)來平衡計(jì)算和訪存時間。 ? 這種技術(shù)稱為折疊,即將多次的 RMW操作折疊為一次讀 多次修改 一次或多次寫操作。 ? 改進(jìn)后的 RMW操作,線程先用數(shù)據(jù)標(biāo)識符查找 CAM: ? 命中: CAM查找返回一個 hit標(biāo)志和數(shù)據(jù)在本地存儲器中的位置,直接對數(shù)據(jù)進(jìn)行快速的 RMW操作。 ? RMW是串行數(shù)據(jù)流處理問題中最重要的一種情形,往往需要進(jìn)行多次外部存儲器訪問,且操作的數(shù)據(jù)結(jié)構(gòu)往往比較復(fù)雜,造成很大的訪存延遲。 ? 相鄰微引擎之間的包處理步調(diào)錯開一個子任務(wù)時間 (稱 task staggering),解決不同微引擎之間的互斥問題。 ? 數(shù)據(jù)包嚴(yán)格按順序分配給各個線程。 ? 數(shù)據(jù)包嚴(yán)格按順序分配給各個線程。每個微塊組獨(dú)立完成一個數(shù)據(jù)包的處理功能,形成一個相對獨(dú)立、完整的處理環(huán)節(jié)。 ? 微塊可以重用,可以通過微塊組合實(shí)現(xiàn)所需要的應(yīng)用。 用低層庫寫的宏或函數(shù);多個微塊可連接成微塊組。 ? Intel IXA包括三個部分:微引擎、 XScale和 IXA可移植框架。 ? 由于訪問微引擎的所有 API位于內(nèi)核地址空間,因此XScale上的代碼必須被設(shè)計(jì)為是可裝載內(nèi)核模塊的一部分。 ? 慢路徑: XScale Core,處理例外包。 ? 每個硬件單元包含了可執(zhí)行多種加密標(biāo)準(zhǔn)的硬件: ? 兩個 3DES/DES核 ? 一個 AES核,可以使用 12 192或 256比特的密鑰 ? 兩個用于認(rèn)證的 SHA1核 ? 支持一些常見的標(biāo)準(zhǔn),如 ECB和 CBC ? 所有加密信息(如密鑰)包含在兩個加密硬件單元中,不會保存在共享存儲器中。 ? 線程創(chuàng)建發(fā)送控制字。 ? 在將 RBUF單元中的內(nèi)容讀入傳輸寄存器或 DRAM存儲器之后,線程將RBUF單元釋放。 MSF接收單元 MSF數(shù)據(jù)包接收流程 ? 當(dāng)某一個線程完成指定的數(shù)據(jù)包處理任務(wù)后,將自己加入到Receive_Thread_Freelist。 ? 每個 BUF包含 8KB,可以被劃分為大小為 64字節(jié)、 128字節(jié)或 256字節(jié)的單元。 MSF接口 ? MSF是 IXP2XXX上的一個復(fù)雜單元,提供與外部設(shè)備進(jìn)行高速包傳輸?shù)闹饕涌凇? QArray ? SRAM控制器集成了稱為 QArray的硬件結(jié)構(gòu)來支持上述的數(shù)據(jù)結(jié)構(gòu): ? 每個 SRAM通道有一個 QArray。 鏈表和環(huán)緩沖器 ? 鏈表和環(huán)緩沖器是網(wǎng)絡(luò)數(shù)據(jù)處理中非常重要的數(shù)據(jù)結(jié)構(gòu), ? 鏈表:由位于不連續(xù)的存儲空間中的若干 buffer組成, buffer的個數(shù)不限。 ? 數(shù)據(jù)先緩存在 push_fifo中,然后通過 D Push總線將數(shù)據(jù)推送到 xfer指定的傳輸寄存器,并給微引擎發(fā)送 sig1和 sig2指定的信號。 ? 檢查指令的 Target_ID,若為 DRAM則將指令緩存在 cmd_fifo隊(duì)列中。 ? 以 8字節(jié)為單位進(jìn)行讀 /寫,一條指令可以讀 /寫連續(xù)的8~128個字節(jié),特別適合大數(shù)據(jù)量傳輸。 ? Cap指令用于讀 /寫 CSR,如: ? Cap [read, xfer, csr_addr], opt_tok ? Cap [write, xfer, csr_addr], opt_tok ? Cap [fast_wr, xfer, csr_addr], opt_tok. 處理器間通信 ? 微引擎與 XScale通信( contexttoXScale): ? 中斷:微引擎可使用 SHaC單元向 XScale發(fā)出中斷 ? 共享存儲器:與 polling機(jī)制一起使用 ? 存儲器環(huán)機(jī)制:用于轉(zhuǎn)發(fā)數(shù)據(jù) ? 線程之間的通信( contexttocontext): ? 事件信號 ? Scratchpad或 SRAM環(huán)機(jī)制:任意線程 ? 鄰居寄存器:相鄰微引擎上的線程 ? 反射總線機(jī)制:任意微引擎上的線程 ? IXP2xxx之間: ? CBUS機(jī)制:不同 IXP2xxx上的線程相互通信。 ? 硬件定義了四十多個微引擎 CSR,每個 CSR控制處理的一個方面。 ? 啟動哈希操作的過程: ? 微引擎將 1~3個數(shù)據(jù)值放在一組連續(xù)的 SRAM傳輸寄存器中,然后將哈希運(yùn)算指令發(fā)送到命令總線。 ? 使用 Pull/Push Reflector在不相鄰的微引擎間傳輸數(shù)據(jù): ? 首先通過 Pull總線從源微引擎中將數(shù)據(jù)讀入 Scratchpad ? 再通過 Push總線將數(shù)據(jù)寫入目的微引擎。 ? SHaC單元從命令總線接收命令,控制邏輯檢查命令的 Target_ID,若為Scratch則將指令緩存在入口隊(duì)列中。 ? 提供一般的數(shù)據(jù)讀 /寫操作,一次可從 Scratch中讀 /寫 64個字節(jié)( 16個長字)的數(shù)據(jù),可用作本地?cái)?shù)據(jù)存儲器。 ? 到推 /拉總線的連接,傳遞參數(shù)及計(jì)算結(jié)果。因此,當(dāng)一個位置被反復(fù)引用或相鄰位置被順序引用時,本地存儲器訪問可以得到優(yōu)化。 ? 低延遲:建立之后只需要一個指令周期,適合存放臨時結(jié)果。 ? 鄰居機(jī)制只用來傳遞少量的數(shù)據(jù),如數(shù)據(jù)項(xiàng)的地址。 鄰居寄存器與軟件流水線 ? 微引擎硬件被設(shè)計(jì)為支持軟件流水線模型,軟件流水線可以包含來自多個微引擎的模塊。 寄存器絕對編址 傳輸寄存器 ? 微引擎使用傳輸寄存器緩存與外部設(shè)備交換的數(shù)據(jù),以協(xié)調(diào)微引擎與外部設(shè)備之間的速度差異。 ? 寄存器尋址方式: ? 絕對尋址:唯一指定一個寄存器。 數(shù)據(jù)通道寄存器 ? 微引擎需要與許多硬件設(shè)備交互,許多交互是通過硬件寄存器發(fā)生的。 ? IXP2xxx提供折衷方案: ? 每個微引擎使用一個私有的指令存儲器,避免競爭。 ? 在線程交換指令中, 可以使用 AND、 OR等邏輯運(yùn)算符指令線程需要等待的多個事件信號。 ? 上下文切換由軟件控制,處于執(zhí)行狀態(tài)的線程執(zhí)行一條線程交換指令后轉(zhuǎn)入休眠狀態(tài),微引擎對當(dāng)前處于就緒狀態(tài)的所有上下文進(jìn)行仲裁判優(yōu),將控制權(quán)交給優(yōu)先級最高的上下文。 線程狀態(tài)轉(zhuǎn)移 ? 未激活狀態(tài):不執(zhí)行任何操作。 ? 用于計(jì)算 ATM或以太網(wǎng)等 2層數(shù)據(jù)包的校驗(yàn)和。 微引擎的執(zhí)行數(shù)據(jù)通道(續(xù)) ? 字節(jié)對齊:從連續(xù)的 8個字節(jié)中取出任意偏移量( 0~3)的連續(xù) 4個字節(jié)。 微引擎的執(zhí)行數(shù)據(jù)通道 ? 微引擎的指令執(zhí)行單元也稱執(zhí)行數(shù)據(jù)通道( Execution Data Path),可執(zhí)行移位、加 /減、邏輯運(yùn)算、乘法、字節(jié)對齊、比特操作、 CAM查找等。 執(zhí)行流水線 ? RISC架構(gòu): RISC處理器將一個指令的執(zhí)行分成若干個階段,通過同時執(zhí)行幾條指令的不同階段來重疊多條指令的執(zhí)行。 ? 微引擎被設(shè)計(jì)用來執(zhí)行快路徑上的處理,包括 Ingress和Egress協(xié)議處理任務(wù): ? 從物理層硬件接收包 ? 檢查校驗(yàn)和 ? 包頭處理和分類 ? 包緩存 ? 查表和轉(zhuǎn)發(fā) ? 包頭修改 ? 校驗(yàn)和計(jì)算 ? 從物理層硬件發(fā)送包 微引擎架構(gòu)的特點(diǎn) ? 一種可編程微控制器(微引擎不是一個傳統(tǒng)的 CPU) ? 采用 RISC設(shè)計(jì) ? 本地的控制存儲器:微引擎的指令存儲器 ? 執(zhí)行數(shù)據(jù)通路( Execution Datapath):微引擎的指令執(zhí)行單元 ? 一個算術(shù)邏輯單元 ALU ? 一個 16入口的 CAM,每個入口 32比特 ? 8個線程和上下文切換的硬件支持 ? 數(shù)據(jù)通道寄存器 ? 256個通用寄存器 ? 512個傳輸寄存器
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1