版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-多中央處理機(jī)

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

基本概念

多中央處理機(jī)即多CPU系統(tǒng),我們所說的多CPU系統(tǒng)通常包括四種不同的形式即多處理器系統(tǒng)(Multiprocessor Systems)、多計(jì)算機(jī)系統(tǒng)(Multicomputer Systems)、 網(wǎng)絡(luò)系統(tǒng)(Network Systems)和分布式系統(tǒng)(Distributed Systems)。

嵌入式系統(tǒng)硬件標(biāo)準(zhǔn)化、模塊化的設(shè)計(jì),一直以來倍受設(shè)計(jì)人員重視。微型計(jì)算機(jī)技術(shù)的快速發(fā)展,各種各樣的單片機(jī)系統(tǒng)被開發(fā)出來,由于功能強(qiáng)大、價(jià)格低廉、靈活性強(qiáng),所以被廣泛地用來代替純硬件電路組成的子模塊,通過軟件控制,使得每個(gè)子模塊具有分析判斷、控制能力,較純硬件電路組成的子模塊相比,有很大的優(yōu)越性。另一方面,由于單片機(jī)處理速度慢、任務(wù)多,一個(gè)系統(tǒng)僅靠一個(gè)CPU有時(shí)難以達(dá)到技術(shù)要求。所以,目前比較復(fù)雜的嵌入式系統(tǒng)一般都由若干個(gè)含有CPU的子模塊組成,即多CPU嵌入式系統(tǒng)。在多CPU嵌入式系統(tǒng)中,各個(gè)CPU之間的任務(wù)協(xié)調(diào),數(shù)據(jù)傳遞是系統(tǒng)設(shè)計(jì)的關(guān)鍵,也是難點(diǎn)。

多CPU系統(tǒng)中的數(shù)據(jù)共享數(shù)據(jù)共享是指多個(gè)CPU之間通過一個(gè)或幾個(gè)存貯器來傳遞相互間的信息。通常一個(gè)CPU將要傳遞的數(shù)據(jù),寫入到存貯器的固定區(qū)域,然后通知另一個(gè)CPU去取出數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行處理。將處理的結(jié)果再寫入到存貯器某一區(qū)域,通知有關(guān)CPU取走并進(jìn)行處理。

數(shù)據(jù)共享是多CPU系統(tǒng)傳遞信息、協(xié)調(diào)任務(wù)的一種重要手段。通常共享的存貯器可以是雙端口RAM,也可以是串口 。在實(shí)際中要根據(jù)系統(tǒng)的實(shí)時(shí)性要求進(jìn)行選擇。一般,對(duì)于實(shí)時(shí)性要求高、需要傳輸大量數(shù)據(jù)的系統(tǒng)宜選用雙端口RAM作為共享存貯器,如音頻、視頻信號(hào)的分析處理,否則宜選用價(jià)格相對(duì)便宜的串口 作為共享存貯器(如24C02,93C46等),以優(yōu)化設(shè)計(jì)降低成本。

多CPU之間的通信利用雙端口RAM實(shí)現(xiàn)CPU之間通信雙端口RAM是一種高速的存儲(chǔ)器芯片,有兩套地址總線、數(shù)據(jù)總線和控制總線,并有一套競(jìng)爭(zhēng)裁決電路。因此,2個(gè)CPU在仲裁電路控制下,可以通過各自的地址總線、數(shù)據(jù)總線對(duì)其進(jìn)行讀寫操作,方便地進(jìn)行CPU之間的數(shù)據(jù)交換。常用的CMOS雙口RAM有IDT7132, ID7102等。利用雙端口RAM組成的多CPU系統(tǒng)原理如圖所示:

該系統(tǒng)特點(diǎn)是數(shù)據(jù)交換量大、速度快,適用于快速數(shù)據(jù)傳輸,但是系統(tǒng)的成本較高。能否用單端口RAM實(shí)現(xiàn)雙端口的功能呢,答案是肯定的。

