97人妻精品一区二区三区_国产AⅤ无码精品一区二区三区_成人无码网WWW在线观看_久久成人无码国产免费播放

多(duo)CPU并行(xing)計算機(ji)系(xi)統的軟硬件設計實例

time : 2022-07-25 10:27       作者:凡億pcb

多CPU 的并行計算機技術,在很大程度上提高了系統計算速度,突破了單CPU 處理速度的極限。同時采用多個CPU 的單板計算機設計,可以減少計算機系統的體積、降低開發成本、減少系統的開發周期。
 
一(yi)、多處理器(qi)并行計(ji)算機系(xi)統的硬件設計(ji)
 
多(duo)處理器(qi)(qi)并(bing)(bing)行(xing)計算機(ji)系統(tong)(tong)是屬于(yu)并(bing)(bing)行(xing)結(jie)構(gou)的(de)(de)(de)系統(tong)(tong)模型,每一個處理器(qi)(qi)都需(xu)要具有(you)(you)自(zi)己(ji)局(ju)(ju)部(bu)存(cun)儲(chu)(chu)器(qi)(qi),以(yi)存(cun)儲(chu)(chu)自(zi)己(ji)的(de)(de)(de)應用程序并(bing)(bing)能夠(gou)獨立(li)高(gao)速(su)(su)并(bing)(bing)行(xing)計算;同時,該(gai)系統(tong)(tong)需(xu)要具有(you)(you)高(gao)速(su)(su)通信(xin)的(de)(de)(de)互(hu)連網絡,可以(yi)把(ba)并(bing)(bing)行(xing)數(shu)據塊高(gao)速(su)(su)分布(bu)在(zai)各個處理器(qi)(qi)的(de)(de)(de)局(ju)(ju)部(bu)存(cun)儲(chu)(chu)器(qi)(qi)中,以(yi)提高(gao)并(bing)(bing)行(xing)系統(tong)(tong)的(de)(de)(de)效率(lv)。該(gai)計算機(ji)結(jie)構(gou)設計可以(yi)采用共享存(cun)儲(chu)(chu)器(qi)(qi)(雙(shuang)端口RAM)互(hu)連的(de)(de)(de)松(song)耦合不對稱處理器(qi)(qi)配置。系統(tong)(tong)結(jie)構(gou)如圖(tu)1所示(shi),圖(tu)中的(de)(de)(de)各個處理器(qi)(qi)都具有(you)(you)自(zi)己(ji)的(de)(de)(de)高(gao)速(su)(su)局(ju)(ju)部(bu)存(cun)儲(chu)(chu)器(qi)(qi),可高(gao)速(su)(su)獨立(li)的(de)(de)(de)并(bing)(bing)行(xing)進行(xing)計算,各個處理器(qi)(qi)之間(jian)由(you)雙(shuang)端口存(cun)儲(chu)(chu)器(qi)(qi)互(hu)連組成高(gao)速(su)(su)星(xing)型通信(xin)網絡,由(you)于(yu)雙(shuang)端口存(cun)儲(chu)(chu)器(qi)(qi)具有(you)(you)很高(gao)的(de)(de)(de)通信(xin)速(su)(su)率(lv),靈活的(de)(de)(de)通信(xin)協議建立(li)方式,因此雙(shuang)端口存(cun)儲(chu)(chu)器(qi)(qi)互(hu)連的(de)(de)(de)松(song)耦合多(duo)CPU 并(bing)(bing)行(xing)計算機(ji)具有(you)(you)如下優點:
 
⑴ 通(tong)信帶寬。CPU 訪(fang)問雙端(duan)口存(cun)儲(chu)器可以采(cai)用字節(jie)/字/雙字長度進行,數據讀/寫(xie)速(su)度高。
 
⑵ 結構簡單。處理器(qi)(qi)和雙(shuang)端口存(cun)儲器(qi)(qi)直接(jie)相連,不需要其它接(jie)口電路(lu),可(ke)實現可(ke)靠的雙(shuang)向(xiang)信息傳送。
 
