微波EDA网,见证研发工程师的成长! 2025濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌涘☉姗堟敾闁告瑥绻橀弻锝夊箣閿濆棭妫勯梺鍝勵儎缁舵岸寮诲☉妯锋婵鐗婇弫楣冩⒑閸涘﹦鎳冪紒缁橈耿瀵鎮㈤搹鍦紲闂侀潧绻掓慨鐢告倶瀹ュ鈷戠紒瀣健椤庢銇勯敂璇茬仸闁炽儻绠撳畷绋课旀担鍛婄杺闂傚倸鍊搁悧濠勭矙閹达讣缍栫€光偓閳ь剛妲愰幘瀛樺闁告繂瀚ぐ娆撴⒑閹肩偛鍔€闁告粈绀侀弲锝夋⒒娴g瓔鍤欓悗娑掓櫇缁瑩骞掗弴鐔稿櫡闂備浇顕х换鎰瑰璺哄偍濠靛倸鎲$粻鎺撶節閻㈤潧孝闁挎洏鍊濋獮濠冩償閵忋埄娲搁梺璇″灱閻忔梹鎯旈妸銉у€為悷婊勭箞閻擃剟顢楅埀顒勫煘閹达箑鐏崇€规洖娲ら悡鐔兼倵鐟欏嫭绀堥柛鐘崇墵閵嗕礁顫滈埀顒勫箖濞嗗浚鍟呮い鏃堟暜閸嬫捇骞橀瑙f嫽闂佺ǹ鏈悷褔藝閿曞倹鐓欓悹鍥囧懐鐦堥梺璇″枤閸忔ɑ淇婇悿顖fЪ閻庤娲栧鍫曞箞閵娿儺娓婚悹鍥紦婢规洟鏌f惔銏╁晱闁哥姵鐗犻垾锕傛倻閽樺鐎梺褰掑亰閸樿偐娆㈤悙娴嬫斀闁绘ɑ褰冮鎾煕濮橆剚鍤囨慨濠勭帛閹峰懘鎮烽柇锕€娈濈紓鍌欐祰椤曆囧磹濮濆瞼浜辨俊鐐€栭幐楣冨磹閿濆應妲堥柕蹇曞Х椤︽澘顪冮妶鍡樺暗濠殿喚鍏橀弫宥呪堪閸啿鎷虹紓鍌欑劍閿氬┑顕嗙畵閺屾盯骞樼€靛憡鍣伴悗瑙勬礃缁诲牊淇婇崼鏇炲耿婵炲棙鍩堥崯搴g磽娴i缚妾搁柛娆忓暣钘熼柟鎹愭硾婵剟鏌嶈閸撶喖骞冨Δ鈧埢鎾诲垂椤旂晫浜俊鐐€ら崢楣冨礂濮椻偓閻涱噣宕橀纰辨綂闂侀潧鐗嗛幊搴g玻濞戞瑧绡€闁汇垽娼у瓭闁诲孩鍑归崰娑㈠磹閹绢喗鈷掗柛灞捐壘閳ь剟顥撶划鍫熺瑹閳ь剟鐛径鎰櫢闁绘ǹ灏欓鍥⒑缁洖澧茬紒瀣灥椤斿繐鈹戦崶銉ょ盎闂佸搫鍟崐濠氬箺閸岀偞鐓曢柣鏃堟敱閸g晫绱掓潏銊﹀磳鐎规洘甯掗~婵嬵敄閽樺澹曢梺褰掓?缁€浣哄瑜版帗鐓熼柟杈剧到琚氶梺鎼炲€曠€氫即寮婚妶澶婄濞达綀顫夐柨顓㈡⒑閹肩偛濡芥慨濠傜秺婵$敻宕熼姘鳖啋闂佸憡顨堥崑鐔哥婵傚憡鈷戦柟鑲╁仜婵″ジ鏌涙繝鍌涘仴鐎殿喛顕ч埥澶愬閳哄倹娅囬梻浣瑰缁诲倸螞濞戔懞鍥Ψ閳哄倵鎷洪梺鑺ッˇ顖炲汲閻斿吋鐓曢柣妯虹-婢х數鈧鍠栭…宄邦嚕閹绢喗鍋勯柧蹇氼嚃閸熷酣姊绘担铏瑰笡闁告棑绠撳畷婊冾潩閼搁潧浠ч梺鍝勬储閸ㄦ椽鍩涢幋鐘电<閻庯綆鍋掗崕銉╂煕鎼达紕绠插ǎ鍥э躬椤㈡洟鏁愰崶鈺冩澖闁诲孩顔栭崰娑㈩敋瑜旈崺銉﹀緞婵犲孩鍍靛銈嗗姧缁茶姤鍒婃导瀛樷拻濞达絽鎲¢崯鐐烘煙缁嬫寧顥㈤柛鈹惧亾濡炪倖宸婚崑鎾诲础闁秵鐓曟い鎰剁悼缁犮儲绻涢幘鎰佺吋闁哄本娲熷畷鐓庘攽閸パ勭暬闂備胶绮粙鎺斿垝閹捐钃熼柣鏃傚帶缁€鍕煏閸繃顥滄い蹇ユ嫹04闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佽鍨庨崘锝嗗瘱闂備胶顢婂▍鏇㈠箲閸ヮ剙鐏抽柡鍐ㄧ墕缁€鍐┿亜韫囧海顦﹀ù婊堢畺閺屻劌鈹戦崱娆忓毈缂備降鍔岄妶鎼佸蓟閻斿吋鍎岄柛婵勫劤琚﹂梻浣告惈閻绱炴笟鈧妴浣割潨閳ь剟骞冨▎鎾崇妞ゆ挾鍣ュΛ褔姊婚崒娆戠獢婵炰匠鍏炬稑鈻庨幋鐐存闂佸湱鍎ら〃鎰礊閺嶃劎绡€闂傚牊渚楅崕鎰版煛閸涱喚鍙€闁哄本绋戦埥澶愬础閻愬樊娼绘俊鐐€戦崕鏌ユ嚌妤e啫鐓橀柟瀵稿仜缁犵娀姊虹粙鍖℃敾妞ゃ劌妫濋獮鍫ュΩ閳哄倸鈧鏌﹀Ο渚Ш闁挎稒鐩铏圭磼濡搫顫庨梺绋跨昂閸婃繂鐣烽幋鐘亾閿濆骸鏋熼柣鎾跺枑娣囧﹪顢涘┑鍡楁優濠电姭鍋撳ù鐘差儐閻撳啰鎲稿⿰鍫濈婵炴垶纰嶉鑺ユ叏濮楀棗澧婚柛銈嗘礋閺岀喓绱掗姀鐘崇亪濡炪値鍋勯幊姗€寮诲澶婄厸濞达絽鎲″▓鏌ユ⒑缂佹ḿ绠栨繛鑼枎椤繒绱掑Ο璇差€撻梺鑺ッ敍宥夊箻缂佹ḿ鍙嗗┑顔斤供閸樿绂嶅⿰鍫熺叆闁哄啫娴傞崵娆撴煛鐎c劌鈧妲愰幒鎾寸秶闁靛⿵瀵屽Λ鍐倵濞堝灝鏋熼柟姝屾珪閹便劑鍩€椤掑嫭鐓冮梺娆惧灠娴滈箖姊鸿ぐ鎺濇缂侇噮鍨抽幑銏犫槈濞嗘劗绉堕梺鍛婃寙閸涘懏鑹鹃埞鎴︽倷閸欏鐝旂紓浣瑰絻濞尖€愁嚕椤愶富鏁婇悘蹇旂墬椤秹姊洪棃娑㈢崪缂佽鲸娲熷畷銏ゆ焼瀹ュ棌鎷洪梺鍛婄箓鐎氼剟寮虫繝鍥ㄧ厱閻庯綆鍋呯亸鎵磼缂佹ḿ娲撮柟宕囧█椤㈡鍩€椤掑嫬鍑犳繛鎴欏灪閻撶喐绻涢幋婵嗚埞婵炲懎绉堕埀顒侇問閸犳洜鍒掑▎鎾扁偓浣肝熷▎鐐梻浣告惈閹冲繒鎹㈤崼婵愭綎婵炲樊浜濋ˉ鍫熺箾閹寸偠澹樻い锝呮惈閳规垿鎮欐0婵嗘疂缂備浇灏▔鏇㈠礆閹烘鏁囬柣鏃堫棑缁愮偞绻濋悽闈浶㈤悗娑掓櫇閳ь剟娼ч惌鍌氼潖濞差亝顥堟繛鎴炶壘椤e搫鈹戦埥鍡椾簼缂佸甯″鏌ュ醇閺囩喓鍔堕悗骞垮劚濡盯宕㈤柆宥嗙厽閹兼惌鍨崇粔鐢告煕閹惧鎳勭紒鍌涘浮閺屽棗顓奸崱娆忓箥婵$偑鍊栧ú鏍涘☉姘К闁逞屽墯缁绘繄鍠婃径宀€锛熼梺绋跨箲閿曘垹鐣峰ú顏呮櫢闁绘ǹ灏欓敍婊冣攽閻樿宸ラ柛鐕佸亞缁煤椤忓應鎷婚梺绋挎湰閻熝囁囬敃鍌涚厵缁炬澘宕禍婊堟偂閵堝鐓忓┑鐐靛亾濞呭懐鐥崜褏甯涚紒缁樼洴楠炲鈻庤箛鏇氭偅闂備胶绮敮鎺楁倶濮樿泛桅闁告洦鍨扮粻鎶芥煕閳╁啨浠﹀瑙勬礃缁绘繈鎮介棃娴舵盯鏌涚€n偅宕屾慨濠冩そ椤㈡鍩€椤掑倻鐭撻柟缁㈠枟閸婂潡鏌涢…鎴濅簴濞存粍绮撻弻鐔煎传閸曨厜銉╂煕韫囨挾鐒搁柡灞剧洴閹垽宕妷銉ョ哗闂備礁鎼惉濂稿窗閺嵮呮殾婵炲棙鎸稿洿闂佺硶鍓濋〃蹇斿閿燂拷11闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佽鍨庨崘锝嗗瘱闂備胶顢婂▍鏇㈠箲閸ヮ剙鐏抽柡鍐ㄧ墕缁€鍐┿亜韫囧海顦﹀ù婊堢畺閺屻劌鈹戦崱娆忓毈缂備降鍔岄妶鎼佸蓟閻斿吋鍎岄柛婵勫劤琚﹂梻浣告惈閻绱炴笟鈧妴浣割潨閳ь剟骞冨▎鎾崇妞ゆ挾鍣ュΛ褔姊婚崒娆戠獢婵炰匠鍏炬稑鈻庨幋鐐存闂佸湱鍎ら〃鎰礊閺嶃劎绡€闂傚牊渚楅崕鎰版煛閸涱喚鍙€闁哄本绋戦埥澶愬础閻愬樊娼绘俊鐐€戦崕鏌ユ嚌妤e啫鐓橀柟瀵稿仜缁犵娀姊虹粙鍖℃敾妞ゃ劌妫濋獮鍫ュΩ閳哄倸鈧鏌﹀Ο渚Ш闁挎稒鐩铏圭磼濡搫顫庨梺绋跨昂閸婃繂鐣烽幋鐘亾閿濆骸鏋熼柣鎾跺枑娣囧﹪顢涘┑鍡楁優濠电姭鍋撳ù鐘差儐閻撳啰鎲稿⿰鍫濈婵炴垶纰嶉鑺ユ叏濮楀棗澧婚柛銈嗘礋閺岀喓绱掗姀鐘崇亪濡炪値鍋勯幊姗€寮诲澶婄厸濞达絽鎲″▓鏌ユ⒑缂佹ḿ绠栭柣妤冨Т椤繒绱掑Ο鑲╂嚌闂侀€炲苯澧撮柛鈹惧亾濡炪倖甯掗崐鍛婄濠婂牊鐓犳繛鑼额嚙閻忥繝鏌¢崨顓犲煟妤犵偛绉归、娆撳礈瑜濈槐鍙変繆閻愵亜鈧牕煤閺嶎灛娑樷槈閵忕姷顦繛瀵稿帶閻°劑骞婂鑸电厸鐎广儱娴锋禍鍦喐閻楀牆绗氶柡鍛叀閺屾盯顢曢妶鍛彙婵炲濮弲娑⑩€旈崘顔嘉ч柛鈩兦氶幏鐟扳攽閻愯泛鐨洪柛鐘查叄閿濈偠绠涢幘浣规そ椤㈡棃宕ㄩ婵堟暰闂傚倷娴囬~澶愵敊閺嶎厼绐楁俊銈呮噹缁犵喎鈹戦崒姘暈闁抽攱鍨块弻銈嗘叏閹邦兘鍋撻弴銏犲嚑闁稿瞼鍋為悡鏇㈠箹鏉堝墽绋婚柡鍡╁墯椤ㄣ儵鎮欓幓鎺撴濡炪値鍋呯划鎾诲春閳ь剚銇勯幒鎴濐仼闁哄嫨鍎甸弻銊╂偄閸濆嫅銏㈢磼閳ь剟宕橀埞澶哥盎闂婎偄娲﹂幐濠氭晬閺冨倻纾奸弶鍫涘妿閸欌偓濠殿喖锕︾划顖炲箯閸涘瓨鎯為柣鐔稿椤愬ジ姊绘担钘夊惞闁哥姴妫濆畷褰掓寠婢跺本娈鹃梺纭呮彧缁犳垹绮婚懡銈囩=濞达綀鐤紓姘舵煕濮椻偓娴滆泛顫忓ú顏咁棃婵炴番鍔岀紞濠傜暦閺囥垹绠柦妯侯槹濡差剟姊洪幐搴g畵婵炶尙濞€瀹曟垿骞橀弬銉︾亖闂佸壊鐓堥崰妤呮倶閸繍娓婚柕鍫濋瀵噣鏌¢埀顒佹綇閵娧€鏀虫繝鐢靛Т濞层倗绮婚悷鎳婂綊鏁愰崨顔藉枑闂佸憡蓱閹倸顫忛搹鍦煓闁圭ǹ瀛╅幏閬嶆⒑濞茶寮鹃柛鐘冲哺閹崇偞娼忛妸褜娴勯柣搴秵閸嬧偓闁归绮换娑欐綇閸撗冨煂闂佺娅曢悷銊╁Φ閹版澘绠抽柟瀛樼箘瑜板淇婇悙顏勨偓鏍暜閹烘纾瑰┑鐘崇閸庢绻涢崱妯诲鞍闁绘挻鐟╁鍫曞醇閻斿嘲濮㈤梺浼欓檮缁捇寮婚埄鍐╁缂佸绨遍崑鎾诲锤濡も偓閽冪喖鏌曟繛鐐珕闁稿妫濋弻娑氫沪閸撗€妲堝銈呴獜閹凤拷 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佽鍨庨崘锝嗗瘱闂備胶顢婂▍鏇㈠箲閸ヮ剙鐏抽柡鍐ㄧ墕缁€鍐┿亜韫囧海顦﹀ù婊堢畺閺屻劌鈹戦崱娆忓毈缂備降鍔岄妶鎼佸蓟閻斿吋鍎岄柛婵勫劤琚﹂梻浣告惈閻绱炴笟鈧妴浣割潨閳ь剟骞冨▎鎾崇妞ゆ挾鍣ュΛ褔姊婚崒娆戠獢婵炰匠鍏炬稑鈻庨幋鐐存闂佸湱鍎ら〃鎰礊閺嶃劎绡€闂傚牊渚楅崕鎰版煛閸涱喚鍙€闁哄本绋戦埥澶愬础閻愬樊娼绘俊鐐€戦崕鏌ユ嚌妤e啫鐓橀柟瀵稿仜缁犵娀姊虹粙鍖℃敾妞ゃ劌妫濋獮鍫ュΩ閳哄倸鈧鏌﹀Ο渚Ш闁挎稒鐩铏圭磼濡搫顫庨梺绋跨昂閸婃繂鐣烽幋鐘亾閿濆骸鏋熼柣鎾跺枑娣囧﹪顢涘┑鍡楁優濠电姭鍋撳ù鐘差儐閻撳啰鎲稿⿰鍫濈婵炴垶纰嶉鑺ユ叏濮楀棗澧婚柛銈嗘礋閺岀喓绱掗姀鐘崇亪濡炪値鍋勯幊姗€寮婚敐鍛傜喖鎳¢妶鍛患闂備焦鎮堕崕顖炲礉鎼淬劌鍌ㄩ梺顒€绉甸悡鐔肩叓閸ャ劍绀€濞寸姵绮岄…鑳槺缂侇喗鐟╅獮鍐晸閻欌偓閺佸秵鎱ㄥΟ鍨汗闁哥偟鏁婚弻锝夋偄閸濄儲鍣ч柣搴㈠嚬閸樺墽鍒掗崼銉ョ劦妞ゆ帒瀚埛鎴︽倵閸︻厼顎屾繛鍏煎姍閺屾盯濡搁妷锕€浠撮梺闈涙缁€渚€鍩㈡惔銊ョ闁绘ḿ顣槐鏌ユ⒒娴g瓔娼愰柛搴ゆ珪閺呰埖鎯旈敐鍥╁箵濠德板€曢幊蹇涘煕閹烘嚚褰掓晲閸涱喖鏆堥梺鍝ュ枔閸嬬偤濡甸崟顖f晣闁绘劖鎯屽Λ锕傛倵鐟欏嫭绀冮柨鏇樺灲瀵偊骞囬弶鍨€垮┑鐐叉閼活垱绂嶉悙顒傜鐎瑰壊鍠曠花濂告煕婵犲倻浠涙い銊e劦閹瑩鎳犻鑳闂備礁鎲″鍦枈瀹ュ洦宕叉繛鎴欏灪閸ゆ垶銇勯幒鍡椾壕闂佸疇顕ч悧蹇涘焵椤掑喚娼愭繛鍙夛耿瀹曞綊宕稿Δ鍐ㄧウ濠殿喗銇涢崑鎾绘煙閾忣偆鐭掓俊顐㈠暙閳藉鈻庨幋鏂夸壕妞ゆ挶鍨洪埛鎺懨归敐鍛暈闁哥喓鍋炵换娑氭嫚瑜忛悾鐢碘偓瑙勬礃缁矂鍩ユ径鎰潊闁斥晛鍟悵顐g節閻㈤潧浠﹂柛顭戝灦瀹曠懓煤椤忓嫮鍘遍梺纭呮彧闂勫嫰鎮¢弴鐔虹闁瑰鍊戝鑸靛剳閻庯綆鍋嗙粻楣冩煕椤愩倕鏋戠紒鈧埀顒勬⒑鐎圭媭娼愰柛銊ユ健楠炲啫鈻庨幋鐐茬彴閻熸粍鍨垮畷銉╊敃閿旇В鎷洪柣鐘叉礌閳ь剝娅曢悘鍡涙⒑閸涘⿴娈曞┑鐐诧躬婵″瓨鎷呴崜鍙夊兊闁荤娀缂氬▍锝夊礉閿曗偓椤啴濡堕崱妤€娼戦梺绋款儐閹瑰洭寮婚敐澶嬫櫜闁搞儜鍐ㄧ闁诲氦顫夊ú鏍Χ缁嬫鍤曢柟缁㈠枛鎯熼梺鎸庢婵倝鎮靛⿰鍕瘈闁汇垽娼цⅷ闂佹悶鍔庨崢褔鍩㈤弬搴撴闁靛繆鏅滈弲鐐烘⒑缁洖澧查柕鍥ㄧ洴瀵ǹ顓兼径瀣偓鍫曟煟閹邦喚绀嬮柟鐑橆殔缂佲晛霉閻樺樊鍎愰柣鎾跺枑娣囧﹪顢涘┑鍥朵哗婵炲濮甸惄顖炲蓟閿熺姴骞㈤煫鍥ㄦ⒐閻濇棃姊虹€圭媭娼愰柛銊ユ健閵嗕礁鈻庨幘鏉戞疅闂侀潧顦崕閬嶅绩椤撶喍绻嗛柕鍫濇搐鍟搁梺绋款儐閻╊垶寮崘顔嘉ㄩ柕澶樺枛濞堫偊姊洪崨濠冨闁搞劍澹嗙划璇测槈濞嗗秳绨婚梺鍦劋閸ㄥ灚绂嶉幍顔剧<闂侇剙绉抽幉鐐叏婵犲嫮甯涢柟宄版噽缁數鈧綆鍋嗙粔鐑芥煟鎼淬値娼愭繛鍙夛耿閺佸啴濮€閵堝啠鍋撴担鍓叉僵闁归鐒﹂埢宀勬⒒娴e憡鎯堥悶姘煎亰瀹曟繈骞嬮悙鎵畾闂佸壊鍋呭ú鏍嵁閵忋倖鐓涢柛銉㈡櫅鍟搁梺浼欑秮缁犳牕顫忕紒妯肩懝闁逞屽墮宀h儻顦归柟顔ㄥ洤骞㈡繛鍡楄嫰娴滅偓鎱ㄥΟ鐓庡付闁诲骏濡囬埀顒冾潐濞叉﹢銆冮崨瀛樺仼婵犻潧顑呯粈瀣亜閹烘垵鈧悂鐛崼鐔虹瘈闁汇垽娼ф禒婊勪繆椤愶綆娈橀柟骞垮灲楠炲缍呭鑸靛姇椤懘鏌嶉埡浣告殭鐎殿喗瀵х换婵嬫偨闂堟刀銏ゆ煙閸愯尙绠绘い銏℃閹晠鎮介悽纰夌床闂佸搫顦悧鍕礉瀹€鈧划顓㈠箳濡や焦鍤夐梺鎸庣箓椤︿即鎮¢悩娴嬫斀妞ゆ棁妫勬慨鍥煃瑜滈崗娆撳磹閺囩偛绁俊鐐€栫敮鎺斺偓姘煎弮閸╂盯骞掗幊銊ョ秺閺佹劙宕ㄩ鍏肩暭闁荤喐绮庢晶妤冩暜濡ゅ懎鐤炬繝闈涱儐閻撳繘鏌涢锝囩畺閻庢艾鎳橀弻銈夊级閹稿骸浠村┑顔硷攻濡炰粙銆佸Δ鍛劦妞ゆ帒鍊婚惌鎾绘煙缂併垹鏋熼柛濠傛健閺屾盯鈥﹂幋婵呯按婵炲瓨绮嶇划鎾诲蓟閻旂厧浼犻柛鏇ㄥ帨閵夆晜鐓曢煫鍥ㄦ尵閻掓悂鏌$仦鍓ф创闁诡喓鍨藉畷顐﹀Ψ閵夈儳鍝楅梻鍌欑閹碱偊鎯夋總绋跨獥闁哄诞鍛濠电偛妫欓幐绋挎纯闂備胶纭堕崜婵嬨€冭箛鏂款嚤闁跨噦鎷�婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘﹢寮婚敐澶婄闁挎繂妫Λ鍕⒑閸濆嫷鍎庣紒鑸靛哺瀵鈽夊Ο閿嬵潔濠殿喗顨呴悧濠囧极妤e啯鈷戦柛娑橈功閹冲啰绱掔紒姗堣€跨€殿喖顭烽弫鎰緞婵犲嫷鍚呴梻浣瑰缁诲倸螞椤撶倣娑㈠礋椤栨稈鎷洪梺鍛婄箓鐎氱兘宕曟惔锝囩<闁兼悂娼ч崫铏光偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備浇顕栭崹搴ㄥ礃閿濆棗鐦辩紓鍌氬€风欢锟犲闯椤曗偓瀹曞綊骞庨挊澶岊唹闂侀潧绻掓慨顓炍i崼銉︾厪闊洦娲栧暩濡炪倖鎸搁幖顐﹀煘閹达附鍊烽柛娆忣樈濡偟绱撴担铏瑰笡閻㈩垱顨堢划瀣箳閹惧崬浜濋梺鍛婂姀閺備線骞忛搹鍦=濞达絽澹婇崕鎰亜閹寸偟鎳囩€规洘娲栭鍏煎緞鐎n剙骞堝┑鐘垫暩婵挳宕幍顔句笉闁绘劗顣介崑鎾斥枔閸喗鐏堝銈庡幖閸㈡煡顢氶敐澶婄妞ゆ棁妫勬禍婊堟⒑閹呯妞ゆ洘鐗犲畷顖涙償閵婏妇鍘介梺缁樻煥閹芥粓鎯屾繝鍕<濠㈣泛鏈崵鈧梺浼欑悼閸忔﹢銆佸☉銏″€婚柛鈩兩戝▍鍥⒒娴g懓顕滄俊顐$铻為柛鏇ㄥ灠閻掑灚銇勯幒鎴濇殲缁绢參绠栭弻宥囨喆閸曨偆浼岄梺璇″枓閺呯姴鐣烽敐鍡楃窞濠电姴瀛╄ⅸ闂傚倸鍊烽悞锔界箾婵犲洤缁╅梺顒€绉撮崹鍌炴煕瑜庨〃鍛存嫅閻斿吋鐓熼柡鍐ㄦ处椤忕娀鏌i鐔烘噰闁哄瞼鍠撶划娆撳垂椤曞懎濡烽柣搴ゎ潐濞叉牜澹曢鐘愁潟闁规儳鐡ㄦ刊鎾煕濠靛棗鐝旈柨婵嗩槹閻撴瑧绱掔€n偒鍎ラ柣鎾跺帶閳规垿鏁嶉崟顒佹瘓閻庤娲滈崰鏍€佸☉妯锋婵炲棙鍔楄ぐ鍡涙⒒娴h棄鍚瑰┑顔芥綑鐓ら柍鍝勫暕閻掑﹥绻涢崱妯哄妞も晠鏀遍妵鍕冀閵娧呯厒缂佺偓宕樺Λ鍕Υ閹烘埈娼╂い鎺嶇劍閹瑩姊洪崫鍕靛剱缂佸甯℃俊鐢稿礋椤栵絾鏅i梺缁樕戣ぐ鍐嵁鐎n喗鈷戦梻鍫熺⊕椤ユ瑧绱掗埀顒佺瑹閳ь剟宕洪妷锕€绶為柟閭﹀墻濞煎﹪姊洪悙钘夊姕闁哄銈稿畷鎴﹀箻缂佹ê鈧鏌ら幁鎺戝姎闁逞屽墰閺佸寮婚敐澶婎潊闁靛繆妲呮禒顕€姊洪懡銈呮灈闁稿锕畷鐢稿即閵忥紕鍘甸梺璇″灡濠㈡ǹ顣块梻浣瑰▕閺€杈╂暜閹烘绠掗梻浣瑰缁诲倿鎮ф繝鍥舵晜闁绘ḿ绮崑銊︺亜閺嶃劎銆掗柍顖涙礈缁辨帞绱掑Ο鍏煎垱閻庤娲╃徊鎯ь嚗閸曨厺娌悷娆欑稻鐎氭煡姊虹拠鍙夊攭妞ゎ偄顦叅婵せ鍋撶€规洘绻傞埢搴ょ疀閺囩喐顔曢梻浣虹帛閸ㄥ綊鎮洪弮鍫濇瀬闁搞儯鍔庣粻楣冩煙鐎甸晲绱抽柛蹇氬亹閻濆爼鏌¢崶鈺佷汗闁衡偓閼恒儯浜滈柡鍐ㄥ€诲▔銏㈢磽閸屾稑鍝洪柡灞剧〒閳ь剨缍嗛崑鍛焊閻㈠憡鐓冪憸婊堝礈濮樿埖鍋勬い鎺戝缁狀垶鏌ㄩ悤鍌涘
首页 > 硬件设计 > 硬件工程师文库 > 基于FPGA和IP Core的定制缓冲管理的实现

