CN100380344C - 存储器交叉存取 - Google Patents
存储器交叉存取 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved 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位):
在步骤404,匹配检测104利用4-位到2-位缩减器来减少所述第一位数,从而按照下表产生第二位数,包括第一位数的一半的位数(24位减少到12位):
在步骤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所述的系统,其特征在于,所述多个附加设备是多个处理器。
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)
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)
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)
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 |
-
2003
- 2003-01-10 US US10/340,220 patent/US6941438B2/en not_active Expired - Fee Related
-
2004
- 2004-01-02 WO PCT/US2004/000084 patent/WO2004063929A2/en active Application Filing
- 2004-01-02 KR KR1020057012816A patent/KR20050099967A/ko not_active Application Discontinuation
- 2004-01-02 EP EP04700076A patent/EP1627309A2/en not_active Withdrawn
- 2004-01-05 TW TW093100125A patent/TWI269162B/zh not_active IP Right Cessation
- 2004-01-10 CN CNA2006101056993A patent/CN101042677A/zh active Pending
- 2004-01-10 CN CNB2004100019466A patent/CN100380344C/zh not_active Expired - Fee Related
-
2005
- 2005-04-22 US US11/112,047 patent/US7418571B2/en not_active Expired - Fee Related
Patent Citations (5)
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 |