⑶ 具有可(ke)剪裁性。根據需要可(ke)增加或減少處(chu)理器數量。
 
⑷ 擴展(zhan)性(xing)強。該系(xi)統(tong)結(jie)構可(ke)適合(he)各種處理器。
 
圖(tu)1所示的(de)(de)多個(ge)(ge)處理(li)(li)器(qi)(qi)的(de)(de)計(ji)算機模型中,CPU可以(yi)(yi)采用Intel x86 系列、PowerPC 系列、ARM系列等處理(li)(li)器(qi)(qi)。Boot Processor(即(ji)主(zhu)處理(li)(li)器(qi)(qi))負責對(dui)系統管(guan)理(li)(li),通過它(ta)可以(yi)(yi)協調各個(ge)(ge)Application Processor(即(ji)從處理(li)(li)器(qi)(qi))的(de)(de)工(gong)作(zuo),同時Boot Processor 也對(dui)共享存儲(chu)器(qi)(qi)進(jin)行(xing)初始化。為了提高系統的(de)(de)上電(dian)效(xiao)率,每(mei)個(ge)(ge)處理(li)(li)器(qi)(qi)都需要帶有自己的(de)(de)fash 電(dian)子盤(pan)(pan)來(lai)存儲(chu)程序(xu),每(mei)個(ge)(ge)處理(li)(li)器(qi)(qi)都可以(yi)(yi)外掛設備(比如網絡、鍵(jian)盤(pan)(pan)等)。
 
二、多處理(li)器并行計(ji)算(suan)機的軟件設計(ji)
 
為提高處理器的執(zhi)行(xing)效率,一般計(ji)算機系(xi)統都采用實時(shi)多(duo)任務操(cao)作系(xi)統,本(ben)文以嵌入式VxWorks操(cao)作系(xi)統為基(ji)礎論述多(duo)CPU 并(bing)行(xing)計(ji)算機的軟件設(she)計(ji)方法。
 
1、共(gong)享存儲(chu)器(qi)網絡
 
在VxWorks 操(cao)作系統中,多CPU 之間的通(tong)信使用共(gong)(gong)享存儲器網(wang)絡(luo)技術(Shared-Memory BackplaneNetwork)。該技術采用虛擬網(wang)絡(luo)來管理(li)共(gong)(gong)享存儲設(she)備。共(gong)(gong)享存儲器網(wang)絡(luo)驅動允(yun)許(xu)多個處理(li)器之間的通(tong)信采用網(wang)絡(luo)形式,使用規范符(fu)合(he)BSD4.4 兼(jian)容(rong)模式。共(gong)(gong)享存儲器可以駐留在CPU 主(zhu)板上也(ye)可以駐留在單獨的存儲器板上。
 