基于FPGA和IP Core的定制缓冲管理的实现

时间:08-14 来源:本站整理 点击:
随着通信协议的发展及多样化,协议处理部分PE在硬件转发实现方面,普遍采用现有的商用芯片NP(Network Processor,网络处理器)来完成,流量管理部分需要根据系统的需要进行定制或采用商用芯片来完成。在很多情况下NP芯片、TM芯片、交换网芯片无法选用同一家厂商的芯片,这时定制TM成为了成本最低、系统最优化的方案,一般采用FPGA来实现,TM的常规结构如图1所示。

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝洨纾界€广儱鎷戦煬顒傗偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備浇顕栭崹搴ㄥ礃閿濆棗鐦遍梻鍌欒兌椤㈠﹤鈻嶉弴銏犵闁搞儺鍓欓悘鎶芥煛閸愩劎澧曠紒鈧崘鈹夸簻闊洤娴烽ˇ锕€霉濠婂牏鐣洪柡灞诲妼閳规垿宕卞▎蹇撴瘓缂傚倷闄嶉崝宀勫Χ閹间礁钃熼柣鏂垮悑閸庡矂鏌涘┑鍕姢鐞氾箓姊绘担鍛婃儓闁活厼顦辩槐鐐寸瑹閳ь剟濡存担鍓叉建闁逞屽墴楠炲啫鈻庨幘宕囶啇濡炪倖鎸鹃崳銉ノ涜濮婂宕掑▎鎴犵崲濠电偘鍖犻崗鐐☉閳诲酣骞嬮悙瀛橆唶闂備礁婀遍崕銈夈€冮幇顔剧闁哄秲鍔庣弧鈧梻鍌氱墛娓氭宕曢幇鐗堢厸闁告侗鍠氶崣鈧梺鍝勬湰缁嬫垿鍩ユ径鎰闁绘劕妯婂ḿ缁樹繆閻愵亜鈧垿宕曢弻銉﹀殞濡わ絽鍟悡姗€鏌熺€电ǹ浠滅紒鐘靛█濮婅櫣绮欓崠鈩冩暰濡炪們鍔屽Λ婵嬬嵁閸儱惟闁冲搫鍊搁埀顒€顭烽弻锕€螣娓氼垱楔闂佹寧绋掔粙鎴﹀煘閹达附鍊烽柡澶嬪灩娴滃爼姊洪悷鎵紞闁稿鍊曢悾鐑藉醇閺囥劍鏅㈡繛杈剧秮閺呰尙绱撻幘鍓佺=闁稿本鐟чˇ锔姐亜閹存繃鍤囬柟顔矫埞鎴犫偓锝庡亜閳ь剙鐏氶妵鍕箻鐠虹儤鐎虹紓浣筋嚙濡繈寮婚弴銏犻唶婵犻潧鐗忛濠囨⒑閸涘﹤绗傞柛妤佸▕瀵鈽夐姀鈥充簽婵炶揪缍侀弲鑼姳閻e瞼纾藉〒姘搐閺嬶附銇勯弴鍡楁搐閻撯€愁熆鐠哄ソ锟犳偄閼姐倗鏉搁梺瑙勫劤婢у孩顨欓梻鍌欐祰濡椼劑鎮為敃鍌氱婵炲棗绻掗弳锕傛煏婵炵偓娅撻柡浣革躬閹绗熼婊冨弗闂佽 鍋撻柕濞у懐锛濋梺绋挎湰閼归箖鍩€椤掑嫷妫戠紒顔肩墛缁楃喖鍩€椤掑嫨鈧線寮介鐐殿槹濡炪倖鐗楃粙鎴濃枔閹达附鈷戦柛娑橈攻鐏忣偊鏌i幒鐐电暤闁挎繄鍋ゅ鎾閿涘嫬骞嶉梻浣侯攰椤宕濋敃鍌氬惞婵炲棙鍨瑰Λ顖炴煙椤栧棗鍟崐顖炴⒑闁稓鈹掗柛鏂跨焸閿濈偛饪伴崼婵嗚€垮┑掳鍊愰崑鎾搭殽閻愬樊鍎旀慨濠呮缁瑥鈻庨幆褍澹夐梻浣告贡閹虫挸煤椤撱垻宓侀柛鎰╁妷閸亪鏌涢銈呮瀻婵炲牏鍠栧娲濞戣鲸肖闂佺ǹ瀵掗崳锝呯暦閹达箑绠婚悹鍥ㄧ叀閺佹粌鈹戞幊閸婃捇鎳楅崼鏇炵煑闁糕剝绋掗埛鎴︽煕濠靛棗顏璺哄閹便劌螣缁嬪灝顫囬悗瑙勬礃缁诲倿顢橀崗鐓庣窞閻庯綆鍓欓獮宥夋⒒娴e憡鍟為柛鏃€岣挎禍绋库枎閹炬潙鈧潡鏌涘☉姗堟敾闁告瑥绻愰埞鎴︽偐閹绘帩浼€闁汇埄鍨遍惄顖炲蓟閻旈鏆嬮柣妤€鐗嗗▓妤呮倵鐟欏嫭纾搁柛鏂跨Ф閹广垹鈹戠€n亞锛滃┑鐐村灦閻熝囧汲椤撱垺鈷掗柛灞捐壘閳ь剙鍢查湁闁搞儜鍛闂佹眹鍨绘灙缂佹劖顨婇弻娑㈠焺閸愵亖妲堢紒鐐劤濞硷繝寮婚悢鐓庣畾闁绘鐗滃Λ鍕磽娴e搫校闁绘搫绻濆濠氬即閿涘嫮鏉搁梺鍝勬川閸庢劙鍩€椤掆偓閺堫剛鎹㈠☉姘辩當闁告繂瀚~鍥⒑閸濆嫯瀚扮紒澶屽厴绡撳〒姘e亾闁哄本鐩獮妯尖偓闈涙啞閸f澘顪冮妶鍐ㄧ仾鐎光偓閹间礁鏋侀柟鐗堟緲楠炪垺绻涢崱妯虹仼婵℃彃娲︾换婵嗏枔閸喗鐏嶉梺鎸庢磵閺呯姴鐣烽姀銈呯闁兼祴鏅╁ú绋库攽閻樿宸ラ柟铏姉婢规洘绺介崨濠勫幗闂侀€涘嵆濞佳勬櫠椤斿浜滈幖娣灮閻﹥銇勯鍕殶闁逞屽墯缁嬫帟鎽梺绋匡攻閸旀鍩€椤掍緡鍟忛柛鐘愁殜閹繝鏁撻悩顔瑰亾娴h倽鏃堝川椤撶媭妲规俊鐐€栭崹鍏兼叏閵堝洠鍋撳顑惧仮婵﹦绮幏鍛村川婵犲懐顢呴梺鍝勵儛娴滄繄鎹㈠☉銏犵妞ゆ洖鎳忛ˉ鏍磽娓氬洤鏋涙い顓犲厴閻涱喖螣鐏忔牕浜鹃梻鍫熺⊕閹插憡銇勯弮鈧ú鐔煎蓟閿濆鍋愰柛娆忣槸瀹稿爼姊洪崨濠佺繁闁告ê銈搁幃锟犲磼閻愮补鎷洪柡澶屽仦婢瑰棝藝閿曞倹鐓熸俊銈傚亾闁挎洏鍎崇划姘綇閵娧呯槇闂佹悶鍎洪悘娑滎樄闁哄本绋戦埥澶愬础閻愬浜繝鐢靛仜閹冲矂宕愬┑鍡╂綎闁惧繐婀遍惌娆愮箾閸℃ê鍔ら柛鎿冨墴濮婃椽宕ㄦ繝鍐ㄩ瀺缂備浇顕х€氫即鐛幋锕€顫呴柣姗嗗亝閺傗偓闂備焦鎮堕崕顕€寮插┑瀣剨闁割偁鍎查埛鎴犵磼鐎n偄顕滄繝鈧幍顔剧<閻庯綆鍋勯悘銉╂煃鐠囪尙效闁轰焦鍔欏畷顏呮媴閻熸壆妲i梻鍌欑窔濞佳囨偋閸℃瑦宕查柟鐑橆殔缁€鍡椕归悡搴f憼闁绘挸绻橀弻娑㈩敃閵堝懏鐎鹃梺绋匡攻閸旀牠銆冮妷鈺傚€烽柟缁樺笚濞堣尙绱撴担绋库偓鍦暜閻愬搫鐒垫い鎺戯功閸掍即鏌h箛鏂垮摵鐎殿喗鐓¢、妤呭焵椤掑嫬鐓橀柟杈鹃檮閸婄兘鏌℃径瀣仼濞寸姵鎮傞弻锕傚礃椤旂粯鍠氶梺璇″枛缂嶅﹤鐣烽崼鏇炵厸濞达綁鏀遍~鏇熺節濞堝灝鏋涢柨鏇樺妼閳诲秹鏁愭径濠勵唵闂佺粯枪椤曆囨倶閹惰姤鐓i煫鍥风到娴滅偛霉濠婂啰鍩f慨濠勭帛閹峰懘鎸婃径濠冨劒闂備線娼荤紞鍥⒔閸曨剛鈹嶅┑鐘叉搐閻愬﹥銇勯幒鍡椾壕缂備胶濮甸悡锟犲蓟閺囷紕鐤€闁哄洨鍊☉銏$厸闁逞屽墯缁傛帞鈧綆鍋勯埀顒傛暬閺屻劌鈹戦崱娆忓毈缂備降鍔嬬划娆撳蓟濞戞瑧绡€闁告洦鍋傚Σ鎰攽椤旂》鏀绘俊鐐舵铻為柛鎰电厑瑜版帒围闁糕剝鐟﹂崚娑㈡倵鐟欏嫭绀冮柨鏇樺灪娣囧﹪骞栨担鑲濄劍銇勯弮鍥棄闁哄濮电换婵嬫偨闂堟刀銉╂煛娴e憡鍟為柟渚垮姂閹粓鎸婃径瀣偓顒勬⒑閸涘﹦鈽夐柨鏇樺劦瀹曪綀绠涘☉娆戝幗闂佺鎻徊楣兯夋径鎰厸閻庯絺鏅濈粣鏃堟煛瀹€鈧崰鏍ь潖閼姐倐鍋撻棃娑橆棌婵″樊鍠氱槐鎺楁倷椤掆偓缁€鍐┿亜椤愩埄妯€濠碉紕鏁诲畷鐔碱敍濮橆剙鏁ゆ俊鐐€栭崝锕€顭块埀顒傜磼椤旇偐鍩f慨濠呮缁辨帒螣閾忓湱鎳嗛梻浣筋嚙缁绘垵鐣濋崨濠佺箚闁汇垻枪缁€瀣亜閺嶃劍鐨戞い鏂匡躬濮婃椽鎮烽幍顔芥喖缂備浇顕х粔鐢电矉閹烘鍤冮柍鍝勫暟閿涙粓姊虹紒妯哄Е闁告挻鐟╁畷婵嬪Χ閸℃劒绨诲銈嗘尵婵挳宕㈢€电硶鍋撳▓鍨灈妞ゎ厾鍏橀獮鍐閵堝棗浜楅柟鑹版彧缂嶅棗危閸洘鐓熼柣鏂挎憸閻﹦绱掔紒妯烘诞鐎殿噮鍋婇、娆戜焊閺嶎煈娼旈梻渚€娼ф蹇曟閺囥垹鍌ㄥù鐘差儐閳锋垿鎮峰▎蹇擃仼闁告柣鍊栭妵鍕即閵娿儱绠归柣鎾卞€濋弻鐔虹磼閵忕姵鐏嶉梺缁樻尰閻燂箓濡甸崟顖氱睄闁稿本绮嶉幉妯衡攽閻愯尙澧涚紒顔芥崌瀵鍩勯崘鈺侇€撻梺鑽ゅ枑濠㈡﹢锝炲澶嬧拺閻犲洠鈧磭浠┑鈽嗗亜閸熸潙鐣风憴鍕╁亝闁告劏鏅涘▓銈咁渻閵堝棗绗傞柣鎺炵畱閳诲秹鏁冮埀顒勫煘閹达附鍋愰柛顭戝亝濮e嫭绻濆▓鍨珮闁告瑥鍟撮悰顔跨疀濞戞ḿ顦ㄥ銈嗘閸嬫劙藝閵娿儺娓婚柕鍫濇噽缁犱即鏌涢悢鍝勵暭闁靛洦鐟╅獮搴ㄦ嚍閵夈垺瀚藉┑鐐存尰閸╁啴宕戦幘缁樼厓鐟滄粓宕滃杈╃煓闁规崘顕ч悡姗€鏌熼悜姗嗘畷闁绘挻娲熼弻锟犲磼濠靛洨銆婇柤鍙夌墵濮婃椽鎮烽幍顔炬殯闂佹悶鍔岀紞濠囧春閻愬搫绠i柣姗嗗亜娴滈箖鏌ㄥ┑鍡欏嚬缂併劏宕电槐鎺楀箛椤撶姭妲堝銈庝簻閸熷瓨淇婇崼鏇炲耿婵☆垳鈷堝Σ顒勬⒒娴g儤鍤€闁哥喕娉曠划鏃堟偡閹殿喗娈惧銈嗗姀閹筹繝寮崼婵嗙獩濡炪倖妫侀~澶屸偓姘虫閳规垿鎮欓懜闈涙锭缂備浇寮撶划娆撶嵁婢舵劖鏅柛鏇ㄥ墮椤忔悂姊虹捄銊ユ灁濠殿喚鏁婚幃鈥斥枎閹惧鍙勯棅顐㈡祫缁茶姤绂嶅┑瀣€堕煫鍥ㄦ礃閺嗩剟鏌$仦鐣屝ユい褌绶氶弻娑㈠箻绾惧顥濆銈庡亝缁诲牊淇婇幖浣规櫆闁兼亽鍎宠ぐ鎸庣節瀵伴攱婢橀埀顒佹崌閹虫宕奸弴鐐靛幋閻庡箍鍎遍幊澶愬绩娴犲鐓熸俊顖氭惈缁狙囨煙閸忕厧濮夌紒杈ㄥ浮閹晠宕归銏$暚闂傚倸娲らˇ鐢稿蓟閵娿儮鏀介柛鈩冪懃椤f椽姊洪柅鐐茶嫰閸樺摜绱掗鐣屾噭濞e洤锕獮鏍ㄦ媴閸濄儱骞愰梻浣呵归張顒傚垝鐏炵瓔鍤曢柟鎯板Г閳锋帒霉閿濆懏鍟為柟顖氱墦閺屾盯鎮㈤崫鍕ㄦ瀰閻庤娲橀崹鍧楃嵁濡偐纾兼俊顖滃帶楠炲牓姊虹涵鍛棈闁规椿浜炲Σ鎰板即閵忊剝娅栭悗骞垮劚濞层劎澹曟總绋跨骇闁割偅纰嶅▍鍛归悩娲摵妞ゃ劊鍎甸幃娆撳级閹寸姷鎳嗛梺鍓х帛閻楁洟婀侀梺鎸庣箓閹冲海鐥閹顫濋銈囩厯濠殿喖锕︾划顖炲箯閸涙潙宸濋梻鍫熺〒缁夎櫣鈧鍠氶弫濠氥€佸Δ鍛妞ゆ巻鍋撳ù鐙€鍙冨娲濞淬儱鐗撳鎻掆槈濮樿京鐒奸梺绋挎湰婢规洟宕戦幘璇茬濠㈣泛锕f竟鏇㈡⒒娴e憡鍟炴繛璇х畵瀹曟粌鈽夐姀鐘插亶闂佹眹鍨归幉锟犲煕閹达附鐓欐い鏍ф鐎氼噣銆呮导瀛樷拺缂佸顑欓崕蹇涙煙閸愭煡鍙勯柟顔藉劤閻o繝骞嶉鑺ョ暦闂備線鈧偛鑻晶鎾煕閳规儳浜炬俊鐐€栫敮鎺楀窗濮橆兗缂氶柟閭﹀幘缁犻箖鏌涘▎蹇fШ闁活厽甯為埀顒侇問閸n噣宕戦崱娑樼闁绘ê妯婇崯鍛亜閺傚灝鎮戞い鎾崇仢閳规垿鎮欏顔兼婵犳鍠楅幐鎶姐€侀弽顓炵疀闁哄瀵ч悗顒勬⒑閹肩偛鍔撮柛鎾村哺閹繝鎮㈤崗鑲╁幍闂備緡鍙忕粻鎴濐嚕妤e啯鐓曢柣鏃堫棑缁犲鏌$仦鍓ф创闁诡喗鐟╁畷褰掝敃閿濆棛妲楀┑鐘愁問閸犳牠鏁冮敂鎯у灊妞ゆ牜鍋涚粻顖炴煕濞戞ḿ鎽犻柛銈呯Ч閺屾洘绔熼娆掝唹闁稿鎸荤换婵嬪炊閵娿垺瀚奸梻鍌氬€搁悧鍐疾濠靛牏鐭撻柛鎾茶兌绾惧ジ鏌eΟ鎸庣彧鐎规洖鐭傞弻锝呪槈閸楃偞鐏曠紓浣哄У缁嬫垿鍩ユ径濞炬瀻闁归偊鍙庢禒褔姊婚崒娆愮グ婵炲娲熷畷鎶芥晝閸屾氨顔嗛梺璺ㄥ櫐閹凤拷...


