一種多處理器并行計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)
BP 代表Boot Processor(主處理器),AP 代表Application Processor(從處理器)。主處理器設(shè)置有主機(jī)路由200.200.200.0,從處理器可以通過主處理器與外網(wǎng)通信。主處理器必須有兩個(gè)網(wǎng)絡(luò)接口,一個(gè)用于和外網(wǎng)通信(如和VxWorks 開發(fā)主機(jī)Vx-Host 通信),IP 地址設(shè)置為如圖2 中的90.0.0.10;另外一個(gè)是虛擬的共享存儲器網(wǎng)絡(luò),用于和從處理器通信。從處理器配置的網(wǎng)絡(luò)IP 地址分別是200.200.200.1、200.200.200.2 和200.200.200.3。當(dāng)調(diào)試程序時(shí),首先由主處理器初始化共享內(nèi)存網(wǎng)絡(luò)(包括設(shè)置存儲器地址),從開發(fā)主機(jī)上下載自己的VxWorks image;然后,調(diào)度從處理器(AP)通過IP 地址90.0.0.10 從開發(fā)主機(jī)VxHost上下載從處理器所需要的VxWorks image,并且運(yùn)行該操作系統(tǒng),從機(jī)的一切調(diào)試均通過主處理器進(jìn)行。
圖2 是多CPU 并行計(jì)算機(jī)網(wǎng)絡(luò)配置
共享存儲器網(wǎng)絡(luò)是VxWorks 的一個(gè)模塊,使用時(shí)必須在tornado的有關(guān)選項(xiàng)中選擇。對于每一個(gè)處理器都有一個(gè)自己的boorom 或VxWoks image,分別獨(dú)自運(yùn)行自己的操作系統(tǒng),彼此之間需要通信時(shí)通過共享存儲器進(jìn)行。
3.2 共享存儲器網(wǎng)絡(luò)主設(shè)備
多處理器系統(tǒng)中有一個(gè)處理器充當(dāng)主設(shè)備的角色。共享存儲器網(wǎng)絡(luò)主設(shè)備(Shared-MemoryNetwork Master)在系統(tǒng)中所起到的功能解釋如下:
⑴ 初始化共享存儲器區(qū)域和共享內(nèi)存鉤子(anchor);
⑵ 維護(hù)共享存儲器網(wǎng)絡(luò)心跳;
⑶ 作為其它處理器和外網(wǎng)通信的網(wǎng)關(guān);
⑷ 分配共享存儲區(qū)域。
在VxWorks 操作系統(tǒng)中要求共享存儲區(qū)域是一塊連續(xù)的存儲地址空間,默認(rèn)為16MB,在網(wǎng)絡(luò)驅(qū)動(dòng)中所定義。主設(shè)備負(fù)責(zé)為其它處理器分配共享存儲區(qū)域,并且進(jìn)行內(nèi)存映射。共享存儲區(qū)的定位依靠系統(tǒng)配置。所有的處理器利用鉤子功能都必須能夠訪問該區(qū)域。共享存儲鉤子是所有處理器的通信參考點(diǎn)。鉤子結(jié)構(gòu)和共享內(nèi)存區(qū)域可以被放置在雙端口RAM中。鉤子包含真正存儲區(qū)域的物理地址偏移量,這在主設(shè)備在初始化過程中所設(shè)置,鉤子和存儲區(qū)域必須在相同的地址空間,地址必須是線性和有效的。
當(dāng)共享存儲器網(wǎng)絡(luò)主設(shè)備初始化后,所有的處理器才可以使用共享存儲器網(wǎng)絡(luò)。但是,主處理器并不能真正干涉其它處理器之間通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)包的交互,各個(gè)處理器之間通信是通過本地的中斷或查詢方式進(jìn)行的。當(dāng)共享存儲器被初始化后,所有的處理器,包括主處理器,都同等的使用網(wǎng)絡(luò)。在Tornado2.0 環(huán)境下,主處理器號規(guī)定為0,系統(tǒng)通過處理號來識別主處理器和從處理器。典型的情況下,主處理器有兩個(gè)Internet 地址,分別用于外網(wǎng)通信和內(nèi)部網(wǎng)關(guān)。
評論