BP 代表(biao)Boot Processor(主(zhu)(zhu)(zhu)處(chu)(chu)(chu)理(li)(li)(li)器(qi)(qi)(qi)(qi)),AP 代表(biao)Application Processor(從(cong)(cong)處(chu)(chu)(chu)理(li)(li)(li)器(qi)(qi)(qi)(qi))。主(zhu)(zhu)(zhu)處(chu)(chu)(chu)理(li)(li)(li)器(qi)(qi)(qi)(qi)設置(zhi)有主(zhu)(zhu)(zhu)機路由(you)(you)200.200.200.0,從(cong)(cong)處(chu)(chu)(chu)理(li)(li)(li)器(qi)(qi)(qi)(qi)可以通(tong)過(guo)主(zhu)(zhu)(zhu)處(chu)(chu)(chu)理(li)(li)(li)器(qi)(qi)(qi)(qi)與外網通(tong)信(xin)。主(zhu)(zhu)(zhu)處(chu)(chu)(chu)理(li)(li)(li)器(qi)(qi)(qi)(qi)必須有兩個(ge)網絡(luo)(luo)接口,一個(ge)用(yong)于和(he)(he)外網通(tong)信(xin)(如(ru)和(he)(he)VxWorks 開(kai)發主(zhu)(zhu)(zhu)機Vx-Host 通(tong)信(xin)),IP 地址設置(zhi)為如(ru)圖2 中的90.0.0.10;另外一個(ge)是(shi)虛擬的共(gong)享存儲(chu)器(qi)(qi)(qi)(qi)網絡(luo)(luo),用(yong)于和(he)(he)從(cong)(cong)處(chu)(chu)(chu)理(li)(li)(li)器(qi)(qi)(qi)(qi)通(tong)信(xin)。從(cong)(cong)處(chu)(chu)(chu)理(li)(li)(li)器(qi)(qi)(qi)(qi)配置(zhi)的網絡(luo)(luo)IP 地址分別(bie)是(shi)200.200.200.1、200.200.200.2 和(he)(he)200.200.200.3。當調(diao)試程(cheng)序時,首先由(you)(you)主(zhu)(zhu)(zhu)處(chu)(chu)(chu)理(li)(li)(li)器(qi)(qi)(qi)(qi)初(chu)始(shi)化(hua)共(gong)享內存網絡(luo)(luo)(包括設置(zhi)存儲(chu)器(qi)(qi)(qi)(qi)地址),從(cong)(cong)開(kai)發主(zhu)(zhu)(zhu)機上下(xia)載自己的VxWorks image;然(ran)后,調(diao)度從(cong)(cong)處(chu)(chu)(chu)理(li)(li)(li)器(qi)(qi)(qi)(qi)(AP)通(tong)過(guo)IP 地址90.0.0.10 從(cong)(cong)開(kai)發主(zhu)(zhu)(zhu)機VxHost上下(xia)載從(cong)(cong)處(chu)(chu)(chu)理(li)(li)(li)器(qi)(qi)(qi)(qi)所(suo)需(xu)要(yao)的VxWorks image,并且(qie)運(yun)行該操作(zuo)系統,從(cong)(cong)機的一切調(diao)試均通(tong)過(guo)主(zhu)(zhu)(zhu)處(chu)(chu)(chu)理(li)(li)(li)器(qi)(qi)(qi)(qi)進行。
共享存儲(chu)器(qi)網絡是(shi)VxWorks 的(de)一(yi)個(ge)模塊,使用時(shi)必須在tornado的(de)有關選項中選擇。對于每一(yi)個(ge)處理(li)器(qi)都有一(yi)個(ge)自己(ji)的(de)boorom 或VxWoks image,分別獨自運行自己(ji)的(de)操(cao)作系統,彼(bi)此之間需(xu)要通信時(shi)通過(guo)共享存儲(chu)器(qi)進行。
 
2、共享存儲(chu)器網絡主(zhu)設備
 
多處理器系統中(zhong)有一個處理器充當主設備(bei)的(de)角色。共享存儲器網絡主設備(bei)(Shared-MemoryNetwork Master)在(zai)系統中(zhong)所(suo)起(qi)到的(de)功(gong)能解釋如下:
 
⑴ 初始化共享存儲器區域和共享內存鉤子(anchor);
 
⑵ 維護共享存(cun)儲(chu)器網(wang)絡心跳;
 
⑶ 作為其(qi)它處理器和(he)外(wai)網通信(xin)的網關;
 
⑷ 分(fen)配(pei)共享存儲區域。
 