图1 TM的常规结构图

目前主流的TM接口均为SPI4-P2接口形式,SPI4-P2接口信号速率高,TCCS(Chan nel-to-channel skew,数据通道的抖动,包含时钟的抖动)难以控制,在常规情况下很难做到很高的速率。SPI4-P2接口为达到高速率同时避免TCCS问题在很多情况下都对接收端提出了DPA(动态相位调整)的要求。对于SPI4-P2接口形式可直接采用Altera公司的IP Core实现。Altera的主流FPGA均实现了硬件DPA功能,以Stratix II器件为例,在使能DPA的情况下使用SPI4-P2 IP Core可实现16Gb/s的接口数据速率。

SEG模块为数据切分块,根据交换网的数据结构要求,在上交换网的方向上负责把IP包或数据包切分为固定大小的数据块,方便后期的存储调度以及交换网的操作处理,SEG模块可配合使用SPI4-P2 IP Core来实现。与SEG模块对应的是RSM模块,RSM模块将从交换网下来的数据块重新组合成完整的IP包或数据包。

BM(Buffer Management)模块为缓冲管理模块,管理TM的缓冲单元,完成DRAM的存取操作。外部DRAM的控制部分可使用使用DDR SDRAM IP Core实现。

QM模块为队列管理模块,负责完成端口的数据队列管理功能,接收BM模块读写DRAM时的数据入队、出队请求,TM所能支持的数据流的数目、业务类型数目、端口的数目等性能指标在QM模块处体现出来。

Scheduler模块为调度模块,根据数据包类型及优先级和端口分配的带宽进行调度,TM流量整形、QOS等功能通过调度模块实现。

CELL_EDIT模块完成输出数据的封装,把由DRAM中读出的数据封装后发送出去。

在TM中需要基于数据服务策略对于不同服务等级的数据包进行不同的管理策略,同时要保证流媒体的数据包不能乱序,数据包有大有小,经过SEG模块所分割成的数据块的数目也有多有少,这样就必须有一套行之有效的数据结构基于链表的方法管理这些数据。QM模块基于业务、数据流的方式管理队列,包的管理便由BM模块完成。

BM模块中基于包的数据结构方面由两部分构成:BRAM和PRAM。BRAM为数据缓冲区,对应片外的DRAM。BRAM负责存储数据单元,相对于SEG模块切分的数据单元,BRAM内有相应大小的存储单元BCELL与之对应,BCELL在BRAM内以地址空间划分,每个BCELL相同大小,BCELL为BRAM的最小存取单元。在实际系统中基于SEG模块切分的数据单元大小,BCELL一般为64~512B。

PRAM为指针缓冲区,PRAM对应片外的SSRAM。PRAM内部同样以地址空间分为PCELL,PCELL与BCELL一一对应,每一个PCELL对应于一个BCELL,对应的PCELL与BCELL地址相同。

PCELL的地址对应的代表相应单元的BCELL的地址,PCELL中的基本信息是下一跳指针。PRAM与BRAM关系如图2所示。

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝洨纾界€广儱鎷戦煬顒傗偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備浇顕栭崹搴ㄥ礃閿濆棗鐦遍梻鍌欒兌椤㈠﹤鈻嶉弴銏犵闁搞儺鍓欓悘鎶芥煛閸愩劎澧曠紒鈧崘鈹夸簻闊洤娴烽ˇ锕€霉濠婂牏鐣洪柡灞诲妼閳规垿宕卞▎蹇撴瘓缂傚倷闄嶉崝宀勫Χ閹间礁钃熼柣鏂垮悑閸庡矂鏌涘┑鍕姢鐞氾箓姊绘担鍛婃儓闁活厼顦辩槐鐐寸瑹閳ь剟濡存担鍓叉建闁逞屽墴楠炲啫鈻庨幘宕囶啇濡炪倖鎸鹃崳銉ノ涜濮婂宕掑▎鎴犵崲濠电偘鍖犻崗鐐☉閳诲酣骞嬮悙瀛橆唶闂備礁婀遍崕銈夈€冮幇顔剧闁哄秲鍔庣弧鈧梻鍌氱墛娓氭宕曢幇鐗堢厸闁告侗鍠氶崣鈧梺鍝勬湰缁嬫垿鍩ユ径鎰闁绘劕妯婂ḿ缁樹繆閻愵亜鈧垿宕曢弻銉﹀殞濡わ絽鍟悡姗€鏌熺€电ǹ浠滅紒鐘靛█濮婅櫣绮欓崠鈩冩暰濡炪們鍔屽Λ婵嬬嵁閸儱惟闁冲搫鍊搁埀顒€顭烽弻锕€螣娓氼垱楔闂佹寧绋掔粙鎴﹀煘閹达附鍊烽柡澶嬪灩娴滃爼姊洪悷鎵紞闁稿鍊曢悾鐑藉醇閺囥劍鏅㈡繛杈剧秮閺呰尙绱撻幘鍓佺=闁稿本鐟чˇ锔姐亜閹存繃鍤囬柟顔矫埞鎴犫偓锝庡亜閳ь剙鐏氶妵鍕箻鐠虹儤鐎虹紓浣筋嚙濡繈寮婚弴銏犻唶婵犻潧鐗忛濠囨⒑閸涘﹤绗傞柛妤佸▕瀵鈽夐姀鈥充簽婵炶揪缍侀弲鑼姳閻e瞼纾藉〒姘搐閺嬶附銇勯弴鍡楁搐閻撯€愁熆鐠哄ソ锟犳偄閼姐倗鏉搁梺瑙勫劤婢у孩顨欓梻鍌欐祰濡椼劑鎮為敃鍌氱婵炲棗绻掗弳锕傛煏婵炵偓娅撻柡浣革躬閹绗熼婊冨弗闂佽 鍋撻柕濞у懐锛濋梺绋挎湰閼归箖鍩€椤掑嫷妫戠紒顔肩墛缁楃喖鍩€椤掑嫨鈧線寮介鐐殿槹濡炪倖鐗楃粙鎴濃枔閹达附鈷戦柛娑橈攻鐏忣偊鏌i幒鐐电暤闁挎繄鍋ゅ鎾閿涘嫬骞嶉梻浣侯攰椤宕濋敃鍌氬惞婵炲棙鍨瑰Λ顖炴煙椤栧棗鍟崐顖炴⒑闁稓鈹掗柛鏂跨焸閿濈偛饪伴崼婵嗚€垮┑掳鍊愰崑鎾搭殽閻愬樊鍎旀慨濠呮缁瑥鈻庨幆褍澹夐梻浣告贡閹虫挸煤椤撱垻宓侀柛鎰╁妷閸亪鏌涢銈呮瀻婵炲牏鍠栧娲濞戣鲸肖闂佺ǹ瀵掗崳锝呯暦閹达箑绠婚悹鍥ㄧ叀閺佹粌鈹戞幊閸婃捇鎳楅崼鏇炵煑闁糕剝绋掗埛鎴︽煕濠靛棗顏璺哄閹便劌螣缁嬪灝顫囬悗瑙勬礃缁诲倿顢橀崗鐓庣窞閻庯綆鍓欓獮宥夋⒒娴e憡鍟為柛鏃€岣挎禍绋库枎閹炬潙鈧潡鏌涘☉姗堟敾闁告瑥绻愰埞鎴︽偐閹绘帩浼€闁汇埄鍨遍惄顖炲蓟閻旈鏆嬮柣妤€鐗嗗▓妤呮倵鐟欏嫭纾搁柛鏂跨Ф閹广垹鈹戠€n亞锛滃┑鐐村灦閻熝囧汲椤撱垺鈷掗柛灞捐壘閳ь剙鍢查湁闁搞儜鍛闂佹眹鍨绘灙缂佹劖顨婇弻娑㈠焺閸愵亖妲堢紒鐐劤濞硷繝寮婚悢鐓庣畾闁绘鐗滃Λ鍕磽娴e搫校闁绘搫绻濆濠氬即閿涘嫮鏉搁梺鍝勬川閸庢劙鍩€椤掆偓閺堫剛鎹㈠☉姘辩當闁告繂瀚~鍥⒑閸濆嫯瀚扮紒澶屽厴绡撳〒姘e亾闁哄本鐩獮妯尖偓闈涙啞閸f澘顪冮妶鍐ㄧ仾鐎光偓閹间礁鏋侀柟鐗堟緲楠炪垺绻涢崱妯虹仼婵℃彃娲︾换婵嗏枔閸喗鐏嶉梺鎸庢磵閺呯姴鐣烽姀銈呯闁兼祴鏅╁ú绋库攽閻樿宸ラ柟铏姉婢规洘绺介崨濠勫幗闂侀€涘嵆濞佳勬櫠椤斿浜滈幖娣灮閻﹥銇勯鍕殶闁逞屽墯缁嬫帟鎽梺绋匡攻閸旀鍩€椤掍緡鍟忛柛鐘愁殜閹繝鏁撻悩顔瑰亾娴h倽鏃堝川椤撶媭妲规俊鐐€栭崹鍏兼叏閵堝洠鍋撳顑惧仮婵﹦绮幏鍛村川婵犲懐顢呴梺鍝勵儛娴滄繄鎹㈠☉銏犵妞ゆ洖鎳忛ˉ鏍磽娓氬洤鏋涙い顓犲厴閻涱喖螣鐏忔牕浜鹃梻鍫熺⊕閹插憡銇勯弮鈧ú鐔煎蓟閿濆鍋愰柛娆忣槸瀹稿爼姊洪崨濠佺繁闁告ê銈搁幃锟犲磼閻愮补鎷洪柡澶屽仦婢瑰棝藝閿曞倹鐓熸俊銈傚亾闁挎洏鍎崇划姘綇閵娧呯槇闂佹悶鍎洪悘娑滎樄闁哄本绋戦埥澶愬础閻愬浜繝鐢靛仜閹冲矂宕愬┑鍡╂綎闁惧繐婀遍惌娆愮箾閸℃ê鍔ら柛鎿冨墴濮婃椽宕ㄦ繝鍐ㄩ瀺缂備浇顕х€氫即鐛幋锕€顫呴柣姗嗗亝閺傗偓闂備焦鎮堕崕顕€寮插┑瀣剨闁割偁鍎查埛鎴犵磼鐎n偄顕滄繝鈧幍顔剧<閻庯綆鍋勯悘銉╂煃鐠囪尙效闁轰焦鍔欏畷顏呮媴閻熸壆妲i梻鍌欑窔濞佳囨偋閸℃瑦宕查柟鐑橆殔缁€鍡椕归悡搴f憼闁绘挸绻橀弻娑㈩敃閵堝懏鐎鹃梺绋匡攻閸旀牠銆冮妷鈺傚€烽柟缁樺笚濞堣尙绱撴担绋库偓鍦暜閻愬搫鐒垫い鎺戯功閸掍即鏌h箛鏂垮摵鐎殿喗鐓¢、妤呭焵椤掑嫬鐓橀柟杈鹃檮閸婄兘鏌℃径瀣仼濞寸姵鎮傞弻锕傚礃椤旂粯鍠氶梺璇″枛缂嶅﹤鐣烽崼鏇炵厸濞达綁鏀遍~鏇熺節濞堝灝鏋涢柨鏇樺妼閳诲秹鏁愭径濠勵唵闂佺粯枪椤曆囨倶閹惰姤鐓i煫鍥风到娴滅偛霉濠婂啰鍩f慨濠勭帛閹峰懘鎸婃径濠冨劒闂備線娼荤紞鍥⒔閸曨剛鈹嶅┑鐘叉搐閻愬﹥銇勯幒鍡椾壕缂備胶濮甸悡锟犲蓟閺囷紕鐤€闁哄洨鍊☉銏$厸闁逞屽墯缁傛帞鈧綆鍋勯埀顒傛暬閺屻劌鈹戦崱娆忓毈缂備降鍔嬬划娆撳蓟濞戞瑧绡€闁告洦鍋傚Σ鎰攽椤旂》鏀绘俊鐐舵铻為柛鎰电厑瑜版帒围闁糕剝鐟﹂崚娑㈡倵鐟欏嫭绀冮柨鏇樺灪娣囧﹪骞栨担鑲濄劍銇勯弮鍥棄闁哄濮电换婵嬫偨闂堟刀銉╂煛娴e憡鍟為柟渚垮姂閹粓鎸婃径瀣偓顒勬⒑閸涘﹦鈽夐柨鏇樺劦瀹曪綀绠涘☉娆戝幗闂佺鎻徊楣兯夋径鎰厸閻庯絺鏅濈粣鏃堟煛瀹€鈧崰鏍ь潖閼姐倐鍋撻棃娑橆棌婵″樊鍠氱槐鎺楁倷椤掆偓缁€鍐┿亜椤愩埄妯€濠碉紕鏁诲畷鐔碱敍濮橆剙鏁ゆ俊鐐€栭崝锕€顭块埀顒傜磼椤旇偐鍩f慨濠呮缁辨帒螣閾忓湱鎳嗛梻浣筋嚙缁绘垵鐣濋崨濠佺箚闁汇垻枪缁€瀣亜閺嶃劍鐨戞い鏂匡躬濮婃椽鎮烽幍顔芥喖缂備浇顕х粔鐢电矉閹烘鍤冮柍鍝勫暟閿涙粓姊虹紒妯哄Е闁告挻鐟╁畷婵嬪Χ閸℃劒绨诲銈嗘尵婵挳宕㈢€电硶鍋撳▓鍨灈妞ゎ厾鍏橀獮鍐閵堝棗浜楅柟鑹版彧缂嶅棗危閸洘鐓熼柣鏂挎憸閻﹦绱掔紒妯烘诞鐎殿噮鍋婇、娆戜焊閺嶎煈娼旈梻渚€娼ф蹇曟閺囥垹鍌ㄥù鐘差儐閳锋垿鎮峰▎蹇擃仼闁告柣鍊栭妵鍕即閵娿儱绠归柣鎾卞€濋弻鐔虹磼閵忕姵鐏嶉梺缁樻尰閻燂箓濡甸崟顖氱睄闁稿本绮嶉幉妯衡攽閻愯尙澧涚紒顔芥崌瀵鍩勯崘鈺侇€撻梺鑽ゅ枑濠㈡﹢锝炲澶嬧拺閻犲洠鈧磭浠┑鈽嗗亜閸熸潙鐣风憴鍕╁亝闁告劏鏅涘▓銈咁渻閵堝棗绗傞柣鎺炵畱閳诲秹鏁冮埀顒勫煘閹达附鍋愰柛顭戝亝濮e嫭绻濆▓鍨珮闁告瑥鍟撮悰顔跨疀濞戞ḿ顦ㄥ銈嗘閸嬫劙藝閵娿儺娓婚柕鍫濇噽缁犱即鏌涢悢鍝勵暭闁靛洦鐟╅獮搴ㄦ嚍閵夈垺瀚藉┑鐐存尰閸╁啴宕戦幘缁樼厓鐟滄粓宕滃杈╃煓闁规崘顕ч悡姗€鏌熼悜姗嗘畷闁绘挻娲熼弻锟犲磼濠靛洨銆婇柤鍙夌墵濮婃椽鎮烽幍顔炬殯闂佹悶鍔岀紞濠囧春閻愬搫绠i柣姗嗗亜娴滈箖鏌ㄥ┑鍡欏嚬缂併劏宕电槐鎺楀箛椤撶姭妲堝銈庝簻閸熷瓨淇婇崼鏇炲耿婵☆垳鈷堝Σ顒勬⒒娴g儤鍤€闁哥喕娉曠划鏃堟偡閹殿喗娈惧銈嗗姀閹筹繝寮崼婵嗙獩濡炪倖妫侀~澶屸偓姘虫閳规垿鎮欓懜闈涙锭缂備浇寮撶划娆撶嵁婢舵劖鏅柛鏇ㄥ墮椤忔悂姊虹捄銊ユ灁濠殿喚鏁婚幃鈥斥枎閹惧鍙勯棅顐㈡祫缁茶姤绂嶅┑瀣€堕煫鍥ㄦ礃閺嗩剟鏌$仦鐣屝ユい褌绶氶弻娑㈠箻绾惧顥濆銈庡亝缁诲牊淇婇幖浣规櫆闁兼亽鍎宠ぐ鎸庣節瀵伴攱婢橀埀顒佹崌閹虫宕奸弴鐐靛幋閻庡箍鍎遍幊澶愬绩娴犲鐓熸俊顖氭惈缁狙囨煙閸忕厧濮夌紒杈ㄥ浮閹晠宕归銏$暚闂傚倸娲らˇ鐢稿蓟閵娿儮鏀介柛鈩冪懃椤f椽姊洪柅鐐茶嫰閸樺摜绱掗鐣屾噭濞e洤锕獮鏍ㄦ媴閸濄儱骞愰梻浣呵归張顒傚垝鐏炵瓔鍤曢柟鎯板Г閳锋帒霉閿濆懏鍟為柟顖氱墦閺屾盯鎮㈤崫鍕ㄦ瀰閻庤娲橀崹鍧楃嵁濡偐纾兼俊顖滃帶楠炲牓姊虹涵鍛棈闁规椿浜炲Σ鎰板即閵忊剝娅栭悗骞垮劚濞层劎澹曟總绋跨骇闁割偅纰嶅▍鍛归悩娲摵妞ゃ劊鍎甸幃娆撳级閹寸姷鎳嗛梺鍓х帛閻楁洟婀侀梺鎸庣箓閹冲海鐥閹顫濋銈囩厯濠殿喖锕︾划顖炲箯閸涙潙宸濋梻鍫熺〒缁夎櫣鈧鍠氶弫濠氥€佸Δ鍛妞ゆ巻鍋撳ù鐙€鍙冨娲濞淬儱鐗撳鎻掆槈濮樿京鐒奸梺绋挎湰婢规洟宕戦幘璇茬濠㈣泛锕f竟鏇㈡⒒娴e憡鍟炴繛璇х畵瀹曟粌鈽夐姀鐘插亶闂佹眹鍨归幉锟犲煕閹达附鐓欐い鏍ф鐎氼噣銆呮导瀛樷拺缂佸顑欓崕蹇涙煙閸愭煡鍙勯柟顔藉劤閻o繝骞嶉鑺ョ暦闂備線鈧偛鑻晶鎾煕閳规儳浜炬俊鐐€栫敮鎺楀窗濮橆兗缂氶柟閭﹀幘缁犻箖鏌涘▎蹇fШ闁活厽甯為埀顒侇問閸n噣宕戦崱娑樼闁绘ê妯婇崯鍛亜閺傚灝鎮戞い鎾崇仢閳规垿鎮欏顔兼婵犳鍠楅幐鎶姐€侀弽顓炵疀闁哄瀵ч悗顒勬⒑閹肩偛鍔撮柛鎾村哺閹繝鎮㈤崗鑲╁幍闂備緡鍙忕粻鎴濐嚕妤e啯鐓曢柣鏃堫棑缁犲鏌$仦鍓ф创闁诡喗鐟╁畷褰掝敃閿濆棛妲楀┑鐘愁問閸犳牠鏁冮敂鎯у灊妞ゆ牜鍋涚粻顖炴煕濞戞ḿ鎽犻柛銈呯Ч閺屾洘绔熼娆掝唹闁稿鎸荤换婵嬪炊閵娿垺瀚奸梻鍌氬€搁悧鍐疾濠靛牏鐭撻柛鎾茶兌绾惧ジ鏌eΟ鎸庣彧鐎规洖鐭傞弻锝呪槈閸楃偞鐏曠紓浣哄У缁嬫垿鍩ユ径濞炬瀻闁归偊鍙庢禒褔姊婚崒娆愮グ婵炲娲熷畷鎶芥晝閸屾氨顔嗛梺璺ㄥ櫐閹凤拷...


