存储器交叉存取的制作方法

文档序号:6379543阅读:267来源:国知局
专利名称:存储器交叉存取的制作方法
背景信道通常是指计算机系统与其它计算系统和/或其它设备之间的通道。计算系统的信道中的每一个都是一个能够与其它信道同时传送数据的独立单元。每个信道都一般被指定分配一段存储器地址空间,并且每个信道都能根据其分配的存储器地址空间来传送数据。这样,当该存储器在开始另一个存储器存取之前完成对一个段的存取时,该计算系统的处理器就可通过不同的信道来存取存储器的不同段而不会有空闲状态。这种存储器存取通常称为交叉存取(interleaving)。


图1是一种示例性的信道控制系统的框图。
图2是一种示例性的存储器交叉存取过程的流程图。
图3是一种示例性的确定区域是否在信道中的过程的流程图。
图4是一种示例性的减少地址的过程的流程图。
图5是一种示例性的地址减少的框图。
图6是一种示例性的调节地址的过程的流程图。
图7是一种示例性的地址重新映射的过程的流程图。
图8是一种示例性的机器系统的框图。
说明参见图1,一种示例性的信道控制系统100可利用信道控制器102(1)-102(X)对存储器进行交叉存取,每个信道控制器102(1)-102(X)都与一个信道相关。X可等于比1大的任意正整数,包括正整数的非2次幂(3、5、6等)。无论X的值是多少,都可以执行交叉存取而不需要用存储器地址的一个或多个位来表示用哪个信道对该存储器进行存取。由于没有地址位要用于信道选择,所以用于交叉存取的信道数量并不限于象传统信道交叉存取中的2的幂次数量的信道。可将地址映射到信道控制器102(1)-102(X),并且与此同时可以为映射到不同信道的地址进行对该存储器的存取。
每个信道控制器102(1)-102(X)都包括X个匹配检测装置104(1)-104(X)中的一个和X个地址与计数重新映射装置106(1)-106(X)中的一个。每个信道控制器102(1)-102(X)都接收有关一个区域的信息来对存储器进行存取,并且确定是否映射其相关的信道以便对包括在那个区域中的数据进行存取。尽管信道控制器102(1)-102(X)可以按照某个既定程序的优先级或顺序方案来处理该信息,但是它们一般并行地作出它们的判决。
由信道控制器102(1)-102(X)接收到的信息可包括一个数据对和一个计数,该数据对包括一个起始地址来表示从何处开始对该存储器中的数据进行存取,该计数表示从起始地址开始要存取多少数据。尽管可以使用任何数据测量或大小指示符,但一般以字节为单位提供该计数。该起始地址和该计数规定了从起始地址开始的并且扩展了由该计数所表示的(或者由取决于如何提供该计数的计数来表示的)字节数的区域。
每一个匹配检测装置104(1)-104(X)都确定其相关信道是否被映射到包括在该区域中的任一地址。可以利用一种将地址空间的段分配给信道的传统方案,和/或利用一种后面将作进一步描述的能够在信道上扩展相邻地址以便可以在多个信道上扩展相邻或附近的地址的方案,将地址映射到这些信道。可以映射该信道以不存取包括在该区域中的任何地址、存取包括在该区域中的所有地址或者存取包括在该区域中的某些地址。如果信道被映射到包括在该区域中的某些地址,那么该区域的一部分就位于该信道中,并且至少两个信道被映射到该区域并且都对该区域进行存取。
如果匹配检测装置104(1)-104(X)中的一个确定该区域的一部分位于其相关信道中,那么与该信道相关的那个地址与计数重新映射装置106(1)-106(X)就确定表示为了信道控制器102(1)-102(X)中与其相关的一个来完成一部分存取的一个重新映射的起始地址和一个重新映射的计数。地址与计数重新映射装置106(1)-106(X)可以确定重新映射的地址和重新映射的计数,而匹配检测装置104(1)-104(X)确定要将哪个或哪些信道(如果有的话)映射到该区域以便在处理时间内保存。
一旦信道控制器102(1)-102(X)已经确定其相关信道映射到该区域,则适当的一个或多个信道就可以存取所表示区域中的数据。这样,就可以将地址映射到信道以便使用多个信道来存取相对近的地址处的数据。此外,交叉存取方案可包括使用两个或多个信道,这些信道包括非2次幂数量的信道。
其它示例中,匹配检测装置104(1)-104(X)和/或地址与计数重新映射装置106(1)-106(X)可以在信道控制器102(1)-102(X)的外部。此外,一些或者全部的信道控制器102(1)-102(X)可以使用相同的一个或多个匹配检测装置104(1)-104(X)和/或地址与计数重新映射装置106(1)-106(X)。
图2示出了一个示例性的存储器交叉存取的过程200。在过程200中,在步骤202,信道控制器102接收关于一个区域的地址和计数信息从而在存储器中进行存取。(每个信道控制器102(1)-102(X)都接收相同的信息。)信道控制器102(1)-102(X)、匹配检测装置104(1)-104(X)以及地址与计数重新映射装置106(1)-106(X)的每一个都与其相同名称的对应部分起到相同的作用。为简单起见,将包括在信道控制器102(1)(“信道控制器102”)中的匹配检测装置104(1)(“匹配检测104”)以及地址与计数重新映射装置106(1)(“重新映射106”)用作示例性的例子。
匹配检测104在步骤204中确定该区域有多少位于与信道控制器102相关的信道,在这个例子中为信道1。下面对匹配检测104如何做出这样一个判决的例子作了进一步讨论。
如果区域没有任何部分位于该信道中,那么该过程200就结束,步骤206,这是因为不能通过该信道来存取要被存取的数据。
如果整个区域都位于该信道中,那么信道控制器102就通过该信道触发对一定量数据的存取,步骤208,该数据量等于从该起始地址开始的计数。信道控制器102本身就可以检取该数据。
如果区域部分地位于该信道中,那么重新映射106就在步骤210中将该地址和计数调节为一个经调节的地址和经调节的计数,以便该信道只存取其所分配区域中的数据。信道控制器102接着可以通过该信道触发对一定量数据的存取,步骤212,该数据量等于从该经调节的起始地址开始的经调节的计数。信道控制器102本身就可以检取该数据。例如,起始地址可以在一个信道中被索引,但计数把该区域扩展到被映射到另一信道的范围,并且该另一个信道需要调节起始地址从而反映出区域在其索引的范围中开始的地方。经调节的起始地址可以与起始地址相同,而在计数扩展到信道的映射范围以外的情况下,经调节的计数与计数是不同的。
图3示出了匹配检测104如何确定一个区域是否位于信道中并确定区域有多少部分位于信道中的示例性判决过程300。在判决过程300中,在步骤302,匹配检测104计算区域的高位地址(upper address),所述高位地址对应于包括在该区域中的数据的末端。匹配检测104可以用起始地址加上计数减1来计算高位地址。这个1是由于起始地址处的数据而减去的。
在步骤304,匹配检测104将高位地址和起始地址各减少到两位。随着地址的每个都被减少到两位,匹配检测104能够确定该区域是否至少部分地位于与匹配检测相关的信道中。可以将地址各减少到两位,因为在包括三个信道(X等于三)的例子中,每个信道都能够用不同的两位组合来表示(例如,“01”为信道1、“10”为信道2以及“11”为信道3),并且在减少地址时可以使用包括该地址的信道的两位表示,以帮助确定与匹配检测104相关的信道是否被映射到该区域。如果系统包括多于三个信道,则这些地址就可以被减少到多于两位,因为可能需要两位以上来表示各个不同的信道。匹配检测104如何执行减少的例子将在后面作进一步讨论。
在步骤306,匹配检测104确定与匹配检测104相关的信道号(在这个例子中是1)是与减少后的高位地址匹配还是与减少后的起始地址匹配。如果都不匹配,那么就没有区域位于信道中。
如果任一减少后的地址与信道号相匹配,那么在步骤308,匹配检测104确定减少后的高位地址和减少后的起始地址是否都与信道号相匹配。如果是这样,那么整个区域就都位于该信道中。如果不是,那么减少后的地址中只有一个与信道号相匹配并且只有一部分区域位于信道中。在步骤310,匹配检测104确定减少后的起始地址是否与信道号相匹配。如果是,那么数据传送(存取)的下部,即从起始地址开始的部分,位于该信道中。如果不是,那么匹配检测104就推断出数据传送的上部,即从比起始地址高的地址开始并且延续经过高位地址的部分(除非上部的起始地址是高位地址,其中该数据传送的上部只包括高位地址),位于该信道中。在这个例子中,匹配检测104检验与起始地址的匹配,并且基于该确定而做出一个关于高位地址匹配的假设,但在其它示例中,匹配检测104可以检验高位地址并作出关于起始地址的假设。
图4示出了匹配检测104可以用于减少地址的示例性的减少过程400。通常,在减少过程400中,如图5中的示例性地址减少500所示,匹配检测104采用五级选通(gating)将一个31位的地址502减少为一个两位的输出数504。匹配检测104可以对包括在该地址中的一位或多位忽略不计,其中这些位不是起始或高位地址的一部分。在示出起始地址的这个例子中,匹配检测104对包括在地址中的表示字节偏移(交叉存取字节大小)的七位忽略不计,并且考虑24位的起始地址。一个选通级把拥有该地址的信道的信道号506当作输入。
返回去看图4,在步骤402,匹配检测104利用2-位到2-位的重新编码对地址进行重新编码,从而按照下表产生第一位数,包括与地址相同的位数(24位)