在(zai)(zai)(zai)VxWorks 操作(zuo)系(xi)統(tong)中(zhong)(zhong)要求共(gong)享(xiang)(xiang)存(cun)(cun)儲(chu)(chu)區(qu)域是一塊(kuai)連(lian)續的(de)存(cun)(cun)儲(chu)(chu)地(di)址空(kong)間,默認為(wei)(wei)16MB,在(zai)(zai)(zai)網絡驅動中(zhong)(zhong)所定義。主設備負責為(wei)(wei)其(qi)它處理(li)器分配共(gong)享(xiang)(xiang)存(cun)(cun)儲(chu)(chu)區(qu)域,并且進行內存(cun)(cun)映射(she)。共(gong)享(xiang)(xiang)存(cun)(cun)儲(chu)(chu)區(qu)的(de)定位依靠系(xi)統(tong)配置(zhi)。所有(you)的(de)處理(li)器利(li)用鉤(gou)子功能(neng)都必(bi)須(xu)能(neng)夠訪(fang)問該區(qu)域。共(gong)享(xiang)(xiang)存(cun)(cun)儲(chu)(chu)鉤(gou)子是所有(you)處理(li)器的(de)通信參(can)考(kao)點。鉤(gou)子結構和(he)共(gong)享(xiang)(xiang)內存(cun)(cun)區(qu)域可(ke)以被放置(zhi)在(zai)(zai)(zai)雙端口RAM中(zhong)(zhong)。鉤(gou)子包(bao)含(han)真正存(cun)(cun)儲(chu)(chu)區(qu)域的(de)物理(li)地(di)址偏移量,這在(zai)(zai)(zai)主設備在(zai)(zai)(zai)初始化過(guo)程(cheng)中(zhong)(zhong)所設置(zhi),鉤(gou)子和(he)存(cun)(cun)儲(chu)(chu)區(qu)域必(bi)須(xu)在(zai)(zai)(zai)相同(tong)的(de)地(di)址空(kong)間,地(di)址必(bi)須(xu)是線性(xing)和(he)有(you)效的(de)。
 
當共享(xiang)存(cun)儲(chu)器網(wang)絡(luo)(luo)主設備初始(shi)化(hua)后,所有(you)的處(chu)(chu)理(li)(li)(li)(li)器才(cai)可以使用共享(xiang)存(cun)儲(chu)器網(wang)絡(luo)(luo)。但(dan)是,主處(chu)(chu)理(li)(li)(li)(li)器并不能真正干涉(she)其它處(chu)(chu)理(li)(li)(li)(li)器之(zhi)(zhi)間通(tong)(tong)過網(wang)絡(luo)(luo)進行數據包的交互(hu),各個處(chu)(chu)理(li)(li)(li)(li)器之(zhi)(zhi)間通(tong)(tong)信是通(tong)(tong)過本地的中斷或(huo)查詢方式(shi)進行的。當共享(xiang)存(cun)儲(chu)器被(bei)初始(shi)化(hua)后,所有(you)的處(chu)(chu)理(li)(li)(li)(li)器,包括主處(chu)(chu)理(li)(li)(li)(li)器,都同等的使用網(wang)絡(luo)(luo)。在Tornado2.0 環境(jing)下(xia),主處(chu)(chu)理(li)(li)(li)(li)器號規(gui)定為0,系統(tong)通(tong)(tong)過處(chu)(chu)理(li)(li)(li)(li)號來識別主處(chu)(chu)理(li)(li)(li)(li)器和從處(chu)(chu)理(li)(li)(li)(li)器。典(dian)型的情況下(xia),主處(chu)(chu)理(li)(li)(li)(li)器有(you)兩個Internet 地址,分別用于外網(wang)通(tong)(tong)信和內(nei)部網(wang)關。
 
3、共享存儲區的網絡心跳
 
在多CPU 系統中,所(suo)有的(de)處(chu)理(li)器只有當共享(xiang)存儲區(qu)域初始化(hua)后才可以(yi)通過網絡(luo)進(jin)行通信(xin),所(suo)以(yi)各(ge)個處(chu)理(li)器需要知道共享(xiang)網絡(luo)是否(fou)處(chu)于激活(huo)狀態(tai)(tai)或(huo)是就(jiu)緒狀態(tai)(tai)。在這里采用(yong)心跳(tiao)檢測的(de)方法使各(ge)個處(chu)理(li)器得知網絡(luo)的(de)狀態(tai)(tai)。
 
