用于單個通道內的dram空間聯合的方法和裝置的制造方法
【專利摘要】各方面包括用于重新組織存儲器中的數據存儲以針對讀取或寫入事務向比存儲器模塊的全部存儲器設備少的存儲器設備通電的設備、系統和方法。所述存儲器設備可以連接到單獨的選擇線路,使得重新排序邏輯單元可以根據重新排序的存儲器映射圖來確定針對事務要通電的所述存儲器設備。所述重新排序邏輯單元可以對存儲器地址進行重新排序,使得處理器針對事務而提供的存儲器地址根據所述重新排序的存儲器映射圖被轉換為重新排序的存儲器地址,而處理器不必改變其存儲器地址方案。所述重新排序的存儲器映射圖可以提供存儲器設備的降低的功耗,或者針對延遲容忍過程提供能耗和性能速度的平衡。
【專利說明】
用于單個通道內的DRAM空間聯合的方法和裝置
【背景技術】
[0001]設備中的存儲器覆蓋區(密度)正在迅速增加。雙數據速率動態隨機存取存儲器(DDR DRAM)的成本正在減小。操作系統和應用正變得更大、更復雜,并且使用更多的存儲器。用戶并發地加載和運行程序,同時仍然預期良好的性能和響應性。為了達到高性能,系統需要同時操作的多個并行存儲器組件的快速和寬的存儲器總線。在這種系統中,在來自CPU的存儲器事務期間,每個并行存儲器設備被通電(energize)。這得到了以高功耗為代價的高性能。DDR RAM操作可以超過設備的總功耗的15%,不管該設備是移動計算機、智能電話、平板設備、臺式計算機還是另一種類型的移動設備。在許多情況下(例如,音頻回放),DDR RAM使用比為用戶提供適當性能可能需要的功率更多的功率。
【發明內容】
[0002]各個方面的方法和裝置提供了用于使用存儲器模塊的多個存儲器設備的電路和方法,所述方法可以包括:對所述多個存儲器設備的存儲器映射圖進行重新排序從而得到重新排序的存儲器映射圖,使得存儲器事務指令的數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備;接收與所述存儲器事務指令相關聯的至少一個存儲器地址;根據所述重新排序的存儲器映射圖,將所述至少一個存儲器地址轉換為至少一個重新排序的存儲器地址;以及激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備,以針對所述數據突發執行所述存儲器事務指令,其中,所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備與根據所述重新排序的存儲器映射圖的所述至少一個重新排序的存儲器地址相關聯。
[0003]在一個方面方法中,激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備以針對所述數據突發執行所述存儲器事務指令可以包括:單獨地激活所述比多個存儲器設備中的全部存儲器設備少的存儲器設備中的每個存儲器設備。
[0004]在一個方面方法中,對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得用于所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備可以包括:對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得用于所述存儲器事務指令的所述數據突發使用所述多個存儲器設備中的一個存儲器設備,并且激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備以針對所述數據突發執行所述存儲器事務指令可以包括:激活所述多個存儲器設備中的一個存儲器設備,以針對所述數據突發執行所述存儲器事務指令。
[0005]在一個方面方法中,對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得用于所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備可以包括:對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得用于所述存儲器事務指令的所述數據突發多次使用所述存儲器模塊的所述多個存儲器設備中的至少一個存儲器設備。
[0006]—個方面方法還可以包括:接收針對寫入事務的存儲器事務指令,所述存儲器事務指令包括所述數據突發以及用于寫入到所述多個存儲器設備的所述至少一個存儲器地址,其中,所述數據突發可以包括并行地寫入數據;將所述數據突發的至少一部分轉換為串行寫入數據以用于寫入到所述重新排序的存儲器地址;以及將所轉換的寫入數據輸出到與所述重新排序的存儲器地址相關聯的、所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的至少一個存儲器設備。
[0007]—個方面方法還可以包括:接收針對讀取事務的存儲器事務指令,所述存儲器事務指令包括用于從所述多個存儲器設備中讀取的所述存儲器地址;從與所述重新排序的存儲器地址相關聯的、所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的至少一個存儲器設備接收所述數據突發,其中,所述數據突發的至少一部分可以包括串行讀取數據;將所述數據突發轉換為并行格式的讀取數據,使得所述并行格式的讀取數據被排序為符合所述存儲器事務指令的存儲器地址;以及將所述并行格式的讀取數據輸出到處理器。
[0008]在一個方面的方法中,對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得用于所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備可以包括:使用不同的重新排序模式來對所述多個存儲器設備的所述存儲器映射圖的部分進行重新排序,其中,所述存儲器映射圖的至少一部分被重新排序,使得用于所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備。
[0009]—個方面包括一種裝置,所述裝置包括用于使用存儲器模塊的多個存儲器設備的存儲器控制器,其中,所述存儲器控制器被配置為執行可以包括上文描述的方面方法中的一個或多個方法的操作。
[0010]—個方面包括一種用于使用存儲器模塊的多個存儲器設備的裝置,所述裝置包括用于執行上文描述的方面方法中的一個或多個方法的功能的單元。
[0011 ] 一個方面包括其上存儲有處理器可執行指令的非暫時性存儲器可讀介質,所述處理器可執行指令被配置為使得存儲器控制器執行上文描述的方面方法中的一個或多個方法的操作。
【附圖說明】
[0012]附圖(其被并入本文并且構成本說明書的一部分)示出了本發明的示例方面,并且與上文所給出的一般性描述和下文所給出的詳細描述一起用于對本發明的特征進行解釋。
[0013]圖1是根據一個方面示出了用于單個通道內的DRAM空間聯合(spatialcoalescing)的計算設備的組件框圖,其中計算設備在連接到多個存儲器控制器的多個存儲器模塊上具有多個存儲器設備,其中每個存儲器設備與通道相關聯。
[0014]圖2是根據一個方面示出了用于單個通道內的DRAM空間聯合的計算設備的組件框圖,其中計算設備在連接到存儲器控制器的存儲器模塊上具有多個存儲器設備,其中每個存儲器設備與通道相關聯。
[0015]圖3是根據一個方面示出了計算設備的組件框圖,其中計算設備被配置為:將并行格式的數據轉換為串行數據并且將串行數據寫入到多個存儲器設備中的一個或多個存儲器設備。
[0016]圖4是根據一個方面示出了計算設備的組件框圖,其中計算設備被配置為:從多個存儲器設備中的一個或多個存儲器設備讀取串行數據,并且將串行數據轉換為并行格式的數據。
[0017]圖5是根據一個方面示出了針對最小功耗的多個存儲器設備的示例重新排序的存儲器映射圖的示意圖。
[0018]圖6是根據一個方面示出了針對延遲容忍過程的多個存儲器設備的示例重新排序的存儲器映射圖的示意圖。
[0019]圖7是根據一個方面示出了到多個存儲器設備的多個存儲器映射圖以用于單個通道內的DRAM空間聯合的示例引用的示意圖。
[0020]圖8是示出了用于存儲器映射圖重新排序以用于單個通道內的DRAM空間聯合的方面方法的過程流圖。
[0021]圖9是示出了用于將并行格式的數據轉換為串行數據以寫入到多個存儲器設備中的一個或多個存儲器設備的方面方法的過程流圖。
[0022]圖10是示出了用于將串行數據轉換為并行格式的數據以從多個存儲器設備中的一個或多個存儲器設備讀取的方面方法的過程流圖。
[0023]圖11是示出了用于將并行格式的數據轉換為串行數據以寫入到多個存儲器設備中的一個或多個存儲器設備的方面方法的過程流圖。
[0024]圖12是示出了用于將串行數據轉換為并行格式的數據以從多個存儲器設備中的一個或多個存儲器設備中讀取的方面方法的過程流圖。
[0025]圖13是示出了適合于與各個方面一起使用的示例移動設備的組件框圖。
[0026]圖14是示出了適合于與各個方面一起使用的示例移動設備的組件框圖。
【具體實施方式】
[0027]將參考附圖詳細描述各個方面。只要有可能,貫穿附圖將使用相同的附圖標記來指代相同或相似的部件。對特定示例和實現方式進行的引用是出于說明性的目的,并且并非旨在限制本發明或權利要求的范圍。
[0028]本文中術語“計算設備”和“移動設備”可互換使用,以指代以下各項中的任意一項或全部:蜂窩電話、智能電話、個人或移動多媒體播放器、個人數據助理(PDA)、膝上型計算機、平板計算機、智能本、超級本、掌上計算機、無線電子郵件接收機、具有多媒體互聯網功能的蜂窩電話、無線游戲控制器、以及包括存儲器和可編程處理器的類似的個人電子設備。雖然各個方面對于具有有限資源的移動計算設備(諸如智能電話)特別有用,但是這些方面通常在實現多個存儲器設備和有限的功率預算的任何電子設備中都有用,其中降低存儲器設備的功耗可以延長移動計算設備的壽命。
[0029]本文使用術語“片上系統”(SoC)來指代通常(但不是排他地)包括硬件內核、存儲器和通信接口的一組互連的電子電路。硬件內核可以包括各種不同類型的處理器,諸如通用處理器、中央處理單元(CPU)、數字信號處理器(DSP)、圖形處理單元(GPU)、加速處理單元(APU)、輔助處理器、單核處理器以及多核處理器。硬件內核還可以包含其它硬件和硬件組合,諸如現場可編程門陣列(FPGA)、專用集成電路(ASIC)、其它可編程邏輯器件、分立門控邏輯器件、晶體管邏輯器件、性能監控硬件、看門狗(watchdog)硬件以及時間基準。集成電路可以被配置為使得集成電路的組件位于單片半導體材料(諸如硅)上。
[0030]本文中術語“通道”和“存儲器總線”可互換使用,以指代被配置為在存儲器控制器和存儲器模塊之間發送數據的數據管道。每個存儲器模塊可以連接到存儲器模塊的專用通道。例如,具有“X”數量的存儲器模塊的設備可以具有“X”數量的通道,其中每個通道與一個存儲器模塊相對應。通道的尺寸可以不同,但為了便于參考,本文論述的示例參考能夠并行發送多達64比特的數據的64比特通道。這些示例并非意在進行限制,這是因為各方面可以在不同尺寸的通道中實現。本文中術語“子通道”和“存儲器設備總線”可互換使用,以指代當子通道的存儲器設備被單獨地激活或通電時連接到存儲器模塊的存儲器設備的通道的部分。
[0031]術語“事務”指代對所請求尺寸的數據的完整傳輸。術語“數據突發”指代為完成傳輸而使用多個連續周期在接口上對數據進行傳輸。事務可以在單個周期內完成或者可以在多個周期的突發中完成。
[0032]為了便于參考,本文所描述的示例假定存儲器模塊具有八個存儲器設備或芯片。在本文所描述的示例中,存儲器設備的尺寸可以不同,并且存儲器設備的部分可以被劃分成I字節或8比特。這些示例并非意在以任何方式進行限制,并且本文公開內容可以應用于具有不同尺寸和配置的存儲器模塊和存儲器設備。此外,本文所描述的其它組件(諸如處理器、存儲器控制器、數據緩沖器、設備緩沖器、先進先出(FIFO)緩沖器、復用器、解復用器、重新排序邏輯單元(re-order logic)、以及多個總線和線路中的每個總線和線路)可以替代地被配置為支持存儲器模塊和存儲器設備的不同尺寸和配置。
[0033]在常規的存儲器讀取或寫入事務期間,諸如一個存儲器模塊上的存儲器設備群組可以被通電以用于與計算設備的處理器的事務。例如,在常規的存儲器設備中,當主存儲器包含至少一個存儲器模塊(該存儲器模塊具有八個存儲器設備,其中每個存儲器設備被分段成多個區段,每個區段I字節)時,64比特的讀取或寫入事務將向所有八個存儲器設備通電以存取每個存儲器設備的I字節區段。在常規的存儲器設備中,由于每個存儲器設備可以與另一個存儲器設備同時接收數據,因此數據被并行地寫入到存儲器設備群組,從而實現了對大量數據的快速存取。由于64比特的事務數據可以被并行地寫入到存儲器設備或者從存儲器設備讀取,因此存取存儲器的這種常規方式是使用被配置用于高性能或速度的存儲器映射圖來實現的。存取存儲器的這種方式還使用大量的能量,這是因為這種方式向用于事務的全部存儲器設備通電。然而,當可以并行地讀取或寫入最大尺寸的數據突發(在該示例中,64比特)時,以這種性能級別來執行存儲器讀取或寫入事務可能是不必要的。當以這種性能級別來執行存儲器讀取或寫入事務的結果是過度使用具有有限功率預算的設備的能量時,以這種性能級別來執行存儲器讀取或寫入事務也可能是不期望的。
[0034]各個實施例提供了用于通過為事務內的字節重映射存儲器位置以使得數據字節存儲在單個存儲器設備中而不是并行地跨越多個存儲器設備,以比常規方法更加功率高效的方式在計算設備的存儲器中存儲數據的方法。以此方式來重映射數據突發使得僅單個存儲器設備被通電以讀取或寫入數據,從而節省了原本對于常規的并行存儲器存取操作而言為了向全部存儲器設備通電而需要的功率。為了便于參考,術語“數據突發”和“數據的突發”可互換使用,以指代在單個時鐘周期中從處理器輸出以用于存儲的數據量或者向存儲器請求的數據量。例如,在單個處理器時鐘周期中,64比特的處理器可以向存儲器發送64比特的數據以用于存儲或者向存儲器請求64比特的數據,因此對于該這樣的處理器的數據突發可以是八字節的數據。在各個實施例中,來自/去往64比特處理器的數據突發中的八字節數據會在存儲器映射圖中被重新排序以便串行地保存在單個存儲器設備中,而不是并行地在八個存儲器設備中的每個存儲器設備中保存一個字節。
[0035]使用重新排序的存儲器映射圖來對數據突發的存儲器地址進行重新排序的過程可以在存儲器存取控制器(本文中還被稱為“存儲器控制器”)內完成,所述存儲器存取控制器可以是SoC、存儲器設備或者單獨的集成電路的組件。方面存儲器存取控制器可以包括重新排序邏輯單元,其被配置為執行各個方面的存儲器映射。方面方法可以另外地或替代地在作為與存儲器存取控制器分離的組件的重新排序邏輯單元中執行。以此方式,可以在不對處理器施加要求的情況下完成對數據突發內的字節進行重新排序的過程。換句話說,處理器可以使用常規的存儲器尋址技術來向存儲器輸出數據并從存儲器存取數據,而存儲器存取控制器執行對數據突發內的字節進行重新排序的操作,使得這些字節可以以能量高效的方式存儲在存儲器內。實際上,從處理器輸出以用于并行存儲在存儲器中的數據被存儲器存取控制器轉換為串行存儲器地址,使得數據突發內的字節被串行地存儲在單個存儲器設備中,而從存儲器讀取的以串行格式存儲在單個設備中的數據突發根據所請求的存儲器位置被轉換為處理器所預期的并行格式。
[0036]在讀取和寫入操作中,處理器可以針對并行數據來請求對存儲器位置的事務。存儲器存取控制器可以將處理器所指定的存儲器地址與重新排序的存儲器映射圖進行比較,以確定所請求的數據在特定存儲器設備中的重新排序的存儲器位置。存儲器存取控制器可以在串行和并行格式之間轉換數據,使得存儲器設備可以處理串行數據并且處理器可以處理并行數據。
[0037]在一個方面中,存儲器存取控制器可以使用延遲容忍的重新排序的存儲器映射圖來對數據地址進行重新排序,其中該重新排序的存儲器映射圖通過分配一個以上但少于所有的存儲器設備來處理數據突發,來平衡性能和能量節省。在這方面中,延遲容忍的重新排序的存儲器映射圖可以使用一些但不是所有存儲器設備來處理數據突發,而不是如上面所描述的通過并行地使用所有存儲器設備來使存儲器存取性能最大化,或者通過使用一個存儲器設備處理數據突發來使功耗最小化。以此方式,重新排序的存儲器映射圖限制了被通電以讀取或寫入數據突發的存儲器設備的數量。該方面表示常規存儲器存取技術的高性能但高功率需求與本文所描述的方面所提供的低功率但較低存儲器存取之間的折衷。
[0038]在一個方面中,存儲器存取控制器所使用的重新排序的存儲器映射圖還可以是存儲器映射圖的組合。存儲器設備的重新排序的存儲器映射圖可以對存儲器設備的不同分段進行劃分,以用于從不同的存儲器映射圖產生的不同的目的。例如,可以配置存儲器存取控制器,使得每個存儲器設備的第一部分可以用于以最小能量消耗存儲串行格式的數據,每個存儲器設備的第二部分用于存儲針對延遲容限而組織的數據,并且每個存儲器設備的第三部分用于存儲針對最大性能而組織的數據。存儲器存取控制器可以使用存儲器映射圖來完成對存儲器位置的這種分配,所述存儲器映射圖根據數據結構、延遲容限或者數據的源應用,將數據映射到適當的存儲器部分。可以配置存儲器存取控制器,使得存儲器設備內的存儲器地址以各種不同的方式來分配并且與各種不同的重新排序的存儲器映射圖相關,并且本文所提供的示例并非意在進行限制。
[0039]在一個方面中,處理器所請求的事務可以被分配給存儲器設備中的與不同的重新排序的存儲器映射圖相關的不同部分。存儲器存取控制器(或者結合存儲器存取控制器工作的處理器)可以基于處理器所執行的過程中的或者與該過程相關的指令,來確定最適合于不同的重新排序的存儲器映射圖的數據事務。可以在作為數據的源或用戶的軟件應用中所提供的指示(例如,標志、數據標簽等)或者通過對軟件應用的分析來做出這種確定。
[0040]圖1根據一方面示出了示例計算設備,該示例計算設備在連接到多個存儲器控制器的多個存儲器模塊上具有多個存儲器設備,其中每個存儲器設備與通道相關聯。計算設備100可以包括SoC 102,SoC 102具有處理器104、靜態隨機存取存儲器(SRAM)106、只讀存儲器(R0M)108、存儲器控制器110、以及存儲控制器112,其中每一個連接到至少處理器104。SoC 102可以通過存儲控制器112連接到存儲設備IHt3SoC 102可以通過存儲器控制器110連接到存儲器模塊116。存儲器模塊116可以包括存儲器設備118。連接到SoC 102的每個存儲器模塊116可以與通道相關聯,以用于在存儲器模塊116和SoC 102之間傳輸數據。存儲器模塊116的每個存儲器設備118也可以與存儲器模塊116的通道相關聯。連接到SoC 102的每個存儲器模塊116可以通過專用的存儲器控制器110來連接,使得每一對存儲器模塊116和存儲器控制器110與相同的通道相關聯。圖1中的示例示出了方面計算設備100,該計算設備100具有連接到兩個存儲器模塊116(存儲器模塊一通道O、存儲器模塊一通道I)的一個SoC102,每個存儲器模塊116包含八個存儲器設備118(存儲器設備0-7),并且每個存儲器模塊116連接到其專用的存儲器控制器110(存儲器控制器一通道0、存儲器控制器一通道I)。在該示例中,SoC 102、存儲器模塊116、存儲器設備118和存儲器控制器110以及因此通道的數量并非意在以任何方式進行限制,并且計算設備100的組件的配置可以改變。
[0041]在計算設備100中,處理器104可以做出從各個存儲器設備118的特定存儲器位置讀取數據或向該位置寫入數據的事務請求。與所請求的事務的存儲器位置相關聯的存儲器控制器110可以接收數據事務請求,并且控制如何從存儲器設備118讀取事務請求的數據或者如何向存儲器設備118寫入事務請求的數據。如下文進一步詳細論述的,存儲器控制器110可以對存儲器設備118的存儲器映射圖進行重新排序,控制數據的流和格式,并且控制被通電的存儲器設備118和用于事務的存儲器位置。
[0042]圖2示出了在連接到存儲器控制器110的存儲器模塊118上具有多個存儲器設備的計算設備,其中每個存儲器設備與通道相關聯。存儲器控制器110和存儲器模塊118可以是與“n”個數量的通道相關聯的任意數量的存儲器控制器Il0和存儲器模塊Il8的數量“η”。存儲器控制器110可以包括數據緩沖器200和重新排序邏輯單元202。計算設備處理器104可以通過事務總線204連接到存儲器控制器110,所述事務總線204可以被配置為在處理器104和存儲器控制器110之間傳輸數據、存儲器位置或地址、以及事務信號。處理器數據總線206可以在事務總線204和數據緩沖器200之間傳輸數據。處理器地址總線208可以傳輸處理器104為事務指定的存儲器位置以及指定所請求的事務是讀取還是寫入事務的事務信號。數據緩沖器控制總線210可以將控制信號從重新排序邏輯單元202傳輸給數據緩沖器200,所述控制信號可以包括用于在并行格式的數據和串行數據之間轉換數據的信號、以及用于從處理器104或存儲器設備118接收數據的信號。
[0043]數據緩沖器200還可以通過存儲器數據總線212連接到存儲器設備118。每個存儲器設備118可以并行地連接到相同的存儲器數據總線212和相同的數據緩沖器200。因此,在64比特的存儲器數據總線的示例中,每個存儲器設備118可以連接到整個64比特的存儲器數據總線。在一個方面中,每個存儲器設備118可以通過存儲器數據總線212的部分來連接到相同的數據緩沖器200。在64比特的存儲器數據總線的另一個示例中,每個存儲器設備118可以連接到64比特的存儲器數據總線的一部分,使得每個存儲器設備118僅可以在其所連接的部分上接收或發送數據。例如,64比特的存儲器數據總線可以連接到八個存儲器設備118,其中每個存儲器設備118連接到64比特的存儲器數據總線的8比特部分。類似的示例可以包括存儲器設備118連接到存儲器數據總線212的不均等尺寸的部分。這些配置允許存儲器數據總線212在存儲器設備118和數據緩沖器200之間并行地以及串行地傳輸數據。
[0044]重新排序邏輯單元202可以通過存儲器地址和控制總線214以及存儲器設備選擇總線216連接到存儲器設備118。存儲器地址和控制總線214可以從重新排序邏輯單元202向存儲器設備118發送信號,使得存儲器設備118將數據存儲到特定的存儲器位置或者從特定的存儲器位置釋放數據。存儲器設備選擇總線216可以從重新排序邏輯單元202向存儲器設備118傳輸信號以向存儲器設備118通電。存儲器設備選擇總線216可以包括用于每個所連接的存儲器設備118的專用線路,并且重新排序邏輯單元202可以選擇連接到特定存儲器設備118的專用線路,其中重新排序邏輯單元202選擇向該特定存儲器設備118通電。向單獨的存儲器設備118通電可以在存儲器數據總線212上創建子通道。
[0045]重新排序邏輯單元202還可以被配置為對存儲器設備118的存儲器映射圖進行重新排序。如上所述,可以對存儲器映射圖進行重新排序,以使存儲器設備118的功耗最小化、使性能速度最大化、和/或平衡功耗和性能速度。重新排序的存儲器映射圖可以用于將處理器作為事務請求的一部分而提供的存儲器位置與存儲器設備118的達到重新排序的存儲器映射圖的目標的、重新排序的存儲器位置進行關聯。以此方式,處理器104可以請求針對指定存儲器位置處的數據的事務,并且存儲器控制器110可以根據重新排序的存儲器映射圖來控制數據寫入到存儲器設備118的什么地方或者從存儲器設備118的什么地方讀取數據,而不需要處理器104改變其與事務數據相關聯的存儲器位置。下文進一步描述了用于對存儲器映射圖進行重新排序的過程以及如何使用重新排序的存儲器映射圖。
[0046]圖3示出了被配置為將并行格式的數據轉換為串行數據并將串行數據寫入到多個存儲器設備中的一個或多個存儲器設備的計算設備。數據緩沖器200可以包括存儲器設備緩沖器300,存儲器設備緩沖器300可以包括先進先出(FIFO)緩沖器302和復用器304。數據緩沖器200可以包括多個存儲器設備緩沖器300(存儲器設備緩沖器0、存儲器設備緩沖器1、至存儲器設備緩沖器η)。例如,數據緩沖器200可以包括與連接到數據緩沖器200的存儲器設備118(存儲器設備0、存儲器設備1、至存儲器設備η)—樣多的存儲器設備緩沖器300。
[0047]每個存儲器設備緩沖器300可以通過存儲器數據總線212連接到存儲器設備118。在一個方面中,每個存儲器設備緩沖器300可以連接到與數據緩沖器200并行連接的所有存儲器設備118。在另一個方面中,每個存儲器設備緩沖器300可以連接到一個或多個專用的存儲器設備118,這些專用的存儲器設備118通過存儲器數據總線212的一部分或者單獨的存儲器數據總線212連接到數據緩沖器200。
[0048]如上所述,處理器104可以連接到數據緩沖器200,并且通過事務總線204和處理器數據總線206進一步并行地連接到每個存儲器設備緩沖器300。在連接到存儲器設備緩沖器300時,處理器104還可以與每個存儲器設備緩沖器300的FIFO緩沖器302相連接。
[0049]重新排序邏輯單元202可以通過存儲器地址和控制總線214以及存儲器設備選擇總線216連接到存儲器設備118,并且通過數據緩沖器控制總線210連接到數據緩沖器200,如上所述。重新排序邏輯單元還可以通過FIFO控制總線310連接到每個存儲器設備緩沖器300的FIFO緩沖器302,并且通過復用器選擇總線308連接到每個存儲器設備緩沖器300的復用器304。
[0050]在操作中,一種用于執行數據事務的方面方法可以按如下進行。處理器104可以請求寫入事務,并且存儲器控制器可以在事務總線204上接收來自處理器104的寫入事務請求。存儲器控制器可以在處理器地址總線208上將事務信號(在該示例中,寫入信號)和處理器提供的存儲器位置路由到重新排序邏輯單元202。重新排序邏輯單元202可以接收處理器提供的存儲器位置。重新排序邏輯單元202可以將處理器提供的存儲器位置與重新排序的存儲器映射圖進行比較,以確定存儲器設備118的與處理器提供的存儲器位置相關聯的重新排序的存儲器位置。重新排序邏輯單元202可以確定連接到與所識別的用于事務的重新排序的存儲器位置相關聯的存儲器設備118的存儲器設備緩沖器300。重新排序邏輯單元202也可以接收事務信號并將事務信號識別為寫入請求。響應于事務信號,重新排序邏輯單元202可以通過FIFO控制總線310用信號通知所識別的存儲器設備緩沖器300的FIFO緩沖器302,以實現存儲來自處理器104的輸入數據。存儲器控制器可以在處理器數據總線206上將寫入事務請求的數據路由到存儲器設備緩沖器300,并且所啟用的FIFO緩沖器302可以存儲數據。FIFO緩沖器302可以并行地接收數據,因此不存在接收數據的時間順序。然而,FIFO緩沖器302的輸入端均可以連接到處理器數據總線206的特定部分或線路。數據在處理器數據總線206上如何組織可以確定FIFO緩沖器302如何存儲數據。在處理器數據總線206的連接到與FIFO緩沖器302上的第一位置相關聯的FIFO緩沖器302的輸入端的部分上的一比特數據可以被認為是第一數據。在處理器數據總線206的連接到與FIFO緩沖器302上的下一位置相關聯的FIFO緩沖器302的下一輸入端的下一部分上的一比特數據可以被認為是下一數據,依次對FIFO緩沖器302的每個輸入端以此類推。
[0051]重新排序邏輯單元202還可以用信號通知所識別的存儲器設備緩沖器300的復用器304將復用器304從FIFO緩沖器302接收的數據從并行數據格式轉換為串行數據。在一個方面中,復用器304可以是例如64-8路復用器。這表示復用器304包括64個輸入端和八個輸出端,其中每個輸入端和輸出端一次可以管理I比特的數據。復用器304可以替代地被標識為8-1路復用器,其具有八個輸入端和一個輸出端,每個輸入端和輸出端一次可以管理I字節的數據。復用器304通過復用器選擇總線308從重新排序邏輯單元202接收的選擇信號可以控制針對輸出所選擇的復用器輸入。重新排序邏輯單元202可以按照如下順序向復用器304發送選擇信號:使得由復用器304輸出的復用器304的第一輸入可以連接到FIFO緩沖器302的與FIFO緩沖器302上的第一位置相關聯的輸出端。在一個方面中,選擇信號可以向復用器304指示由復用器304輸出的復用器304的第一輸入可以連接到FIFO緩沖器302的與FIFO緩沖器302上的前八個位置相關聯的輸出端。重新排序邏輯單元202所發送的下一選擇信號可以用信號通知復用器304輸出FIFO緩沖器302上的下一比特或下一字節的數據,以此類推,直到復用器304已經以串行方式輸出了存儲在FIFO緩沖器302上的所有數據為止。
[0052]存儲器數據總線212可以將復用器304所輸出的串行數據傳輸給存儲器設備118。如上所述,具有復用器304的存儲器設備緩沖器300可以連接到一個或多個專用的存儲器設備118,或者連接到與數據緩沖器200并行地連接的所有存儲器設備118。無論具有復用器304的存儲器設備緩沖器300如何連接到一個或多個存儲器設備118,重新排序邏輯單元202都可以選擇適當的存儲器設備118來接收串行數據。基于重新排序邏輯單元在處理器提供的存儲器位置與重新排序的存儲器映射圖之間的比較,重新排序邏輯單元202可以確定哪些重新排序的存儲器位置與處理器提供的存儲器位置相關聯。重新排序邏輯單元202可以識別哪些存儲器設備118與重新排序的存儲器位置相關聯。重新排序邏輯單元202可以使用存儲器設備選擇總線216來選擇并激活適當的存儲器設備118。重新排序邏輯單元202可以選擇并啟用連接到所選擇的存儲器設備118的存儲器設備選擇總線216,以使相關的存儲器設備118從待機狀態蘇醒。激活相關的存儲器設備118可以在存儲器控制器和存儲器設備118之間創建子通道。重新排序邏輯單元202還可以在存儲器地址和控制總線214上向所選擇的存儲器設備118發送信號,向存儲器設備118指示存儲器設備118將存儲串行數據以及重新排序的存儲器位置(在該位置處存儲串行數據)。
[0053]在一個方面中,重新排序邏輯單元202可以用信號通知數據緩沖器200對寫入數據進行局部串行化。重新排序邏輯單元202可以確定處理器提供的存儲器位置與針對延遲容忍(delay tolerant)過程的重新排序的存儲器映射圖或者重新排序的存儲器映射圖的一部分相關聯。取決于針對延遲容忍過程的重新排序的存儲器映射圖的配置,不同數量的少于“η”個數量的存儲器設備118可以用于寫入事務。使用少于“η”個數量的存儲器設備118來進行寫入事務可能需要使用存儲器設備118中的至少一個存儲器設備118的一個以上的存儲器位置。針對延遲容忍過程的重新排序的存儲器映射圖的配置可以限制并行寫入的存儲器設備118的數量。因此,重新排序邏輯單元202可以啟用與少于“η”個數量的存儲器設備118相關聯的存儲器設備緩沖器300的FIFO緩沖器302。所啟用的FIFO緩沖器302可以并行地從處理器104接收數據并存儲該數據,如上所述。重新排序邏輯單元可以用信號通知連接到所啟用的FIFO緩沖器302的復用器304輸出存儲在FIFO緩沖器302中的數據的不同部分。例如,在所有的FIFO緩沖器302可以具有以相同方式存儲和劃分的相同數據的情況下,重新排序邏輯單元202可以用信號通知第一復用器輸出存儲在其所連接的FIFO緩沖器上的數據的第一部分。重新排序邏輯單元可以用信號通知第二復用器輸出存儲在其所連接的FIFO緩沖器上的數據的第二部分,以此類推,直到達到重新排序的存儲器映射圖所設置的存儲器設備118的極限為止。當FIFO緩沖器302仍然具有數據要寫入到存儲器設備118時,重新排序邏輯單元可以對數據進行串行化,使得重新排序邏輯單元可以用信號通知第一復用器輸出還未被任何復用器304輸出的下一部分數據。該過程可以以此方式繼續,直到用于事務的存儲在FIFO緩沖器302上的所有數據被寫入到適當的存儲器設備118為止。
[0054]圖4示出了被配置為從多個存儲器設備中的一個或多個存儲器設備讀取串行數據并將串行數據轉換為并行數據的計算設備。除了圖3中所描述的組件之外,每個存儲器設備緩沖器300還可以包括連接到相同或另一 FIFO緩沖器302的解復用器400。解復用器400可以以與上文描述的復用器304相同的方式,通過存儲器數據總線212連接到存儲器設備118。解復用器400還可以通過解復用器選擇總線402和數據緩沖器控制總線210連接到重新排序邏輯單元。
[0055]在一個方面中,處理器104可以請求讀取事務。存儲器控制器可以在事務總線204上接收來自處理器104的讀取事務請求。存儲器控制器可以在處理器地址總線208上將事務信號(在該示例中,讀取信號)和處理器提供的存儲器位置路由到重新排序邏輯單元202。重新排序邏輯單元202可以將處理器提供的存儲器位置與重新排序的存儲器映射圖進行比較,并確定存儲器設備118的哪些重新排序的存儲器位置與處理器提供的存儲器位置相關聯。基于重新排序邏輯單元在處理器提供的存儲器位置與重新排序的存儲器映射圖之間的比較,重新排序邏輯單元202可以識別與重新排序的存儲器位置相關聯的存儲器設備118。重新排序邏輯單元202可以使用存儲器設備選擇總線216來選擇并激活適當的存儲器設備118。重新排序邏輯單元202可以選擇并啟用連接到所選擇的存儲器設備118的存儲器設備選擇總線216的線路,以使相關的存儲器設備118從待機狀態蘇醒。重新排序邏輯單元202還可以在存儲器地址和控制總線214上向所選擇的存儲器設備118發送信號,向存儲器設備118指示所請求的數據存儲在存儲器設備118上的重新排序的存儲器位置,并向存儲器設備118指示將存儲在指定的重新排序的存儲器位置處的串行數據釋放到適當的數據緩沖器300。
[0056]存儲器設備數據總線212可以從存儲器設備118向數據緩沖器300傳輸串行數據。如上所述,具有解復用器400的存儲器設備緩沖器300可以連接到一個或多個專用的存儲器設備118,或者連接到與數據緩沖器200并行地連接的所有存儲器設備118。無論具有解復用器400的存儲器設備緩沖器300如何連接到一個或多個存儲器設備118,重新排序邏輯單元202都可以選擇適當的存儲器設備緩沖器300來接收串行數據。基于重新排序邏輯單元在處理器提供的存儲器位置與重新排序的存儲器映射圖之間的比較,重新排序邏輯單元202可以識別與重新排序的存儲器位置和存儲器設備118相關聯的存儲器設備緩沖器300。在一個方面中,事務中所涉及的數據量可以小于或等于FIFO緩沖器302中的一個FIFO緩沖器302能夠管理的數據量。在這種情況下,選擇特定的存儲器設備緩沖器300可以不是必要的,這是因為存儲器設備緩沖器300可以并行地連接到處理器104。在另一個方面中,事務中所涉及的數據量可以大于FIFO緩沖器302中的一個FIFO緩沖器302能夠管理的數據量,并且存儲器控制器必須重新構造數據流,所述數據流需要多個突發來將數據傳遞給處理器104。在這種情況下,可能需要或者可能不需要選擇適當的存儲器設備緩沖器300來按照預期的順序將數據傳遞給處理器104。
[0057]重新排序邏輯單元202還可以用信號通知所識別的存儲器設備緩沖器300的解復用器400將解復用器400從存儲器設備118接收的數據從串行數據轉換為并行數據。在一個方面中,解復用器400可以是例如8-64路解復用器。這表示解復用器400包括八個輸入端和64個輸出端,其中每個輸入端和輸出端一次可以管理I比特的數據。解復用器400可以替代地被標識為1-8路解復用器,其具有一個輸入端和八個輸出端,其中每個輸入端和輸出端一次能夠管理I字節的數據。解復用器400通過解復用器選擇總線402從重新排序邏輯單元202接收的選擇信號可以控制針對輸出所選擇的解復用器輸入。重新排序邏輯單元202還可以通過FIFO控制總線310用信號通知FIFO緩沖器302存儲從解復用器400接收的數據。解復用器400的數據輸出可以由FIFO緩沖器302接收,其中解復用器400的每個輸出端可以連接到FIFO緩沖器302的與FIFO緩沖器302上的位置相關聯的輸入端。在與FIFO緩沖器302上的第一位置相關聯的FIFO緩沖器輸入端上接收到的解復用器輸出可以被認為是第一數據。在FIFO緩沖器302的與FIFO緩沖器302上的下一位置相關聯的下一輸入端上接收到的下一解復用器輸出可以被認為是下一數據,依次對FIFO緩沖器302的每個輸入端以此類推。當解復用器400向FIFO緩沖器302輸出串行數據時,對于解復用器400接收到的數據量,其可以按順序輸出給FIFO緩沖器302的每個輸入端。重新排序邏輯單元202可以按照如下順序向解復用器400發送選擇信號:使得解復用器400接收到的串行數據由解復用器400按照接收該串行數據的順序來輸出。
[0058]重新排序邏輯單元202可以控制解復用器400接收到的串行數據的輸出,使得該數據由FIFO緩沖器302以如下方式來接收:當FIFO緩沖器302向處理器104輸出數據時,串行數據按照處理器104所請求的順序轉換為并行數據。當FIFO緩沖器302已從解復用器400接收了所有串行數據時,存儲器控制器可以將并行地存儲在FIFO緩沖器302中的數據通過事務總線204釋放到處理器104。
[0059]在一個方面中,解復用器400所接收的數據可以僅局部并行并且局部串行化。如上所述,寫入數據可以被局部串行化并寫入到用于針對延遲容忍過程的重新排序的存儲器映射圖的存儲器設備118。在用于針對延遲容忍過程的重新排序的存儲器映射圖的存儲器位置的讀取事務中,重新排序邏輯單元202可以控制解復用器402和FIFO緩沖器302,以將局部并行和局部串行化的數據轉換為并行數據。重新排序邏輯單元202可以接收處理器提供的存儲器位置并使用這些存儲器位置來識別針對所請求的數據的重新排序的存儲器位置和存儲器設備118。重新排序邏輯單元202還可以識別相關聯的存儲器設備緩沖器300。重新排序邏輯單元202可以用信號通知存儲器設備118從重新排序的存儲器位置釋放數據,并且數據可以由相關聯的存儲器設備緩沖器300的解復用器402來接收。重新排序邏輯單元202可以用信號通知接收并行格式的數據部分的每個解復用器402將數據輸出到其所連接的FIFO緩沖器302的適當的輸入端,使得數據由FIFO緩沖器302輸出到處理器數據總線206的處理器104在其上預期數據的部分。重新排序邏輯單元202還可以用信號通知接收局部串行化的數據部分的每個解復用器402再次根據類似的方案將數據輸出到其所連接的FIFO緩沖器302的適當輸入端。以此方式,數據被格式化為并行數據格式,并且處理器數據總線206的每一部分上的數據如處理器104根據處理器提供的存儲器位置所預期的。
[0060]對于典型的存儲器模塊,計算設備可以實現針對最大性能速度而配置的存儲器映射圖。典型的存儲器模塊可以被配置為處理長度為N字節的數據突發的事務,數據可以被劃分成I字節的組塊(chunk),每個I字節的組塊寫入到典型的存儲器模塊的N數量的存儲器設備中的每個存儲器設備的一個存儲器位置或者從該存儲器位置讀取。在該典型的存儲器模塊示例中,N數量的存儲器模塊中的每個存儲器模塊必須被通電,以存儲或輸出I字節的數據組塊。例如,8字節事務可以將I字節組塊一次性全部發送給八個存儲器設備。
[0061]圖5示出了用于針對最小功耗的多個存儲器設備的示例重新排序的存儲器映射圖。在一個方面中,針對最小功耗的重新排序的存儲器映射圖500可以由存儲器模塊來支持,所述存儲器模塊具有連接到每個存儲器設備的存儲器設備選擇總線,使得每個存儲器設備可以被單獨地通電。針對最小功耗的重新排序的存儲器映射圖500可以分配N數量的存儲器設備的存儲器位置,使得長度為N字節的一整個數據突發可以寫入到存儲器設備中的一個存儲器設備的N數量的存儲器位置或者從該N數量的存儲器位置讀取。在這方面中,僅一個存儲器設備可以被通電以存儲或輸出所有I字節的數據組塊。
[0062]類似地,如果出現長度為N字節的多個數據突發的事務,則針對最小功耗的重新排序的存儲器映射圖500可以分配N數量的存儲器設備的存儲器位置,使得每個連續的數據突發可以按順序寫入到下一存儲器設備或者從下一存儲器設備讀取。當數據突發的數量超過存儲器設備的數量時,針對最小功耗的重新排序的存儲器映射圖500可以分配存儲器位置,使得連續的數據突發可以按照與前N數量的數據突發相同的順序寫入到存儲器設備的下一組N數量的存儲器位置或者從該存儲器位置讀取。在具有多個數據突發事務的情形下,僅根據針對最小功耗的重新排序的存儲器映射圖500的必要數量的存儲器設備可以被通電。
[0063]如圖5所示,針對最小功耗的方面的重新排序存儲器映射圖500可以被表示為具有多個列的表,其中每一列可以表不存儲器模塊的存儲器設備(存儲器設備0-7)。表的每個單元可以表示相應的存儲器設備內的位置,并且數字可以表示針對最小功耗的重新排序的存儲器映射圖500可以分配存儲器位置以供使用的順序。針對最小功耗的該方面的重新排序的存儲器映射圖500假定處理器處理8字節的數據突發,然而針對最小功耗的重新排序的存儲器映射圖500可以被配置為處理各種數據突發長度。
[0064]重新排序邏輯單元可以對現有的存儲器映射圖(例如,被配置為實現最大性能速度的存儲器映射圖,如上所述)進行重新排序,以創建針對最小功耗的重新排序的存儲器映射圖500。如圖所示,可以向每個存儲器設備分配八個I字節群組或64比特的使用順序。例如,針對最小功耗的重新排序的存儲器映射圖500可以向存儲器設備I分配前八個所分配的I字節存儲器位置以供使用(存儲器位置0-7)。針對最小功耗的重新排序的存儲器映射圖500可以向存儲器設備2分配第二八個8字節存儲器位置以供使用(存儲器位置8-15),以此類推直到存儲器設備7為止。相同的模式可以重復,從而跨越存儲器設備分配連續的8字節的存儲器組塊,直到所有的存儲器位置被分配為止,使得針對最小功耗的重新排序的存儲器映射圖500可以應用于存儲器設備的所有存儲器位置。在一個方面中,針對最小功耗的重新排序的存儲器映射圖500可以應用于存儲器設備的一部分存儲器位置,而不是存儲器設備的所有存儲器位置。
[0065]圖6示出了用于針對延遲容忍過程的多個存儲器設備的示例性重新排序的存儲器映射圖。在一個方面中,針對延遲容忍過程的重新排序的存儲器映射圖600可以由存儲器模塊來支持,所述存儲器模塊具有連接到每個存儲器設備的存儲器設備選擇總線,使得每個存儲器設備可以被單獨地通電。針對延遲容忍過程的重新排序的存儲器映射圖600可以分配N數量的存儲器設備的存儲器位置,使得長度為N字節的數據突發可以寫入到少于N數量的存儲器設備的一個或多個存儲器位置或者從這些存儲器位置讀取。換句話說,數據突發的第一部分(小于整個數據突發)可以被分配給與該部分數據突發的字節數相等數量的存儲器設備的第一存儲器位置。此外,剩余的數據突發可以被分配給相同存儲器設備的第二存儲器位置,直到整個數據突發被分配為止。數據突發的部分有可能足夠小以至于需要相同存儲器設備的較多存儲器位置。在這方面中,僅與數據突發的部分中的字節數相等數量的存儲器設備會被通電以存儲或輸出所有的數據突發。
[0066]類似地,如果出現長度為N字節的多個數據突發,則針對延遲容忍過程的重新排序的存儲器映射圖600可以分配N數量的存儲器設備的存儲器位置,使得每個連續的數據突發可以按順序寫入到少于N數量的存儲器設備的下一存儲器位置或者從該存儲器位置讀取。當數據突發超過跨越少于N數量的存儲器設備的第一群組的存儲器位置(例如,跨越少于N數量的存儲器設備的至少八個存儲器位置)的容量時,針對延遲容忍過程的重新排序的存儲器映射圖600可以分配存儲器位置,使得連續的數據突發可以寫入到跨越下一群組的少于N數量的存儲器設備的下一群組的存儲器位置,或者從該存儲器位置讀取。在具有多個數據突發事務的情形下,僅根據針對延遲容忍過程的重新排序的存儲器映射圖600的必要數量的存儲器設備會被通電。
[0067]如圖6所示,針對延遲容忍過程的方面的重新排序的存儲器映射圖600可以被表示為與圖5中的表類似的表。針對延遲容忍過程的該方面的重新排序的存儲器映射圖600假定處理器處理8字節的數據突發;然而,針對延遲容忍過程的重新排序存儲器映射圖600可以被配置為處理各種數據突發長度。
[0068]重新排序邏輯單元可以對現有的存儲器映射圖(例如,被配置為實現最大性能速度的存儲器映射圖,如上所述)進行重新排序,以創建針對延遲容忍過程的重新排序的存儲器映射圖600。如圖所示,可以向四個存儲器設備的群組分配八個I字節群組或64比特的使用順序。例如,針對延遲容忍過程的重新排序的存儲器映射圖600可以向存儲器設備I分配第一分配的I字節存儲器位置以供使用(存儲器位置O),向存儲器設備2分配第二I字節存儲器位置以供使用(存儲器位置I),以此類推直到存儲器設備3為止。針對延遲容忍過程的重新排序的存儲器映射圖600可以以相同方式向相同的存儲器設備(存儲器設備0-3)分配直至存儲器位置31。針對延遲容忍過程的重新排序的存儲器映射圖600可以以相同方式對存儲器設備4-7繼續,從而分配存儲器位置32-63。相同的模式可以重復,從而跨越存儲器設備分配連續的32字節的存儲器,直到所有的存儲器設備被分配為止,使得針對延遲容忍過程的重新排序的存儲器映射圖600可以應用于存儲器設備的所有存儲器位置。在一個方面中,針對延時容忍過程的重新排序的存儲器映射圖600可以應用于存儲器設備的一部分存儲器位置,而不是存儲器設備的所有存儲器位置。
[0069]圖7示出了到多個存儲器設備的多個存儲器映射圖的示例應用。在一個方面中,計算設備可以跨越多個存儲器設備118應用多個存儲器映射圖。每個存儲器映射圖可以應用于每個存儲器設備118的某一范圍的存儲器位置。在一個方面中,存儲器映射圖跨越針對相應的存儲器映射圖的每個存儲器設備118應用于相等范圍的存儲器位置。例如,針對最小功耗的重新排序的存儲器映射圖500可以跨越每個存儲器設備118的存儲器位置的上部(其與每個存儲器設備118內的上部物理地址相對應)來應用。針對延遲容忍過程的重新排序的存儲器映射圖600可以跨越每個存儲器設備的存儲器位置的中間范圍(其與每個存儲器設備118內的在每個存儲器設備118內的上部與下部物理地址之間的物理地址范圍相對應)來應用。針對最大性能速度的重新排序的存儲器映射圖700可以跨越每個存儲器設備118的存儲器位置的底部范圍(其與每個存儲器設備118內的下部物理地址相對應)來應用。在各個方面中,可以跨越每個存儲器設備118的存儲器位置的不同范圍來應用重新排序的存儲器映射圖500、600、700的不同組合。跨越每個存儲器設備118的存儲器位置的不同范圍來應用類似的重新排序的存儲器映射圖可以是可能的。例如,可以跨越每個存儲器設備118的存儲器位置的多個范圍來應用針對最小功耗的重新排序的存儲器映射圖500和/或針對最大性能速度的重新排序的存儲器映射圖700。此外,可以跨越每個存儲器設備118的存儲器位置的多個范圍來應用針對延遲容忍過程的重新排序的存儲器映射圖600的相同和/或不同版本。
[0070]圖8示出了用于針對單個通道內的DRAM空間聯合的存儲器映射圖重新排序的方面方法800。方法800可以在存儲器控制器或類似組件內實現,或者在計算設備的各種組件內實現,包括處理器、如本文所描述的存儲器控制器包括其組件(例如,重新排序邏輯單元)、以及如本文所描述的存儲器模塊包括其組件。為了便于參考,方法800內的操作被描述為由存儲器控制器結合處理器來執行。對存儲器控制器的引用還包括可以連接到每個單獨的存儲器設備的一個或多個存儲器控制器的組合,所述存儲器設備可以單獨地或組合地運行以執行方面方法。應當要理解的是,對存儲器控制器的引用旨在包含執行方面方法中所涉及的任何以及所有組件。
[0071]在框802中,存儲器控制器和/或處理器可以確定用于重新排序的存儲器映射圖位置。在做出該確定時,存儲器控制器和/或處理器可以使用多個因素。例如,處理器可以能夠分析計算設備的功率狀態、熱狀態或活動狀態,并將該狀態與門限水平進行比較。當計算設備的狀態相對于它們相應的門限呈現出不利的功率狀態、熱狀態或活動狀態時,處理器可以確定實現一個或多個存儲器設備中的部分或全部的存儲器映射圖,以降低計算設備的功耗和性能速度。取決于處理器可能確定期望的功耗和性能速度的降低量,處理器和/或存儲器控制器可以選擇用于重新排序的一個或多個不同范圍的存儲器位置。
[0072]作為用于確定用于重新排序的存儲器位置的因素的另一個示例,處理器可以針對處理器上執行的軟件的延遲容限(即,應用能夠容忍的數據讀取和/或寫入操作的延遲量)來對該軟件進行分析。在處理器上所執行的一個或多個軟件程序被確定為是延遲容忍(即,軟件能夠容忍存儲器存取事務中的延遲)的情況下,對于不需要當前性能水平的過程,處理器可以確定以性能速度為代價來使用降低功耗的重新排序存儲器映射圖。在一個方面中,軟件應用可以被配置為向處理器指示軟件是否是延遲容忍的(例如,以標志、API調用、數據標簽等形式),并且處理器可以使用這些指示來配置存儲器控制器對存儲器位置進行重新排序,以性能速度為代價來降低功耗。
[0073]在一個方面中,響應于處理器確定計算設備呈現出有利的功耗水平、熱水平或活動水平,確定處理器上執行的軟件需要更多的性能速度,處理器可以將存儲器控制器配置為使用一個或多個存儲器設備中的部分或全部的存儲器映射圖,以較高的功耗為代價來增加計算設備的性能速度。取決于處理器確定期望的性能速度的增加量,處理器和/或存儲器控制器可以選擇一個或多個不同范圍的存儲器位置以用于對存儲器地址進行重新排序。
[0074]為了對用于所選擇的存儲器位置的存儲器映射圖進行重新排序,存儲器位置必須是空閑的(即,不存儲當前數據)。如果存儲器位置不是空閑的,則計算設備可能丟失對存儲在那些存儲器位置處的數據的跟蹤,并且當數據被請求時可能不能夠取回該數據,從而引起執行軟件中的程序錯誤。在確定框804中,存儲器控制器和/或處理器可以確定所選擇的存儲器位置是否是空閑的。為了做出該確定,存儲器控制器和/或處理器可以檢查與所選擇的存儲器位置相關聯的存儲器設備。當存儲器設備被通電時,存儲器控制器和/或處理器可以確定存儲器位置是活動的。在一個方面中,存儲器控制器和/或處理器還可以檢查查找表,所述查找表可以指示存儲器位置是否在存儲數據。當存儲器位置被確定為在存儲數據時,存儲器控制器和/或處理器可以確定存儲器位置是活動的。當這些情形中沒有情形指示存儲器位置是活動的時候,存儲器控制器和/或處理器可以確定存儲器位置是空閑的。在一個方面中,當存儲器位置是活動的時候,存儲器控制器和/或處理器可以有意地或臨時地暫停新的事務,并等待預先確定的時間段以使先前的事務完成,從而使得存儲器位置變為空閑。當存儲器控制器和/或處理器確定存儲器位置是活動的時候(即,確定框804= “否”),存儲器控制器和/或處理器可以返回到框802中的操作。
[0075]當存儲器控制器和/或處理器確定存儲器位置是空閑的時候(S卩,確定框802=“是”),在框806中存儲器控制器和/或處理器可以確定要用于數據事務的存儲器映射圖重新排序模式。存儲器映射圖重新排序模式可以從針對最小功耗的重新排序的存儲器映射圖、針對延遲容忍過程的各種重新排序的存儲器映射圖、或者針對最大性能速度的重新排序的存儲器映射圖中選擇,如上所述。存儲器控制器和/或處理器可以選擇存儲器映射圖重新排序模式以降低計算設備的功耗或增加計算設備的性能速度。
[0076]在框808中,存儲器控制器可以根據所選擇的存儲器映射圖重新排序模式來對存儲器映射圖進行重新排序。在對存儲器映射圖進行重新排序時,存儲器控制器可以保存或已經保存了存儲器設備的原始存儲器映射圖,以便如果期望的話能夠返回到原始的存儲器映射圖。存儲器控制器可以創建查找表或者某種其它已知的數據結構,通過該查找表或數據結構,存儲器控制器可以向存儲器設備的存儲器位置分配存儲器地址。查找表還可以將重新排序的存儲器映射圖與原始的存儲器映射圖進行相關。通過重新排序的存儲器映射圖與原始的存儲器映射圖的這種相關,存儲器控制器可以在原始的存儲器映射圖中找到處理器提供的存儲器地址,并確定重新排序的存儲器映射圖的相關的存儲器地址。在一個方面中,算法可以與不同的存儲器映射圖重新排序模式相關聯。算法可以用于根據處理器提供的存儲器地址來計算存儲器地址,從而得到相應的重新排序的存儲器地址。
[0077]在框810中,存儲器控制器可以從處理器接收包括處理器提供的存儲器位置的事務指令。如上所述,事務類型和處理器提供的存儲器地址可以被路由到計算設備的適當組件。對于寫入事務,并行格式的數據也可以被適當地路由。在框812中,存儲器控制器可以確定向處理器提供的存儲器位置應用哪些重新排序的存儲器位置。如上所述,可以通過具有處理器所預期的原始存儲器地址的一個或多個數據結構中的數據與重新排序的存儲器映射圖的相應的重新排序的存儲器地址的比較來完成該確定。此外,在上文所描述的方面中,存儲器控制器可以應用與重新排序的存儲器映射圖相關聯的算法,以確定與處理器提供的存儲器地址相對應的重新排序的存儲器地址。
[0078]在框814中,存儲器控制器可以根據所實現的存儲器映射圖重新排序模式來將處理器提供的存儲器地址轉換為重新排序的存儲器地址(其被標識為相應的重新排序的存儲器地址)。在框816中,存儲器控制器可以根據重新排序的存儲器映射圖來激活或通電與所確定的重新排序的存儲器地址相關聯的單獨的存儲器設備。用于重新排序的存儲器映射圖的數據結構不僅可以識別重新排序的存儲器地址及其相應的原始的存儲器地址,而且它們還可以識別與特定的重新排序的和/或原始的存儲器地址或者這些存儲器地址的范圍相對應的存儲器設備。
[0079]如上所述,可以由通過專用設備或芯片選擇線路連接到每個單獨的存儲器設備的每個存儲器控制器或者其組合來執行方面方法。這些專用連接可以在至存儲器模塊及其所有存儲器設備的典型通道內創建子通道。典型通道可以允許對存儲器模塊及其所有存儲器設備的激活和通電。子通道可以允許對存儲器模塊的單獨存儲器設備的單獨激活或通電。存儲器控制器可以向連接到一個特定存儲器設備的專用存儲器設備或芯片選擇線路施加功率,以激活或通電僅所述一個特定存儲器設備。存儲器控制器可以向一個或多個存儲器設備或碼片選擇線路(其均連接到一個特定的存儲器設備)施加功率,以激活或通電一個或多個特定的存儲器設備。存儲器控制器保持對每個子通道的控制,以便根據期望或根據需要來激活或通電、或者去激活(deactivate)或斷電(de-energize)單獨的存儲器設備。通過單獨地控制存儲器設備,計算設備可以使用少于存儲器模塊的所有存儲器設備,從而使用比當所有的存儲器設備是活動的或通電時少的能量。
[0080]在確定框818中,存儲器控制器可以確定事務指令是否是針對寫入事務的。當存儲器控制器確定事務指令是寫入事務時(即,確定框818= “是”),存儲器控制器可以在如下文所描述的圖9的框902中繼續實現到存儲器設備的寫入事務。當存儲器控制器確定事務指令不是寫入事務時(即,確定框818= “否”),存儲器控制器可以在如下文所描述的圖10的框1002中繼續實現從存儲器設備的讀取事務。在一個方面中,存儲器控制器可以確定事務指令是否是針對讀取事務的,并且視情況繼續框902或1002。
[0081]圖9示出了用于將并行格式的數據轉換為串行數據以便寫入到多個存儲器設備中的一個或多個存儲器設備的方面方法900。類似于上文所描述的方法800,該方法900可以由存儲器控制器和/或結合存儲器控制器工作的處理器來實現。當計算設備的處理器發出數據事務指令或請求時,存儲器控制器可以確定事務指令是否確實是用于寫入到計算設備的存儲器的寫入事務指令。當存儲器控制器確定事務指令是針對寫入事務的時候(如在上文參考圖8所描述的確定框818中),在框902中,存儲器控制器可以用信號向存儲器設備緩沖器發送寫入事務指令,所述存儲器設備緩沖器連接到與用于事務的重新排序的存儲器地址相關聯的存儲器設備。用信號通知存儲器設備緩沖器事務是寫入事務可以指示存儲器設備緩沖器的FIFO緩沖器存儲由處理器作為寫入事務的一部分而提供的并行數據。當數據量太多以至于一個存儲器設備無法管理時,可以用信號通知一個以上的存儲器設備緩沖器接收并行數據。
[0082]如上所述,存儲器設備緩沖器可以通過存儲器數據總線的將存儲器控制器與存儲器模塊進行連接的部分來連接到特定的存儲器設備。用于重新排序的存儲器映射圖的數據結構還可以包括連接到與原始存儲器地址和重新排序的存儲器地址相關聯的存儲器設備的存儲器設備緩沖器。
[0083]在框904中,存儲器控制器可以用信號通知連接到被激活的存儲器設備的存儲器設備緩沖器將并行格式的數據轉換為串行數據并將串行數據輸出到存儲器設備。如上所述,存儲器控制器可以用信號通知與重新排序的存儲器位置相關聯的存儲器設備緩沖器的復用器選擇性地從存儲器設備緩沖器的FIFO緩沖器接收數據,并將數據輸出到存儲器設備。存儲器控制器可以用信號通知復用器按照預先確定的順序在復用器的所選擇的輸入端處從FIFO緩沖器接收數據。當復用器在所選擇的輸入端處接收數據時,復用器還可以將數據輸出到存儲器設備。選擇性地接收數據(而不是并行地從FIFO緩沖器接收所有數據并同時或并行地輸出所有的數據)可以允許復用器將數據劃分成預先定義尺寸的分組并一次輸出一個分組。分組均可以如I比特一樣小。按照預先確定的順序接收數據并輸出數據可以將FIFO緩沖器并行接收的數據轉換成復用器串行輸出的數據。因此,通過用于控制到復用器的輸入的選擇信號,計算設備可以控制將并行格式的數據到串行數據的轉換。
[0084]在框906中,存儲器控制器可以用信號通知存儲器模塊或者單獨激活的存儲器設備將串行寫入數據存儲在被激活的存儲器設備上的重新排序的存儲器地址處。如上所述,存儲器控制器可以用信號向存儲器設備發送事務類型(在該示例中,寫入事務類型)和重新排序的存儲器地址。事務類型的信號可以控制存儲器設備應該存儲還是釋放串行數據。在寫入事務信號的情況下,存儲器設備可以存儲串行數據。重新排序的存儲器地址可以向存儲器設備指定存儲器設備的哪些存儲器位置可以被指定用于存儲串行數據的特定部分。
[0085]在確定框908中,存儲器控制器可以確定寫入事務是否完成。當所有的事務數據已經寫入到存儲器設備上的重新排序的存儲器地址時,寫入事務可以完成。當存儲器控制器確定寫入事務完成時(即,確定框908= “是”),存儲器控制器可以結束方法900。當存儲器控制器確定寫入事務未完成時(即,確定框908= “否”),存儲器控制器可以在框902中繼續將并行格式的數據轉換為串行數據并將串行數據寫入到重新排序的存儲器地址。這可能出現在例如當寫入事務是針對大于單個存儲器設備緩沖器可以處理的數據量時。當多個存儲器設備緩沖器接收針對寫入事務的并行數據時,存儲器控制器可以針對每個存儲器設備緩沖器實現方法900,并且在一些情況下,如果寫入事務的數據量大于所有的存儲器設備緩沖器能夠管理的數據量時,針對相同的存儲器設備緩沖器執行方法900—次以上。
[0086]在一個方面中,當存儲器映射圖重新排序模式是針對延遲容忍過程的時,可以針對多個存儲器設備緩沖器并行地運行方法900。
[0087]圖10示出了可以在存儲器控制器中實現的、用于將串行數據轉換為并行格式的數據以便從多個存儲器設備中的一個或多個存儲器設備讀取的方面方法1000。當計算設備的處理器發出事務指令或請求時,存儲器控制器可以確定事務指令是否確實是用于寫入到計算設備的存儲器(或者從該存儲器讀取)的寫入(或讀取)事務指令。當存儲器控制器(如在上文圖8的確定框818中)確定事務指令不是針對寫入事務(或者是針對讀取事務)的時候,在框1002中,存儲器控制器可以用信號向存儲器設備緩沖器發送讀取事務指令,所述存儲器設備緩沖器連接到與用于事務的重新排序的存儲器地址相關聯的存儲器設備。用信號通知存儲器設備緩沖器事務是讀取事務可以指示存儲器設備緩沖器的FIFO緩沖器并行地存儲由存儲器設備提供的串行數據(如由解復用器作為讀取事務的一部分而轉換的)。當數據存儲在多個存儲器設備上時,可以用信號通知一個以上的存儲器設備緩沖器,使得所有的串行數據由與存儲器設備相關聯的存儲器設備緩沖器接收。
[0088]在框1004中,存儲器控制器可以用信號通知存儲器模塊或者單獨被激活的存儲器設備從被激活的存儲器設備上的重新排序的存儲器地址釋放串行讀取數據。如上所述,存儲器控制器可以用信號向存儲器設備發送事務類型(在該示例中,讀取事務類型)和重新排序的存儲器地址。事務類型的信號可以控制存儲器設備應該存儲還是釋放串行數據。在讀取事務信號的情況下,存儲器設備可以釋放串行數據。重新排序的存儲器地址可以向存儲器設備指定存儲器設備的哪些存儲器位置可以被指定為存儲串行數據的特定部分。
[0089]在框1006中,存儲器控制器可以用信號通知連接到被激活的存儲器設備的存儲器設備緩沖器將從存儲器設備接收的串行數據轉換為并行格式的數據,并將并行格式的數據輸出到處理器。如上所述,存儲器控制器可以用信號通知FIFO緩沖器存儲從解復用器接收的數據。計算設備可以用信號通知連接到與重新排序的存儲器位置相關聯的存儲器設備緩沖器的解復用器的存儲器設備從重新排序的存儲器位置釋放數據。存儲器控制器還可以用信號通知解復用器按照預先確定的順序選擇性地將數據輸出到存儲器設備緩沖器的FIFO緩沖器。存儲器控制器可以用信號通知存儲器設備將串行數據釋放到解復用器,其中可以在解復用器的輸入端處接收串行數據。
[0090]當解復用器在輸入端處接收串行數據時,存儲器控制器還可以用信號通知解復用器選擇性地將數據輸出到FIFO緩沖器。按照預先確定的順序選擇性輸出數據(而不是將所有的數據串行地輸出到FIFO緩沖器)可以允許解復用器通過一次一個輸入地將數據輸出到FIFO緩沖器的每個輸入端來對FIFO緩沖器中的數據進行排序。對數據的接收和輸出可以將解復用器所接收的串行數據轉換為存儲在FIFO緩沖器上的并行格式的數據。當完成將數據群組存儲在FIFO緩沖器上時,存儲器控制器可以將數據從FIFO緩沖器并行地輸出到處理器。因此,通過用于控制來自解復用器的輸出的選擇信號,存儲器控制器控制串行數據到并行數據的轉換。
[0091]在確定框1008中,存儲器控制器可以確定讀取事務是否完成。當針對事務所請求的所有數據已經被從存儲器設備上的重新排序的存儲器地址讀取時,讀取事務可以完成。當存儲器控制器確定讀取事務完成時(即,確定框1008= “是”),存儲器控制器可以結束方法1000。當存儲器控制器確定讀取事務未完成時(S卩,確定框1008=“否”),存儲器控制器可以在框1002中繼續從重新排序的存儲器地址讀取串行數據并將串行數據轉換為并行數據。這可能出現在例如讀取事務是針對大于單個存儲器設備緩沖器可以處理的數據量時。當多個存儲器設備緩沖器接收針對讀取事務的串行數據時,存儲器控制器可以針對每個存儲器設備緩沖器實現方法1000,并且在一些情況下,如果讀取事務的數據量大于所有的存儲器設備緩沖器能夠管理的數據量時,可以針對相同的存儲器設備緩沖器實現方法1000—次以上。
[0092]在一方面中,當存儲器映射圖重新排序模式是針對延遲容忍過程的時候,可以針對多個存儲器設備緩沖器并行地運行方法1000。
[0093]圖11示出了可以在存儲器控制器或其它組件中實現的、用于將并行格式的數據轉換為串行數據以便寫入到多個存儲器設備中的一個或多個存儲器設備的方面方法1100。當計算設備的處理器發出寫入事務指令或請求時,在框1102中,存儲器控制器的數據緩沖器可以從重新排序邏輯單元接收寫入事務信號。如上所述,寫入事務信號可以用信號通知數據緩沖器(并更具體而言,用信號通知與寫入事務的重新排序的存儲器地址相關聯的存儲器設備緩沖器的一個或多個FIFO緩沖器)存儲由處理器提供的并行格式的寫入數據。
[0094]在框1104中,數據緩沖器可以從處理器接收并行格式的寫入事務數據。如上所述,處理器可以通過處理器數據總線連接到數據緩沖器和單獨的存儲器設備緩沖器。每個存儲器設備緩沖器可以并行地連接到處理器。因此,處理器在一個突發中輸出的所有數據被輸出到處理器數據總線并有效地輸出到所有的存儲器設備緩沖器。然而,僅接收寫入事務信號的存儲器設備緩沖器被指示存儲來自處理器的并行格式的寫入數據。在一個方面中,對于來自處理器的并行格式的每個寫入數據突發(多達處理器數據總線的最大尺寸),重新排序邏輯單元可以用信號僅通知一個存儲器設備緩沖器將并行格式的寫入數據突發存儲到其FIFO緩沖器。
[0095]在框1106中,數據緩沖器可以從重新排序邏輯單元接收選擇信號,以用于從FIFO緩沖器串行輸入到復用器。在框1108中,數據緩沖器可以將并行格式的數據轉換為串行數據。如上所述,數據緩沖器的復用器可以連接到相同的數據緩沖器的FIFO緩沖器。FIFO緩沖器的輸出端可以連接到復用器的輸入端。復用器可以經由復用器選擇總線來接收選擇信號。由復用器接收的選擇信號可以向復用器指示要輸出復用器的哪個輸入。選擇信號可以指示復用器按順序輸出復用器從FIFO緩沖器的輸出端接收的數據。選擇信號指示復用器輸出該復用器從FIFO緩沖器接收的數據的順序可以將(當從處理器發送數據并存儲在FIFO緩沖器上時)并行格式的數據轉換為復用器輸出的串行數據。
[0096]在框1110中,數據緩沖器可以將由復用器轉換的串行數據通過存儲器數據總線輸出到與數據緩沖器相關聯的存儲器設備。在確定框1112中,存儲器控制器可以確定寫入事務是否完成。出于確定框1112的目的,當在框1110中與寫入事務信號相關聯的所有數據作為串行數據被輸出到存儲器設備時,寫入事務可以結束。在一個方面中,事務可以包括多個數據突發,并且用于一個或多個存儲器設備緩沖器的數據緩沖器可以接收更多的寫入數據。當存儲器控制器確定寫入事務完成時(即,確定框1112=“是”),存儲器控制器可以結束方法1100。當存儲器控制器確定寫入事務未完成時(S卩,確定框1112=“否”),存儲器控制器可以在框1104中繼續接收剩余的寫入數據。
[0097]圖12示出了用于將串行數據轉換為并行格式的數據以便從多個存儲器設備中的一個或多個存儲器設備讀取的方面方法1200。計算設備(包括處理器、如本文所描述的存儲器控制器包括其組件、以及如本文所描述的存儲器模塊包括其組件)可以實現該方法1200。當計算設備的處理器發出讀取事務指令或請求時,在框1202中,存儲器控制器的數據緩沖器可以從重新排序邏輯單元接收讀取事務信號。如上所述,讀取事務信號可以用信號通知數據緩沖器(更具體地說,用信號通知與讀取事務的重新排序的存儲器地址相關聯的存儲器設備緩沖器的一個或多個FIFO緩沖器)將存儲器設備所提供的并行格式的讀取數據存儲為串行數據,并由解復用器轉換為并行格式的數據。
[0098]在框1204中,數據緩沖器可以從存儲器設備接收串行讀取事務數據。如上所述,存儲器設備可以通過存儲器數據總線連接到數據緩沖器和單獨的存儲器設備緩沖器。每個存儲器設備緩沖器可以連接到相關聯的一個或多個存儲器設備。因此,由存儲器設備輸出的所有串行數據被輸出到存儲器數據總線并直接輸出到相關聯的存儲器設備緩沖器。在一個方面中,存儲器設備可以并行地連接到多個存儲器設備緩沖器。重新排序邏輯單元可以控制哪些存儲器設備緩沖器接收讀取事務信號和解復用器選擇信號(其指示存儲器設備緩沖器并行地存儲來自存儲器設備的串行讀取數據)。在一個方面中,對于來自存儲器設備的每個串行讀取數據突發(多達處理器數據總線的最大尺寸),重新排序邏輯單元可以用信號通知僅一個存儲器設備緩沖器以并行格式將串行讀取數據的突發存儲到其FIFO緩沖器。
[0099]在框1206中,數據緩沖器可以從重新排序邏輯單元接收選擇信號以便從解復用器并行地輸出到FIFO緩沖器。在框1208中,數據緩沖器可以將串行數據轉換為并行數據。如上所述,數據緩沖器的解復用器可以連接到相同的數據緩沖器的FIFO緩沖器。解復用器的輸出端可以連接到FIFO緩沖器的輸入端。解復用器可以經由解復用器選擇總線來接收選擇信號。解復用器接收的選擇信號向解復用器指示在哪個輸出端上輸出從存儲器設備接收到的輸入。選擇信號可以指示解復用器將其接收的數據按順序輸出到FIFO緩沖器的輸入端。選擇信號指示復用器輸出復用器從存儲器設備接收的數據的順序可以將當從存儲器設備發送時的串行數據轉換為FIFO緩沖器所保存的并行格式的數據并輸出到處理器。
[0100]在框1210中,數據緩沖器可以將由解復用器轉換的并行讀取數據通過處理器數據總線輸出到處理器。在確定框1212中,存儲器控制器可以確定讀取事務是否完成。出于確定框1212的目的,當框1210中與讀取事務信號相關聯的所有數據作為并行格式的數據被輸出到處理器時,讀取事務可以結束。在一個方面中,事務可以包括多個數據突發,并且用于一個或多個存儲器設備緩沖器的數據緩沖器可以接收更多的數據。當存儲器控制器確定讀取事務完成時(即,確定框1212= “是”),存儲器控制器可以結束方法1200。當存儲器控制器確定讀取事務未完成時(即,確定框1212= “否”),存儲器控制器可以在框1204中繼續接收剩余的讀取數據。
[0101]圖13示出了適合于與各個方面一起使用的示例移動設備。移動設備1300可以包括處理器1302,所述處理器1302耦合到觸摸屏控制器1304和內部存儲器1306。處理器1302可以是被指定用于通用或專用處理任務的一個或多個多核集成電路。內部存儲器1306可以是易失性或非易失性存儲器,并且還可以是安全和/或加密存儲器,或者不安全和/或未加密存儲器,或者其任意組合。可以利用的存儲器類型的示例包括但不限于DDR、LPDDR、GDDR、WIDE1、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM、以及嵌入式DRAM。觸摸屏控制器1304和處理器1302還可以耦合到觸摸屏面板1312,諸如電阻感測觸摸屏、電容感測觸摸屏、紅外線感測觸摸屏等。此外,計算設備1300的顯示器不需要具有觸摸屏能力。
[0102]移動設備1300可以具有一個或多個無線信號收發機1308(例如,Peanut、藍牙、紫蜂(Zigbee)、W1-F1、RF無線電裝置)和天線1310以用于發送和接收通信,其中無線信號收發機1308和天線1310彼此耦合和/或耦合到處理器1302。收發機1308和天線1310可以與上面提到的電路一起使用,以實現各種無線傳輸協議棧和接口。移動設備1300可以包括蜂窩網絡無線調制解調器芯片1316,其經由蜂窩網絡實現通信并耦合到處理器。
[0103]移動設備1300可以包括耦合到處理器1302的外圍設備連接接口 1318。外圍設備連接接口 1318可以單獨地被配置為接受一種類型的連接,或者可以被配置為接受各種類型的物理和通信連接(公共的或專用的),諸如USB、火線(FireWire)、雷電(Thunderbolt)或者PCIe。外圍設備連接接口 1318還可以耦合到類似配置的外圍設備連接端口(未示出)。
[0104]移動設備1300還可以包括用于提供音頻輸出的揚聲器1314。移動設備1300還可以包括由塑料、金屬或各材料的組合構造的殼體1320,以用于包含本文所論述的所有或一些組件。移動設備1300可以包括耦合到處理器1302的電源1322,諸如一次性或可再充電電池。可再充電電池還可以耦合到外圍設備連接端口,以便從移動設備1300的外部的源接收充電電流。移動設備1300還可以包括物理按鈕1324以用于接收用戶輸入。移動設備1300還可以包括電源按鈕1326以用于開啟和關閉移動設備1300。
[0105]上文所描述的各個方面還可以在各種移動設備內實現,諸如圖14中所示出的膝上型計算機1400。許多膝上型計算機包括觸摸板觸摸表面1417(其充當計算機的指向設備),并且因此可以接收拖動、滾動和輕擊(flick)手勢,類似于在裝備有觸摸屏顯示器以及上文所描述的計算設備上實現的那些手勢。膝上型計算機1400將典型地包括處理器1411,所述處理器1411耦合到易失性存儲器1412和大容量非易失性存儲器,諸如閃存的磁盤驅動器1413。此外,計算機1400可以具有一個或多個天線1408以用于發送和接收電磁輻射,所述天線1408可以連接到與處理器1411耦合的無線數據鏈路和/或蜂窩電話收發機1416。計算機1400還可以包括耦合到處理器1411的軟盤驅動器1414和壓縮盤(CD)驅動器1415。在筆記本配置中,計算機殼體包括均耦合到處理器1411的觸摸板1417、鍵盤1418和顯示器1419。計算設備的其它配置可以包括如公知的耦合到處理器(例如,經由USB輸入)的計算機鼠標或軌跡球,所述計算機鼠標或軌跡球還可以結合各個方面來使用。
[0106]用于在可編程處理器上執行以便實現各個方面的操作的計算機程序代碼或“程序代碼”可以用高級編程語言(諸如,C、C++、C#、Smal I talk、Java、JavaScript、Vi sual Basic、結構化查詢語言(例如,Transact-SQL)、Perl)來編寫,或者用各種其它編程語言來編寫。如在本申請中使用的,存儲在計算機可讀存儲介質上的程序代碼或程序可以指代機器語言代碼(諸如目標代碼),其格式可被處理器理解。
[0107]許多計算設備操作系統內核被組織成用戶空間(在其中運行非特權代碼)和內核空間(在其中運行特權代碼)。在Android和其它通用公共許可(GPL)環境中的這種分離是特別重要的,在Android和GPL環境中,作為內核空間的一部分的代碼必須是經GPL許可的,而在用戶空間中運行的代碼可以不是經GPL許可的。應當要理解的是,除非另外明確聲明,否則這里所論述的各種軟件組件/模塊可以在內核空間或者用戶空間中實現。
[0108]提供前述的方法描述和過程流程圖僅作為說明性的示例,并非旨在要求或暗示必須按照所給出的順序來執行各個方面的操作。如本領域技術人員將意識到的,可以按照任何順序來執行前述方面中的操作順序。諸如“此后”、“然后”、“接下來”之類的詞語并非旨在對操作順序進行限制;這些詞語僅用于引導讀者貫穿對方法的描述。此外,以單數形式對權利要求要素的任何引用,例如使用冠詞“一”、“一個”或“這個”不應解釋為將要素限制為單數。
[0109]結合各個方面所描述的各種說明性的邏輯框、模塊、電路和算法操作可以實現為電子硬件、計算機軟件或者二者的組合。為了清楚地示出硬件和軟件的這種可互換性,上面已經對各種說明性的組件、框、模塊、電路和操作圍繞其功能進行了一般性描述。至于這種功能是實現為硬件還是軟件,這取決于特定的應用和施加在整體系統上的設計約束。技術人員可以針對每個特定應用以不同的方式來實現所描述的功能,但是這種實現決策不應當解釋為致使偏離本發明的范圍。
[0110]利用被設計為執行本文所描述的功能的通用處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現場可編程門陣列(FPGA)或者其它可編程邏輯器件、分立門或晶體管邏輯器件、分立硬件組件或者其任意組合,可以實現或執行用于實現結合本文所公開的各方面所描述的各種說明性的邏輯單元、邏輯框、模塊和電路的硬件。通用處理器可以是微處理器,但在替代方案中,該處理器也可以是任何常規的處理器、控制器、微控制器或狀態機。處理器還可以實現為計算設備的組合,例如,DSP和微處理器的組合、多個微處理器、一個或多個微處理器與DSP內核的結合,或者任何其它此種配置。替代地,可以由特定于給定功能的電路來執行一些操作或方法。
[0111]在一個或多個方面中,所描述的功能可以在硬件、軟件、固件或其任意組合中實現。如果在軟件中實現,則所述功能可以作為一條或多條指令或代碼存儲在非暫時性計算機可讀介質或者非暫時性處理器可讀介質上。本文所公開的方法或算法的操作可以體現在處理器可執行軟件模塊中,所述處理器可執行軟件模塊可以駐留在非暫時性計算機可讀或處理器可讀存儲介質上。非暫時性計算機可讀或處理器可讀存儲介質可以是可以由計算機或處理器存取的任何存儲介質。通過舉例而非限制性的方式,這種非暫時性計算機可讀或處理器可讀介質可以包括RAM、R0M、EEPR0M、FLASH存儲器、CD-ROM或其它光盤存儲、磁盤存儲或其它磁存儲設備,或者可用于存儲具有指令或數據結構形式的期望的程序代碼并且可以由計算機存取的任何其它介質。如本文所使用的,磁盤(disk)和光盤(disc)包括壓縮光盤(CD)、激光光盤、光盤、數字多功能光盤(DVD)、軟盤和藍光光盤,其中磁盤通常磁性地復制數據,而光盤利用激光來光學地復制數據。上面各項的組合也包括在非暫時性計算機可讀和處理器可讀介質的范圍內。此外,方法或算法的操作可以作為代碼和/或指令的一個或任意組合或集合駐留在可以被并入計算機程序產品中的非暫時性處理器可讀介質和/或計算機可讀介質上。
[0112]提供對所公開的方面的以上描述是為了使得本領域任何技術人員能夠實施或使用本發明。對這些方面的各種修改對于本領域技術人員來說將是顯而易見的,并且在不偏離本發明的精神或范圍的情況下,本文所定義的通用原理可以應用于其它方面。因此,本發明并非旨在受限于本文所示出的方面,而是旨在符合與所附權利要求以及本文所公開的原理和新穎性特征相一致的最廣的范圍。
【主權項】
1.一種用于使用存儲器模塊的多個存儲器設備的方法,其包括: 對所述多個存儲器設備的存儲器映射圖進行重新排序從而得到重新排序的存儲器映射圖,使得存儲器事務指令的數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備; 接收與所述存儲器事務指令相關聯的至少一個存儲器地址; 根據所述重新排序的存儲器映射圖,將所述至少一個存儲器地址轉換為至少一個重新排序的存儲器地址;以及 激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備,以針對所述數據突發執行所述存儲器事務指令,其中,所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備與根據所述重新排序的存儲器映射圖的所述至少一個重新排序的存儲器地址相關聯。2.根據權利要求1所述的方法,其中,激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備以針對所述數據突發執行所述存儲器事務指令包括:單獨地激活所述比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的每個存儲器設備。3.根據權利要求1所述的方法,其中: 對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備包括:對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用所述多個存儲器設備中的一個存儲器設備,以及 激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備以針對所述數據突發執行所述存儲器事務指令包括:激活所述多個存儲器設備中的一個存儲器設備,以針對所述數據突發執行所述存儲器事務指令。4.根據權利要求1所述的方法,其中,對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備包括:對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發多次使用所述存儲器模塊的所述多個存儲器設備中的至少一個存儲器設備。5.根據權利要求1所述的方法,還包括: 接收針對寫入事務的所述存儲器事務指令,所述存儲器事務指令包括所述數據突發以及用于寫入到所述多個存儲器設備的所述至少一個存儲器地址,其中,所述數據突發包括并行的寫入數據; 將所述數據突發的至少一部分轉換為串行寫入數據以用于寫入到所述重新排序的存儲器地址;以及 將所轉換的寫入數據輸出到與所述重新排序的存儲器地址相關聯的、所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的至少一個存儲器設備。6.根據權利要求1所述的方法,還包括: 接收針對讀取事務的所述存儲器事務指令,所述存儲器事務指令包括用于從所述多個存儲器設備中讀取的所述至少一個存儲器地址; 從與所述重新排序的存儲器地址相關聯的、所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的至少一個存儲器設備接收所述數據突發,其中,所述數據突發的至少一部分包括串行讀取數據; 將所述數據突發轉換為并行格式的讀取數據,使得所述并行格式的讀取數據被排序為符合所述存儲器事務指令的存儲器地址;以及將所述并行格式的讀取數據輸出到處理器。7.根據權利要求1所述的方法,其中,對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備包括:使用不同的重新排序模式來對所述多個存儲器設備的所述存儲器映射圖的部分進行重新排序,其中,所述存儲器映射圖的至少一部分被重新排序,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備。8.—種裝置,其包括: 存儲器控制器,用于使用存儲器模塊的多個存儲器設備,其中,所述存儲器控制器被配置為執行包括以下各項的操作: 對所述多個存儲器設備的存儲器映射圖進行重新排序從而得到重新排序的存儲器映射圖,使得存儲器事務指令的數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備; 接收與所述存儲器事務指令相關聯的至少一個存儲器地址; 根據所述重新排序的存儲器映射圖,將所述至少一個存儲器地址轉換為至少一個重新排序的存儲器地址;以及 激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備,以針對所述數據突發執行所述存儲器事務指令,其中,所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備與根據所述重新排序的存儲器映射圖的所述至少一個重新排序的存儲器地址相關聯。9.根據權利要求8所述的裝置,其中,所述存儲器控制器被配置為執行操作,使得激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備以針對所述數據突發執行所述存儲器事務指令包括:單獨地激活所述比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的每個存儲器設備。10.根據權利要求8所述的裝置,其中,所述存儲器控制器被配置為執行操作,使得: 對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備包括:對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用所述多個存儲器設備中的一個存儲器設備,以及 激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備以針對所述數據突發執行所述存儲器事務指令包括:激活所述多個存儲器設備中的一個存儲器設備,以針對所述數據突發執行所述存儲器事務指令。11.根據權利要求8所述的裝置,其中,所述存儲器控制器被配置為執行操作,使得對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備包括:對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發多次使用所述存儲器模塊的所述多個存儲器設備中的至少一個存儲器設備。12.根據權利要求8所述的裝置,其中,所述存儲器控制器還被配置為執行包括以下各項的操作: 接收針對寫入事務的所述存儲器事務指令,所述存儲器事務指令包括所述數據突發以及用于寫入到所述多個存儲器設備的所述至少一個存儲器地址,其中,所述數據突發包括并行的寫入數據; 將所述數據突發的至少一部分轉換為串行寫入數據以用于寫入到所述重新排序的存儲器地址;以及 將所轉換的寫入數據輸出到與所述重新排序的存儲器地址相關聯的、所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的至少一個存儲器設備。13.根據權利要求8所述的裝置,其中,所述存儲器控制器還被配置為執行包括以下各項的操作: 接收針對讀取事務的所述存儲器事務指令,所述存儲器事務指令包括用于從所述多個存儲器設備中讀取的所述至少一個存儲器地址; 從與所述重新排序的存儲器地址相關聯的、所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的至少一個存儲器設備接收所述數據突發,其中,所述數據突發的至少一部分包括串行讀取數據; 將所述數據突發轉換為并行格式的讀取數據,使得所述并行格式的讀取數據被排序為符合所述存儲器事務指令的存儲器地址;以及 將所述并行格式的讀取數據輸出到處理器。14.根據權利要求8所述的裝置,其中,所述存儲器控制器被配置為執行操作,使得對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備包括:使用不同的重新排序模式來對所述多個存儲器設備的所述存儲器映射圖的部分進行重新排序,其中,所述存儲器映射圖的至少一部分被重新排序,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備。15.—種用于使用存儲器模塊的多個存儲器設備的裝置,其包括: 用于對所述多個存儲器設備的存儲器映射圖進行重新排序從而得到重新排序的存儲器映射圖,使得存儲器事務指令的數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備的單元; 用于接收與所述存儲器事務指令相關聯的至少一個存儲器地址的單元; 用于根據所述重新排序的存儲器映射圖,將所述至少一個存儲器地址轉換為至少一個重新排序的存儲器地址的單元;以及 用于激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備,以針對所述數據突發執行所述存儲器事務指令的單元,其中,所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備與根據所述重新排序的存儲器映射圖的所述至少一個重新排序的存儲器地址相關聯。16.根據權利要求15所述的裝置,其中,用于激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備以針對所述數據突發執行所述存儲器事務指令的單元包括:用于單獨地激活所述比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的每個存儲器設備的單元。17.根據權利要求15所述的裝置,其中: 用于對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備的單元包括:用于對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用所述多個存儲器設備中的一個存儲器設備的單元,以及 用于激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備以針對所述數據突發執行所述存儲器事務指令的單元包括:用于激活所述多個存儲器設備中的一個存儲器設備,以針對所述數據突發執行所述存儲器事務指令的單元。18.根據權利要求15所述的裝置,其中,用于對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備的單元包括:用于對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發多次使用所述存儲器模塊的所述多個存儲器設備中的至少一個存儲器設備的單元。19.根據權利要求15所述的裝置,還包括: 用于接收針對寫入事務的所述存儲器事務指令的單元,所述存儲器事務指令包括所述數據突發以及用于寫入到所述多個存儲器設備的所述至少一個存儲器地址,其中,所述數據突發包括并行的寫入數據; 用于將所述數據突發的至少一部分轉換為串行寫入數據以用于寫入到所述重新排序的存儲器地址的單元;以及 用于將所轉換的寫入數據輸出到與所述重新排序的存儲器地址相關聯的、所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的至少一個存儲器設備的單J L ο20.根據權利要求15所述的裝置,還包括: 用于接收針對讀取事務的所述存儲器事務指令的單元,所述存儲器事務指令包括用于從所述多個存儲器設備中讀取的所述至少一個存儲器地址; 用于從與所述重新排序的存儲器地址相關聯的、所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的至少一個存儲器設備接收所述數據突發的單元,其中,所述數據突發的至少一部分包括串行讀取數據; 用于將所述數據突發轉換為并行格式的讀取數據,使得所述并行格式的讀取數據被排序為符合所述存儲器事務指令的存儲器地址的單元;以及 用于將所述并行格式的讀取數據輸出到處理器的單元。21.根據權利要求15所述的裝置,其中,用于對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備的單元包括:用于使用不同的重新排序模式來對所述多個存儲器設備的所述存儲器映射圖的部分進行重新排序的單元,其中,所述存儲器映射圖的至少一部分被重新排序,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備。22.—種其上存儲有處理器可執行指令的非暫時性處理器可讀介質,所述處理器可執行指令被配置為使得存儲器控制器執行包括以下各項的操作: 對存儲器模塊的多個存儲器設備的存儲器映射圖進行重新排序從而得到重新排序的存儲器映射圖,使得存儲器事務指令的數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備; 接收與所述存儲器事務指令相關聯的至少一個存儲器地址; 根據所述重新排序的存儲器映射圖,將所述至少一個存儲器地址轉換為至少一個重新排序的存儲器地址;以及 激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備,以針對所述數據突發執行所述存儲器事務指令,其中,所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備與根據所述重新排序的存儲器映射圖的所述至少一個重新排序的存儲器地址相關聯。23.根據權利要求22所述的非暫時性處理器可讀介質,其中,所存儲的處理器可執行指令被配置為使得所述存儲器控制器執行操作,使得激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備以針對所述數據突發執行所述存儲器事務指令包括:單獨地激活所述比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的每個存儲器設備。24.根據權利要求22所述的非暫時性處理器可讀介質,其中,所存儲的處理器可執行指令被配置為使得所述存儲器控制器執行操作,使得: 對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備包括:對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用所述多個存儲器設備中的一個存儲器設備,以及 激活比所述多個存儲器設備中的全部存儲器設備少的存儲器設備以針對所述數據突發執行所述存儲器事務指令包括:激活所述多個存儲器設備中的一個存儲器設備,以針對所述數據突發執行所述存儲器事務指令。25.根據權利要求22所述的非暫時性處理器可讀介質,其中,所存儲的處理器可執行指令被配置為使得所述存儲器控制器執行操作,使得對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備包括:對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發多次使用所述存儲器模塊的所述多個存儲器設備中的至少一個存儲器設備。26.根據權利要求22所述的非暫時性處理器可讀介質,其中,所存儲的處理器可執行指令被配置為使得所述存儲器控制器執行還包括以下各項的操作: 接收針對寫入事務的所述存儲器事務指令,所述存儲器事務指令包括所述數據突發以及用于寫入到所述多個存儲器設備的所述至少一個存儲器地址,其中,所述數據突發包括并行的寫入數據; 將所述數據突發的至少一部分轉換為串行寫入數據以用于寫入到所述重新排序的存儲器地址;以及 將所轉換的寫入數據輸出到與所述重新排序的存儲器地址相關聯的、所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的至少一個存儲器設備。27.根據權利要求22所述的非暫時性處理器可讀介質,其中,所存儲的處理器可執行指令被配置為使得所述存儲器控制器執行還包括以下各項的操作: 接收針對讀取事務的所述存儲器事務指令,所述存儲器事務指令包括用于從所述多個存儲器設備中讀取的所述至少一個存儲器地址; 從與所述重新排序的存儲器地址相關聯的、所激活的比所述多個存儲器設備中的全部存儲器設備少的存儲器設備中的至少一個存儲器設備接收所述數據突發,其中,所述數據突發的至少一部分包括串行讀取數據; 將所述數據突發轉換為并行格式的讀取數據,使得所述并行格式的讀取數據被排序為符合所述存儲器事務指令的存儲器地址;以及 將所述并行格式的讀取數據輸出到處理器。28.根據權利要求22所述的非暫時性處理器可讀介質,其中,所存儲的處理器可執行指令被配置為使得所述存儲器控制器執行操作,使得對所述多個存儲器設備的所述存儲器映射圖進行重新排序從而得到所述重新排序的存儲器映射圖,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備包括:使用不同的重新排序模式來對所述多個存儲器設備的所述存儲器映射圖的部分進行重新排序,其中,所述存儲器映射圖的至少一部分被重新排序,使得所述存儲器事務指令的所述數據突發使用比所述多個存儲器設備中的全部存儲器設備少的存儲器設備。
【文檔編號】G11C7/10GK105849669SQ201480070642
【公開日】2016年8月10日
【申請日】2014年12月12日
【發明人】D·T·全, H-J·羅, M·德羅普
【申請人】高通股份有限公司