CN1928919B - 微区块启动存储器的自动检测 - Google Patents

微区块启动存储器的自动检测 Download PDF

Info

Publication number
CN1928919B
CN1928919B CN2006101363192A CN200610136319A CN1928919B CN 1928919 B CN1928919 B CN 1928919B CN 2006101363192 A CN2006101363192 A CN 2006101363192A CN 200610136319 A CN200610136319 A CN 200610136319A CN 1928919 B CN1928919 B CN 1928919B
Authority
CN
China
Prior art keywords
memory
storage
cache line
access
integrated circuit
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.)
Expired - Fee Related
Application number
CN2006101363192A
Other languages
English (en)
Other versions
CN1928919A (zh
Inventor
D·加贝尔
J·阿基雅玛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1928919A publication Critical patent/CN1928919A/zh
Application granted granted Critical
Publication of CN1928919B publication Critical patent/CN1928919B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

在本发明的一个实施例中,具有唯一位模式的写高速缓存线在起始地址被写入存储通道中的存储器。尝试启动对存储通道中的存储模块的各个存储器集成电路的微区块存储器通道。在起始地址从存储通道中的存储器中读取读高速缓存线。读高速缓存线和写高速缓存线的位模式被加以比较。如果经比较确定二者不同,那么对存储通道中的存储模块的存储器集成电路的微区块存储器存取被启动。如果经比较确定二者相同,那么对存储通道中的存储模块的各个存储器集成电路的微区块存储器存取得不到支持且不能被启动。

Description

微区块启动存储器的自动检测
技术领域
本发明的实施例一般涉及存储器,尤其涉及检测支持对存储子通道的微区块(tile)存储器存取的存储模块和存储集成电路。
背景技术
在具有一致或一体化的存储器存取的存储器结构,通常称为一体化存储器体系结构(UMA)中,处理器以及图形控制器共享系统存储器以降低成本。通常,UMA存储器体系结构可以优化为处理从处理器到系统存储器中的存储请求(读取/写入访问)。典型的UMA存储器体系结构兼顾由图形控制器作出的存储请求。现在,支持三维(3D)以及更高分辨率的图形性能已经变得更为重要。
在典型的UMA存储器体系结构中,高速缓冲存储器使用固定的六十四(64)字节的高速缓存线来支持由处理器作出的存储请求以及由图形控制器作出的存储请求。UMA存储器体系结构中典型的存储控制器具有一个或两个存储通道。为了执行读取或写入访问,每一存储通道与每一存储模块共享一地址总线中的全部地址线。典型的存储通道中的数据总线通常为六十四(64)位宽,从而从存储器中同时访问给定地址的八(8)个字节的相邻数据。可以取决于所利用的存储器类型以及存储器大小以不同的方式将数据总线的位路由选择至存储器模块。
尽管处理器通常使用从存储器中存取的全部64位相邻数据时,图形控制器通常并非如此。当图形控制器在UMA存储器体系结构中作出存储请求时,多数相邻数据可以被弃除。因此,由典型的UMA存储器体系结构中的图形控制器所发出的存储请求可能不能高效地利用存储通道的带宽。
附图说明
从以下详细的描述中本发明的实施例的特征将变得显而易见,其中:
图1A示出可利用本发明实施例的典型计算机系统的框图。
图1B示出可利用本发明实施例的客户机-服务器系统的框图。
图2示出可利用本发明实施例的第一处理单元的框图。
图3A示出与一对存储通道耦合的存储控制块的高级框图,其中每一存储通道包括四个存储子通道。
图3B示出与高速缓冲存储器和包括多个S子通道的一对存储通道耦合的存储控制块中的存储控制器的详细框图。
图4A是示出使用线性存储器存取在不具有子通道的存储通道上进行视频显示器上像素到存储器存取的映射的示意图。
图4B是示出在具有两个支持微区块存储存取的子通道的存储通道上进行视频显示器上像素到存储器存取的映射的示意图。
图4C是示出在具有四个支持微区块存储访问的子通道的存储通道上进行视频显示器上像素到存储器存取的映射的示意图。
图5A是示出在64位宽的存储通道上进行线性64字节存储器存取的示意图。
图5B是示出在一对32位宽的存储子通道上进行一对32字节存储器存取的独立子通道存储器存取的示意图。
图5C是示出在四个16位宽的存储子通道上进行四个16字节存储器存取的独立子通道存储器存取的示意图。
图6示出存储通道的地址信号线位图。
图7示出与安装于主机印刷电路板的连接器耦合的多芯片存储模块的框图。
图8示出在存储子通道上支持微区块存储器存取的存储集成电路的框图。
图9示出与16位宽的存储子通道的模式寄存器和16字节的存储器存取耦合的地址过载逻辑电路的示意图。
图10A示出在存储集成电路中对支持微区块存储器存取进行检测的第一方法的流程图。
图10B示出在存储集成电路中对支持微区块存储器存取进行检测的第二方法的流程图。
图10C示出在存储集成电路中对支持微区块存储器存取进行检测的第三方法的流程图。
图11A示出与图5A相关联的高速缓存线中的示例性唯一位序列。
图11B示出与图5B相关联的高速缓存线中的示例性唯一位序列。
图11C示出与图5C相关联的高速缓存线中的示例性唯一位序列。
图12A-12E示出可用于在高速缓存线中提供可辨别模式,从而对存储集成电路中支持微区块存储器存取进行检测的其它位模式。
附图中类似的附图标记和名称表示提供了相似功能的类似部件。
具体实施例
为了提供对本发明的透彻理解,在本发明的实施例的以下详细描述中,阐明了多个特定细节。然而,对于所属领域技术人员来说本发明的实施例可以不由这些特定细节而实现是显而易见的。其它例如公知的方法、程序、部件以及电路没有被详细描述,以防不必要地混淆本发明的实施例的各个方面。
集成图形计算机系统的存储效率通常受到高速缓存线大小的限制。通常地,针对图形的理想存储器存取的大小是4到16字节的数据,因为图形处理器一次运算一个或几个像素或纹素(texel)。然而,UMA存储器体系结构针对64字节的高速缓存线进行优化以优化处理器的存储效率。通过64字节的高速缓存线,平均来说,由图形控制器发出的存储请求导致大量数据从存储器中取出并且从来不被图形控制器所使用。未使用的数据可以称为过取出。
使用微区块,当由集成图形控制器在UMA存储器体系结构中保留高速缓存线的请求时,来自图形控制器的存储请求的过取出可被降低。总体来说,微区块使用新型存储器体系结构以及新型存储控制器体系结构。为了支持微区块存储器体系结构,新型存储子系统提供了存储通道内的独立子通道存储器存取。这些存储器的独立子通道存储器存取可称为微区块(micro-tile)或微区块化(micro-tiled)存储器存取并总称为微区块存取(micro-tiling)。当描述新型的存储控制器和存储器体系结构时,本申请的关键在于检测插入系统中的存储模块和存储集成电路是否支持微区块存取。
新型存储器体系结构引入了可以支持微区块存储器存取的新型存储模块和新型存储集成电路,其中微区块存储器存取包括在存储通道的子通道之间的某独立寻址性。该新型存储模块和新型存储集成电路可因具有同样形状因数而反向兼容,因而它们同样可以被插入到未使用微区块存取的比较老的系统之中。在这样的情况下,可能难以分辨是否是微区块启动的存储模块。微区块启动的存储模块和非微区块启动的存储模块都可被添加至支持微区块存取的主机印刷电路板和系统中。如果存储模块被插入到所述系统中并且未启动,也就是说它不支持微区块存取,则插入非启动存储模块的存储通道不能使用微区块存取。这就是说,微区块存取存储器体系结构反向兼容非微区块启动存储-即不支持微区块存取的存储模块和存储集成电路。因此,为了启动系统中的微区块存取,插入到存储通道中的微区块启动存储模块被自动检测到,不支持微区块存取的存储模块(如果存在的话)一样也被自动检测到。这是为了在使用微区块存取对存储通道读写数据之前,确保存储通道内全部存储模块的全部存储集成电路支持微区块存取。因此,对微区块化启动存储模块和存储集成电路的这一自动检验通常在系统初始化期间的早期执行。在系统初始化期间对微区块化启动存储模块和存储集成电路的自动检验可以用硬件直接执行或在例如来自基本输入操作系统(BIOS)软件的软件辅助的情况下执行。
一种确定存储器是否支持微区块存取的方法是,比较在微区块存取被启动和禁止的情况下的写入数据读取数据。在本发明的一个实施例中,开始时在微区块存取被禁止的情况下将唯一模式或值写入存储位置X。然后尝试在每一存储模块和存储集成电路中启动微区块存取。然后,尝试从同一存储位置的存储器中读取,这实际上可包括跨多个存储子通道从不同存储位置的读取。然后,将不启动微区块存取情况下的写入数据与微区块存取可能已经启动时的读取数据相比较。如果存储子系统支持微区块存取,则使用同样的起始地址访问的写入数据和读取数据之间应该存在区别。如果不支持微区块存取,则在使用同样的起始地址访问时读取数据与写入数据相同。
简言之,微区块存取启动由对存储器的不连续扇区或组块的更小请求所构成的存储请求。微区块存取存储器体系结构允许读取和写入存储取出基于请求者的请求而在大小和结构上改变。为了正确地标识更小的组块,由微区块化存储控制器将附加的地址信息提供给系统存储器。例如,在本发明的一个实施例中,64位宽的存储通道(物理位宽)可被分成四个16位宽的子通道。在这一实现中,64字节的存储器存取(存储通道的逻辑字节宽度)由四个不连续的16字节组块构成(假定存储处理是8次阵发传送)。每一子通道使用某些唯一的地址信息。图3A是四个16位的子通道的示例性实现,每一子通道具有某些唯一的地址信息。微区块存储器体系结构的其它实现可改变每一子通道的大小和提供给每一子通道的独立地址线的数目。
存在数种可用来向存储阵列的每一子通道提供附加的独立地址信息的方法,包括:通过从存储控制器到存储集成装置路由选择新型的专用线提供附加的地址线或将存储模块中经过路由选择的未使用的纠错码(ECC)信号线重定为附加的地址线。独立的附加地址信息同样可以在典型的未使用期间内通过过载现有的地址线而提供,该未使用期间例如在当列地址被写入存储集成电路中的存储周期内。在这一情况下,微区块存取支持可以在存储模块中实现并且仍然向现有存储模块实现提供反向兼容性。这些方法可分别使用,或者组合本发明的各个实施例使用,以在所需数目的地址线上提供附加的地址信息,其中地址线包括任何附加的地址线。
在标准的存储通道中,例如基于双数据率(DDR)DRAM技术的存储通道,存储通道的逻辑宽度可被认为是M字节的宽度。数据的一个字节中有八个位。存储通道的逻辑宽度某种程度上与存储模块的阵发数据传送的长度相关。也就是说,通过使用从基址递增的连续地址,M字节的数据可通过形成一阵发数据传送来连续地访问。通常,要被存取(读取或写入)的字节块的基址是通道的逻辑宽度的整数倍。存储通道的物理宽度是存储控制器和存储模块之间的数据总线的位宽度。典型的最小阵发长度可以是具有可由地址线的最低有效位设置的起始字节顺序的八个存储周期。使用64位的典型物理宽度,8个存储周期存取存储通道中的64字节数据。因此,存储通道的典型逻辑宽度是64字节的数据。
如上所述,存储通道的逻辑宽度是可以从基址连续传送的字节数目,且存储通道的物理宽度是存储控制器和存储模块之间的数据总线的位宽度(“WDB”)。微区块化存储系统将存储通道的逻辑宽度和物理宽度平分为具有更小的逻辑字节宽度和更小的物理位宽度的子通道。
存储器的微区块存取将存储通道的物理宽度(WDB位)以及存储通道的逻辑宽度(M字节)分为S个子通道(WSC)。每一子通道具有WSC=WDB/S位的物理宽度以及N=M/S字节的逻辑宽度。因此,对于于每一阵发数据传送,N字节的数据可在每一子通道中的数据线的WSC位上传送。存储通道可具有在存储器中全部要存取的存储位置TML。每一子通道存取存储通道的全部存储位置的子集(TSML),其中TSML=TML/S。
在微区块存取存储器中,每一子通道可在彼此独立的存储通道上存取更小粒度的数据。为了使得它们完全地独立,单独的地址信号线可从存储控制器到每一子通道进行路由选择。为了避免路由选择太多单独的地址信号线,某些地址信号线可跨多个子通道共享,因而可以从一组公用地址中独立地选择出存储位置。因而,呈现给每一子通道的地址具有多个独立的地址位(“I”),其值可以不同于呈现给其它子通道的地址中的相应位。因此,当在每一子通道上传送的数据表示相邻的数据块时,每一子通道上的数据块并非必须从相邻的地址范围内形成。这是因为独立的地址位I可以来自于不同的位位置,如以下进一步所述。
本发明的实施例可使用于不同的系统中,诸如图1A-1B中所示。现在参照图1A,示出可利用本发明的实施例的典型计算机系统100的框图。计算机系统100A包括:处理单元101;输入/输出装置(I/O)102,诸如键盘、调制解调器、打印机、外部存储装置等等;以及监视装置(M)103,例如CRT或图形显示器。监视装置(M)103可以以人们可理解的格式,例如视频或音频格式来提供计算机信息。除了计算机系统,系统100可以是多个不同的电子系统。
现在参照图1B,示出可使用本发明的实施例的客户机服务器系统100B。客户机服务器系统100B包括与网络112耦合的一个或多个客户机110A-110M以及与网络112耦合的服务器114。为了发送或接收信息以及获取对服务器中可能需要的任意数据库和/或应用软件的访问权,客户机110A-110M通过网络112与服务器114通信。客户机110A-110M和服务器114可以作为典型的计算机系统100A的实例。服务器114具有带存储器的处理单元,并且可进一步包括一个或多个盘驱动存储装置。服务器114可使用于存储区域网络(SAN)作为例如网络附连存储器(NAS)装置,且具有盘阵列。服务器114的数据存取可在网络112上与多个客户机110A-110C共享。
现在参照图2,示出可使用本发明实施例的处理单元101的详细框图。处理单元101可包括如图所示耦合在一起的处理器电路201、存储控制块202、外部高速缓冲存储器203E、一个或多个存储通道204A-204N、图形控制器206以及输入/输出控制器207。处理单元101的处理器电路201、存储控制块202、高速缓冲存储器203E、图形控制器206以及输入/输出控制器207中的两个或多个元件的组合可集成在一起作为单个集成电路。例如,存储控制块202、图形控制器206以及输入/输出控制器207可以集成在一起作为集成电路210。作为另一示例,处理器电路201、存储控制块202、高速缓冲存储器203E、图形控制器206以及输入/输出控制器207可以集成在一起作为集成电路210’。作为又一示例,具有其存储控制器的存储控制块207可集成为处理器电路201。尽管连接在处理器电路201和存储控制块202之间的外部高速缓冲存储器203E被示为是集成电路210’的一部分,但它可以是单独的电路。常常,高速缓冲存储器203E保持在集成电路210’的外部,因为分开制造大存储容量更为有效。
处理器电路201可包括一个或多个执行单元或一个以上的处理器(同样称为核心处理器)作为一多处理器集成电路,例如处理器A-N 201A-201N。处理器电路201的每一处理器可具有一级或多级芯片上或内部高速缓冲存储器203I或共享同一内部高速缓冲存储器。其它级的高速缓冲存储器可在处理器201的外部并且通过接口连接到存储控制器,例如外部高速缓冲存储器203E。处理器电路201同样可以具有芯片上或内部随机存取存储器(RAM)以及芯片上或内部只读存储器(ROM),如同微型计算机可具有的那样。处理器201、它的一个或多个执行单元、以及一级或多级高速缓存可通过存储控制块202由一个或多个存储通道204A-204N读取或写入数据(包括指令)。
耦合在一个或多个存储通道204A-204N、处理器201以及图形控制器206之间的存储控制块202可任选地具有其自身的内部高速缓冲存储器203M,或者它可以在外部作为另一级的高速缓冲存储器。存储控制模块202包括一个或多个用于相应的一个或多个存储通道204A-204N中的每一个的微区块存储控制器MCA-MCN 208A-208N。
一个或多个存储通道204A-204N中的每一个包括一个或多个存储模块MM1-MMn。每个存储模块包括一个或多个存储集成电路或装置。一个或多个存储集成电路或装置可以是各种类型的存储集成电路,包括动态随机存取存储器(DRAM)电路、静态随机存取存储器(SRAM)电路、或者非易失性随机存取存储器(NVRAM)电路。然而,在本发明的优选实施例中,一个或多个存储集成电路是动态随机存取存储器(DRAM)电路。
一个或多个存储通道204A-204N中的每一个包括两个或多个存储子通道。在图2中,在每一个存储通道204A-204N中包括四个存储子通道205A-205D。尽管在每一存储通道中示出了四个存储子通道,但应该理解的是,存储通道的其它分割可以是具有包括偶数或奇数个子通道,例如两个存储子通道。存储通道的分割可随着存储通道的逻辑宽度或阵发长度的增长而变化。
每一存储通道204A-204N中的一个或多个存储模块MM1-MMn可配置成支持微区块存取。可由存储控制块使用一算法来确定一个或多个存储模块是否支持微区块存取。一个或多个存储模块上所包括的一个或多个存储电路或装置可配置成支持微区块存取。一个或多个存储电路可以是微区块化启动(MTE)的并被指派为支持特定的存储子通道。一个或多个存储电路可在模式寄存器中包括附加引脚或具有附加位以被微区块化启动并被指派为特定的存储子通道。在附加引脚由存储电路提供的情况下,外部跨接引脚、跨接电线或微开关(例如,DIP开关)可以用于配置微区块存取支持。在模式寄存器设置在存储电路中的情况下,每一子通道的数据总线的独立部分可以用于向模式寄存器加载适当的加载选通脉冲。
I/O控制器207可与存储控制块202耦合以将数据写入一个或多个存储通道204A-204N,因而其可由处理器201所存取。处理单元101可进一步包括与I/O控制器207耦合的无线网络接口电路(WNIC)213、有线网络接口电路或卡(NIC)214、通用串行总线(USB)和/或火线(FW)串行接口215、和/或盘驱动器216。无线网络接口电路(WNIC)213诸如通过无线局域网、wifi(IEEE 802.11)、蓝牙或其它无线电连接提供与基站无线电单元的无线电连接局域。无线网络互连(WNIC)213包括通过无线电波与基站无线电单元或其它移动无线电单元耦合的天线。NIC214提供以太网有线局域网络连接。USB/FW串行接口215允许系统扩展以包括其它I/O外围设备。光盘驱动器216是公知的并且提供了处理器201的可重写存储。盘存储装置216可以是软盘、zip盘、DVD盘、硬盘、可重写光盘、闪存或其它非易失性存储装置的一个或多个。
图形控制器206耦合于存储控制块202以读写数据到一个或多个存储通道204A-204N。处理器201可向一个或多个存储通道204A-204N写入数据,从而它可由图形控制器206存取并且可在图形显示器或视频装置上监视。图形显示器217可与图形控制器206耦合。视频接口218可与图形控制器206耦合。视频接口218可以是模拟和/或数字视频接口。
在处理单元101中,处理器201、I/O控制器207以及图形控制器206可以通过存储控制块202中的存储控制器在一个或多个存储通道204A-204N中存取数据。存储控制块中的存储控制器分别通过接口连接到存储通道204A-204N以在系统存储器与处理器201、I/O控制器207和图形控制器206之间读取和写入数据。在将微区块化存储控制器208A-208N分别通过接口连接到存储通道204A-204N中时,可存在作为存储接口的一部分的地址总线的地址信号线220、数据总线的数据信号线222以及控制和时钟信号线224。与I/O控制器207耦合的输入装置,诸如光盘存储装置216,同样可以向系统存储器读写信息。
通常,数据总线的数据信号线222被分为S个子通道。在图2中,其中S为四,数据总线的数据信号线222分为四个子通道,如由子通道数据线222A、222B、222C和222D所示并且与相应子通道205A、205B、205C和205D耦合。例如,64位总线被分为四组16位的数据线。在本发明的一个实施例中,当其它地址线从一个子通道与相邻的下一个子通道相独立时,在各子信道中部分地址信号线220可被共享。在本发明的另一个实施例中,地址信号线220可以完全独立为每一子通道。以下进一步描述地址信号线。
现在参照图3A,示出两个存储通道的框图。图3A示出与存储通道0 304A和存储通道1 304B耦合的组合的图形和存储控制器300,也称为主机300。每一个存储通道0 304A和存储通道1 304B各自被分成四个子通道305A、305B、305C和305D。每个存储通道具有独立的微区块存储控制器以支持存储通道的子通道。每一个存储通道具有独立的数据总线。例如,假定存储通道的每一数据总线是总共64位的数据位宽度,每一子通道与数据总线的16位独立组耦合。子通道305A与数据位D15-D0耦合,子通道305B与数据位D31-D16耦合,子通道305C与位D47-D32耦合,以及子通道305D与数据位D63-D48耦合.,如图3A中所示。
如上所述,在本发明的一个实施例中,当其它地址线从一个子通道到相邻的下一个子通道独立时,在每一子通道中部分地址信号线可被共享。例如地址信号线310(标示为Axx-A10、BA2-BA0)对全部子通道305A-305D共享。也就是说,每一地址信号线310可被扇出并与每一子通道耦合。相反,地址信号线311A(标示为A9-A6的第一组)独立地耦合于子通道305A。地址信号线311B(标示为A9-A6的第二组)独立地耦合于子通道305B。地址信号线311C(标示为A9-A6的第三组)独立地耦合于子通道305C。地址信号线311D(标示为A9-A6的第四组)独立地耦合于子通道305D。
理想地,设置足够的独立地址线以允许在所分配的存储页面大小粒度内完全的可寻址性。页面大小通常由管理图形存储空间的软件设置。例如考虑在两通道高速缓存线交叉存取的存储子系统中4千字节(KB)的页面大小的分配情况。2KB的页面被映射到每一存储通道。在这一情况下,五条地址线可用于在存储器的每一物理页面中寻址32条64B的高速缓存线。因此,15条附加的独立地址线对于四个16位子通道的实现应该是理想的。在标示为第一组地址线A10-A6的初始的第一组地址信号线311A之上,这些被示为地址信号线311B-D,其被分别标示为标示为A10-A6的第二、第三和第四组地址线。如果较少的附加独立地址线变为可用,则可由每一子通道寻址的独立地址空间被减少。如果较多的独立地址线变为对每一子通道可用,则可由每一子通道寻址的独立地址空间被增加。为了实现两个32位的子通道,需要具有五条附加的独立地址线。
额外的地址信号线可在存储控制器和子通道之间路由选择,以提供如图3A中所示的独立地址信号线。地址信号可过载到现有的地址线之上。额外的地址信号线的路由选择以及地址信号的过载的组合可用于支持微区块存取。可选地,每一子通道可设置有完整的一组独立地址线,而不需要如图3A中所示的共享地址线310。然而,通过避免独立地址信号线的路由选择,使用共享地址信号线310节省了印刷电路板区域。
现在暂时参照图6,示出使用共享和独立的地址位的存储通道的地址信号线的位图。也就是说,图6是示出物理地址中的地址位的译码的地址位图。向每一子通道提供一组I独立地址位(IAB)以支持微区块存取。可向全部的地址通道提供一组零或多个SA共享地址位(SAB)。一组Q子通道选择位(SSB)用于向子通道分配存储请求。一组P子通道数据地址位(SDAB)用于在DRAM存储器内的每一高速缓存线中寻址字节。该组P SDAB位通常是地址信号线图的最低有效位。该组Q SSB位和P SDAB位实际上并不在存储控制器和子通道存储器中路由选择,需要理解的是正在存取的数据块的基址是阵发大小的整数倍。也就是说,P SDAB位可以由存储集成电路,例如由根据双数据率(DDR)存储规范的DRAM装置在内部生成。当图6示出被选为共享的某一地址位和独立地址位时,可以替代地分配其它地址位。也就是说,通常将P子通道数据地址(SDAB)位上的地址位分为SA共享地址(SAB)位以及I独立数据地址(IAB)位是任意的。
现在参照图4A-4C,使用区块化的地址空间示出三角形的理想化的像素图再现图。图4A示出三角形401使用非微区块化存储系统在区块化的地址空间内的光栅化,其中存储系统的逻辑通道宽度是64字节。图4B-4C示出三角形401使用微区块化存储系统在区块化的地址空间内的光栅化。三角形401的光栅化单元是片段402。片段402可表示像素或纹素。区块化的地址空间是,将数据的逻辑二维阵列组织为一组子阵列的空间,从而子阵列内的数据被存储于相邻范围的地址空间中并且因而在存储器中高定位。被线性寻址的数据的逻辑二维阵列不具有这种子阵列;替代地,例如在一行中穿越从左到右地线性寻址片段402的数据,然后从上到下下移到下一行。因此,垂直的相邻片段402可以在存储器中相隔甚远。
和图4A相比,图4B-4C示出了微区块存储器存取如何提供更小存储请求的优点。图4A-4C中的每一个示出了三角形401针对不同存储请求大小的光栅化。
在图4A中,单个的存储请求包括了表示16个片段的数据。每一个单独的方块402表示一个片段,特别地每个片段有32位或4个字节的数据。图4A-4C示出20×20的片段阵列。如图4A中所示,4×4的片段阵列是跨距(span)404,并表示64字节的存储请求。子跨距424在图4C中示为2×2的片段阵列或16字节的存储请求。双倍子跨距414在图4B中示出,它是定址为2×4的片段阵列的32字节的存储请求。
图4A-4C之间的区别示出随着存储请求大小的降低在过取出方面理论上的降低量。在图4A-4C的每一个中,三角形401需要存取相同数目的片段。然而,存储器存取通常传送多于一个片段的数据,从而它可包括表示三角形401内的片段408以及三角形401外的片段406的数据。表示三角形401外的片段406的数据是被过取出的,从而导致存储带宽的低效使用。
在图4A中,64字节的存储器存取传送跨距404的数据,即4x4块片段。例如,跨距404A是第一64字节的存储器存取。跨距404B是第二64字节的存储器存取。例如,考虑到三角形401包括了约57个要再现的像素。对于64字节的存储器存取的情况,需要10个存储器存取来存取三角形内的65个片段。附加的95个片段的数据被存取,但是可能不被使用。
在图4B中,32字节的存储器存取传送双倍子跨距的数据,即2x4块片段或64字节存储器存取的二分之一。例如,双倍子跨距414A是第一32字节的存储器存取。双倍子跨距414B是第二32字节的存储器存取。对于32字节的存储器存取的情况,需要13个存储器存取来存取三角形内的65个片段。附加的47个片段的数据被存取,但是可能不被使用。
在图4C中,16字节的存储器存取传送子跨距的数据,即2x2块片段或64字节存储器存取的四分之一。跨距424A是第一16字节的存储器存取。跨距424B是第二16字节的存储器存取。跨距424C是第三16字节的存储器存取。跨距424D是第四16字节的存储器存取。对于16字节的存储器存取的情况,需要22个存储器存取来存取三角形内的65个片段。附加的13个片段的数据被存取,但是可能不被使用。
考虑另一个示例,其中在图4A、4B和4C的每一个中,三角形401需要65个像素或片段(260字节)显示。在图4A中,存取存储器的约10个跨距,其中包括用于再现三角形401的160个像素或640字节的数据。在图4B中,存取约13个双倍子跨距的数据,其中包括用于再现三角形401的112个像素或448字节的数据。在图4C中,存取约22个子跨距的数据,其中包括用于再现三角形401的88个片段或352字节的数据。因此,与图4A相比,在图4B和4C中,通过实现使用每一存储通道内的子通道的微区块寻址,减少了过取出的像素或片段406。
如上所述,图4B-4C示出三角形401使用包括存储子通道的微区块化存储系统在区块化的地址空间内的光栅化。在图4B中,64字节宽的存储通道可由两个32字节宽的存储子通道形成。在这种情况下,微区块化存储器存取将两个不连续的32字节存取组合为一个64字节的通道,两个子通道中的每一个用于64字节的总大小。三角形的光栅化导致对存取双倍子跨距414的请求。例如,微区块存储控制器可以将存取双倍子跨距414C和414D的请求组合为一个微区块存储器存取。作为另一个示例,存储控制器可以将存取双倍子跨距414E和414F的请求组合为单个微区块化的存储请求。存取双倍子跨距的请求的其它组合可以形成为单个微区块化的存储请求或通道。在本发明的一个或多个实施例中,组合的子通道通道具有在SA共享址位中共享的地址位模式。
在图4C中,64字节宽的存储通道可以从四个16字节宽的存储子通道中形成。在这种情况下,微区块存储器存取将四个不连续的16字节的通道组合为一个64字节的通道,四个子通道中的每一个用于64字节的总大小。三角形的光栅化导致对存取子跨距424的请求。例如,微区块存储控制器可以将存取子跨距424E、424F、424G和424H的请求组合为单个微区块存储器存取。存取子跨距的请求的其它组合可形成为单个微区块存储请求或存取。在本发明的一个或多个实施例中,所组合的子通道存储器存取具有在针对四个存储子信道中的每一个的SA共享地址位中共享的地址位模式。
在理想的情况下,假定可通过微区块事务汇编器(transaction assembler)利用全部的微区块化存储请求来建立没有未用子通道的64B的存储事务。也就是说,微区块存取的效率取决于事务汇编器326A、326B构造完全占用的存储事务的能力。
现在参照图3B,示出包括与系统存储通道和一个或多个高速缓冲存储器203耦合的微区块化存储控制块300的多通道存储子系统。在存储控制块300内,多通道存储子系统包括针对进入系统存储器的每一存储通道的微区块存取存储控制器。
在图3B中,提供了两个存储通道304A和304B。因此,提供了两个微区块存储控制器321A和321B用于相应的存储通道304A和304B。每一存储通道304A、304B可由S子通道305A-305S组成。每一子通道305逻辑上是N字节的宽度和B位的宽度。每一存储通道304逻辑上是M=N*S字节的宽度。
在存储控制块300和高速缓冲存储器203之间是写入数据路径301和读取数据路径302,它们可包括其上可作出读取和写入请求的命令路径或地址路径。在读取事务的情况下,将N字节从存储控制块300通过读取数据路径302返回至高速缓冲存储器203。在写入事务的情况下,将N字节的写入请求从高速缓冲存储器203通过写入数据路径301提供至存储控制块300。当在高速缓冲存储器203和存储控制块300之间作出N字节的读取或写入请求时,请求被描述为2x2区块的阵列以表示像素或纹素的2x2阵列,例如可在四个子通道的情况下使用。
存储控制块300包括通道分配器320、第一存储控制器321A以及第二存储控制器321B。存储控制块300同样与存储通道0 304A和存储通道1 304B耦合。存储通道0 304A包括“S”个子通道305A-305S。相似地,存储通道1 304B包括“S”个子通道305A-305S。共享的地址线310将每一存储控制器322耦合到每一子通道305A-305S。独立的地址线311A-311S耦合到相应的子通道305A-305S。每一数据总线子通道部分312A-312S耦合到相应的存储子通道305A-305S。
每一存储控制器321A和321B分别包括子通道分配器322A-322B、重新排序缓冲器324A-324B以及事务汇编器326A-326B。
对N字节数据(即通道的逻辑宽度)的存储请求被耦合到通道分配器320。通道分配器取决于包括存储通道的可变性的环境将存储请求分配到存储通道0304A或存储通道1 304B。在通过通道分配器被分配到存储通道之后,该N字节请求被耦合到相应的存储控制器321A或321B,并且耦合到子通道分配器322A或322B。
子通道分配器322A和322B将N字节的请求分配到子通道305A-305S之一。现在暂时参照图6,子通道标识分配s可以由下述过程所定义:(1)请求地址“A”右移P SDAB位,从而产生新的整数值(其中,)。(2)子通道分配的值“s”是
Figure GSB00000070779500143
的最低有效QSSB位(例如,
Figure GSB00000070779500144
((1<<Q)-1))。
每一微区块存取存储控制器321A-321B分别具有重新排序缓冲器324A-324B。重新排序缓冲器将存储请求重新排序到子通道,从而提高每一存储通道中的带宽效率。向存储控制器322A或322B输入在地址“A”读取或写入N字节数据块的请求,将其分配到子通道,并且置于重新排序缓冲器中。重新排序缓冲器可以实现为每一子通道的重新排序队列。重新排序缓冲器的其它实现也是可能的。
通过从重新排序缓冲器中选择S个读取请求(每个子通道一个读取请求),事务汇编器326A、326B形成存储读取事务,从而全部的S个请求具有相同的共享地址位。通过从重新排序缓冲器中选择S个写入请求(每个子通道一个写入请求),它形成存储写入事务,从而全部的S个请求具有相同的共享地址位。例如,事务汇编器326A、326B可在存储通道中从四个16字节的请求(每个子通道一个请求)汇编64字节的事务。
当尝试形成事务时,微区块化控制器中的事务汇编器可能不能发现并发的请求组(每个子通道一个),从而SA共享地址位跨全部子通道相同。在这种情况下,在未发现请求的子通道上不传送数据,或如果数据在该子通道之上传送,则数据可被弃除。
现在参照图5A-5C,示出每一存储通道500A-500C的示例性字节排序。在图5A中,存储通道500A具有从0到63编号的64字节的传送大小。64字节的逻辑宽度可按存储通道的64位物理宽度存取。
在图5B中,存储通道500B可被分为两个存储子通道505A和505B,其各自传送64字节传送的二分之一,从而每一子通道传送32字节。对于存储子通道505A,所存取的存储字节从0到31编号,其是从图5A重新排序的。对于存储子通道505B,所存取的字节从32到63编号,其是从图5A重新排序的。
在图5C中,存储通道500C可被分为四个存储子通道515A、515B、515C和515D,其各自传送64字节传送的四分之一,从而每一子通道传送16字节。存储子通道515A存取从0到15编号的存储字节,其是从图5A重新排序的。存储子通道515B存取从16到31的存储字节,其是从图5A重新排序的。存储子通道515C存取从32到47编号的字节,其是从图5A重新排序的。存储子通道515D存取从48到63编号的字节,其是从图5A重新排序的。以这种方式,当字节编号被重新排序并分配时,64字节传送跨每一存储子通道被平分。
现在再参照图6,在本发明的其它实施例中,可以不同地重新排序字节。
如上所述,为了支持微区块存储器存取,当利用Q子通道选择位和P子通道数据地址位来寻址由高速缓存线存取的物理字节时,可利用SA共享地址位连同I独立地址位。对于64字节的高速缓存线,Q子通道选择位和P子通道数据地址位之和为6。
在图6中,我们指定P子通道数据地址位为A0-A8。在图6上,Q子通道选择位标示为A10、A8,以及其间的编号。在图6中,I独立地址位被标示为A9、A10、A16、A18、A24,以及其间的编号。在图6中,SA共享地址位被标示为例如A11、A15、A17、A19、A20、A25、A26和Ax。附加的共享地址位可以在其间使用。
通过I独立地址位,子通道地址在彼此的地址偏移内独立。为了使得子通道完全地彼此独立,可使用从存储控制器到每一子通道的命令和地址的完全复制,但是将显著地增长存储控制器的引脚数、用于输入/输出驱动器的硅区域、和主机印刷电路板或主板所需的布线路由选择区域。代替地,本发明的实施例跨全部子通道共享子通道地址位的一个或多个部分,并允许剩余的I对于每一子通道独立,如图6中所述。I独立地址位的明智选择可因此提供增高的带宽效率,该选择对每一子通道复制I地址信号的成本进行过权衡。
如上所述,I独立地址位可以以不同的方式获得,包括对每一存储通道路由选择附加的地址位和/或使用地址过载。
现在参照图7,示出了存储模块(MM)710,其是示例性的存储模块MM1-MMn。存储模块710可以是任意的类型,例如单列直插内存组件(SIMM)或例如双列直插内存组件(DIMM)。存储模块710包括与印刷电路板751耦合的存储集成电路芯片(“存储装置”)752。印刷电路板751包括与主机印刷电路板762的边缘连接器760耦合的边缘连接器或边缘连接754。
存储模块710支持微区块存取或微区块存储器存取。然而,其它现有的存储模块将不支持微区块存取或微区块存储器存取。不支持微区块(micro-tiling)或微区块存储器存取的现有的存储模块可被插入到主机电路板762的一个边缘连接器760,而支持微区块存取或微区块存储器存取的存储模块710被插入到主机印刷电路板762的其它边缘连接器760。以这种方式,支持微区块存取的存储模块可调配到系统中不支持微区块存取的存储模块。
在本发明的一个实施例中,为了支持存储器的微区块存取,附加的地址线可通过使用印刷电路板751的边缘连接754的引脚引出线的未使用或未连接的引脚而独立地提供到存储集成电路752。边缘连接754的这些未使用或未连接的引脚可用于将附加的独立地址信号线路由到存储集成电路752。在安装到主板752上的相应边缘连接器760中发现相同未用引脚。附加的独立地址信号线763穿过主板762从存储控制块中的存储控制器路由到现有连接器以提供附加的独立地址信息。可以发现多种不同类型的存储模块的边缘连接754的引脚引出线的未使用或未连接引脚。
例如,奇偶性或纠错码(ECC)功能可具有保留为边缘连接754的引脚引出线的一部分的引脚。为了降低用户的存储模块的成本,奇偶性或ECC功能通常保留在存储模块之外,从而保留的信号线和引脚通常变得未使用。也就是说,奇偶性/ECC信号线可以路由到主板的全部边缘连接,但是仅当ECC启动存储模块(例如,双内存组件(DIMM))安装于其中时才使用。存储模块的未使用的现有的ECC线/引脚被重定为独立的地址信号线并用于在非ECC存储模块中实现微区块存取。然而在将ECC线/引脚用于微区块存取的过程中,ECC和微区块存取功能不能在同一时间在存储模块上启动。这一方案在不是通常需要(或要求)奇偶性/ECC启动的环境中很有作用。
作为另一个示例,在边缘连接754的引脚引出线中保留的可任选低态有效的数据信号线经常变为未使用,因为它们是所提供的低态有效的数据信号线的冗余。作为又一个示例,保留在存储模块的边缘连接754的引脚引出线内的可任选测试引脚经常因为未使用该测试模式而变为未使用。
在任何情况下,这些未使用的引脚被重定为独立的地址信号引脚755A-755D,且独立的地址信号线763在主机印刷电路板762中路由选择,独立的地址信号线756A-756D在存储模块710的PCB751中路由到存储集成电路752。
在某些情况下,存储模块710可以进一步包括支持集成电路750,诸如缓冲集成电路(“缓冲”)或纠错控制(ECC)集成电路。然而如上所述,如果ECC不被设置在存储模块710上,则以其它方式被保留用于ECC且未使用的边缘连接754的引脚可用于进入存储子通道的独立地址线以支持微区块存取。
为了支持存储子通道的微区块存取和独立寻址,存储模块710上的存储集成电路752可以被分割并且分配给不同的存储子通道,诸如如图7中所示的四个存储子通道205A、205B、205C和205D。存储集成电路752的数据I/O通常为4、8或16位的宽度。对于存储通道的64位物理宽度和每一存储子通道的16位物理宽度,四个16位宽的存储集成电路752分别被一一分配给四个存储子通道205A、205B、205C和205D。八个8位宽的存储集成电路752分别被一次两个地分配给四个存储子通道205A、205B、205C和205D以提供存储通道的64位物理宽度和每一存储子通道的16位物理宽度。十六个4位宽的存储集成电路752分别被一次四个地分配给四个存储子通道205A、205B、205C和205D以提供存储通道的64位物理宽度和每一存储子通道的16位物理宽度。
在两个存储子通道的情况下,四个16位宽的存储集成电路752分别被一次两个地分配给两个存储子通道,以提供存储通道的64位物理宽度和每一存储子通道的32位物理宽度。八个8位宽的存储集成电路752分别被一次四个地分配给两个存储子通道,以提供存储通道的64位物理宽度和每一存储子通道的32位物理宽度。十六个4位宽的存储集成电路752分别被一次八个地分配给两个存储子通道,以提供存储通道的64位物理宽度和每一存储子通道的32位物理宽度。
通过使用存储模块和标准边缘连接器760的边缘连接754的未使用引脚,存储模块710可反向兼容现有的存储子系统。
考虑例如图3A,其中在每一存储通道中发现四个独立的存储子通道。每一子通道可设置附加的独立的四条地址线以独立地存取每个子通道中的存储区域。地址线311A-311D(标示为A9-A6)在每一子通道内独立。给定现有的一组四条的地址线,要被路由选择的附加地址线的总数是3乘以4或12条独立的地址信号线。在主板上将附加的信号线路由到存储模块可用于在现有的边缘连接器和存储模块的引脚引出线不是完全地被利用时添加独立的地址信令。
现在参照图8,示出存储集成电路800的框图。存储集成电路800可被包括在存储模块MM1-MMn内作为一个或多个存储装置752。存储集成电路800包括如图所示耦合在一起的存储阵列801、行地址解码器802、位线预充电/刷新逻辑电路803、列解码器804、读出放大器阵列和写驱动块806、控制器808、地址缓冲器811以及微区块控制(MT)逻辑电路812。微区块控制逻辑电路812同样可称为过载逻辑电路(OL)。
控制器808包括具有可被设置/初始化以控制存储集成电路800的总体功能的多个位的模式寄存器810。模式寄存器包括存储位的位存储电路。模式寄存器810的位可通过对地址线820或数据线821施加与加载选通脉冲相应的合适的位设置来进行设置。加载选通脉冲可通过在存储器空置时触发耦合于存储集成电路的控制器808中的一条或多条控制线822而生成。控制器808接收一条或多条控制线822。该一条或多条控制线822可包括行地址选通脉冲RAS#、列地址选通脉冲CAS#、写启动WE#、芯片选择CS#、触排选择BA0、BA1、BA2,或其它标准的存储集成控制输入。
更具体地,模式寄存器810可用于配置用于微区块存储器存取的集成电路800。如以下进一步所述地,模式寄存器810的一个位是微区块启动位。微区块启动位可以为高态有效,且称为MTE位。可选地,微区块启动位可以为低态有效,且称为MTE#。在任一情况下,微区块启动位通常可称为微区块启动位或MTE位。微区块启动位缺省重置为使得装置初始开启或重置时微区块存取被禁止。这允许存储模块710和存储集成电路800在被插入不支持微区块存取的系统之中时反向兼容。模式寄存器810进一步具有一个或多个子通道选择(SCS)位以指示所纳入的存储器可对其分配并寻址的存储子通道。MTE位和一个或多个SCS位被耦合于微区块控制逻辑电路812。在不支持微区块存取的存储模块中,在任一模式寄存器中都不具有可被置位以启动位区块控制逻辑电路812的MTE位850。
当加载选通脉冲可由加载模式寄存器命令生成并用于向模式寄存器加载位设置时,可引入新的命令以从存储集成电路中读出模式寄存器中的位设置。状态命令可被提供给存储集成电路以读出模式寄存器的位。可通过在存储器空置时唯一地触发或设置一条或多条耦合到存储集成电路的控制器808之中的控制线822形成状态命令。在这种情况下,可从支持微区块存取的存储集成电路中读出MTE位850。在不支持微区块存取的存储模块中,在模式寄存器中没有要读出的MTE位设置并且没有状态命令可用。在这样的情况下,如果不支持微区块存取,则存储模块和其上的存储集成电路不对状态命令和/或MTE位设置作出响应。
微区块逻辑电路812耦合于多条地址信号线820,从而通过地址缓冲器811将地址耦合于列地址解码器804和/或行地址解码器802。地址缓冲器811可将地址信号锁存于内部地址信号线上以为地址解码器保持它们。为了支持对存储阵列801的微区块存储器存取,控制逻辑电路812同样耦合于控制器的模式寄存器以接收微区块启动位和至少一个子通道选择位。响应于微区块启动位和至少一个子通道选择位,控制逻辑电路812选择一条或多条地址信号线,通过这些信号线捕捉所分配的预定子通道的独立地址信息。也就是说,仅可向预定的子通道分配地址信号线的子集。控制逻辑电路812选择地址信号线的这个子集以提取独立地址信息。其它地址信号线可用于其它子通道或某些可以是每一子通道中的共享地址信号线。控制逻辑电路812将独立地址信息耦合于列地址解码器804和/或行地址解码器802。由控制逻辑电路选择一条或多条地址信号线可进一步响应于列地址加载信号(CAS#)和事务启动信号。
为了进一步将一个有效位的独立地址信息调配到(swizzle)另一有效位的位置,可将附加的控制逻辑电路添加到微区块控制逻辑电路812中或其周围。这提供了某种程度上的线性寻址方法,例如用于启动微区块时的屏幕刷新。
读出放大器阵列和写驱动块806与数据输入/输出(I/O)总线耦合,且可从控制器808接收控制信号以从存储阵列读取数据或向存储阵列801写入数据。读出放大器阵列和写驱动块806通过数据输入/输出(I/O)总线821接收要写入存储阵列801中的数据并且将已经从存储阵列801中读取的数据清除。数据输入/输出(I/O)总线821包括通常为4、8或16位宽的存储集成电路800的双向数据线。
存储阵列801由可组织成多行多列的存储单元构成。存储单元通常是动态随机存取存储器(DRAM)单元,但是可任选地是静态型的随机存取存储器(SRAM)单元或非易失性可编程(NVRAM)型的可重写存储单元。
为了在存储阵列801中寻址一行存储单元,行地址解码器802接收地址线上的行地址并在字线(WL)之一中生成信号。列解码器804同样接收地址线上的列地址并且选择要存取存储单元行内的哪一列。列解码器804实质上选择要存取的存储单元中的位线。在读取访问中,列解码器804起到多路复用器的作用。在写入访问中,列解码器804起到解多路复用器的作用。列地址解码器804响应于共享的列地址信号选择性地存取存储阵列801内的存储单元列,并且如果置位了模式寄存器内的微区块启动位,则列地址解码器804进一步响应于独立子通道列地址信号选择性地存取存储阵列801内的存储单元列。
读出放大器阵列和写驱动块806可包括在读取操作期间确定逻辑1或逻辑0是否已被存储于所存取的存储单元之中的读出放大器。所寻址的存储单元在读取操作期间尝试将逻辑1或逻辑0驱动到所选定的存储阵列的位线。读出放大器在读取操作期间检测逻辑1或逻辑0是否已经由所寻址的存储单元驱动到存储阵列的选定位线。读出放大器阵列和写驱动块806可进一步包括写驱动器,以在写入操作期间将逻辑0或逻辑1驱动到存储阵列的选定位线并且驱动到所寻址的存储单元之中。
预充电/刷新块803与存储阵列801中的位线耦合。预充电/刷新块803可以在读取或写入操作期间在寻址存储单元之前预先处理位线。预充电/刷新块803同样可以在不活动期间内刷新存储在存储阵列801的存储单元中的数据。
在特定的存储周期期间,存储集成电路800中的某些现有的信号线没有被使用并且可在这个时段被重定用于其它目的。例如在CAS(列地址选通脉冲)周期期间,不是全部的地址线都被使用。这些未使用的地址信号线可在CAS周期内重定用途以将附加的地址信息传送给存储模块(例如,DIMM)以及其中的存储集成电路装置。存储控制块202中的存储控制器202在CAS周期期间通过这些未使用的地址信号线发送附加的地址信息。具有添加的微区块控制逻辑电路812和模式寄存器810内的位的存储集成电路800在之前CAS周期内未使用的地址信号线中识别并解码这些过载的信号。
现在参照图9,示出支持微区块存取的示例性微区块存储控制逻辑电路812A,其与存储集成电路的模式寄存器810A耦合。微区块存储控制逻辑电路812A的示例性实现解码具有在未使用的存储周期,诸如CAS周期内提供的附加地址信息的过载的地址信号线。微区块存储控制逻辑电路812A的示意图假定设置有四个子通道,其中的每一个具有16字节的逻辑宽度以支持微区块存取。
微区块存储控制逻辑电路812A的中心是双四输入多路复用器900,以捕捉独立的地址信息。微区块存储控制逻辑电路812A的双四输入多路复用器900在多用复用的输出(A3’和A4’)中选择性地输出共享的列地址信号或独立的子通道列地址信号。双四输入多路复用器900的输出(A3’和A4’)耦合到列地址解码器的输入。独立的子通道列地址信号是一个或多个已选择由相应的存储子通道接收的独立列地址信号。
微区块控制逻辑电路812A从存储集成电路的地址引脚中接收地址线。微区块控制逻辑电路812A将地址提供给地址缓冲器以分配到行地址解码器和列地址解码器。存储集成电路的一些地址引脚接收共享的行地址信号、共享的列地址信号、独立的列地址信号或其组合。例如,地址引脚A5-A9和A13在微区块控制逻辑电路812A周围传递,并且可以将共享的行地址信号和/或共享的列地址信号接收到存储子通道的每一个之中。地址引脚A0-A4和A10-A12耦合到双四输入多路复用器900,并且如果微区块存取被启动,则可接收共享的行地址信号和独立的列地址信号。如果微区块存取未被启动,则耦合到双四输入多路复用器900的地址引脚A3和A4可接收共享的行地址信号和/或共享的列地址信号。列地址加载选通脉冲引脚CAS#与控制逻辑电路812A耦合以接收列地址加载选通脉冲信号并且选择性地在分配给用于在存储集成电路内捕捉的给定子通道的地址引脚中接收适合的一个或多个独立的列地址信号。列地址加载选通脉冲信号同样可用于接收并捕捉适当的地址引脚的共享列地址信号。
模式寄存器810A可包括三个位存储电路,诸如存储微区块启动(MTE)位、子通道选择位0(SCS0)位和子通道选择位1(SCS1)位的设置的触发电路或存储单元。模式寄存器810A中的这三个位用适当的子通道选择位和微区块启动位编程。在初始化期间,例如开机或重置,从位设置中设置/重置存储集成电路所接收到的这三个位的位设置。当存储集成电路空置,且没有存储器存取在处理之中时,这三个位同样可被设置/重置。位设置也可通过地址或数据信号线接收或响应于由一条或多条耦合到存储集成电路中的控制线输入所生成的加载选通脉冲信号而加载到模式寄存器中。如果微区块存取在存储集成电路中启动,则置位区块启动位MTE。当MTE位为高态有效时,它被设置为高逻辑电平。如果低态有效,则MTE#位设置为逻辑低电平。在图9的示例性控制逻辑电路中,可能在存储通道内有四个或更少的子通道。SCS0和SCS1位将存储集成电路分配到四个存储子通道之一。同一存储模块中的其它存储集成电路可被分配到四个存储子通道的另外一个。
每一子通道的独立地址信息通过现有的地址线,诸如地址线A0-A4和A10-A12在CAS周期内设为可用。在这一示例中,正常使用地址线A3和A4。因此,地址线A0、A1、A2、A10、A11、A12和A13是过载信号线(A13可以是微区块事务启动-以事务为基础指定)。在现有的地址线上过载信号线的这一方法实际上向存储集成电路装置提供了六条附加的地址线(A0-A2和A10-A12),而不使用附加的迹线(即,布线的路由选择)或使用附加的引脚。
微区块存储控制逻辑电路812A被设置于每一存储集成电路中,从而适当的独立子通道地址信息响应于存储在模式寄存器中的子通道选择位而从地址线A0-A4和A10-A12中选择。子通道选择位的设置从模式寄存器810A路由到微区块存储控制逻辑电路812A以控制多路复用器900的输入选择处理。多路复用器900的输出端耦合到地址信号线A3’和A4’。地址信号线A3’和A4’被耦合到地址解码器(例如,列地址解码器804)以在存储阵列内选择存储单元。
微区块控制逻辑电路可在列地址写入访问时间期间,在CAS#是低态有效(“CAS周期”)时过载存储地址信号线A3’和A4’。也就是说,地址位A0、A1、A2、A10、A11和A12通常是在列地址不通过微区块存取被写入存储集成电路时的未使用地址位。地址位A3和A4代替A3’和A4’是用于将列地址写入到存储集成电路的地址位。当地址位通常是在CAS周期期间不通过微区块存取而未使用时,它们可以用于在行地址正被写入到存储集成电路中时,当RAS#是低态有效(“RAS周期”)时在存储集成电路中选择行地址。在这里将它称为地址过载。当A0、A1、A2、A10、A11和A12在图9中图示为在列地址选通脉冲CAS#期间未使用的地址位时,不同的未使用的地址位可被用作过载地址信号线以支持微区块存取。
微区块存储控制逻辑电路812A包括如图示耦合在一起的双四输入多路复用器900、三输入与门903、多个二输入与门904-911以及多个非门912-918。可以很好地理解,与门可通过组合与非门和耦合到与非门的输出端的非门而形成。
双四输入多路复用器900是一对四到一的多路复用器,其中每一个具有耦合在一起的第一选择控制输入S0和耦合在一起的第二选择控制输入S1。第一个四到一多路复用器接收输入1I0-1I3,并且提供响应于选择控制输入S0和S1的输出1Y。第二个四到一多路复用器接收输入2I0-2I3,并且提供响应于选择控制输入S0和S1的输出2Y。如果S0和S1都是逻辑低电平或0,则输入1I0和2I0被多路复用到相应输出1Y和2Y上。如果S0是逻辑高电平或1并且S1是逻辑低电平或0,输入1I1和2I1被多路复用到相应输出1Y和2Y上。如果S0是逻辑低电平或0并且S1是逻辑高电平或1,输入1I2和2I2被多路复用到相应输出1Y和2Y上。如果S0和S1都是逻辑高电平或1,则输入1I3和2I3被多路复用到相应输出1Y和2Y上。
双四输入多路复用器900的第一四输入多路复用器在其相应的1I0-1I3输入接收地址位A3、A0、A1和A2,并且选择它们之一以驱动到在其1Y输出端的地址信号线A3’。第二四输入多路复用器在其相应的2I0-2I3输入接收地址位A4和A10-A12,并且选择它们之一驱动到在其2Y输出端的地址信号线A4’。选择控制输入端S0和S1分别耦合于与门904-905的输出端。
与门903在其输出端生成微区块模式信号(MTM)902A。微区块模式信号902A是高态有效,且在当独立地址信号在耦合到双四输入多路复用器900的过载地址信号线中的适当时间生成。非门912在其耦合到与门903的输入端的输出端处将低态有效的CAS#信号反相为高态有效CAS信号。与门903将CAS信号、MTE位设置(ME)和事务启动信号(TE,地址位A13)逻辑上相与以生成微区块模式信号902A。那就是说,如果由MTE位启动微区块并由TE信号启动事务,则当CAS#变为低电位时生成微区块模式信号(MTM)902A。
微区块模式信号(MTM)902A被耦合到与门904和905的输入端以选通子通道选择位SCS0和SCS1。如果微区块模式信号(MTM)902A因为任意原因而是低电位,则到多路复用器900中的选择控制S0和S1在与门904和905的输出端是逻辑低电平或0。当S0和S1都是逻辑低电平或0时,分别与输入1I0和2I0耦合的地址位A3和A4分别多路复用到相应输出端1Y和2Y处的地址信号线A3’和A4’。位A3和A4仅仅分别传送到信号线A3’和A4’。如果微区块存取不被启动或如果位A3和A4用于诸如行寻址的任何其它目的,则这是缺省条件。
当微区块模式信号(MTM)902A是高态有效时,子通道选择位SCS0和SCS1分别经过与门904和905分别耦合到多路复用器900的选择控制输入端S0和S1。因此,当微区块模式信号(MTM)902A由与门903生成为高态有效时,子通道选择位SCS0和SCS1控制多路复用器900的相应四个输入端到相应输出端的多路复用的选择。有效地设置子通道选择位SCS0和SCS1,即指示存储IC可向其分配的子通道,可确定与多路复用器900耦合的哪一地址位线用于在CAS周期期间捕捉独立地址信号。
子通道选择位SCS0和SCS1的设置将从一个子通道到相邻的下一子通道地变化。对于四个子通道,分别存在四个对于SCS0和SCS1的不同设置。但是注意,被设计为支持四个子通道的微区块控制逻辑电路都可通过仅仅使用对子通道选择位SCS0和SCS1的两个不同设置而容易地减少到支持两个子通道。通过SCS0和SCS1的不同设置,多路复用器900选择不同的地址信号线来在生成微区块模式信号时捕捉独立地址信号。
微区块模式信号(MTM)902A同样分别在与门906-911的第一输入端处耦合到非门913-918。地址信号A0、A1、A2、A10、A11和A12分别耦合到与门906-911的第二输入端。微区块模式信号(MTM)902A分别在与门906-911的输出端A0’、A1’、A2’、A10’、A11’和A12’处有效地选通存储集成电路中地址线A0、A1、A2、A10、A11和A12上的信号。也就是说,当微区块模式信号(MTM)902A是逻辑上的低电平或0时,与门906-911允许地址线A0、A1、A2、A10、A11和A12中的信号传递到输出端A0’、A1’、A2’、A10’、A11’和A12’和地址解码器。当微区块模式信号(MTM)902A是逻辑上的高电平或1时,与门906-911将全部输出A0’、A1’、A2’、A10’、A11’和A12’驱动为逻辑低电平或零。因此,当微区块模式信号(MTM)902A是高态有效以捕捉独立的地址信息时,输出A0’、A1’、A2’、A10’、A11’和A12’不被使用,因为它们全部都被驱动为0。
检测微区块启动存储模块和存储IC
现在参照图10A,示出检测在存储集成电路中支持微区块存储器存取的第一方法的流程图。该方法在框1000A由能够支持微区块存储器存取的主机印刷电路板和系统开始。为了检测微区块启动存储模块和存储集成电路,在存储控制器中重新排序的存储请求被禁止。否则,存储请求的重新排序可能提供失败的指示。
在启动存储模块和存储集成电路中的微区块之前的框1002,具有位的唯一模式的高速缓存线在起始地址被写入每一存储通道。通过禁止微区块存取,起始地址是进入每一存储模块和存储集成电路的共享起始地址。高速缓存线中位的唯一模式可与图11的指定高速缓存线中字节顺序的相类似,或可与辨别相邻字节的另一唯一模式相类似,如图12A-12E中所示。高速缓冲线中位的唯一模式可用于执行双重用途,其中它可用于检测微区块能力,以及用于对存储模块中存储器测试存储器错误。具有相同模式的多于一条的高速缓存线可以在不同的起始地址被写入存储器。
接着在框1003A,尝试启动对每一存储模块的每一存储集成电路的微区块存储器存取。支持微区块存储器存取的存储模块将被如此启动。不支持微区块存储器存取的存储模块(如果存在的话)将不被启动。在这种情况下,尝试启动对不支持微区块存储器的存储模块和存储集成电路的微区块存储器存取将会失败。另外,可尝试设置存储集成电路的模式寄存器中的一个或多个子通道选择(SCS)位以将它们分配道它们相应的子通道。
在尝试启动对存储器的微区块存储器存取之后的框1006A,从相同起始地址开始读取高速缓存线的存储请求被发至存储模块和存储控制器。当在同一起始地址发出请求时,如果微区块存储器存取在存储模块和存储集成电路中启动时,微区块存取被启动的微区块存储控制器尝试将起始地址译为每一存储子通道中的独立起始地址。然而如果微区块化的存储器存取在存储模块和存储集成电路中不被启动并支持,那么在同一起始地址处的读取请求不被存储模块和存储集成电路译为独立的地址。代替地,它被译为共享地址并且如写访问中一样各自存取相同存储位置。当使用同一起始地址发出对高速缓存线的存储请求时,微区块存取使用每一子通道和其存储集成电路中的独立地址在每一存储通道的子通道中存取数据。如果存储集成电路和存储模块不支持微区块存取从而独立地址不可用,则在读取请求期间同一起始地址被用于每一存储集成电路,如同用来写入唯一的数据位模式一样。在这种情况下,所写入的相同唯一数据位模式将从不支持微区块存取的存储模块和存储集成电路中读出。
这可由图4A-4C图形化地示出。在图4A中,微区块存取不被启动,从而64字节的高速缓存线的数据再现4×4像素区块的跨距404A。在图4B中,在每一存储通道中的两个子通道启动微区块存取。当另一个不相关的双倍子跨距,例如双倍414B由存储通道的其它子通道所存取时,来自一个子通道的双倍子跨距414A可再现跨距404A的一部分。也就是说,通过微区块存取被启动,可存取不同的存储位置。在图4C中,在每一存储通道中的四个子通道启动微区块存取。当其它不相关的双倍子跨距,例如子跨距424B-424D由存储通道的其它子通道所存取时,来自一个子通道的子跨距424A可再现跨距404A的一部分。这图形地示出了与如果微区块存取被禁止相比,通过微区块存取被启动,高速缓存线可存取其它存储位置。微区块存取被禁止和启动的存储器存取之间的不同同样在图5A-5C和图11A-11C中示出,并且将进一步在以下描述。
下面,在框1008A,如果可以的话,在存储集成电路和存储模块中将微区块存取被禁止的写入存储通道的高速缓存线(称为写高速缓存线)和微区块存取被启动的从存储通道中读取的高速缓存线(称为读高速缓存线)之间进行比较。如果在存储模块和存储存储集成电路中不能启动微区块存取,则写入和读取存储器存取使用同一起始地址存取相同存储位置,从而写入存储器和从存储器中读取的高速缓存线的数据位中不存在区别。
在框1010A,判定读高速缓存线中的位与写高速缓存线中的位是否相匹配。在框1012A,读高速缓存线中的位与写高速缓存线中的位不相匹配表明存储通道、存储模块和存储集成电路支持微区块存储器存取,然后该方法在框1050A结束。在框1014A,读高速缓存线中的位与写高速缓存线中的位相匹配表明存储通道、存储模块和存储集成电路不支持微区块存储器存取,然后该方法在框1052A结束。
现在参照图10B,示出检测在存储集成电路中支持微区块存储器存取的第二方法的流程图。该方法在框1000B由能够支持微区块存储器存取的主机印刷电路板和系统开始。
在框1003A,尝试启动对每一存储通道中的每一存储模块的每一存储集成电路的微区块存储器存取。支持微区块存储器存取的存储模块将会如此被启动。不支持微区块存储器存取的存储模块(如果存在的话)将不能被启动。在这种情况下,尝试启动对不支持微区块存储的存储模块和存储集成电路的微区块存储器存取将会失败。另外,尝试置位存储集成电路的模式寄存器中的一个或多个子通道选择(SCS)位以将它们分配到它们相应的子通道。
在框1004,如果可能的话,在启动存储模块和存储集成电路中的微区块存取之后,具有位的唯一模式的高速缓存线在起始地址被写入每一存储通道中。高速缓存线中位的唯一模式与图11的相类似,指定高速缓存线中的字节顺序,或可与辨别相邻字节的另一唯一模式相类似,例如图12A-12E中所示。高速缓存线中位的唯一模式可以用于执行双重用途,其中它可用于检测微区块能力,还可用于对存储模块中的存储器检测存储器错误。具有相同模式的多于一条的高速缓存线可以在不同的起始地址被写入存储器中。
在框1005,尝试禁止对每一存储通道的每一存储模块的每一存储集成电路的微区块存储器存取。支持微区块存储器存取的存储模块将被如此禁止。不支持微区块存储器存取的存储模块(如果存在的话)将被保持原样-不能够支持微区块存储器存取。
在框1006B,将从同一起始地址开始读取高速缓存线的存储请求发至存储控制块和存储控制器。当使用同一起始地址发出对高速缓存线的存储请求时,微区块存取使用子通道和存储集成电路中的独立地址来存取每一存储通道的子通道中的数据。如果存储集成电路和存储模块不支持微区块存取从而独立寻址不可用,则在读取请求期间使用每一存储集成电路中的同一起始地址,与写入唯一数据位模式时使用的相同。在这种情况下,所写入的相同唯一数据位模式将从不支持微区块存取的存储模块和存储集成电路中读取出来。
下面在框1008B,如果可能,在存储集成电路和存储模块中将微区块存取被启动的写入存储通道的高速缓存线(称为写高速缓存线)和微区块存取被禁止的从存储通道中读取的高速缓存线(称为读高速缓存线)之间进行比较。如果在存储模块和存储存储集成电路中不能启动微区块存取,则写入和读取存储器存取使用同一起始地址存取相同存储位置,从而写入存储器和从存储器中读取的高速缓存线的数据位中不存在区别。
在框1010B,判定读高速缓存线中的位与写高速缓存线中的位是否相匹配。在框1012B,读高速缓存线中的位与写高速缓存线中的位不相匹配表明存储通道、存储模块和存储集成电路支持微区块存储器存取,然后该方法在框1050B结束。在框1014B,读高速缓存线中的位与写高速缓存线中的位相匹配表明存储通道、存储模块和存储集成电路不支持微区块存储器存取,然后该方法在框1052B结束。
现在参照图10C,示出检测在存储集成电路中支持微区块存储器存取的第三方法的流程图。该方法在框1000C由能够支持微区块存储器存取的主机印刷电路板和系统开始。在本发明的这一实现例中,存储集成电路的状态请求提供微区块启动位的位设置,以及模式寄存器的其它位设置。在不能支持微区块存储器存取的存储集成电路中,微区块启动位是不存在的,从而不能由存储集成电路响应状态请求而提供存储位设置。
在框1020,为了启动微区块存储器存取,尝试置位存储集成电路的模式寄存器中的微区块启动位。如果存储IC在模式寄存器内包括MTE位,则MTE位将被置位。如果存储IC在模式寄存器内不包括MTE位,则对其进行置位的尝试将会失败并且不会发生任何情况。
在框1024,对模式寄存器中置位的状态请求发送至存储集成电路。如果其中支持命令,则存储集成电路可以接收状态请求。如果不支持的话,则对状态命令的请求被忽略。
在框1028,如果存储集成电路支持微区块存取,则它将从寄存器中清除表示微区块存储器存取被启动的微区块启动位的置位。如果存储集成电路不支持微区块存取,则它将不清除微区块启动位的置位,并且完全忽略状态请求。如上所述,微区块启动信号可以是低态有效或高态有效,以表示微区块存储器存取的启动操作。如果是低态有效信号,则将微区块启动微设置为逻辑0以启动存储集成电路中的微区块存储器存取。如果是高态有效信号,则将微区块启动位设置为逻辑1以启动存储集成电路中的微区块存储器存取。
在框1030,判定MTE位的设置是否响应于状态请求而提供。在框1012C,MTE位的置位被提供,表示微区块存储器存取被启动并且存储集成电路支持微区块存储器存取,然后该方法在框1050C结束。在框1014C,MTE位的置位没有被提供,表示存储集成电路不支持微区块存储器存取,然后该方法在框1052C结束。
现在参照图11A,示出存储通道500A的高速缓存线中的示例性的唯一位序列。在图11A中的高速缓存线中的位被组织为与图5A中所示的字节编号相关的8位字节。以这种方式,高速缓存线中的每一字节彼此唯一,从而如果它们被重新排序成不同的序列,则它们可以被容易地检测出。也就是说,高速缓存线具有可用于检测微区块是否可被启动的唯一的数据位模式。在每一字节中,最高有效位(MSB)在左端示出,而最低有效位(LSB)在字节的右端示出。图11A示出字节1100A、1101A、1106A、1107A、1108A、1109A、1113A、1114A、1156A、1157A、1162A和1163A的字节位置和位设置。0字节1100A使其全部的位设置为0以表示二进制的0。第7字节1107A使其三个LSB设置为0以表示二进制记数法中的数字7。第56字节1156A使其第3到第5位设置为1以表示二进制记数法中的数字56。第63字节1163A使其第0到第5位设置为1以表示二进制记数法中的数字63。没有在图11A中示出的字节1100A到1163A之间的字节的位设置可容易地根据图11A中提供的模式和图5A中编号的字节确定。在图11A中,这种形式的高速缓存线可被写入和从存储器中读取,而不需要启动或支持微区块。
图11B示出图11A的高速缓存线和它的位序列可如何在具有两个启动并支持微区块存取的子通道505A-505B的存储通道500B之中重排。图11B的高速缓存线中的字节被组织为两个子通道505A-505B,并且与图5B中所示的每一子通道中的字节编号相关联。图11B示出一子通道505A中的字节1100B、1101B、1104B、1105B、1124B、1125B、1128B和1129B的字节位置和位设置。图11B进一步示出子通道505B中的字节1134B、1135B、1138B、1139B、1158B、1159B、1162B和1163B的字节位置和位设置。没有在图11B中示出的字节的位设置可容易地根据图11B中提供的模式和图5B中示出的字节编号确定。
图11C示出图11A的高速缓存线和它的位序列可如何在具有四个启动并支持微区块存取的子通道505A-505D的存储通道500C之中重新排列。图11C的高速缓存线中的字节被组织为四个子通道505A-505D,并且与图5C中所示的每一子通道中的字节编号相关联。图11C示出第一子通道515A中的字节1100C、1108C、1101C、1109C、1106C、1114C、1107C和1115C的字节位置和位设置。图11B进一步示出第四子通道515D中的字节1148C、1156C、1149C、1151C、1154C、1162C、1155C和1163C的字节位置和位设置。图5C中示出了第二和第三子通道515B-515C的字节位置。没有在图11C中示出的子通道和字节的位设置可容易地根据图11C中提供的模式和图5C中示出的字节编号确定。
图11B-11C和图5B-5C中示出的大多数字节的位置不同于图11A和5A中的字节位置。然而,在比较图11A-11C和图5A-5C时,第0字节1100A、11100B、1100C和第63字节1163A、1163B和1163D中的位和字节在贯穿全部存储通道看时没有改变。因此,这些字节本身不提供微区块存取是否被启动的准确指示。在这种情况下,位的附加字节用于比较并检测微区块存取是否被启动。
在图10A中描述的检测方法中,图11A的高速缓存线可被写入存储通道中,而不需要启动微区块存取。然后微区块存取被启动,在同一起始地址尝试读取出高速缓存线可能导致数据的高速缓存线,诸如图11B或图11C中所示。如果支持微区块存取,则期望取回的数据的高速缓存线将诸如在位或字节顺序上不同于所写入的。如果不支持微区块存取,则当在同一起始地址读高速缓存线时,所返回的数据被期望具有同样的位和字节顺序。也就是说,如果不支持微区块存取,则高速缓存线将分别按照图11A和5A中所示的位和字节顺序读取。
在图10B中描述的检测方法中,如果支持两个存储子通道,则通过微区块启动存取,高速缓存线可被写入如与图5B的字节编号相关联的图11B中所示的存储器之中。替代地,如果支持四个存储子通道,则高速缓存线可被写入如与图5C的字节编号相关联的图11C中所示的存储器之中。然后,在禁止微区块存取之后,如果支持微区块,则高速缓存线可按照与图5A的字节编号相关联的图11A中所示的顺序从存储器中读取出来。如果不支持微区块,则期望按照和写入相同的位和字节顺序从存储通道中读取出来。
如上所述,图11A示出高速缓存线中的字节被组织为8位字节并且具有与图5A所示的字节编号相关联设置的位。然而,可在高速缓存线中使用其它唯一位模式以确定字节是否已经被重新排序以及高速缓存线的位模式是否被更改。
现在参照图12A-12E,其示出可在高速缓存线中使用以提供可辨别模式来检测在存储集成电路中支持微区块存储器存取的其它位模式。
图12A示出从一个字节到相邻的下一字节的交替模式。也就是说,一个字节的位全部被设为逻辑1,而相邻字节的位则全部设为逻辑0。
图12B示出从一个字节的每一半中的交替模式。也就是说,当字节的位的一半设为逻辑0时,字节中位的另一半设为逻辑0。相邻的字节可以颠倒位设置或保持同一模式。
图12C示出可用于高速缓存线的字节中的交替1和0的模式。在每一字节中,位在逻辑0和逻辑1之间交替。
图12D示出可用于高速缓存线的字节中的步进1的模式。第一字节以全部的0开始,然后单个的1位从MSB步进到LSB或从LSB步进到MSB,如图12D中所示。
图12E示出可以用于高速缓存线的字节中的步进0的模式。第一字节以全部的1开始,然后单个的0位从MSB步进到LSB或从LSB步进到MSB,如图12E中所示。
当图示的模式反复进行时,可使用模式的任意组合,只要位模式和字节顺序是可辨别的以检测在存储模块和存储集成电路中是否启动和支持微区块存取。当这些模式已被描述为用于检测在存储模块和存储集成电路中是否启动微区块存取时,它们同样可并发地用于测试存储器中错误。
为了支持微区块存取存储器体系结构,存储子系统已经被改进为允许子通道存取。然而,不是全部的存储模块都可以支持微区块存储器存取。本发明的实施例检测插入到系统中的哪一个存储模块是微区块启动的,哪一个不是。以这种方式,微区块存取存储器体系结构可与不支持微区块存储器存取的现有存储模块反向兼容。
当某一示例性实现例被描述并在附图中示出时,需要理解的是这些实施例仅仅是它的说明并且不限制范围广泛的本发明,并且本发明的实施例不限于所示出和所描述的特定构成和配置,因为对于所属领域技术人员来说,可以进行各种其它的修改。
当在软件中实现时,本发明的实施例的要素实际上是执行必要任务必需的代码段。程序或代码段可被存储在处理器可读介质中或通过传输介质或通信链路由包括在载波中的计算机数据信号所传送。“处理器可读介质”可包括可存储或传递信息的任意介质。处理器可读介质的示例包括电子电路、半导体存储装置、只读存储器(ROM)、闪存、可擦可编程只读存储器(EPROM)、软盘、CD-ROM、光盘、硬盘、纤维光学介质、无线电频率(RF)链路等等。计算机数据信号可包括可通过传送介质传播的任意信号,传送介质诸如电子网络通道、光纤、空气、电磁、RF链路等等。代码段可通过诸如因特网、内联网等等的计算机网络下载。

Claims (14)

1.一种用于确定存储模块是否支持独立可寻址子通道存储器存取的方法,包括:
在起始地址,将具有唯一位模式的写高速缓存线写入存储通道中的存储器之中;
在所述存储通道中的存储模块的每一存储集成电路上通过在接收到状态命令后设置启动位,尝试启动独立可寻址子通道存储器存取,其中对每一存储集成电路的所述独立子通道存储器存取是微区块存储器存取;
请求在所述起始地址从所述存储通道中的存储器中读取读高速缓存线;
将所述读高速缓存线和所述写高速缓存线的位模式进行比较以确定对每一存储集成电路的独立子通道存储器存取是否被启动;
如果所述读高速缓存线和所述写高速缓存线的位模式不同,则启动对存储通道中的存储模块的每一存储集成电路的独立可寻址子通道存储器;
如果所述读高速缓存线的位模式和所述写高速缓存线的位模式相同,则不启动对存储通道中的存储模块的每一存储集成电路的独立可寻址子通道存储器。
2.如权利要求1所述的方法,其特征在于
如果启动独立子通道,则在请求读取所述读高速缓存线期间,由每一存储子通道中的所述存储器将所述起始地址翻译并解释为独立的地址。
3.如权利要求1所述的方法,其特征在于
在尝试启动独立子通道存储器存取之前,从所述存储通道中的所述存储器中读取具有唯一位模式的所述写高速缓存线以检测存储器错误。
4.如权利要求3所述的方法,其特征在于
所述写高速缓存线的唯一位模式是存储测试模式。
5.如权利要求3所述的方法,其特征在于
所述写高速缓存线的唯一位模式是步进1测试模式、步进0测试模式或它们的组合。
6.如权利要求6所述的方法,其特征在于
所述写高速缓存线的唯一位模式是交替(checker-board)测试模式。
7.一种用于确定存储模块是否支持独立可寻址子通道存储器存取的方法,包括:
在存储通道中的存储模块的每一存储集成电路上通过在接收到状态命令后设置启动位,尝试启动的微区块存储器存取;
在起始地址,将具有唯一位模式的写高速缓存线写入存储通道中的存储器之中;
尝试禁止对所述存储通道中的存储模块的每一存储集成电路的微区块存储器存取;
请求在所述起始地址从存储通道中的存储器中读取读高速缓存线;
将所述读高速缓存线和所述写高速缓存线的位模式进行比较以确定对每一存储集成电路的微区块存储器存取是否被启动;以及
如果所述读高速缓存线和所述写高速缓存线的位模式不同,则启动对存储通道中的存储模块的每一存储集成电路的独立可寻址子通道存储器;以及
如果所述读高速缓存线的位模式和所述写高速缓存线的位模式相同,则不启动对存储通道中的存储模块的每一存储集成电路的独立可寻址子通道存储器。
8.如权利要求7所述的方法,其特征在于
如果启动微区块,则在请求读取所述读高速缓存线期间,由每一存储子通道中的存储器将所述起始地址翻译并解释为独立的地址。
9.如权利要求7所述的方法,其特征在于
在尝试启动微区块存储器存取之前,从所述存储通道中的所述存储器中读取具有唯一位模式的所述写高速缓存线以检测存储器错误。
10.如权利要求9所述的方法,其特征在于
所述写高速缓存线的唯一位模式是存储测试模式。
11.如权利要求9所述的方法,其特征在于
所述写高速缓存线的唯一位模式是步进1测试模式、步进0测试模式或它们的组合。
12.如权利要求9所述的方法,其特征在于
所述写高速缓存线的唯一位模式是交替测试模式。
13.一种用于确定存储模块是否支持独立可寻址子通道存储器存取的装置,包括:
用于在起始地址将具有唯一位模式的第一高速缓存线写入存储通道中的存储器之中的装置;用于在所述存储通道中的每一存储模块上通过在接收到状态命令后设置启动位,尝试启动微区块存储器存取的装置;用于请求在所述起始地址从存储通道中的存储器中读取第二线的装置;以及用于将所述第一高速缓存线和所述第二高速缓存线的位模式进行比较以确定对每一存储模块的微区块存储器存取是否被启动的装置;
用于如果所述读高速缓存线和所述写高速缓存线的位模式不同,则启动对存储通道中的存储模块的每一存储集成电路的独立可寻址子通道存储器的装置,以及;
用于如果所述读高速缓存线的位模式和所述写高速缓存线的位模式相同,则不启动对存储通道中的存储模块的每一存储集成电路的独立可寻址子通道存储器的装置。
14.如权利要求13所述的装置,其特征在于,
每一存储模块包括多个存储集成电路,并且所述装置还包括:
用于尝试启动对所述多个存储集成电路的每一个的微区块存储器存取的装置以及
用于确定对所述多个存储集成电路的每一个的微区块存储器存取是否被启动的装置。
CN2006101363192A 2005-06-30 2006-06-30 微区块启动存储器的自动检测 Expired - Fee Related CN1928919B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/172,766 US7558941B2 (en) 2005-06-30 2005-06-30 Automatic detection of micro-tile enabled memory
US11/172,766 2005-06-30

Publications (2)

Publication Number Publication Date
CN1928919A CN1928919A (zh) 2007-03-14
CN1928919B true CN1928919B (zh) 2010-09-22

Family

ID=37591166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101363192A Expired - Fee Related CN1928919B (zh) 2005-06-30 2006-06-30 微区块启动存储器的自动检测

Country Status (7)

Country Link
US (1) US7558941B2 (zh)
EP (1) EP1896961B1 (zh)
JP (1) JP4838843B2 (zh)
KR (1) KR100947132B1 (zh)
CN (1) CN1928919B (zh)
TW (1) TWI336837B (zh)
WO (1) WO2007005551A2 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8253751B2 (en) 2005-06-30 2012-08-28 Intel Corporation Memory controller interface for micro-tiled memory access
US8878860B2 (en) * 2006-12-28 2014-11-04 Intel Corporation Accessing memory using multi-tiling
US8427497B1 (en) 2008-08-01 2013-04-23 Marvell International Ltd. Methods and apparatuses for processing cached image data
GB0916924D0 (en) * 2009-09-25 2009-11-11 Advanced Risc Mach Ltd Graphics processing systems
US9406155B2 (en) * 2009-09-25 2016-08-02 Arm Limited Graphics processing systems
US8988443B2 (en) * 2009-09-25 2015-03-24 Arm Limited Methods of and apparatus for controlling the reading of arrays of data from memory
US9349156B2 (en) 2009-09-25 2016-05-24 Arm Limited Adaptive frame buffer compression
US8661200B2 (en) * 2010-02-05 2014-02-25 Nokia Corporation Channel controller for multi-channel cache
US20110197031A1 (en) * 2010-02-05 2011-08-11 Nokia Corporation Update Handler For Multi-Channel Cache
GB201105716D0 (en) 2011-04-04 2011-05-18 Advanced Risc Mach Ltd Method of and apparatus for displaying windows on a display
US9182934B2 (en) 2013-09-20 2015-11-10 Arm Limited Method and apparatus for generating an output surface from one or more input surfaces in data processing systems
US9195426B2 (en) 2013-09-20 2015-11-24 Arm Limited Method and apparatus for generating an output surface from one or more input surfaces in data processing systems
GB2524467B (en) 2014-02-07 2020-05-27 Advanced Risc Mach Ltd Method of and apparatus for generating an overdrive frame for a display
GB2528265B (en) 2014-07-15 2021-03-10 Advanced Risc Mach Ltd Method of and apparatus for generating an output frame
US10067903B2 (en) 2015-07-30 2018-09-04 SK Hynix Inc. Semiconductor device
US11755255B2 (en) 2014-10-28 2023-09-12 SK Hynix Inc. Memory device comprising a plurality of memories sharing a resistance for impedance matching
KR102358177B1 (ko) * 2015-12-24 2022-02-07 에스케이하이닉스 주식회사 제어회로 및 제어회로를 포함하는 메모리 장치
GB2540562B (en) 2015-07-21 2019-09-04 Advanced Risc Mach Ltd Method of and apparatus for generating a signature representative of the content of an array of data
CN105138380B (zh) * 2015-09-21 2018-06-19 天脉聚源(北京)传媒科技有限公司 一种Linux系统的启动方法及装置
CN108763106B (zh) * 2018-05-31 2020-07-24 西安微电子技术研究所 一种基于交叉存储的Cache实现方法
US10949278B2 (en) * 2018-06-26 2021-03-16 Qualcomm Incorporated Early detection of execution errors
WO2020118713A1 (zh) * 2018-12-14 2020-06-18 深圳市汇顶科技股份有限公司 位宽匹配电路、数据写入装置、数据读出装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412662A (en) * 1992-10-30 1995-05-02 Advantest Corporation Memory testing device for preventing excessive write and erasure
US5901332A (en) * 1995-06-07 1999-05-04 Advanced Micro Devices Inc. System for dynamically reconfiguring subbusses of data bus according to system needs based on monitoring each of the information channels that make up data bus
EP1001347A3 (en) * 1998-11-13 2003-04-09 Infineon Technologies Corporation Data processing device with memory coupling unit
EP0946943B1 (en) * 1996-12-20 2003-06-25 Rambus Inc. Memory and method for sensing sub-groups of memory elements

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3323109A (en) 1963-12-30 1967-05-30 North American Aviation Inc Multiple computer-multiple memory system
JPS51127626A (en) 1975-04-30 1976-11-06 Hitachi Ltd Information processor
US3988717A (en) 1975-08-06 1976-10-26 Litton Systems, Inc. General purpose computer or logic chip and system
NL7510904A (nl) 1975-09-17 1977-03-21 Philips Nv Woordgroepsprioriteitsinrichting.
US4124891A (en) 1976-11-18 1978-11-07 Honeywell Information Systems Inc. Memory access system
JPS5725052A (en) * 1980-07-22 1982-02-09 Nec Corp Memory control device
US4495570A (en) 1981-01-14 1985-01-22 Hitachi, Ltd. Processing request allocator for assignment of loads in a distributed processing system
US4504902A (en) 1982-03-25 1985-03-12 At&T Bell Laboratories Cache arrangement for direct memory access block transfer
JPH083805B2 (ja) 1985-06-28 1996-01-17 ヒューレット・パッカード・カンパニー Tlb制御方法
JPH0267622A (ja) 1988-09-01 1990-03-07 Kansai Nippon Denki Software Kk ディスク入出力方式
US5325510A (en) 1990-05-25 1994-06-28 Texas Instruments Incorporated Multiprocessor system and architecture with a computation system for minimizing duplicate read requests
US5251310A (en) 1990-06-29 1993-10-05 Digital Equipment Corporation Method and apparatus for exchanging blocks of information between a cache memory and a main memory
JPH056305A (ja) * 1991-06-27 1993-01-14 Oki Electric Ind Co Ltd 主記憶装置構成制御方式
US5526507A (en) 1992-01-06 1996-06-11 Hill; Andrew J. W. Computer memory array control for accessing different memory banks simullaneously
US5459842A (en) 1992-06-26 1995-10-17 International Business Machines Corporation System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory
JPH0695959A (ja) * 1992-09-09 1994-04-08 Hitachi Ltd 情報処理装置
US6804760B2 (en) * 1994-12-23 2004-10-12 Micron Technology, Inc. Method for determining a type of memory present in a system
JP3619565B2 (ja) * 1995-04-26 2005-02-09 株式会社ルネサステクノロジ データ処理装置、及びそれを用いたシステム
US5649157A (en) 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
JPH09120371A (ja) * 1995-10-26 1997-05-06 Nec Corp メモリ制御装置
US5799209A (en) 1995-12-29 1998-08-25 Chatter; Mukesh Multi-port internally cached DRAM system utilizing independent serial interfaces and buffers arbitratively connected under a dynamic configuration
US6061773A (en) 1996-05-03 2000-05-09 Digital Equipment Corporation Virtual memory system with page table space separating a private space and a shared space in a virtual memory
US5761708A (en) 1996-05-31 1998-06-02 Sun Microsystems, Inc. Apparatus and method to speculatively initiate primary memory accesses
US5905725A (en) 1996-12-16 1999-05-18 Juniper Networks High speed switching device
US6308248B1 (en) 1996-12-31 2001-10-23 Compaq Computer Corporation Method and system for allocating memory space using mapping controller, page table and frame numbers
US5790118A (en) 1997-03-07 1998-08-04 International Business Machines Corporation Mobile client programmed to hide empty table elements
US5913231A (en) 1997-03-31 1999-06-15 International Business Machines Corporation Method and system for high speed memory address forwarding mechanism
US6145065A (en) 1997-05-02 2000-11-07 Matsushita Electric Industrial Co., Ltd. Memory access buffer and reordering apparatus using priorities
US6151641A (en) 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US6122709A (en) 1997-12-19 2000-09-19 Sun Microsystems, Inc. Cache with reduced tag information storage
US6643746B1 (en) 1997-12-24 2003-11-04 Creative Technology Ltd. Optimal multi-channel memory controller system
US6438675B1 (en) 1998-03-23 2002-08-20 Ati Technologies, Inc. Variable format memory access device
JP4081860B2 (ja) * 1998-06-25 2008-04-30 ソニー株式会社 画像処理装置
US6249851B1 (en) 1998-08-25 2001-06-19 Stmicroelectronics, Inc. Computer system having non-blocking cache and pipelined bus interface unit
US6453380B1 (en) 1999-01-23 2002-09-17 International Business Machines Corporation Address mapping for configurable memory system
US6389488B1 (en) 1999-01-28 2002-05-14 Advanced Micro Devices, Inc. Read ahead buffer for read accesses to system memory by input/output devices with buffer valid indication
JP3639464B2 (ja) * 1999-07-05 2005-04-20 株式会社ルネサステクノロジ 情報処理システム
US6708248B1 (en) 1999-07-23 2004-03-16 Rambus Inc. Memory system with channel multiplexing of multiple memory devices
JP2001060169A (ja) 1999-08-24 2001-03-06 Hitachi Ltd キャッシュコントローラ及びコンピュータシステム
JP2001176282A (ja) 1999-12-20 2001-06-29 Fujitsu Ltd 半導体記憶装置およびその制御方法
US6678810B1 (en) 1999-12-30 2004-01-13 Intel Corporation MFENCE and LFENCE micro-architectural implementation method and system
US6430672B1 (en) 2000-07-17 2002-08-06 International Business Machines Corporation Method for performing address mapping using two lookup tables
EP1182564A3 (en) 2000-08-21 2004-07-28 Texas Instruments France Local memory with indicator bits to support concurrent DMA and CPU access
US7006505B1 (en) 2000-10-23 2006-02-28 Bay Microsystems, Inc. Memory management system and algorithm for network processor architecture
US6745272B2 (en) 2001-04-04 2004-06-01 Advanced Micro Devices, Inc. System and method of increasing bandwidth for issuing ordered transactions into a distributed communication system
US7200759B2 (en) 2001-06-08 2007-04-03 Safenet B.V. Method and device for making information contents of a volatile semiconductor memory irretrievable
US20030056058A1 (en) 2001-09-17 2003-03-20 Alistair Veitch Logical volume data migration
US6812928B2 (en) 2002-01-30 2004-11-02 Sun Microsystems, Inc. Performance texture mapping by combining requests for image data
US20030179598A1 (en) * 2002-03-20 2003-09-25 Yu-Guang Chen Device for selectively providing read-only data
DE10216611A1 (de) 2002-04-15 2003-11-06 Infineon Technologies Ag Verfahren zum Ersetzen eines Inhalts einer Datenspeichereinheit
US6842828B2 (en) 2002-04-30 2005-01-11 Intel Corporation Methods and arrangements to enhance an upbound path
US7028200B2 (en) 2002-05-15 2006-04-11 Broadcom Corporation Method and apparatus for adaptive power management of memory subsystem
US6934804B2 (en) 2002-05-28 2005-08-23 Sun Microsystems, Inc. Method and system for striping spares in a data storage system including an array of disk drives
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US6851030B2 (en) 2002-10-16 2005-02-01 International Business Machines Corporation System and method for dynamically allocating associative resources
US7130229B2 (en) 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
US6836434B2 (en) * 2002-11-21 2004-12-28 Micron Technology, Inc. Mode selection in a flash memory device
US7255895B2 (en) 2003-01-21 2007-08-14 Bioarray Solutions, Ltd. Method for controlling solute loading of polymer microparticles
US7243172B2 (en) 2003-10-14 2007-07-10 Broadcom Corporation Fragment storage for data alignment and merger
JP4601305B2 (ja) * 2004-02-27 2010-12-22 富士通セミコンダクター株式会社 半導体装置
US7587521B2 (en) 2005-06-23 2009-09-08 Intel Corporation Mechanism for assembling memory access requests while speculatively returning data
US8332598B2 (en) 2005-06-23 2012-12-11 Intel Corporation Memory micro-tiling request reordering
US7765366B2 (en) * 2005-06-23 2010-07-27 Intel Corporation Memory micro-tiling
US8032688B2 (en) * 2005-06-30 2011-10-04 Intel Corporation Micro-tile memory interfaces
US8253751B2 (en) * 2005-06-30 2012-08-28 Intel Corporation Memory controller interface for micro-tiled memory access
US7872892B2 (en) * 2005-07-05 2011-01-18 Intel Corporation Identifying and accessing individual memory devices in a memory channel

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412662A (en) * 1992-10-30 1995-05-02 Advantest Corporation Memory testing device for preventing excessive write and erasure
US5901332A (en) * 1995-06-07 1999-05-04 Advanced Micro Devices Inc. System for dynamically reconfiguring subbusses of data bus according to system needs based on monitoring each of the information channels that make up data bus
EP0946943B1 (en) * 1996-12-20 2003-06-25 Rambus Inc. Memory and method for sensing sub-groups of memory elements
EP1001347A3 (en) * 1998-11-13 2003-04-09 Infineon Technologies Corporation Data processing device with memory coupling unit

Also Published As

Publication number Publication date
TWI336837B (en) 2011-02-01
JP4838843B2 (ja) 2011-12-14
WO2007005551A3 (en) 2007-08-16
US20070005890A1 (en) 2007-01-04
EP1896961A2 (en) 2008-03-12
KR100947132B1 (ko) 2010-03-12
JP2008545201A (ja) 2008-12-11
US7558941B2 (en) 2009-07-07
KR20080015893A (ko) 2008-02-20
CN1928919A (zh) 2007-03-14
TW200710651A (en) 2007-03-16
EP1896961B1 (en) 2012-08-01
WO2007005551A2 (en) 2007-01-11

Similar Documents

Publication Publication Date Title
CN1928919B (zh) 微区块启动存储器的自动检测
CN1929026B (zh) 一种存储器集成电路以及存储器阵列
CN101213531B (zh) 用于微拼接的存储器访问的存储器控制器接口
CN1920879B (zh) 识别和访问在存储通道中的独立储存装置
KR101183739B1 (ko) 멀티포트 메모리 슈퍼셀 및 데이터 경로 스위칭 회로를 갖는 집적 회로

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100922

Termination date: 20190630