CN100380344C - 存储器交叉存取 - Google Patents

存储器交叉存取 Download PDF

Info

Publication number
CN100380344C
CN100380344C CNB2004100019466A CN200410001946A CN100380344C CN 100380344 C CN100380344 C CN 100380344C CN B2004100019466 A CNB2004100019466 A CN B2004100019466A CN 200410001946 A CN200410001946 A CN 200410001946A CN 100380344 C CN100380344 C CN 100380344C
Authority
CN
China
Prior art keywords
address
channel
memory
counting
access
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
CNB2004100019466A
Other languages
English (en)
Other versions
CN1517880A (zh
Inventor
G·沃尔里奇
M·B·罗森布鲁斯
M·埃迪莱塔
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 CN1517880A publication Critical patent/CN1517880A/zh
Application granted granted Critical
Publication of CN100380344C publication Critical patent/CN100380344C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing

Abstract

存储器交叉存取包括在计算系统中提供非2次幂数量的信道以及在这些信道中交叉存储器存取。

Description

存储器交叉存取
背景
信道通常是指计算机系统与其它计算系统和/或其它设备之间的通道。计算系统的信道中的每一个都是一个能够与其它信道同时传送数据的独立单元。每个信道都一般被指定分配一段存储器地址空间,并且每个信道都能根据其分配的存储器地址空间来传送数据。这样,当该存储器在开始另一个存储器存取之前完成对一个段的存取时,该计算系统的处理器就可通过不同的信道来存取存储器的不同段而不会有空闲状态。这种存储器存取通常称为交叉存取(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位):
Figure C20041000194600101
在步骤404,匹配检测104利用4-位到2-位缩减器来减少所述第一位数,从而按照下表产生第二位数,包括第一位数的一半的位数(24位减少到12位):
Figure C20041000194600102
在步骤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还计算一个下部计数(1ower 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兆字节的常量值,但表中的这些值都可以换算为适于较大数量的兆字节。
  兆字节   32   64   96   128   160   192   224   256
K11 N/A N/A N/A N/A N/A N/A N/A N/A
  K10   N/A   N/A   N/A   N/A   13FFFF   17FFFF   1BFFFF   1FFFFF
  K9   N/A   7FFFF   BFFFF   FFFFF   13FFFE   17FFFE   1BFFFE   1FFFFE
  K8   3FFFF   7FFFE   BFFFD   FFFFC   13FFFB   17FFFA   1BFFF9   1FFFF8
  K7   3FFFC   7FFF8   BFFF4   FFFF0   13FFEC   17FFE8   1BFFE4   1FFFE0
  K6   3FFF0   7FFE0   BFFD0   FFFC0   13FFB0   17FFA0   1BFF90   1FFF80
  K5   3FFC0   7FF80   BFF40   FFF00   13FEC0   17FE80   1BFE40   1FFE00
  K4   3FF00   7FE00   BFD00   FFC00   13FB00   17FA00   1BF900   1FF800
  K3   3FC00   7F800   BF400   FF000   13EC00   17E800   1BE400   1FE000
  K2   3F000   7E000   BD000   FC000   13B000   17A000   1BE9000   1F8000
  K1   3C000   78000   B4000   F0000   12C000   168000   1A4000   1E000
  K0   30000   60000   9000   C0000   F0000   120000   150000   180000
  兆字节   288   320   352   384   416   448   480   512
  K11   N/A   N/A   N/A   N/A   N/A   N/A   N/A   N/A
  K10   23FFFF   27FFFF   2BFFFF   2FFFFF   33FFFF   37FFFF   3BFFFF   3FFFFF
  K9   23FFFD   27FFFD   2BFFFD   2FFFFD   33FFFC   37FFFC   3BFFFC   3FFFFC
  K8   23FFF7   27FFF6   2BFFF6   2FFFF4   33FFF3   37FFF2   3BFFF1   3FFFF0
  K7   23FFDC   27FFD8   2BFFD4   2FFFD0   33FFCC   37FFC8   3BFFC4   3FFFC0
  K6   23FF70   27FF60   2BFF50   2FFF40   33FF30   37FF20   3BFF10   3FFF00
  K5   23FDC0   27FD80   2BFD40   2FFD00   33FCC0   37FC80   3BFC40   3FFC00
  K4   23F700   27F600   2BF500   2FF400   33F300   37F200   3BF100   3FF000
  K3   23DC00   27D800   2BD400   2FD000   33CC00   37C800   3BC400   3FC000
  K2   237000   276000   2B5000   2F4000   333000   372000   3B1000   3F0000
  K1   21C000   258000   294000   2D0000   30C000   348000   384000   3C0000
  K0   1B0000   1E0000   210000   240000   270000   2A0000   2D0000   300000
  兆字节   544   576   608   640   672   704   736   768
  K11   43FFFF   47FFFF   4BFFFF   4FFFF   53FFFF   57FFFF   5BFFFF   5FFFFF
  K10   43FFFE   47FFFE   4BFFFE   4FFFFE   53FFFE   57FFFE   5BFFFE   5FFFFE
  K9   43FFFB   47FFFB   4BFFFB   4FFFFB   53FFFA   57FFFA   5BFFFA   5FFFFA
  K8   43FFEF   47FFEE   4BFFED   4FFFEC   53FFEB   57FFEA   5BFFE9   5FFFE8
  K7   43FFBC   47FFB8   4BFFB4   4FFF80   53FFAC   57FFA8   5BFFA4   5FFFA0
  K6   43FEF0   47FEE0   4BFED0   4FFEC0   53FEB0   57FEA0   5BFE90   5FFE80
  K5   43FBC0   47FB80   4BFB40   4FFB00   53FAC0   57FA80   5BFA40   5FFA00
  K4   43EF00   47EE00   4BED00   4FEC00   53EB00   57EA00   5BE900   5FE800
  K3   43BC00   47B800   4BB400   4FB000   53AC00   57A800   5BA400   5FA000
  K2   43BC00   47B800   4BB400   4FB000   53AC00   57A800   5BA400   5FA000
  K1   3FC000   438000   474000   4B0000   4EC000   528000   564000   5A0000
  K0   330000   360000   390000   3C0000   3F0000   420000   450000   480000
重新映射106对所有有效地址进行索引,例如,由信道控制系统100(见图1)所处理的所有地址。作为一个简单的例子,在包括每个信道有8个地址一共有24个地址的三信道系统中,这些信道中的地址单元如下地被重新映射:
  信道中的索引   信道0   信道1   信道2
  0   0   1   2
  1   6   4   5
  2   9   10   8
  3   12   13   14
  4   18   16   17
  5   21   22   20
  6   3   7   11
  7   15   19   23
尽管图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)、硬盘、磁盘或类似介质或设备,存储介质或设备对于一个通用或专用的可编程机器来说是可读的,当该存储介质或设备由被计算机读取来执行这个文档中所述的过程时,可编程机器用于配置并操作该机器。系统还可以用程序配置的机器可读存储介质来实现,其中如此配置存储介质使得机器以特定的和预定义的方式进行操作。
其它实施例也在所附权利要求的范围内。

Claims (25)

1.一种方法,包括:
接收对在存储器内包括的存储器区域处对存储器进行存取的请求,其中所述请求指示一存储器地址;
确定是否把非2次幂数量X的存储器信道中的一个映射到该存储器区域的至少一部分,所述确定包括向所述存储器地址应用一基于模X的减少;以及
如果是,就使用所确定的存储器信道对被映射到所确定的存储器信道的该部分存储器区域进行存取。
2.根据权利要求1的方法,还包括:确定存储器信道是否被映射到存储器区域的至少一部分,这是通过以下步骤来实现的:
与请求一起接收所述存储器地址;
将该存储器地址减少到一个预定位数x,其中信道数量小于2x并大于2x-1
在把存储器地址减少到所述预定位数时考虑存储器信道的信道号;以及
如果所述预定位数与信道号相匹配,那么就确定该存储器信道被映射到该存储器区域的至少一部分。
3.根据权利要求2的方法,还包括:确定存储器信道是否被映射到包括比全部存储器区域少的部分,这是通过以下步骤来实现的:
与请求一起接收一个表明要存取的数据量的计数,从而在该存储器地址处进行存取;
计算一个高位地址,该高位地址对应于比存储器地址高所述计数的地址;
确定该信道号是否是与对应于所述预定位数的第一个数相匹配而不是与对应于该高位地址的第二个数相匹配,并且,如果是,则确定该信道被映射到从该存储器地址开始的一部分存储器区域,以及,确定该信道号是否是与该第二个数相匹配而不是与对应于所述预定位数的第一个数相匹配,并且如果是,则确定该信道被映射到从超出存储器地址一个交叉量的边界地址开始的一部分存储器区域;以及
使用所确定的信道只对包括在该部分存储器区域中的数据量进行存取。
4.根据权利要求3的方法,还包括:如果存储器信道被映射到包括比全部存储器区域少的一个部分,则确定如何对包括在该部分存储器区域中的数据量进行存取,这是通过以下步骤来实现的:
用边界地址减去存储器地址来计算第一计数;
用超出存储器地址的数据量减去边界地址来计算第二计数;
如果信道被映射到存储器区域的下部,那么就在从存储器地址开始的第一计数内对存储器区域进行存取;以及
如果信道被映射到存储器区域的上部,那么就在从边界地址开始的第二计数内对存储器区域进行存取。
5.根据权利要求1的方法,还包括与请求一起接收一个表明要存取的数据量的计数,从而在存储器地址处进行存取;以及
使用所确定的信道对存储器地址处的数据量进行存取。
6.一种方法,包括:
接收与一存储器相对应的地址,所述存储器具有到该存储器的非2次幂数量X个相关的信道;
确定用于存取存储器的一个或多个信道,所述确定包括向所述地址应用一基于模X的减少;以及
索引所述地址中有无所确定的信道,所述索引包括:
确定在地址中具有值1的连续位的最长字符串;
从地址中删除该最长串;
调节该地址中的其余位;以及
用1填充地址中的空白位以便为所确定的信道创建一个重新映射的地址。
7.如权利要求6所述的方法,其特征在于,所述接收包括接收第一地址和一计数,所述方法还包括从所述第一地址和所述计数中计算出第二地址,所述确定包括向所述第一和第二地址应用所述基于模X的减少以便把第一和第二地址映射到信道,其中如果第一和第二地址两者都映射到其中一个信道,则响应于第一地址的接收而确定使用这一个信道来存取存储器。
8.如权利要求6所述的方法,其特征在于,向所述地址应用基于模X的减少包括:包含一信道号作为到基于模X减少的输入。
9.如权利要求6所述的方法,其特征在于,所确定的信道具有非2次幂数量的相应存储单元,所述填充包括基于一个或多个查找表来填充地址中的空白位,所述查找表包括表明地址填充的起始地址的常数。
10.如权利要求6所述的方法,其特征在于,所述存储器具有到存储器的附加数量Y个相关信道,其中X+Y是非2次幂。
11.一种装置,包括:
到存储器的非2次幂数量X个信道;以及
控制设备,被构造成接收与所述存储器相对应的地址、并且通过向所述地址应用基于模X的减少来确定用于存取该存储器的一个或多个信道。
12.如权利要求11所述的装置,其特征在于,所述地址包括第一地址,所述控制设备被构造成接收所述第一地址和一计数、从所述第一地址和计数中计算出第二地址、以及通过向所述第一和第二地址应用基于模X的减少以确定一个或多个信道来把所述第一和第二地址映射到所述信道,其中如果第一和第二地址都映射到其中一个信道,则响应于第一地址的接收而确定使用这一个信道来存取存储器。
13.如权利要求11所述的装置,其特征在于,所述控制设备被构造成包括一信道号作为到基于模X的减少的输入。
14.如权利要求11所述的装置,其特征在于,所述控制设备被构造成确定在地址中具有值1的连续位的最长字符串、从地址中删除该最长串、调节该地址中的其余位、用1填充地址中的空白位以便为所确定的信道创建一个重新映射的地址。
15.如权利要求14所述的装置,其特征在于,所确定的信道具有非2次幂数量个相应的存储单元,所述控制设备被构造成基于一个或多个查找表来填充地址中的空白位,所述查找表包括表明地址填充的起始地址的常数。
16.如权利要求11所述的装置,其特征在于还包括到存储器的附加数量Y个信道,其中X+Y是非2次幂。
17.如权利要求11所述的装置,其特征在于,所述控制设备包括X个信道控制器,每个信道控制器都被构造成接收与存储器相对应的地址、并通过向所述地址应用基于模X的减少来确定相关的信道是否用于存取存储器。
18.如权利要求17所述的装置,其特征在于,所述地址包括第一地址,每个信道控制器包括一匹配检测装置和一计数重新映射装置,所述匹配检测装置被构造成接收所述第一地址和一计数、从所述第一地址和计数中计算出第二地址、以及通过向第一和第二地址应用基于模X的减少来确定相关的信道是否用于存取存储器,而所述计数重新映射装置被构造成接收所述第一地址和计数并且重新匹配所述计数。
19.如权利要求18所述的装置,其特征在于,所述计数重新映射装置还被构造成索引相关信道内的第三地址。
20.如权利要求19所述的装置,其特征在于,所述计数重新映射装置被构造成确定在第三地址中具有值1的连续位的最长字符串、从第三地址中删除该最长字符串、调节第三地址中的其余位、以及用1填充第三地址中的空白位以创建相关信道内的重新映射的地址。
21.如权利要求20所述的装置,其特征在于,所述相关信道具有非2次幂数量的相应存储单元,所述计数重新映射装置被构造成基于一个或多个查找表来填充第三地址中的空白位,所述查找表包括表明地址填充的起始地址的常数。
22.一种系统,包括:
读写存储器;
到读写存储器的非2次幂数量X个信道;以及
控制设备,被构造成接收与该读写存储器相对应的地址、并且通过向所述地址应用基于模X的减少来确定用于存取读写存储器的一个或多个信道。
23.如权利要求22所述的系统,其特征在于,所述读写存储器包括一随机存取存储器。
24.如权利要求22所述的系统,其特征在于还包括多个附加设备,被构造成使用控制设备来存取读写存储器。
25.如权利要求24所述的系统,其特征在于,所述多个附加设备是多个处理器。
CNB2004100019466A 2003-01-10 2004-01-10 存储器交叉存取 Expired - Fee Related CN100380344C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/340,220 US6941438B2 (en) 2003-01-10 2003-01-10 Memory interleaving
US10/340,220 2003-01-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNA2006101056993A Division CN101042677A (zh) 2003-01-10 2004-01-10 存储器交叉存取

Publications (2)

Publication Number Publication Date
CN1517880A CN1517880A (zh) 2004-08-04
CN100380344C true CN100380344C (zh) 2008-04-09

Family

ID=32711272

Family Applications (2)

Application Number Title Priority Date Filing Date
CNA2006101056993A Pending CN101042677A (zh) 2003-01-10 2004-01-10 存储器交叉存取
CNB2004100019466A Expired - Fee Related CN100380344C (zh) 2003-01-10 2004-01-10 存储器交叉存取

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNA2006101056993A Pending CN101042677A (zh) 2003-01-10 2004-01-10 存储器交叉存取

Country Status (6)

Country Link
US (2) US6941438B2 (zh)
EP (1) EP1627309A2 (zh)
KR (1) KR20050099967A (zh)
CN (2) CN101042677A (zh)
TW (1) TWI269162B (zh)
WO (1) WO2004063929A2 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873837B1 (en) 2000-01-06 2011-01-18 Super Talent Electronics, Inc. Data security for electronic data flash card
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US20060161725A1 (en) * 2005-01-20 2006-07-20 Lee Charles C Multiple function flash memory system
US7676640B2 (en) * 2000-01-06 2010-03-09 Super Talent Electronics, Inc. Flash memory controller controlling various flash memory cells
US20060075395A1 (en) * 2004-10-01 2006-04-06 Lee Charles C Flash card system
US7702984B1 (en) 2000-01-06 2010-04-20 Super Talent Electronics, Inc. High volume testing for USB electronic data flash cards
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US6941438B2 (en) * 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7418540B2 (en) * 2004-04-28 2008-08-26 Intel Corporation Memory controller with command queue look-ahead
US8190809B2 (en) * 2004-11-23 2012-05-29 Efficient Memory Technology Shunted interleave for accessing plural memory banks, particularly those having partially accessed cells containing data for cache lines
US7779198B2 (en) * 2004-11-23 2010-08-17 Efficient Memory Technology Method and apparatus of multiple abbreviations of interleaved addressing of paged memories
US20070157030A1 (en) * 2005-12-30 2007-07-05 Feghali Wajdi K Cryptographic system component
US7793059B2 (en) * 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
WO2008009900A1 (en) * 2006-07-17 2008-01-24 Xyratex Technology Limited Methods of powering up a disk drive storage enclosure and storage enclosures
US8095735B2 (en) * 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US9710384B2 (en) * 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8649609B1 (en) 2011-03-24 2014-02-11 The United States Of America As Represented By The Adminstrator Of The National Aeronautics And Space Administration Field programmable gate array apparatus, method, and computer program
US9009441B2 (en) 2012-06-04 2015-04-14 Qualcomm Incorporated Memory channel selection in a multi-channel memory
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US9299124B2 (en) 2012-06-07 2016-03-29 Qualcomm Incorporated Padding for multi-channel memory
US9256531B2 (en) 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
US20140310503A1 (en) * 2013-04-12 2014-10-16 Texas Instruments Incorporated Memory interleaving on memory channels
US9495291B2 (en) 2013-09-27 2016-11-15 Qualcomm Incorporated Configurable spreading function for memory interleaving
KR102161448B1 (ko) * 2014-02-03 2020-10-05 삼성전자 주식회사 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법
CN105446911B (zh) * 2014-05-29 2018-05-25 展讯通信(上海)有限公司 终端设备的内存访问控制方法与装置
CN105446891B (zh) * 2014-05-29 2018-08-21 展讯通信(上海)有限公司 终端设备的内存访问控制方法与装置
KR102398611B1 (ko) * 2015-05-07 2022-05-17 에스케이하이닉스 주식회사 메모리 시스템
US9823984B2 (en) * 2015-06-25 2017-11-21 Intel Corporation Remapping of memory in memory control architectures
KR20180007374A (ko) * 2016-07-12 2018-01-23 삼성전자주식회사 메모리 채널의 소프트웨어 트레이닝을 수행하는 전자 장치 및 그것의 메모리 채널 트레이닝 방법
US10642733B1 (en) * 2018-07-12 2020-05-05 Lightbits Labs Ltd. System and method for memory interface load balancing
US10817420B2 (en) * 2018-10-30 2020-10-27 Arm Limited Apparatus and method to access a memory location
US10642734B1 (en) * 2018-12-03 2020-05-05 Advanced Micro Devices, Inc. Non-power of two memory configuration

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386532A (en) * 1991-12-30 1995-01-31 Sun Microsystems, Inc. Method and apparatus for transferring data between a memory and a plurality of peripheral units through a plurality of data channels
US5448706A (en) * 1992-05-13 1995-09-05 Sharp Microelectronics Technology, Inc. Address generator for multi-channel circular-buffer style processing
US6381687B2 (en) * 1998-12-23 2002-04-30 Axis Ab Flexible memory channel
US6477599B1 (en) * 1997-11-06 2002-11-05 Hitachi, Ltd. Data processing system and microcomputer
US6505287B2 (en) * 1999-12-20 2003-01-07 Nec Corporation Virtual channel memory access controlling circuit

Family Cites Families (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3373408A (en) * 1965-04-16 1968-03-12 Rca Corp Computer capable of switching between programs without storage and retrieval of the contents of operation registers
US3478322A (en) * 1967-05-23 1969-11-11 Ibm Data processor employing electronically changeable control storage
BE795789A (fr) * 1972-03-08 1973-06-18 Burroughs Corp Microprogramme comportant une micro-instruction de recouvrement
US3881173A (en) 1973-05-14 1975-04-29 Amdahl Corp Condition code determination and data processing
IT986411B (it) * 1973-06-05 1975-01-30 Olivetti E C Spa Sistema per trasferire il control lo delle elaborazioni da un primo livello prioritario ad un secondo livello prioritario
FR2253415A5 (zh) 1973-12-04 1975-06-27 Cii
US3913074A (en) 1973-12-18 1975-10-14 Honeywell Inf Systems Search processing apparatus
US4045782A (en) 1976-03-29 1977-08-30 The Warner & Swasey Company Microprogrammed processor system having external memory
US4130890A (en) * 1977-06-08 1978-12-19 Itt Industries, Inc. Integrated DDC memory with bitwise erase
US4392758A (en) 1978-05-22 1983-07-12 International Business Machines Corporation Underscore erase
US4189767A (en) * 1978-06-05 1980-02-19 Bell Telephone Laboratories, Incorporated Accessing arrangement for interleaved modular memories
JPS56164464A (en) * 1980-05-21 1981-12-17 Tatsuo Nogi Parallel processing computer
US4400770A (en) * 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
CA1179069A (en) * 1981-04-10 1984-12-04 Yasushi Fukunaga Data transmission apparatus for a multiprocessor system
US4569016A (en) 1983-06-30 1986-02-04 International Business Machines Corporation Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
US4868735A (en) 1984-05-08 1989-09-19 Advanced Micro Devices, Inc. Interruptible structured microprogrammed sixteen-bit address sequence controller
US4742451A (en) 1984-05-21 1988-05-03 Digital Equipment Corporation Instruction prefetch system for conditional branch instruction for central processor unit
US4777587A (en) 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses
JPS62103893A (ja) * 1985-10-30 1987-05-14 Toshiba Corp 半導体メモリ及び半導体メモリシステム
US5021945A (en) 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US4745544A (en) * 1985-12-12 1988-05-17 Texas Instruments Incorporated Master/slave sequencing processor with forced I/O
US4724521A (en) 1986-01-14 1988-02-09 Veri-Fone, Inc. Method for operating a local terminal to execute a downloaded application program
US5297260A (en) * 1986-03-12 1994-03-22 Hitachi, Ltd. Processor having a plurality of CPUS with one CPU being normally connected to common bus
US4992934A (en) 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US5073864A (en) 1987-02-10 1991-12-17 Davin Computer Corporation Parallel string processor and method for a minicomputer
US4866664A (en) * 1987-03-09 1989-09-12 Unisys Corporation Intercomputer communication control apparatus & method
US5142683A (en) * 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and method
WO1989008883A1 (en) * 1988-03-14 1989-09-21 Unisys Corporation Record lock processor for multiprocessing data system
US5008808A (en) * 1988-06-23 1991-04-16 Storage Technology Corporation Consolidation of commands in a buffered input/output device
US5165025A (en) 1988-10-06 1992-11-17 Lass Stanley E Interlacing the paths after a conditional branch like instruction
US5142676A (en) 1988-12-28 1992-08-25 Gte Laboratories Incorporated Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory
US5155854A (en) * 1989-02-03 1992-10-13 Digital Equipment Corporation System for arbitrating communication requests using multi-pass control unit based on availability of system resources
US5155831A (en) * 1989-04-24 1992-10-13 International Business Machines Corporation Data processing system with fast queue store interposed between store-through caches and a main memory
US5166872A (en) 1989-07-17 1992-11-24 Ability Technologies Corporation System and method for controlling devices through communication processors and pluralities of address-associated device controllers sharing each communication processor
US5113516A (en) 1989-07-31 1992-05-12 North American Philips Corporation Data repacker having controlled feedback shifters and registers for changing data format
US5168555A (en) * 1989-09-06 1992-12-01 Unisys Corporation Initial program load control
US5263169A (en) * 1989-11-03 1993-11-16 Zoran Corporation Bus arbitration and resource management for concurrent vector signal processor architecture
DE3942977A1 (de) * 1989-12-23 1991-06-27 Standard Elektrik Lorenz Ag Verfahren zum wiederherstellen der richtigen zellfolge, insbesondere in einer atm-vermittlungsstelle, sowie ausgangseinheit hierfuer
US5247671A (en) 1990-02-14 1993-09-21 International Business Machines Corporation Scalable schedules for serial communications controller in data processing systems
DE69132495T2 (de) * 1990-03-16 2001-06-13 Texas Instruments Inc Verteilter Verarbeitungsspeicher
JPH0799812B2 (ja) 1990-03-26 1995-10-25 株式会社グラフイックス・コミュニケーション・テクノロジーズ 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置
DE69129872T2 (de) 1990-03-27 1999-03-04 Philips Electronics Nv Datenverarbeitungssystem mit einem leistungsverbessernden Befehlscachespeicher
US5390329A (en) * 1990-06-11 1995-02-14 Cray Research, Inc. Responding to service requests using minimal system-side context in a multiprocessor environment
US5347648A (en) * 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
US5404482A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
US5432918A (en) * 1990-06-29 1995-07-11 Digital Equipment Corporation Method and apparatus for ordering read and write operations using conflict bits in a write queue
AU630299B2 (en) * 1990-07-10 1992-10-22 Fujitsu Limited A data gathering/scattering system in a parallel computer
US5367678A (en) * 1990-12-06 1994-11-22 The Regents Of The University Of California Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically
EP0522513A2 (en) 1991-07-09 1993-01-13 Hughes Aircraft Company High speed parallel microcode program controller
US5255239A (en) * 1991-08-13 1993-10-19 Cypress Semiconductor Corporation Bidirectional first-in-first-out memory device with transparent and user-testable capabilities
US5623489A (en) * 1991-09-26 1997-04-22 Ipc Information Systems, Inc. Channel allocation system for distributed digital switching network
US5392412A (en) * 1991-10-03 1995-02-21 Standard Microsystems Corporation Data communication controller for use with a single-port data packet buffer
GB2260429B (en) * 1991-10-11 1995-05-24 Intel Corp Versatile cache memory
US5392391A (en) * 1991-10-18 1995-02-21 Lsi Logic Corporation High performance graphics applications controller
KR970008523B1 (ko) * 1991-10-21 1997-05-24 가부시키가이샤 도시바 프로세서
US5452437A (en) * 1991-11-18 1995-09-19 Motorola, Inc. Methods of debugging multiprocessor system
US5357617A (en) 1991-11-22 1994-10-18 International Business Machines Corporation Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor
US5442797A (en) * 1991-12-04 1995-08-15 Casavant; Thomas L. Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging
JP2823767B2 (ja) * 1992-02-03 1998-11-11 松下電器産業株式会社 レジスタファイル
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
DE4223600C2 (de) * 1992-07-17 1994-10-13 Ibm Mehrprozessor-Computersystem und Verfahren zum Übertragen von Steuerinformationen und Dateninformation zwischen wenigstens zwei Prozessoreinheiten eines Computersystems
US5274770A (en) 1992-07-29 1993-12-28 Tritech Microelectronics International Pte Ltd. Flexible register-based I/O microcontroller with single cycle instruction execution
US5692167A (en) 1992-07-31 1997-11-25 Intel Corporation Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor
US5442756A (en) 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor
US5649109A (en) 1992-10-22 1997-07-15 Digital Equipment Corporation Apparatus and method for maintaining forwarding information in a bridge or router using multiple free queues having associated free space sizes
US5481683A (en) 1992-10-30 1996-01-02 International Business Machines Corporation Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions
US5450603A (en) 1992-12-18 1995-09-12 Xerox Corporation SIMD architecture with transfer register or value source circuitry connected to bus
DE69422448T2 (de) * 1992-12-23 2001-08-23 Eta Sa Fabriques D Ebauches Gr Multi-tasking-steuerungsgerät mit geringem energieverbrauch
US5404464A (en) * 1993-02-11 1995-04-04 Ast Research, Inc. Bus control system and method that selectively generate an early address strobe
US5448702A (en) * 1993-03-02 1995-09-05 International Business Machines Corporation Adapters with descriptor queue management capability
US6311286B1 (en) * 1993-04-30 2001-10-30 Nec Corporation Symmetric multiprocessing system with unified environment and distributed system functions
WO1994027216A1 (en) 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
CA2122182A1 (en) * 1993-05-20 1994-11-21 Rene Leblanc Method for rapid prototyping of programming problems
US5363448A (en) 1993-06-30 1994-11-08 United Technologies Automotive, Inc. Pseudorandom number generation and cryptographic authentication
CA2107299C (en) * 1993-09-29 1997-02-25 Mehrad Yasrebi High performance machine for switched communications in a heterogenous data processing network gateway
US5446736A (en) * 1993-10-07 1995-08-29 Ast Research, Inc. Method and apparatus for connecting a node to a wireless network using a standard protocol
US5450351A (en) * 1993-11-19 1995-09-12 International Business Machines Corporation Content addressable memory implementation with random access memory
US5487159A (en) 1993-12-23 1996-01-23 Unisys Corporation System for processing shift, mask, and merge operations in one instruction
US5490204A (en) * 1994-03-01 1996-02-06 Safco Corporation Automated quality assessment system for cellular networks
US5835755A (en) * 1994-04-04 1998-11-10 At&T Global Information Solutions Company Multi-processor computer system for operating parallel client/server database processes
JP3547482B2 (ja) * 1994-04-15 2004-07-28 株式会社日立製作所 情報処理装置
US5659722A (en) 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
US5542088A (en) * 1994-04-29 1996-07-30 Intergraph Corporation Method and apparatus for enabling control of task execution
US5721870A (en) * 1994-05-25 1998-02-24 Nec Corporation Lock control for a shared main storage data processing system
US5544236A (en) * 1994-06-10 1996-08-06 At&T Corp. Access to unsubscribed features
US5574922A (en) * 1994-06-17 1996-11-12 Apple Computer, Inc. Processor with sequences of processor instructions for locked memory updates
US5781774A (en) * 1994-06-29 1998-07-14 Intel Corporation Processor having operating modes for an upgradeable multiprocessor computer system
FR2722041B1 (fr) 1994-06-30 1998-01-02 Samsung Electronics Co Ltd Decodeur de huffman
JP3810449B2 (ja) * 1994-07-20 2006-08-16 富士通株式会社 キュー装置
US5640538A (en) 1994-08-22 1997-06-17 Adaptec, Inc. Programmable timing mark sequencer for a disk drive
US5717760A (en) 1994-11-09 1998-02-10 Channel One Communications, Inc. Message protection system and method
JP3169779B2 (ja) * 1994-12-19 2001-05-28 日本電気株式会社 マルチスレッドプロセッサ
US5610864A (en) 1994-12-23 1997-03-11 Micron Technology, Inc. Burst EDO memory device with maximized write cycle timing
US5550816A (en) * 1994-12-29 1996-08-27 Storage Technology Corporation Method and apparatus for virtual switching
US5784712A (en) * 1995-03-01 1998-07-21 Unisys Corporation Method and apparatus for locally generating addressing information for a memory access
US5649157A (en) * 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
TW360852B (en) 1995-04-12 1999-06-11 Matsushita Electric Ind Co Ltd Pipeline processor
US5886992A (en) * 1995-04-14 1999-03-23 Valtion Teknillinen Tutkimuskeskus Frame synchronized ring system and method
US5592622A (en) * 1995-05-10 1997-01-07 3Com Corporation Network intermediate system with message passing architecture
JPH08320797A (ja) * 1995-05-24 1996-12-03 Fuji Xerox Co Ltd プログラム制御システム
US5828746A (en) * 1995-06-07 1998-10-27 Lucent Technologies Inc. Telecommunications network
US5828863A (en) * 1995-06-09 1998-10-27 Canon Information Systems, Inc. Interface device connected between a LAN and a printer for outputting formatted debug information about the printer to the printer
US5541920A (en) 1995-06-15 1996-07-30 Bay Networks, Inc. Method and apparatus for a delayed replace mechanism for a streaming packet modification engine
KR0180169B1 (ko) 1995-06-30 1999-05-01 배순훈 가변길이 부호기
US5613071A (en) * 1995-07-14 1997-03-18 Intel Corporation Method and apparatus for providing remote memory access in a distributed memory multiprocessor system
US5680641A (en) * 1995-08-16 1997-10-21 Sharp Microelectronics Technology, Inc. Multiple register bank system for concurrent I/O operation in a CPU datapath
US5940612A (en) * 1995-09-27 1999-08-17 International Business Machines Corporation System and method for queuing of tasks in a multiprocessing system
US5689566A (en) * 1995-10-24 1997-11-18 Nguyen; Minhtam C. Network with secure communications sessions
US5809530A (en) * 1995-11-13 1998-09-15 Motorola, Inc. Method and apparatus for processing multiple cache misses using reload folding and store merging
KR0150072B1 (ko) * 1995-11-30 1998-10-15 양승택 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치
US5796413A (en) * 1995-12-06 1998-08-18 Compaq Computer Corporation Graphics controller utilizing video memory to provide macro command capability and enhanched command buffering
US5940866A (en) * 1995-12-13 1999-08-17 International Business Machines Corporation Information handling system having a local address queue for local storage of command blocks transferred from a host processing side
US5699537A (en) * 1995-12-22 1997-12-16 Intel Corporation Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions
US5790813A (en) * 1996-01-05 1998-08-04 Unisys Corporation Pre-arbitration system allowing look-around and bypass for significant operations
US6088783A (en) * 1996-02-16 2000-07-11 Morton; Steven G DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5761507A (en) * 1996-03-05 1998-06-02 International Business Machines Corporation Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling
US5809235A (en) * 1996-03-08 1998-09-15 International Business Machines Corporation Object oriented network event management framework
US5797043A (en) * 1996-03-13 1998-08-18 Diamond Multimedia Systems, Inc. System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs
US5784649A (en) * 1996-03-13 1998-07-21 Diamond Multimedia Systems, Inc. Multi-threaded FIFO pool buffer and bus transfer control system
KR100219597B1 (ko) * 1996-03-30 1999-09-01 윤종용 씨디-롬 드라이브에서의 큐잉 제어 방법
US5946487A (en) * 1996-06-10 1999-08-31 Lsi Logic Corporation Object-oriented multi-media architecture
KR980004067A (ko) * 1996-06-25 1998-03-30 김광호 멀티프로세서 시스템의 데이터 송수신장치 및 방법
JP3541335B2 (ja) 1996-06-28 2004-07-07 富士通株式会社 情報処理装置及び分散処理制御方法
US5937187A (en) * 1996-07-01 1999-08-10 Sun Microsystems, Inc. Method and apparatus for execution and preemption control of computer process entities
US6023742A (en) 1996-07-18 2000-02-08 University Of Washington Reconfigurable computing architecture for providing pipelined data paths
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US6058465A (en) 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
US5812868A (en) * 1996-09-16 1998-09-22 Motorola Inc. Method and apparatus for selecting a register file in a data processing system
US5860158A (en) * 1996-11-15 1999-01-12 Samsung Electronics Company, Ltd. Cache control unit with a cache request transaction-oriented protocol
US5905876A (en) * 1996-12-16 1999-05-18 Intel Corporation Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system
US5854922A (en) * 1997-01-16 1998-12-29 Ford Motor Company Micro-sequencer apparatus and method of combination state machine and instruction memory
US5961628A (en) 1997-01-28 1999-10-05 Samsung Electronics Co., Ltd. Load and store unit for a vector processor
US5742587A (en) * 1997-02-28 1998-04-21 Lanart Corporation Load balancing port switching hub
US5905889A (en) * 1997-03-20 1999-05-18 International Business Machines Corporation Resource management system using next available integer from an integer pool and returning the integer thereto as the next available integer upon completion of use
US6381668B1 (en) * 1997-03-21 2002-04-30 International Business Machines Corporation Address mapping for system memory
US5983274A (en) 1997-05-08 1999-11-09 Microsoft Corporation Creation and use of control information associated with packetized network data by protocol drivers and device drivers
US5938736A (en) * 1997-06-30 1999-08-17 Sun Microsystems, Inc. Search engine architecture for a high performance multi-layer switch element
US5887134A (en) * 1997-06-30 1999-03-23 Sun Microsystems System and method for preserving message order while employing both programmed I/O and DMA operations
US6014729A (en) 1997-09-29 2000-01-11 Firstpass, Inc. Shared memory arbitration apparatus and method
US5915123A (en) * 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US5948081A (en) * 1997-12-22 1999-09-07 Compaq Computer Corporation System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed
US5970013A (en) 1998-02-26 1999-10-19 Lucent Technologies Inc. Adaptive addressable circuit redundancy method and apparatus with broadcast write
US6408325B1 (en) * 1998-05-06 2002-06-18 Sun Microsystems, Inc. Context switching technique for processors with large register files
US6505281B1 (en) * 1998-06-02 2003-01-07 Raymond C. Sherry Hard disk drives employing high speed distribution bus
TW374967B (en) * 1998-06-22 1999-11-21 Winbond Electronics Corp Ethernet switch having shared memory structure and method of the shared memory
US6424659B2 (en) * 1998-07-17 2002-07-23 Network Equipment Technologies, Inc. Multi-layer switching apparatus and method
US6356962B1 (en) * 1998-09-30 2002-03-12 Stmicroelectronics, Inc. Network device and method of controlling flow of data arranged in frames in a data-based network
US6212604B1 (en) * 1998-12-03 2001-04-03 Sun Microsystems, Inc. Shared instruction cache for multiple processors
CA2266283C (en) * 1999-03-19 2006-07-11 Wen Tong Data interleaver and method of interleaving data
US6570877B1 (en) * 1999-04-07 2003-05-27 Cisco Technology, Inc. Search engine for forwarding table content addressable memory
US6480943B1 (en) * 2000-04-29 2002-11-12 Hewlett-Packard Company Memory address interleaving and offset bits for cell interleaving of memory
US6513089B1 (en) * 2000-05-18 2003-01-28 International Business Machines Corporation Dual burst latency timers for overlapped read and write data transfers
US6826180B1 (en) * 2000-06-14 2004-11-30 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for storing summation blocks of context information for a core processor
US6625685B1 (en) * 2000-09-20 2003-09-23 Broadcom Corporation Memory controller with programmable configuration
JP3489573B2 (ja) * 2001-07-11 2004-01-19 日本電気株式会社 パケット処理装置
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6934729B2 (en) * 2001-10-18 2005-08-23 International Business Machines Corporation Method and system for performing shift operations
US7028118B2 (en) * 2001-12-12 2006-04-11 Texas Instruments Incorporated Multi-channel buffered serial port debugging
US7089379B1 (en) * 2002-06-28 2006-08-08 Emc Corporation Large high bandwidth memory system
US6941438B2 (en) * 2003-01-10 2005-09-06 Intel Corporation Memory interleaving

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386532A (en) * 1991-12-30 1995-01-31 Sun Microsystems, Inc. Method and apparatus for transferring data between a memory and a plurality of peripheral units through a plurality of data channels
US5448706A (en) * 1992-05-13 1995-09-05 Sharp Microelectronics Technology, Inc. Address generator for multi-channel circular-buffer style processing
US6477599B1 (en) * 1997-11-06 2002-11-05 Hitachi, Ltd. Data processing system and microcomputer
US6381687B2 (en) * 1998-12-23 2002-04-30 Axis Ab Flexible memory channel
US6505287B2 (en) * 1999-12-20 2003-01-07 Nec Corporation Virtual channel memory access controlling circuit

Also Published As

Publication number Publication date
US20040139290A1 (en) 2004-07-15
WO2004063929A3 (en) 2006-03-23
US20050185437A1 (en) 2005-08-25
KR20050099967A (ko) 2005-10-17
TWI269162B (en) 2006-12-21
US6941438B2 (en) 2005-09-06
CN101042677A (zh) 2007-09-26
CN1517880A (zh) 2004-08-04
TW200422828A (en) 2004-11-01
WO2004063929A2 (en) 2004-07-29
US7418571B2 (en) 2008-08-26
EP1627309A2 (en) 2006-02-22

Similar Documents

Publication Publication Date Title
CN100380344C (zh) 存储器交叉存取
CN102326153B (zh) 以复制写入请求用于一致性存储器拷贝的方法及设备
CN102272776B (zh) 用于型式辨识处理器的总线
US9658826B2 (en) Sorting multiple records of data using ranges of key values
CN1307561C (zh) 不同高速缓存级上具有关联集重叠同余组的多级高速缓存
CN1977336A (zh) 改善支持多存储器访问延迟的计算机存储器系统的性能的系统和方法
CN111352697B (zh) 灵活的物理功能和虚拟功能映射
CN103810229A (zh) 用于实施字符串搜索的系统、方法和计算机程序产品
US11093388B2 (en) Method, apparatus, device and storage medium for accessing static random access memory
CN105849669A (zh) 用于单个通道内的dram空间联合的方法和装置
US10120860B2 (en) Methods and apparatus to identify a count of n-grams appearing in a corpus
Choquette Nvidia hopper gpu: Scaling performance
US8255577B2 (en) I/O forwarding technique for multi-interrupt capable devices
US10275230B2 (en) Cache aware self-referential structure peeling
JPWO2005041067A1 (ja) 情報処理方法及び情報処理システム
CN110618872A (zh) 混合内存动态调度方法及系统
JP4149762B2 (ja) メモリ資源最適化支援方法、プログラム及び装置
CN112925753A (zh) 文件追加写入方法、装置、电子设备及存储介质
CN115176236A (zh) 用于存储管理的系统和方法
CN116097222A (zh) 一种内存排布优化方法以及装置
CN115061954B (zh) 一种缺页中断处理方法、计算设备及存储介质
WO2021237424A1 (zh) 一种高速缓存冲撞处理方法及装置
US20220147468A1 (en) Multiple precision memory system
CN116069718A (zh) 芯片配置方法、装置、设备及介质
CN115794727A (zh) 缓存系统构造方法和装置

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

Granted publication date: 20080409

Termination date: 20190110

CF01 Termination of patent right due to non-payment of annual fee