如何應(yīng)對對稱型多核技術(shù)領(lǐng)域的挑戰(zhàn)

2013-09-29 17:45 來源:電子信息網(wǎng) 作者:和靜

多處理器電腦已存在一段時(shí)間了,但工程師們只是在最近幾年才有機(jī)會(huì)買到具有多個(gè)處理器或“核心”的芯片現(xiàn)貨。這些器件分為兩類:對稱型和非對稱型。第一類器件提供同一CPU內(nèi)核的多個(gè)“克隆”,因此稱作對稱型。第二類是將不同類型的CPU、DSP、加速器都放在一個(gè)單片系統(tǒng)中。本文將專門介紹第一類多核技術(shù)。

據(jù)Extreme Engineering Solutions公司首席執(zhí)行官Rob Scidmore表示,單核處理器與多核處理器使用的硬件僅存在很少幾項(xiàng)區(qū)別?!疤魬?zhàn)會(huì)出現(xiàn)在,當(dāng)你必須把軟件從單核遷移到雙核時(shí)。當(dāng)兩個(gè)處理器內(nèi)核必須通信時(shí),性能可能會(huì)降低很多。系統(tǒng)的等待時(shí)間變得更長,但吞吐率依然很高。當(dāng)工程師們?yōu)槊總€(gè)內(nèi)核把應(yīng)用代碼分解成片段時(shí),就必須應(yīng)對上述局面。他們必須平衡等待時(shí)間和吞吐率。”

但是,工程師們經(jīng)常會(huì)把代碼分解成片段。Scidmore解釋說:“他們也許通過以太網(wǎng)端口接收圖像,用算法處理圖像,然后顯示它們。你可以在一個(gè)處理器上運(yùn)行TCP/IP堆棧,在第二個(gè)處理器上運(yùn)行算法,并把第三個(gè)處理器專門用于顯示。但是如果你有數(shù)千個(gè)匯編語言文件,那么你別無選擇,只能回到框圖并從頭開始,并花時(shí)間把某個(gè)應(yīng)用劃分成幾個(gè)線程。”

一些為對稱多處理(SMP)提供支持的操作系統(tǒng)(OS)可以提供某種方式來集成舊代碼和新代碼。例如,QNX公司的Neutrino OS提供混合多處理(bound multiprocessing),它使開發(fā)人員能使多個(gè)進(jìn)程始終位于某個(gè)核心,或稱“鎖定”。QNX公司產(chǎn)品經(jīng)理Kerry Johnson說:“假設(shè)你有一些舊軟件,它們在多核芯片或多處理環(huán)境中也許不能恰當(dāng)運(yùn)行。代碼可能會(huì)假定它擁有對I/O設(shè)備等的獨(dú)占控制權(quán),這可能會(huì)在多核系統(tǒng)中造成一些問題。這種情況下,你可以把軟件‘鎖’在某個(gè)內(nèi)核里,不必修改代碼。然后你可以添加新應(yīng)用軟件,它將利用剩余內(nèi)核。舊軟件和新軟件并存于某個(gè)多核芯片上的相同OS中。”

Johnson說:“要讓開發(fā)人員理解多核芯片不需要每一個(gè)內(nèi)核都擁有自己的OS,這是一個(gè)挑戰(zhàn)。具備SMP能力的單一OS可立即監(jiān)督多個(gè)內(nèi)核的運(yùn)行情況。隨著更多OS廠商開始支持SMP,開發(fā)人員將會(huì)更好地理解,他們可以使用一種編程風(fēng)格,并讓他們的代碼工作在單核、雙核、四核處理器。一套軟件工具可工作在所有這些環(huán)境中?!?

當(dāng)然,這些工具必須包含源代碼級調(diào)試器。 Johnson解釋說:“設(shè)計(jì)人員需要一個(gè)調(diào)試器處理所有這些內(nèi)核,希望在一個(gè)窗口里看到一切,而不是每個(gè)內(nèi)核都有一個(gè)調(diào)試窗口。在特定時(shí)間,無論哪個(gè)處理器運(yùn)行代碼,調(diào)試器都必須在斷點(diǎn)停止,追蹤程序執(zhí)行情況,并在所有內(nèi)核收集數(shù)據(jù),就像它對單核芯片做的那樣?!?

1 2 3 > 
多核技術(shù)

相關(guān)閱讀

暫無數(shù)據(jù)

一周熱門