CN105849669A - 用于单个通道内的dram空间联合的方法和装置 - Google Patents
用于单个通道内的dram空间联合的方法和装置 Download PDFInfo
- Publication number
- CN105849669A CN105849669A CN201480070642.7A CN201480070642A CN105849669A CN 105849669 A CN105849669 A CN 105849669A CN 201480070642 A CN201480070642 A CN 201480070642A CN 105849669 A CN105849669 A CN 105849669A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory devices
- rearrangement
- devices
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
各方面包括用于重新组织存储器中的数据存储以针对读取或写入事务向比存储器模块的全部存储器设备少的存储器设备通电的设备、系统和方法。所述存储器设备可以连接到单独的选择线路,使得重新排序逻辑单元可以根据重新排序的存储器映射图来确定针对事务要通电的所述存储器设备。所述重新排序逻辑单元可以对存储器地址进行重新排序,使得处理器针对事务而提供的存储器地址根据所述重新排序的存储器映射图被转换为重新排序的存储器地址,而处理器不必改变其存储器地址方案。所述重新排序的存储器映射图可以提供存储器设备的降低的功耗,或者针对延迟容忍过程提供能耗和性能速度的平衡。
Description
背景技术
设备中的存储器覆盖区(密度)正在迅速增加。双数据速率动态随机存取存储器(DDR DRAM)的成本正在减小。操作系统和应用正变得更大、更复杂,并且使用更多的存储器。用户并发地加载和运行程序,同时仍然预期良好的性能和响应性。为了达到高性能,系统需要同时操作的多个并行存储器组件的快速和宽的存储器总线。在这种系统中,在来自CPU的存储器事务期间,每个并行存储器设备被通电(energize)。这得到了以高功耗为代价的高性能。DDR RAM操作可以超过设备的总功耗的15%,不管该设备是移动计算机、智能电话、平板设备、台式计算机还是另一种类型的移动设备。在许多情况下(例如,音频回放),DDR RAM使用比为用户提供适当性能可能需要的功率更多的功率。
发明内容
各个方面的方法和装置提供了用于使用存储器模块的多个存储器设备的电路和方法,所述方法可以包括:对所述多个存储器设备的存储器映射图进行重新排序从而得到重新排序的存储器映射图,使得存储器事务指令的数据突发使用比所述多个存储器设备中的全部存储器设备少的存储器设备;接收与所述存储器事务指令相关联的至少一个存储器地址;根据所述重新排序的存储器映射图,将所述至少一个存储器地址转换为至少一个重新排序的存储器地址;以及激活比所述多个存储器设备中的全部存储器设备少的存储器设备,以针对所述数据突发执行所述存储器事务指令,其中,所激活的比所述多个存储器设备中的全部存储器设备少的存储器设备与根据所述重新排序的存储器映射图的所述至少一个重新排序的存储器地址相关联。
在一个方面方法中,激活比所述多个存储器设备中的全部存储器设备少的存储器设备以针对所述数据突发执行所述存储器事务指令可以包括:单独地激活所述比多个存储器设备中的全部存储器设备少的存储器设备中的每个存储器设备。
在一个方面方法中,对所述多个存储器设备的所述存储器映射图进行重新排序从而得到所述重新排序的存储器映射图,使得用于所述存储器事务指令的所述数据突发使用比所述多个存储器设备中的全部存储器设备少的存储器设备可以包括:对所述多个存储器设备的所述存储器映射图进行重新排序从而得到所述重新排序的存储器映射图,使得用于所述存储器事务指令的所述数据突发使用所述多个存储器设备中的一个存储器设备,并且激活比所述多个存储器设备中的全部存储器设备少的存储器设备以针对所述数据突发执行所述存储器事务指令可以包括:激活所述多个存储器设备中的一个存储器设备,以针对所述数据突发执行所述存储器事务指令。
在一个方面方法中,对所述多个存储器设备的所述存储器映射图进行重新排序从而得到所述重新排序的存储器映射图,使得用于所述存储器事务指令的所述数据突发使用比所述多个存储器设备中的全部存储器设备少的存储器设备可以包括:对所述多个存储器设备的所述存储器映射图进行重新排序从而得到所述重新排序的存储器映射图,使得用于所述存储器事务指令的所述数据突发多次使用所述存储器模块的所述多个存储器设备中的至少一个存储器设备。
一个方面方法还可以包括:接收针对写入事务的存储器事务指令,所述存储器事务指令包括所述数据突发以及用于写入到所述多个存储器设备的所述至少一个存储器地址,其中,所述数据突发可以包括并行地写入数据;将所述数据突发的至少一部分转换为串行写入数据以用于写入到所述重新排序的存储器地址;以及将所转换的写入数据输出到与所述重新排序的存储器地址相关联的、所激活的比所述多个存储器设备中的全部存储器设备少的存储器设备中的至少一个存储器设备。
一个方面方法还可以包括:接收针对读取事务的存储器事务指令,所述存储器事务指令包括用于从所述多个存储器设备中读取的所述存储器地址;从与所述重新排序的存储器地址相关联的、所激活的比所述多个存储器设备中的全部存储器设备少的存储器设备中的至少一个存储器设备接收所述数据突发,其中,所述数据突发的至少一部分可以包括串行读取数据;将所述数据突发转换为并行格式的读取数据,使得所述并行格式的读取数据被排序为符合所述存储器事务指令的存储器地址;以及将所述并行格式的读取数据输出到处理器。
在一个方面的方法中,对所述多个存储器设备的所述存储器映射图进行重新排序从而得到所述重新排序的存储器映射图,使得用于所述存储器事务指令的所述数据突发使用比所述多个存储器设备中的全部存储器设备少的存储器设备可以包括:使用不同的重新排序模式来对所述多个存储器设备的所述存储器映射图的部分进行重新排序,其中,所述存储器映射图的至少一部分被重新排序,使得用于所述存储器事务指令的所述数据突发使用比所述多个存储器设备中的全部存储器设备少的存储器设备。
一个方面包括一种装置,所述装置包括用于使用存储器模块的多个存储器设备的存储器控制器,其中,所述存储器控制器被配置为执行可以包括上文描述的方面方法中的一个或多个方法的操作。
一个方面包括一种用于使用存储器模块的多个存储器设备的装置,所述装置包括用于执行上文描述的方面方法中的一个或多个方法的功能的单元。
一个方面包括其上存储有处理器可执行指令的非暂时性存储器可读介质,所述处理器可执行指令被配置为使得存储器控制器执行上文描述的方面方法中的一个或多个方法的操作。
附图说明
附图(其被并入本文并且构成本说明书的一部分)示出了本发明的示例方面,并且与上文所给出的一般性描述和下文所给出的详细描述一起用于对本发明的特征进行解释。
图1是根据一个方面示出了用于单个通道内的DRAM空间联合(spatialcoalescing)的计算设备的组件框图,其中计算设备在连接到多个存储器控制器的多个存储器模块上具有多个存储器设备,其中每个存储器设备与通道相关联。
图2是根据一个方面示出了用于单个通道内的DRAM空间联合的计算设备的组件框图,其中计算设备在连接到存储器控制器的存储器模块上具有多个存储器设备,其中每个存储器设备与通道相关联。
图3是根据一个方面示出了计算设备的组件框图,其中计算设备被配置为:将并行格式的数据转换为串行数据并且将串行数据写入到多个存储器设备中的一个或多个存储器设备。
图4是根据一个方面示出了计算设备的组件框图,其中计算设备被配置为:从多个存储器设备中的一个或多个存储器设备读取串行数据,并且将串行数据转换为并行格式的数据。
图5是根据一个方面示出了针对最小功耗的多个存储器设备的示例重新排序的存储器映射图的示意图。
图6是根据一个方面示出了针对延迟容忍过程的多个存储器设备的示例重新排序的存储器映射图的示意图。
图7是根据一个方面示出了到多个存储器设备的多个存储器映射图以用于单个通道内的DRAM空间联合的示例引用的示意图。
图8是示出了用于存储器映射图重新排序以用于单个通道内的DRAM空间联合的方面方法的过程流图。
图9是示出了用于将并行格式的数据转换为串行数据以写入到多个存储器设备中的一个或多个存储器设备的方面方法的过程流图。
图10是示出了用于将串行数据转换为并行格式的数据以从多个存储器设备中的一个或多个存储器设备读取的方面方法的过程流图。
图11是示出了用于将并行格式的数据转换为串行数据以写入到多个存储器设备中的一个或多个存储器设备的方面方法的过程流图。
图12是示出了用于将串行数据转换为并行格式的数据以从多个存储器设备中的一个或多个存储器设备中读取的方面方法的过程流图。
图13是示出了适合于与各个方面一起使用的示例移动设备的组件框图。
图14是示出了适合于与各个方面一起使用的示例移动设备的组件框图。
具体实施方式
将参考附图详细描述各个方面。只要有可能,贯穿附图将使用相同的附图标记来指代相同或相似的部件。对特定示例和实现方式进行的引用是出于说明性的目的,并且并非旨在限制本发明或权利要求的范围。
本文中术语“计算设备”和“移动设备”可互换使用,以指代以下各项中的任意一项或全部:蜂窝电话、智能电话、个人或移动多媒体播放器、个人数据助理(PDA)、膝上型计算机、平板计算机、智能本、超级本、掌上计算机、无线电子邮件接收机、具有多媒体互联网功能的蜂窝电话、无线游戏控制器、以及包括存储器和可编程处理器的类似的个人电子设备。虽然各个方面对于具有有限资源的移动计算设备(诸如智能电话)特别有用,但是这些方面通常在实现多个存储器设备和有限的功率预算的任何电子设备中都有用,其中降低存储器设备的功耗可以延长移动计算设备的寿命。
本文使用术语“片上系统”(SoC)来指代通常(但不是排他地)包括硬件内核、存储器和通信接口的一组互连的电子电路。硬件内核可以包括各种不同类型的处理器,诸如通用处理器、中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)、加速处理单元(APU)、辅助处理器、单核处理器以及多核处理器。硬件内核还可以包含其它硬件和硬件组合,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、其它可编程逻辑器件、分立门控逻辑器件、晶体管逻辑器件、性能监控硬件、看门狗(watchdog)硬件以及时间基准。集成电路可以被配置为使得集成电路的组件位于单片半导体材料(诸如硅)上。
本文中术语“通道”和“存储器总线”可互换使用,以指代被配置为在存储器控制器和存储器模块之间发送数据的数据管道。每个存储器模块可以连接到存储器模块的专用通道。例如,具有“x”数量的存储器模块的设备可以具有“x”数量的通道,其中每个通道与一个存储器模块相对应。通道的尺寸可以不同,但为了便于参考,本文论述的示例参考能够并行发送多达64比特的数据的64比特通道。这些示例并非意在进行限制,这是因为各方面可以在不同尺寸的通道中实现。本文中术语“子通道”和“存储器设备总线”可互换使用,以指代当子通道的存储器设备被单独地激活或通电时连接到存储器模块的存储器设备的通道的部分。
术语“事务”指代对所请求尺寸的数据的完整传输。术语“数据突发”指代为完成传输而使用多个连续周期在接口上对数据进行传输。事务可以在单个周期内完成或者可以在多个周期的突发中完成。
为了便于参考,本文所描述的示例假定存储器模块具有八个存储器设备或芯片。在本文所描述的示例中,存储器设备的尺寸可以不同,并且存储器设备的部分可以被划分成1字节或8比特。这些示例并非意在以任何方式进行限制,并且本文公开内容可以应用于具有不同尺寸和配置的存储器模块和存储器设备。此外,本文所描述的其它组件(诸如处理器、存储器控制器、数据缓冲器、设备缓冲器、先进先出(FIFO)缓冲器、复用器、解复用器、重新排序逻辑单元(re-order logic)、以及多个总线和线路中的每个总线和线路)可以替代地被配置为支持存储器模块和存储器设备的不同尺寸和配置。
在常规的存储器读取或写入事务期间,诸如一个存储器模块上的存储器设备群组可以被通电以用于与计算设备的处理器的事务。例如,在常规的存储器设备中,当主存储器包含至少一个存储器模块(该存储器模块具有八个存储器设备,其中每个存储器设备被分段成多个区段,每个区段1字节)时,64比特的读取或写入事务将向所有八个存储器设备通电以存取每个存储器设备的1字节区段。在常规的存储器设备中,由于每个存储器设备可以与另一个存储器设备同时接收数据,因此数据被并行地写入到存储器设备群组,从而实现了对大量数据的快速存取。由于64比特的事务数据可以被并行地写入到存储器设备或者从存储器设备读取,因此存取存储器的这种常规方式是使用被配置用于高性能或速度的存储器映射图来实现的。存取存储器的这种方式还使用大量的能量,这是因为这种方式向用于事务的全部存储器设备通电。然而,当可以并行地读取或写入最大尺寸的数据突发(在该示例中,64比特)时,以这种性能级别来执行存储器读取或写入事务可能是不必要的。当以这种性能级别来执行存储器读取或写入事务的结果是过度使用具有有限功率预算的设备的能量时,以这种性能级别来执行存储器读取或写入事务也可能是不期望的。
各个实施例提供了用于通过为事务内的字节重映射存储器位置以使得数据字节存储在单个存储器设备中而不是并行地跨越多个存储器设备,以比常规方法更加功率高效的方式在计算设备的存储器中存储数据的方法。以此方式来重映射数据突发使得仅单个存储器设备被通电以读取或写入数据,从而节省了原本对于常规的并行存储器存取操作而言为了向全部存储器设备通电而需要的功率。为了便于参考,术语“数据突发”和“数据的突发”可互换使用,以指代在单个时钟周期中从处理器输出以用于存储的数据量或者向存储器请求的数据量。例如,在单个处理器时钟周期中,64比特的处理器可以向存储器发送64比特的数据以用于存储或者向存储器请求64比特的数据,因此对于该这样的处理器的数据突发可以是八字节的数据。在各个实施例中,来自/去往64比特处理器的数据突发中的八字节数据会在存储器映射图中被重新排序以便串行地保存在单个存储器设备中,而不是并行地在八个存储器设备中的每个存储器设备中保存一个字节。
使用重新排序的存储器映射图来对数据突发的存储器地址进行重新排序的过程可以在存储器存取控制器(本文中还被称为“存储器控制器”)内完成,所述存储器存取控制器可以是SoC、存储器设备或者单独的集成电路的组件。方面存储器存取控制器可以包括重新排序逻辑单元,其被配置为执行各个方面的存储器映射。方面方法可以另外地或替代地在作为与存储器存取控制器分离的组件的重新排序逻辑单元中执行。以此方式,可以在不对处理器施加要求的情况下完成对数据突发内的字节进行重新排序的过程。换句话说,处理器可以使用常规的存储器寻址技术来向存储器输出数据并从存储器存取数据,而存储器存取控制器执行对数据突发内的字节进行重新排序的操作,使得这些字节可以以能量高效的方式存储在存储器内。实际上,从处理器输出以用于并行存储在存储器中的数据被存储器存取控制器转换为串行存储器地址,使得数据突发内的字节被串行地存储在单个存储器设备中,而从存储器读取的以串行格式存储在单个设备中的数据突发根据所请求的存储器位置被转换为处理器所预期的并行格式。
在读取和写入操作中,处理器可以针对并行数据来请求对存储器位置的事务。存储器存取控制器可以将处理器所指定的存储器地址与重新排序的存储器映射图进行比较,以确定所请求的数据在特定存储器设备中的重新排序的存储器位置。存储器存取控制器可以在串行和并行格式之间转换数据,使得存储器设备可以处理串行数据并且处理器可以处理并行数据。
在一个方面中,存储器存取控制器可以使用延迟容忍的重新排序的存储器映射图来对数据地址进行重新排序,其中该重新排序的存储器映射图通过分配一个以上但少于所有的存储器设备来处理数据突发,来平衡性能和能量节省。在这方面中,延迟容忍的重新排序的存储器映射图可以使用一些但不是所有存储器设备来处理数据突发,而不是如上面所描述的通过并行地使用所有存储器设备来使存储器存取性能最大化,或者通过使用一个存储器设备处理数据突发来使功耗最小化。以此方式,重新排序的存储器映射图限制了被通电以读取或写入数据突发的存储器设备的数量。该方面表示常规存储器存取技术的高性能但高功率需求与本文所描述的方面所提供的低功率但较低存储器存取之间的折衷。
在一个方面中,存储器存取控制器所使用的重新排序的存储器映射图还可以是存储器映射图的组合。存储器设备的重新排序的存储器映射图可以对存储器设备的不同分段进行划分,以用于从不同的存储器映射图产生的不同的目的。例如,可以配置存储器存取控制器,使得每个存储器设备的第一部分可以用于以最小能量消耗存储串行格式的数据,每个存储器设备的第二部分用于存储针对延迟容限而组织的数据,并且每个存储器设备的第三部分用于存储针对最大性能而组织的数据。存储器存取控制器可以使用存储器映射图来完成对存储器位置的这种分配,所述存储器映射图根据数据结构、延迟容限或者数据的源应用,将数据映射到适当的存储器部分。可以配置存储器存取控制器,使得存储器设备内的存储器地址以各种不同的方式来分配并且与各种不同的重新排序的存储器映射图相关,并且本文所提供的示例并非意在进行限制。
在一个方面中,处理器所请求的事务可以被分配给存储器设备中的与不同的重新排序的存储器映射图相关的不同部分。存储器存取控制器(或者结合存储器存取控制器工作的处理器)可以基于处理器所执行的过程中的或者与该过程相关的指令,来确定最适合于不同的重新排序的存储器映射图的数据事务。可以在作为数据的源或用户的软件应用中所提供的指示(例如,标志、数据标签等)或者通过对软件应用的分析来做出这种确定。
图1根据一方面示出了示例计算设备,该示例计算设备在连接到多个存储器控制器的多个存储器模块上具有多个存储器设备,其中每个存储器设备与通道相关联。计算设备100可以包括SoC 102,SoC 102具有处理器104、静态随机存取存储器(SRAM)106、只读存储器(ROM)108、存储器控制器110、以及存储控制器112,其中每一个连接到至少处理器104。SoC 102可以通过存储控制器112连接到存储设备114。SoC 102可以通过存储器控制器110连接到存储器模块116。存储器模块116可以包括存储器设备118。连接到SoC 102的每个存储器模块116可以与通道相关联,以用于在存储器模块116和SoC 102之间传输数据。存储器模块116的每个存储器设备118也可以与存储器模块116的通道相关联。连接到SoC 102的每个存储器模块116可以通过专用的存储器控制器110来连接,使得每一对存储器模块116和存储器控制器110与相同的通道相关联。图1中的示例示出了方面计算设备100,该计算设备100具有连接到两个存储器模块116(存储器模块—通道0、存储器模块—通道1)的一个SoC 102,每个存储器模块116包含八个存储器设备118(存储器设备0-7),并且每个存储器模块116连接到其专用的存储器控制器110(存储器控制器—通道0、存储器控制器—通道1)。在该示例中,SoC 102、存储器模块116、存储器设备118和存储器控制器110以及因此通道的数量并非意在以任何方式进行限制,并且计算设备100的组件的配置可以改变。
在计算设备100中,处理器104可以做出从各个存储器设备118的特定存储器位置读取数据或向该位置写入数据的事务请求。与所请求的事务的存储器位置相关联的存储器控制器110可以接收数据事务请求,并且控制如何从存储器设备118读取事务请求的数据或者如何向存储器设备118写入事务请求的数据。如下文进一步详细论述的,存储器控制器110可以对存储器设备118的存储器映射图进行重新排序,控制数据的流和格式,并且控制被通电的存储器设备118和用于事务的存储器位置。
图2示出了在连接到存储器控制器110的存储器模块118上具有多个存储器设备的计算设备,其中每个存储器设备与通道相关联。存储器控制器110和存储器模块118可以是与“n”个数量的通道相关联的任意数量的存储器控制器110和存储器模块118的数量“n”。存储器控制器110可以包括数据缓冲器200和重新排序逻辑单元202。计算设备处理器104可以通过事务总线204连接到存储器控制器110,所述事务总线204可以被配置为在处理器104和存储器控制器110之间传输数据、存储器位置或地址、以及事务信号。处理器数据总线206可以在事务总线204和数据缓冲器200之间传输数据。处理器地址总线208可以传输处理器104为事务指定的存储器位置以及指定所请求的事务是读取还是写入事务的事务信号。数据缓冲器控制总线210可以将控制信号从重新排序逻辑单元202传输给数据缓冲器200,所述控制信号可以包括用于在并行格式的数据和串行数据之间转换数据的信号、以及用于从处理器104或存储器设备118接收数据的信号。
数据缓冲器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之间并行地以及串行地传输数据。
重新排序逻辑单元202可以通过存储器地址和控制总线214以及存储器设备选择总线216连接到存储器设备118。存储器地址和控制总线214可以从重新排序逻辑单元202向存储器设备118发送信号,使得存储器设备118将数据存储到特定的存储器位置或者从特定的存储器位置释放数据。存储器设备选择总线216可以从重新排序逻辑单元202向存储器设备118传输信号以向存储器设备118通电。存储器设备选择总线216可以包括用于每个所连接的存储器设备118的专用线路,并且重新排序逻辑单元202可以选择连接到特定存储器设备118的专用线路,其中重新排序逻辑单元202选择向该特定存储器设备118通电。向单独的存储器设备118通电可以在存储器数据总线212上创建子通道。
重新排序逻辑单元202还可以被配置为对存储器设备118的存储器映射图进行重新排序。如上所述,可以对存储器映射图进行重新排序,以使存储器设备118的功耗最小化、使性能速度最大化、和/或平衡功耗和性能速度。重新排序的存储器映射图可以用于将处理器作为事务请求的一部分而提供的存储器位置与存储器设备118的达到重新排序的存储器映射图的目标的、重新排序的存储器位置进行关联。以此方式,处理器104可以请求针对指定存储器位置处的数据的事务,并且存储器控制器110可以根据重新排序的存储器映射图来控制数据写入到存储器设备118的什么地方或者从存储器设备118的什么地方读取数据,而不需要处理器104改变其与事务数据相关联的存储器位置。下文进一步描述了用于对存储器映射图进行重新排序的过程以及如何使用重新排序的存储器映射图。
图3示出了被配置为将并行格式的数据转换为串行数据并将串行数据写入到多个存储器设备中的一个或多个存储器设备的计算设备。数据缓冲器200可以包括存储器设备缓冲器300,存储器设备缓冲器300可以包括先进先出(FIFO)缓冲器302和复用器304。数据缓冲器200可以包括多个存储器设备缓冲器300(存储器设备缓冲器0、存储器设备缓冲器1、至存储器设备缓冲器n)。例如,数据缓冲器200可以包括与连接到数据缓冲器200的存储器设备118(存储器设备0、存储器设备1、至存储器设备n)一样多的存储器设备缓冲器300。
每个存储器设备缓冲器300可以通过存储器数据总线212连接到存储器设备118。在一个方面中,每个存储器设备缓冲器300可以连接到与数据缓冲器200并行连接的所有存储器设备118。在另一个方面中,每个存储器设备缓冲器300可以连接到一个或多个专用的存储器设备118,这些专用的存储器设备118通过存储器数据总线212的一部分或者单独的存储器数据总线212连接到数据缓冲器200。
如上所述,处理器104可以连接到数据缓冲器200,并且通过事务总线204和处理器数据总线206进一步并行地连接到每个存储器设备缓冲器300。在连接到存储器设备缓冲器300时,处理器104还可以与每个存储器设备缓冲器300的FIFO缓冲器302相连接。
重新排序逻辑单元202可以通过存储器地址和控制总线214以及存储器设备选择总线216连接到存储器设备118,并且通过数据缓冲器控制总线210连接到数据缓冲器200,如上所述。重新排序逻辑单元还可以通过FIFO控制总线310连接到每个存储器设备缓冲器300的FIFO缓冲器302,并且通过复用器选择总线308连接到每个存储器设备缓冲器300的复用器304。
在操作中,一种用于执行数据事务的方面方法可以按如下进行。处理器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的每个输入端以此类推。
重新排序逻辑单元202还可以用信号通知所识别的存储器设备缓冲器300的复用器304将复用器304从FIFO缓冲器302接收的数据从并行数据格式转换为串行数据。在一个方面中,复用器304可以是例如64-8路复用器。这表示复用器304包括64个输入端和八个输出端,其中每个输入端和输出端一次可以管理1比特的数据。复用器304可以替代地被标识为8-1路复用器,其具有八个输入端和一个输出端,每个输入端和输出端一次可以管理1字节的数据。复用器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上的所有数据为止。
存储器数据总线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将存储串行数据以及重新排序的存储器位置(在该位置处存储串行数据)。
在一个方面中,重新排序逻辑单元202可以用信号通知数据缓冲器200对写入数据进行局部串行化。重新排序逻辑单元202可以确定处理器提供的存储器位置与针对延迟容忍(delay tolerant)过程的重新排序的存储器映射图或者重新排序的存储器映射图的一部分相关联。取决于针对延迟容忍过程的重新排序的存储器映射图的配置,不同数量的少于“n”个数量的存储器设备118可以用于写入事务。使用少于“n”个数量的存储器设备118来进行写入事务可能需要使用存储器设备118中的至少一个存储器设备118的一个以上的存储器位置。针对延迟容忍过程的重新排序的存储器映射图的配置可以限制并行写入的存储器设备118的数量。因此,重新排序逻辑单元202可以启用与少于“n”个数量的存储器设备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为止。
图4示出了被配置为从多个存储器设备中的一个或多个存储器设备读取串行数据并将串行数据转换为并行数据的计算设备。除了图3中所描述的组件之外,每个存储器设备缓冲器300还可以包括连接到相同或另一FIFO缓冲器302的解复用器400。解复用器400可以以与上文描述的复用器304相同的方式,通过存储器数据总线212连接到存储器设备118。解复用器400还可以通过解复用器选择总线402和数据缓冲器控制总线210连接到重新排序逻辑单元。
在一个方面中,处理器104可以请求读取事务。存储器控制器可以在事务总线204上接收来自处理器104的读取事务请求。存储器控制器可以在处理器地址总线208上将事务信号(在该示例中,读取信号)和处理器提供的存储器位置路由到重新排序逻辑单元202。重新排序逻辑单元202可以将处理器提供的存储器位置与重新排序的存储器映射图进行比较,并确定存储器设备118的哪些重新排序的存储器位置与处理器提供的存储器位置相关联。基于重新排序逻辑单元在处理器提供的存储器位置与重新排序的存储器映射图之间的比较,重新排序逻辑单元202可以识别与重新排序的存储器位置相关联的存储器设备118。重新排序逻辑单元202可以使用存储器设备选择总线216来选择并激活适当的存储器设备118。重新排序逻辑单元202可以选择并启用连接到所选择的存储器设备118的存储器设备选择总线216的线路,以使相关的存储器设备118从待机状态苏醒。重新排序逻辑单元202还可以在存储器地址和控制总线214上向所选择的存储器设备118发送信号,向存储器设备118指示所请求的数据存储在存储器设备118上的重新排序的存储器位置,并向存储器设备118指示将存储在指定的重新排序的存储器位置处的串行数据释放到适当的数据缓冲器300。
存储器设备数据总线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。
重新排序逻辑单元202还可以用信号通知所识别的存储器设备缓冲器300的解复用器400将解复用器400从存储器设备118接收的数据从串行数据转换为并行数据。在一个方面中,解复用器400可以是例如8-64路解复用器。这表示解复用器400包括八个输入端和64个输出端,其中每个输入端和输出端一次可以管理1比特的数据。解复用器400可以替代地被标识为1-8路解复用器,其具有一个输入端和八个输出端,其中每个输入端和输出端一次能够管理1字节的数据。解复用器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按照接收该串行数据的顺序来输出。
重新排序逻辑单元202可以控制解复用器400接收到的串行数据的输出,使得该数据由FIFO缓冲器302以如下方式来接收:当FIFO缓冲器302向处理器104输出数据时,串行数据按照处理器104所请求的顺序转换为并行数据。当FIFO缓冲器302已从解复用器400接收了所有串行数据时,存储器控制器可以将并行地存储在FIFO缓冲器302中的数据通过事务总线204释放到处理器104。
在一个方面中,解复用器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根据处理器提供的存储器位置所预期的。
对于典型的存储器模块,计算设备可以实现针对最大性能速度而配置的存储器映射图。典型的存储器模块可以被配置为处理长度为N字节的数据突发的事务,数据可以被划分成1字节的组块(chunk),每个1字节的组块写入到典型的存储器模块的N数量的存储器设备中的每个存储器设备的一个存储器位置或者从该存储器位置读取。在该典型的存储器模块示例中,N数量的存储器模块中的每个存储器模块必须被通电,以存储或输出1字节的数据组块。例如,8字节事务可以将1字节组块一次性全部发送给八个存储器设备。
图5示出了用于针对最小功耗的多个存储器设备的示例重新排序的存储器映射图。在一个方面中,针对最小功耗的重新排序的存储器映射图500可以由存储器模块来支持,所述存储器模块具有连接到每个存储器设备的存储器设备选择总线,使得每个存储器设备可以被单独地通电。针对最小功耗的重新排序的存储器映射图500可以分配N数量的存储器设备的存储器位置,使得长度为N字节的一整个数据突发可以写入到存储器设备中的一个存储器设备的N数量的存储器位置或者从该N数量的存储器位置读取。在这方面中,仅一个存储器设备可以被通电以存储或输出所有1字节的数据组块。
类似地,如果出现长度为N字节的多个数据突发的事务,则针对最小功耗的重新排序的存储器映射图500可以分配N数量的存储器设备的存储器位置,使得每个连续的数据突发可以按顺序写入到下一存储器设备或者从下一存储器设备读取。当数据突发的数量超过存储器设备的数量时,针对最小功耗的重新排序的存储器映射图500可以分配存储器位置,使得连续的数据突发可以按照与前N数量的数据突发相同的顺序写入到存储器设备的下一组N数量的存储器位置或者从该存储器位置读取。在具有多个数据突发事务的情形下,仅根据针对最小功耗的重新排序的存储器映射图500的必要数量的存储器设备可以被通电。
如图5所示,针对最小功耗的方面的重新排序存储器映射图500可以被表示为具有多个列的表,其中每一列可以表示存储器模块的存储器设备(存储器设备0-7)。表的每个单元可以表示相应的存储器设备内的位置,并且数字可以表示针对最小功耗的重新排序的存储器映射图500可以分配存储器位置以供使用的顺序。针对最小功耗的该方面的重新排序的存储器映射图500假定处理器处理8字节的数据突发,然而针对最小功耗的重新排序的存储器映射图500可以被配置为处理各种数据突发长度。
重新排序逻辑单元可以对现有的存储器映射图(例如,被配置为实现最大性能速度的存储器映射图,如上所述)进行重新排序,以创建针对最小功耗的重新排序的存储器映射图500。如图所示,可以向每个存储器设备分配八个1字节群组或64比特的使用顺序。例如,针对最小功耗的重新排序的存储器映射图500可以向存储器设备1分配前八个所分配的1字节存储器位置以供使用(存储器位置0-7)。针对最小功耗的重新排序的存储器映射图500可以向存储器设备2分配第二八个8字节存储器位置以供使用(存储器位置8-15),以此类推直到存储器设备7为止。相同的模式可以重复,从而跨越存储器设备分配连续的8字节的存储器组块,直到所有的存储器位置被分配为止,使得针对最小功耗的重新排序的存储器映射图500可以应用于存储器设备的所有存储器位置。在一个方面中,针对最小功耗的重新排序的存储器映射图500可以应用于存储器设备的一部分存储器位置,而不是存储器设备的所有存储器位置。
图6示出了用于针对延迟容忍过程的多个存储器设备的示例性重新排序的存储器映射图。在一个方面中,针对延迟容忍过程的重新排序的存储器映射图600可以由存储器模块来支持,所述存储器模块具有连接到每个存储器设备的存储器设备选择总线,使得每个存储器设备可以被单独地通电。针对延迟容忍过程的重新排序的存储器映射图600可以分配N数量的存储器设备的存储器位置,使得长度为N字节的数据突发可以写入到少于N数量的存储器设备的一个或多个存储器位置或者从这些存储器位置读取。换句话说,数据突发的第一部分(小于整个数据突发)可以被分配给与该部分数据突发的字节数相等数量的存储器设备的第一存储器位置。此外,剩余的数据突发可以被分配给相同存储器设备的第二存储器位置,直到整个数据突发被分配为止。数据突发的部分有可能足够小以至于需要相同存储器设备的较多存储器位置。在这方面中,仅与数据突发的部分中的字节数相等数量的存储器设备会被通电以存储或输出所有的数据突发。
类似地,如果出现长度为N字节的多个数据突发,则针对延迟容忍过程的重新排序的存储器映射图600可以分配N数量的存储器设备的存储器位置,使得每个连续的数据突发可以按顺序写入到少于N数量的存储器设备的下一存储器位置或者从该存储器位置读取。当数据突发超过跨越少于N数量的存储器设备的第一群组的存储器位置(例如,跨越少于N数量的存储器设备的至少八个存储器位置)的容量时,针对延迟容忍过程的重新排序的存储器映射图600可以分配存储器位置,使得连续的数据突发可以写入到跨越下一群组的少于N数量的存储器设备的下一群组的存储器位置,或者从该存储器位置读取。在具有多个数据突发事务的情形下,仅根据针对延迟容忍过程的重新排序的存储器映射图600的必要数量的存储器设备会被通电。
如图6所示,针对延迟容忍过程的方面的重新排序的存储器映射图600可以被表示为与图5中的表类似的表。针对延迟容忍过程的该方面的重新排序的存储器映射图600假定处理器处理8字节的数据突发;然而,针对延迟容忍过程的重新排序存储器映射图600可以被配置为处理各种数据突发长度。
重新排序逻辑单元可以对现有的存储器映射图(例如,被配置为实现最大性能速度的存储器映射图,如上所述)进行重新排序,以创建针对延迟容忍过程的重新排序的存储器映射图600。如图所示,可以向四个存储器设备的群组分配八个1字节群组或64比特的使用顺序。例如,针对延迟容忍过程的重新排序的存储器映射图600可以向存储器设备1分配第一分配的1字节存储器位置以供使用(存储器位置0),向存储器设备2分配第二1字节存储器位置以供使用(存储器位置1),以此类推直到存储器设备3为止。针对延迟容忍过程的重新排序的存储器映射图600可以以相同方式向相同的存储器设备(存储器设备0-3)分配直至存储器位置31。针对延迟容忍过程的重新排序的存储器映射图600可以以相同方式对存储器设备4-7继续,从而分配存储器位置32-63。相同的模式可以重复,从而跨越存储器设备分配连续的32字节的存储器,直到所有的存储器设备被分配为止,使得针对延迟容忍过程的重新排序的存储器映射图600可以应用于存储器设备的所有存储器位置。在一个方面中,针对延时容忍过程的重新排序的存储器映射图600可以应用于存储器设备的一部分存储器位置,而不是存储器设备的所有存储器位置。
图7示出了到多个存储器设备的多个存储器映射图的示例应用。在一个方面中,计算设备可以跨越多个存储器设备118应用多个存储器映射图。每个存储器映射图可以应用于每个存储器设备118的某一范围的存储器位置。在一个方面中,存储器映射图跨越针对相应的存储器映射图的每个存储器设备118应用于相等范围的存储器位置。例如,针对最小功耗的重新排序的存储器映射图500可以跨越每个存储器设备118的存储器位置的上部(其与每个存储器设备118内的上部物理地址相对应)来应用。针对延迟容忍过程的重新排序的存储器映射图600可以跨越每个存储器设备的存储器位置的中间范围(其与每个存储器设备118内的在每个存储器设备118内的上部与下部物理地址之间的物理地址范围相对应)来应用。针对最大性能速度的重新排序的存储器映射图700可以跨越每个存储器设备118的存储器位置的底部范围(其与每个存储器设备118内的下部物理地址相对应)来应用。在各个方面中,可以跨越每个存储器设备118的存储器位置的不同范围来应用重新排序的存储器映射图500、600、700的不同组合。跨越每个存储器设备118的存储器位置的不同范围来应用类似的重新排序的存储器映射图可以是可能的。例如,可以跨越每个存储器设备118的存储器位置的多个范围来应用针对最小功耗的重新排序的存储器映射图500和/或针对最大性能速度的重新排序的存储器映射图700。此外,可以跨越每个存储器设备118的存储器位置的多个范围来应用针对延迟容忍过程的重新排序的存储器映射图600的相同和/或不同版本。
图8示出了用于针对单个通道内的DRAM空间联合的存储器映射图重新排序的方面方法800。方法800可以在存储器控制器或类似组件内实现,或者在计算设备的各种组件内实现,包括处理器、如本文所描述的存储器控制器包括其组件(例如,重新排序逻辑单元)、以及如本文所描述的存储器模块包括其组件。为了便于参考,方法800内的操作被描述为由存储器控制器结合处理器来执行。对存储器控制器的引用还包括可以连接到每个单独的存储器设备的一个或多个存储器控制器的组合,所述存储器设备可以单独地或组合地运行以执行方面方法。应当要理解的是,对存储器控制器的引用旨在包含执行方面方法中所涉及的任何以及所有组件。
在框802中,存储器控制器和/或处理器可以确定用于重新排序的存储器映射图位置。在做出该确定时,存储器控制器和/或处理器可以使用多个因素。例如,处理器可以能够分析计算设备的功率状态、热状态或活动状态,并将该状态与门限水平进行比较。当计算设备的状态相对于它们相应的门限呈现出不利的功率状态、热状态或活动状态时,处理器可以确定实现一个或多个存储器设备中的部分或全部的存储器映射图,以降低计算设备的功耗和性能速度。取决于处理器可能确定期望的功耗和性能速度的降低量,处理器和/或存储器控制器可以选择用于重新排序的一个或多个不同范围的存储器位置。
作为用于确定用于重新排序的存储器位置的因素的另一个示例,处理器可以针对处理器上执行的软件的延迟容限(即,应用能够容忍的数据读取和/或写入操作的延迟量)来对该软件进行分析。在处理器上所执行的一个或多个软件程序被确定为是延迟容忍(即,软件能够容忍存储器存取事务中的延迟)的情况下,对于不需要当前性能水平的过程,处理器可以确定以性能速度为代价来使用降低功耗的重新排序存储器映射图。在一个方面中,软件应用可以被配置为向处理器指示软件是否是延迟容忍的(例如,以标志、API调用、数据标签等形式),并且处理器可以使用这些指示来配置存储器控制器对存储器位置进行重新排序,以性能速度为代价来降低功耗。
在一个方面中,响应于处理器确定计算设备呈现出有利的功耗水平、热水平或活动水平,确定处理器上执行的软件需要更多的性能速度,处理器可以将存储器控制器配置为使用一个或多个存储器设备中的部分或全部的存储器映射图,以较高的功耗为代价来增加计算设备的性能速度。取决于处理器确定期望的性能速度的增加量,处理器和/或存储器控制器可以选择一个或多个不同范围的存储器位置以用于对存储器地址进行重新排序。
为了对用于所选择的存储器位置的存储器映射图进行重新排序,存储器位置必须是空闲的(即,不存储当前数据)。如果存储器位置不是空闲的,则计算设备可能丢失对存储在那些存储器位置处的数据的跟踪,并且当数据被请求时可能不能够取回该数据,从而引起执行软件中的程序错误。在确定框804中,存储器控制器和/或处理器可以确定所选择的存储器位置是否是空闲的。为了做出该确定,存储器控制器和/或处理器可以检查与所选择的存储器位置相关联的存储器设备。当存储器设备被通电时,存储器控制器和/或处理器可以确定存储器位置是活动的。在一个方面中,存储器控制器和/或处理器还可以检查查找表,所述查找表可以指示存储器位置是否在存储数据。当存储器位置被确定为在存储数据时,存储器控制器和/或处理器可以确定存储器位置是活动的。当这些情形中没有情形指示存储器位置是活动的时候,存储器控制器和/或处理器可以确定存储器位置是空闲的。在一个方面中,当存储器位置是活动的时候,存储器控制器和/或处理器可以有意地或临时地暂停新的事务,并等待预先确定的时间段以使先前的事务完成,从而使得存储器位置变为空闲。当存储器控制器和/或处理器确定存储器位置是活动的时候(即,确定框804=“否”),存储器控制器和/或处理器可以返回到框802中的操作。
当存储器控制器和/或处理器确定存储器位置是空闲的时候(即,确定框802=“是”),在框806中存储器控制器和/或处理器可以确定要用于数据事务的存储器映射图重新排序模式。存储器映射图重新排序模式可以从针对最小功耗的重新排序的存储器映射图、针对延迟容忍过程的各种重新排序的存储器映射图、或者针对最大性能速度的重新排序的存储器映射图中选择,如上所述。存储器控制器和/或处理器可以选择存储器映射图重新排序模式以降低计算设备的功耗或增加计算设备的性能速度。
在框808中,存储器控制器可以根据所选择的存储器映射图重新排序模式来对存储器映射图进行重新排序。在对存储器映射图进行重新排序时,存储器控制器可以保存或已经保存了存储器设备的原始存储器映射图,以便如果期望的话能够返回到原始的存储器映射图。存储器控制器可以创建查找表或者某种其它已知的数据结构,通过该查找表或数据结构,存储器控制器可以向存储器设备的存储器位置分配存储器地址。查找表还可以将重新排序的存储器映射图与原始的存储器映射图进行相关。通过重新排序的存储器映射图与原始的存储器映射图的这种相关,存储器控制器可以在原始的存储器映射图中找到处理器提供的存储器地址,并确定重新排序的存储器映射图的相关的存储器地址。在一个方面中,算法可以与不同的存储器映射图重新排序模式相关联。算法可以用于根据处理器提供的存储器地址来计算存储器地址,从而得到相应的重新排序的存储器地址。
在框810中,存储器控制器可以从处理器接收包括处理器提供的存储器位置的事务指令。如上所述,事务类型和处理器提供的存储器地址可以被路由到计算设备的适当组件。对于写入事务,并行格式的数据也可以被适当地路由。在框812中,存储器控制器可以确定向处理器提供的存储器位置应用哪些重新排序的存储器位置。如上所述,可以通过具有处理器所预期的原始存储器地址的一个或多个数据结构中的数据与重新排序的存储器映射图的相应的重新排序的存储器地址的比较来完成该确定。此外,在上文所描述的方面中,存储器控制器可以应用与重新排序的存储器映射图相关联的算法,以确定与处理器提供的存储器地址相对应的重新排序的存储器地址。
在框814中,存储器控制器可以根据所实现的存储器映射图重新排序模式来将处理器提供的存储器地址转换为重新排序的存储器地址(其被标识为相应的重新排序的存储器地址)。在框816中,存储器控制器可以根据重新排序的存储器映射图来激活或通电与所确定的重新排序的存储器地址相关联的单独的存储器设备。用于重新排序的存储器映射图的数据结构不仅可以识别重新排序的存储器地址及其相应的原始的存储器地址,而且它们还可以识别与特定的重新排序的和/或原始的存储器地址或者这些存储器地址的范围相对应的存储器设备。
如上所述,可以由通过专用设备或芯片选择线路连接到每个单独的存储器设备的每个存储器控制器或者其组合来执行方面方法。这些专用连接可以在至存储器模块及其所有存储器设备的典型通道内创建子通道。典型通道可以允许对存储器模块及其所有存储器设备的激活和通电。子通道可以允许对存储器模块的单独存储器设备的单独激活或通电。存储器控制器可以向连接到一个特定存储器设备的专用存储器设备或芯片选择线路施加功率,以激活或通电仅所述一个特定存储器设备。存储器控制器可以向一个或多个存储器设备或码片选择线路(其均连接到一个特定的存储器设备)施加功率,以激活或通电一个或多个特定的存储器设备。存储器控制器保持对每个子通道的控制,以便根据期望或根据需要来激活或通电、或者去激活(deactivate)或断电(de-energize)单独的存储器设备。通过单独地控制存储器设备,计算设备可以使用少于存储器模块的所有存储器设备,从而使用比当所有的存储器设备是活动的或通电时少的能量。
在确定框818中,存储器控制器可以确定事务指令是否是针对写入事务的。当存储器控制器确定事务指令是写入事务时(即,确定框818=“是”),存储器控制器可以在如下文所描述的图9的框902中继续实现到存储器设备的写入事务。当存储器控制器确定事务指令不是写入事务时(即,确定框818=“否”),存储器控制器可以在如下文所描述的图10的框1002中继续实现从存储器设备的读取事务。在一个方面中,存储器控制器可以确定事务指令是否是针对读取事务的,并且视情况继续框902或1002。
图9示出了用于将并行格式的数据转换为串行数据以便写入到多个存储器设备中的一个或多个存储器设备的方面方法900。类似于上文所描述的方法800,该方法900可以由存储器控制器和/或结合存储器控制器工作的处理器来实现。当计算设备的处理器发出数据事务指令或请求时,存储器控制器可以确定事务指令是否确实是用于写入到计算设备的存储器的写入事务指令。当存储器控制器确定事务指令是针对写入事务的时候(如在上文参考图8所描述的确定框818中),在框902中,存储器控制器可以用信号向存储器设备缓冲器发送写入事务指令,所述存储器设备缓冲器连接到与用于事务的重新排序的存储器地址相关联的存储器设备。用信号通知存储器设备缓冲器事务是写入事务可以指示存储器设备缓冲器的FIFO缓冲器存储由处理器作为写入事务的一部分而提供的并行数据。当数据量太多以至于一个存储器设备无法管理时,可以用信号通知一个以上的存储器设备缓冲器接收并行数据。
如上所述,存储器设备缓冲器可以通过存储器数据总线的将存储器控制器与存储器模块进行连接的部分来连接到特定的存储器设备。用于重新排序的存储器映射图的数据结构还可以包括连接到与原始存储器地址和重新排序的存储器地址相关联的存储器设备的存储器设备缓冲器。
在框904中,存储器控制器可以用信号通知连接到被激活的存储器设备的存储器设备缓冲器将并行格式的数据转换为串行数据并将串行数据输出到存储器设备。如上所述,存储器控制器可以用信号通知与重新排序的存储器位置相关联的存储器设备缓冲器的复用器选择性地从存储器设备缓冲器的FIFO缓冲器接收数据,并将数据输出到存储器设备。存储器控制器可以用信号通知复用器按照预先确定的顺序在复用器的所选择的输入端处从FIFO缓冲器接收数据。当复用器在所选择的输入端处接收数据时,复用器还可以将数据输出到存储器设备。选择性地接收数据(而不是并行地从FIFO缓冲器接收所有数据并同时或并行地输出所有的数据)可以允许复用器将数据划分成预先定义尺寸的分组并一次输出一个分组。分组均可以如1比特一样小。按照预先确定的顺序接收数据并输出数据可以将FIFO缓冲器并行接收的数据转换成复用器串行输出的数据。因此,通过用于控制到复用器的输入的选择信号,计算设备可以控制将并行格式的数据到串行数据的转换。
在框906中,存储器控制器可以用信号通知存储器模块或者单独激活的存储器设备将串行写入数据存储在被激活的存储器设备上的重新排序的存储器地址处。如上所述,存储器控制器可以用信号向存储器设备发送事务类型(在该示例中,写入事务类型)和重新排序的存储器地址。事务类型的信号可以控制存储器设备应该存储还是释放串行数据。在写入事务信号的情况下,存储器设备可以存储串行数据。重新排序的存储器地址可以向存储器设备指定存储器设备的哪些存储器位置可以被指定用于存储串行数据的特定部分。
在确定框908中,存储器控制器可以确定写入事务是否完成。当所有的事务数据已经写入到存储器设备上的重新排序的存储器地址时,写入事务可以完成。当存储器控制器确定写入事务完成时(即,确定框908=“是”),存储器控制器可以结束方法900。当存储器控制器确定写入事务未完成时(即,确定框908=“否”),存储器控制器可以在框902中继续将并行格式的数据转换为串行数据并将串行数据写入到重新排序的存储器地址。这可能出现在例如当写入事务是针对大于单个存储器设备缓冲器可以处理的数据量时。当多个存储器设备缓冲器接收针对写入事务的并行数据时,存储器控制器可以针对每个存储器设备缓冲器实现方法900,并且在一些情况下,如果写入事务的数据量大于所有的存储器设备缓冲器能够管理的数据量时,针对相同的存储器设备缓冲器执行方法900一次以上。
在一个方面中,当存储器映射图重新排序模式是针对延迟容忍过程的时,可以针对多个存储器设备缓冲器并行地运行方法900。
图10示出了可以在存储器控制器中实现的、用于将串行数据转换为并行格式的数据以便从多个存储器设备中的一个或多个存储器设备读取的方面方法1000。当计算设备的处理器发出事务指令或请求时,存储器控制器可以确定事务指令是否确实是用于写入到计算设备的存储器(或者从该存储器读取)的写入(或读取)事务指令。当存储器控制器(如在上文图8的确定框818中)确定事务指令不是针对写入事务(或者是针对读取事务)的时候,在框1002中,存储器控制器可以用信号向存储器设备缓冲器发送读取事务指令,所述存储器设备缓冲器连接到与用于事务的重新排序的存储器地址相关联的存储器设备。用信号通知存储器设备缓冲器事务是读取事务可以指示存储器设备缓冲器的FIFO缓冲器并行地存储由存储器设备提供的串行数据(如由解复用器作为读取事务的一部分而转换的)。当数据存储在多个存储器设备上时,可以用信号通知一个以上的存储器设备缓冲器,使得所有的串行数据由与存储器设备相关联的存储器设备缓冲器接收。
在框1004中,存储器控制器可以用信号通知存储器模块或者单独被激活的存储器设备从被激活的存储器设备上的重新排序的存储器地址释放串行读取数据。如上所述,存储器控制器可以用信号向存储器设备发送事务类型(在该示例中,读取事务类型)和重新排序的存储器地址。事务类型的信号可以控制存储器设备应该存储还是释放串行数据。在读取事务信号的情况下,存储器设备可以释放串行数据。重新排序的存储器地址可以向存储器设备指定存储器设备的哪些存储器位置可以被指定为存储串行数据的特定部分。
在框1006中,存储器控制器可以用信号通知连接到被激活的存储器设备的存储器设备缓冲器将从存储器设备接收的串行数据转换为并行格式的数据,并将并行格式的数据输出到处理器。如上所述,存储器控制器可以用信号通知FIFO缓冲器存储从解复用器接收的数据。计算设备可以用信号通知连接到与重新排序的存储器位置相关联的存储器设备缓冲器的解复用器的存储器设备从重新排序的存储器位置释放数据。存储器控制器还可以用信号通知解复用器按照预先确定的顺序选择性地将数据输出到存储器设备缓冲器的FIFO缓冲器。存储器控制器可以用信号通知存储器设备将串行数据释放到解复用器,其中可以在解复用器的输入端处接收串行数据。
当解复用器在输入端处接收串行数据时,存储器控制器还可以用信号通知解复用器选择性地将数据输出到FIFO缓冲器。按照预先确定的顺序选择性输出数据(而不是将所有的数据串行地输出到FIFO缓冲器)可以允许解复用器通过一次一个输入地将数据输出到FIFO缓冲器的每个输入端来对FIFO缓冲器中的数据进行排序。对数据的接收和输出可以将解复用器所接收的串行数据转换为存储在FIFO缓冲器上的并行格式的数据。当完成将数据群组存储在FIFO缓冲器上时,存储器控制器可以将数据从FIFO缓冲器并行地输出到处理器。因此,通过用于控制来自解复用器的输出的选择信号,存储器控制器控制串行数据到并行数据的转换。
在确定框1008中,存储器控制器可以确定读取事务是否完成。当针对事务所请求的所有数据已经被从存储器设备上的重新排序的存储器地址读取时,读取事务可以完成。当存储器控制器确定读取事务完成时(即,确定框1008=“是”),存储器控制器可以结束方法1000。当存储器控制器确定读取事务未完成时(即,确定框1008=“否”),存储器控制器可以在框1002中继续从重新排序的存储器地址读取串行数据并将串行数据转换为并行数据。这可能出现在例如读取事务是针对大于单个存储器设备缓冲器可以处理的数据量时。当多个存储器设备缓冲器接收针对读取事务的串行数据时,存储器控制器可以针对每个存储器设备缓冲器实现方法1000,并且在一些情况下,如果读取事务的数据量大于所有的存储器设备缓冲器能够管理的数据量时,可以针对相同的存储器设备缓冲器实现方法1000一次以上。
在一方面中,当存储器映射图重新排序模式是针对延迟容忍过程的时候,可以针对多个存储器设备缓冲器并行地运行方法1000。
图11示出了可以在存储器控制器或其它组件中实现的、用于将并行格式的数据转换为串行数据以便写入到多个存储器设备中的一个或多个存储器设备的方面方法1100。当计算设备的处理器发出写入事务指令或请求时,在框1102中,存储器控制器的数据缓冲器可以从重新排序逻辑单元接收写入事务信号。如上所述,写入事务信号可以用信号通知数据缓冲器(并更具体而言,用信号通知与写入事务的重新排序的存储器地址相关联的存储器设备缓冲器的一个或多个FIFO缓冲器)存储由处理器提供的并行格式的写入数据。
在框1104中,数据缓冲器可以从处理器接收并行格式的写入事务数据。如上所述,处理器可以通过处理器数据总线连接到数据缓冲器和单独的存储器设备缓冲器。每个存储器设备缓冲器可以并行地连接到处理器。因此,处理器在一个突发中输出的所有数据被输出到处理器数据总线并有效地输出到所有的存储器设备缓冲器。然而,仅接收写入事务信号的存储器设备缓冲器被指示存储来自处理器的并行格式的写入数据。在一个方面中,对于来自处理器的并行格式的每个写入数据突发(多达处理器数据总线的最大尺寸),重新排序逻辑单元可以用信号仅通知一个存储器设备缓冲器将并行格式的写入数据突发存储到其FIFO缓冲器。
在框1106中,数据缓冲器可以从重新排序逻辑单元接收选择信号,以用于从FIFO缓冲器串行输入到复用器。在框1108中,数据缓冲器可以将并行格式的数据转换为串行数据。如上所述,数据缓冲器的复用器可以连接到相同的数据缓冲器的FIFO缓冲器。FIFO缓冲器的输出端可以连接到复用器的输入端。复用器可以经由复用器选择总线来接收选择信号。由复用器接收的选择信号可以向复用器指示要输出复用器的哪个输入。选择信号可以指示复用器按顺序输出复用器从FIFO缓冲器的输出端接收的数据。选择信号指示复用器输出该复用器从FIFO缓冲器接收的数据的顺序可以将(当从处理器发送数据并存储在FIFO缓冲器上时)并行格式的数据转换为复用器输出的串行数据。
在框1110中,数据缓冲器可以将由复用器转换的串行数据通过存储器数据总线输出到与数据缓冲器相关联的存储器设备。在确定框1112中,存储器控制器可以确定写入事务是否完成。出于确定框1112的目的,当在框1110中与写入事务信号相关联的所有数据作为串行数据被输出到存储器设备时,写入事务可以结束。在一个方面中,事务可以包括多个数据突发,并且用于一个或多个存储器设备缓冲器的数据缓冲器可以接收更多的写入数据。当存储器控制器确定写入事务完成时(即,确定框1112=“是”),存储器控制器可以结束方法1100。当存储器控制器确定写入事务未完成时(即,确定框1112=“否”),存储器控制器可以在框1104中继续接收剩余的写入数据。
图12示出了用于将串行数据转换为并行格式的数据以便从多个存储器设备中的一个或多个存储器设备读取的方面方法1200。计算设备(包括处理器、如本文所描述的存储器控制器包括其组件、以及如本文所描述的存储器模块包括其组件)可以实现该方法1200。当计算设备的处理器发出读取事务指令或请求时,在框1202中,存储器控制器的数据缓冲器可以从重新排序逻辑单元接收读取事务信号。如上所述,读取事务信号可以用信号通知数据缓冲器(更具体地说,用信号通知与读取事务的重新排序的存储器地址相关联的存储器设备缓冲器的一个或多个FIFO缓冲器)将存储器设备所提供的并行格式的读取数据存储为串行数据,并由解复用器转换为并行格式的数据。
在框1204中,数据缓冲器可以从存储器设备接收串行读取事务数据。如上所述,存储器设备可以通过存储器数据总线连接到数据缓冲器和单独的存储器设备缓冲器。每个存储器设备缓冲器可以连接到相关联的一个或多个存储器设备。因此,由存储器设备输出的所有串行数据被输出到存储器数据总线并直接输出到相关联的存储器设备缓冲器。在一个方面中,存储器设备可以并行地连接到多个存储器设备缓冲器。重新排序逻辑单元可以控制哪些存储器设备缓冲器接收读取事务信号和解复用器选择信号(其指示存储器设备缓冲器并行地存储来自存储器设备的串行读取数据)。在一个方面中,对于来自存储器设备的每个串行读取数据突发(多达处理器数据总线的最大尺寸),重新排序逻辑单元可以用信号通知仅一个存储器设备缓冲器以并行格式将串行读取数据的突发存储到其FIFO缓冲器。
在框1206中,数据缓冲器可以从重新排序逻辑单元接收选择信号以便从解复用器并行地输出到FIFO缓冲器。在框1208中,数据缓冲器可以将串行数据转换为并行数据。如上所述,数据缓冲器的解复用器可以连接到相同的数据缓冲器的FIFO缓冲器。解复用器的输出端可以连接到FIFO缓冲器的输入端。解复用器可以经由解复用器选择总线来接收选择信号。解复用器接收的选择信号向解复用器指示在哪个输出端上输出从存储器设备接收到的输入。选择信号可以指示解复用器将其接收的数据按顺序输出到FIFO缓冲器的输入端。选择信号指示复用器输出复用器从存储器设备接收的数据的顺序可以将当从存储器设备发送时的串行数据转换为FIFO缓冲器所保存的并行格式的数据并输出到处理器。
在框1210中,数据缓冲器可以将由解复用器转换的并行读取数据通过处理器数据总线输出到处理器。在确定框1212中,存储器控制器可以确定读取事务是否完成。出于确定框1212的目的,当框1210中与读取事务信号相关联的所有数据作为并行格式的数据被输出到处理器时,读取事务可以结束。在一个方面中,事务可以包括多个数据突发,并且用于一个或多个存储器设备缓冲器的数据缓冲器可以接收更多的数据。当存储器控制器确定读取事务完成时(即,确定框1212=“是”),存储器控制器可以结束方法1200。当存储器控制器确定读取事务未完成时(即,确定框1212=“否”),存储器控制器可以在框1204中继续接收剩余的读取数据。
图13示出了适合于与各个方面一起使用的示例移动设备。移动设备1300可以包括处理器1302,所述处理器1302耦合到触摸屏控制器1304和内部存储器1306。处理器1302可以是被指定用于通用或专用处理任务的一个或多个多核集成电路。内部存储器1306可以是易失性或非易失性存储器,并且还可以是安全和/或加密存储器,或者不安全和/或未加密存储器,或者其任意组合。可以利用的存储器类型的示例包括但不限于DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM、以及嵌入式DRAM。触摸屏控制器1304和处理器1302还可以耦合到触摸屏面板1312,诸如电阻感测触摸屏、电容感测触摸屏、红外线感测触摸屏等。此外,计算设备1300的显示器不需要具有触摸屏能力。
移动设备1300可以具有一个或多个无线信号收发机1308(例如,Peanut、蓝牙、紫蜂(Zigbee)、Wi-Fi、RF无线电装置)和天线1310以用于发送和接收通信,其中无线信号收发机1308和天线1310彼此耦合和/或耦合到处理器1302。收发机1308和天线1310可以与上面提到的电路一起使用,以实现各种无线传输协议栈和接口。移动设备1300可以包括蜂窝网络无线调制解调器芯片1316,其经由蜂窝网络实现通信并耦合到处理器。
移动设备1300可以包括耦合到处理器1302的外围设备连接接口1318。外围设备连接接口1318可以单独地被配置为接受一种类型的连接,或者可以被配置为接受各种类型的物理和通信连接(公共的或专用的),诸如USB、火线(FireWire)、雷电(Thunderbolt)或者PCIe。外围设备连接接口1318还可以耦合到类似配置的外围设备连接端口(未示出)。
移动设备1300还可以包括用于提供音频输出的扬声器1314。移动设备1300还可以包括由塑料、金属或各材料的组合构造的壳体1320,以用于包含本文所论述的所有或一些组件。移动设备1300可以包括耦合到处理器1302的电源1322,诸如一次性或可再充电电池。可再充电电池还可以耦合到外围设备连接端口,以便从移动设备1300的外部的源接收充电电流。移动设备1300还可以包括物理按钮1324以用于接收用户输入。移动设备1300还可以包括电源按钮1326以用于开启和关闭移动设备1300。
上文所描述的各个方面还可以在各种移动设备内实现,诸如图14中所示出的膝上型计算机1400。许多膝上型计算机包括触摸板触摸表面1417(其充当计算机的指向设备),并且因此可以接收拖动、滚动和轻击(flick)手势,类似于在装备有触摸屏显示器以及上文所描述的计算设备上实现的那些手势。膝上型计算机1400将典型地包括处理器1411,所述处理器1411耦合到易失性存储器1412和大容量非易失性存储器,诸如闪存的磁盘驱动器1413。此外,计算机1400可以具有一个或多个天线1408以用于发送和接收电磁辐射,所述天线1408可以连接到与处理器1411耦合的无线数据链路和/或蜂窝电话收发机1416。计算机1400还可以包括耦合到处理器1411的软盘驱动器1414和压缩盘(CD)驱动器1415。在笔记本配置中,计算机壳体包括均耦合到处理器1411的触摸板1417、键盘1418和显示器1419。计算设备的其它配置可以包括如公知的耦合到处理器(例如,经由USB输入)的计算机鼠标或轨迹球,所述计算机鼠标或轨迹球还可以结合各个方面来使用。
用于在可编程处理器上执行以便实现各个方面的操作的计算机程序代码或“程序代码”可以用高级编程语言(诸如,C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic、结构化查询语言(例如,Transact-SQL)、Perl)来编写,或者用各种其它编程语言来编写。如在本申请中使用的,存储在计算机可读存储介质上的程序代码或程序可以指代机器语言代码(诸如目标代码),其格式可被处理器理解。
许多计算设备操作系统内核被组织成用户空间(在其中运行非特权代码)和内核空间(在其中运行特权代码)。在Android和其它通用公共许可(GPL)环境中的这种分离是特别重要的,在Android和GPL环境中,作为内核空间的一部分的代码必须是经GPL许可的,而在用户空间中运行的代码可以不是经GPL许可的。应当要理解的是,除非另外明确声明,否则这里所论述的各种软件组件/模块可以在内核空间或者用户空间中实现。
提供前述的方法描述和过程流程图仅作为说明性的示例,并非旨在要求或暗示必须按照所给出的顺序来执行各个方面的操作。如本领域技术人员将意识到的,可以按照任何顺序来执行前述方面中的操作顺序。诸如“此后”、“然后”、“接下来”之类的词语并非旨在对操作顺序进行限制;这些词语仅用于引导读者贯穿对方法的描述。此外,以单数形式对权利要求要素的任何引用,例如使用冠词“一”、“一个”或“这个”不应解释为将要素限制为单数。
结合各个方面所描述的各种说明性的逻辑框、模块、电路和算法操作可以实现为电子硬件、计算机软件或者二者的组合。为了清楚地示出硬件和软件的这种可互换性,上面已经对各种说明性的组件、框、模块、电路和操作围绕其功能进行了一般性描述。至于这种功能是实现为硬件还是软件,这取决于特定的应用和施加在整体系统上的设计约束。技术人员可以针对每个特定应用以不同的方式来实现所描述的功能,但是这种实现决策不应当解释为致使偏离本发明的范围。
利用被设计为执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件或者其任意组合,可以实现或执行用于实现结合本文所公开的各方面所描述的各种说明性的逻辑单元、逻辑框、模块和电路的硬件。通用处理器可以是微处理器,但在替代方案中,该处理器也可以是任何常规的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种配置。替代地,可以由特定于给定功能的电路来执行一些操作或方法。
在一个或多个方面中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则所述功能可以作为一条或多条指令或代码存储在非暂时性计算机可读介质或者非暂时性处理器可读介质上。本文所公开的方法或算法的操作可以体现在处理器可执行软件模块中,所述处理器可执行软件模块可以驻留在非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或处理器可读存储介质可以是可以由计算机或处理器存取的任何存储介质。通过举例而非限制性的方式,这种非暂时性计算机可读或处理器可读介质可以包括RAM、ROM、EEPROM、FLASH存储器、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备,或者可用于存储具有指令或数据结构形式的期望的程序代码并且可以由计算机存取的任何其它介质。如本文所使用的,磁盘(disk)和光盘(disc)包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘利用激光来光学地复制数据。上面各项的组合也包括在非暂时性计算机可读和处理器可读介质的范围内。此外,方法或算法的操作可以作为代码和/或指令的一个或任意组合或集合驻留在可以被并入计算机程序产品中的非暂时性处理器可读介质和/或计算机可读介质上。
提供对所公开的方面的以上描述是为了使得本领域任何技术人员能够实施或使用本发明。对这些方面的各种修改对于本领域技术人员来说将是显而易见的,并且在不偏离本发明的精神或范围的情况下,本文所定义的通用原理可以应用于其它方面。因此,本发明并非旨在受限于本文所示出的方面,而是旨在符合与所附权利要求以及本文所公开的原理和新颖性特征相一致的最广的范围。
Claims (28)
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所述的装置,还包括:
用于接收针对写入事务的所述存储器事务指令的单元,所述存储器事务指令包括所述数据突发以及用于写入到所述多个存储器设备的所述至少一个存储器地址,其中,所述数据突发包括并行的写入数据;
用于将所述数据突发的至少一部分转换为串行写入数据以用于写入到所述重新排序的存储器地址的单元;以及
用于将所转换的写入数据输出到与所述重新排序的存储器地址相关联的、所激活的比所述多个存储器设备中的全部存储器设备少的存储器设备中的至少一个存储器设备的单元。
20.根据权利要求15所述的装置,还包括:
用于接收针对读取事务的所述存储器事务指令的单元,所述存储器事务指令包括用于从所述多个存储器设备中读取的所述至少一个存储器地址;
用于从与所述重新排序的存储器地址相关联的、所激活的比所述多个存储器设备中的全部存储器设备少的存储器设备中的至少一个存储器设备接收所述数据突发的单元,其中,所述数据突发的至少一部分包括串行读取数据;
用于将所述数据突发转换为并行格式的读取数据,使得所述并行格式的读取数据被排序为符合所述存储器事务指令的存储器地址的单元;以及
用于将所述并行格式的读取数据输出到处理器的单元。
21.根据权利要求15所述的装置,其中,用于对所述多个存储器设备的所述存储器映射图进行重新排序从而得到所述重新排序的存储器映射图,使得所述存储器事务指令的所述数据突发使用比所述多个存储器设备中的全部存储器设备少的存储器设备的单元包括:用于使用不同的重新排序模式来对所述多个存储器设备的所述存储器映射图的部分进行重新排序的单元,其中,所述存储器映射图的至少一部分被重新排序,使得所述存储器事务指令的所述数据突发使用比所述多个存储器设备中的全部存储器设备少的存储器设备。
22.一种其上存储有处理器可执行指令的非暂时性处理器可读介质,所述处理器可执行指令被配置为使得存储器控制器执行包括以下各项的操作:
对存储器模块的多个存储器设备的存储器映射图进行重新排序从而得到重新排序的存储器映射图,使得存储器事务指令的数据突发使用比所述多个存储器设备中的全部存储器设备少的存储器设备;
接收与所述存储器事务指令相关联的至少一个存储器地址;
根据所述重新排序的存储器映射图,将所述至少一个存储器地址转换为至少一个重新排序的存储器地址;以及
激活比所述多个存储器设备中的全部存储器设备少的存储器设备,以针对所述数据突发执行所述存储器事务指令,其中,所激活的比所述多个存储器设备中的全部存储器设备少的存储器设备与根据所述重新排序的存储器映射图的所述至少一个重新排序的存储器地址相关联。
23.根据权利要求22所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使得所述存储器控制器执行操作,使得激活比所述多个存储器设备中的全部存储器设备少的存储器设备以针对所述数据突发执行所述存储器事务指令包括:单独地激活所述比所述多个存储器设备中的全部存储器设备少的存储器设备中的每个存储器设备。
24.根据权利要求22所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使得所述存储器控制器执行操作,使得:
对所述多个存储器设备的所述存储器映射图进行重新排序从而得到所述重新排序的存储器映射图,使得所述存储器事务指令的所述数据突发使用比所述多个存储器设备中的全部存储器设备少的存储器设备包括:对所述多个存储器设备的所述存储器映射图进行重新排序从而得到所述重新排序的存储器映射图,使得所述存储器事务指令的所述数据突发使用所述多个存储器设备中的一个存储器设备,以及
激活比所述多个存储器设备中的全部存储器设备少的存储器设备以针对所述数据突发执行所述存储器事务指令包括:激活所述多个存储器设备中的一个存储器设备,以针对所述数据突发执行所述存储器事务指令。
25.根据权利要求22所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使得所述存储器控制器执行操作,使得对所述多个存储器设备的所述存储器映射图进行重新排序从而得到所述重新排序的存储器映射图,使得所述存储器事务指令的所述数据突发使用比所述多个存储器设备中的全部存储器设备少的存储器设备包括:对所述多个存储器设备的所述存储器映射图进行重新排序从而得到所述重新排序的存储器映射图,使得所述存储器事务指令的所述数据突发多次使用所述存储器模块的所述多个存储器设备中的至少一个存储器设备。
26.根据权利要求22所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使得所述存储器控制器执行还包括以下各项的操作:
接收针对写入事务的所述存储器事务指令,所述存储器事务指令包括所述数据突发以及用于写入到所述多个存储器设备的所述至少一个存储器地址,其中,所述数据突发包括并行的写入数据;
将所述数据突发的至少一部分转换为串行写入数据以用于写入到所述重新排序的存储器地址;以及
将所转换的写入数据输出到与所述重新排序的存储器地址相关联的、所激活的比所述多个存储器设备中的全部存储器设备少的存储器设备中的至少一个存储器设备。
27.根据权利要求22所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使得所述存储器控制器执行还包括以下各项的操作:
接收针对读取事务的所述存储器事务指令,所述存储器事务指令包括用于从所述多个存储器设备中读取的所述至少一个存储器地址;
从与所述重新排序的存储器地址相关联的、所激活的比所述多个存储器设备中的全部存储器设备少的存储器设备中的至少一个存储器设备接收所述数据突发,其中,所述数据突发的至少一部分包括串行读取数据;
将所述数据突发转换为并行格式的读取数据,使得所述并行格式的读取数据被排序为符合所述存储器事务指令的存储器地址;以及
将所述并行格式的读取数据输出到处理器。
28.根据权利要求22所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使得所述存储器控制器执行操作,使得对所述多个存储器设备的所述存储器映射图进行重新排序从而得到所述重新排序的存储器映射图,使得所述存储器事务指令的所述数据突发使用比所述多个存储器设备中的全部存储器设备少的存储器设备包括:使用不同的重新排序模式来对所述多个存储器设备的所述存储器映射图的部分进行重新排序,其中,所述存储器映射图的至少一部分被重新排序,使得所述存储器事务指令的所述数据突发使用比所述多个存储器设备中的全部存储器设备少的存储器设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/142,573 US9396109B2 (en) | 2013-12-27 | 2013-12-27 | Method and apparatus for DRAM spatial coalescing within a single channel |
US14/142,573 | 2013-12-27 | ||
PCT/US2014/070123 WO2015100038A1 (en) | 2013-12-27 | 2014-12-12 | Method and apparatus for dram spatial coalescing within a single channel |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105849669A true CN105849669A (zh) | 2016-08-10 |
Family
ID=52302356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480070642.7A Pending CN105849669A (zh) | 2013-12-27 | 2014-12-12 | 用于单个通道内的dram空间联合的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9396109B2 (zh) |
EP (1) | EP3087452A1 (zh) |
JP (1) | JP6062121B1 (zh) |
KR (1) | KR101752117B1 (zh) |
CN (1) | CN105849669A (zh) |
WO (1) | WO2015100038A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339326A (zh) * | 2016-08-26 | 2017-01-18 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘顺序读性能的方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015120152A1 (en) * | 2014-02-05 | 2015-08-13 | Kopin Corporation | Column bus driving method for micro display device |
US10334334B2 (en) * | 2016-07-22 | 2019-06-25 | Intel Corporation | Storage sled and techniques for a data center |
US10394724B2 (en) * | 2016-08-22 | 2019-08-27 | Qualcomm Incorporated | Low power data transfer for memory subsystem using data pattern checker to determine when to suppress transfers based on specific patterns |
KR20180038875A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 데이터 입출력 유닛, 전자 장치 및 그 제어 방법들 |
US10684955B2 (en) * | 2017-04-21 | 2020-06-16 | Micron Technology, Inc. | Memory devices and methods which may facilitate tensor memory access with memory maps based on memory operations |
CN107743101B (zh) * | 2017-09-26 | 2020-10-09 | 杭州迪普科技股份有限公司 | 一种数据的转发方法及装置 |
US10956315B2 (en) | 2018-07-24 | 2021-03-23 | Micron Technology, Inc. | Memory devices and methods which may facilitate tensor memory access |
KR20200015233A (ko) | 2018-08-03 | 2020-02-12 | 삼성전자주식회사 | 불휘발성 메모리 장치들을 포함하는 반도체 메모리 모듈 |
US11513976B2 (en) * | 2020-03-31 | 2022-11-29 | Western Digital Technologies, Inc. | Advanced CE encoding for bus multiplexer grid for SSD |
KR20220063335A (ko) * | 2020-11-10 | 2022-05-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745913A (en) * | 1996-08-05 | 1998-04-28 | Exponential Technology, Inc. | Multi-processor DRAM controller that prioritizes row-miss requests to stale banks |
US20040068604A1 (en) * | 2002-10-07 | 2004-04-08 | Infineon Technologies North America Corp. | Bank address mapping according to bank retention time in dynamic random access memories |
CN1554097A (zh) * | 2001-07-13 | 2004-12-08 | 具有用于读写操作的不同突发顺序寻址的存储器件 | |
US20060212726A1 (en) * | 2005-03-16 | 2006-09-21 | International Business Machines Corporation | Method of governing power for multi-node computer system components |
CN101194235A (zh) * | 2005-06-09 | 2008-06-04 | 松下电器产业株式会社 | 存储器控制装置及存储器控制方法 |
CN101861571A (zh) * | 2007-11-15 | 2010-10-13 | 美光科技公司 | 用于修改存储器存取次序的系统、设备及方法 |
US20110205824A1 (en) * | 2010-02-25 | 2011-08-25 | Elpida Memory, Inc | Data processing system |
US20120331197A1 (en) * | 2011-06-24 | 2012-12-27 | Michael Andrew Campbell | Memory controller and method of operation of such a memory controller |
CN103035284A (zh) * | 2011-10-04 | 2013-04-10 | 海力士半导体有限公司 | 半导体存储器件及其驱动方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6145065A (en) | 1997-05-02 | 2000-11-07 | Matsushita Electric Industrial Co., Ltd. | Memory access buffer and reordering apparatus using priorities |
EP1354484B1 (en) * | 2001-01-12 | 2010-12-08 | Nxp B.V. | Unit and method for memory address translation and image processing apparatus comprising such a unit |
JP4470453B2 (ja) * | 2003-11-04 | 2010-06-02 | 富士ゼロックス株式会社 | 画像処理装置、画像形成装置及びプログラム |
KR100606812B1 (ko) | 2004-03-08 | 2006-08-01 | 엘지전자 주식회사 | 비디오 디코딩 시스템 |
EP1736883A4 (en) * | 2004-04-15 | 2008-12-10 | Panasonic Corp | BURST MEMORY ACCESS PROCEDURES ON A RECTANGULAR AREA |
US7721011B1 (en) | 2005-05-09 | 2010-05-18 | Oracle America, Inc. | Method and apparatus for reordering memory accesses to reduce power consumption in computer systems |
TW200746161A (en) * | 2005-12-21 | 2007-12-16 | Nxp Bv | Power partitioning memory banks |
US8135936B2 (en) | 2009-12-23 | 2012-03-13 | Intel Corporation | Adaptive address mapping with dynamic runtime memory mapping selection |
US8108596B2 (en) | 2006-08-03 | 2012-01-31 | Arm Limited | Memory controller address mapping scheme |
US9495290B2 (en) | 2007-06-25 | 2016-11-15 | Sonics, Inc. | Various methods and apparatus to support outstanding requests to multiple targets while maintaining transaction ordering |
US9195623B2 (en) | 2010-06-23 | 2015-11-24 | International Business Machines Corporation | Multiple address spaces per adapter with address translation |
-
2013
- 2013-12-27 US US14/142,573 patent/US9396109B2/en active Active
-
2014
- 2014-12-12 WO PCT/US2014/070123 patent/WO2015100038A1/en active Application Filing
- 2014-12-12 KR KR1020167019844A patent/KR101752117B1/ko active IP Right Grant
- 2014-12-12 EP EP14825014.5A patent/EP3087452A1/en not_active Withdrawn
- 2014-12-12 CN CN201480070642.7A patent/CN105849669A/zh active Pending
- 2014-12-12 JP JP2016542179A patent/JP6062121B1/ja not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745913A (en) * | 1996-08-05 | 1998-04-28 | Exponential Technology, Inc. | Multi-processor DRAM controller that prioritizes row-miss requests to stale banks |
CN1554097A (zh) * | 2001-07-13 | 2004-12-08 | 具有用于读写操作的不同突发顺序寻址的存储器件 | |
US20040068604A1 (en) * | 2002-10-07 | 2004-04-08 | Infineon Technologies North America Corp. | Bank address mapping according to bank retention time in dynamic random access memories |
US20060212726A1 (en) * | 2005-03-16 | 2006-09-21 | International Business Machines Corporation | Method of governing power for multi-node computer system components |
CN101194235A (zh) * | 2005-06-09 | 2008-06-04 | 松下电器产业株式会社 | 存储器控制装置及存储器控制方法 |
CN101861571A (zh) * | 2007-11-15 | 2010-10-13 | 美光科技公司 | 用于修改存储器存取次序的系统、设备及方法 |
US20110205824A1 (en) * | 2010-02-25 | 2011-08-25 | Elpida Memory, Inc | Data processing system |
US20120331197A1 (en) * | 2011-06-24 | 2012-12-27 | Michael Andrew Campbell | Memory controller and method of operation of such a memory controller |
CN103035284A (zh) * | 2011-10-04 | 2013-04-10 | 海力士半导体有限公司 | 半导体存储器件及其驱动方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339326A (zh) * | 2016-08-26 | 2017-01-18 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘顺序读性能的方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20160104641A (ko) | 2016-09-05 |
JP6062121B1 (ja) | 2017-01-18 |
JP2017504889A (ja) | 2017-02-09 |
US20150186267A1 (en) | 2015-07-02 |
US9396109B2 (en) | 2016-07-19 |
EP3087452A1 (en) | 2016-11-02 |
KR101752117B1 (ko) | 2017-06-28 |
WO2015100038A1 (en) | 2015-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105849669A (zh) | 用于单个通道内的dram空间联合的方法和装置 | |
US8661188B2 (en) | Parallel flash memory controller, chip and control method thereof | |
JP5729774B2 (ja) | いくつかのコマンドを処理するためのメモリコントローラ、メモリシステム、ソリッドステートドライブ、および方法 | |
CN109690508B (zh) | 带虚拟控制器模式的存储器控制器 | |
KR101744126B1 (ko) | 비대칭적 프로세서 코어 간의 협력적 실행을 위한 기법 | |
CN104903868B (zh) | 数据存储装置、用于进行直接用户空间通信的方法和系统 | |
CN110045915A (zh) | 使用存储装置中的系统时间戳的后台数据刷新 | |
CN101473438A (zh) | 具有单个接口的混合存储器设备 | |
US20210278969A1 (en) | Dedicated interface for coupling flash memory and dynamic random access memory | |
KR20120127698A (ko) | Lsb 및 msb 페이지들에의 선택적 데이터 저장 | |
JP2016053983A (ja) | メモリシステムコントローラを含む装置 | |
CN102541770B (zh) | 具有嵌入式通道选择的多通道存储器 | |
CN102187323A (zh) | 多核存储器模块中的功率下降模式的动态利用 | |
JP2014517402A (ja) | メモリシステムコントローラを含む装置および関連する方法 | |
EP3910488A1 (en) | Systems, methods, and devices for near data processing | |
CN108959111A (zh) | 数据存储装置和用于流管理的方法 | |
CN106776358A (zh) | Dimm ssd寻址性能技术 | |
US11029746B2 (en) | Dynamic power management network for memory devices | |
CN103348333A (zh) | 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置 | |
CN101714065A (zh) | 一种闪存控制器的映射信息管理方法 | |
CN116324744A (zh) | 具有多个命令子队列和对应的仲裁器的存储器控制器 | |
KR20200056533A (ko) | 맵 스케줄링을 수행하기 위한 스토리지 장치 및 그것을 포함하는 전자 장치 | |
US11455186B2 (en) | Controller and memory system having the same | |
CN103092781A (zh) | 闪存接口的有效利用 | |
CN102760106A (zh) | Pci学业数据挖掘芯片及其运行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160810 |
|
WD01 | Invention patent application deemed withdrawn after publication |