图2 PRAM与BRAM关系图

在PRAM中存在两种链表形式,PQ List代表已经存储的数据包链表。为方便数据读出,PQ List需要记录数据包的第一个数据块地址,即首指针Pq_Hptr,为方便新的数据写入,PQ List需要记录数据包的最后一个数据块地址,即尾指针Pq_Tptr。PQ List同时需要记录该链表的长度作为调度模块进行调度的权值计算使用。

Free List代表空闲的地址队列。为方便地辨识、管理空闲的地址,避免地址冲突,在BM中将所有空闲的地址使用一个链表进行管理。这个链表就是空闲地址队列。空闲地址队列依据系统需求的不同有着不同的形式,一般空闲地址队列的构成和PQ List相似,由空闲地址首指针Free_Hptr和空闲地址尾指针Free_Tptr构成。BM模块的所有操作都围绕着空闲的地址队列Free List进行。

基于BM模块的数据流结构,BM模块一般分为Write Control模块、Free List control模块、Read Control模块、PRAM Control模块、BRAM Control模块。BM的结构如图3所示。

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝洨纾界€广儱鎷戦煬顒傗偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備浇顕栭崹搴ㄥ礃閿濆棗鐦遍梻鍌欒兌椤㈠﹤鈻嶉弴銏犵闁搞儺鍓欓悘鎶芥煛閸愩劎澧曠紒鈧崘鈹夸簻闊洤娴烽ˇ锕€霉濠婂牏鐣洪柡灞诲妼閳规垿宕卞▎蹇撴瘓缂傚倷闄嶉崝宀勫Χ閹间礁钃熼柣鏂垮悑閸庡矂鏌涘┑鍕姢鐞氾箓姊绘担鍛婃儓闁活厼顦辩槐鐐寸瑹閳ь剟濡存担鍓叉建闁逞屽墴楠炲啫鈻庨幘宕囶啇濡炪倖鎸鹃崳銉ノ涜濮婂宕掑▎鎴犵崲濠电偘鍖犻崗鐐☉閳诲酣骞嬮悙瀛橆唶闂備礁婀遍崕銈夈€冮幇顔剧闁哄秲鍔庣弧鈧梻鍌氱墛娓氭宕曢幇鐗堢厸闁告侗鍠氶崣鈧梺鍝勬湰缁嬫垿鍩ユ径鎰闁绘劕妯婂ḿ缁樹繆閻愵亜鈧垿宕曢弻銉﹀殞濡わ絽鍟悡姗€鏌熺€电ǹ浠滅紒鐘靛█濮婅櫣绮欓崠鈩冩暰濡炪們鍔屽Λ婵嬬嵁閸儱惟闁冲搫鍊搁埀顒€顭烽弻锕€螣娓氼垱楔闂佹寧绋掔粙鎴﹀煘閹达附鍊烽柡澶嬪灩娴滃爼姊洪悷鎵紞闁稿鍊曢悾鐑藉醇閺囥劍鏅㈡繛杈剧秮閺呰尙绱撻幘鍓佺=闁稿本鐟чˇ锔姐亜閹存繃鍤囬柟顔矫埞鎴犫偓锝庡亜閳ь剙鐏氶妵鍕箻鐠虹儤鐎虹紓浣筋嚙濡繈寮婚弴銏犻唶婵犻潧鐗忛濠囨⒑閸涘﹤绗傞柛妤佸▕瀵鈽夐姀鈥充簽婵炶揪缍侀弲鑼姳閻e瞼纾藉〒姘搐閺嬶附銇勯弴鍡楁搐閻撯€愁熆鐠哄ソ锟犳偄閼姐倗鏉搁梺瑙勫劤婢у孩顨欓梻鍌欐祰濡椼劑鎮為敃鍌氱婵炲棗绻掗弳锕傛煏婵炵偓娅撻柡浣革躬閹绗熼婊冨弗闂佽 鍋撻柕濞у懐锛濋梺绋挎湰閼归箖鍩€椤掑嫷妫戠紒顔肩墛缁楃喖鍩€椤掑嫨鈧線寮介鐐殿槹濡炪倖鐗楃粙鎴濃枔閹达附鈷戦柛娑橈攻鐏忣偊鏌i幒鐐电暤闁挎繄鍋ゅ鎾閿涘嫬骞嶉梻浣侯攰椤宕濋敃鍌氬惞婵炲棙鍨瑰Λ顖炴煙椤栧棗鍟崐顖炴⒑闁稓鈹掗柛鏂跨焸閿濈偛饪伴崼婵嗚€垮┑掳鍊愰崑鎾搭殽閻愬樊鍎旀慨濠呮缁瑥鈻庨幆褍澹夐梻浣告贡閹虫挸煤椤撱垻宓侀柛鎰╁妷閸亪鏌涢銈呮瀻婵炲牏鍠栧娲濞戣鲸肖闂佺ǹ瀵掗崳锝呯暦閹达箑绠婚悹鍥ㄧ叀閺佹粌鈹戞幊閸婃捇鎳楅崼鏇炵煑闁糕剝绋掗埛鎴︽煕濠靛棗顏璺哄閹便劌螣缁嬪灝顫囬悗瑙勬礃缁诲倿顢橀崗鐓庣窞閻庯綆鍓欓獮宥夋⒒娴e憡鍟為柛鏃€岣挎禍绋库枎閹炬潙鈧潡鏌涘☉姗堟敾闁告瑥绻愰埞鎴︽偐閹绘帩浼€闁汇埄鍨遍惄顖炲蓟閻旈鏆嬮柣妤€鐗嗗▓妤呮倵鐟欏嫭纾搁柛鏂跨Ф閹广垹鈹戠€n亞锛滃┑鐐村灦閻熝囧汲椤撱垺鈷掗柛灞捐壘閳ь剙鍢查湁闁搞儜鍛闂佹眹鍨绘灙缂佹劖顨婇弻娑㈠焺閸愵亖妲堢紒鐐劤濞硷繝寮婚悢鐓庣畾闁绘鐗滃Λ鍕磽娴e搫校闁绘搫绻濆濠氬即閿涘嫮鏉搁梺鍝勬川閸庢劙鍩€椤掆偓閺堫剛鎹㈠☉姘辩當闁告繂瀚~鍥⒑閸濆嫯瀚扮紒澶屽厴绡撳〒姘e亾闁哄本鐩獮妯尖偓闈涙啞閸f澘顪冮妶鍐ㄧ仾鐎光偓閹间礁鏋侀柟鐗堟緲楠炪垺绻涢崱妯虹仼婵℃彃娲︾换婵嗏枔閸喗鐏嶉梺鎸庢磵閺呯姴鐣烽姀銈呯闁兼祴鏅╁ú绋库攽閻樿宸ラ柟铏姉婢规洘绺介崨濠勫幗闂侀€涘嵆濞佳勬櫠椤斿浜滈幖娣灮閻﹥銇勯鍕殶闁逞屽墯缁嬫帟鎽梺绋匡攻閸旀鍩€椤掍緡鍟忛柛鐘愁殜閹繝鏁撻悩顔瑰亾娴h倽鏃堝川椤撶媭妲规俊鐐€栭崹鍏兼叏閵堝洠鍋撳顑惧仮婵﹦绮幏鍛村川婵犲懐顢呴梺鍝勵儛娴滄繄鎹㈠☉銏犵妞ゆ洖鎳忛ˉ鏍磽娓氬洤鏋涙い顓犲厴閻涱喖螣鐏忔牕浜鹃梻鍫熺⊕閹插憡銇勯弮鈧ú鐔煎蓟閿濆鍋愰柛娆忣槸瀹稿爼姊洪崨濠佺繁闁告ê銈搁幃锟犲磼閻愮补鎷洪柡澶屽仦婢瑰棝藝閿曞倹鐓熸俊銈傚亾闁挎洏鍎崇划姘綇閵娧呯槇闂佹悶鍎洪悘娑滎樄闁哄本绋戦埥澶愬础閻愬浜繝鐢靛仜閹冲矂宕愬┑鍡╂綎闁惧繐婀遍惌娆愮箾閸℃ê鍔ら柛鎿冨墴濮婃椽宕ㄦ繝鍐ㄩ瀺缂備浇顕х€氫即鐛幋锕€顫呴柣姗嗗亝閺傗偓闂備焦鎮堕崕顕€寮插┑瀣剨闁割偁鍎查埛鎴犵磼鐎n偄顕滄繝鈧幍顔剧<閻庯綆鍋勯悘銉╂煃鐠囪尙效闁轰焦鍔欏畷顏呮媴閻熸壆妲i梻鍌欑窔濞佳囨偋閸℃瑦宕查柟鐑橆殔缁€鍡椕归悡搴f憼闁绘挸绻橀弻娑㈩敃閵堝懏鐎鹃梺绋匡攻閸旀牠銆冮妷鈺傚€烽柟缁樺笚濞堣尙绱撴担绋库偓鍦暜閻愬搫鐒垫い鎺戯功閸掍即鏌h箛鏂垮摵鐎殿喗鐓¢、妤呭焵椤掑嫬鐓橀柟杈鹃檮閸婄兘鏌℃径瀣仼濞寸姵鎮傞弻锕傚礃椤旂粯鍠氶梺璇″枛缂嶅﹤鐣烽崼鏇炵厸濞达綁鏀遍~鏇熺節濞堝灝鏋涢柨鏇樺妼閳诲秹鏁愭径濠勵唵闂佺粯枪椤曆囨倶閹惰姤鐓i煫鍥风到娴滅偛霉濠婂啰鍩f慨濠勭帛閹峰懘鎸婃径濠冨劒闂備線娼荤紞鍥⒔閸曨剛鈹嶅┑鐘叉搐閻愬﹥銇勯幒鍡椾壕缂備胶濮甸悡锟犲蓟閺囷紕鐤€闁哄洨鍊☉銏$厸闁逞屽墯缁傛帞鈧綆鍋勯埀顒傛暬閺屻劌鈹戦崱娆忓毈缂備降鍔嬬划娆撳蓟濞戞瑧绡€闁告洦鍋傚Σ鎰攽椤旂》鏀绘俊鐐舵铻為柛鎰电厑瑜版帒围闁糕剝鐟﹂崚娑㈡倵鐟欏嫭绀冮柨鏇樺灪娣囧﹪骞栨担鑲濄劍銇勯弮鍥棄闁哄濮电换婵嬫偨闂堟刀銉╂煛娴e憡鍟為柟渚垮姂閹粓鎸婃径瀣偓顒勬⒑閸涘﹦鈽夐柨鏇樺劦瀹曪綀绠涘☉娆戝幗闂佺鎻徊楣兯夋径鎰厸閻庯絺鏅濈粣鏃堟煛瀹€鈧崰鏍ь潖閼姐倐鍋撻棃娑橆棌婵″樊鍠氱槐鎺楁倷椤掆偓缁€鍐┿亜椤愩埄妯€濠碉紕鏁诲畷鐔碱敍濮橆剙鏁ゆ俊鐐€栭崝锕€顭块埀顒傜磼椤旇偐鍩f慨濠呮缁辨帒螣閾忓湱鎳嗛梻浣筋嚙缁绘垵鐣濋崨濠佺箚闁汇垻枪缁€瀣亜閺嶃劍鐨戞い鏂匡躬濮婃椽鎮烽幍顔芥喖缂備浇顕х粔鐢电矉閹烘鍤冮柍鍝勫暟閿涙粓姊虹紒妯哄Е闁告挻鐟╁畷婵嬪Χ閸℃劒绨诲銈嗘尵婵挳宕㈢€电硶鍋撳▓鍨灈妞ゎ厾鍏橀獮鍐閵堝棗浜楅柟鑹版彧缂嶅棗危閸洘鐓熼柣鏂挎憸閻﹦绱掔紒妯烘诞鐎殿噮鍋婇、娆戜焊閺嶎煈娼旈梻渚€娼ф蹇曟閺囥垹鍌ㄥù鐘差儐閳锋垿鎮峰▎蹇擃仼闁告柣鍊栭妵鍕即閵娿儱绠归柣鎾卞€濋弻鐔虹磼閵忕姵鐏嶉梺缁樻尰閻燂箓濡甸崟顖氱睄闁稿本绮嶉幉妯衡攽閻愯尙澧涚紒顔芥崌瀵鍩勯崘鈺侇€撻梺鑽ゅ枑濠㈡﹢锝炲澶嬧拺閻犲洠鈧磭浠┑鈽嗗亜閸熸潙鐣风憴鍕╁亝闁告劏鏅涘▓銈咁渻閵堝棗绗傞柣鎺炵畱閳诲秹鏁冮埀顒勫煘閹达附鍋愰柛顭戝亝濮e嫭绻濆▓鍨珮闁告瑥鍟撮悰顔跨疀濞戞ḿ顦ㄥ銈嗘閸嬫劙藝閵娿儺娓婚柕鍫濇噽缁犱即鏌涢悢鍝勵暭闁靛洦鐟╅獮搴ㄦ嚍閵夈垺瀚藉┑鐐存尰閸╁啴宕戦幘缁樼厓鐟滄粓宕滃杈╃煓闁规崘顕ч悡姗€鏌熼悜姗嗘畷闁绘挻娲熼弻锟犲磼濠靛洨銆婇柤鍙夌墵濮婃椽鎮烽幍顔炬殯闂佹悶鍔岀紞濠囧春閻愬搫绠i柣姗嗗亜娴滈箖鏌ㄥ┑鍡欏嚬缂併劏宕电槐鎺楀箛椤撶姭妲堝銈庝簻閸熷瓨淇婇崼鏇炲耿婵☆垳鈷堝Σ顒勬⒒娴g儤鍤€闁哥喕娉曠划鏃堟偡閹殿喗娈惧銈嗗姀閹筹繝寮崼婵嗙獩濡炪倖妫侀~澶屸偓姘虫閳规垿鎮欓懜闈涙锭缂備浇寮撶划娆撶嵁婢舵劖鏅柛鏇ㄥ墮椤忔悂姊虹捄銊ユ灁濠殿喚鏁婚幃鈥斥枎閹惧鍙勯棅顐㈡祫缁茶姤绂嶅┑瀣€堕煫鍥ㄦ礃閺嗩剟鏌$仦鐣屝ユい褌绶氶弻娑㈠箻绾惧顥濆銈庡亝缁诲牊淇婇幖浣规櫆闁兼亽鍎宠ぐ鎸庣節瀵伴攱婢橀埀顒佹崌閹虫宕奸弴鐐靛幋閻庡箍鍎遍幊澶愬绩娴犲鐓熸俊顖氭惈缁狙囨煙閸忕厧濮夌紒杈ㄥ浮閹晠宕归銏$暚闂傚倸娲らˇ鐢稿蓟閵娿儮鏀介柛鈩冪懃椤f椽姊洪柅鐐茶嫰閸樺摜绱掗鐣屾噭濞e洤锕獮鏍ㄦ媴閸濄儱骞愰梻浣呵归張顒傚垝鐏炵瓔鍤曢柟鎯板Г閳锋帒霉閿濆懏鍟為柟顖氱墦閺屾盯鎮㈤崫鍕ㄦ瀰閻庤娲橀崹鍧楃嵁濡偐纾兼俊顖滃帶楠炲牓姊虹涵鍛棈闁规椿浜炲Σ鎰板即閵忊剝娅栭悗骞垮劚濞层劎澹曟總绋跨骇闁割偅纰嶅▍鍛归悩娲摵妞ゃ劊鍎甸幃娆撳级閹寸姷鎳嗛梺鍓х帛閻楁洟婀侀梺鎸庣箓閹冲海鐥閹顫濋銈囩厯濠殿喖锕︾划顖炲箯閸涙潙宸濋梻鍫熺〒缁夎櫣鈧鍠氶弫濠氥€佸Δ鍛妞ゆ巻鍋撳ù鐙€鍙冨娲濞淬儱鐗撳鎻掆槈濮樿京鐒奸梺绋挎湰婢规洟宕戦幘璇茬濠㈣泛锕f竟鏇㈡⒒娴e憡鍟炴繛璇х畵瀹曟粌鈽夐姀鐘插亶闂佹眹鍨归幉锟犲煕閹达附鐓欐い鏍ф鐎氼噣銆呮导瀛樷拺缂佸顑欓崕蹇涙煙閸愭煡鍙勯柟顔藉劤閻o繝骞嶉鑺ョ暦闂備線鈧偛鑻晶鎾煕閳规儳浜炬俊鐐€栫敮鎺楀窗濮橆兗缂氶柟閭﹀幘缁犻箖鏌涘▎蹇fШ闁活厽甯為埀顒侇問閸n噣宕戦崱娑樼闁绘ê妯婇崯鍛亜閺傚灝鎮戞い鎾崇仢閳规垿鎮欏顔兼婵犳鍠楅幐鎶姐€侀弽顓炵疀闁哄瀵ч悗顒勬⒑閹肩偛鍔撮柛鎾村哺閹繝鎮㈤崗鑲╁幍闂備緡鍙忕粻鎴濐嚕妤e啯鐓曢柣鏃堫棑缁犲鏌$仦鍓ф创闁诡喗鐟╁畷褰掝敃閿濆棛妲楀┑鐘愁問閸犳牠鏁冮敂鎯у灊妞ゆ牜鍋涚粻顖炴煕濞戞ḿ鎽犻柛銈呯Ч閺屾洘绔熼娆掝唹闁稿鎸荤换婵嬪炊閵娿垺瀚奸梻鍌氬€搁悧鍐疾濠靛牏鐭撻柛鎾茶兌绾惧ジ鏌eΟ鎸庣彧鐎规洖鐭傞弻锝呪槈閸楃偞鐏曠紓浣哄У缁嬫垿鍩ユ径濞炬瀻闁归偊鍙庢禒褔姊婚崒娆愮グ婵炲娲熷畷鎶芥晝閸屾氨顔嗛梺璺ㄥ櫐閹凤拷...