在步骤404,匹配检测104利用4-位到2-位缩减器来减少所述第一位数,从而按照下表产生第二位数,包括第一位数的一半的位数(24位减少到12位)00 01 10

000110在步骤406,匹配检测104按照以上4-位到2-位缩减器表来减少所述第二位数,从而产生第三位数,包括是所述第二位数的一半的位数(12位减少到6位)。
在步骤408,匹配检测104按照以上4-位到2-位缩减器表来减少第三位数加上包括地址的信道号,从而产生第四位数(8位减少到4位)。如果匹配检测104在该减少中不包括信道号作为输入,那么就有两个未使用的输入。匹配检测104可以从重新映射106中接收信道号、可以在对地址及其相应的信道号作索引的地址映射表中查找该信道号,或者可以另外获取信道号。
在步骤410,匹配检测104将两个得出的2-位重新编码的数相加。0、1与2的和不改变,而和为4则加为0。这种加法产生减少的最终的2-位输出。
在步骤412,匹配检测104确定最终输出是否表示与匹配检测104相关的信道的一个匹配。最终输出为0(00)表示匹配,而1(01)或2(10)表示不匹配。在减少过程中包括与地址(起始地址或高位地址)相关的信道号作为输入允许匹配检测104从减少过程的最终位输出中做出匹配判决。
图6示出了一个示例性调节过程600,如果匹配检测104确定只有一部分区域位于其相关信道中(参见图2),则重新映射106就可以用该过程600来调节起始地址和计数。
在调节过程600中,在步骤602,重新映射106计算一个边界地址,该边界地址表示超过起始地址的交叉存取量。交叉存取量一般被包括在包括起始地址的地址中(如图5中的地址502),并且在这个例子中等于128个字节。通过对起始地址和0xFFFFFF80执行逻辑与(AND)操作并且与0x80(交叉存取量)相加,重新映射106可以计算边界地址。
在步骤604,重新映射106还计算一个下部计数(lower count),该下部计数表示起始地址和边界地址之间的字节数。重新映射106可以通过从边界地址中减去起始地址来计算下部计数。
在步骤606,重新映射106还计算一个上部计数,该上部计数表示边界地址和停止顶部地址(起始地址加上计数)之间的字节数。重新映射106可以通过从停止地址减去边界地址并且加1(这个1是由于下部计数包括边界地址)来计算上部计数。
如果与重新映射106相关的信道拥有传送的下部(例如通过判决过程300所确定的),那么在步骤608,重新映射106就将经调节的起始地址视为起始地址并将经调节的计数视为下部计数。如果不是(即,如果与重新映射106相关的信道拥有传送的上部),那么在步骤610,重新映射106就将经调节的起始地址作为边界地址并将经调节的计数作为上部计数。
图7示出了一个示例性重新映射过程700,重新映射106可以利用该过程对信道中的地址进行索引。在步骤702,重新映射106找出在要被索引的地址中值为1的最长的连续地址位的字符串。重新映射106可以根据地址中的最低有效位来搜索该最长的字符串。一旦找到,重新映射106就在步骤704中从该地址中删除该最长字符串,在步骤706中适当调整地址中的剩余位。如果该信道包括2次幂数量的存储单元(例如,地址),那么重新映射106就在步骤708中(最高有效位)用1来填充空白的比特位置。这种填充基本上向信道的剩余空间添加了四分之三,例如,从地址的四分之三开始填充。所产生的位形成了重新映射的地址。
如果信道为非2次幂,那么四分之三的偏移一般与2次幂信道的大小不同(例如,可能不是两个比特位置而是某个其它数)。在步骤710,重新映射106确定从何处开始向空白位置中加1。重新映射106可以通过查阅一个或多个查找表来做出这样一个判决,该查找表包括表示重新映射106在步骤712中可以从何处开始填充1的开始地址的常量。每个查找表都可以包括在重新映射106中或者可由重新映射106另外存取,并且可包括用于任何数量的信道和任何数量的偏移位的常量。所产生的位形成了重新映射的地址。
例如,在三信道系统中,该查找表可以是如下所述,其中用十六进制的格式示出了常量值,且其中K0表示信道的四分之三,K1表示信道的四分之三加上四分之三,K2表示信道的四分之三加上四分之三再加上四分之三,等等。这些表示出多达768兆字节的常量值,但表中的这些值都可以换算为适于较大数量的兆字节。



