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