利用多区块访问存储器的制作方法

文档序号:6616110阅读:235来源:国知局
专利名称:利用多区块访问存储器的制作方法
技术领域
本发明的实施例涉及微处理器领域,更具体地涉及存储器组织。
技术背景在典型的处理器系统中,通常将存储器组织为存储元件的线性寻址阵列。该 组织适用于代码或程序存储器,因为程序中的指令被顺序地执行。对于某些类型的 数据存储或对于某些存储器操作,线性组织可能是效率低下的。在很多应用中期望根据由特定应用操作的数据结构来组织存储器。例如,在图形和成像应用中,基本的数据结构是二维(2-D)阵列。除提供基本数据块外,2-D 阵列还可用于构造多维阵列。利用现有的存储器组织访问2-D阵列可引起导致低 效的处理开销。此外,屏幕刷新一般一次在一条扫描线上操作,因此在存储器组织 更线性时受益。


通过参考以下用于说明本发明的实施例的描述和附图将最好地理解本发明的实施例。附图中图1A是示出其中可实施本发明的一个实施例的系统的图示。图1B是示出根据本发明的一个实施例的图形系统的图示。图1C是示出根据本发明的一个实施例的服务器/计算机系统的图示。图2A是示出根据本发明的一个实施例的分区块的(tiled)存储器访问的图示。图2B是示出根据本发明的一个实施例具有存储器子通道的分区块的存储器访问的图示。图3A是示出根据本发明的一个实施例的访问控制器的图示。 图3B是示出利用根据本发明的一个实施例的访问控制器的垂直分区块的存 储器访问的图示。图3C是示出利用根据本发明的一个实施例的访问控制器的水平分区块的存
储器访问的图示。图4是示出根据本发明的一个实施例的地址前混合电路(address pre-swizzle circuit)的图示。图5是示出根据本发明的一个实施例的地址后混合电路(address post-swizzle circuit)图示。图6A是示出根据本发明的一个实施例的数据引导(steering)电路的构造的图示。图6B是示出根据本发明的一个实施例的数据引导电路的图示。 图7是示出根据本发明的一个实施例用于访问存储器的过程的流程图示。 图8是示出根据本发明的一个实施例为数据引导电路选择配置的过程的流 程图示。图9是示出根据本发明的一个实施例生成N组子通道地址位的过程的流程图示。
具体实施方式
本发明的实施例是一种用于控制存储器访问的技术。数据引导电路连接到存 储器的N个子通道,从而为包括分区块和未分区块的存储器访问的存储器访问类 型根据访问控制信号和与N个子通道相关联的子通道标识符来动态引导数据。分 区块的存储器访问包括水平和垂直分区块的存储器访问。地址前混合电路使地址线 适用于特定类型的访问。根据访问控制信号和经调节的地址位来配置数据引导电 路。地址后混合电路根据访问控制信号和子通道标识符来生成至N个子通道的子 通道地址位。在以下的描述中,陈述了众多特定的细节。然而,应理解可在没有这些特定 的细节的情况下实施本发明的实施例。在其它的例子中,没有示出公知的电路、结 构和技术,以免使本发明的难以理解。可将本发明的一个实施例描述为进程, 一般将该进程描述为流程图、流程图 解、结构图或框图。尽管流程图将操作描述为顺序进程,但很多操作可并行或同时 执行。流程图中的环路或迭代可由单个迭代来描述。应理解,维持环路索引或计数 器以更新相关联的计数器或指针。此外,可重新安排操作的顺序。进程在其操作完 成时终止。进程可对应于方法、程序、过程等。框图可包含描述元件、项、组件、 器件、单元、子单元、结构、方法、进程、功能、操作、功能性、任务等的块或模
块。可自动或手动地执行功能性或操作。图1A是示出其中可实施本发明的一个实施例的系统10的图示。系统10表示利用10吉比特以太网的局域网(LAN)。系统10包括两个校园20和40以及链路22。校园20和40中的每一个都表示利用网络互连来将个人计算机(PC)、工作站 和服务器连接起来的企业。它们可具有10吉比特以太网下行链路的多个 1000BASE-X或1000BASE-T节段的集合。链路22可以是跨越远距离(例如,40km) 连接两校园20和40的单模光纤链路。分组或数据的传输可与利用诸如里得-所罗 门(Reed-Solomon)码之类的纠错码的纠错一起进行。校园20和40可在其基础结构上相互类似。每一个校园中的网络可包括建筑 物、数据中心或计算机房。校园20可包括诸如交换机/路由器24和交换机/路由器 28之类的交换机/路由器以及LAN 30。校园40可包括诸如交换机/路由器42和交 换机/路由器46之类的交换机/路由器以及LAN 48。交换机/路由器24和42 —般位 于相应校园的边缘。它们经由链路22连接在一起。经由多模光纤链路26跨越较短 的距离(例如,30-80米)以高达每秒10吉比特的速度(Gbps)来连接交换机/路由 器24和28。交换机/路由器28连接到LAN30。类似地,经由多模光纤链路44跨 越较短的距离(例如,30-80米)以高达每秒10吉比特的速度(Gbps)来连接交换机 /路由器42和46。交换机/路由器46连接到LAN 48。LAN 30提供至诸如服务器32和个人计算机(PC)/工作站34之类的服务器、PC 或工作站的连接。类似地,LAN 48提供至诸如服务器50和PC/工作站52之类的 服务器、PC或工作站的连接。服务器32或50提供特定的操作以支持计算环境。 它们可以是连接到各个打印机的打印服务器、连接到诸如磁带机、廉价磁盘冗余阵 列(RAID)之类的大容量存储设备的存储服务器、提供诸如视频、音频或图形之类 的多媒体服务的媒体服务器或具有特定功能的任何服务器。每种服务器一般包括具 有至相应的LAN的网络连接的一个或多个网络接口卡。图IB是示出其中可实施本发明的一个实施例的图形系统60的图示。图形系 统60包括图形控制器65、存储器控制器70、存储器80、像素处理器85、显示处 理器90。数模转换器(DAC)95以及显示监视器97。图形控制器60是具有执行诸如快速直线绘制、二维(2-D)和三维(3-D)图形渲 染功能、明暗处理、反图形失真、多边形渲染、透明效果、颜色空间转换、a混合、 色度键控等图形操作的图形能力。存储器控制器(MC)70执行存储器控制功能,并 可包括用于控制存储器访问的访问控制器75。访问控制器75向包括分区块的和未
分区块的存储器访问的存储器80提供访问控制。存储器80包括SRAM或DRAM 存储设备。可将存储设备组织成N个子通道82()至82N。子通道82()至82n可接口 到访问控制器75。存储设备存储由图形控制器60处理的图形数据。像素处理器85是专用的图形引擎,它可执行特殊且复杂的图形功能,诸如几 何计算、仿射变换、模型视图投影、3-D裁剪等。像素处理器85还接口到存储器 控制器70以访问存储器80和/或图形控制器65。显示处理器90处理图形数据的显 示,并执行诸如调色板表查找、同步化、背光控制器、视频处理等显示相关的功能。 DAC 95将数字显示数字数据转换成至显示监视器97的模拟视频信号。显示监视 器97是可在屏幕上显示图形信息用于观看的任何显示监视器。显示监视器可以是 阴极射线管(CRT)监视器、电视(TV)机、液晶显示器(LCD)、平板或数字CRT。图1C是示出其中可实施本发明的一个实施例的工作站34/52的图示。工作站 34/52可包括处理器单元110、存储器控制器(MC)120、存储器130、输入/输出控制 器(IOC)140、互连145、大容量存储接口 150、输入/输出(I/0)设备147,至147K以 及网络接口卡(NIC)160。工作站34/52可或多或少地包括上述组件。处理器单元110表示任何类型的体系结构的中央处理单元,诸如利用超线程、 安全、网络、数字媒体技术的处理器、单核处理器、多核处理器、嵌入式处理器、 移动处理器、微控制器、数字信号处理器、超标量计算机、向量处理器、单指令多 数据(SIMD)计算机、复杂指令集计算机(CISC)、精简指令集计算机(RISC)、超长指 令字(VLIW)或混合式体系结构。MC 120提供诸如存储器130和ICO 140之类的存储器和输入/输出设备的控制 和配置。可将MC120集成到芯片组,该芯片组集成了诸如图形、媒体、隔离执行 模式、主机-外围总线接口、存储器控制、电源管理等多种功能。MC 120或MC 120 中的存储器控制器功能可集成在处理器单元110中。在某些实施例中,处理器单元 110内部或外部的存储器控制器可为处理器单元110中的所有核或处理器工作。在 其它实施例中,它可包括可分开地为处理器单元110中的不同的核或处理器工作的 不同的部分。MC 120可包括访问控制器125以控制对存储器130的访问。访问控 制器125可允许将存储器访问的动态配置成为分区块和未分区块的存储器访问。存储器130存储系统代码和数据。存储器130通常以动态随机存取存储器 (DRAM)、静态随机存取存储器(SRAM)或包括不需要刷新的存储器的任何其它 类型的存储器来实现。主存储器130可包括多通道存储设备,诸如类似于图1B 所示的在存储器80中使用的那些存储器的DRAM。DRAM可包括具有每秒8.59
吉字节(GB/s)的带宽的存储器控制器。DRAM可以是同步DRAM (SDRAM)、 单数据率(SDR) SDRAM、扩充数据输出(EDO) DRAM、双数据率(DDR) SDRAM、双数据率二(DDR2) SDRAM、 Rambus DRAM (RDRAM R)、极速数 据率(XDR)或XDR II。 RDRAM和XDR是Rambus的注册商标。DDR通过在 时钟的上升沿和下降沿两者上传输数据来使传输速率加倍,并且可将DDR封 装在双列直插存储器模块(DIMM)中。这有效的加倍了传输速率,而不增加前端 总线(FSB)的频率。DDR2利用各种技术来增加数据率,诸如用于消除芯片上的 过度信号噪声的管芯上的终端、预取缓冲器和片外的驱动器。片外的驱动器可 利用校准技术来彼此相对校准差分数据选通。通过校准,斜坡电压对于缓冲阻 抗被优化,以在上升沿和下降沿降低过冲或下冲。XDR或XDR II将差分Rambus 信号级(DRSL)用于可扩展高速点对点双向数据信号,并可将Rambus信号级 (RSL)用于至多个设备的源同步总线地址(bussed address)和命令信号。存储器 130中使用的存储设备可在诸如100 MHz、 133 MHz、 166 MHz、 266 MHz、 333 MHz、 400 Mhz、 1 GHz或扩展至8 GHz等任何适当的时钟频率下工作。它们 可用任何封装技术来封装,包括球栅阵列(BGA)、 DIMM、粘贴或模块。在一 个实施例中,存储器130包括N个子通道132o至132N。N个子通道132o至132N 中的每一个可对应于一个或多个存储设备。N个子通道132o至132n可接口到 访问控制器125。图形处理器135是能提供图形功能的任何处理器。图形处理器135还可集成 到MC120以形成图形和存储器控制器(GMC)。图形处理器135可以是显卡,诸如 经由图形端口接口到MC 120的图形性能加速器(AGP)卡,上述图形端口诸如可以 是用于图形控制器的加速图形端口(AGP)或PCI快速端口。图形处理器135提供至 显示监视器137的接口 ,显示监视器137诸如可以是标准逐行扫描监视器、电视(TV) 输出设备以及转换最小差分信号(TMDS)控制器。显示监视器137可以是诸如阴极 射线管(CRT)监视器、TV机、液晶显示器(LCD)、平板以及数字CRT。ICO 140具有设计成支持I/O功能的多种功能。IOC 140还可与芯片组集成在 一起,或与MC 120分离以执行I/O功能。IOC 140可包括多个接口和I/O功能, 诸如外围组件互连(PCI)总线接口 、处理器接口 、中断控制器、直接存储器访问(DMA) 控制器、电源管理逻辑、定时器、系统管理总线(SMBus)、通用串行总线(USB)接 口、大容量存储接口、低引脚数(LPC)接口、无线互连、直接媒体接口(DMI)等。互连145提供至外围设备的接口。互连145可以是点对点的,或连接到多个
设备。为了清楚起见,没有示出所有的互连。可预想互连145可包括任何互连或总线,诸如外围组件互连(PCI)、 PCI快速、通用串行总线(USB)、小型计算机系统接 口(SCSI)、串行SCSI以及直接媒体接口(DMI)等。大容量存储接口 150接口到大容量存储设备以存储诸如代码、程序、文件、 数据和应用程序之类的档案信息。大容量存储接口可包括SCSI、串行SCSI、先进 技术附连(ATA)(并行禾tl/或串行)、集成驱动电子电路(IDE)、增强型IDE、 ATA分 组接口(ATAPI)等。大容量存储设备可包括致密盘(CD)只读存储器(ROM)152、数 字视频/通用盘(DVD)153、软盘驱动器154和硬盘驱动器155、磁带驱动器156以 及任何其他磁或光存储设备。大容量存储设备提供了用于读取机器可访问介质的机 构。I/O设备147!至147K可包括用于执行I/O功能的任何I/O设备。I/O设备147, 至147K的例子包括用于输入设备(例如,键盘、鼠标、跟踪球、点击设备)的控制 器、媒体卡(例如,音频、视频、图形显示)、网卡以及任何其他的外围控制器。NIC 160向工作站34/52提供网络连接。NIC 160可生成中断作为通信事务处 理的一部分。在一个实施例中,NIC 160与32位和64位外围组件互连(PCI)总线标 准兼容。它一般遵守PCI局部总线版本2.2、 PCI-X局部总线版本1.0或PCI-Epress 标准。处理系统中可有一个以上的NIC 160。通常,NIC 160支持标准以太网最小 和最大帧大小(64至1518字节)、帧格式以及电气和电子工程师协会(IEEE)802.2局 部链路控制(LLC)规范(Institute of Electronics and Electrical Engineers (IEEE) 802.2 Local Link Control (LLC) specifications)。它还支持全双工吉比特以太网接口 、基于 帧的流量控制以及限定有线以太网的物理层和数据链路层的其他标准。它可支持由 IEEE 802.3ab定义的铜吉比特以太网或由IEEE 802.3z定义的光纤吉比特以太网。NIC 160也可以是诸如小型计算机系统接口(SCSI)主机适配器或光纤通道(FC) 主机适配器之类的主机总线适配器(HBA)。 SCSI主机适配器可包括板上硬件或固 件以执行SCSI事务,或者包括适配器基本输入/输出系统(BIOS)以从SCSI设备导 入或配置SCSI主机适配器。FC主机适配器可被用于接口到光纤通道总线。它可 以在带有与1Gbps光纤通道存储区域网络(SAN)协商的自动速度的高速(例如, 2Gbps)下工作。它可由适当的固件或软件支持,以变向本地和远程的HBA的发现、 报告和管理提供带内FC或带外因特网协议(IP)支持。它可具有帧级多路复用和乱 序帧重组、用于光纤支持的板上上下文高速缓存以及具有硬件奇偶校验码和循环冗 余码(CRC)支持的端对端数据保护。 图2A是示出根据本发明的一个实施例的分区块存储器访问200A的图示。分 区块存储器访问200A包括存储器的矩形区205。矩形区205是一存储器块的存储 器寻址的逻辑表示。它包括被组织为P列Q行的二维阵列的许多存储器块。在该 说明性例子中,P-4且Q:4。块中的每一个都可包括多个字节。在该例子中,每 一个块含有16个字节。正如本领域的技术人员已知的,矩形区域205可包括具有 任何数量的行和列的任何数量的块,只要行和列的数量相同即可。此外,每一个块 可包括任何数量的字节。因为存储器寻址是面向字节的,所以相连块的地址由16或000010H移位,其 中H表示十六进至记法。以下,地址是十六进制的。矩形区205包括被组织成4x4 二维(2-D)阵列的16个相连的块。该4x4 2-D阵列被称为一个区块(tile)。如图所 示,假设第一块的地址是OOO,则接下来的各块的地址是010、 020、 030、 040等。区205可对应于64字节存储器访问。这可对应于四条高速缓存线。可有两种 类型的存储器访问分区块的存储器访问和未分区块的存储器访问。在典型的未分 区块的存储器访问中,8个被连续寻址的8字节块每次传输一个。在本发明的分区 块存储器访问中,连续的被寻址字节不是被连续寻址的。分区块的存储器访问可包 括两种类型水平分区块存储器访问和垂直分区块存储器访问。本质上,未分区块 和水平分区块的存储器访问的差别在于如何将数据分布在子通道上。未分区块的存 储器访问的字节顺序与分区块访问的字节顺序不同。访问分区块区域的应用程序可 使用未分区块的访问,只要相应地重新排序字节顺序即可。对于存储器205,可有两种类型的存储器访问水平访问210和垂直访问220。 水平访问210包括四个水平访问212、214、216和218。每一个水平访问对应于1x64 字节的块。水平访问210可适用于诸如显示器刷新之类的存储器操作,其中表示单 根扫描线的像素值的数据被连续访问。垂直访问220包括四个垂直访问222、 224、 226和228。每一个访问对应于4x16字节的块。垂直访问模式可适用于诸如渲染之 类的图形或成像操作。图2B是根据本发明的一个实施例示出具有存储器子通道的分区块存储器访 问200B的图示。分区块存储器访问200B可包括存储器区245和存储器的子通道。 子通道是被分配成对应于诸如矩形区205之类的区块中的一块或多块的存储设备 的逻辑划分。出于简单起见,矩形区205可以是被分成分配给N个子通道250、251、 252和254的NxN个块的正方形区。每一个子通道中的物理存储设备的数量取决 于存储设备组织和矩形区205中的块的大小。例如,如果将每一个设备组织为1 字节宽,并且每一个块包括2字节,并且有4x4个块,则可有四个子通道并且每一 个子通道可对应于两个存储设备。可将分区块的存储器区245分成4x4个块。可将这些块分配给子通道使得任 何行或任何列可包含不同的子通道分配。每一个行可包含分配给每一个子通道的存 储器块,并且每一列可包含分配给每一个子通道的存储器块。在该例子中,如图所 示,4个子通道250、 251、 252和253被水平地或垂直地分配给块。分区块的存储 器访问200B可包括水平分区块的存储器访问260和垂直分区块的存储器访问270。 水平分区块存储器访问260可包括水平分区块存储器访问262、 264、 266和268。 它们中的每一个都水平地访问存储器块。类似地,垂直分区块存储器访问270可包 括垂直分区块存储器访问272、 274、 276和278。它们中的每一个都垂直地访问存 储器块。子通道向分区块的存储器区245的分配块可影响由处理器110生成的地址位 和各个子通道处地址位之间的映射。以下,假设由处理器110或存储器控制器120 生成的地址位包括用于32位地址范围和16字节数据的位A31-A4。正如本领域的 技术人员已知的,可采用任何地址范围和任何数据大小。在分区块的块245中所示的映射如下 将子通道O分配给块OOO-OOF、 090-09F、 060-06F以及OFO-OFF。
将子通道1分配给块040-04F、 0D0-ODF、 020-02F以及OBO-OBF。
将子通道2分配给块080-08F、 OIO-OIF、 OEO -OEF以及070 — 07F。
将子通道3分配给块OCO —OCF、 050 —05F、 OAO — OAF以及030 — 03F。应注意,可采用其它的映射或分配,只要每一行和每一列包含分配给子通道 中的每一个的块即可。子通道可由子通道标识符来识别。对于四个子通道,子通道标识符可包括2 位SC1和SCO。每一个16字节块被映射到的子通道可以是16字节块的基地址的 逻辑函数。对于以上的映射, 一个这样的函数是异-OR(XOR)函数。利用该函数, 可将子通道标识符位定义为地址位A7-A4的函数,如下SC1=A4X0RA7 (la)SC0 = A5XORA6 (lb)注意,这些等式适用于以上的分配或映射。对于其它的分配或映射,可有不 同的等式。或者,给出地址位A5-A4和对应的子通道标识符位SC1和SCO,就可 获得地址位A7—A6。对于以上的分配和映射,可获得关于垂直分区块存储器访问
的地址位A7-A6:A7 = A4XORSCl (2a) A6 = A5 XOR SCO (2b)图3A是示出根据本发明的一个实施例的图1B/1C中所示的访问控制器75/125 的图示。访问控制器75/125包括数据引导电路310、解码电路320、地址前混合电 路330和地址后混合电路335o至3353以及子通道接口 340。至3403。对于该说明性 的例子,假设有示为数据传输350的每一个至/自子通道的8字节的8个传输。这 些传输对应于64字节传输360。地址前混合电路330可在访问控制器75/125内, 或者在访问控制器75/125外部的需要分区块存储器访问的组件中。对于水平分区块的存储器访问和未分区块的存储器访问,地址位A7-A6编码 待访问的区块中的行。对于垂直分区块的存储器访问,地址位A5-A4编码待访问 的列。地址前混合电路330示出在垂直访问中待访问的列的指定的一个实施例。在 该实施例中,在垂直访问期间,地址位A6和A7分别由地址位A5和A4取代。分区块的存储器访问如图2B所示包括水平和垂直分区块的存储器访问。访问 控制信号包括用以选择分区块的存储器访问的分区块控制信号(TILED)、以及用以 在该分区块控制信号被断言(asserted)时选择垂直分区块的存储器访问的垂直控制 信号(VERT)。当TILED被否定或去断言时,VERT变得无关。解码电路320解码访问控制信号TILED和VERT。当TILED和VERT之一被 去断言时(例如,逻辑0),解码电路320的输出VERT'使能未分区块的或水平分区 块的存储器访问模式。当TILED和VERT两者都被断言时(例如,逻辑1),解码电 路320的输出VERT'使能垂直分区块的存储器访问模式。在一个实施例中,解码 电路320可由AND门来实现。数据引导电路310根据访问控制信号为数据引导选择配置。在存储器访问类 型是具有调节地址位的第一组值的未分区块的存储器访问、水平分区块的存储器访 问或垂直分区块的存储器访问时,数据引导电路310选择第一配置。调节地址位是 用于根据访问类型影响存储器配置的地址位。对于该说明性的例子,调节地址位是 A7和A6。当存储器访问类型是具有调节地址位的其它组值的垂直分区块的存储器 访问时,数据引导电路310选择三种配置之一。地址后混合电路335o至3353耦合至N子通道接口 340o至3403,以根据访问 控制信号和子通道标识符来生成至N个子通道的子通道地址位。在该说明性例子 中,假设地址线是A31-A6。这些地址位由处理器单元IIO、图形控制器65或MC
70/120发出。将这些地址位A31-A8在不作修改的情况下直接经由子通道接口 3400 至3403路由至存储器子通道。地址位A6-A7用于生成至各个子通道的适当的地址 位。可将子通道标识符存储在配置寄存器中,并且对于每一个子通道的子通道标识 符是唯一的。在一个实施例中,子通道标识符包括P位,其中P = 1og2(N)且N是 子通道的数量。例如,当如图3A所示P二4时,子通道标识符可包括2位SC1和 SC0。因此,子通道接口 340()至3403与分别具有00、 01、 10和11的值的子通道 标识符位SC1 SCO相关联。子通道接口 340o至3403是至诸如图1B/1C中示出的子通道82o至82^1320至 1323之类的存储器80/130的对应的子通道的接口。如上所述,子通道82o至82N/132() 至1323是分配给分区块的存储器区的块的存储器80/130中的存储设备的逻辑划 分。子通道接口 340()至3403中的每一个与子通道标识符相关联。图3B是示出根据本发明的一个实施例的利用访问控制器75/125的垂直分区 块存储器访问的图示。对于垂直分区块的传输,TILED和VERT都被断言。解码 电路320的输出VERT'被断言。地址前混合电路330将要访问的列号置于地址线 A7-A6上。地址后混合电路335o至3353解码地址位A7-A6以生成经由子通道接口 340o至3403至各个子通道的地址位A7-A6。在图4和图5中分别示出了用于地址 前混合电路330和地址后混合电路335o至3353的电路。对于垂直分区块存储器访问,VERT'信号和地址位A7-A6为数据引导电路310 选择四种配置之一。四种配置之一对应于恒等置换映射(identify permutation mapping)。其它三种配置对应于非恒等置换映射(non-identify permutation mapping)。 注意,可采用任何其它的映射,只要它们与水平分区块的存储器访问或未分区块的 存储器访问中的映射不同即可。图6A中示出了数据引导电路310的四种配置。地址前混合电路330生成至四个子通道340o至3403的两个地址位AD7-AD6, 以对应于四个垂直地址。地址位A31-A8传递通过,并在每一个子通道处与由地址 后混合电路335()至3353解码的AD7-AD6结合以将完整的地址位提供给四个子通 道。数据传输350包括8个传输。每一个传输对应于分区块的存储器区的垂直列。 数据传输通过数据引导电路310路由,以对应于64字节传输360。 TILED信号选 择按行的64字节传输的访问。即,如果将64字节传输视为8乘8字节的阵列,并 且如果将该阵列的第一行视为传输的第一个8字节,将第二行视为传输的第二个8 字节等等,则将一对这样的行发送到每一个子通道。
图3C是示出根据本发明的一个实施例的利用访问控制器75/125的水平分区 块的存储器访问的图示。对于水平分区块的传输,VERT被否定或去断言。解码电 路320的输出VERT'被否定或去断言。地址前混合电路330使指示要被访问的区 块行的地址位A7-A6不变。被断言的VERT信号调节地址后混合电路335o至3353, 以在不改变地址位A7-A6的情况下将其经由子通道接口 340Q至3403传递到各个子 通道。对于水平分区块存储器访问,VERT'信号为数据引导电路310选择第一配置。 第一配置对应于恒等置换映射。在图3C所示的例子中,该恒等置换映射将子通道 侧的端口编号O、 1、 2和3分别映射到处理器侧端口编号0、 1、 2和3。数据传输350包括8个传输。每一传输对应于分区块的存储器区的水平行。 数据传输通过数据引导电路310来发送,以对应于64字节传输360。 TILED信号 选择按行的64字节传输的访问。即,如果将64字节传输视为8乘8字节的阵列, 并且如果将该阵列的第一行视为传输的第一个8字节,将第二行视为传输的第二个 8字节等等,则将一对这样的行发送到每一个子通道。图3D是示出根据本发明的一个实施例利用访问控制器75/125的未分区块的 存储器访问的图示。对于未分区块的传输,TILED被否定或去断言。解码电路320 的输出VERT'被否定或去断言。地址前混合电路330使指示要被访问的区块行的 地址位A7-A6不变。VERT信号调节地址后混合电路335o至3353,以在不改变地 址位A7-A6的情况下将其经由子通道接口 340。至3403传递到各个子通道。对于未分区块的存储器访问,VERT'信号为数据引导电路310选择第一配置。 第一配置对应于恒等置换映射。在图3D所示的例子中,该恒等置换映射将子通道 侧的端口编号O、 1、 2和3分别映射到处理器侧端口编号0、 1、 2和3。数据传输350包括8个传输。每一传输对应于分区块的存储器区的水平行。 数据传输通过数据引导电路310来路由,以对应于64字节传输360。 TILED信号 选择按列的64字节传输的访问。SP,如果将64字节传输视为8乘8字节的阵列, 并且如果将该阵列的第一行视为传输的第一个8字节,将第二行视为传输的第二个 8字节等等,则将一对这样的列发送到每一个子通道。图4是根据本发明的一个实施例示出图3A中所示的地址前混合电路330的图示。本质上,地址前混合电路330包括解码器,以分别基于访问控制信号将K个 最低有效共用地址位解码为对应于地址位A7-A6的地址位AD7-AD6。对于图3A
中所示的说明性例子,地址前混合电路330解码包括4个地址位A7-A4在内的 A31-A4的4个最低有效地址位,并将地址位AD7-AD6传送到地址后混合电路3350 至3353。地址前混合电路330包括两个二至一多路复用器410和420。多路复用器410 的输入是地址位A7和A4。多路复用器420的输入是是地址位A5和A6。两个多 路复用器都由VERT'信号选择。当VERT'信号为低时,指示存储器访问是未分区 块的存储器访问或水平分区块的存储器访问,多路复用器410和420分别选择对应 于A7和A6的0输入。当VERT'信号为高时,指示存储器访问是垂直分区块的存 储器访问,多路复用器410和420分别选择对应于A4和A5的1输入。地址前混 合电路330因此根据存储器访问是未分区块的或水平分区块的访问还是垂直分区 块的访问来提供地址位AD7-AD6作为A7-A6或A4-A5。图5是根据本发明的一个实施例示出图3A中所示的地址后混合电路 335i(i=0 ... 3)的图示。在该实施例中,可在子通道接口 3400至3403处提供子通道 标识符。子通道接口 340。至3403可在接口电路处本地提供子通道标识符(例如,SC1 和SCO位)。接口电路可在MC 120的内部或外部。在其它的实施例中,可在初始 化或启动序列期间在作为配置过程的一部分的配置寄存器中提供子通道标识符。地址后混合电路335i可包括N个子通道解码器520。至520n.p其中N是子通 道的数量。N个子通道解码器520o至520^基本上是相同的。N个子通道解码器 520q至520n.,中的每一个的输入是地址前混合电路330的AD7-AD6位和子通道标 识符位,即,在对应的子通道处的SC1和SCO。 N个子通道解码器520o至520^ 的输出是要传送到子通道的存储设备的地址位A7-A6。对于N:4,有4组要传送 到子通道的存储设备的A7-A6位。N个子通道解码器中的每一个都基于访问控制信号(例如,TILED、 VERT)禾口 对应的子通道标识符(例如,SC1和SCO)生成K个子通道地址位(例如,A7-A6), 其中N二2K。为了简化起见,没有示出所有的子通道解码器。子通道解码器5200包 括两个XOR门532o和534o以及两个2至1多路复用器542。和544。。两个XOR 门532o和534o在子通道0处对AD7-AD6位和子通道标识符位SClo禾n SCOo进行 XOR操作。多路复用器的输入0是AD7-AD6位。多路复用器536的输入1是XOR 门532o和534o的输出。在本质上,子通道解码器5200实现了由等式(2a)和(2b)提 供的逻辑功能。其它的子通道解码器具有类似的组件。例如,子通道解码器5203 包括两个XOR门5323和5343以及2至1多路复用器5343。它将地址A7-A6传送
到子通道3 3403。将VERT'信号连接到所有的多路复用器542o和544Q的选择输入。当VERT' 被否定或去断言时,指示存储器访问类型是水平分区块的存储器访问或未分区 块的存储器访问,多路复用器542o和544。选择0输入,它是AD7-AD6地址位, 这又与最初的地址位A7-A6相同。当VERT'被断言时,指示存储器访问类型是垂直分区块的存储器访问,多 路复用器542o和544o选择1输入,它对应于XOR门5320、 534。…5323、 5343 的输出。XOR门532o…5343在子通道标识符SCl0、 SC00...SC13、 SC03与作为最 初地址位A4-A5的地址位AD7-AD6之间进行XOR操作,正如由等式(2a)和(2b) 提供的那样。因此,被发送到子通道340()至3403的所生成的A7-A6地址位对应于 用于垂直分区块的存储器访问的经适当计算的地址位。图6A是根据本发明的一个实施例示出数据引导电路310的配置600的图示。 配置600包括配置或映射610、 620、 630和640。数据引导电路310接口到MC 120的数据总线,以将数据传输到MC 120或从 MC120传输到适当的处理器单元110。它连接到存储器的N个子通道,以根据访 问控制信号以及与N个子通道相关联的子通道标识符为包括分区块和未分区块的 存储器访问在内的存储器访问类型动态引导数据。可将数据引导电路310组织为将 处理器侧的N个端口连接到子通道侧的N个端口的交换网络。如图6A所示,这 些端口被编号为(O、 1、 2、 3)。因此可将这些交换配置视为从表示一侧的端口号的 一组号码映射到表示另一侧的端口号的另一组号码。配置610是统一置换,其中一侧的端口O、 1、 2和3分别映射到另一侧的端 口0、 1、 2禾tU。该配置由具有分别等于0和0的地址位AD7和AD6的未分区块 的存储器访问、水平分区块的存储器访问和垂直分区块的存储器访问使用。配置620是非统一置换,其中一侧的端口O、 1、 2和3分别映射到另一侧的 端口 1、 0、 3和2。该配置由具有分别等于1和0的地址位AD7和AD6的垂直分 区块的存储器访问使用。配置630是非统一置换,其中一侧的端口 0、 1、 2和3分别映射到另一侧的 端口2、 3、 0和1。该配置由具有分别等于O和1的地址位AD7和AD6的垂直分 区块的存储器访问使用。配置640是非统一置换,其中一侧的端口O、 1、 2和3分别映射到另一侧的 端口3、 2、 l和O。该配置由具有分别等于1和1的地址位AD7和AD6的垂直分
区块的存储器访问使用。图6B是根据本发明的一个实施例示出数据引导电路310的图示。数据引导电 路310包括用于双向传输的电路。为了简化起见,仅示出了用于一个方向的电路。 在该电路中,数据传输从入口O、 1、 2和3到出口0、 1、 2和3。当这些电路中的 两个用于提供双向传输时,可根据需要在出口O、 1、 2和3以及入口0、 1、 2和3处使用三态缓冲器。数据引导电路310包括XOR门6520、 6540、 652!、 654" 6522、 6542、 6523 和6543、 2至1多路复用器662()、 6640、 663,、 664,、 6622、 6642、 6623和6643以 及4至1多路复用器670()、 670" 6702和6703。 XOR门6520、 6540、 652,、 654、 6522、 6542、 6523和6543分别对地址位AD7和AD6与硬编码子通道标识符00、 01、 IO和11进行XOR操作。VERT'信号用于选择2至1多路复用器662Q、 664Q、 663,、 664" 6622、 6642、 6623和6643的输入。如图所示,2至1多路复用器对662。、 6640、 663!、 664i、 6622、 6642、 6623和6643的输出用于选择4至1多路复用器670o、 670j、 6702和6703的输入。当VERT'信号为低时,指示存储器访问类型是未分区块的存储器访问或水平 分区块的存储器访问,2至1多路复用器6620、 664Q、 663!、 664,、 6622、 6642、 6623 和6643选择子通道标识符00、 01、 lO和ll。当这些输出用于选择4至1多路复 用器670q、 670!、 6702和6703时,结果是出口0、 1、 2和3分别被映射到入口 0、 1、 2和3,这对应于统一置换映射。当VERT'信号为高时,指示存储器访问类型是垂直分区块的存储器访问,2 至1多路复用器662f)、 6640、 663,、 664,、 6622、 6642、 6623和6643选择XOR门 的输出。因此映射的结果取决于地址位AD7和AD6的值。当AD7-AD6 = 00时,XOR门的输出是00、 01、 10和11,这与VERT,信号 为低的情况相同。因此,结果是对于AD7-AD6z00,出口 0、 1、 2和3分别被映 射到入口O、 1、 2和3,这对应于图6A所示的配置610中指示的统一置换映射。当AD7-AD6 = 01时,XOR门的输出是Ol、 00、 11和10。因此,结果是对 fAD7-AD6 = 01,出口O、 1、 2和3分别被映射到入口 1、 0、 3禾B 2,这对应于 图6A所示的配置620。当AD7-AD6二 10时,XOR门的输出是IO、 11、 OO和Ol。因此,结果是对 于AD7-AD6二10,出口O、 1、 2和3分别被映射到入口 2、 3、 0和1,这对应于 图6A所示的配置630。 gAD7-AD6= 11时,XOR门的输出是ll、 10、 01和00。因此,结果是对 于AD7-AD6二U,出口0、 1、 2和3分别被映射到入口 3、 2、 1禾n 0,这对应于 图6A所示的配置640。图7是根据本发明的一个实施例示出访问存储器的过程700的流程图。注意, 过程700示出了读访问。写访问也可类似地获得。在开始后,过程700根据访问控制信号调节地址位(框710)。访问控制信号可 包括用于选择分区块的存储器访问的分区块的控制信号以及在TILED控制信号被 断言时用于选择垂直分区块的存储器访问的垂直控制信号。接着,过程700连接到 存储器的N个子通道,以根据访问控制信号和经调节的地址位为包括分区块和未 分区块的存储器访问在内的存储器访问类型动态引导数据(框720)。分区块的存储 器访问包括水平和垂直分区块的存储器访问。然后,过程700根据访问控制信号和子通道标识符生成至N个子通道的子通 道地址位(框730)。接着,过程700确定存储器访问是否是分区块的(框740)。如果是的话,则过 程700按行访问存储器(框750),然后终止。否则,过程700按列访问存储器(框760), 然后终止。图8是根据本发明的一个实施例示出为数据引导电路选择配置的过程720的 流程图。在开始后,过程720确定存储器访问类型是否是垂直分区块的(框810)。如果 不是,则过程720为数据引导电路选择第一配置(框820)然后终止。否则,过程720 确定经调节的地址位是否是00(框830)。如果是,则过程720进入框820。否则, 过程720根据经调节的地址位为数据引导电路选择三种配置中的一个(框840),然 后终止。通常,第一配置对应于从一侧端口至另一侧端口的恒等置换映射。其它的 三种配置可对应于非恒等置换映射。图9是示出用于生成N组子通道地址位的图7所示的过程730的流程图。 在开始后,过程730确定存储器访问类型是否是垂直分区块的(框920)。如果 是的话,则过程730生成包括经调节的地址位和对应的子通道标识符的逻辑函数在 内的N组子通道地址位(框930),然后终止。否则,过程730生成包括经调节的地 址位在内的N组子通道地址位(框940),然后终止。本质上,当访问类型是水平分 区块或未分区块的存储器访问时,发送到子通道的经调节的地址位与相同位的位置 处的最初地址位相同。
本发明的实施例可由硬件、固件、软件或其任意组合来实现。术语硬件一般 指的是具有诸如电子、电磁、光、电光、机械、电机部件、组件或器件等物理结构的元件。术语软件一般指的是逻辑结构、方法、过程、程序、例程、进程、算法、 公式、函数、表达式等。术语固件一般指的是实现或包含在硬件结构(例如,闪存 逻辑)中的逻辑结构、方法、过程、程序、例程、进程、算法、公式、函数、表达 式等。固件的例子可包括微代码、可写控制存储、微编程结构。当实现在软件或固 件中时,本发明的实施例的元件本质上是执行必需的任务的代码段。软件/固件可 包括用于执行本发明的一个实施例中所述的操作的实际代码或用于仿真或模拟操 作的代码。程序或代码段可存储在处理器或机器可访问介质中,或由包含在载波或 由载波调制的信号中的计算机数据信号来发送。"处理器可读或可访问介质"或"机 器可读或可访问介质"可包括能存储、发送或传送信息的介质。处理器可读或机器 可访问介质的例子包括电子电路、半导体存储设备、只读存储器(ROM)、闪存、可擦除ROM(EROM)、可擦除可编程ROM(EPROM)、软盘、致密盘(CD)ROM、光 盘、硬盘、光纤介质、射频(RF)链路等。机器可访问介质可包括数据,当该数据被 机器访问时,使得机器执行上述操作。机器可访问介质还可包括嵌入其中的程序代 码。程序代码包括执行上述操作的机器只读代码。本发明的全部或部分可由硬件、软件、固件或其任意组合来实现。硬件、软 件或固件可具有互相耦合的多个模块。硬件模块通过机械、电、光电磁或其它物理 连接耦合到另一个模块。软件模块通过函数、过程、方法、子程序、或子例程调用、 跨接、链路、参数、变量以及变元传递、函数调用返回等耦合到另一个模块。软件 模块被耦合到另一个模块以接收变量、参数、变元、指针等。固件模块通过硬件和 耦合上述方法的软件的任意组合来耦合到另一个模块。硬件、软件或附件模块可被 耦合到另一个硬件、软件或固件中的任何一个。装置可包括硬件、软件和固件模块 的任意组合。尽管根据几个实施例描述了本发明,但本领域的技术人员将意识到本发明不 限于所述的实施例,而是可用所附权利要求的精神和范围内的修改和改变了实施本 发明。因此将说明书视为说明性的而不是限制性的。
权利要求
1.一种装置,包括地址前混合电路,用于根据访问控制信号调节由处理器提供的地址位;耦合到所述地址前混合电路的数据引导电路,用于连接到存储器的N个子通道,以根据所述访问控制信号、所述经调节的地址位以及与所述N个子通道相关联的子通道标识符为包括分区块和未分区块的存储器访问在内的存储器访问类型动态引导数据,所述分区块的存储器访问包括水平和垂直分区块的存储器访问;以及耦合到所述地址前混合电路和所述N个子通道的地址后混合电路,用于利用所述经调节的地址位并根据所述访问控制信号和所述子通道标识符来生成至所述N个子通道的子通道地址位。
2. 如权利要求l所述的装置,其特征在于,所述访问控制信号包括 用于选择所述分区块的存储器访问的分区块控制信号;以及 在所述分区块控制信号被断言时用于选择所述垂直分区块的存储器访问的垂直控制信号。
3. 如权利要求l所述的装置,其特征在于,所述地址前混合电路包括 数据选择器,用于选择K个最低有效共用地址位,K等于log2(N)。
4. 如权利要求1所述的装置,其特征在于,当所述存储器访问类型是所 述垂直分区块的存储器访问时,所述地址后混合电路生成包括所述经调节的地 址位和所述对应的子通道标识符的逻辑函数在内的N组子通道地址位。
5. 如权利要求1所述的装置,其特征在于,当所述存储器访问类型是所 述水平分区块的存储器访问或未分区块的存储器访问时,所述地址后混合电路 生成包括所述经调节的地址位的N组子通道地址位。
6. 如权利要求1所述的装置,其特征在于,当所述存储器访问类型是具 有用于所述经调节的地址位的第一组值的所述未分区块的存储器访问、所述水 平分区块的存储器访问和所述垂直分区块的存储器时,所述访问控制信号和所 述经调节的地址位为所述数据引导电路选择第一配置。
7. 如权利要求1所述的装置,其特征在于,当所述存储器访问类型是具 有与用于所述经调节的地址位的第一组值不同的三组值中的一组的所述垂直分区块的存储器访问时,所述访问控制信号和所述经调节的地址位选择三种配 置中的一种。
8. 如权利要求6所述的装置,其特征在于,所述第一配置对应于恒等置换映射,而所述三种配置中的一种对应于非恒等置换映射。
9. 如权利要求1所述的装置,其特征在于,所述分区块的存储器访问按 行访问所述存储器,而所述未分区块的存储器访问按列访问所述存储器。
10. —种方法,包括根据访问控制信号调节由处理器提供的地址位;连接到存储器的N个子通道,以根据所述访问控制信号、所述经调节的地 址位以及与所述N个子通道相关联的子通道标识符为包括分区块和未分区块的 存储器访问在内的存储器访问类型动态引导数据,所述分区块的存储器访问包 括水平和垂直分区块的存储器访问;以及根据所述访问控制信号、所述经调节的地址位和所述子通道标识符来生成 至所述N个子通道的子通道地址位。
11. 如权利要求10所述的方法,其特征在于,所述访问控制信号包括用 于选择所述分区块的存储器访问的分区块控制信号以及在所述分区块控制信 号被断言时用于选择所述垂直分区块的存储器访问的垂直控制信号。
12. 如权利要求10所述的方法,其特征在于,所述生成所述子通道地址 位的步骤包括选择K个地址位,K等于log2(N)。
13. 如权利要求12所述的方法,其特征在于,解码生成所述子通道地址 位包括当所述存储器访问类型是所述垂直分区块存储器访问时,生成包括2*&个 最低有效的经调节的地址位和所述相应的子通道标识符的逻辑函数在内的N组 子通道地址位;以及当所述存储器访问类型是所述水平分区块的存储器访问或未分区块的存 储器访问时,生成包括所述经调节的地址位在内的N组子通道地址位。
14. 如权利要求IO所述的方法,其特征在于,连接包括当所述存储器访问类型是具有用于所述经调节的地址位的第一组值的所 述未分区块的存储器访问、所述水平分区块的存储器访问和所述垂直分区块的存储器访问时,选择第一配置;以及当所述存储器访问类型是具有与用于所述经调节的地址位的第一组值不 同的三组值中的一组的所述垂直分区块的存储器时,选择三种配置中的一种。
15. 如权利要求14所述的方法,其特征在于,所述第一配置对应于恒等 置换映射,而所述三种配置中的一种对应于非恒等置换映射。
16. 如权利要求IO所述的方法,其特征在于,还包括如果所述存储器访问类型是所述分区块的存储器访问,则按行访问所述存 储器;以及如果所述存储器访问类型是所述未分区块的存储器访问,则按列访问所述 存储器。
17. —种系统,包括 处理器;被形成为存储器的N个子通道的多个存储设备,所述存储设备是双数据率 (DDR)同步动态随机存取存储器(SDRAM);以及耦合到所述处理器和所述多个存储设备的存储器控制器,所述存储器控制 器包括访问控制器,所述访问控制器包括地址前混合电路,用于根据访问控制信号调节由所述处理器提供的地址位;耦合到所述地址前混合电路的数据引导电路,用于连接到所述存储器的N 个子通道,以根据所述访问控制信号、所述经调节的地址位以及与所述N个子 通道相关联的子通道标识符为包括分区块和未分区块的存储器访问在内的存储 器访问类型动态引导数据,所述分区块的存储器访问包括水平和垂直分区块的 存储器访问;以及耦合到所述地址前混合电路和所述N个子通道的地址后混合电路,用 于利用所述经调节的地址位并根据所述访问控制信号和所述子通道标识符来 生成至所述N个子通道的子通道地址位。
18. 如权利要求17所述的系统,其特征在于,所述访问控制信号包括 用于选择所述分区块的存储器访问的分区块控制信号;以及 在所述分区块控制信号被断言时用于选择所述垂直分区块的存储器访问的垂直控制信号。
19. 如权利要求n所述的系统,其特征在于,所述地址前混合电路包括 数据选择器,用于从2*K个最低有效地址位中选择K个共用地址位,K等于log2(N)。
20. 如权利要求19所述的系统,其特征在于,当所述存储器访问类型是 所述垂直分区块的存储器访问时,所述地址后混合电路生成包括所述经调节的 地址位和所述对应的子通道标识符的逻辑函数在内的N组子通道地址位。
21. 如权利要求19所述的系统,其特征在于,当所述存储器访问类型是 所述水平分区块的存储器访问或未分区块的存储器访问时,所述地址后混合电 路生成包括所述经调节的地址位在内的N组子通道地址位。
22. 如权利要求17所述的系统,其特征在于,当所述存储器访问类型是 具有用于所述经调节的地址位的第一组值的所述未分区块的存储器访问、所述 水平分区块的存储器访问和所述垂直分区块的存储器时,所述访问控制信号和 所述经调节的地址位为所述数据引导电路选择第一配置。
23. 如权利要求17所述的系统,其特征在于,当所述存储器访问类型是 具有与用于所述经调节的地址位的第一组值不同的三组值中的一组的所述垂 直分区块的存储器时,所述访问控制信号和所述经调节的地址位选择三种配置 中的一种。
24. 如权利要求22所述的系统,其特征在于,所述第一配置对应于恒等 置换映射,而所述三种配置中的一种对应于非恒等置换映射。
25. 如权利要求17所述的系统,其特征在于,所述分区块的存储器访问 按行访问所述存储器,而所述未分区块的存储器访问按列访问所述存储器。
全文摘要
本发明的实施例是一种用于控制存储器访问的技术。地址前混合电路根据访问控制信号调节由处理器提供的地址位。数据引导电路连接到存储器的N个子通道,以根据访问控制信号、经调节的地址位以及与N个子通道相关联的子通道标识符为包括分区块和未分区块的存储器访问在内的存储器访问类型动态引导数据。分区块的存储器访问包括水平和垂直分区块的存储器访问。地址后混合电路利用经调节的地址位并根据访问控制信号和子通道标识符来生成至N个子通道的子通道地址位。
文档编号G06F12/02GK101211315SQ20071030734
公开日2008年7月2日 申请日期2007年12月27日 优先权日2006年12月28日
发明者J·E·阿基雅玛, W·H·克里福德 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1