书签 分享 收藏 举报 版权申诉 / 16

存储器控制器和动态随机存取存储器接口.pdf

  • 上传人:00062****4422
  • 文档编号:1501019
  • 上传时间:2018-06-18
  • 格式:PDF
  • 页数:16
  • 大小:3.82MB
  • 摘要
    申请专利号:

    CN201210320820.X

    申请日:

    2012.08.31

    公开号:

    CN102968393A

    公开日:

    2013.03.13

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 13/16申请日:20120831|||公开

    IPC分类号:

    G06F13/16

    主分类号:

    G06F13/16

    申请人:

    辉达公司

    发明人:

    阿洛克·古普塔; 巴里·A·瓦格纳

    地址:

    美国加利福尼亚州

    优先权:

    2011.08.31 US 13/223,004

    专利代理机构:

    北京市磐华律师事务所 11336

    代理人:

    徐丁峰;魏宁

    PDF完整版下载: PDF下载
    内容摘要

    公开了一种存储器控制器和一种动态随机存取存储器(DRAM)接口。存储器控制器实现用于DRAM接口的信号。DRAM接口包括差分时钟信号、未校准并行命令总线和高速串行地址总线。命令总线可以被用于当上电时启动与存储器设备的通信以及用于启动地址总线的校准。

    权利要求书

    权利要求书一种经配置以与存储器设备通信的存储器接口,所述存储器接口包括:
    差分时钟信道,其用于将参考时钟信号传输到所述存储器设备;
    并行命令总线,其用于将一个或多个命令传输到所述存储器设备,其中所述并行命令总线不要求在上电时校准;和
    串行地址总线,其用于将一个或多个地址传输到所述存储器设备,其中每个地址均识别所述存储器设备内的位置。
    根据权利要求1所述的存储器接口,其中经由所述并行命令总线传输的命令与经由所述串行地址总线大体同时传输的地址相关联。
    根据权利要求1所述的存储器接口,其中所述存储器设备包括动态随机存取存储器(DRAM)。
    根据权利要求1所述的存储器接口,其中在上电操作之后但在所述一个或多个地址经由所述串行地址总线传输之前,所述串行地址总线经由链路训练例程校准。
    根据权利要求4所述的存储器接口,进一步包括数据总线,其中所述链路训练例程包括:
    经由所述并行命令总线将第一命令传输到所述存储器设备,以指示训练模式序列将经由所述串行地址总线发送到所述存储器设备;
    经由所述串行地址总线将所述训练模式序列传输到所述存储器设备,其中所述存储器设备将反映接收到的所述训练模式序列的版本的值存储在链路训练寄存器中;
    经由所述并行命令总线将第二命令传输到所述存储器设备,以请求对存储在所述链路训练寄存器中的所述值的访问;
    经由所述数据总线读取存储在所述链路训练寄存器中的所述值;和
    基于从所述链路训练寄存器中读取的所述值,确定与所述串行地址总线相关联的传输参数。
    根据权利要求1所述的存储器接口,其中所述存储器设备包括:
    多个DRAM模块;和
    逻辑设备,所述逻辑设备耦合至所述存储器接口并包括逻辑,所述逻辑经配置以:将经由所述命令总线接收到的命令传输到所述多个DRAM模块中每一个所述DRAM模块,并且对于每一条命令,将经由所述串行地址总线接收到的一个或多个地址传输到由所述命令所识别的所述多个DRAM模块中的特定DRAM模块。
    根据权利要求6所述的存储器接口,其中所述多个DRAM模块包含在与所述逻辑设备相同的集成电路内。
    一种系统,包括:
    存储器设备;和
    存储器接口,经配置以与所述存储器设备通信,所述存储器接口包括:
    差分时钟信道,其用于将参考时钟信号传输到所述存储器设备;
    并行命令总线,其用于将一个或多个命令传输到所述存储器设备,
    其中所述并行命令总线不要求在上电时校准,和
    串行地址总线,其用于将一个或多个地址传输到所述存储器设备,
    其中每个地址均识别所述存储器设备内的位置。
    根据权利要求8所述的系统,其中经由所述并行命令总线传输的命令与经由所述串行地址总线大体同时传输的地址相关联。
    一种用于与存储器设备通信的方法,所述方法包括:
    经由差分时钟信道将参考时钟信号传输到所述存储器设备;
    经由并行命令总线将一个或多个命令传输到所述存储器设备,其中所述并行命令总线不要求在上电时校准;以及
    经由串行地址总线将一个或多个地址传输到所述存储器设备,其中每个地址均识别所述存储器设备内的位置。

    说明书

    说明书存储器控制器和动态随机存取存储器接口
    技术领域
    本发明总体上涉及存储器接口,并且,更具体地,涉及存储器控制器和动态随机存取存储器(DRAM)接口。
    背景技术
    目前的标准存储器接口通常实现并行命令和地址总线。例如,用于DDR3 SDRAM的JEDEC规范定义了16个地址引脚(A0‑A15),3个库(bank)地址引脚(BA0‑BA2),和5个命令引脚(CS#,CKE#,RAS#,CAS#,WE#),共计24个引脚。用于GDDR5 SGRAM的JEDEC规范定义了14个地址引脚(A0‑A12,加上RFU(保留))和4个库地址引脚(BA0‑BA3)(经由双倍数据速率寻址来共享9个物理引脚)、1个地址总线反转引脚(ABI#)和5个命令引脚(CS#,CKE#,RAS#,CAS#,WE#),共计15个引脚。
    其他类型的接口实现高速串行接口。例如,和Peripheral Component Interconnect(PCIe)(外围组件互连标准)具有一个或多个用于命令和数据传送的通路(用于通信的差分信号)。然而,串行接口通常需要广泛的校准以提供必要的数据传输带宽。例如,PCIe标准定义了链路训练序列,其必须在数据可以通过该串行链路传输之前执行。链路训练序列发现链路中的通路数量、该链路的最大速度和该链路的物理性质,诸如每个通路的时序偏差。串行链路需要在该链路可以高速操作之前确定这些参数,同时保持数据传输的准确性。这些接口可能还需要诸如中的辅助信道的低速边带通信信道以启动校准。
    常规存储器接口的一个缺点是并行命令和地址总线需要大量的互连。存储器控制器和存储器设备之间的路由可能变得复杂并在印刷电路板的布局中需要很多物理空间。虽然转换成纯粹的串行命令和地址总线可以减少所需的互连数量,但是广泛校准的要求导致了在任何数据可通过链路被传输之前的上电延迟。此外,可能需要边带通信信道以校准串行链路,该串行链路增加了在正常操作期间用不到的额外互连。
    如上所述,本领域需要一种用于将命令和地址发送到存储器设备的改进技术。
    发明内容
    本发明的一个实施例提出了一种经配置以与存储器设备通信的存储器接口。所述存储器接口包括用于将参考时钟信号传输到所述存储器设备的差分时钟信道、用于将一个或多个命令传输到所述存储器设备的未校准并行命令总线和用于将一个或多个地址传输到所述存储器设备的串行地址总线,其中每个地址均识别所述存储器设备内的位置。
    本发明的另一实施例提出了一种包括存储器设备和经配置以与所述存储器设备通信的存储器接口的系统。所述存储器接口包括用于将参考时钟信号传输到所述存储器设备的差分时钟信道、用于将一个或多个命令传输到所述存储器设备的未校准并行命令总线和用于将一个或多个地址传输到所述存储器设备的串行地址总线,其中每个地址均识别所述存储器设备内的位置。
    本发明的又一实施例提出了一种用于与存储器设备通信的方法。所述方法包括以下步骤:将参考时钟信号经由差分时钟信道传输到所述存储器设备,将一个或多个命令经由未校准并行命令总线传输到所述存储器设备,以及将一个或多个地址经由串行地址总线传输到所述存储器设备,其中每个地址均识别所述存储器设备内的位置。
    所公开的技术的一个优势是相对于行业标准并行接口,减少了将命令和地址传输到存储器设备所需的互连的数量。另外,通过从地址总线分离命令总线,小的未校准并行命令总线可以被用于启动串行地址总线的校准,从而避免了对在正常操作期间用不到的独立低速边带通信信道的需要。
    附图说明
    因此,可以详细地理解上述本发明的特征,并且可以参考实施例得到对如上面所概括的本发明更具体的描述,其中一些实施例在附图中示出。然而,应当注意的是,附图仅用于示意性地表示本发明的典型实施例,因此不应被认为是对本发明范围的限制,本发明可以具有其他等效的实施方式。
    图1为示出了经配置以实现本发明一个或多个方面的计算机系统的框图;
    图2示出了根据本发明一个实施例的并行处理子系统;
    图3示出了根据本发明一个实施例的存储器接口的一部分;
    图4示出了根据本发明一个实施例的包括多个DRAM模块的并行处理存储器;
    图5示出了根据本发明另一实施例的包括多个DRAM模块的并行处理存储器;以及
    图6展示了根据本发明一个实施例的用于初始化存储器接口的方法的流程图。
    具体实施方式
    在下面的描述中,将阐述大量的具体细节以提供对本发明更深入的理解。然而,本领域的技术人员应该清楚,本发明可以在没有一个或多个这些具体细节的情况下得以实施。在其他例子中,没有描述公知的特征以避免对本发明造成混淆。
    系统概述
    图1为示出了经配置以实现本发明的一个或多个方面的计算机系统100的框图。计算机系统100包括中央处理单元(CPU)102和经由存储器桥105通信的系统存储器104。存储器桥105可以是例如北桥芯片,经由总线或其他通信路径(例如超传输(HyperTransport)链路)连接到I/O(输入/输出)桥107。I/O桥107,其可以是例如南桥芯片,从一个或多个用户输入设备108(例如键盘、鼠标)接收用户输入并且经由存储器桥105将所述输入转发到CPU 102。并行处理子系统112经由总线或其他通信路径(例如PCI Express、加速图形端口或超传输链路)耦合到存储器桥105;在一个实施例中,并行处理子系统112是将像素传递到显示设备110(例如基于传统CRT或LCD的监视器)的图形子系统。系统盘114也连接到I/O桥107。开关116提供I/O桥107与其他诸如网络适配器118和各种外插卡120和121的组件之间的连接。其他组件(未明确示出),包括USB或其他端口连接、CD驱动器、DVD驱动器、胶片录制设备及类似组件,也可以连接到I/O桥107。使图1中所示各种组件互连的通信路径可以采用任何适合的协议实现,诸如PCI(外围组件互连)、PCI‑Express、AGP(加速图形端口)、超传输或者任何其他总线或点到点通信协议,并且不同设备间的连接可采用本领域已知的不同协议。
    在一个实施例中,并行处理子系统112包含被优化用于图形和视频处理的电路,包括例如视频输出电路,并且构成图形处理单元(GPU)。在另一个实施例中,并行处理子系统112包含被优化用于通用处理的电路,同时保留底层(underlying)的计算架构,本文将更详细地进行描述。在又一个实施例中,可以将并行处理子系统112与一个或多个其他系统元件集成起来,诸如存储器桥105、CPU 102以及I/O桥107,以形成片上系统(SoC)。
    应该理解,本文所示系统是示例性的,变化和修改都是可能的。连接拓扑,包括桥的数量和布置、CPU 102的数量以及并行处理子系统112的数量,可根据需要修改。例如,在一些实施例中,系统存储器104直接连接到CPU 102而不是通过桥,并且其他设备经由存储器桥105和CPU 102与系统存储器104通信。在其他替代性拓扑中,并行处理子系统112连接到I/O桥107或直接连接到CPU 102,而不是连接到存储器桥105。在其他实施例中,I/O桥107和存储器桥105可能被集成到单个芯片上。大量实施例可以包括两个或多个CPU 102以及两个或多个并行处理系统112。本文所示的特定组件是可选的;例如,任意数量的外插卡或外设都可能得到支持。在一些实施例中,开关116被去掉,网络适配器118和外插卡120、121直接连接到I/O桥107。
    图2示出了根据本发明的一个实施例的并行处理子系统112。如图所示,并行处理子系统112包括一个或多个并行处理单元(PPU)202,每个并行处理单元202都耦合到本地并行处理(PP)存储器204。通常,并行处理子系统包括U个PPU,其中U≥1。(本文中,类似对象的多个实体以标识该对象的参考数字和需要时标识所述实体的括号中的数字来表示。)PPU 202和并行处理存储器204可使用一个或多个集成电路设备来实现,诸如可编程处理器、专用集成电路(ASIC)或存储器设备,或者以任何其他技术可行的方式来实现。
    再参考图1,在一些实施例中,并行处理子系统112的一些或所有PPU202是具有渲染管线的图形处理器,它可以经配置以执行与下述相关的各种任务:经由存储器桥105从CPU 102和/或系统存储器104所提供的图形数据生成像素数据。PPU 202经配置以与本地并行处理存储器204(可被用作图形存储器,包括例如常用帧缓冲区(buffer))交互以存储和更新像素数据,传递像素数据到显示设备110等等。在一些实施例中,并行处理子系统112可包括一个或多个作为图形处理器而操作的PPU 202以及包括一个或多个用于通用计算的其他PPU 202。这些PPU可以是相同的或不同的,并且每个PPU均可具有其自己的专用并行处理存储器设备或不具有专用的并行处理存储器设备。一个或多个PPU 202可输出数据到显示设备110,或者每个PPU 202均可输出数据到一个或多个显示设备110。
    在操作中,CPU 102是计算机系统100的主处理器,控制和协调其他系统组件的操作。具体地,CPU 102发出控制PPU 202的操作的命令。在一些实施例中,CPU 102为每个PPU 202写入命令流到入栈缓冲区(pushbuffer)中(在图1或图2中未明确示出),所述入栈缓冲区可位于系统存储器104、并行处理存储器204、或CPU 102和PPU 202都可访问的其他存储位置中。入栈缓冲区是CPU 102和PPU 202均可访问的存储器缓冲区。CPU 102向入栈缓冲区写入命令流和图形数据。PPU 202从所述入栈缓冲区读取命令流,然后相对于CPU 102的操作异步地执行命令。
    现在参考图2,每个PPU 202均包括与计算机系统100的其余部分通信的I/O(输入/输出)单元205。在一些实施例中,并行处理子系统112可作为外插卡来实现,所述外插卡可被插入到计算机系统100的扩展插槽中。在其他实施例中,PPU 202可以和诸如存储器桥105或I/O桥107的总线桥一起集成在单个芯片上。而在其他实施例中,PPU 202的一些或所有元件可以和CPU 102一起集成在单个芯片上。
    I/O单元205生成用于传输到CPU 102的数据包(或其他信号),并且还从CPU 102接收所有到达的数据包(或其他信号),将到达的数据包引导到PPU 202的适当组件。例如,可将与处理任务有关的命令引导到主机接口206,而可将与存储器操作有关的命令(例如,对并行处理存储器204的读取或写入)引导到存储器交叉开关单元210。主机接口206读取每个入栈缓冲区,并且将该入栈缓冲区指定的工作输出到前端212。
    有利地,每个PPU202都实现高度并行处理架构。如详细示出的,PPU202(0)包括处理集群阵列230,该阵列230包括C个通用处理集群(GPC)208,其中C≥1。每个GPC 208都能够并发执行大量的(例如,几百或几千)线程,其中每个线程均是程序的实例(instance)。在各种应用中,可分配不同的GPC 208用于处理不同类型的程序或用于执行不同类型的计算。例如,在图形应用中,第一组GPC 208可被分配以执行曲面细分(tessellation)操作并产生用于曲面元(patch)的基元(primitive)拓扑,并且第二组GPC 208可被分配以执行曲面细分着色以评估用于所述基元拓扑的曲面元参数并确定顶点位置和每顶点的其他属性。取决于因每种程序或计算所产生的工作量,GPC 208的分配可以改变。
    GPC 208经由工作分布单元200来接收将要执行的处理任务,所述工作分布单元200从前端单元212接收定义处理任务的命令。处理任务包括将被处理的数据的索引,例如表面(曲面元)数据、基元数据、顶点数据和/或像素数据,以及定义数据将被如何处理(例如,什么程序将被执行)的状态参数和命令。工作分布单元200可以经配置以获取与这些任务相对应的索引,或者工作分布单元200可以从前端212接收这些索引。前端212确保在入栈缓冲区所指定的处理启动前,将GPC 208配置为有效状态。
    例如,当PPU 202被用于图形处理时,用于每个曲面元的处理工作量被分为近似相等大小的任务,以使曲面细分处理能够分布给多个GPC 208。工作分布单元200可经配置以按照能够向多个GPC 208提供任务进行处理的频率来产生任务。相反,在常规系统中,处理一般由单个处理引擎执行,而其他处理引擎则保持空闲,等到该单个处理引擎完成其任务才开始他们的处理任务。在本发明的一些实施例中,各部分GPC 208经配置以执行不同类型的处理。例如第一部分可经配置以执行顶点着色和拓扑生成,第二部分可经配置以执行曲面细分和几何着色,第三部分可经配置以执行屏幕空间中的像素着色以产生经渲染的图像。由GPC 208产生的中间数据可以被存储在缓冲区中以使得该中间数据可以在GPC 208之间传输以进行进一步处理。
    任意一个GPC 208都可以处理将被写到并行处理存储器204中任意DRAM模块220的数据。交叉开关单元210经配置以路由每个GPC 208的输出到存储器接口214的输入或到另一个GPC 208用于进一步处理。GPC208通过交叉开关单元210与存储器接口214通信,以对各种外部存储器设备进行读取或写入。在一个实施例中,交叉开关单元210具有到存储器接口214的连接以和I/O单元205通信,以及到本地并行处理存储器204的连接,从而使得在不同GPC 208内的处理内核能够与系统存储器104或对于PPU 202而言非本地的其他存储器通信。图2所示的实施例中,交叉开关单元210直接与I/O单元205连接。交叉开关单元210可使用虚拟信道来分开GPC 208与存储器接口214之间的业务流。
    另外,GPC 208可被编程以执行与种类繁多的应用相关的处理任务,包括但不限于,线性和非线性数据变换、视频和/或音频数据过滤、建模操作(例如,应用物理定律以确定对象的位置、速率和其他属性)、图像渲染操作(例如,曲面着色、顶点着色、几何着色、和/或像素着色程序)等等。PPU 202可将数据从系统存储器104和/或本地并行处理存储器204传送到内部(片上)存储器中,处理所述数据,并且将结果数据写回到系统存储器104和/或本地并行处理存储器204,其中这样的数据可以由其他系统组件访问,所述其他系统组件包括CPU 102或另一个并行处理子系统112。
    PPU 202可配备有任意容量(amount)的本地并行处理存储器204,并且可以以任意组合方式使用本地存储器和系统存储器。例如,在统一存储器架构(UMA)实施例中,PPU 202可以是图形处理器。在这样的实施例中,将不提供或几乎不提供专用的图形(并行处理)存储器,并且PPU 202会以排他或几乎排他的方式使用系统存储器。在UMA实施例中,PPU 202可被集成到桥式芯片中或处理器芯片中,或作为具有高速链路(例如,PCI‑Express)的分立芯片提供,所述高速链路经由桥式芯片或其他通信方式将PPU 202连接到系统存储器。
    如上所述,并行处理子系统112可以包括任意数量的PPU 202。例如,在可在单个外插卡上提供多个PPU 202、或可将多个外插卡连接到存储器桥105、或可将一个或多个PPU 202集成到桥式芯片中。在多PPU系统中的PPU 202可以彼此相同或不同。例如,不同的PPU 202可能具有不同数量的处理内核、不同容量的本地并行处理存储器等等。在出现多个PPU 202的情况下,可并行操作这些PPU从而以高于单个PPU 202可能达到的吞吐量来处理数据。包含一个或多个PPU 202的系统可以以各种配置和形式因素来实现,包括台式电脑、笔记本电脑或手持式个人计算机、服务器、工作站、游戏控制台、嵌入式系统等等。
    存储器接口
    图3示出了根据本发明的一个实施例的存储器接口的一部分。在诸如JEDEC DDR3 SDRAM接口的常规存储器接口中,命令总线和地址总线是单端并行接口。例如,DDR3 SDRAM包括5个命令引脚和19个地址引脚(16个地址引脚和3个库地址引脚)。每个连接都是从存储器接口到DRAM模块单向的。
    如图3所示,存储器接口214实现差分时钟信号(CK/CK#)312、单端点对点或点对多点命令总线314和差分高速点对点串行地址总线316。时钟信号312与各种DDRx接口(即DDR2、DDR3等)的差分时钟信号相似。在一个实施例中,命令总线314包括5个互连,诸如DDR3 SDRAM接口中的CS#、RAS#、CAS#、WE#命令信号,但具有不同的编码。应该了解任何数量N的接口可被包括在命令总线314中。接口的数量可被优化以反映在命令总线314上可被编码的命令的总数。例如,3个互连使得被命令总线编码的命令多达8个。在一个实施例中,地址总线316是高速点对点差分串行链路。换言之,地址总线316包括两个连接在存储器接口214和DRAM模块220之间的互连。在另一实施例中,通过增加额外的点对点差分串行链路,地址总线316的带宽是可伸缩的。
    上电时校准地址总线316以在高频可靠地运转。采用常规串行命令/地址总线,通常包括低速边带通信信道以在校准前与DRAM模块220通信。然而,在图3所示的存储器接口214中,通过设计,命令总线314在上电时立即可用,不需要任何校准。因此,所有串行链路训练可经由在命令总线314上发出的命令执行,不需要单独的边带通信信道。例如,存储器接口214可以在命令总线314上将命令发送到DRAM模块220,指示DRAM模块220开始地址链路训练序列。然后,存储器接口214经由地址总线316将训练模式的序列(即,预定义的比特序列)传输到DRAM模块220。DRAM模块220接收该训练模式并经由数据总线(未示出)将所接收的模式传回存储器接口。DRAM模块220可以存储通过地址总线316发送的训练模式,所述训练模式随后通过经由命令总线314发出命令而被存储器接口214所读取。存储器接口214分析DRAM模块220接收到的数据以确定时序信息和参数以用来在地址总线316上传输数据。存储器接口214可以采用不同的传输参数重复地址链路训练序列。一旦存储器接口214完成了地址链路训练序列,高速的地址总线316就可以被用于将地址传输到DRAM模块220。
    有利地,命令总线314被用于在正常操作期间将命令传输到DRAM模块220。不同于实现边带信令接口以校准串行链路的常规串行存储器接口,存储器接口214经由命令总线314传输命令以初始化地址总线316。另外,在正常操作期间经由命令总线313将命令发送到DRAM模块220,从而在命令和地址都经由相同串行链路传输时缓解所需额外带宽的串行链路。在一个实施例中,与经由地址总线316发送地址大体同时地经由命令总线314发送命令。换言之,在与经由地址总线316传输地址的至少一部分相同的时钟周期期间经由命令总线314传输命令。在其他实施例中,可以与经由地址总线316发送地址相偏离(即,不在相同时钟周期)来经由命令总线314发送命令。
    应该了解上述作为并行处理子系统112一部分的存储器接口214和DRAM模块220也可以经由其他类型的存储器接口实现。例如,存储器桥105可以实现存储器接口214以与系统存储器104通信。另外,在其他实施例中,并行处理存储器可以包括两个或更多DRAM模块220并且每个DRAM模块220均可以包括独立的存储器接口。在其他实施例中,将在以下描述,单个存储器接口可以经由逻辑设备连接到多个DRAM模块220。而在其他实施例中,存储器设备可以是诸如MRAM、FRAM或SRAM存储器设备的不同类型的存储器,以及本公开不应该被解释为仅仅限制在DRAM存储器设备实现方案。
    图4示出了根据本发明一个实施例的包括多个DRAM模块220的并行处理存储器204。如图4所示,除多个DRAM模块220之外,并行处理存储器204还可以包括逻辑设备410。逻辑设备410提供到存储器接口214的接口。逻辑设备410接收时钟信号312、经由命令总线314传输的命令和由地址总线316传输的地址。尽管未明确示出,时钟信号312被提供给每个DRAM模块220。在一个实施例中,逻辑模块410包括时钟扇出(fanout)缓冲区,其提供足够的功率以向多达8个单独的DRAM模块220供应时钟信号。
    在一个实施例中,由逻辑设备410所接收的命令经由共享的并行总线412传输到每个DRAM模块220。由逻辑设备410所接收的地址可以经由单独的串行链路(例如416(0)、416(1)、…、和416(J))传输到相应的DRAM模块220。例如,逻辑模块410可以包含分析经由命令总线314接收到的命令以确定哪个DRAM模块220被该特定的命令所识别出来的电路。命令可被用来控制逻辑设备410内的解复用器(demultiplexor),该解复用器对应于被所述命令识别出来的DRAM模块220,将地址总线316连接到串行链路416(0)到416(J)中的一个。因此,命令经由共享的并行总线412被转发到正确的DRAM模块220,而地址经由串行链路416(0)到416(J)的其中一个被转发到正确的DRAM模块220。
    应该了解存储器接口214可以利用上述与图3有关的接口(即,并行命令接口加上用于地址的高速差分串行接口),而逻辑设备410后面的接口可以实现到每个DRAM模块220的不同类型的接口。例如,在一个实施例中,逻辑设备410可以经由与JEDEC DDR3 SDRAM规范所描述的接口相似的并行总线接口连接到每个DRAM模块220。尽管该DDR3 SDRAM规范被限制在特定带宽内,但是逻辑设备410的带宽可以更大,因为多个操作可以被逻辑设备410缓冲并被并行传输到不同的DRAM模块220。因此,存储器接口214和CPU 102之间的表面带宽远远大于任何DRAM模块220各自的可用带宽。
    图5示出了根据本发明另一实施例的包括多个DRAM模块220的并行处理存储器204。如图所示,并行处理存储器204包括连接到存储器接口214的逻辑设备510。逻辑设备510与逻辑设备410相似,除了DRAM模块220被包括在逻辑设备510内部。换言之,在图4的并行处理处理存储器204中DRAM模块220可以是经由印刷电路板耦合到逻辑设备410的单独的集成电路,而图5的并行处理存储器204可以包括单个集成电路,该单个集成电路实现体现在逻辑设备410以及单独的DRAM模块220所体现的逻辑。然后,各种耦合到逻辑设备510的信号中的每一者都经由集成电路内的互连被路由到相应的DRAM模块220。
    图6展示了根据本发明一个实施例的用于初始化存储器接口214的方法600的流程图。虽然本方法的步骤是结合图1‑5的系统描述的,但本领域的技术人员应当理解被配置以任何顺序执行该方法步骤的任何系统都在本发明的范围之内。
    所述方法始于步骤610,其中GPU 240经由命令总线314将命令传输到并行处理存储器204以开始用于高速差分串行地址总线316的链路训练例程。在一个实施例中,所述命令向并行处理存储器204指示训练模式序列将要在地址总线316上被GPU 240所传输。并行处理存储器204经配置以将在地址总线316上接收到的数据存储在一个或多个链路训练寄存器中。在步骤612,GPU 240经由地址总线316将训练标志序列传输到并行处理存储器204。并行处理存储器204将接收到的数据存储在链路训练寄存器中。在步骤614,GPU240将命令传输到并行处理存储器204以请求读取存储在链路训练寄存器中的接收到的数据。并行处理存储器204经由数据总线将接收到的数据传输到GPU240,类似于正常的存储器读取操作。在其他的实施例中,数据可以经由其他互连传输到GPU 240。
    在步骤616,GPU 240分析从链路训练寄存器读取的值以确定用于地址总线316的配置参数。例如,GPU 240可以确定在步骤612传输到并行处理存储器204的数据是否与在步骤614从并行处理存储器204接收的数据相匹配。在步骤618,GPU 240确定是否将新的训练标志序列传输到并行处理存储器204。在一个实施例中,如果传输到并行处理存储器204的数据与从并行处理存储器204读取的数据不匹配,那么GPU 240将调整地址总线316的配置并通过返回步骤612,如上讨论的,来经由串行链路重新发送链路训练序列。在另一个实施例中,GPU 240实现状态机以配置地址总线。只要所述状态不指示链路训练完成,那么GPU 240就会基于目前的状态传输新的训练标志序列并且方法600会返回步骤612。
    但是,如果GPU 240确定链路训练完成,那么方法600就会前进到步骤620,其中GPU 240将存储器接口转变到正常操作模式。在正常操作模式中,GPU 240可以将用于存储器操作的命令和地址分别在命令总线314和地址总线316上发送到并行处理存储器204。然后,方法600终止。
    总之,所公开的技术能够使GPU经由并行命令总线和高速串行地址总线将命令和地址传输到存储器设备。并行命令总线可以被用于在上电时启动与存储器设备的通信。此外,经由并行命令总线将启动串行地址总线校准的命令发送到存储器设备。一旦设备被校准,正常操作就可以恢复,其中经由并行命令总线传输命令并经由串行地址总线传输地址。
    所公开的技术的一个优势是相对于行业标准并行接口,减少了将命令和地址传输到存储器设备所需的互连的数量。另外,通过从地址总线分离命令总线,小的并行命令总线可被用于启动串行地址总线的校准,从而避免了对在正常操作期间用不到的独立低速边带通信信道的需要。
    虽然上述内容是针对本发明实施例的,但是在不脱离本发明基本范围的情况下,可以设计出本发明其他和更多的实施例。例如,本发明的各个方面可以在硬件或软件或硬件和软件的结合上实现。本发明的一个实施例可以作为与计算机系统一起使用的程序产品实现。所述程序产品的程序定义实施例(包括本文描述的方法)的功能并可以被包含在各种计算机可读存储介质上。示例性的计算机可读存储介质包括,但不限于:(ⅰ)信息被永久保存在其上的非可写存储介质(例如,计算机内的只读存储器设备,诸如可被CD‑ROM驱动器读取的CD‑ROM光盘、闪存、ROM芯片或任何类型的固态非易失性失半导体存储器);和(ⅱ)可变信息被保存在其上的可写存储介质(例如,磁盘驱动器内的软盘或者硬盘驱动器或者任何类型的固态随机存取半导体存储器)。当执行指向本发明的功能的计算机可读指令时,这样的计算机可读存储介质就是本发明的实施例。
    鉴于上述描述,本发明的范围由随后的权利要求确定。

    关 键  词:
    存储器 控制器 动态 随机存取存储器 接口
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:存储器控制器和动态随机存取存储器接口.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1501019.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1