利用單端口RAM實(shí)現(xiàn)CPU之間的通信顧名思義,單端口RAM只有一套地址總線、數(shù)據(jù)總線、控制總線。要實(shí)現(xiàn)雙端口RAM的功能,就必須由硬件電路將一套總線變成兩套總線,分屬2個(gè)CPU控制。另外還必須設(shè)計(jì)一套競(jìng)爭(zhēng)仲裁電路,防止2個(gè)CPU同時(shí)對(duì)RAM的操作沖突。好在這種接口電路的設(shè)計(jì)并不是太困難,74HC244, 74HC245再加一些門電路就能解決問題。

利用串口EPROM實(shí)現(xiàn)CPU之間的通信串口由于其引線少,價(jià)格低廉,在嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。下面以共享25C02為例,介紹多CPU之間的數(shù)據(jù)傳輸。原理如圖所示:

圖中CPU1與CPU2通過共享25C02,CPU2與CPU3通過共享25C02完成他們之間的通信。

利用串行總線實(shí)現(xiàn)多CPU之間的通信隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)的串口通信越來越多樣化。同步串口通信、異步串口通信、 總線、SPI總線、USB等,由于其實(shí)用性好,越來越為設(shè)計(jì)者所關(guān)注。特別是在多CPU嵌入式系統(tǒng)中,各個(gè)CPU通過串行總線相連可以方便地進(jìn)行多CPU之間的通信。

(1)用總線實(shí)現(xiàn)多CPU之間的通信

(Inter Intergrated Circuit)總線是由Philips公司提出并注冊(cè)的一種總線接口標(biāo)準(zhǔn),是一種主從結(jié)構(gòu)的二線同步總線,其中一根是同步移位時(shí)鐘SCL,另一根為數(shù)據(jù)線SDA。各CPU通過2條線相連,其原理如圖所示:

系統(tǒng)中的CPU可以選用帶有 總線接口的,如Philips公司的80C652, P87LC764等,其通信軟件包可以在網(wǎng)上下載,對(duì)于不帶 總線接口的CPU,可以通過I/O模擬Iz C總線,相應(yīng)軟件可從網(wǎng)上下載,也可自己編寫。

有4種工作模式、主發(fā)送模式、主接收模式、從發(fā)送模式、從接收模式。根據(jù)各子系統(tǒng)需要,合理選用其工作模式即構(gòu)成 總線多CPU通信系統(tǒng)。Iz C總線的數(shù)據(jù)傳送格式如圖所示:

S為Start信號(hào),SLA為從機(jī)地址,也可以是通信地址;R/W為讀寫控制位;A為ACK應(yīng)答位;DATA0~DATA7為數(shù)據(jù)字節(jié);S/P為下一個(gè)start或stop信號(hào)。

(2)利用SPl總線實(shí)現(xiàn)多CP U之間通信

SPI( Serial Peripheral Interface)總線是由Motorola公司提出并擁有商標(biāo)的一種總線接口標(biāo)準(zhǔn),是一種4線同步串行總線。4根線分別是:片選CS;串行移位SCK;串行移位數(shù)據(jù)輸入SI;串行移位輸出SO。在同一時(shí)刻串行數(shù)據(jù)移位輸入、輸出不能同時(shí)進(jìn)行,因此,可以將二者連在一起,共用一根口線(即三線同步串行并線)。

如圖是典型的基于 SPI總線組成的多CPU系統(tǒng):

系統(tǒng)中的CPU可以采用帶有SPI總線接口的單片機(jī)。對(duì)于沒有SPI總線接口的單片機(jī)系統(tǒng),可使用普通I/O口模擬SPI總線,其通信程序自編。利用SPI總線組成的一個(gè)三級(jí)多CPU系統(tǒng)運(yùn)行結(jié)果良好。利用串行總線實(shí)現(xiàn)多CPU通信,其優(yōu)點(diǎn)是:連線簡(jiǎn)單、方便、可靠,產(chǎn)品性價(jià)比好;缺點(diǎn)是數(shù)據(jù)傳輸速度慢,實(shí)時(shí)性差,不宜用于數(shù)據(jù)量大、通信頻繁的多CPU系統(tǒng)1。