對(duì)存儲(chǔ)帶寬的要求使手機(jī)設(shè)計(jì)面臨兩難抉擇
以這種方式對(duì)存儲(chǔ)器系統(tǒng)進(jìn)行重新分配,為主機(jī)和存儲(chǔ)器系統(tǒng)之間提供了一條統(tǒng)一總線(xiàn),同時(shí)考慮到了密度、存儲(chǔ)器類(lèi)型以及速度級(jí)等性能指標(biāo)。此外,該方法還最小化了外部總線(xiàn)的負(fù)荷,因而允許更高的總線(xiàn)頻率,這是減少引腳數(shù)量的預(yù)備條件。而且,重新分區(qū)也同時(shí)把存儲(chǔ)器件之間大量引腳的接口限制為典型多芯片封裝(MCP)內(nèi)部的一種解決方案,這降低了手機(jī)成本,并允許在MCP中容納更多的存儲(chǔ)模塊(Memory Bank)。
主機(jī)與存儲(chǔ)器系統(tǒng)之間采用統(tǒng)一總線(xiàn),可盡量減輕外部總線(xiàn)的負(fù)荷。主機(jī)接口與客戶(hù)機(jī)接口之間的總線(xiàn)以DDR存儲(chǔ)器總線(xiàn)來(lái)實(shí)現(xiàn),因此作為實(shí)例存儲(chǔ)器系統(tǒng)的總體外部引腳數(shù)量在35至43之間(控制總線(xiàn):15個(gè)引腳,地址總線(xiàn):12個(gè)引腳,數(shù)據(jù)總線(xiàn):8到16個(gè)引腳) 。
根據(jù)時(shí)鐘頻率的不同,以上所給出的系統(tǒng)劃分可使外部存儲(chǔ)器帶寬僅以43個(gè)引腳就達(dá)到10Gbps,因而可將外部引腳數(shù)目減少約60%,同時(shí)大大增強(qiáng)性能。此外,由于引腳數(shù)量的減少,單個(gè)CPU的成本也隨之降低。最為重要的是,這種方法將存儲(chǔ)器與總線(xiàn)各自獨(dú)立開(kāi)來(lái),從而能夠建立起分層的存儲(chǔ)器-系統(tǒng)架構(gòu),甚至允許以一種對(duì)存儲(chǔ)器透明的模式把總線(xiàn)移植到超高速的差分結(jié)構(gòu)中?;谶@種方式,存儲(chǔ)器件可以開(kāi)發(fā)成直接與總線(xiàn)相連,或是可開(kāi)發(fā)成經(jīng)重配置總線(xiàn)接口之后再與總線(xiàn)連接的結(jié)構(gòu)。
客戶(hù)機(jī)接口與主機(jī)接口之間的總線(xiàn)可以被所有存儲(chǔ)器件共享,雖然目前的系統(tǒng)中通常只有靜態(tài)存儲(chǔ)器(NOR、SRAM和NAND)共享一條總線(xiàn)。因此必須謹(jǐn)慎設(shè)計(jì)系統(tǒng)以避免延遲問(wèn)題,尤其是對(duì)DRAM存儲(chǔ)器而言,這個(gè)問(wèn)題對(duì)系統(tǒng)的整體性能影響最大。
延遲問(wèn)題
只有當(dāng)處理單倍數(shù)據(jù)率(SDR)器件時(shí),延遲問(wèn)題才能得到解決。在這種情況下,靜態(tài)存儲(chǔ)器可以和動(dòng)態(tài)SDR多路復(fù)用,即在每半個(gè)時(shí)鐘周期中利用工作在雙倍數(shù)據(jù)率(DDR)模式下的總線(xiàn)使一種存儲(chǔ)器工作。通過(guò)訪(fǎng)問(wèn)傳統(tǒng)存儲(chǔ)子系統(tǒng)和重新分區(qū)的子系統(tǒng)的存儲(chǔ)器,再對(duì)二者在時(shí)序上的區(qū)別進(jìn)行比較可以看到,后者能夠避免延遲帶來(lái)的影響。
大部分邏輯操作都發(fā)生時(shí)鐘沿(通常是上升沿)。主機(jī)控制器在上升沿創(chuàng)建信號(hào),該信號(hào)在下一個(gè)上升沿時(shí)在迭置焊接層(registered pad layer)被捕獲。如果這種重新分區(qū)的存儲(chǔ)器系統(tǒng)如同慣有的那樣在上升沿的同時(shí)輸出信號(hào),就不存在延遲問(wèn)題。
在重新分區(qū)的結(jié)構(gòu)中,控制器在上升沿建立信號(hào),焊接層(Pad Layer)在下一個(gè)下降沿捕獲信號(hào)??蛻?hù)機(jī)控制器在下一個(gè)上升沿將信號(hào)輸出,因此存儲(chǔ)器件在存儲(chǔ)接口上得到相同的時(shí)序。
建立的系統(tǒng)時(shí)序在一個(gè)時(shí)鐘周期內(nèi)很可能無(wú)法避免延遲,但在大多數(shù)情況下,延遲損失是可以預(yù)防的。為彌補(bǔ)這種不能避免的相對(duì)較小的延遲,可以增加預(yù)取(prefetch)功能。在存取數(shù)據(jù)n的期間,可以自動(dòng)讀取數(shù)據(jù)n+1,這樣,延遲問(wèn)題實(shí)際上就得到了改善。
在存儲(chǔ)子系統(tǒng)內(nèi)部采用預(yù)取技術(shù)(prefetching)的結(jié)果是帶寬隨延遲的改善平均增加15%。這對(duì)于可能需要大量預(yù)取的隨機(jī)數(shù)據(jù)和DSP操作是正確的。預(yù)取并不會(huì)引起性能的降低,但如果預(yù)取的數(shù)據(jù)并非在放回預(yù)取緩存器中之前CPU所需的,則會(huì)導(dǎo)致功率的浪費(fèi)。實(shí)現(xiàn)預(yù)取方案的邏輯相當(dāng)直接簡(jiǎn)單。預(yù)取緩存器可以在客戶(hù)機(jī)總線(xiàn)接口中實(shí)現(xiàn)以避免使用用戶(hù)存儲(chǔ)器。
對(duì)帶寬的影響
對(duì)于存儲(chǔ)器系統(tǒng)而言,恒定帶寬(sustained bandwidth)是一個(gè)關(guān)鍵參數(shù)。如上所述,引入重新分區(qū)存儲(chǔ)控制器的客戶(hù)機(jī)接口會(huì)增加存儲(chǔ)器訪(fǎng)問(wèn)的延遲,而延遲對(duì)對(duì)恒定帶寬有很大影響。
由于恒定帶寬是評(píng)價(jià)存儲(chǔ)器系統(tǒng)性能的一個(gè)關(guān)鍵指標(biāo),就必須考慮慢速和快速存儲(chǔ)器如何在同一條總線(xiàn)上操作的問(wèn)題。恒定帶寬是最小的總線(xiàn)和器件帶寬。較慢的閃存(Flash)存儲(chǔ)器工作頻率最高為100MHz,需要大得多的容量。相對(duì)于DRAM,對(duì)閃存的訪(fǎng)問(wèn)很少,因此,如果能夠通過(guò)在DRAM中臨時(shí)緩存高峰數(shù)據(jù)流并使進(jìn)出Flash的流量更加恒定,則較慢的恒定帶寬是可以接受的。若寬度W的Nburst是可變的,則恒定帶寬可表示為:
BWsust=W×Nburst/(tini+Nburst–1)×twords/s
峰值帶寬可表示為:
BWpeak=W/twords/s
許多手機(jī)應(yīng)用如錄音和照相,都證明“突發(fā)”活動(dòng)并不總是需要匹配目標(biāo)存儲(chǔ)器帶寬與峰值應(yīng)用帶寬。在那種情況下,對(duì)臨時(shí)緩沖器的管理非常關(guān)鍵,因?yàn)樗加昧烁L(zhǎng)的時(shí)間在后臺(tái)復(fù)制數(shù)據(jù),同時(shí)也為CPU提供了臨時(shí)的數(shù)據(jù)存儲(chǔ)空間。重新分區(qū)的存儲(chǔ)器系統(tǒng)允許采用雙端口(端口A(yíng)和端口B)的RAM進(jìn)行后臺(tái)復(fù)制,其中端口A(yíng)覆蓋的存儲(chǔ)范圍為Ma,端口B覆蓋了剩余的存儲(chǔ)范圍Mb。M、Ma以及Mb之間的關(guān)系為:通過(guò)寄存器寫(xiě)入可以完成存儲(chǔ)器范圍Ma和Mb的重新配置,因而Ma變成Ma prime,而Mb變?yōu)镸b prime:
Mailbox表示存儲(chǔ)器的空間,一次指派給端口A(yíng),一次指派給端口B。從A到B重新指派Mailbox可以拷貝大量的數(shù)據(jù),而實(shí)際上并不移動(dòng)數(shù)據(jù),類(lèi)似于“C語(yǔ)言”中傳遞指向數(shù)據(jù)結(jié)構(gòu)的指針而非傳遞數(shù)據(jù)結(jié)構(gòu)本身。這樣一來(lái),每個(gè)端口都有一個(gè)已知的私有存儲(chǔ)范圍Ma(prime)/Mailbox或Mb(prime)/Mailbox以及一個(gè)共享的Mailbox。當(dāng)通過(guò)在Mailbox中存放數(shù)據(jù)執(zhí)行后臺(tái)復(fù)制,然后重新將Mailbox指派給執(zhí)行后臺(tái)復(fù)制的該端口時(shí),這就可以以簡(jiǎn)單的方法保持?jǐn)?shù)據(jù)的一致性。
信令問(wèn)題
在最簡(jiǎn)單的情形下,連接到主機(jī)的靜態(tài)和動(dòng)態(tài)存儲(chǔ)器均為SDR器件,并共享一條存儲(chǔ)總線(xiàn)。這時(shí)可以采用一個(gè)簡(jiǎn)單的方法來(lái)實(shí)現(xiàn)DDR模式下共享總線(xiàn)的操作。時(shí)鐘上升沿可用于所有DRAM操作,下降沿則可用于所有SRAM操作。在本質(zhì)上,主機(jī)控制器在一個(gè)DDR流中多路復(fù)用了兩個(gè)SDR數(shù)據(jù)流,故而可以為SRAM和DRAM提供兩個(gè)獨(dú)立的通道。
如果主機(jī)的SRAM和DRAM控制器在上升沿進(jìn)行操作,則這種方案中對(duì)于一個(gè)通道的延遲為零,而對(duì)于另外一個(gè)通道的延遲為半個(gè)時(shí)鐘周期。通過(guò)重新分區(qū)時(shí)序,這種延遲就可以消除。
另一方面,采用DDR存儲(chǔ)器時(shí),上述簡(jiǎn)單的映射方案不適用。不過(guò)有一種簡(jiǎn)單的擴(kuò)展方法也可用于支持DDR器件。
SDR方法定義了一種共享總線(xiàn)上的時(shí)隙方案(timeslot),這種時(shí)隙就是半個(gè)時(shí)鐘周期中兩個(gè)捕獲的時(shí)鐘邊沿間的時(shí)間。時(shí)隙在SRAM和DRAM間是均勻分配的。為滿(mǎn)足DDR器件的帶寬需求,總線(xiàn)必須采用fbus時(shí)鐘,BWstatic是SRAM所需的帶寬,BWdyn是DRAM所需的帶寬,width則表示連接存儲(chǔ)器與主機(jī)系統(tǒng)的總線(xiàn)數(shù)據(jù)引腳的數(shù)量:
Fbus=1/2×((BWstatic+BWdyn)/Width)
對(duì)于任意時(shí)間周期,DDR方案都比SDR能提供更多的時(shí)鐘沿和更多的時(shí)隙,因此,帶寬和延遲需求都可以在比SDR方法更精細(xì)的區(qū)間內(nèi)進(jìn)行調(diào)節(jié)。
建立存儲(chǔ)器系統(tǒng)總線(xiàn)只能輔助性地提高DRAM通道的延遲性能(每個(gè)方向不超過(guò)一個(gè)時(shí)鐘)。
考慮到手機(jī)的每32字節(jié)緩存列(Cache line)需要16個(gè)節(jié)拍,而PC機(jī)每32字節(jié)緩存列僅需要4個(gè)節(jié)拍,一個(gè)周期附加的延遲造成每節(jié)拍1/8周期的負(fù)荷,性能降低不超過(guò)12.5%,這很容易通過(guò)超頻總線(xiàn)進(jìn)行補(bǔ)償。如果在存儲(chǔ)器通道中允許采用集成的非授權(quán)mux結(jié)構(gòu),就不會(huì)有附加延遲出現(xiàn)。
這種存儲(chǔ)器系統(tǒng)應(yīng)該是很容易被接受的,因?yàn)樗试S采用現(xiàn)有的存儲(chǔ)器系統(tǒng)。同時(shí)實(shí)現(xiàn)主機(jī)接口和規(guī)范的DRAM/SRAM控制器是可能的。主機(jī)CPU的DRAM控制器能夠與新的存儲(chǔ)器主機(jī)接口共享DRAM焊盤(pán)(通過(guò)配置寄存器或鍵合方式)。如果SRAM控制器的焊盤(pán)以鍵合方式實(shí)現(xiàn),則同樣的CPU裸片就能配置為支持傳統(tǒng)或新型存儲(chǔ)器系統(tǒng)的器件。
總之,不同的存儲(chǔ)器系統(tǒng)均可用于相同的主機(jī)平臺(tái),并可以根據(jù)性能和成本擴(kuò)展多種系統(tǒng)。
重新分區(qū)的方法最大限度減輕了外部總線(xiàn)的負(fù)荷,并為主機(jī)和存儲(chǔ)器系統(tǒng)之間提供了一條統(tǒng)一總線(xiàn),從而將外部存儲(chǔ)器帶寬提高到10Gbps,并減少了60%的引腳數(shù)量,進(jìn)而降低了每個(gè)CPU的成本。此外,這種方式還為存儲(chǔ)器系統(tǒng)提供了一個(gè)獨(dú)立的物理層,可以把現(xiàn)有存儲(chǔ)器總線(xiàn)透明地移植到未來(lái)的架構(gòu)中。
評(píng)論