心(xin)跳(tiao)(heartbeat)是(shi)一個(ge)計數器(qi)(qi)(qi)(qi),它被主處理器(qi)(qi)(qi)(qi)每1 秒(miao)進行計數,其(qi)他處理器(qi)(qi)(qi)(qi)靠監(jian)(jian)視心(xin)跳(tiao)值來確認共(gong)享(xiang)網絡是(shi)否處于正常。其(qi)他處理器(qi)(qi)(qi)(qi)監(jian)(jian)視心(xin)跳(tiao)一般是(shi)每隔(ge)幾秒(miao)進行一次(ci)(根據具體情(qing)況(kuang)而定(ding))。共(gong)享(xiang)存(cun)(cun)儲器(qi)(qi)(qi)(qi)心(xin)跳(tiao)偏移地址被放置在共(gong)享(xiang)存(cun)(cun)儲器(qi)(qi)(qi)(qi)包頭(tou)的第5個(ge)4 個(ge)節的字中(zhong)。如圖(tu)3 所示。
 
4、處理(li)器之間的通信
 
處(chu)理(li)器(qi)(qi)(qi)(qi)之間通信可以(yi)采用(yong)(yong)中(zhong)斷(duan)(duan)方(fang)(fang)式(shi)也可以(yi)采用(yong)(yong)查詢方(fang)(fang)式(shi)。每一(yi)(yi)個處(chu)理(li)器(qi)(qi)(qi)(qi)都有一(yi)(yi)個輸(shu)(shu)入(ru)隊(dui)列用(yong)(yong)來接收其它處(chu)理(li)器(qi)(qi)(qi)(qi)發(fa)送(song)(song)來得的數據(ju)包,當采用(yong)(yong)查詢方(fang)(fang)式(shi)時,處(chu)理(li)器(qi)(qi)(qi)(qi)以(yi)固定(ding)時間間隔查詢隊(dui)列是否接收到數據(ju)。當使用(yong)(yong)中(zhong)斷(duan)(duan)方(fang)(fang)式(shi)時,發(fa)送(song)(song)處(chu)理(li)器(qi)(qi)(qi)(qi)通知接收處(chu)理(li)器(qi)(qi)(qi)(qi)輸(shu)(shu)入(ru)隊(dui)列中(zhong)有數據(ju)。中(zhong)斷(duan)(duan)方(fang)(fang)式(shi)可以(yi)采用(yong)(yong)總線(xian)中(zhong)斷(duan)(duan)或是郵箱中(zhong)斷(duan)(duan),它比(bi)查詢方(fang)(fang)式(shi)更有效。
 
多CPU 的(de)并行(xing)系統(tong)(tong)類似于一個嵌(qian)入(ru)式(shi)(shi)分(fen)(fen)布式(shi)(shi)系統(tong)(tong),它們之間的(de)通信(xin)可采用分(fen)(fen)布式(shi)(shi)消息(xi)隊列、分(fen)(fen)式(shi)(shi)數(shu)據(ju)庫技(ji)術(shu)。分(fen)(fen)布式(shi)(shi)消息(xi)隊列和分(fen)(fen)布式(shi)(shi)數(shu)據(ju)庫技(ji)術(shu)相結合,給系統(tong)(tong)中(zhong)的(de)所有處理器(qi)提供了一個透明化(hua)的(de)通信(xin)平臺。處理器(qi)訪(fang)問分(fen)(fen)布式(shi)(shi)消息(xi)隊列,就(jiu)好象是訪(fang)問自(zi)己的(de)資源一樣。分(fen)(fen)布式(shi)(shi)消息(xi)隊列技(ji)術(shu)可以(yi)簡化(hua)應用程序(xu)的(de)設計,加快系統(tong)(tong)開發。
 
5、多處理器之間(jian)的資源(yuan)分配
 
