本申請要求于2014年1月24日提交的題為“SERIAL DATA TRANSMISSION FOR A DYNAMIC RANDOM ACCESS MEMORY(DRAM)(動態隨機存取存儲器(DRAM)接口的串行數據傳輸)”的美國臨時專利申請S/N.61/930,985的優先權,該申請通過援引全部納入于此。
本申請還要求于2015年1月19日提交的題為“SERIAL DATA TRANSMISSION FOR A DYNAMIC RANDOM ACCESS MEMORY(DRAM)(動態隨機存取存儲器(DRAM)接口的串行數據傳輸)”的美國專利申請S/N.14/599,768的優先權,該申請通過援引全部納入于此。
背景
I.公開領域
本公開的技術一般涉及存儲器結構和源自該存儲器結構的數據轉移。
II.背景
計算設備依靠存儲器。例如,存儲器可以是硬盤驅動器或可移除存儲器驅動器,并且可以存儲在計算設備上實現功能的軟件。進一步,存儲器允許軟件讀取和寫入用于執行軟件功能性的數據。雖然有多種類型的存儲器,隨機存取存儲器(RAM)是計算設備最頻繁使用的存儲器類型。動態RAM(DRAM)是廣泛使用的一種類型的RAM。計算速度至少部分是數據能夠多快速地從DRAM單元讀取和數據能夠多快速地寫入到DRAM單元中的函數。已經制定了各種拓撲以供將DRAM單元通過總線耦合到應用處理器。DRAM的流行的格式是雙倍數據率(DDR)DRAM。在DDR標準版本2(即,DDR2)中,使用了T分支拓撲。在DDR標準版本3(即,DDR3)中,使用了飛行拓撲。
在現有DRAM接口中,數據以并行的方式跨總線寬度傳送。即,例如, 八比特碼字的八個比特都在同一時刻跨總線的八個通道發送。這些比特在存儲器中捕捉,聚合成塊,并且上載到存儲器陣列中。當使用此類并行傳輸時,特別是在飛行拓撲中,碼字必須被同步捕捉,從而存儲器可以將這些比特標識為屬于同一碼字并且將這些比特上載到正確的存儲器地址。
比特之間和總線通道之間的偏斜是不可避免的,并且在高速時變得真正地有問題。這一定時中的偏斜能夠通過調節(通過訓練)比特和選通的延遲來“矯平”。該“矯平”辦法經常被稱為“寫矯平”。寫矯平是在高速時難以解決的問題,并且要求可調節時鐘,這進而導致復雜的頻率切換問題。由此,需要將數據轉移到DRAM陣列的改進的方法。
公開概述
具體描述中公開的諸方面包括動態隨機存取存儲器(DRAM)接口的串行數據傳輸。代替引起偏斜問題的并行數據傳輸,本公開的示例性方面在總線的單個通道上串行傳送碼字的比特。因為總線是高速總線,即使比特逐一(即,串行地)傳入,碼字的第一比特的抵達和最后一個比特的抵達之間的時間仍然是相對較短的。類似地,因為比特串行抵達,所以比特之間的偏斜變得不相關。比特在給定時間量內聚合并且加載到存儲器陣列中。
通過串行發送比特,消除了執行寫矯平的需要,這降低了訓練時間和存儲器設備內的面積開銷。類似地,可以通過關閉不需要的通道來實現功率節省技術。一旦使用選擇性通道激活,就可以改變傳輸速率而不必改變時鐘頻率。該帶寬調節可以比頻率縮放更快速地完成,因為不需要等待鎖相環(PLL)的鎖定或信道的訓練。
就這一點而言,在示例性方面,公開了一種方法。該方法包括在應用處理器(AP)處串行化數據的字節。該方法還包括跨總線的單個通道向DRAM元件傳送數據的經串行化字節。該方法還包括在DRAM元件處從該總線的單個通道接收數據的經串行化字節。
就這一點而言,在另一示例性方面,公開了一種存儲器系統。該存儲器系統包括通信總線,該通信總線包括多個數據通道和命令通道。該存儲器系統還包括AP。該AP包括串化器。該AP還包括操作地耦合到通信總線的總線接口。 該AP還包括控制系統。該控制系統配置成使得串化器將數據的字節串行化并且通過總線接口將數據的經串行化字節傳遞給通信總線。該存儲器系統還包括DRAM元件。該DRAM元件包括操作地耦合到通信總線的DRAM總線接口。該DRAM元件還包括配置成從DRAM總線接口接收數據且將該接收到的數據解串行化的解串器。DRAM元件還包括配置成存儲由DRAM元件接收到的數據的存儲器陣列。
就這一點而言,在另一示例性方面,公開了一種AP。該AP包括串化器。該AP還包括操作地耦合到通信總線的總線接口。該AP還包括控制系統。該控制系統配置成使得串化器將數據的字節串行化并且通過總線接口將數據的經串行化字節傳遞給通信總線的單個通道。
就這一點而言,在另一示例性方面,公開了一種DRAM元件。該DRAM元件包括操作地耦合到通信總線的DRAM總線接口。該DRAM元件還包括配置成從DRAM總線接口接收數據且將該接收到的數據解串行化的解串器。DRAM元件還包括配置成存儲由DRAM元件接收到的數據的存儲器陣列。
附圖簡述
圖1是示例性常規并行數據轉移的框圖;
圖2是具有串行數據轉移能力的存儲器系統的示例性方面的框圖;
圖3是具有用以接收串行數據的示例性解串器的圖2的動態隨機存取存儲器(DRAM)元件的框圖;
圖4是圖2的存儲器系統的框圖,該圖2的存儲器系統具有通過使用串行數據轉移和選擇性通道激活完成的帶寬和功率縮放。
圖5是解說與圖2的存儲器系統相關聯的示例性過程的流程圖;以及
圖6是可包括圖2的存儲器系統的示例性的基于處理器的系統的框圖。
詳細描述
現在參照附圖,描述了本公開的若干示例性方面。措辭“示例性”在本文中用于表示“用作示例、實例或解說”。本文中描述為“示例性”的任何方面不必被解釋為優于或勝過其他方面。
具體描述中公開的方面包括動態隨機存取存儲器(DRAM)接口的串行數據傳輸。代替引起偏斜問題的并行數據傳輸,本公開的示例性方面在總線的單個通道上串行傳送碼字的比特。因為總線是高速總線,即使比特逐一(即,串行地)傳入,碼字的第一比特的抵達和最后一個比特的抵達之間的時間仍然相對較短。類似地,因為比特串行抵達,所以比特之間的偏斜變得不相關。這些比特在給定時間量內聚合并被加載到存儲器陣列中。
通過串行發送比特,消除了執行寫矯平的需要,這降低了訓練時間和存儲器設備中的面積開銷。類似地,可以通過關閉不需要的通道來實現功率節省技術。一旦使用了選擇性通道激活,就可以改變傳輸速率而不必改變時鐘頻率。該帶寬調節可以比頻率縮放完成得快得多,因為不需要等待鎖相環(PLL)的鎖定或信道的訓練。
在涉及本公開的示例性方面之前,參照圖1提供了常規并行數據轉移方案的概述。串行數據轉移方案的示例性方面的討論在以下參照圖2開始。就這一點而言,圖1是具有片上系統(SoC)12(有時稱之為應用處理器(AP))和DRAM元件16和18的組14的常規存儲器系統10。SoC 12包括可變頻率PLL 20,其提供時鐘(CK)信號22。SoC 12還包括接口24。接口24可包括總線接口26、28、30和32,以及CA-CK接口34。
繼續參照圖1,每個總線接口26、28、30和32可耦合到對應的M通道總線36、38、40和42(其中M是大于一(1)的整數)。M通道總線36和38可以將SoC 12耦合到DRAM元件16,而M通道總線可以將SoC 12耦合到DRAM元件18。在示例性方面,M通道總線36、38、40和42各自是八(8)通道總線。SoC 12可以生成命令和地址(CA)信號,其被傳遞給CA-CK接口34。此類CA信號和時鐘信號22通過飛行拓撲與DRAM元件16和18共享。
繼續參照圖1,SoC 12內生成碼字(例如,32比特碼字),該碼字包括四(4)個字節的數據(每個字節八(8)比特),其在四個總線接口26、28、30和32之間劃分。在常規并行傳輸技術中,所有四個字節必須相對于時鐘信號22同時到達DRAM元件16和18。因為藉由飛行拓撲,時鐘信號22在不同時間抵達DRAM元件16和18,所以來自四個總線接口26、28、30和32的傳輸通過復寫矯平過程來控制。可變PLL 20的頻率是降低或縮放此類并行傳輸 的帶寬和功率的僅有的方法。
為了消除寫矯平施加的缺陷以及消除可變PLL 20的需要,本公開的示例性方面提供了數據總線內單個通道上的碼字的串行傳輸。因為,碼字被串行接收,所以存儲器系統10就不需要精確定時或寫矯平。進一步,通過串行化數據和在數據總線內的單個通道上發送碼字,可以通過選擇哪條通道是可操作的來扼流有效帶寬。
就這一點而言,圖2解說了具有SoC 52(也被稱為AP)和DRAM元件56和58的組54的存儲器系統50。SoC 52包括控制系統(CS)60和PLL 62。PLL 62生成時鐘(CK)信號64。SoC 52還包括接口66。接口66可包括CA-CK接口68。控制系統60可以連同時鐘信號64向CA-CK接口68提供命令和地址(CA)信號70。CA-CK接口68可以耦合到以飛行拓撲安排的通信通道72以供與DRAM元件56和58通信。SoC 52可進一步包括一個或多個串化器74(僅示出了一者)。接口66可包括總線接口76(1)-76(N)以及78(1)-78(P)(其中N和P是大于一(1)的整數)。總線接口76(1)-76(N)耦合到對應的M通道總線80(1)-80(N)(其中M是大于一(1)的整數)。M通道總線80(1)-80(N)中的每一者包括對應的數據通道80(1)(1)-80(1)(M)到82(N)(1)-82(N)(M)。數據通道82(1)(1)-82(1)(M)到82(N)(1)-82(N)(M)將SoC 52連接到DRAM元件56。類似地,總線接口78(1)-78(N)耦合到對應的M'通道總線84(1)-84(P)(其中M'是大于一(1)的整數)。M'通道總線84(1)-84(P)中的每一者包括對應的數據通道86(1)(1)-86(1)(M')到86(P)(1)-86(P)(M’)。在示例性方面,N=P=2且M=M’=8。數據通道86(1)(1)-86(1)(M’)到86(P)(1)-86(P)(M’)將SoC 52連接到DRAM元件58。在示例性方面,存在等于耦合到接口66的通道(不包括通信通道72)的數目的串化器74(例如,N加P)。在另一示例性方面,復用器(未解說)將單個串化器74的輸出路由到耦合到接口66的每個通道(還是不包括通信通道72)。
繼續參見圖2,在存儲器系統50中,發送到DRAM元件56的碼字僅在M通道總線80的單個數據通道82(例如,M通道總線80(1)的數據通道82(1)(1))上發送。由此,例如,若碼字是32比特,其具有四個字節,每個字節的每個比特在M通道總線80的單個數據通道82上發送。不同碼字存儲在DRAM元 件56和58中不同的一者中。雖然僅解說了兩個DRAM元件56和58,應當領會替換方面可以具有更多的具有對應多通道數據總線的DRAM元件。
如以上所描述的,圖1的常規DRAM元件16和18期望接收從SoC 12發送的每個碼字的并行數據比特。相應地,圖2的DRAM元件56和58中作出了改變以捕捉從SoC 52發送的經串行化數據。就這一點而言,圖3解說了DRAM元件56的框圖,可以理解DRAM元件58是類似的。特別地,M通道總線80(X)的數據通道82(X)(Y)被耦合到DRAM元件56的DRAM總線接口88。經串行化數據從DRAM總線接口88被傳遞給解串器90,該解串器90將數據解串行化成并行數據。經解串行化的(并行)數據從解串器90被傳遞給先進先出(FIFO)緩沖器92,其隨后將碼字上載到存儲器陣列94中,這是很好理解的。在示例性方面,FIFO緩沖器92的大小與存儲器存取長度(MAL)相同。應當領會,DRAM總線接口88不僅可以耦合到數據通道82(X)(Y)也可以耦合到M通道總線80(1)-80(N)的所有數據通道82(1)(1)-82(1)(M)到82(N)(1)-82(N)(M)以接收數據,并且可以耦合到通信通道72以接收時鐘信號64(未解說)和/或CA信號70(未解說)。在示例性方面,通信通道72可以由專用命令通道和專用時鐘通道來代替。在任一情形中,應當領會時鐘信號64是高速時鐘信號。
通過基于時鐘信號64將DRAM元件56和58處接收到的數據變成串行數據并且隨后在FIFO緩沖器92中收集數據,存儲器系統50能夠消除對于寫矯平的需要。即,因為數據串行抵達,不再對于不同并行比特有同時抵達的任何要求,所以不需要用以實現此類同時抵達的復雜規程(例如,寫矯平)。進一步,本公開的諸方面還在具有相當功率節省益處同時不必縮放總線頻率的情況下提供可調節帶寬。具體而言,若不需要未使用的通道,就可以關閉未使用的通道。通過當較低帶寬可能時關閉通道且當要求更多帶寬時重新激活通道,實現了動態帶寬。相反,常規存儲器系統(諸如圖1的存儲器系統10)能夠僅通過時鐘頻率縮放來實現此類動態帶寬。因為時鐘頻率縮放要求整個時鐘架構(從PLL到時鐘分布)來動態改變頻率以節省功率,此類時鐘頻率縮放通常是高成本的并且消耗存儲器系統內相對大量的面積。啟用帶寬縮放而非頻率縮放實現了功率節省而沒有與動態頻率縮放相關聯的復雜度。此外,若需要帶寬縮 放的進一步選項,可以使用時鐘信號64的分頻器(例如,可以由簡單后分頻器實現的2n分頻)或者包括選擇性通道激活的其他感興趣的選項。
就這一點而言,圖4解說了圖2的存儲器系統50,該圖2的存儲器系統具有通過使用串行數據轉移和選擇性通道激活完成的帶寬和功率縮放。注意,處于簡化起見,省略了SoC 52的一些元件。SoC 52包括用于第一M通道總線80(1)的第一切換元件96和用于其他M通道總線80(2)-80(N)的對應附加切換元件,盡管針對M通道總線80(N)僅解說了第二切換元件98。第一切換元件96可以具有允許個體數據通道82(1)(1)-82(1)(M)停用的開關。類似地,第二切換元件98可以具有允許個體數據通道82(N)(1)-82(N)(M)停用的開關。附加切換元件可以具有類似的開關,并且針對其他M通道總線可以存在類似的切換元件。控制系統60可以控制第一和第二切換元件96和98。通過激活和停用個體通道,改變了M通道總線80的有效帶寬。例如,通過關閉一半的數據通道82(1)(1)-82(1)(M),M通道總線80(1)的帶寬被減半并且功耗被減半。雖然被解說且描述為第一和第二切換元件96和98,應當領會此類路由可以通過以上描述的復用器完成。注意,給定數據通道82可在有限數目的導線上包括二進制數據和/或編碼碼元二者。
針對硬件的背景,圖5解說了根據本公開的示例性方面的解說可以與圖2的存儲器系統50聯用的過程100的流程圖。過程100通過在SoC(AP)52中提供串化器74來開始(框102)。在DRAM元件56和58中提供了(諸)解串器90(框104)。此外,在DRAM元件56和58中提供了(諸)解串器90、(諸)FIFO緩沖器92(框106)。
繼續參見圖5,在提供硬件之際,生成了要存儲在(諸)DRAM元件56(和58)中的數據。如此生成的數據被斷為碼字,這些碼字的每個字節在SoC(AP)52處由串化器74串行化(框108)。控制系統60確定了使用哪個數據通道來傳送經串行化數據,并且將經串行化數據路由到恰適的數據通道。隨后SoC 52跨M通道總線(例如,M通道總線80(1)-80(N))的單個數據通道(例如,數據通道82(X)(Y))向DRAM元件(例如,DRAM元件56)傳送數據的經串行化字節(框110)。當正在發送多個字節時,控制系統60可以確定并改變用來傳送數據的不同字節的數據通道的數目(框112)。
繼續參照圖5,過程100通過在(諸)DRAM元件56和58處接收經串行化數據來繼續(框114)。解串器90隨后在(諸)DRAM元件56和58處將該數據解串行化(框116)。經解串行化數據存儲在(諸)FIFO緩沖器中(框118)并且從(諸)FIFO緩沖器加載到(諸)存儲器陣列94(框120)。
如以上所注意到的,因為M通道總線80和M’通道總線84的速度相對較高,字節的第一比特和字節的最后比特的抵達之間的延遲相對較小。由此,當與寫矯平和/或使用可變頻率PLL相關聯的花費和困難相比,由解串行化和在FIFO緩沖器92存儲中的延遲所引入的任何等待時間是可接受的。
根據本文中所公開的DRAM接口的串行數據傳輸可在任何基于處理器的設備中被提供或被集成到任何基于處理器的設備中。不作為限定的示例包括機頂盒、娛樂單元、導航設備、通信設備、固定位置數據單元、移動位置數據單元、移動電話、蜂窩電話、計算機、便攜式計算機、臺式計算機、個人數字助理(PDA)、監視器、計算機監視器、電視機、調諧器、無線電、衛星無線電、音樂播放器、數字音樂播放器、便攜式音樂播放器、數字視頻播放器、視頻播放器、數字視頻碟(DVD)播放器、以及便攜式數字視頻播放器。
就這一點而言,圖6解說了可采用如圖2中所解說的存儲器系統50的串行數據傳輸的基于處理器的系統130的示例。在這一示例中,基于處理器的系統130包括一個或多個中央處理單元(CPU)132,其各自包括一個或多個處理器134。(諸)CPU 132可具有耦合至(諸)處理器134以用于對臨時存儲的數據進行快速訪問的高速緩存存儲器136。(諸)CPU 132被耦合到系統總線138,且可將基于處理器的系統130中所包括的諸設備互耦。如眾所周知的,(諸)CPU 132通過在系統總線138上交換地址、控制、和數據信息來與這些其他設備通信。注意,系統總線可以是圖2的總線80、84,或者M通道總線80、84可以在CPU 132內部。
其它設備可被連接到系統總線138。如圖6中所解說的,作為示例,這些設備可包括存儲器系統140、一個或多個輸入設備142、一個或多個輸出設備144、一個或多個網絡接口設備146、以及一個或多個顯示器控制器148。(諸)輸入設備142可包括任何類型的輸入設備,包括但不限于輸入鍵、開關、語音處理器等。(諸)輸出設備144可包括任何類型的輸出設備,包括但不限于音 頻、視頻、其他視覺指示器等。(諸)網絡接口設備146可以是被配置成允許往來于網絡150的數據交換的任何設備。網絡150可以是任何類型的網絡,包括但不限于:有線或無線網絡、私有或公共網絡、局域網(LAN)、無線局域網(WLAN)、廣域網(WAN)、藍牙TM網絡和因特網。(諸)網絡接口設備146可被配置成支持所期望的任何類型的通信協議。
(諸)CPU 132還可被配置成通過系統總線138訪問(諸)顯示器控制器148以控制發送給一個或多個顯示器152的信息。(諸)顯示器控制器148經由一個或多個視頻處理器154向(諸)顯示器152發送要顯示的信息,視頻處理器154將要顯示的信息處理成適于(諸)顯示器152的格式。(諸)顯示器152可包括任何類型的顯示器,包括但不限于:陰極射線管(CRT)、液晶顯示器(LCD)、等離子顯示器、發光二極管(LED)顯示器等。
本領域技術人員將進一步領會,結合本文所公開的諸方面描述的各種解說性邏輯塊、模塊、電路和算法可被實現為電子硬件、存儲在存儲器中或另一計算機可讀介質中并由處理器或其它處理設備執行的指令、或這兩者的組合。作為示例,本文中描述的設備可被用在任何電路、硬件組件、集成電路(IC)、或IC芯片中。本文所公開的存儲器可以是任何類型和大小的存儲器,且可被配置成存儲所需的任何類型的信息。為清楚地解說這種可互換性,以上已經以其功能性的形式一般地描述了各種解說性組件、框、模塊、電路和步驟。此類功能性如何被實現取決于具體應用、設計選擇、和/或加諸于整體系統上的設計約束。技術人員可針對每種特定應用以不同方式來實現所描述的功能性,但此類實現決策不應被解讀為致使脫離本公開的范圍。
結合本文中公開的諸方面描述的各種解說性邏輯塊、模塊、以及電路可用設計成執行本文中描述的功能的處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現場可編程門陣列(FPGA)或其他可編程邏輯器件、分立的門或晶體管邏輯、分立的硬件組件、或其任何組合來實現或執行。處理器可以是微處理器,但在替代方案中,處理器可以是任何常規處理器、控制器、微控制器或狀態機。處理器還可以被實現為計算設備的組合,例如DSP與微處理器的組合、多個微處理器、與DSP核心協同的一個或多個微處理器、或任何其它此類配置。
本文所公開的各方面可被體現為硬件和存儲在硬件中的指令,并且可駐留在例如隨機存取存儲器(RAM)、閃存、只讀存儲器(ROM)、電可編程ROM(EPROM)、電可擦可編程ROM(EEPROM)、寄存器、硬盤、可移動盤、CD-ROM、或本領域中所知的任何其它形式的計算機可讀介質中。示例性存儲介質被耦合到處理器,以使得處理器能從/向該存儲介質讀取/寫入信息。在替換方案中,存儲介質可以被整合到處理器。處理器和存儲介質可駐留在ASIC中。ASIC可駐留在遠程站中。在替換方案中,處理器和存儲介質可作為分立組件駐留在遠程站、基站或服務器中。
還注意到,本文任何示例性方面中描述的操作步驟是為了提供示例和討論而被描述的。所描述的操作可按除了所解說的順序以外的眾多不同順序來執行。而且,在單個操作步驟中描述的操作實際上可在多個不同步驟中執行。另外,在示例性方面中討論的一個或多個操作步驟可被組合。應理解,如對本領域技術人員顯而易見地,在流程圖中解說的操作步驟可進行眾多不同的修改。本領域技術人員還將理解,可使用各種不同技術中的任何一種來表示信息和信號。例如,貫穿上面描述始終可能被述及的數據、指令、命令、信息、信號、位(比特)、碼元、和碼片可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子、或其任何組合來表示。
提供對本公開的先前描述是為使得本領域任何技術人員皆能夠制作或使用本公開。對本公開的各種修改對本領域技術人員而言將容易是顯而易見的,并且本文中所定義的普適原理可被應用到其他變型而不會脫離本公開的精神或范圍。由此,本公開并非旨在被限定于本文中所描述的示例和設計,而是應被授予與本文中所公開的原理和新穎特征一致的最廣義的范圍。