图3 BM结构图

Write Control模块从Free List模块处得到空闲地址,向BRAM Control模块提出写请求,同时更新PRAM中的内容。Free List control模块负责管理空闲地址列表,提供Write Control模块的写BRAM地址及PRAM地址,回收经Read Control模块读出数据块后释放的地址。Read Control模块根据调度器的调度结果,通过BRAM Control模块读出需要发送的数据单元,同时将释放的缓冲单元地址写入空闲地址列表。PRAM Control模块为外部SSRAM的控制模块,可直接使用参考设计完成。BRAM Control模块为外部DRAM控制模块,一般分为Datapath与Controler两个子模块。Datapath模块专门负责数据接口部分,完成DRAM接口的DQ、DQS处理以及相应的延时调整,Controler模块负责完成DRAM的控制需求。

在BM模块中,BRAM的带宽与PRAM的带宽一般为TM的瓶颈。PRAM的带宽主要受限于访问的次数,而BRAM的带宽受限于接口带宽。例如对于一个10G的TM,BRAM的有效带宽必须保证20G,以接口利用率最差只能达到65%计算(考虑SEG模块切分信元出现的N+1问题),需要保证接口带宽达到30G。使用64位的DRAM接口,接口速率不能低于500MB/s,这样对Datapath模块的设计提出了更高的要求。在实际系统中,BRAM主要使用DDR SDRAM、DDR II SDRAM。

当使用Stratix II FPGA,BRAM使用DDR II SDRAM时,测试表明DDR II SDRAM接口速率可达到800MB/s。在常规使用的情况下,DDR II SDRAM接口速率可保证达到667MB/s。对于一个64位的DRAM接口,接口速率可达到42.7GB/s,完全可以满足一个10G的TM系统。

BM模块作为缓冲管理模块,缓冲的基本单元为BCELL,基于对BCELL的管理,对于BM的操作都牵涉到空闲地址队列的操作以及链表的操作。最基本的操作就是写入操作和读出操作。BM模块的写入操作由Write Control模块发起。

对于Write Control模块,有数据单元需要写入,首先向Free List模块申请空闲地址,Free List将首指针a给Write Control模块,作为该数据块的写地址,同时读出首指针a对应在PRAM中的内容,得到下一跳地址b,将下一跳地址b作为新的空闲地址首指针。

PQ List将尾指针n更新为新写入的地址a,同时更新PRAM中n地址的内容,将a作为下一跳添入n地址。基于节省操作周期,NULL的内容保留原值,不再更新。这样,一次BRAM的写入操作需要一次PRAM的读取操作及一次PRAM的写入操作。

QM模块接收调度模块的出队信息,将出队的PQ链表信息传送给BM模块进行读取操作。

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝洨纾界€广儱鎷戦煬顒傗偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備浇顕栭崹搴ㄥ礃閿濆棗鐦遍梻鍌欒兌椤㈠﹤鈻嶉弴銏犵闁搞儺鍓欓悘鎶芥煛閸愩劎澧曠紒鈧崘鈹夸簻闊洤娴烽ˇ锕€霉濠婂牏鐣洪柡灞诲妼閳规垿宕卞▎蹇撴瘓缂傚倷闄嶉崝宀勫Χ閹间礁钃熼柣鏂垮悑閸庡矂鏌涘┑鍕姢鐞氾箓姊绘担鍛婃儓闁活厼顦辩槐鐐寸瑹閳ь剟濡存担鍓叉建闁逞屽墴楠炲啫鈻庨幘宕囶啇濡炪倖鎸鹃崳銉ノ涜濮婂宕掑▎鎴犵崲濠电偘鍖犻崗鐐☉閳诲酣骞嬮悙瀛橆唶闂備礁婀遍崕銈夈€冮幇顔剧闁哄秲鍔庣弧鈧梻鍌氱墛娓氭宕曢幇鐗堢厸闁告侗鍠氶崣鈧梺鍝勬湰缁嬫垿鍩ユ径鎰闁绘劕妯婂ḿ缁樹繆閻愵亜鈧垿宕曢弻銉﹀殞濡わ絽鍟悡姗€鏌熺€电ǹ浠滅紒鐘靛█濮婅櫣绮欓崠鈩冩暰濡炪們鍔屽Λ婵嬬嵁閸儱惟闁冲搫鍊搁埀顒€顭烽弻锕€螣娓氼垱楔闂佹寧绋掔粙鎴﹀煘閹达附鍊烽柡澶嬪灩娴滃爼姊洪悷鎵紞闁稿鍊曢悾鐑藉醇閺囥劍鏅㈡繛杈剧秮閺呰尙绱撻幘鍓佺=闁稿本鐟чˇ锔姐亜閹存繃鍤囬柟顔矫埞鎴犫偓锝庡亜閳ь剙鐏氶妵鍕箻鐠虹儤鐎虹紓浣筋嚙濡繈寮婚弴銏犻唶婵犻潧鐗忛濠囨⒑閸涘﹤绗傞柛妤佸▕瀵鈽夐姀鈥充簽婵炶揪缍侀弲鑼姳閻e瞼纾藉〒姘搐閺嬶附銇勯弴鍡楁搐閻撯€愁熆鐠哄ソ锟犳偄閼姐倗鏉搁梺瑙勫劤婢у孩顨欓梻鍌欐祰濡椼劑鎮為敃鍌氱婵炲棗绻掗弳锕傛煏婵炵偓娅撻柡浣革躬閹绗熼婊冨弗闂佽 鍋撻柕濞у懐锛濋梺绋挎湰閼归箖鍩€椤掑嫷妫戠紒顔肩墛缁楃喖鍩€椤掑嫨鈧線寮介鐐殿槹濡炪倖鐗楃粙鎴濃枔閹达附鈷戦柛娑橈攻鐏忣偊鏌i幒鐐电暤闁挎繄鍋ゅ鎾閿涘嫬骞嶉梻浣侯攰椤宕濋敃鍌氬惞婵炲棙鍨瑰Λ顖炴煙椤栧棗鍟崐顖炴⒑闁稓鈹掗柛鏂跨焸閿濈偛饪伴崼婵嗚€垮┑掳鍊愰崑鎾搭殽閻愬樊鍎旀慨濠呮缁瑥鈻庨幆褍澹夐梻浣告贡閹虫挸煤椤撱垻宓侀柛鎰╁妷閸亪鏌涢銈呮瀻婵炲牏鍠栧娲濞戣鲸肖闂佺ǹ瀵掗崳锝呯暦閹达箑绠婚悹鍥ㄧ叀閺佹粌鈹戞幊閸婃捇鎳楅崼鏇炵煑闁糕剝绋掗埛鎴︽煕濠靛棗顏璺哄閹便劌螣缁嬪灝顫囬悗瑙勬礃缁诲倿顢橀崗鐓庣窞閻庯綆鍓欓獮宥夋⒒娴e憡鍟為柛鏃€岣挎禍绋库枎閹炬潙鈧潡鏌涘☉姗堟敾闁告瑥绻愰埞鎴︽偐閹绘帩浼€闁汇埄鍨遍惄顖炲蓟閻旈鏆嬮柣妤€鐗嗗▓妤呮倵鐟欏嫭纾搁柛鏂跨Ф閹广垹鈹戠€n亞锛滃┑鐐村灦閻熝囧汲椤撱垺鈷掗柛灞捐壘閳ь剙鍢查湁闁搞儜鍛闂佹眹鍨绘灙缂佹劖顨婇弻娑㈠焺閸愵亖妲堢紒鐐劤濞硷繝寮婚悢鐓庣畾闁绘鐗滃Λ鍕磽娴e搫校闁绘搫绻濆濠氬即閿涘嫮鏉搁梺鍝勬川閸庢劙鍩€椤掆偓閺堫剛鎹㈠☉姘辩當闁告繂瀚~鍥⒑閸濆嫯瀚扮紒澶屽厴绡撳〒姘e亾闁哄本鐩獮妯尖偓闈涙啞閸f澘顪冮妶鍐ㄧ仾鐎光偓閹间礁鏋侀柟鐗堟緲楠炪垺绻涢崱妯虹仼婵℃彃娲︾换婵嗏枔閸喗鐏嶉梺鎸庢磵閺呯姴鐣烽姀銈呯闁兼祴鏅╁ú绋库攽閻樿宸ラ柟铏姉婢规洘绺介崨濠勫幗闂侀€涘嵆濞佳勬櫠椤斿浜滈幖娣灮閻﹥銇勯鍕殶闁逞屽墯缁嬫帟鎽梺绋匡攻閸旀鍩€椤掍緡鍟忛柛鐘愁殜閹繝鏁撻悩顔瑰亾娴h倽鏃堝川椤撶媭妲规俊鐐€栭崹鍏兼叏閵堝洠鍋撳顑惧仮婵﹦绮幏鍛村川婵犲懐顢呴梺鍝勵儛娴滄繄鎹㈠☉銏犵妞ゆ洖鎳忛ˉ鏍磽娓氬洤鏋涙い顓犲厴閻涱喖螣鐏忔牕浜鹃梻鍫熺⊕閹插憡銇勯弮鈧ú鐔煎蓟閿濆鍋愰柛娆忣槸瀹稿爼姊洪崨濠佺繁闁告ê銈搁幃锟犲磼閻愮补鎷洪柡澶屽仦婢瑰棝藝閿曞倹鐓熸俊銈傚亾闁挎洏鍎崇划姘綇閵娧呯槇闂佹悶鍎洪悘娑滎樄闁哄本绋戦埥澶愬础閻愬浜繝鐢靛仜閹冲矂宕愬┑鍡╂綎闁惧繐婀遍惌娆愮箾閸℃ê鍔ら柛鎿冨墴濮婃椽宕ㄦ繝鍐ㄩ瀺缂備浇顕х€氫即鐛幋锕€顫呴柣姗嗗亝閺傗偓闂備焦鎮堕崕顕€寮插┑瀣剨闁割偁鍎查埛鎴犵磼鐎n偄顕滄繝鈧幍顔剧<閻庯綆鍋勯悘銉╂煃鐠囪尙效闁轰焦鍔欏畷顏呮媴閻熸壆妲i梻鍌欑窔濞佳囨偋閸℃瑦宕查柟鐑橆殔缁€鍡椕归悡搴f憼闁绘挸绻橀弻娑㈩敃閵堝懏鐎鹃梺绋匡攻閸旀牠銆冮妷鈺傚€烽柟缁樺笚濞堣尙绱撴担绋库偓鍦暜閻愬搫鐒垫い鎺戯功閸掍即鏌h箛鏂垮摵鐎殿喗鐓¢、妤呭焵椤掑嫬鐓橀柟杈鹃檮閸婄兘鏌℃径瀣仼濞寸姵鎮傞弻锕傚礃椤旂粯鍠氶梺璇″枛缂嶅﹤鐣烽崼鏇炵厸濞达綁鏀遍~鏇熺節濞堝灝鏋涢柨鏇樺妼閳诲秹鏁愭径濠勵唵闂佺粯枪椤曆囨倶閹惰姤鐓i煫鍥风到娴滅偛霉濠婂啰鍩f慨濠勭帛閹峰懘鎸婃径濠冨劒闂備線娼荤紞鍥⒔閸曨剛鈹嶅┑鐘叉搐閻愬﹥銇勯幒鍡椾壕缂備胶濮甸悡锟犲蓟閺囷紕鐤€闁哄洨鍊☉銏$厸闁逞屽墯缁傛帞鈧綆鍋勯埀顒傛暬閺屻劌鈹戦崱娆忓毈缂備降鍔嬬划娆撳蓟濞戞瑧绡€闁告洦鍋傚Σ鎰攽椤旂》鏀绘俊鐐舵铻為柛鎰电厑瑜版帒围闁糕剝鐟﹂崚娑㈡倵鐟欏嫭绀冮柨鏇樺灪娣囧﹪骞栨担鑲濄劍銇勯弮鍥棄闁哄濮电换婵嬫偨闂堟刀銉╂煛娴e憡鍟為柟渚垮姂閹粓鎸婃径瀣偓顒勬⒑閸涘﹦鈽夐柨鏇樺劦瀹曪綀绠涘☉娆戝幗闂佺鎻徊楣兯夋径鎰厸閻庯絺鏅濈粣鏃堟煛瀹€鈧崰鏍ь潖閼姐倐鍋撻棃娑橆棌婵″樊鍠氱槐鎺楁倷椤掆偓缁€鍐┿亜椤愩埄妯€濠碉紕鏁诲畷鐔碱敍濮橆剙鏁ゆ俊鐐€栭崝锕€顭块埀顒傜磼椤旇偐鍩f慨濠呮缁辨帒螣閾忓湱鎳嗛梻浣筋嚙缁绘垵鐣濋崨濠佺箚闁汇垻枪缁€瀣亜閺嶃劍鐨戞い鏂匡躬濮婃椽鎮烽幍顔芥喖缂備浇顕х粔鐢电矉閹烘鍤冮柍鍝勫暟閿涙粓姊虹紒妯哄Е闁告挻鐟╁畷婵嬪Χ閸℃劒绨诲銈嗘尵婵挳宕㈢€电硶鍋撳▓鍨灈妞ゎ厾鍏橀獮鍐閵堝棗浜楅柟鑹版彧缂嶅棗危閸洘鐓熼柣鏂挎憸閻﹦绱掔紒妯烘诞鐎殿噮鍋婇、娆戜焊閺嶎煈娼旈梻渚€娼ф蹇曟閺囥垹鍌ㄥù鐘差儐閳锋垿鎮峰▎蹇擃仼闁告柣鍊栭妵鍕即閵娿儱绠归柣鎾卞€濋弻鐔虹磼閵忕姵鐏嶉梺缁樻尰閻燂箓濡甸崟顖氱睄闁稿本绮嶉幉妯衡攽閻愯尙澧涚紒顔芥崌瀵鍩勯崘鈺侇€撻梺鑽ゅ枑濠㈡﹢锝炲澶嬧拺閻犲洠鈧磭浠┑鈽嗗亜閸熸潙鐣风憴鍕╁亝闁告劏鏅涘▓銈咁渻閵堝棗绗傞柣鎺炵畱閳诲秹鏁冮埀顒勫煘閹达附鍋愰柛顭戝亝濮e嫭绻濆▓鍨珮闁告瑥鍟撮悰顔跨疀濞戞ḿ顦ㄥ銈嗘閸嬫劙藝閵娿儺娓婚柕鍫濇噽缁犱即鏌涢悢鍝勵暭闁靛洦鐟╅獮搴ㄦ嚍閵夈垺瀚藉┑鐐存尰閸╁啴宕戦幘缁樼厓鐟滄粓宕滃杈╃煓闁规崘顕ч悡姗€鏌熼悜姗嗘畷闁绘挻娲熼弻锟犲磼濠靛洨銆婇柤鍙夌墵濮婃椽鎮烽幍顔炬殯闂佹悶鍔岀紞濠囧春閻愬搫绠i柣姗嗗亜娴滈箖鏌ㄥ┑鍡欏嚬缂併劏宕电槐鎺楀箛椤撶姭妲堝銈庝簻閸熷瓨淇婇崼鏇炲耿婵☆垳鈷堝Σ顒勬⒒娴g儤鍤€闁哥喕娉曠划鏃堟偡閹殿喗娈惧銈嗗姀閹筹繝寮崼婵嗙獩濡炪倖妫侀~澶屸偓姘虫閳规垿鎮欓懜闈涙锭缂備浇寮撶划娆撶嵁婢舵劖鏅柛鏇ㄥ墮椤忔悂姊虹捄銊ユ灁濠殿喚鏁婚幃鈥斥枎閹惧鍙勯棅顐㈡祫缁茶姤绂嶅┑瀣€堕煫鍥ㄦ礃閺嗩剟鏌$仦鐣屝ユい褌绶氶弻娑㈠箻绾惧顥濆銈庡亝缁诲牊淇婇幖浣规櫆闁兼亽鍎宠ぐ鎸庣節瀵伴攱婢橀埀顒佹崌閹虫宕奸弴鐐靛幋閻庡箍鍎遍幊澶愬绩娴犲鐓熸俊顖氭惈缁狙囨煙閸忕厧濮夌紒杈ㄥ浮閹晠宕归銏$暚闂傚倸娲らˇ鐢稿蓟閵娿儮鏀介柛鈩冪懃椤f椽姊洪柅鐐茶嫰閸樺摜绱掗鐣屾噭濞e洤锕獮鏍ㄦ媴閸濄儱骞愰梻浣呵归張顒傚垝鐏炵瓔鍤曢柟鎯板Г閳锋帒霉閿濆懏鍟為柟顖氱墦閺屾盯鎮㈤崫鍕ㄦ瀰閻庤娲橀崹鍧楃嵁濡偐纾兼俊顖滃帶楠炲牓姊虹涵鍛棈闁规椿浜炲Σ鎰板即閵忊剝娅栭悗骞垮劚濞层劎澹曟總绋跨骇闁割偅纰嶅▍鍛归悩娲摵妞ゃ劊鍎甸幃娆撳级閹寸姷鎳嗛梺鍓х帛閻楁洟婀侀梺鎸庣箓閹冲海鐥閹顫濋銈囩厯濠殿喖锕︾划顖炲箯閸涙潙宸濋梻鍫熺〒缁夎櫣鈧鍠氶弫濠氥€佸Δ鍛妞ゆ巻鍋撳ù鐙€鍙冨娲濞淬儱鐗撳鎻掆槈濮樿京鐒奸梺绋挎湰婢规洟宕戦幘璇茬濠㈣泛锕f竟鏇㈡⒒娴e憡鍟炴繛璇х畵瀹曟粌鈽夐姀鐘插亶闂佹眹鍨归幉锟犲煕閹达附鐓欐い鏍ф鐎氼噣銆呮导瀛樷拺缂佸顑欓崕蹇涙煙閸愭煡鍙勯柟顔藉劤閻o繝骞嶉鑺ョ暦闂備線鈧偛鑻晶鎾煕閳规儳浜炬俊鐐€栫敮鎺楀窗濮橆兗缂氶柟閭﹀幘缁犻箖鏌涘▎蹇fШ闁活厽甯為埀顒侇問閸n噣宕戦崱娑樼闁绘ê妯婇崯鍛亜閺傚灝鎮戞い鎾崇仢閳规垿鎮欏顔兼婵犳鍠楅幐鎶姐€侀弽顓炵疀闁哄瀵ч悗顒勬⒑閹肩偛鍔撮柛鎾村哺閹繝鎮㈤崗鑲╁幍闂備緡鍙忕粻鎴濐嚕妤e啯鐓曢柣鏃堫棑缁犲鏌$仦鍓ф创闁诡喗鐟╁畷褰掝敃閿濆棛妲楀┑鐘愁問閸犳牠鏁冮敂鎯у灊妞ゆ牜鍋涚粻顖炴煕濞戞ḿ鎽犻柛銈呯Ч閺屾洘绔熼娆掝唹闁稿鎸荤换婵嬪炊閵娿垺瀚奸梻鍌氬€搁悧鍐疾濠靛牏鐭撻柛鎾茶兌绾惧ジ鏌eΟ鎸庣彧鐎规洖鐭傞弻锝呪槈閸楃偞鐏曠紓浣哄У缁嬫垿鍩ユ径濞炬瀻闁归偊鍙庢禒褔姊婚崒娆愮グ婵炲娲熷畷鎶芥晝閸屾氨顔嗛梺璺ㄥ櫐閹凤拷...