重新映射106对所有有效地址进行索引,例如,由信道控制系统100(见图1)所处理的所有地址。作为一个简单的例子,在包括每个信道有8个地址一共有24个地址的三信道系统中,这些信道中的地址单元如下地被重新映射

尽管图2、3、4、6和7中的各个过程都参照图1的示例性信道控制系统100中包括的元件作了描述,但每个及其他类似过程,无论是否被重新组织,都可以在信道控制系统100或其他系统中执行,其中各个过程都包括相同、较多或较少的元件。此外,图2、3、4、6和7中的过程是用128-字节交叉存取描述的系统并且包括三个信道和31位地址,但这些过程可以(做任何适当的修改)用于任何大小的交叉存取、任何数量的信道以及任何大小的地址。此外,图2、3、4、6和7中的过程无须在同一系统中一起执行,但可以单独应用,或者与两个或多个其它过程组合起来应用。
参见图8,机器800包括处理系统802,处理系统802包括存储器控制器804,存储器控制器804可以包括信道控制系统100或被配置成与其类似(参见图100)。参见图8所述的元件可以用多种方式来实现。
用户设备806可能需要存储在主存储器808中的一个单元处的信息。用户设备806一般通过输入/输出(I/O)端口、底板(bay)和/或槽810与机器800相连接,并且通过芯片组812和处理器814向主存储器808请求数据。
存储器控制器804可以控制对如上所述主存储器808中的地址的存取并把地址映射到这些地址内、利用多个存储器信道来进行交叉读/写。主存储器808可能包括能够存储数据的任何存储器装置。主存储器808的例子包括诸如动态RAM或静态RAM这样的随机存取存储器(RAM)、只读存储器(ROM)、闪存、磁带、硬盘、缓冲存储器以及其它类型的类似存储装置。主存储器808可包括一个存储装置,例如一个RAM芯片,或者包括存储装置的任何组合,例如多个RAM芯片。例如,存储器可包括SDRAM。SDRAM通常是指能够以比常规存储器的时钟脉冲速度高得多的速度来运行的一类DRAM。SDRAM本身就可能跟与包括在计算系统中的处理器(例如处理器814)相关的总线同步。DDR-SDRAM通常是指支持在每个时钟周期的两个边沿(上升沿和下降沿)上的数据传送的一类SDRAM,有效地使该存储器的数据吞吐量翻了一倍。
机器800可能包括能够处理数据的任何装置或设备。机器800的例子包括工作站、固定的个人计算机、移动的个人计算机、服务器、个人数字助理、寻呼机、电话以及其它类似装置和设备。
用户设备806可能包括I/O设备、网络接口或者其它可以与机器800通信或包括在机器800中的装置。I/O设备通常包括用于把数据送入/送出计算机系统的设备。I/O设备的例子包括鼠标、键盘、打印机、监视器之类的显示设备、硬盘驱动器、图形设备、游戏杆、操纵杆、压缩(Zip)驱动器、扫描仪、CD驱动器、DVD驱动器、调制解调器、照相机、视频设备、麦克风以及其它类似类型的内部、外部和内部/外部设备。尽管已经示出了一个用户设备,但是机器800可以与不止一个的用户设备进行通信。
输入/输出(I/O)端口、插槽和/或槽810可包括能够将一个或多个用户设备与机器800相连接的任何装置或接口。例如,输入/输出(I/O)端口、插槽和/或槽810可包括外设互连(PCI)槽、并行端口、串行总线端口、硬盘驱动插槽以及其它类似类型的装置和接口。
处理器814可能包括像微处理器或中央处理单元(CPU)这样的任何处理装置。处理器814可以包括一个或多个单处理器。处理器814可包括网络处理器、通用嵌入式处理器或其它类似类型的处理器。
芯片组812包括能够在机器的子系统之间提供接口的任何数量的芯片/集成电路。
指令和数据一般以块的形式被传递至主存储器808或从中被传递。块通常是指作为一个组被传递或处理的位或字节的集合。一个块可以包括任何数量的字,而一个字可以包括任何数量的位或字节。
数据可以在通信链路上的元件之间被传递。通信链路可包括任何种类和任何组合的通信链路,例如总线(任何类型和大小)、物理端口、无线链路以及其它类似链路。对于总线通信链路而言,总线可以具有任何宽度,例如16位、32位、64位等,并且可以以任何速度运行,例如33兆赫兹(MHz)、100MHz等。一条总线可具有一个边带特征,其中总线包括每个都能够同时传送数据和/或地址信息的并行信道。此外,每个通信链路都可以包括一个或多个单独的通信链路。
存储器控制器804通常包括能够与主存储器808通信并且对其管理的任何装置。存储器控制器804可包括一个或多个芯片并且可以被包括在芯片组812中或可以是独立于芯片组812的装置。存储器控制器804可包括任何数量和任何类型的指令、例程、应用程序和/或程序。
此外,机器800为方便解释而进行了简化。机器800可包括较多或较少的附加元件,例如通信链路、处理器、存储装置(缓冲存储器、高速缓冲存储器、存储器、数据库等)、显示装置、用户设备、网桥、芯片以及其它类似类型的机器元件。
在此所述的技术并不限于任何特定的硬件或软件结构;它们可以应用于任何计算机或处理环境中。这些技术可以用硬件、软件或两者的组合来实现。这些技术可以用可编程机器上执行的程序来实现,可编程机器例如可移动计算机、固定计算机、个人数字助理以及类似的设备,每个类似的设备都包括处理器、可由该处理器读取的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及一个或多个输出设备。程序代码可以应用到利用输入设备输入的数据上,从而执行所述的功能并且产生输出信息。输出信息应用于一个或多个输出设备。
每个程序都可以用高级的面向过程或面向对象的程序语言来实现,从而与机器系统进行通信。然而,如果需要的话,这些程序可以用汇编语言或机器语言来实现。在任何情况下,语言可以是一种编译或解释语言。
每个这样的程序都可以存储在一个存储介质或设备上,例如光盘只读存储器(CD-ROM)、硬盘、磁盘或类似介质或设备,存储介质或设备对于一个通用或专用的可编程机器来说是可读的,当该存储介质或设备由被计算机读取来执行这个文档中所述的过程时,可编程机器用于配置并操作该机器。系统还可以用程序配置的机器可读存储介质来实现,其中如此配置存储介质使得机器以特定的和预定义的方式进行操作。
其它实施例也在所附权利要求的范围内。
权利要求
1.一种方法,包括在一个计算系统中提供非2次幂数量的信道;以及在这些信道中交叉存储器存取。
2.根据权利要求1的方法,还包括允许交叉存取而不使用任何地址位来表示哪些信道要用于存储器存取。
3.根据权利要求1的方法,还包括为每个信道分配一组存储器地址,以及通过利用不同的信道同时存取不同组中的存储器地址,而允许交叉存取。
4.根据权利要求1的方法,还包括提供了三个信道。
5.一种方法,包括接收对在存储器内包括的存储器区域处对存储器进行存取的请求;确定是否把非2次幂数量的存储器信道中的一个射到该存储器区域的至少一部分;以及如果是,就使用所确定的存储器信道对被映射到所确定的存储器信道的该部分存储器区域进行存取。
6.根据权利要求5的方法,还包括确定存储器信道是否被映射到存储器区域的至少一部分,这是通过以下步骤来实现的与请求一起接收一个存储器地址;将该存储器地址减少到2位;在把存储器地址减少到2位时考虑存储器信道的信道号;以及如果这2位与信道号相匹配,那么就确定该存储器信道被映射到该存储器区域的至少一部分。
7.根据权利要求6的方法,还包括确定存储器信道是否被映射到包括比全部存储器区域少的部分,这是通过以下步骤来实现的与请求一起接收一定数据量,从而在该存储器地址处进行存取;计算一个高位地址,该高位地址对应于比存储器地址高所述数据量的地址;确定这2位是否是与该信道号相匹配而不是与对应于该高位地址的数相匹配,并且,如果是,则确定该信道被映射到从该存储器地址开始的一部分存储器区域,以及,确定这2位是否是与该数相匹配而不是与信道号相匹配,并且如果是,则确定该信道被映射到从超出存储器地址一个交叉量的边界地址开始的一部分存储器区域;以及使用所确定的信道只对包括在该部分存储器区域中的数据量进行存取。
8.根据权利要求7的方法,还包括如果存储器信道被映射到包括比全部存储器区域少的一个部分,则确定如何对包括在该部分存储器区域中的数据量进行存取,这是通过以下步骤来实现的用边界地址减去存储器地址来计算第一计数;用超出存储器地址的数据量减去边界地址来计算第二计数;如果信道被映射到存储器区域的下部,那么就在从存储器地址开始的第一计数内对存储器区域进行存取;以及如果信道被映射到存储器区域的上部,那么就在从边界地址开始的第二计数内对存储器区域进行存取。
9.根据权利要求5的方法,还包括与请求一起接收一定数据量,从而在存储器地址处进行存取;以及使用所确定的信道对存储器地址处的数据量进行存取。
10.一种产品,包括用于存储可执行指令的机器可存取介质,这些指令使机器做出接收对在存储器内包括的存储器区域处对存储器进行存取的请求;确定非2次幂数量的存储器信道中的一个是否被映射到该存储器区域的至少一部分;以及如果是,就使用所确定的存储器信道对被映射到所确定的存储器信道的该部分存储器区域进行存取。
11.根据权利要求10的产品,还允许机器能够交叉存取而不使用任何地址位来表示哪些信道用于存储器存取。
12.根据权利要求10的产品,还使一个机器做出为每个信道分配一组存储器地址,以及通过使用不同的信道同时存取不同组中的存储器地址,从而允许交叉存取。
13.一种方法,包括将地址映射到多个存储器信道中的一个,通过以下步骤来实现确定在地址中具有值1的连续位的最长字符串,从地址中删除该最长字符串,调节该地址中的剩余位,以及用1填充地址中的空白位从而创建一个被索引到一个存储器信道的重新映射的地址。
14.根据权利要求13的方法,还包括提供非2次幂数量的存储器信道。
15.根据权利要求13的方法,还包括给每个存储器信道都分配相等数量的重新映射的地址。
16.根据权利要求13的方法,其中该地址包括主存储器地址。
17.根据权利要求13的方法,其中该地址包括可以被映射到机器资源的任一地址。
18.根据权利要求13的方法,还包括从起始地址开始对空白位进行填充,该起始地址等于该地址加上一个常量值。
19.根据权利要求18的方法,还包括如果有2次幂数量的存储器信道,则提供常量值四分之三。
20.根据权利要求18的方法,还包括如果有非2次幂数量的存储器信道,则通过查阅包括不同数量的存储器信道的常量值的表来确定该常量值。
21.一种产品,包括用于存储可执行指令的机器可存取介质,这些指令使机器做出将地址映射到多个存储器信道中的一个,通过以下步骤来实现确定在地址中具有值1的连续位的最长字符串,从地址中删除该最长字符串,调节该地址中的剩余位,以及用1填充地址中的空白位从而创建一个重新映射的地址。
22.根据权利要求21的产品,还使机器给每个存储器信道都分配相等数量的重新映射的地址。
23.根据权利要求21的产品,其中该地址包括主存储器地址。
24.根据权利要求21的产品,其中该地址包括可以被映射到机器资源的任何地址。
25.根据权利要求21的产品,还使机器从起始地址开始对空白位进行填充,该起始地址等于该地址加上一个常量值。
26.根据权利要求21的产品,还使机器做出如果有2次幂数量的存储器信道,则提供常量值四分之三。
27.根据权利要求21的产品,还使机器做出如果有非2次幂数量的存储器信道,则通过查阅包括不同数量的存储器信道的常量值的表来确定该常量值。
28.一种数字设备,包括处理器,能够执行指令;以及存储器,用于存储能够使处理器作出如下操作的指令确定非2次幂数量的存储器信道中的一个是否被映射到主存储器区域的至少一部分,该主存储器区域是处理器接收请求以存取的区域;以及如果是,就使用所确定的存储器信道对被映射到所确定的存储器信道的该部分存储器区域进行存取。
29.根据权利要求28的数字设备,还包括一个芯片组,该芯片组可由处理器存取并且包括用于存储指令的存储器。
30.根据权利要求28的数字设备,其中用于存储指令的存储器还能使处理器做出向每个存储器信道分配主存储器中的一组存储器地址,以及使用不同的存储器信道同时对不同组中的存储器地址进行存取。
31.一种系统,包括非2次幂数量的存储器信道,用于对存储器进行存取;以及存储器控制器,用于将包括在存储器中的地址映射到存储器信道,确定非2次幂数量的存储器信道中的一个是否被映射到从包括在存储器中的地址处开始的存储器区域的至少一部分;以及如果是,就使用所确定的存储器信道对被映射到所确定的存储器信道的该部分存储器区域进行存取。
32.根据权利要求31的系统,其中该存储器控制器还用于将包括在存储器中的地址映射到存储器信道,这是通过以下步骤来实现的确定在地址中具有值1的连续位的最长字符串,从地址中删除该最长字符串,调节该地址中的剩余位,以及用1填充地址中的空白位从而创建一个被索引到一个存储器信道的重新映射的地址。
33.根据权利要求31的系统,其中存储器控制器还用于允许使用不同的存储器信道同时对存储器的区域进行存取。
全文摘要
存储器交叉存取包括在计算系统中提供非2次幂数量的信道以及在这些信道中交叉存储器存取。
文档编号G06F12/06GK1517880SQ20041000194
公开日2004年8月4日 申请日期2004年1月10日 优先权日2003年1月10日
发明者G·沃尔里奇, M·B·罗森布鲁斯, G 沃尔里奇, 罗森布鲁斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1