在具有多處理(li)器的(de)(de)(de)(de)單板計算機系統(tong)中,最(zui)重要的(de)(de)(de)(de)一點是要考慮任務的(de)(de)(de)(de)并行執行效(xiao)率,多個處理(li)器均(jun)需要訪問外圍設備和進行數據通信(xin),這樣就存在外部設備的(de)(de)(de)(de)分(fen)配問題。
 
對設(she)備(bei)(bei)資(zi)源(yuan)的(de)分(fen)配,有(you)兩種(zhong):一是(shi)定制(即靜(jing)態分(fen)配),即單(dan)板計(ji)(ji)算機在設(she)計(ji)(ji)時就將資(zi)源(yuan)分(fen)配好(hao),缺點(dian)是(shi)適應(ying)(ying)性(xing)不強,資(zi)源(yuan)不能根據(ju)用(yong)戶(hu)的(de)需(xu)求(qiu)而改動;二(er)是(shi)動態分(fen)配,在板上加載FPGA 邏輯,預留軟(ruan)件接口,用(yong)戶(hu)可根據(ju)任務的(de)要(yao)(yao)(yao)求(qiu)動態指定。整個資(zi)源(yuan)控制是(shi)透(tou)明的(de),不需(xu)要(yao)(yao)(yao)知道是(shi)哪個CPU控制。在硬件設(she)計(ji)(ji)時,要(yao)(yao)(yao)考慮對CPU及外部(bu)設(she)備(bei)(bei)訪問(wen)的(de)仲裁(cai)、優先級設(she)置等,防(fang)止(zhi)由(you)于訪問(wen)臨界資(zi)源(yuan)而造成的(de)沖(chong)突。軟(ruan)件則應(ying)(ying)該指定是(shi)那一個CPU使用(yong)特定設(she)備(bei)(bei),其(qi)余CPU 訪問(wen)時要(yao)(yao)(yao)互斥進行。
 
四、多處理器并(bing)行計算機的性能
 
在該系(xi)(xi)統(tong)(tong)中采(cai)用CPU 類(lei)型為(wei)Intel Pentium3處(chu)(chu)(chu)理(li)器(qi),主頻是700MHz。測試(shi)方法(fa)(fa)(fa),用相(xiang)同功(gong)能(neng)的(de)(de)數(shu)據處(chu)(chu)(chu)理(li)算(suan)法(fa)(fa)(fa),將之分(fen)(fen)(fen)解為(wei)模塊(kuai),分(fen)(fen)(fen)別運行在系(xi)(xi)統(tong)(tong)的(de)(de)各個(ge)處(chu)(chu)(chu)理(li)器(qi)中。測試(shi)結果(guo)(guo)分(fen)(fen)(fen)析,和單CPU相(xiang)比,采(cai)用兩塊(kuai)CPU處(chu)(chu)(chu)理(li),運算(suan)性(xing)能(neng)可提高60%~70%;采(cai)用三塊(kuai)CPU,運算(suan)性(xing)能(neng)至少達(da)到2倍。我們知道,影(ying)響這個(ge)測試(shi)結果(guo)(guo)的(de)(de)最大(da)因素是測試(shi)方法(fa)(fa)(fa),將相(xiang)同功(gong)能(neng)的(de)(de)算(suan)法(fa)(fa)(fa)分(fen)(fen)(fen)解到多個(ge)處(chu)(chu)(chu)理(li)器(qi),分(fen)(fen)(fen)解的(de)(de)方法(fa)(fa)(fa)直接決定(ding)綜合處(chu)(chu)(chu)理(li)效率(lv)。但(dan)可以肯定(ding),多個(ge)處(chu)(chu)(chu)理(li)器(qi)并(bing)行處(chu)(chu)(chu)理(li)設計,可大(da)大(da)提高系(xi)(xi)統(tong)(tong)的(de)(de)運算(suan)效率(lv)。