图4 BM模块的写入操作

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝洨纾界€广儱鎷戦煬顒傗偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備浇顕栭崹搴ㄥ礃閿濆棗鐦遍梻鍌欒兌椤㈠﹤鈻嶉弴銏犵闁搞儺鍓欓悘鎶芥煛閸愩劎澧曠紒鈧崘鈹夸簻闊洤娴烽ˇ锕€霉濠婂牏鐣洪柡灞诲妼閳规垿宕卞▎蹇撴瘓缂傚倷闄嶉崝宀勫Χ閹间礁钃熼柣鏂垮悑閸庡矂鏌涘┑鍕姢鐞氾箓姊绘担鍛婃儓闁活厼顦辩槐鐐寸瑹閳ь剟濡存担鍓叉建闁逞屽墴楠炲啫鈻庨幘宕囶啇濡炪倖鎸鹃崳銉ノ涜濮婂宕掑▎鎴犵崲濠电偘鍖犻崗鐐☉閳诲酣骞嬮悙瀛橆唶闂備礁婀遍崕銈夈€冮幇顔剧闁哄秲鍔庣弧鈧梻鍌氱墛娓氭宕曢幇鐗堢厸闁告侗鍠氶崣鈧梺鍝勬湰缁嬫垿鍩ユ径鎰闁绘劕妯婂ḿ缁樹繆閻愵亜鈧垿宕曢弻銉﹀殞濡わ絽鍟悡姗€鏌熺€电ǹ浠滅紒鐘靛█濮婅櫣绮欓崠鈩冩暰濡炪們鍔屽Λ婵嬬嵁閸儱惟闁冲搫鍊搁埀顒€顭烽弻锕€螣娓氼垱楔闂佹寧绋掔粙鎴﹀煘閹达附鍊烽柡澶嬪灩娴滃爼姊洪悷鎵紞闁稿鍊曢悾鐑藉醇閺囥劍鏅㈡繛杈剧秮閺呰尙绱撻幘鍓佺=闁稿本鐟чˇ锔姐亜閹存繃鍤囬柟顔矫埞鎴犫偓锝庡亜閳ь剙鐏氶妵鍕箻鐠虹儤鐎虹紓浣筋嚙濡繈寮婚弴銏犻唶婵犻潧鐗忛濠囨⒑閸涘﹤绗傞柛妤佸▕瀵鈽夐姀鈥充簽婵炶揪缍侀弲鑼姳閻e瞼纾藉〒姘搐閺嬶附銇勯弴鍡楁搐閻撯€愁熆鐠哄ソ锟犳偄閼姐倗鏉搁梺瑙勫劤婢у孩顨欓梻鍌欐祰濡椼劑鎮為敃鍌氱婵炲棗绻掗弳锕傛煏婵炵偓娅撻柡浣革躬閹绗熼婊冨弗闂佽 鍋撻柕濞у懐锛濋梺绋挎湰閼归箖鍩€椤掑嫷妫戠紒顔肩墛缁楃喖鍩€椤掑嫨鈧線寮介鐐殿槹濡炪倖鐗楃粙鎴濃枔閹达附鈷戦柛娑橈攻鐏忣偊鏌i幒鐐电暤闁挎繄鍋ゅ鎾閿涘嫬骞嶉梻浣侯攰椤宕濋敃鍌氬惞婵炲棙鍨瑰Λ顖炴煙椤栧棗鍟崐顖炴⒑闁稓鈹掗柛鏂跨焸閿濈偛饪伴崼婵嗚€垮┑掳鍊愰崑鎾搭殽閻愬樊鍎旀慨濠呮缁瑥鈻庨幆褍澹夐梻浣告贡閹虫挸煤椤撱垻宓侀柛鎰╁妷閸亪鏌涢銈呮瀻婵炲牏鍠栧娲濞戣鲸肖闂佺ǹ瀵掗崳锝呯暦閹达箑绠婚悹鍥ㄧ叀閺佹粌鈹戞幊閸婃捇鎳楅崼鏇炵煑闁糕剝绋掗埛鎴︽煕濠靛棗顏璺哄閹便劌螣缁嬪灝顫囬悗瑙勬礃缁诲倿顢橀崗鐓庣窞閻庯綆鍓欓獮宥夋⒒娴e憡鍟為柛鏃€岣挎禍绋库枎閹炬潙鈧潡鏌涘☉姗堟敾闁告瑥绻愰埞鎴︽偐閹绘帩浼€闁汇埄鍨遍惄顖炲蓟閻旈鏆嬮柣妤€鐗嗗▓妤呮倵鐟欏嫭纾搁柛鏂跨Ф閹广垹鈹戠€n亞锛滃┑鐐村灦閻熝囧汲椤撱垺鈷掗柛灞捐壘閳ь剙鍢查湁闁搞儜鍛闂佹眹鍨绘灙缂佹劖顨婇弻娑㈠焺閸愵亖妲堢紒鐐劤濞硷繝寮婚悢鐓庣畾闁绘鐗滃Λ鍕磽娴e搫校闁绘搫绻濆濠氬即閿涘嫮鏉搁梺鍝勬川閸庢劙鍩€椤掆偓閺堫剛鎹㈠☉姘辩當闁告繂瀚~鍥⒑閸濆嫯瀚扮紒澶屽厴绡撳〒姘e亾闁哄本鐩獮妯尖偓闈涙啞閸f澘顪冮妶鍐ㄧ仾鐎光偓閹间礁鏋侀柟鐗堟緲楠炪垺绻涢崱妯虹仼婵℃彃娲︾换婵嗏枔閸喗鐏嶉梺鎸庢磵閺呯姴鐣烽姀銈呯闁兼祴鏅╁ú绋库攽閻樿宸ラ柟铏姉婢规洘绺介崨濠勫幗闂侀€涘嵆濞佳勬櫠椤斿浜滈幖娣灮閻﹥銇勯鍕殶闁逞屽墯缁嬫帟鎽梺绋匡攻閸旀鍩€椤掍緡鍟忛柛鐘愁殜閹繝鏁撻悩顔瑰亾娴h倽鏃堝川椤撶媭妲规俊鐐€栭崹鍏兼叏閵堝洠鍋撳顑惧仮婵﹦绮幏鍛村川婵犲懐顢呴梺鍝勵儛娴滄繄鎹㈠☉銏犵妞ゆ洖鎳忛ˉ鏍磽娓氬洤鏋涙い顓犲厴閻涱喖螣鐏忔牕浜鹃梻鍫熺⊕閹插憡銇勯弮鈧ú鐔煎蓟閿濆鍋愰柛娆忣槸瀹稿爼姊洪崨濠佺繁闁告ê銈搁幃锟犲磼閻愮补鎷洪柡澶屽仦婢瑰棝藝閿曞倹鐓熸俊銈傚亾闁挎洏鍎崇划姘綇閵娧呯槇闂佹悶鍎洪悘娑滎樄闁哄本绋戦埥澶愬础閻愬浜繝鐢靛仜閹冲矂宕愬┑鍡╂綎闁惧繐婀遍惌娆愮箾閸℃ê鍔ら柛鎿冨墴濮婃椽宕ㄦ繝鍐ㄩ瀺缂備浇顕х€氫即鐛幋锕€顫呴柣姗嗗亝閺傗偓闂備焦鎮堕崕顕€寮插┑瀣剨闁割偁鍎查埛鎴犵磼鐎n偄顕滄繝鈧幍顔剧<閻庯綆鍋勯悘銉╂煃鐠囪尙效闁轰焦鍔欏畷顏呮媴閻熸壆妲i梻鍌欑窔濞佳囨偋閸℃瑦宕查柟鐑橆殔缁€鍡椕归悡搴f憼闁绘挸绻橀弻娑㈩敃閵堝懏鐎鹃梺绋匡攻閸旀牠銆冮妷鈺傚€烽柟缁樺笚濞堣尙绱撴担绋库偓鍦暜閻愬搫鐒垫い鎺戯功閸掍即鏌h箛鏂垮摵鐎殿喗鐓¢、妤呭焵椤掑嫬鐓橀柟杈鹃檮閸婄兘鏌℃径瀣仼濞寸姵鎮傞弻锕傚礃椤旂粯鍠氶梺璇″枛缂嶅﹤鐣烽崼鏇炵厸濞达綁鏀遍~鏇熺節濞堝灝鏋涢柨鏇樺妼閳诲秹鏁愭径濠勵唵闂佺粯枪椤曆囨倶閹惰姤鐓i煫鍥风到娴滅偛霉濠婂啰鍩f慨濠勭帛閹峰懘鎸婃径濠冨劒闂備線娼荤紞鍥⒔閸曨剛鈹嶅┑鐘叉搐閻愬﹥銇勯幒鍡椾壕缂備胶濮甸悡锟犲蓟閺囷紕鐤€闁哄洨鍊☉銏$厸闁逞屽墯缁傛帞鈧綆鍋勯埀顒傛暬閺屻劌鈹戦崱娆忓毈缂備降鍔嬬划娆撳蓟濞戞瑧绡€闁告洦鍋傚Σ鎰攽椤旂》鏀绘俊鐐舵铻為柛鎰电厑瑜版帒围闁糕剝鐟﹂崚娑㈡倵鐟欏嫭绀冮柨鏇樺灪娣囧﹪骞栨担鑲濄劍銇勯弮鍥棄闁哄濮电换婵嬫偨闂堟刀銉╂煛娴e憡鍟為柟渚垮姂閹粓鎸婃径瀣偓顒勬⒑閸涘﹦鈽夐柨鏇樺劦瀹曪綀绠涘☉娆戝幗闂佺鎻徊楣兯夋径鎰厸閻庯絺鏅濈粣鏃堟煛瀹€鈧崰鏍ь潖閼姐倐鍋撻棃娑橆棌婵″樊鍠氱槐鎺楁倷椤掆偓缁€鍐┿亜椤愩埄妯€濠碉紕鏁诲畷鐔碱敍濮橆剙鏁ゆ俊鐐€栭崝锕€顭块埀顒傜磼椤旇偐鍩f慨濠呮缁辨帒螣閾忓湱鎳嗛梻浣筋嚙缁绘垵鐣濋崨濠佺箚闁汇垻枪缁€瀣亜閺嶃劍鐨戞い鏂匡躬濮婃椽鎮烽幍顔芥喖缂備浇顕х粔鐢电矉閹烘鍤冮柍鍝勫暟閿涙粓姊虹紒妯哄Е闁告挻鐟╁畷婵嬪Χ閸℃劒绨诲銈嗘尵婵挳宕㈢€电硶鍋撳▓鍨灈妞ゎ厾鍏橀獮鍐閵堝棗浜楅柟鑹版彧缂嶅棗危閸洘鐓熼柣鏂挎憸閻﹦绱掔紒妯烘诞鐎殿噮鍋婇、娆戜焊閺嶎煈娼旈梻渚€娼ф蹇曟閺囥垹鍌ㄥù鐘差儐閳锋垿鎮峰▎蹇擃仼闁告柣鍊栭妵鍕即閵娿儱绠归柣鎾卞€濋弻鐔虹磼閵忕姵鐏嶉梺缁樻尰閻燂箓濡甸崟顖氱睄闁稿本绮嶉幉妯衡攽閻愯尙澧涚紒顔芥崌瀵鍩勯崘鈺侇€撻梺鑽ゅ枑濠㈡﹢锝炲澶嬧拺閻犲洠鈧磭浠┑鈽嗗亜閸熸潙鐣风憴鍕╁亝闁告劏鏅涘▓銈咁渻閵堝棗绗傞柣鎺炵畱閳诲秹鏁冮埀顒勫煘閹达附鍋愰柛顭戝亝濮e嫭绻濆▓鍨珮闁告瑥鍟撮悰顔跨疀濞戞ḿ顦ㄥ銈嗘閸嬫劙藝閵娿儺娓婚柕鍫濇噽缁犱即鏌涢悢鍝勵暭闁靛洦鐟╅獮搴ㄦ嚍閵夈垺瀚藉┑鐐存尰閸╁啴宕戦幘缁樼厓鐟滄粓宕滃杈╃煓闁规崘顕ч悡姗€鏌熼悜姗嗘畷闁绘挻娲熼弻锟犲磼濠靛洨銆婇柤鍙夌墵濮婃椽鎮烽幍顔炬殯闂佹悶鍔岀紞濠囧春閻愬搫绠i柣姗嗗亜娴滈箖鏌ㄥ┑鍡欏嚬缂併劏宕电槐鎺楀箛椤撶姭妲堝銈庝簻閸熷瓨淇婇崼鏇炲耿婵☆垳鈷堝Σ顒勬⒒娴g儤鍤€闁哥喕娉曠划鏃堟偡閹殿喗娈惧銈嗗姀閹筹繝寮崼婵嗙獩濡炪倖妫侀~澶屸偓姘虫閳规垿鎮欓懜闈涙锭缂備浇寮撶划娆撶嵁婢舵劖鏅柛鏇ㄥ墮椤忔悂姊虹捄銊ユ灁濠殿喚鏁婚幃鈥斥枎閹惧鍙勯棅顐㈡祫缁茶姤绂嶅┑瀣€堕煫鍥ㄦ礃閺嗩剟鏌$仦鐣屝ユい褌绶氶弻娑㈠箻绾惧顥濆銈庡亝缁诲牊淇婇幖浣规櫆闁兼亽鍎宠ぐ鎸庣節瀵伴攱婢橀埀顒佹崌閹虫宕奸弴鐐靛幋閻庡箍鍎遍幊澶愬绩娴犲鐓熸俊顖氭惈缁狙囨煙閸忕厧濮夌紒杈ㄥ浮閹晠宕归銏$暚闂傚倸娲らˇ鐢稿蓟閵娿儮鏀介柛鈩冪懃椤f椽姊洪柅鐐茶嫰閸樺摜绱掗鐣屾噭濞e洤锕獮鏍ㄦ媴閸濄儱骞愰梻浣呵归張顒傚垝鐏炵瓔鍤曢柟鎯板Г閳锋帒霉閿濆懏鍟為柟顖氱墦閺屾盯鎮㈤崫鍕ㄦ瀰閻庤娲橀崹鍧楃嵁濡偐纾兼俊顖滃帶楠炲牓姊虹涵鍛棈闁规椿浜炲Σ鎰板即閵忊剝娅栭悗骞垮劚濞层劎澹曟總绋跨骇闁割偅纰嶅▍鍛归悩娲摵妞ゃ劊鍎甸幃娆撳级閹寸姷鎳嗛梺鍓х帛閻楁洟婀侀梺鎸庣箓閹冲海鐥閹顫濋銈囩厯濠殿喖锕︾划顖炲箯閸涙潙宸濋梻鍫熺〒缁夎櫣鈧鍠氶弫濠氥€佸Δ鍛妞ゆ巻鍋撳ù鐙€鍙冨娲濞淬儱鐗撳鎻掆槈濮樿京鐒奸梺绋挎湰婢规洟宕戦幘璇茬濠㈣泛锕f竟鏇㈡⒒娴e憡鍟炴繛璇х畵瀹曟粌鈽夐姀鐘插亶闂佹眹鍨归幉锟犲煕閹达附鐓欐い鏍ф鐎氼噣銆呮导瀛樷拺缂佸顑欓崕蹇涙煙閸愭煡鍙勯柟顔藉劤閻o繝骞嶉鑺ョ暦闂備線鈧偛鑻晶鎾煕閳规儳浜炬俊鐐€栫敮鎺楀窗濮橆兗缂氶柟閭﹀幘缁犻箖鏌涘▎蹇fШ闁活厽甯為埀顒侇問閸n噣宕戦崱娑樼闁绘ê妯婇崯鍛亜閺傚灝鎮戞い鎾崇仢閳规垿鎮欏顔兼婵犳鍠楅幐鎶姐€侀弽顓炵疀闁哄瀵ч悗顒勬⒑閹肩偛鍔撮柛鎾村哺閹繝鎮㈤崗鑲╁幍闂備緡鍙忕粻鎴濐嚕妤e啯鐓曢柣鏃堫棑缁犲鏌$仦鍓ф创闁诡喗鐟╁畷褰掝敃閿濆棛妲楀┑鐘愁問閸犳牠鏁冮敂鎯у灊妞ゆ牜鍋涚粻顖炴煕濞戞ḿ鎽犻柛銈呯Ч閺屾洘绔熼娆掝唹闁稿鎸荤换婵嬪炊閵娿垺瀚奸梻鍌氬€搁悧鍐疾濠靛牏鐭撻柛鎾茶兌绾惧ジ鏌eΟ鎸庣彧鐎规洖鐭傞弻锝呪槈閸楃偞鐏曠紓浣哄У缁嬫垿鍩ユ径濞炬瀻闁归偊鍙庢禒褔姊婚崒娆愮グ婵炲娲熷畷鎶芥晝閸屾氨顔嗛梺璺ㄥ櫐閹凤拷...

图5 读出操作的Free List堆栈结构

BM模块的读取操作由Read Control模块发起完成,当有数据单元需要读出,相应的数据单元地址则需要回收进入空闲地址队列Free List。对于不同的系统需求,空闲地址队列Free List有不同的形式。比较简单的操作是将Free List作为堆栈形式使用。

Read Control模块由PQ List的首地址0读出相应的BRAM中的内容,同时读出PRAM中对应的下一跳地址1,更新地址1为新的首地址。Free List将首指针a更新为刚释放的地址0,同时地址0中写入下一跳指针a。这样一次BRAM的读出操作需要一次PRAM的读取操作及一次PRAM的写入操作。

作为堆栈形式的空闲地址队列在实际操作中会把一部分空闲地址队列放入片内缓冲中。这样在读BRAM释放地址进入空闲地址队列时可以节省PRAM的一次写入操作,在写BRAM时申请空闲地址时可以节省PRAM的一拍读取操作。PRAM堆栈结构下内置空闲地址队列表如图6所示。

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝洨纾界€广儱鎷戦煬顒傗偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備浇顕栭崹搴ㄥ礃閿濆棗鐦遍梻鍌欒兌椤㈠﹤鈻嶉弴銏犵闁搞儺鍓欓悘鎶芥煛閸愩劎澧曠紒鈧崘鈹夸簻闊洤娴烽ˇ锕€霉濠婂牏鐣洪柡灞诲妼閳规垿宕卞▎蹇撴瘓缂傚倷闄嶉崝宀勫Χ閹间礁钃熼柣鏂垮悑閸庡矂鏌涘┑鍕姢鐞氾箓姊绘担鍛婃儓闁活厼顦辩槐鐐寸瑹閳ь剟濡存担鍓叉建闁逞屽墴楠炲啫鈻庨幘宕囶啇濡炪倖鎸鹃崳銉ノ涜濮婂宕掑▎鎴犵崲濠电偘鍖犻崗鐐☉閳诲酣骞嬮悙瀛橆唶闂備礁婀遍崕銈夈€冮幇顔剧闁哄秲鍔庣弧鈧梻鍌氱墛娓氭宕曢幇鐗堢厸闁告侗鍠氶崣鈧梺鍝勬湰缁嬫垿鍩ユ径鎰闁绘劕妯婂ḿ缁樹繆閻愵亜鈧垿宕曢弻銉﹀殞濡わ絽鍟悡姗€鏌熺€电ǹ浠滅紒鐘靛█濮婅櫣绮欓崠鈩冩暰濡炪們鍔屽Λ婵嬬嵁閸儱惟闁冲搫鍊搁埀顒€顭烽弻锕€螣娓氼垱楔闂佹寧绋掔粙鎴﹀煘閹达附鍊烽柡澶嬪灩娴滃爼姊洪悷鎵紞闁稿鍊曢悾鐑藉醇閺囥劍鏅㈡繛杈剧秮閺呰尙绱撻幘鍓佺=闁稿本鐟чˇ锔姐亜閹存繃鍤囬柟顔矫埞鎴犫偓锝庡亜閳ь剙鐏氶妵鍕箻鐠虹儤鐎虹紓浣筋嚙濡繈寮婚弴銏犻唶婵犻潧鐗忛濠囨⒑閸涘﹤绗傞柛妤佸▕瀵鈽夐姀鈥充簽婵炶揪缍侀弲鑼姳閻e瞼纾藉〒姘搐閺嬶附銇勯弴鍡楁搐閻撯€愁熆鐠哄ソ锟犳偄閼姐倗鏉搁梺瑙勫劤婢у孩顨欓梻鍌欐祰濡椼劑鎮為敃鍌氱婵炲棗绻掗弳锕傛煏婵炵偓娅撻柡浣革躬閹绗熼婊冨弗闂佽 鍋撻柕濞у懐锛濋梺绋挎湰閼归箖鍩€椤掑嫷妫戠紒顔肩墛缁楃喖鍩€椤掑嫨鈧線寮介鐐殿槹濡炪倖鐗楃粙鎴濃枔閹达附鈷戦柛娑橈攻鐏忣偊鏌i幒鐐电暤闁挎繄鍋ゅ鎾閿涘嫬骞嶉梻浣侯攰椤宕濋敃鍌氬惞婵炲棙鍨瑰Λ顖炴煙椤栧棗鍟崐顖炴⒑闁稓鈹掗柛鏂跨焸閿濈偛饪伴崼婵嗚€垮┑掳鍊愰崑鎾搭殽閻愬樊鍎旀慨濠呮缁瑥鈻庨幆褍澹夐梻浣告贡閹虫挸煤椤撱垻宓侀柛鎰╁妷閸亪鏌涢銈呮瀻婵炲牏鍠栧娲濞戣鲸肖闂佺ǹ瀵掗崳锝呯暦閹达箑绠婚悹鍥ㄧ叀閺佹粌鈹戞幊閸婃捇鎳楅崼鏇炵煑闁糕剝绋掗埛鎴︽煕濠靛棗顏璺哄閹便劌螣缁嬪灝顫囬悗瑙勬礃缁诲倿顢橀崗鐓庣窞閻庯綆鍓欓獮宥夋⒒娴e憡鍟為柛鏃€岣挎禍绋库枎閹炬潙鈧潡鏌涘☉姗堟敾闁告瑥绻愰埞鎴︽偐閹绘帩浼€闁汇埄鍨遍惄顖炲蓟閻旈鏆嬮柣妤€鐗嗗▓妤呮倵鐟欏嫭纾搁柛鏂跨Ф閹广垹鈹戠€n亞锛滃┑鐐村灦閻熝囧汲椤撱垺鈷掗柛灞捐壘閳ь剙鍢查湁闁搞儜鍛闂佹眹鍨绘灙缂佹劖顨婇弻娑㈠焺閸愵亖妲堢紒鐐劤濞硷繝寮婚悢鐓庣畾闁绘鐗滃Λ鍕磽娴e搫校闁绘搫绻濆濠氬即閿涘嫮鏉搁梺鍝勬川閸庢劙鍩€椤掆偓閺堫剛鎹㈠☉姘辩當闁告繂瀚~鍥⒑閸濆嫯瀚扮紒澶屽厴绡撳〒姘e亾闁哄本鐩獮妯尖偓闈涙啞閸f澘顪冮妶鍐ㄧ仾鐎光偓閹间礁鏋侀柟鐗堟緲楠炪垺绻涢崱妯虹仼婵℃彃娲︾换婵嗏枔閸喗鐏嶉梺鎸庢磵閺呯姴鐣烽姀銈呯闁兼祴鏅╁ú绋库攽閻樿宸ラ柟铏姉婢规洘绺介崨濠勫幗闂侀€涘嵆濞佳勬櫠椤斿浜滈幖娣灮閻﹥銇勯鍕殶闁逞屽墯缁嬫帟鎽梺绋匡攻閸旀鍩€椤掍緡鍟忛柛鐘愁殜閹繝鏁撻悩顔瑰亾娴h倽鏃堝川椤撶媭妲规俊鐐€栭崹鍏兼叏閵堝洠鍋撳顑惧仮婵﹦绮幏鍛村川婵犲懐顢呴梺鍝勵儛娴滄繄鎹㈠☉銏犵妞ゆ洖鎳忛ˉ鏍磽娓氬洤鏋涙い顓犲厴閻涱喖螣鐏忔牕浜鹃梻鍫熺⊕閹插憡銇勯弮鈧ú鐔煎蓟閿濆鍋愰柛娆忣槸瀹稿爼姊洪崨濠佺繁闁告ê銈搁幃锟犲磼閻愮补鎷洪柡澶屽仦婢瑰棝藝閿曞倹鐓熸俊銈傚亾闁挎洏鍎崇划姘綇閵娧呯槇闂佹悶鍎洪悘娑滎樄闁哄本绋戦埥澶愬础閻愬浜繝鐢靛仜閹冲矂宕愬┑鍡╂綎闁惧繐婀遍惌娆愮箾閸℃ê鍔ら柛鎿冨墴濮婃椽宕ㄦ繝鍐ㄩ瀺缂備浇顕х€氫即鐛幋锕€顫呴柣姗嗗亝閺傗偓闂備焦鎮堕崕顕€寮插┑瀣剨闁割偁鍎查埛鎴犵磼鐎n偄顕滄繝鈧幍顔剧<閻庯綆鍋勯悘銉╂煃鐠囪尙效闁轰焦鍔欏畷顏呮媴閻熸壆妲i梻鍌欑窔濞佳囨偋閸℃瑦宕查柟鐑橆殔缁€鍡椕归悡搴f憼闁绘挸绻橀弻娑㈩敃閵堝懏鐎鹃梺绋匡攻閸旀牠銆冮妷鈺傚€烽柟缁樺笚濞堣尙绱撴担绋库偓鍦暜閻愬搫鐒垫い鎺戯功閸掍即鏌h箛鏂垮摵鐎殿喗鐓¢、妤呭焵椤掑嫬鐓橀柟杈鹃檮閸婄兘鏌℃径瀣仼濞寸姵鎮傞弻锕傚礃椤旂粯鍠氶梺璇″枛缂嶅﹤鐣烽崼鏇炵厸濞达綁鏀遍~鏇熺節濞堝灝鏋涢柨鏇樺妼閳诲秹鏁愭径濠勵唵闂佺粯枪椤曆囨倶閹惰姤鐓i煫鍥风到娴滅偛霉濠婂啰鍩f慨濠勭帛閹峰懘鎸婃径濠冨劒闂備線娼荤紞鍥⒔閸曨剛鈹嶅┑鐘叉搐閻愬﹥銇勯幒鍡椾壕缂備胶濮甸悡锟犲蓟閺囷紕鐤€闁哄洨鍊☉銏$厸闁逞屽墯缁傛帞鈧綆鍋勯埀顒傛暬閺屻劌鈹戦崱娆忓毈缂備降鍔嬬划娆撳蓟濞戞瑧绡€闁告洦鍋傚Σ鎰攽椤旂》鏀绘俊鐐舵铻為柛鎰电厑瑜版帒围闁糕剝鐟﹂崚娑㈡倵鐟欏嫭绀冮柨鏇樺灪娣囧﹪骞栨担鑲濄劍銇勯弮鍥棄闁哄濮电换婵嬫偨闂堟刀銉╂煛娴e憡鍟為柟渚垮姂閹粓鎸婃径瀣偓顒勬⒑閸涘﹦鈽夐柨鏇樺劦瀹曪綀绠涘☉娆戝幗闂佺鎻徊楣兯夋径鎰厸閻庯絺鏅濈粣鏃堟煛瀹€鈧崰鏍ь潖閼姐倐鍋撻棃娑橆棌婵″樊鍠氱槐鎺楁倷椤掆偓缁€鍐┿亜椤愩埄妯€濠碉紕鏁诲畷鐔碱敍濮橆剙鏁ゆ俊鐐€栭崝锕€顭块埀顒傜磼椤旇偐鍩f慨濠呮缁辨帒螣閾忓湱鎳嗛梻浣筋嚙缁绘垵鐣濋崨濠佺箚闁汇垻枪缁€瀣亜閺嶃劍鐨戞い鏂匡躬濮婃椽鎮烽幍顔芥喖缂備浇顕х粔鐢电矉閹烘鍤冮柍鍝勫暟閿涙粓姊虹紒妯哄Е闁告挻鐟╁畷婵嬪Χ閸℃劒绨诲銈嗘尵婵挳宕㈢€电硶鍋撳▓鍨灈妞ゎ厾鍏橀獮鍐閵堝棗浜楅柟鑹版彧缂嶅棗危閸洘鐓熼柣鏂挎憸閻﹦绱掔紒妯烘诞鐎殿噮鍋婇、娆戜焊閺嶎煈娼旈梻渚€娼ф蹇曟閺囥垹鍌ㄥù鐘差儐閳锋垿鎮峰▎蹇擃仼闁告柣鍊栭妵鍕即閵娿儱绠归柣鎾卞€濋弻鐔虹磼閵忕姵鐏嶉梺缁樻尰閻燂箓濡甸崟顖氱睄闁稿本绮嶉幉妯衡攽閻愯尙澧涚紒顔芥崌瀵鍩勯崘鈺侇€撻梺鑽ゅ枑濠㈡﹢锝炲澶嬧拺閻犲洠鈧磭浠┑鈽嗗亜閸熸潙鐣风憴鍕╁亝闁告劏鏅涘▓銈咁渻閵堝棗绗傞柣鎺炵畱閳诲秹鏁冮埀顒勫煘閹达附鍋愰柛顭戝亝濮e嫭绻濆▓鍨珮闁告瑥鍟撮悰顔跨疀濞戞ḿ顦ㄥ銈嗘閸嬫劙藝閵娿儺娓婚柕鍫濇噽缁犱即鏌涢悢鍝勵暭闁靛洦鐟╅獮搴ㄦ嚍閵夈垺瀚藉┑鐐存尰閸╁啴宕戦幘缁樼厓鐟滄粓宕滃杈╃煓闁规崘顕ч悡姗€鏌熼悜姗嗘畷闁绘挻娲熼弻锟犲磼濠靛洨銆婇柤鍙夌墵濮婃椽鎮烽幍顔炬殯闂佹悶鍔岀紞濠囧春閻愬搫绠i柣姗嗗亜娴滈箖鏌ㄥ┑鍡欏嚬缂併劏宕电槐鎺楀箛椤撶姭妲堝銈庝簻閸熷瓨淇婇崼鏇炲耿婵☆垳鈷堝Σ顒勬⒒娴g儤鍤€闁哥喕娉曠划鏃堟偡閹殿喗娈惧銈嗗姀閹筹繝寮崼婵嗙獩濡炪倖妫侀~澶屸偓姘虫閳规垿鎮欓懜闈涙锭缂備浇寮撶划娆撶嵁婢舵劖鏅柛鏇ㄥ墮椤忔悂姊虹捄銊ユ灁濠殿喚鏁婚幃鈥斥枎閹惧鍙勯棅顐㈡祫缁茶姤绂嶅┑瀣€堕煫鍥ㄦ礃閺嗩剟鏌$仦鐣屝ユい褌绶氶弻娑㈠箻绾惧顥濆銈庡亝缁诲牊淇婇幖浣规櫆闁兼亽鍎宠ぐ鎸庣節瀵伴攱婢橀埀顒佹崌閹虫宕奸弴鐐靛幋閻庡箍鍎遍幊澶愬绩娴犲鐓熸俊顖氭惈缁狙囨煙閸忕厧濮夌紒杈ㄥ浮閹晠宕归銏$暚闂傚倸娲らˇ鐢稿蓟閵娿儮鏀介柛鈩冪懃椤f椽姊洪柅鐐茶嫰閸樺摜绱掗鐣屾噭濞e洤锕獮鏍ㄦ媴閸濄儱骞愰梻浣呵归張顒傚垝鐏炵瓔鍤曢柟鎯板Г閳锋帒霉閿濆懏鍟為柟顖氱墦閺屾盯鎮㈤崫鍕ㄦ瀰閻庤娲橀崹鍧楃嵁濡偐纾兼俊顖滃帶楠炲牓姊虹涵鍛棈闁规椿浜炲Σ鎰板即閵忊剝娅栭悗骞垮劚濞层劎澹曟總绋跨骇闁割偅纰嶅▍鍛归悩娲摵妞ゃ劊鍎甸幃娆撳级閹寸姷鎳嗛梺鍓х帛閻楁洟婀侀梺鎸庣箓閹冲海鐥閹顫濋銈囩厯濠殿喖锕︾划顖炲箯閸涙潙宸濋梻鍫熺〒缁夎櫣鈧鍠氶弫濠氥€佸Δ鍛妞ゆ巻鍋撳ù鐙€鍙冨娲濞淬儱鐗撳鎻掆槈濮樿京鐒奸梺绋挎湰婢规洟宕戦幘璇茬濠㈣泛锕f竟鏇㈡⒒娴e憡鍟炴繛璇х畵瀹曟粌鈽夐姀鐘插亶闂佹眹鍨归幉锟犲煕閹达附鐓欐い鏍ф鐎氼噣銆呮导瀛樷拺缂佸顑欓崕蹇涙煙閸愭煡鍙勯柟顔藉劤閻o繝骞嶉鑺ョ暦闂備線鈧偛鑻晶鎾煕閳规儳浜炬俊鐐€栫敮鎺楀窗濮橆兗缂氶柟閭﹀幘缁犻箖鏌涘▎蹇fШ闁活厽甯為埀顒侇問閸n噣宕戦崱娑樼闁绘ê妯婇崯鍛亜閺傚灝鎮戞い鎾崇仢閳规垿鎮欏顔兼婵犳鍠楅幐鎶姐€侀弽顓炵疀闁哄瀵ч悗顒勬⒑閹肩偛鍔撮柛鎾村哺閹繝鎮㈤崗鑲╁幍闂備緡鍙忕粻鎴濐嚕妤e啯鐓曢柣鏃堫棑缁犲鏌$仦鍓ф创闁诡喗鐟╁畷褰掝敃閿濆棛妲楀┑鐘愁問閸犳牠鏁冮敂鎯у灊妞ゆ牜鍋涚粻顖炴煕濞戞ḿ鎽犻柛銈呯Ч閺屾洘绔熼娆掝唹闁稿鎸荤换婵嬪炊閵娿垺瀚奸梻鍌氬€搁悧鍐疾濠靛牏鐭撻柛鎾茶兌绾惧ジ鏌eΟ鎸庣彧鐎规洖鐭傞弻锝呪槈閸楃偞鐏曠紓浣哄У缁嬫垿鍩ユ径濞炬瀻闁归偊鍙庢禒褔姊婚崒娆愮グ婵炲娲熷畷鎶芥晝閸屾氨顔嗛梺璺ㄥ櫐閹凤拷...


图6 PRAM堆栈结构下内置空闲地址队列表

以图5的读出操作为例,当Read Control模块由PQ List的首地址0读出相应的BRAM中的内容,同时读出PRAM中对应的下一跳地址1,更新地址1为新的首地址。这时,地址0为已经释放的地址,按空闲队列的操作要求,地址0需要进入空闲地址队列中,在写操作时再将地址0读出提供给Write Control模块用于写BRAM。而基于图6的结构,地址0在被释放后不再进行更新PRAM中的空闲地址队列Free List的操作,直接写入片内缓冲中,在Write Control模块申请地址时由片内缓冲中读出提供给Write Control模块 。仅在片内Free List缓冲几乎满时,进行PRAM中的空闲地址队列Free List的更新操作,或在片内Free List缓冲空时进行PRAM中的空闲地址队列Free List的读取操作。基于图6的结构,在一个读写周期内,可以节省两次PRAM的操作,在最坏情况下也可节省一次PRAM的操作。但基于堆栈的结构,栈顶的地址被高频率的反复的调用,栈底的地址很难被使用,DRAM的工作寿命会因此受到影响。为保证DRAM的工作寿命,在有些系统中将空闲地址队列Free List做成链表形式,从而保证每个DRAM的存储空间都能被平均的使用。读出操作的Free Lis链表结构如图7所示。

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝洨纾界€广儱鎷戦煬顒傗偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備浇顕栭崹搴ㄥ礃閿濆棗鐦遍梻鍌欒兌椤㈠﹤鈻嶉弴銏犵闁搞儺鍓欓悘鎶芥煛閸愩劎澧曠紒鈧崘鈹夸簻闊洤娴烽ˇ锕€霉濠婂牏鐣洪柡灞诲妼閳规垿宕卞▎蹇撴瘓缂傚倷闄嶉崝宀勫Χ閹间礁钃熼柣鏂垮悑閸庡矂鏌涘┑鍕姢鐞氾箓姊绘担鍛婃儓闁活厼顦辩槐鐐寸瑹閳ь剟濡存担鍓叉建闁逞屽墴楠炲啫鈻庨幘宕囶啇濡炪倖鎸鹃崳銉ノ涜濮婂宕掑▎鎴犵崲濠电偘鍖犻崗鐐☉閳诲酣骞嬮悙瀛橆唶闂備礁婀遍崕銈夈€冮幇顔剧闁哄秲鍔庣弧鈧梻鍌氱墛娓氭宕曢幇鐗堢厸闁告侗鍠氶崣鈧梺鍝勬湰缁嬫垿鍩ユ径鎰闁绘劕妯婂ḿ缁樹繆閻愵亜鈧垿宕曢弻銉﹀殞濡わ絽鍟悡姗€鏌熺€电ǹ浠滅紒鐘靛█濮婅櫣绮欓崠鈩冩暰濡炪們鍔屽Λ婵嬬嵁閸儱惟闁冲搫鍊搁埀顒€顭烽弻锕€螣娓氼垱楔闂佹寧绋掔粙鎴﹀煘閹达附鍊烽柡澶嬪灩娴滃爼姊洪悷鎵紞闁稿鍊曢悾鐑藉醇閺囥劍鏅㈡繛杈剧秮閺呰尙绱撻幘鍓佺=闁稿本鐟чˇ锔姐亜閹存繃鍤囬柟顔矫埞鎴犫偓锝庡亜閳ь剙鐏氶妵鍕箻鐠虹儤鐎虹紓浣筋嚙濡繈寮婚弴銏犻唶婵犻潧鐗忛濠囨⒑閸涘﹤绗傞柛妤佸▕瀵鈽夐姀鈥充簽婵炶揪缍侀弲鑼姳閻e瞼纾藉〒姘搐閺嬶附銇勯弴鍡楁搐閻撯€愁熆鐠哄ソ锟犳偄閼姐倗鏉搁梺瑙勫劤婢у孩顨欓梻鍌欐祰濡椼劑鎮為敃鍌氱婵炲棗绻掗弳锕傛煏婵炵偓娅撻柡浣革躬閹绗熼婊冨弗闂佽 鍋撻柕濞у懐锛濋梺绋挎湰閼归箖鍩€椤掑嫷妫戠紒顔肩墛缁楃喖鍩€椤掑嫨鈧線寮介鐐殿槹濡炪倖鐗楃粙鎴濃枔閹达附鈷戦柛娑橈攻鐏忣偊鏌i幒鐐电暤闁挎繄鍋ゅ鎾閿涘嫬骞嶉梻浣侯攰椤宕濋敃鍌氬惞婵炲棙鍨瑰Λ顖炴煙椤栧棗鍟崐顖炴⒑闁稓鈹掗柛鏂跨焸閿濈偛饪伴崼婵嗚€垮┑掳鍊愰崑鎾搭殽閻愬樊鍎旀慨濠呮缁瑥鈻庨幆褍澹夐梻浣告贡閹虫挸煤椤撱垻宓侀柛鎰╁妷閸亪鏌涢銈呮瀻婵炲牏鍠栧娲濞戣鲸肖闂佺ǹ瀵掗崳锝呯暦閹达箑绠婚悹鍥ㄧ叀閺佹粌鈹戞幊閸婃捇鎳楅崼鏇炵煑闁糕剝绋掗埛鎴︽煕濠靛棗顏璺哄閹便劌螣缁嬪灝顫囬悗瑙勬礃缁诲倿顢橀崗鐓庣窞閻庯綆鍓欓獮宥夋⒒娴e憡鍟為柛鏃€岣挎禍绋库枎閹炬潙鈧潡鏌涘☉姗堟敾闁告瑥绻愰埞鎴︽偐閹绘帩浼€闁汇埄鍨遍惄顖炲蓟閻旈鏆嬮柣妤€鐗嗗▓妤呮倵鐟欏嫭纾搁柛鏂跨Ф閹广垹鈹戠€n亞锛滃┑鐐村灦閻熝囧汲椤撱垺鈷掗柛灞捐壘閳ь剙鍢查湁闁搞儜鍛闂佹眹鍨绘灙缂佹劖顨婇弻娑㈠焺閸愵亖妲堢紒鐐劤濞硷繝寮婚悢鐓庣畾闁绘鐗滃Λ鍕磽娴e搫校闁绘搫绻濆濠氬即閿涘嫮鏉搁梺鍝勬川閸庢劙鍩€椤掆偓閺堫剛鎹㈠☉姘辩當闁告繂瀚~鍥⒑閸濆嫯瀚扮紒澶屽厴绡撳〒姘e亾闁哄本鐩獮妯尖偓闈涙啞閸f澘顪冮妶鍐ㄧ仾鐎光偓閹间礁鏋侀柟鐗堟緲楠炪垺绻涢崱妯虹仼婵℃彃娲︾换婵嗏枔閸喗鐏嶉梺鎸庢磵閺呯姴鐣烽姀銈呯闁兼祴鏅╁ú绋库攽閻樿宸ラ柟铏姉婢规洘绺介崨濠勫幗闂侀€涘嵆濞佳勬櫠椤斿浜滈幖娣灮閻﹥銇勯鍕殶闁逞屽墯缁嬫帟鎽梺绋匡攻閸旀鍩€椤掍緡鍟忛柛鐘愁殜閹繝鏁撻悩顔瑰亾娴h倽鏃堝川椤撶媭妲规俊鐐€栭崹鍏兼叏閵堝洠鍋撳顑惧仮婵﹦绮幏鍛村川婵犲懐顢呴梺鍝勵儛娴滄繄鎹㈠☉銏犵妞ゆ洖鎳忛ˉ鏍磽娓氬洤鏋涙い顓犲厴閻涱喖螣鐏忔牕浜鹃梻鍫熺⊕閹插憡銇勯弮鈧ú鐔煎蓟閿濆鍋愰柛娆忣槸瀹稿爼姊洪崨濠佺繁闁告ê銈搁幃锟犲磼閻愮补鎷洪柡澶屽仦婢瑰棝藝閿曞倹鐓熸俊銈傚亾闁挎洏鍎崇划姘綇閵娧呯槇闂佹悶鍎洪悘娑滎樄闁哄本绋戦埥澶愬础閻愬浜繝鐢靛仜閹冲矂宕愬┑鍡╂綎闁惧繐婀遍惌娆愮箾閸℃ê鍔ら柛鎿冨墴濮婃椽宕ㄦ繝鍐ㄩ瀺缂備浇顕х€氫即鐛幋锕€顫呴柣姗嗗亝閺傗偓闂備焦鎮堕崕顕€寮插┑瀣剨闁割偁鍎查埛鎴犵磼鐎n偄顕滄繝鈧幍顔剧<閻庯綆鍋勯悘銉╂煃鐠囪尙效闁轰焦鍔欏畷顏呮媴閻熸壆妲i梻鍌欑窔濞佳囨偋閸℃瑦宕查柟鐑橆殔缁€鍡椕归悡搴f憼闁绘挸绻橀弻娑㈩敃閵堝懏鐎鹃梺绋匡攻閸旀牠銆冮妷鈺傚€烽柟缁樺笚濞堣尙绱撴担绋库偓鍦暜閻愬搫鐒垫い鎺戯功閸掍即鏌h箛鏂垮摵鐎殿喗鐓¢、妤呭焵椤掑嫬鐓橀柟杈鹃檮閸婄兘鏌℃径瀣仼濞寸姵鎮傞弻锕傚礃椤旂粯鍠氶梺璇″枛缂嶅﹤鐣烽崼鏇炵厸濞达綁鏀遍~鏇熺節濞堝灝鏋涢柨鏇樺妼閳诲秹鏁愭径濠勵唵闂佺粯枪椤曆囨倶閹惰姤鐓i煫鍥风到娴滅偛霉濠婂啰鍩f慨濠勭帛閹峰懘鎸婃径濠冨劒闂備線娼荤紞鍥⒔閸曨剛鈹嶅┑鐘叉搐閻愬﹥銇勯幒鍡椾壕缂備胶濮甸悡锟犲蓟閺囷紕鐤€闁哄洨鍊☉銏$厸闁逞屽墯缁傛帞鈧綆鍋勯埀顒傛暬閺屻劌鈹戦崱娆忓毈缂備降鍔嬬划娆撳蓟濞戞瑧绡€闁告洦鍋傚Σ鎰攽椤旂》鏀绘俊鐐舵铻為柛鎰电厑瑜版帒围闁糕剝鐟﹂崚娑㈡倵鐟欏嫭绀冮柨鏇樺灪娣囧﹪骞栨担鑲濄劍銇勯弮鍥棄闁哄濮电换婵嬫偨闂堟刀銉╂煛娴e憡鍟為柟渚垮姂閹粓鎸婃径瀣偓顒勬⒑閸涘﹦鈽夐柨鏇樺劦瀹曪綀绠涘☉娆戝幗闂佺鎻徊楣兯夋径鎰厸閻庯絺鏅濈粣鏃堟煛瀹€鈧崰鏍ь潖閼姐倐鍋撻棃娑橆棌婵″樊鍠氱槐鎺楁倷椤掆偓缁€鍐┿亜椤愩埄妯€濠碉紕鏁诲畷鐔碱敍濮橆剙鏁ゆ俊鐐€栭崝锕€顭块埀顒傜磼椤旇偐鍩f慨濠呮缁辨帒螣閾忓湱鎳嗛梻浣筋嚙缁绘垵鐣濋崨濠佺箚闁汇垻枪缁€瀣亜閺嶃劍鐨戞い鏂匡躬濮婃椽鎮烽幍顔芥喖缂備浇顕х粔鐢电矉閹烘鍤冮柍鍝勫暟閿涙粓姊虹紒妯哄Е闁告挻鐟╁畷婵嬪Χ閸℃劒绨诲銈嗘尵婵挳宕㈢€电硶鍋撳▓鍨灈妞ゎ厾鍏橀獮鍐閵堝棗浜楅柟鑹版彧缂嶅棗危閸洘鐓熼柣鏂挎憸閻﹦绱掔紒妯烘诞鐎殿噮鍋婇、娆戜焊閺嶎煈娼旈梻渚€娼ф蹇曟閺囥垹鍌ㄥù鐘差儐閳锋垿鎮峰▎蹇擃仼闁告柣鍊栭妵鍕即閵娿儱绠归柣鎾卞€濋弻鐔虹磼閵忕姵鐏嶉梺缁樻尰閻燂箓濡甸崟顖氱睄闁稿本绮嶉幉妯衡攽閻愯尙澧涚紒顔芥崌瀵鍩勯崘鈺侇€撻梺鑽ゅ枑濠㈡﹢锝炲澶嬧拺閻犲洠鈧磭浠┑鈽嗗亜閸熸潙鐣风憴鍕╁亝闁告劏鏅涘▓銈咁渻閵堝棗绗傞柣鎺炵畱閳诲秹鏁冮埀顒勫煘閹达附鍋愰柛顭戝亝濮e嫭绻濆▓鍨珮闁告瑥鍟撮悰顔跨疀濞戞ḿ顦ㄥ銈嗘閸嬫劙藝閵娿儺娓婚柕鍫濇噽缁犱即鏌涢悢鍝勵暭闁靛洦鐟╅獮搴ㄦ嚍閵夈垺瀚藉┑鐐存尰閸╁啴宕戦幘缁樼厓鐟滄粓宕滃杈╃煓闁规崘顕ч悡姗€鏌熼悜姗嗘畷闁绘挻娲熼弻锟犲磼濠靛洨銆婇柤鍙夌墵濮婃椽鎮烽幍顔炬殯闂佹悶鍔岀紞濠囧春閻愬搫绠i柣姗嗗亜娴滈箖鏌ㄥ┑鍡欏嚬缂併劏宕电槐鎺楀箛椤撶姭妲堝銈庝簻閸熷瓨淇婇崼鏇炲耿婵☆垳鈷堝Σ顒勬⒒娴g儤鍤€闁哥喕娉曠划鏃堟偡閹殿喗娈惧銈嗗姀閹筹繝寮崼婵嗙獩濡炪倖妫侀~澶屸偓姘虫閳规垿鎮欓懜闈涙锭缂備浇寮撶划娆撶嵁婢舵劖鏅柛鏇ㄥ墮椤忔悂姊虹捄銊ユ灁濠殿喚鏁婚幃鈥斥枎閹惧鍙勯棅顐㈡祫缁茶姤绂嶅┑瀣€堕煫鍥ㄦ礃閺嗩剟鏌$仦鐣屝ユい褌绶氶弻娑㈠箻绾惧顥濆銈庡亝缁诲牊淇婇幖浣规櫆闁兼亽鍎宠ぐ鎸庣節瀵伴攱婢橀埀顒佹崌閹虫宕奸弴鐐靛幋閻庡箍鍎遍幊澶愬绩娴犲鐓熸俊顖氭惈缁狙囨煙閸忕厧濮夌紒杈ㄥ浮閹晠宕归銏$暚闂傚倸娲らˇ鐢稿蓟閵娿儮鏀介柛鈩冪懃椤f椽姊洪柅鐐茶嫰閸樺摜绱掗鐣屾噭濞e洤锕獮鏍ㄦ媴閸濄儱骞愰梻浣呵归張顒傚垝鐏炵瓔鍤曢柟鎯板Г閳锋帒霉閿濆懏鍟為柟顖氱墦閺屾盯鎮㈤崫鍕ㄦ瀰閻庤娲橀崹鍧楃嵁濡偐纾兼俊顖滃帶楠炲牓姊虹涵鍛棈闁规椿浜炲Σ鎰板即閵忊剝娅栭悗骞垮劚濞层劎澹曟總绋跨骇闁割偅纰嶅▍鍛归悩娲摵妞ゃ劊鍎甸幃娆撳级閹寸姷鎳嗛梺鍓х帛閻楁洟婀侀梺鎸庣箓閹冲海鐥閹顫濋銈囩厯濠殿喖锕︾划顖炲箯閸涙潙宸濋梻鍫熺〒缁夎櫣鈧鍠氶弫濠氥€佸Δ鍛妞ゆ巻鍋撳ù鐙€鍙冨娲濞淬儱鐗撳鎻掆槈濮樿京鐒奸梺绋挎湰婢规洟宕戦幘璇茬濠㈣泛锕f竟鏇㈡⒒娴e憡鍟炴繛璇х畵瀹曟粌鈽夐姀鐘插亶闂佹眹鍨归幉锟犲煕閹达附鐓欐い鏍ф鐎氼噣銆呮导瀛樷拺缂佸顑欓崕蹇涙煙閸愭煡鍙勯柟顔藉劤閻o繝骞嶉鑺ョ暦闂備線鈧偛鑻晶鎾煕閳规儳浜炬俊鐐€栫敮鎺楀窗濮橆兗缂氶柟閭﹀幘缁犻箖鏌涘▎蹇fШ闁活厽甯為埀顒侇問閸n噣宕戦崱娑樼闁绘ê妯婇崯鍛亜閺傚灝鎮戞い鎾崇仢閳规垿鎮欏顔兼婵犳鍠楅幐鎶姐€侀弽顓炵疀闁哄瀵ч悗顒勬⒑閹肩偛鍔撮柛鎾村哺閹繝鎮㈤崗鑲╁幍闂備緡鍙忕粻鎴濐嚕妤e啯鐓曢柣鏃堫棑缁犲鏌$仦鍓ф创闁诡喗鐟╁畷褰掝敃閿濆棛妲楀┑鐘愁問閸犳牠鏁冮敂鎯у灊妞ゆ牜鍋涚粻顖炴煕濞戞ḿ鎽犻柛銈呯Ч閺屾洘绔熼娆掝唹闁稿鎸荤换婵嬪炊閵娿垺瀚奸梻鍌氬€搁悧鍐疾濠靛牏鐭撻柛鎾茶兌绾惧ジ鏌eΟ鎸庣彧鐎规洖鐭傞弻锝呪槈閸楃偞鐏曠紓浣哄У缁嬫垿鍩ユ径濞炬瀻闁归偊鍙庢禒褔姊婚崒娆愮グ婵炲娲熷畷鎶芥晝閸屾氨顔嗛梺璺ㄥ櫐閹凤拷...


图7 读出操作的Free Lis链表结构

Read Control模块由PQ List的首地址0读出相应的BRAM中的内容,同时读出PRAM中对应的下一跳地址1,更新地址1为新的首地址。

Free List相对于堆栈模式增加尾指针d。Free List在回收地址时维持首指针a不变,将尾指针d更新为刚释放的地址0,同时地址d中写入下一跳指针0。这样一次BRAM的读出操作同样需要一次PRAM的读取操作及一次PRAM的写入操作。对于链表方式的空闲地址队列Free List,在每个读、写周期必须进行两次PRAM的写入操作及两次PRAM的读取操作,PRAM的效率不高。

针对两种空闲地址队列的效率及对DRAM的影响,在很多系统中采用了折中的方法,即在PRAM中使用链表方法管理空闲地址队列Free List,在片内采用堆栈模式另建一个空闲地址队列Free List,在这种情况下,每个读、写周期需要三次PRAM的操作。

在实际系统中,BRAM的带宽与PRAM的带宽一般为TM的瓶颈,PRAM主要受限于访问的次数,而BRAM受限于接口带宽。

在10G的TM系统中,片内数据总线的位宽定为128位,系统时钟定为150MHz,BCELL的大小定为64B。在这种情况下,读取操作和写入操作均为4个时钟周期。在满足10G系统的需求下,读取、写入操作周期为7个时钟周期。在前面曾计算过,在满足10G TM系统的情况下,BRAM采用64位 DDR II SDRAM,接口时钟使用250MHz即可满足数据接口的需求。PRAM采用32位ZBT SRAM ,接口时钟使用系统时钟,每个PCELL为64位,每个读、写周期需要6个时钟周期完成。在实际系统中采用Altera FPGA,BM的设计可以满足10G的TM线速工作的需求。

在40G核心网的TM系统中,片内数据总线的位宽为256位,系统时钟采用250MHz(在40GE的系统中可选用200MHz)。采用DDR II SDRAM,接口时钟使用333MHz,则192位的BRAM可以满足40G的TM需求。此时,BCELL可为96B、192B、384B,在这里选用1
92B。当BCELL选用192B时,读取操作和写入操作同样均为6个时钟周期。在满足40G系统的需求下,读取、写入操作周期为9个时钟周期。PRAM采用48位QDR SRAM,接口时钟使用150MHz,每个PCELL为96位,在每个读、写时钟周期内,PRAM最多可被操作5次。在采用Altera FPGA的情况下,BRAM采用192位 DDR II SDRAM,PRAM采用48位QDR SRAM,BM的设计可以满足40G的TM线速工作的需求。

灏勯涓撲笟鍩硅鏁欑▼鎺ㄨ崘

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top