KR20050099967A - Memory interleaving - Google Patents
Memory interleaving Download PDFInfo
- Publication number
- KR20050099967A KR20050099967A KR1020057012816A KR20057012816A KR20050099967A KR 20050099967 A KR20050099967 A KR 20050099967A KR 1020057012816 A KR1020057012816 A KR 1020057012816A KR 20057012816 A KR20057012816 A KR 20057012816A KR 20050099967 A KR20050099967 A KR 20050099967A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- address
- channel
- channels
- mapped
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Mobile Radio Communication Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Power Sources (AREA)
Abstract
메모리 인터리빙은 컴퓨팅 시스템에서 자승이 아닌 개수의 채널을 제공하는 단계와, 채널들 중에 메모리 액세스를 인터리빙하는 단계를 포함한다.Memory interleaving includes providing a non-square number of channels in a computing system and interleaving memory access among the channels.
Description
본 발명은 메모리 인터리빙(memory interleaving)에 관한 것이다.The present invention relates to memory interleaving.
채널은 전반적으로 컴퓨터 시스템과 다른 컴퓨터 시스템 및/또는 다른 장치들 간의 경로(pathway)로 지칭된다. 컴퓨팅 시스템의 채널들 각각은 다른 채널들과 동시에 데이터를 전송할 수 있는 독립적인 유닛이다. 각각의 채널은 전형적으로 메모리 어드레스 공간의 세그먼트에 할당되며, 그 할당된 메모리 어드레스 공간에 대응하는 데이터를 전달할 수 있다. 이러한 방식으로, 컴퓨팅 시스템의 프로세서는 메모리가 다른 메모리 액세스를 개시하기 전에 하나의 세그먼트에 대한 액세스를 완성하는 동안 아이들링 없이 상이한 채널을 통해 메모리의 상이한 세그먼트에 액세스할 수 있다. 이러한 타입의 메모리 액세스는 전반적으로 인터리빙으로 지칭된다.Channels are generally referred to as paths between computer systems and other computer systems and / or other devices. Each of the channels of the computing system is an independent unit capable of transmitting data simultaneously with other channels. Each channel is typically assigned to a segment of a memory address space and can carry data corresponding to that allocated memory address space. In this manner, a processor of a computing system may access different segments of memory through different channels without idling while the memory completes access to one segment before initiating another memory access. This type of memory access is generally referred to as interleaving.
도 1은 채널 제어 시스템의 일예의 블럭도이다.1 is a block diagram of an example of a channel control system.
도 2는 메모리 인터리빙 프로세스의 일예의 플로우차트이다.2 is a flowchart of an example of a memory interleaving process.
도 3은 소정의 영역이 채널 내에 존재하는지의 여부를 결정하는 프로세스의 일예의 플로우차트이다.3 is an example flowchart of a process for determining whether a given area is present in a channel.
도 4는 어드레스 감소 프로세스의 일예의 플로우차트이다.4 is a flowchart of an example of an address reduction process.
도 5는 어드레스 감소의 일예의 블럭도이다.5 is a block diagram of an example of address reduction.
도 6은 어드레스 조정 프로세스의 일예의 블럭도이다.6 is a block diagram of one example of an address adjustment process.
도 7은 어드레스 리매핑(address remapping) 프로세스의 일예의 플로우차트이다.7 is a flowchart of an example of an address remapping process.
도 8은 머신 시스템의 일예의 블럭도이다.8 is a block diagram of an example of a machine system.
도 1을 참조하면, 일예의 채널 제어 시스템(100)은 각각이 하나의 채널과 연관되는 채널 제어기(102(1)-102(x))를 사용하여 메모리로의 액세스를 인터리빙할 수 있다. x는 1보다 큰 임의의 양수이며, 자승이 아닌 양의 수(3, 5, 6, 등)을 포함한다. x의 값이 무엇이든지, 인터리빙은 메모리 액세스시에 어떤 채널을 사용하는지를 나타내는 메모리 어드레스의 하나 이상의 비트를 사용하지 않고도 수행될 수 있다. 채널 선택시에 어드레스 비트가 사용될 필요가 없으므로, 인터리빙을 위한 채널의 수는 종래의 채널 인터리빙에서와 마찬가지로 자승의 개수의 채널로 제한되지는 않는다. 어드레스는 채널 제어기(102(1)-102(x))에 매핑될 수 있으며, 메모리에 대한 액세스는 상이한 채널에 대해 매핑되는 어드레스들에 대해 동시에 행해질 수 있다.Referring to FIG. 1, an example channel control system 100 may interleave access to memory using channel controllers 102 (1)-102 (x), each associated with one channel. x is any positive integer greater than 1, and includes non-square positive numbers (3, 5, 6, etc.). Whatever the value of x, interleaving can be performed without using one or more bits of the memory address indicating which channel to use for memory access. Since the address bits need not be used in channel selection, the number of channels for interleaving is not limited to the number of squares of channels as in conventional channel interleaving. The address may be mapped to channel controllers 102 (1) -102 (x), and access to the memory may be done simultaneously for addresses mapped for different channels.
채널 제어기(102(1)-102(x))의 각각은 x개의 정합 검출 메카니즘(104(1)-104(x)) 중의 하나와, x개의 어드레스 및 카운트 리매핑 메카니즘(106(1)-106(x)) 중의 하나를 포함한다. 각각의 채널 제어기(102(1)-102(x))는 메모리 내에 액세스할 소정의 영역에 관한 정보를 수신하며, 그 관련 채널이 그 영역에 포함되는 데이터에 액세스하기 위해 매핑되는 지의 여부를 결정한다. 채널 제어기(102(1)-102(x))는 전형적으로 병렬적으로 결정을 행하지만, 그 제어기는 일부의 사전 프로그램된 우선순위 혹은 순서 체계에 따라 상기 정보를 처리할 수 있다.Each of the channel controllers 102 (1) -102 (x) has one of x match detection mechanisms 104 (1) -104 (x) and x address and count remapping mechanisms 106 (1) -106. (x)). Each channel controller 102 (1) -102 (x) receives information about a given area to access in memory, and determines whether the associated channel is mapped to access data contained in that area. do. Channel controllers 102 (1) -102 (x) typically make decisions in parallel, but the controller can process the information according to some pre-programmed priority or ordering scheme.
상기 채널 제어기(102(1)-102(x))에 의해 수신되는 정보는 메모리 내의 데이터에 액세스를 개시하는 곳을 나타내는 스타트 어드레스와, 스타트 어드레스에서 액세스를 개시하는 데이터의 양을 나타내는 카운트를 포함하는 데이터 쌍을 포함할 수 있다. 상기 카운트는 전형적으로 바이트로 제공되지만, 임의의 데이터 측정치 혹은 사이즈 표시기가 사용될 수도 있다. 스타트 어드레스 및 카운트는, 스타트 어드레스에서 개시되며 카운트에 의해 표시되는(혹은 이와는 달리 카운트가 제공되는 방법에 따라 카운트에 의해 표시되는) 바이트의 수에 대해 연장되는 소정의 영역을 규정한다.The information received by the channel controllers 102 (1) -102 (x) includes a start address indicating where to start accessing data in the memory and a count indicating how much data to initiate access at the start address. It may include a data pair. The count is typically provided in bytes, but any data measurement or size indicator may be used. The start address and count define a predetermined area starting at the start address and extending for the number of bytes indicated by the count (or otherwise indicated by the count depending on how the count is provided).
정합 검출 메카니즘(104(1)-104(x))의 각각은 관련 채널이 그 영역 내에 포함되는 어드레스들 중의 임의의 어드레스에 매핑되는 지의 여부를 결정한다. 채널에 대해 어드레스 공간 세그먼트를 할당한 통상의 체계를 사용하거나 채널들 위에 인접한 어드레스들을 확산시켜 인접한 어드레스들이 다중 채널 위에 확산될 수 있도록 아래에서 기술되는 체계를 사용하여 어드레스들이 채널에 매핑된다. 상기 채널은 그 영역에 포함되는 어드레스 없음, 그 영역에 포함되는 모든 어드레스 혹은 그 영역에 포함되는 일부의 어드레스에 액세스하도록 매핑될 수 있다. 만약 채널이 그 영역에 포함되는 일부의 어드레스에 매핑된다면, 그 영역의 부분은 그 채널 내에 존재하며 적어도 두개의 채널은 그 영역에 매핑되며 모두는 그 영역에 액세스할 수 있다.Each of the match detection mechanisms 104 (1) -104 (x) determines whether the associated channel is mapped to any of the addresses included within that region. Addresses are mapped to channels using a conventional scheme of allocating address space segments for a channel, or using a scheme described below so that adjacent addresses can be spread over multiple channels by spreading adjacent addresses over the channels. The channel may be mapped to access no address included in the area, all addresses included in the area, or some address included in the area. If a channel is mapped to some address included in that region, that portion of the region is within that channel and at least two channels are mapped to that region and all can access the region.
정합 검출 메카니즘(104(1)-104(x)) 중의 하나가 그 영역의 부분이 그 관련 채널 내에 존재한다고 결정하면, 그 채널과 관련된 어드레스 및 카운트 리매핑 메카니즘(106(1)-106(x)) 중의 하나는 채널 제어기(102(1)-102(x))들 중의 관련된 하나가 완성하는 액세스의 부분을 나타내는 리매핑된 스타트 어드레스 및 리매핑된 카운트를 결정한다. 어드레스 및 카운트 리매핑 메카니즘(106(1)-106(x))이 리매핑된 어드레스 및 리매핑된 카운트를 결정할 수 있지만 정합 검출 메카니즘(104(1)-104(x))은 처리시에 저장할 영역으로 어떠한 채널이 매핑될 것인지를 결정한다.If one of the match detection mechanisms 104 (1) -104 (x) determines that a portion of that region exists within its associated channel, then the address and count remapping mechanism associated with that channel 106 (1) -106 (x) One determines the remapped start address and the remapped count indicating the portion of access that the related one of the channel controllers 102 (1) -102 (x) completes. Although the address and count remapping mechanisms 106 (1) -106 (x) can determine the remapped address and the remapped count, the match detection mechanism 104 (1) -104 (x) is an area to store in processing. Determine if the channel will be mapped.
일단 채널 제어기(102(1)-102(x))가 그 관련 채널이 그 영역에 대해 매핑을 한 것으로 결정했다면, 그 채널들 중의 적절한 것은 표시된 영역 내의 데이터에 액세스할 수 있다. 이러한 방식으로, 어드레스는 채널들에 매핑될 수 있어서 비교적 근접한 어드레스에서 데이터를 액세스하는데 다중 채널이 사용될 수가 있다. 또한, 인터리빙 체계는 자승이 아닌 개수의 채널을 포함하는 두개 이상의 채널을 사용하는 것을 포함할 수 있다.Once the channel controllers 102 (1) -102 (x) have determined that their associated channels have mapped to that area, the appropriate one of those channels can access the data in the indicated area. In this way, an address can be mapped to channels so that multiple channels can be used to access data at a relatively close address. In addition, the interleaving scheme may include using two or more channels including a non-square number of channels.
다른 예에서, 정합 검출 메카니즘(104(1)-104(x)) 및/또는 어드레스 및 카운트 리매핑 메카니즘(106(1)-106(x))은 채널 제어기(102(1)-102(x))에 대해 외부일 수 있다. 또한, 채널 제어기(102(1)-102(x))의 일부 혹은 전부는 상기 동일한 정합 검출 메카니즘(104(1)-104(x)) 및 어드레스 및 카운트 리매핑 메카니즘(106(1)-106(x))을 사용할 수 있다.In another example, match detection mechanisms 104 (1) -104 (x) and / or address and count remapping mechanisms 106 (1) -106 (x) are channel controllers 102 (1) -102 (x). May be external to). In addition, some or all of the channel controllers 102 (1) -102 (x) may have the same match detection mechanism 104 (1) -104 (x) and address and count remapping mechanisms 106 (1) -106 ( x)) can be used.
도 2는 메모리 인터리빙의 프로세스(200)를 나타낸다. 프로세스 200에서, 채널 제어기(102)는 메모리 내에 액세스할 영역에 관한 어드레스 및 카운트 정보를 수신한다(202). 각각의 채널 제어기(102(1)-102(x))는 동일한 정보를 수신한다.2 shows a process 200 of memory interleaving. In process 200, channel controller 102 receives (202) address and count information about an area to access in memory. Each channel controller 102 (1) -102 (x) receives the same information.
채널 제어기(102(1)-102(x), 정합 검출 메카니즘(104(1)-104(x)) 및 어드레스 및 카운트 리매핑 메카니즘(106(1)-106(x)) 각각은 유사한 이름의 대응부와 유사하게 기능한다. 간략화하기 위해, 채널 제어기(102(1))("채널 제어기(102)")에 포함된 정합 검출 메카니즘(104(1))("정합 검출(104)") 및 어드레스 및 카운트 리매핑 메카니즘(106(1))("리매핑(106)")은 대표적인 예로서 사용된다.Each of the channel controllers 102 (1) -102 (x), match detection mechanisms 104 (1) -104 (x) and address and count remapping mechanisms 106 (1) -106 (x) each correspond to similarly named names. Functions similarly to a negative part, for simplicity, the match detection mechanism 104 (1) ("match detection 104") included in the channel controller 102 (1) ("channel controller 102") and The address and count remapping mechanism 106 (1) ("remapping 106") is used as a representative example.
정합 검출 메카니즘(104)은 채널 제어기(102)와 관련된 채널, 본 실시예의 경우 채널 1 내에 얼마나 많은 양의 영역이 존재하는 지를 결정한다. 정합 검출 메카니즘(104)이 그러한 결정을 행하는 방법의 예는 아래에서 더욱 더 상세히 논의된다.The match detection mechanism 104 determines how many regions are present in the channel associated with the channel controller 102, in this embodiment channel 1. Examples of how match detection mechanism 104 makes such a determination are discussed in more detail below.
그 채널 내에 존재하는 영역이 전무하다면, 프로세스 200은 액세스될 데이터가 그 채널을 통해서는 액세스될 수 없으므로 종료된다(206).If no area exists in the channel, process 200 ends (206) because the data to be accessed cannot be accessed through the channel.
상기 영역이 상기 채널 내에 완전히 존재한다면, 채널 제어기(102)는 그 채널을 통해 스타트 어드레스에서 개시되는 카운트와 동일한 데이터 양의 액세스를 트리거한다(208). 채널 제어기(102)는 스스로 데이터를 검색할 수 있다.If the region is entirely within the channel, then channel controller 102 triggers an access of the amount of data equal to the count starting at the start address over that channel (208). Channel controller 102 may retrieve the data by itself.
만약 그 영역의 일부가 상기 채널 내에 존재한다면, 리매핑 메카니즘(106)은 채널이 단지 할당된 영역 내의 데이터를 액세스하도록 상기 어드레스 및 카운트를 조정된 어드레스 및 조정된 카운트로 조정한다(210). 채널 제어기(102)는 채널을 통해 조정된 스타트 어드레스에서 개시되는 조정된 카운트와 동일한 데이터 양의 액세스를 트리거할 수 있다(212). 채널 제어기(102)는 스스로 데이터를 검색할 수 있다. 가령, 스타트 어드레스는 하나의 채널 내에서 인덱스될 수 있지만, 카운트는 또다른 채널로 매핑된 구역(area) 내의 영역으로 연장될 수 있으며, 그리고 다른 채널은 그 영역이 인덱싱된 구역 내에서 개시하는 곳을 반영하는 스타트 어드레스를 조정할 필요가 있다. 그 조정된 스타트 어드레스는 상기 스타트 어드레스와 동일할 수 있지만, 그 조정된 카운트는 카운트가 채널의 매핑된 구역을 넘어서 연장하는 경우의 카운트와는 상이하다.If a portion of that region is present in the channel, the remapping mechanism 106 adjusts the address and count to the adjusted address and adjusted count such that the channel only accesses data in the allocated region. Channel controller 102 can trigger an access of a data amount equal to the adjusted count that is initiated at the adjusted start address over the channel (212). Channel controller 102 may retrieve the data by itself. For example, the start address may be indexed within one channel, but the count may extend to an area within the area that is mapped to another channel, and the other channel where the area starts within the indexed area. You need to adjust the start address to reflect this. The adjusted start address may be the same as the start address, but the adjusted count is different from the count when the count extends beyond the mapped region of the channel.
도 3은 정합 검출 메카니즘(104)이 채널 내에 소정의 영역이 존재하는 지의 여부와 그리고 얼마나 많은 양의 영역이 존재하는 지의 결정 프로세싱(300)의 예를 도시한다. 결정 프로세싱(300)에서, 정합 검출 메카니즘(104)은 그 영역 내에 포함되는 데이터의 종료점에 대응하는 영역의 상위 어드레스를 계산한다(302). 정합 검출 메카니즘(104)은 상기 스타트 어드레스 플러스 상기 카운트 마이너스 1로서 상기 상위 어드레스를 계산할 수 있다. 상기 스타트 어드레스에서의 데이터를 설명하기 위해 1이 감산된다.3 shows an example of decision processing 300 where match detection mechanism 104 is present in a channel and whether there is a certain amount of area. In decision processing 300, match detection mechanism 104 calculates (302) the upper address of the region corresponding to the endpoint of the data contained within that region. The match detection mechanism 104 may calculate the upper address as the start address plus the count minus 1. 1 is subtracted to describe the data at the start address.
정합 검출 메카니즘(104)은 상위 어드레스 및 스타트 어드레스를 각각 2개의 비트로 감소시킨다(304). 2개의 비트로 감소된 각각의 어드레스로 인해, 정합 검출 메카니즘(104)은 상기 영역이 상기 정합 검출 메카니즘과 연관된 채널 내에 적어도 부분적으로 존재하는 지의 여부를 결정할 수 있다. 어드레스들은 각각 2개의 비트로 감소될 수 있는데, 그 이유는 3개의 채널(x는 3에 대응)을 포함하는 본 실시예에서 각각의 채널이 상이한 두개의 비트의 조합(가령, 채널 1에 대해 "01", 채널 2에 대해 "10", 채널 3에 대해 "11")에 의해 표시될 수 있으며, 상기 어드레스를 포함하는 채널의 2개의 비트의 표현은 어드레스를 감소시켜 정합 검출 메카니즘(104)과 연관된 채널이 상기 영역에 매핑되는 지를 결정하는 것을 도우는데에 사용될 수 있다. 만약 시스템이 3개 이상의 채널을 포함한다면, 어드레스는 2개 이상의 비트로 감소될 수 있는데, 그 이유는 두개 이상의 비트는 상이한 채널들의 각각을 표현하는데 필요할 수 있다. 정합 검출 메카니즘(104)이 감소를 수행하는 방법의 예는 아래에서 보다 상세하게 논의될 것이다.The match detection mechanism 104 reduces 304 the upper address and the start address to two bits, respectively. Due to each address reduced to two bits, match detection mechanism 104 may determine whether the region is at least partially within a channel associated with the match detection mechanism. The addresses can be reduced to two bits each, because in this embodiment including three channels (x corresponds to three), a combination of two bits where each channel is different (eg, "01 for channel 1"). &Quot;, " 10 " for channel 2, " 11 " for channel 3, wherein the representation of the two bits of the channel containing the address is reduced in address and associated with match detection mechanism 104. It can be used to help determine if a channel is mapped to the region. If the system includes more than two channels, the address can be reduced to more than two bits, because two or more bits may be needed to represent each of the different channels. Examples of how match detection mechanism 104 performs the reduction will be discussed in more detail below.
정합 검출 메카니즘(104)은 정합 검출 메카니즘(104)와 관련한 채널 번호가 감소된 상위 어드레스 혹은 감소된 스타트 어드레스와 정합하는 지를 결정한다(306). 만약 정합하지 않는다면, 그 채널 내에는 영역이 존재하지 않는다.The match detection mechanism 104 determines 306 whether the channel number associated with the match detection mechanism 104 matches the reduced high address or the reduced start address. If not, there is no region within that channel.
감소된 어드레스가 채널 번호와 정합한다면, 정합 검출 메카니즘(104)은 감소된 상위 어드레스 및 감소된 스타트 어드레스 모두가 채널 번호와 정합하는 지를 결정한다(308). 만약 그러하다면, 전체의 영역이 채널 내에 존재하게 된다. 만약 그러하지 않다면, 감소된 어드레스들 중의 단지 하나만이 채널 번호와 정합하며, 그 영역의 일부만이 채널 내에 존재할 것이다. 정합 검출 메카니즘(104)은 상기 감소된 스타트 어드레스가 채널 번호와 정합하는 지의 여부를 결정한다(310). 만약 그러하다면, 데이터 트랜스퍼(액세스)의 하위 부분, 스타트 어드레스에서 개시하는 부분은 그 채널 내에 존재하게 된다. 만약 그러하지 않다면, 정합 검출 메카니즘(104)은 데이터 트랜스퍼의 상위 부분, 상기 스타트 어드레스보다 더 높은 어드레스에서 개시되며 상위 어드레스를 통해 지속하는 부분은 (만약 상위 부분의 스타트 어드레스가 상위 어드레스가 아니고 그러한 경우 데이터 트랜스퍼의 상위 부분이 단지 상위 어드레스를 포함한다면) 채널 내에 존재한다는 결론을 내리게 된다. 이 실시예에서 정합 검출 메카니즘(104)는 스타트 어드레스와의 정합을 체킹하고 그 결정에 기반하여 상위 어드레스 정합에 관한 가정을 행하지만, 다른 예에서의 정합 검출 메카니즘(104)은 상위 어드레스를 체킹하고 스타트 어드레스에 관한 가정을 행한다.If the reduced address matches the channel number, match detection mechanism 104 determines whether both the reduced high address and the reduced start address match the channel number (308). If so, the whole area is within the channel. If not, only one of the reduced addresses matches the channel number, and only part of that area will be present in the channel. The match detection mechanism 104 determines 310 whether the reduced start address matches the channel number. If so, the lower part of the data transfer (access), starting at the start address, will be in that channel. If not, the match detection mechanism 104 is initiated at an upper portion of the data transfer, an address higher than the start address and continuing through the upper address (if the start portion of the upper portion is not an upper address and in that case the data is It is concluded that the upper part of the transfer is in the channel only if it contains only the upper address. In this embodiment, the match detection mechanism 104 checks the match with the start address and makes assumptions about higher address matching based on the determination, but in another example the match detection mechanism 104 checks the high address and Make assumptions about the start address.
도 4는 정합 검출 메카니즘(104)이 어드레스를 감소시키기 위해 사용할 수 있는 감소 프로세싱(400)의 예를 도시한다. 도 5의 어드레스 감소(500)에 도시된 바와 같이, 감소 프로세싱(400)에서, 정합 검출 메카니즘(104)은 31 비트 어드레스(502)를 21비트 출력 번호(504)로 감소시키는데 5개 레벨의 게이팅을 취한다. 정합 검출 메카니즘(104)은 스타트 혹은 상위 어드레스의 부분이 아닌, 어드레스(502) 내에 포함된 하나 이상의 비트를 무시할 수 있다. 스타트 어드레스를 도시하는 이 실시예에서, 정합 검출 메카니즘(104)은 바이트 오프셋을 나타내는 어드레스 내에 포함된 7개 비트를 무시하며 24 비트의 스타트 어드레스를 고려하고 있다. 게이팅 레벨들 중의 하나는 입력으로서 어드레스를 유지하는 채널의 채널 번호(506)를 취한다.4 shows an example of reduction processing 400 that the match detection mechanism 104 can use to reduce the address. As shown in the address reduction 500 of FIG. 5, in the reduction processing 400, the match detection mechanism 104 reduces the 31-bit address 502 to the 21-bit output number 504 for five levels of gating. Take The match detection mechanism 104 may ignore one or more bits contained in the address 502 that are not part of the start or higher address. In this embodiment showing the start address, the match detection mechanism 104 considers the start address of 24 bits while ignoring the seven bits contained in the address representing the byte offset. One of the gating levels takes the channel number 506 of the channel holding the address as input.
도 4를 다시 참조하면, 정합 검출 메카니즘(104)은 2비트 대 2비트 리코딩(recoding)을 사용하여 어드레스를 리코딩하여(402) 아래의 표에 따른 어드레스와 동일한 비트(24비트)를 포함하는 제 1 개수의 비트를 생성한다.Referring back to FIG. 4, the match detection mechanism 104 records (402) the address using two to two bit recording to include the same bits (24 bits) as the addresses according to the table below. Generates one number of bits.
정합 검출 메카니즘(104)은 4비트 대 2비트 리듀서(reducer)를 사용하여 제 1 개수의 비트를 리코딩하여(404), 아래의 표에 따른 제 1 개수의 비트의 절반의 수(24비트에서 감소된 12비트)를 포함한 제 2 개수의 비트를 생성한다.The match detection mechanism 104 records (404) the first number of bits using a 4-bit to 2-bit reducer, reducing the number of half of the first number of bits (24 bits) according to the table below. Second number of bits).
정합 검출 메카니즘(104)은 상기 4비트 대 2비트 리듀서 표에 따른 제 2 개수의 비트를 감소시켜(406), 제 2 개수의 비트의 절반의 비트(12비트가 6비트로 감소됨)를 포함하는 제 3 개수의 비트를 생성한다.The match detection mechanism 104 reduces (406) a second number of bits according to the four-bit to two-bit reducer table to include one half of the second number of bits (12 bits are reduced to 6 bits). Generates 3 bits.
정합 검출 메카니즘(104)은 상기 4비트 대 2비트 리듀서 표에 따른 어드레스를 포함하는 제 3 개수의 비트 플러스 채널 번호를 감소시켜(408), 제 4 개수의 비트(8비트가 4비트로 감소됨)를 생성한다. 만약 정합 검출 메카니즘(104)이 이러한 감소에서 입력으로서 상기 채널 번호를 포함하지 않았다면 두개의 미사용 입력이 존재할 것이다. 정합 검출 메카니즘(104)은 리매핑(106)으로부터 채널 번호를 수신하며, 어드레스 및 그 대응 채널 번호를 인덱싱하는 어드레스 매핑 표에서 그것을 참조하거나, 혹은 그와는 달리 채널 번호를 획득할 수 있다.The match detection mechanism 104 reduces (408) the fourth number of bits (8 bits reduced to 4 bits) by reducing the third number of bits plus channel number including the address according to the 4-bit to 2-bit reducer table. Create If the match detection mechanism 104 did not include the channel number as an input in this reduction then there would be two unused inputs. The match detection mechanism 104 receives the channel number from the remapping 106 and may refer to it in an address mapping table that indexes the address and its corresponding channel number, or otherwise obtain the channel number.
정합 검출 메카니즘(104)은 두개의 최종 2비트 리코딩된 번호를 가산한다(410). 제로, 1 및 이들 둘의 합산은 변경되지 않지만, 4개의 합산은 제로로 된다. 이러한 합산은 최종의 2비트 출력 감소를 생성하게 된다.The match detection mechanism 104 adds 410 the last two 2-bit recorded numbers. The sum of zero, 1 and the two is unchanged, but the four sums are zero. This summation will result in a final 2-bit output reduction.
정합 검출 메카니즘(104)은 최종의 출력이 정합 검출 메카니즘(104)과 연관되는 채널과의 정합을 나타내는 지를 결정한다(412). 제로 (00)의 최종의 출력은 정합을 나타내지만, 1 (01)이나 2 (10)는 비정합을 나타낸다. 감소 프로세싱에서의 입력으로서 어드레스(스타트 어드레스 혹은 상위 어드레스)와 관련된 채널 번호를 포함하게 되면 정합 검출 메카니즘(104)은 감소 프로세싱의 최종 비트 출력으로부터 정합 결정을 행할 수 있게 된다.The match detection mechanism 104 determines whether the final output represents a match with the channel associated with the match detection mechanism 104 (412). The final output of zero (00) indicates a match, but 1 (01) or 2 (10) indicates a mismatch. Including the channel number associated with the address (start address or higher address) as an input in the reduction processing allows the match detection mechanism 104 to make a match decision from the last bit output of the reduction processing.
도 6은 정합 검출 메카니즘(104)이 영역의 단지 일부만이 그 관련된 채널(도 2 참조) 내에 존재한다고 결정하게 되면 리매핑(106)이 스타트 어드레스 및 카운트를 조정하기 위해 사용할 수 있는 일예의 조정 프로세싱(600)을 도시한다.6 illustrates an example of coordination processing that remapping 106 may use to adjust the start address and count if the match detection mechanism 104 determines that only a portion of the region is present in its associated channel (see FIG. 2). 600).
조정 프로세싱(600)에서, 리매핑(106)은 스타트 어드레스를 초과하는 인터리빙된 양인 어드레스를 나타내는 바운더리 어드레스를 계산한다(602). 인터리빙된 양은 전형적으로 스타트 어드레스(가령, 도 5의 어드레스(502))를 포함하는 어드레스 내에 포함되며, 이 실시예에서 128 바이트와 동일하다. 리매핑(106)은 스타트 어드레스 및 0xFFFFFF80에 대해 논리적 AND 연산을 수행하여 0x80(인터리빙된 양)을 가산함으로써 바운더리 어드레스를 계산할 수 있다.In coordination processing 600, remapping 106 calculates a boundary address that represents an address that is an interleaved amount that exceeds the start address (602). The interleaved amount is typically contained within an address that includes a start address (eg, address 502 of FIG. 5), which is equal to 128 bytes in this embodiment. Remapping 106 may calculate the boundary address by performing a logical AND operation on the start address and 0xFFFFFF80 to add 0x80 (interleaved amount).
리매핑(106)은 또한 스타트 어드레스와 바운더리 어드레스 간의 바이트의 수를 나타내는 하위 카운트를 계산한다(604). 리매핑(106)은 바운더리 어드레스로부터 스타트 어드레스를 감산함으로써 상기 하위 카운트를 계산할 수 있다.Remapping 106 also calculates a low count that indicates the number of bytes between the start address and the boundary address (604). The remapping 106 can calculate the lower count by subtracting the start address from the boundary address.
리매핑(106)은 또한 바운더리 어드레스와 스톱 어드레스(stop address)(스타트 어드레스 플러스 카운트) 간의 바이트의 수를 나타내는 상위 카운트를 계산한다(606). 리매핑(106)은 스톱 어드레스로부터 바운더리 어드레스를 감산하고 1을 가산함으로써(1은 하위 카운트가 바운더리 어드레스를 포함한다는 사실을 설명한다) 상위 카운트를 계산할 수 있다.Remapping 106 also calculates a high count that indicates the number of bytes between the boundary address and the stop address (start address plus count) (606). Remapping 106 may calculate the upper count by subtracting the boundary address from the stop address and adding 1 (1 describes the fact that the lower count includes the boundary address).
만약 리매핑(106)과 관련한 채널이 (가령, 결정 프로세싱(300)을 통해 결정되는 바와 같은) 트랜스퍼의 하위 부분을 소유한다면, 리매핑(106)은 조정된 스타트 어드레스를 상기 스타트 어드레스로 그리고 조정된 카운트를 상기 하위 카운트로 간주한다(608). 만약 그러하지 않다면(즉, 리매핑(106)과 관련한 채널이 트랜스퍼의 상위 부분을 소유한다면), 리매핑(106)은 상기 조정된 스타트 어드레스를 상기 바운더리 어드레스로 그리고 상기 조정된 카운트를 상기 상위 카운트로 간주한다(610).If the channel associated with the remapping 106 owns a lower portion of the transfer (eg, as determined via decision processing 300), the remapping 106 will convert the adjusted start address to the start address and the adjusted count. Is considered as the lower count (608). If not (ie, if the channel associated with remapping 106 owns the upper portion of the transfer), remapping 106 considers the adjusted start address to the boundary address and the adjusted count to the upper count. 610.
도 7은 리매핑(106)이 채널 내의 어드레스를 인덱싱하기 위해 사용할 수 있는 리매핑 프로세싱(700)의 예를 도시한다. 리매핑(106)은 인덱싱될 어드레스 내의 하나의 값을 갖는 연속하는 어드레스 비트의 최장 길이 스트링을 찾는다(702). 리매핑(106)은 어드레스 내의 최하위 비트를 갖는 최장 길이 스트링을 탐색하기 시작한다. 일단 발견되면, 리매핑(106)은 그 어드레스로부터 최장 길이 스트링을 드롭하며(704), 그 어드레스 내의 잔류 비트들을 바로 자리맞춤한다(706). 만약 채널이 자승의 개수의 메모리 위치(가령, 어드레스)를 포함한다면, 리매핑(106)은 비어 있는 비트 위치(최상위 비트)에 1을 채운다(708). 이러한 채움은 필수적으로 남아 있는 채널의 공간에 대해 3/4을 가산한다. 즉, 상기 어드레스로부터 3/4을 채우기 시작한다. 최종 비트는 리매핑된 어드레스를 형성한다.7 shows an example of remapping processing 700 that remapping 106 may use to index addresses in a channel. Remapping 106 finds 702 the longest length string of consecutive address bits with one value in the address to be indexed. Remapping 106 begins searching for the longest string with the least significant bit in the address. Once found, remapping 106 drops the longest string from that address (704) and justifies the remaining bits in that address (706). If the channel contains a number of squares of memory locations (eg, addresses), remapping 106 fills the empty bit positions (most significant bits) with 1 (708). This filling essentially adds three quarters to the space of the remaining channel. That is, it starts to fill three quarters from the address. The last bit forms a remapped address.
만약 그 채널이 자승이 아닌 개수로 이루어진다면, 3/4의 시프팅은 전형적으로 자승의 개수의 채널인 경우와 동일한 사이즈를 갖지 않는다(가령, 2 비트 위치가 아닌 다른 번호일 것이다). 리매핑(106)은 비어 있는 위치 내의 어디에 1을 가산할 것인 지를 결정한다(710). 리매핑(106)은 1을 채우는(712) 것을 시작하는 스타트 어드레스를 나타내는 상수를 포함하는 하나 이상의 참조표를 컨설팅함으로써 전술한 결정을 행할 수 있다. 각각의 참조표는 리매핑(106) 내에 포함되거나 이와는 달리 리매핑(106)에 액세스가능하며 임의의 개수의 채널 및 임의의 개수의 시프트된 비트들에 대한 상수를 포함할 수 있다. 최종 비트들은 리매핑된 어드레스를 형성한다.If the channel consists of a non-square number, the shifting of 3/4 will typically not have the same size as the number of channels of the square (e.g. it will be a number other than a two bit position). Remapping 106 determines where to add 1 in the empty position (710). Remapping 106 may make the foregoing decision by consulting one or more lookup tables that include a constant indicating a start address that begins filling 1 (712). Each lookup table is contained within remapping 106 or otherwise accessible to remapping 106 and may include constants for any number of channels and any number of shifted bits. The final bits form a remapped address.
가령, 3개의 채널 시스템에서, 참조표는 다음과 같은데, 상수값은 16진법으로 도시되며, KO는 하나의 채널의 3/4를 나타내며, K1은 한 채널의 3/4 플러스 3/4를 나타내며, K2는 한 채널의 3/4 플러스 3/4 플러스 3/4를 나타낸다. 참조표는 768MByte까지의 상수값을 나타내지만, 그 참조표 내의 값은 커다란 수의 MBtye를 위한 적당한 것으로 스케일될 수 있다.For example, in a three-channel system, the lookup table is as follows, where the constant value is shown in hexadecimal, KO represents three quarters of one channel, K1 represents three quarters plus three quarters of one channel. , K2 represents 3/4 plus 3/4 plus 3/4 of one channel. The lookup table represents constant values up to 768 MBytes, but the values in the lookup table can be scaled to one that is suitable for a large number of MBtye.
리매핑(106)은 이용가능한 모든 어드레스, 가령 채널 제어 시스템(100)에 의해 처리되는 모든 어드레스를 인덱싱한다(도 1 참조). 간단한 예로서, 각각이 8개의 어드레스를 갖는 세개의 채널과 24개의 어드레스를 포함하는 시스템에서, 채널들 내의 어드레스 위치들은 도시된 바와 같이 리매핑될 것이다.Remapping 106 indexes all available addresses, such as all addresses processed by channel control system 100 (see FIG. 1). As a simple example, in a system that includes three channels with eight addresses and twenty-four addresses, the address locations within the channels would be remapped as shown.
도 2, 3, 4, 6, 및 7의 프로세싱이 도 1의 채널 제어 시스템 내에 포함된 구성요소를 참조하면서 기술되었지만, 이와 동일하거나, 보다 많거나 혹은 보다 적은 구성요소를 포함하는 상기 혹은 유사 프로세싱들은 채널 제어 시스템(100) 혹은 다른 유사 시스템 내에서 수행될 수 있다. 또한, 도 2, 3, 4, 6, 및 7의 프로세싱은 3개의 채널과 31비트 어드레스를 포함하면서 128바이트 인터리빙을 사용하는 시스템으로 기술되었지만, 이들 프로세싱은 임의의 사이즈의 인터리빙, 임의의 개수의 채널 및 임의의 사이즈의 어드레스에 대해 (임의의 적절한 변형을 통해) 사용될 수 있다. 또한, 도 2,3,4,6 및 7에서의 프로세싱은 그 시스템에서 모두 수행될 필요는 없지만, 단독으로 혹은 두개 이상의 다른 프로세싱을 갖는 부분적인 조합으로의 적용가능성을 찾을 수 있다.Although the processing of FIGS. 2, 3, 4, 6, and 7 has been described with reference to components included within the channel control system of FIG. 1, the above or similar processing including the same, more, or fewer components. These may be performed in the channel control system 100 or other similar system. Also, while the processing of Figures 2, 3, 4, 6, and 7 has been described as a system using 128 byte interleaving, including three channels and 31 bit addresses, these processing may be any size of interleaving, any number of Can be used (via any suitable modification) for channels and addresses of any size. In addition, the processing in FIGS. 2, 3, 4, 6 and 7 need not be performed in all of the systems, but may find applicability either alone or in partial combination with two or more other processing.
도 8을 참조하면, 머신(800)은 채널 제어 시스템(100)을 포함하거나 유사하게 구성될 수 있는 메모리 제어기(804)를 포함하는 프로세싱 시스템(802)을 포함한다. 도 8을 참조하여 기술되는 구성요소는 다양한 방식으로 구현될 수 있다.Referring to FIG. 8, machine 800 includes a processing system 802 that includes a memory controller 804 that may include or similarly be configured for a channel control system 100. Components described with reference to FIG. 8 may be implemented in various ways.
소비 장치(806)는 메인 메모리(808) 내의 소정의 위치에 저장된 정보를 필요로 할 수 있다. 소비 장치(806)는 전형적으로 입력/출력(I/O) 포트, 베이(bay) 및 슬롯(810)을 통해 상기 머신(800)에 접속하여 메인 메모리(808)로부터 칩셋(812) 및 프로세서(814)를 통해 데이터를 요청한다.The consuming device 806 may need information stored at a predetermined location in the main memory 808. The consuming device 806 typically connects to the machine 800 through input / output (I / O) ports, bays, and slots 810 to provide the chipset 812 and processor (from the main memory 808). 814 request data.
메모리 제어기(804)는 다중 메모리 채널을 사용하여 판독/기록을 인터리빙하면서 전술한 바와 같이 메인 메모리(808) 내의 매핑 어드레스에 대한 액세스를 제어할 수 있다. 메인 메모리(808)는 데이터를 저장할 수 있는 임의의 메모리 메카니즘을 포함할 수 있다. 메인 메모리(808)의 예에는, 다이나믹 RAM이나 스태틱 RAM과 같은 랜덤 액세스 메모리(RAM), ROM, 플래시 메모리, 테이프, 디스크, 버퍼, 및 기타 타입의 유사 저장 메카니즘이 있다. 메인 메모리(808)는 하나의 저장 메카니즘, 가령 하나의 RAM 칩 혹은 저장 메카니즘의 임의의 조합, 가령 다중 RAM 칩을 포함할 수 있다. 가령, 메모리는 SDRAM을 포함할 수 있다. SDRAM은 일반적으로 종래의 메모리보다 더 고속의 클럭 속도로 작동할 수 있는 DRAM 타입을 지칭한다. SDRAM은 스스로 컴퓨팅 시스템 내에 포함된 프로세서(가령, 프로세서(814))와 관련된 버스와 동기할 수 있다. DDR-SDRAM은 일반적으로 메모리의 데이터 처리량을 효율적으로 배가하는, 각각의 클럭 사이클의 모든 엣지 상에서 데이터 전달을 지원하는 SDRAM 타입을 지칭한다.Memory controller 804 may control access to the mapping address in main memory 808 as described above while interleaving reads / writes using multiple memory channels. Main memory 808 may include any memory mechanism capable of storing data. Examples of main memory 808 include random access memory (RAM), such as dynamic RAM or static RAM, ROM, flash memory, tape, disk, buffer, and other types of similar storage mechanisms. Main memory 808 may include one storage mechanism, such as one RAM chip or any combination of storage mechanisms, such as multiple RAM chips. For example, the memory may comprise SDRAM. SDRAM generally refers to a type of DRAM that can operate at a faster clock speed than conventional memory. The SDRAM may itself synchronize with a bus associated with a processor (eg, processor 814) included in the computing system. DDR-SDRAM generally refers to a type of SDRAM that supports data transfer on all edges of each clock cycle, effectively doubling the data throughput of the memory.
머신(800)은 데이터를 처리할 수 있는 임의의 메카니즘이나 장치를 포함할 수 있다. 머신(800)의 예에는 워크스테이션, 고정적인 개인 컴퓨터, 모바일 개인 컴퓨터, 서버, PDA, 호출기, 전화기, 및 기타 유사 메카니즘 및 장치가 있다.Machine 800 may include any mechanism or device capable of processing data. Examples of machine 800 include workstations, stationary personal computers, mobile personal computers, servers, PDAs, pagers, telephones, and other similar mechanisms and devices.
소비 장치(806)는 I/O 장치, 네트워크 인터페이스, 혹은 머신(800)과 통신하거나 그 머신 내에 포함될 수 있는 다른 메카니즘을 포함할 수 있다. I/O 장치는 일반적으로 컴퓨터 시스템에 대해 데이터를 전달하는데 사용되는 장치들을 포함한다. I/O 장치의 예에는 마우스, 키보드, 프린터, 모니터와 같은 디스플레이 장치, 디스크 드라이브, 그래픽 장치, 조이스틱, 패들(paddle), 집 드라이브(Zip drive), 스캐너, CD 드라이브, DVD 드라이브, 모뎀, 카메라, 비디오 장치, 마이크로폰, 및 다른 유사한 타입의 내부, 외부 및 내부/외부 장치가 있다. 하나의 소비 장치가 도시되지만, 머신(800)은 그 이상의 소비 장치와 통신할 수 있다.The consuming device 806 may include an I / O device, a network interface, or other mechanism that may be in communication with or included in the machine 800. I / O devices generally include devices used to convey data to a computer system. Examples of I / O devices include display devices such as mice, keyboards, printers, monitors, disk drives, graphics devices, joysticks, paddles, zip drives, scanners, CD drives, DVD drives, modems, cameras , Video devices, microphones, and other similar types of internal, external, and internal / external devices. Although one consuming device is shown, the machine 800 can communicate with more consuming devices.
I/O 포트, 베이, 및 슬롯(810)은 하나 이상의 소비 장치를 머신(800)에 접속할 수 있는 임의의 메카니즘이나 인터페이스를 포함할 수 있다. 가령, I/O 포트, 베이, 및 슬롯(810)은 주변 구성요소 상호접속(PCI) 슬롯, 병렬 포트, 직렬 버스 포트, 디스크 드라이브 베이, 및 다른 유사 타입의 메카니즘 및 인터페이스를 포함할 수 있다.I / O ports, bays, and slots 810 may include any mechanism or interface that may connect one or more consumer devices to the machine 800. For example, I / O ports, bays, and slots 810 may include peripheral component interconnect (PCI) slots, parallel ports, serial bus ports, disk drive bays, and other similar types of mechanisms and interfaces.
프로세서(814)는 마이크로프로세서 혹은 중앙 처리 장치(CPU)와 같은 임의의 처리 메카니즘을 포함할 수 있다. 프로세서(814)는 하나 이상의 개개의 프로세서를 포함할 수 있다. 프로세서(814)는 네트워크 프로세서, 범용 내장형 프로세서, 혹은 다른 유사한 타입의 프로세서를 포함할 수 있다.Processor 814 may include any processing mechanism, such as a microprocessor or central processing unit (CPU). Processor 814 may include one or more individual processors. Processor 814 may include a network processor, a general purpose embedded processor, or another similar type of processor.
칩셋(812)은 머신의 서브시스템들 간에 인터페이스를 제공할 수 있는 임의의 개수의 칩셋/집적 회로를 포함할 수 있다.Chipset 812 may include any number of chipset / integrated circuitry that may provide an interface between subsystems of a machine.
인스트럭션 및 데이터는 메인 메모리(808)에 대해 전형적으로 블럭으로 통신된다. 블럭은 일반적으로 그룹으로서 통신되거나 처리되는 비트 혹은 바이트의 집합체를 지칭한다. 블럭은 임의의 개수의 워드를 포함할 수 있으며, 워드는 임의의 개수의 비트 혹은 바이트를 포함할 수 있다.Instructions and data are typically communicated in blocks to main memory 808. A block generally refers to a collection of bits or bytes that are communicated or processed as a group. A block can contain any number of words, and a word can contain any number of bits or bytes.
데이터는 통신 링크 상의 구성요소들 간에 통신이 행해질 수 있다. 통신 링크는 (임의의 타입 및 사이즈의) 버스, 물리적 포트, 무선 링크, 및 다른 유사한 링크와 같은 임의의 종류의 통신 링크 및 그들의 조합을 포함할 수 있다. 버스 통신 링크에 대해, 버스는 임의의 폭, 가령, 16비트, 32비트, 64비트 등을 가질 수 있으며, 임의의 속도, 가령 33메가 헤르쯔(MHz), 100MHz, 등으로 동작할 수 있다. 버스는 측대역 특징을 가질 수 있는데, 여기서 버스는 데이터 및 어드레스 정보를 동시에 전달할 수 있는 병렬 채널을 포함한다. 또한, 각각의 통신 링크는 하나 이상의 개개의 통신 링크를 포함할 수 있다.Data can be communicated between components on the communication link. The communication link may include any kind of communication link and combinations thereof, such as buses (of any type and size), physical ports, wireless links, and other similar links. For a bus communication link, the bus can have any width, such as 16 bits, 32 bits, 64 bits, and the like, and can operate at any speed, such as 33 megahertz (MHz), 100 MHz, and the like. The bus may have sideband characteristics, where the bus includes parallel channels capable of carrying data and address information simultaneously. In addition, each communication link may comprise one or more individual communication links.
메모리 제어기(804)는 일반적으로 메인 메모리(808)와 통신가능하며 이 메모리를 관리할 수 있는 임의의 메카니즘을 포함한다. 메모리 제어기(804)는 하나 이상의 칩셋을 포함할 수 있으며 칩셋(812) 내에 포함될 수 있거나 칩셋(812)과는 무관한 메카니즘일 수 있다. 메모리 제어기(804)는 임의의 개수의 임의의 타입의 인스트럭션, 루틴, 애플리케이션, 및 프로그램을 포함할 수 있다.The memory controller 804 is generally in communication with the main memory 808 and includes any mechanism capable of managing this memory. The memory controller 804 may include one or more chipsets and may be included in the chipset 812 or may be a mechanism independent of the chipset 812. The memory controller 804 may include any number of any type of instructions, routines, applications, and programs.
또한, 머신(800)은 설명을 용이하게 하기 위해 간략화된다. 머신(800)은 통신 링크, 프로세서, 저장 메카니즘(버퍼, 캐쉬, 메모리, 데이터베이스 등), 디스플레이 메카니즘, 소비 장치, 브릿지, 칩 및 다른 유사한 타입의 머신 요소와 같은 추가의 구성요소를 포함할 수 있다. In addition, the machine 800 is simplified to facilitate description. Machine 800 may include additional components such as communication links, processors, storage mechanisms (buffers, caches, memory, databases, etc.), display mechanisms, consumer devices, bridges, chips, and other similar types of machine elements. .
본 명세서에서 기술된 기법은 임의의 특정 하드웨어 혹은 소프트웨어 구성에 국한되지 않으며, 이들 기법은 임의의 컴퓨팅 혹은 프로세싱 환경에 적용될 수 있다. 이 기법들은 하드웨어, 소프트웨어, 혹은 이들의 조합으로 구현될 수 있다. 이들 기법은 모바일 컴퓨터, 고정 컴퓨터, PDA, 및 프로세서, 이 프로세서에 의해 판독가능한 저장 매체(이 저장 매체는 휘발성 및 비휘발성 메모리 및 저장 요소를 포함함), 적어도 하나의 입력 장치, 및 하나 이상의 출력 장치를 포함하는 유사한 장치와 같은 프로그램가능한 머신 상에서 실행되는 프로그램으로 구현될 수 있다. 프로그램 코드는 기술된 기능을 수행하여 출력 정보를 생성하기 위해 입력 장치를 사용하여 입력되는 데이터에 인가된다. 출력 정보는 하나 이상의 출력 장치에 인가된다.The techniques described herein are not limited to any particular hardware or software configuration, and these techniques can be applied to any computing or processing environment. These techniques can be implemented in hardware, software, or a combination thereof. These techniques include mobile computers, fixed computers, PDAs, and processors, storage media readable by the processor, the storage media including volatile and nonvolatile memory and storage elements, at least one input device, and one or more outputs. It may be implemented as a program running on a programmable machine, such as a similar device including a device. The program code is applied to data input using the input device to perform the described function to generate output information. Output information is applied to one or more output devices.
각각의 프로그램은 머신 시스템과 통신하기 위해 하이 레벨 프로시주얼 혹은 객체 지향형 프로그래밍 언어로 구현될 수 있다. 그러나, 이 프로그램은 원한다면 어셈블리 혹은 머신 언어로 구현될 수 있다. 여하튼, 언어는 컴파일되거나 인터프리트된 언어일 수 있다.Each program can be implemented in a high level procedural or object oriented programming language to communicate with a machine system. However, this program can be implemented in assembly or machine language, if desired. In any case, the language can be a compiled or interpreted language.
그러한 각각의 프로그램은 저장 매체 혹은 장치, 가령 CD-ROM, 하드 디스크, 자기 디스크, 혹은 유사한 매체 혹은 장치 상에서 저장될 수 있으며, 상기 저장 매체 혹은 장치가 컴퓨터에 의해 판독되어 본 문헌에 기술된 절차를 수행하고자 할 때 머신을 구성하고 동작하기 위한 범용 혹은 특정 목적의 프로그램가능한 머신에 의해 판독가능하다. 이 시스템은 또한 프로그램으로 구성되는 머신 판독가능한 저장 매체로서 구현되는 것으로 간주되며, 여기서 저장 매체는 머신이 특정의 규정된 방식으로 동작하도록 구성된다.Each such program may be stored on a storage medium or device, such as a CD-ROM, hard disk, magnetic disk, or similar medium or device, wherein the storage medium or device is read by a computer to perform the procedures described herein. It is readable by a general purpose or special purpose programmable machine for configuring and operating the machine as it is intended to be performed. The system is also considered to be implemented as a machine readable storage medium consisting of programs, wherein the storage medium is configured for the machine to operate in a particular prescribed manner.
다른 실시예는 첨부되는 청구범위의 영역 내에 존재한다.Other embodiments are within the scope of the appended claims.
Claims (33)
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 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20050099967A true KR20050099967A (en) | 2005-10-17 |
Family
ID=32711272
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020057012816A Ceased KR20050099967A (en) | 2003-01-10 | 2004-01-02 | Memory interleaving |
Country Status (6)
| Country | Link |
|---|---|
| US (2) | US6941438B2 (en) |
| EP (1) | EP1627309A2 (en) |
| KR (1) | KR20050099967A (en) |
| CN (2) | CN100380344C (en) |
| TW (1) | TWI269162B (en) |
| WO (1) | WO2004063929A2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9256531B2 (en) | 2012-06-19 | 2016-02-09 | Samsung Electronics Co., Ltd. | Memory system and SoC including linear addresss remapping logic |
Families Citing this family (43)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7702831B2 (en) * | 2000-01-06 | 2010-04-20 | Super Talent Electronics, Inc. | Flash memory controller for electronic data flash card |
| US7873837B1 (en) | 2000-01-06 | 2011-01-18 | Super Talent Electronics, Inc. | Data security for electronic data flash card |
| US20060075395A1 (en) * | 2004-10-01 | 2006-04-06 | Lee Charles C | Flash card system |
| US20060161725A1 (en) * | 2005-01-20 | 2006-07-20 | Lee Charles C | Multiple function flash memory system |
| US7702984B1 (en) | 2000-01-06 | 2010-04-20 | Super Talent Electronics, Inc. | High volume testing for USB electronic data flash cards |
| US7676640B2 (en) * | 2000-01-06 | 2010-03-09 | Super Talent Electronics, Inc. | Flash memory controller controlling various flash memory cells |
| 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 |
| 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 |
| US7487505B2 (en) * | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
| 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 |
| US7213099B2 (en) | 2003-12-30 | 2007-05-01 | Intel Corporation | Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches |
| US7418540B2 (en) * | 2004-04-28 | 2008-08-26 | Intel Corporation | Memory controller with command queue look-ahead |
| US7277990B2 (en) | 2004-09-30 | 2007-10-02 | Sanjeev Jain | Method and apparatus providing efficient queue descriptor memory access |
| EP1825433A4 (en) * | 2004-11-23 | 2010-01-06 | Efficient Memory Technology | Method and apparatus of multiple abbreviations of interleaved addressing of paged memories and intelligent memory banks therefor |
| 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 |
| US7555630B2 (en) | 2004-12-21 | 2009-06-30 | Intel Corporation | Method and apparatus to provide efficient communication between multi-threaded processing elements in a processor unit |
| US7418543B2 (en) | 2004-12-21 | 2008-08-26 | Intel Corporation | Processor having content addressable memory with command ordering |
| US7467256B2 (en) | 2004-12-28 | 2008-12-16 | Intel Corporation | Processor having content addressable memory for block-based queue structures |
| 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 |
| US20100011229A1 (en) * | 2006-07-17 | 2010-01-14 | Xyratex Technology Limited | Methods of powering up a disk drive storage enclosure and storage enclosures |
| US9710384B2 (en) * | 2008-01-04 | 2017-07-18 | Micron Technology, Inc. | Microprocessor architecture having alternative memory access paths |
| 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 |
| 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 |
| US9299124B2 (en) | 2012-06-07 | 2016-03-29 | Qualcomm Incorporated | Padding for 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 |
| 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 (en) * | 2014-02-03 | 2020-10-05 | 삼성전자 주식회사 | System comprising multi channel memory and operating method for the same |
| CN105446911B (en) * | 2014-05-29 | 2018-05-25 | 展讯通信(上海)有限公司 | The memory access control method and device of terminal device |
| CN105446891B (en) * | 2014-05-29 | 2018-08-21 | 展讯通信(上海)有限公司 | The memory access control method and device of terminal device |
| KR102398611B1 (en) * | 2015-05-07 | 2022-05-17 | 에스케이하이닉스 주식회사 | Memory system |
| US9823984B2 (en) * | 2015-06-25 | 2017-11-21 | Intel Corporation | Remapping of memory in memory control architectures |
| KR102707683B1 (en) * | 2016-07-12 | 2024-09-20 | 삼성전자주식회사 | Electronic device performing software training on memory channel and memory channel training method thereof |
| 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 |
| JP7852286B2 (en) * | 2022-02-22 | 2026-04-28 | 日本電気株式会社 | Integrated circuit, information processing device, routing control method, and program |
Family Cites Families (325)
| 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 (en) * | 1972-03-08 | 1973-06-18 | Burroughs Corp | MICROPROGRAM CONTAINING A MICRO-RECOVERY INSTRUCTION |
| US3881173A (en) | 1973-05-14 | 1975-04-29 | Amdahl Corp | Condition code determination and data processing |
| IT986411B (en) * | 1973-06-05 | 1975-01-30 | Olivetti E C Spa | SYSTEM TO TRANSFER THE CONTROL OF PROCESSING FROM A FIRST PRIORITY LEVEL TO A SECOND PRIORITY LEVEL |
| FR2253415A5 (en) | 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 |
| JPS59111533U (en) | 1983-01-19 | 1984-07-27 | 株式会社池田地球 | Handbag handle attachment |
| 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 (en) * | 1985-10-30 | 1987-05-14 | Toshiba Corp | Semiconductor memory |
| 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 |
| US5142683A (en) * | 1987-03-09 | 1992-08-25 | Unisys Corporation | Intercomputer communication control apparatus and method |
| US4866664A (en) * | 1987-03-09 | 1989-09-12 | Unisys Corporation | Intercomputer communication control apparatus & method |
| DE68913629T2 (en) * | 1988-03-14 | 1994-06-16 | Unisys Corp | BLOCK LOCKING PROCESSOR FOR MULTIPLE PROCESSING 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 |
| US5046000A (en) | 1989-01-27 | 1991-09-03 | International Business Machines Corporation | Single-FIFO high speed combining switch |
| 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 (en) * | 1989-12-23 | 1991-06-27 | Standard Elektrik Lorenz Ag | METHOD FOR RESTORING THE CORRECT SEQUENCE OF CELLS, ESPECIALLY IN AN ATM SWITCHING CENTER, AND OUTPUT UNIT THEREFOR |
| US5179702A (en) | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
| US5247671A (en) | 1990-02-14 | 1993-09-21 | International Business Machines Corporation | Scalable schedules for serial communications controller in data processing systems |
| DE69132495T2 (en) * | 1990-03-16 | 2001-06-13 | Texas Instruments Inc., Dallas | Distributed processing memory |
| JPH0799812B2 (en) | 1990-03-26 | 1995-10-25 | 株式会社グラフイックス・コミュニケーション・テクノロジーズ | Signal coding apparatus, signal decoding apparatus, and signal coding / decoding apparatus |
| DE69129872T2 (en) | 1990-03-27 | 1999-03-04 | Philips Electronics N.V., Eindhoven | Data processing system with a performance-enhancing instruction cache |
| 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 |
| EP0463973A3 (en) | 1990-06-29 | 1993-12-01 | Digital Equipment Corp | Branch prediction in high performance processor |
| AU633724B2 (en) | 1990-06-29 | 1993-02-04 | Digital Equipment Corporation | Interlock queueing |
| 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 |
| KR960001273B1 (en) | 1991-04-30 | 1996-01-25 | 가부시키가이샤 도시바 | Single chip microcomputer |
| 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 |
| US5557766A (en) * | 1991-10-21 | 1996-09-17 | Kabushiki Kaisha Toshiba | High-speed processor for handling multiple interrupts utilizing an exclusive-use bus and current and previous bank pointers to specify a return bank |
| 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 |
| 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 |
| JP2823767B2 (en) * | 1992-02-03 | 1998-11-11 | 松下電器産業株式会社 | Register file |
| US5448706A (en) * | 1992-05-13 | 1995-09-05 | Sharp Microelectronics Technology, Inc. | Address generator for multi-channel circular-buffer style processing |
| 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 (en) * | 1992-07-17 | 1994-10-13 | Ibm | Multiprocessor computer system and method for transmitting control information and data information between at least two processor units of a computer system |
| US5274770A (en) | 1992-07-29 | 1993-12-28 | Tritech Microelectronics International Pte Ltd. | Flexible register-based I/O microcontroller with single cycle instruction execution |
| US5442756A (en) | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
| 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 |
| 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 |
| EP0627100B1 (en) | 1992-12-23 | 2000-01-05 | Centre Electronique Horloger S.A. | Multi-tasking low-power controller |
| 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 |
| DE69429204T2 (en) | 1993-03-26 | 2002-07-25 | Cabletron Systems Inc | Sequence control method and device for a communication network |
| 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 |
| EP0633678B1 (en) | 1993-06-29 | 2000-07-19 | Alcatel | Resequencing method and resequencing device realizing such a method |
| US5363448A (en) | 1993-06-30 | 1994-11-08 | United Technologies Automotive, Inc. | Pseudorandom number generation and cryptographic authentication |
| JP3452655B2 (en) | 1993-09-27 | 2003-09-29 | 株式会社日立製作所 | Digital signal processor and method of executing instructions using the same |
| CA2107299C (en) * | 1993-09-29 | 1997-02-25 | Mehrad Yasrebi | High performance machine for switched communications in a heterogenous data processing network gateway |
| US6141689A (en) | 1993-10-01 | 2000-10-31 | International Business Machines Corp. | Method and mechanism for allocating switched communications ports in a heterogeneous 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 |
| US6079014A (en) | 1993-12-02 | 2000-06-20 | Intel Corporation | Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state |
| JP3169155B2 (en) | 1993-12-22 | 2001-05-21 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | Circuit for caching information |
| US5487159A (en) | 1993-12-23 | 1996-01-23 | Unisys Corporation | System for processing shift, mask, and merge operations in one instruction |
| SG52391A1 (en) | 1994-01-03 | 1998-09-28 | Intel Corp | Method and apparatus for implementing a four stage branch resolution system in a computer processor |
| 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 (en) * | 1994-04-15 | 2004-07-28 | 株式会社日立製作所 | Information processing equipment |
| 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 |
| US5666551A (en) | 1994-06-30 | 1997-09-09 | Digital Equipment Corporation | Distributed data bus sequencing for a system bus with separate address and data bus protocols |
| FR2722041B1 (en) | 1994-06-30 | 1998-01-02 | Samsung Electronics Co Ltd | HUFFMAN DECODER |
| JP3810449B2 (en) * | 1994-07-20 | 2006-08-16 | 富士通株式会社 | Queue device |
| US5640538A (en) | 1994-08-22 | 1997-06-17 | Adaptec, Inc. | Programmable timing mark sequencer for a disk drive |
| US5813031A (en) | 1994-09-21 | 1998-09-22 | Industrial Technology Research Institute | Caching tag for a large scale cache computer memory system |
| US5717760A (en) | 1994-11-09 | 1998-02-10 | Channel One Communications, Inc. | Message protection system and method |
| JP3169779B2 (en) * | 1994-12-19 | 2001-05-28 | 日本電気株式会社 | Multi-thread processor |
| US5610864A (en) | 1994-12-23 | 1997-03-11 | Micron Technology, Inc. | Burst EDO memory device with maximized write cycle timing |
| JPH08272648A (en) | 1994-12-29 | 1996-10-18 | Hitachi Ltd | Method for automatically generating debug command file and device for automatically regenerating breakpoint in debug command file |
| 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 Industrial Co Ltd | Pipeline processor |
| US5651137A (en) | 1995-04-12 | 1997-07-22 | Intel Corporation | Scalable cache attributes for an input/output bus |
| US5886992A (en) * | 1995-04-14 | 1999-03-23 | Valtion Teknillinen Tutkimuskeskus | Frame synchronized ring system and method |
| US5758184A (en) | 1995-04-24 | 1998-05-26 | Microsoft Corporation | System for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads |
| US5592622A (en) * | 1995-05-10 | 1997-01-07 | 3Com Corporation | Network intermediate system with message passing architecture |
| JPH08320797A (en) * | 1995-05-24 | 1996-12-03 | Fuji Xerox Co Ltd | Program control system |
| US5644780A (en) | 1995-06-02 | 1997-07-01 | International Business Machines Corporation | Multiple port high speed register file with interleaved write ports for use with very long instruction word (vlin) and n-way superscaler processors |
| US5812799A (en) | 1995-06-07 | 1998-09-22 | Microunity Systems Engineering, Inc. | Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing |
| 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 (en) | 1995-06-30 | 1999-05-01 | 배순훈 | Variable-length encoder |
| 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 (en) * | 1995-11-30 | 1998-10-15 | 양승택 | Memory data path controller in parallel processing computer system |
| 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 |
| AU714679B2 (en) | 1995-12-29 | 2000-01-06 | Tixi.Com Gmbh Telecommunication Systems | Process and microcomputer system for automatic, secure and direct data transfer |
| US5819080A (en) | 1996-01-02 | 1998-10-06 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to specify condition flags for use with branch instructions and a computer system employing the microprocessor |
| 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 |
| US6201807B1 (en) | 1996-02-27 | 2001-03-13 | Lucent Technologies | Real-time hardware method and apparatus for reducing queue processing |
| 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 |
| US5784649A (en) * | 1996-03-13 | 1998-07-21 | Diamond Multimedia Systems, Inc. | Multi-threaded FIFO pool buffer and bus transfer control system |
| 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 |
| US5829033A (en) | 1996-07-01 | 1998-10-27 | Sun Microsystems, Inc. | Optimizing responses in a coherent distributed electronic system including a computer system |
| US5978874A (en) | 1996-07-01 | 1999-11-02 | Sun Microsystems, Inc. | Implementing snooping on a split-transaction computer system bus |
| US6199133B1 (en) | 1996-03-29 | 2001-03-06 | Compaq Computer Corporation | Management communication bus for networking devices |
| KR100219597B1 (en) * | 1996-03-30 | 1999-09-01 | 윤종용 | Queuing control method in cd-rom drive |
| GB2311882B (en) | 1996-04-04 | 2000-08-09 | Videologic Ltd | A data processing management system |
| JPH1091443A (en) | 1996-05-22 | 1998-04-10 | Seiko Epson Corp | Information processing circuit, microcomputer and electronic equipment |
| US5946487A (en) * | 1996-06-10 | 1999-08-31 | Lsi Logic Corporation | Object-oriented multi-media architecture |
| KR980004067A (en) * | 1996-06-25 | 1998-03-30 | 김광호 | Data Transceiver and Method in Multiprocessor System |
| JP3541335B2 (en) | 1996-06-28 | 2004-07-07 | 富士通株式会社 | Information processing apparatus and distributed processing control method |
| US5937187A (en) * | 1996-07-01 | 1999-08-10 | Sun Microsystems, Inc. | Method and apparatus for execution and preemption control of computer process entities |
| US5933627A (en) | 1996-07-01 | 1999-08-03 | Sun Microsystems | Thread switch on blocked load or store using instruction thread field |
| 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 |
| US6247040B1 (en) | 1996-09-30 | 2001-06-12 | Lsi Logic Corporation | Method and structure for automated switching between multiple contexts in a storage subsystem target device |
| US6173349B1 (en) | 1996-10-18 | 2001-01-09 | Samsung Electronics Co., Ltd. | Shared bus system with transaction and destination ID |
| US6072781A (en) | 1996-10-22 | 2000-06-06 | International Business Machines Corporation | Multi-tasking adapter for parallel network applications |
| JPH10177482A (en) | 1996-10-31 | 1998-06-30 | Texas Instr Inc <Ti> | Microprocessor and operating method |
| US5860158A (en) * | 1996-11-15 | 1999-01-12 | Samsung Electronics Company, Ltd. | Cache control unit with a cache request transaction-oriented protocol |
| US6009505A (en) | 1996-12-02 | 1999-12-28 | Compaq Computer Corp. | System and method for routing one operand to arithmetic logic units from fixed register slots and another operand from any register slot |
| 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 |
| US6212542B1 (en) | 1996-12-16 | 2001-04-03 | International Business Machines Corporation | Method and system for executing a program within a multiscalar processor by processing linked thread descriptors |
| US6098110A (en) | 1996-12-30 | 2000-08-01 | Compaq Computer Corporation | Network switch with a multiple bus structure and a bridge interface for transferring network data between different buses |
| US6029228A (en) | 1996-12-31 | 2000-02-22 | Texas Instruments Incorporated | Data prefetching of a load target buffer for post-branch instructions based on past prediction accuracy's of branch predictions |
| EP0898819B1 (en) | 1997-01-10 | 2004-08-04 | Koninklijke Philips Electronics N.V. | Communication bus 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 |
| US5893162A (en) | 1997-02-05 | 1999-04-06 | Transwitch Corp. | Method and apparatus for allocation and management of shared memory with data in memory stored as multiple linked lists |
| US6256115B1 (en) | 1997-02-21 | 2001-07-03 | Worldquest Network, Inc. | Facsimile network |
| 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 |
| WO1998043168A1 (en) * | 1997-03-21 | 1998-10-01 | International Business Machines Corporation | Address mapping for system memory |
| US5996068A (en) | 1997-03-26 | 1999-11-30 | Lucent Technologies Inc. | Method and apparatus for renaming registers corresponding to multiple thread identifications |
| US6298370B1 (en) | 1997-04-04 | 2001-10-02 | Texas Instruments Incorporated | Computer operating process allocating tasks between first and second processors at run time based upon current processor load |
| 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 |
| US5941949A (en) | 1997-05-14 | 1999-08-24 | Citrix Systems, Inc. | System and method for transmitting data from a server application to more than one client node |
| US6141765A (en) | 1997-05-19 | 2000-10-31 | Gigabus, Inc. | Low power, high speed communications bus |
| KR100212064B1 (en) | 1997-05-21 | 1999-08-02 | 윤종용 | 2n x n multiplexer switch architecture |
| US6009515A (en) | 1997-05-30 | 1999-12-28 | Sun Microsystems, Inc. | Digital data processing system including efficient arrangement to support branching within trap shadows |
| GB2326253A (en) | 1997-06-10 | 1998-12-16 | Advanced Risc Mach Ltd | Coprocessor data access control |
| US6182177B1 (en) | 1997-06-13 | 2001-01-30 | Intel Corporation | Method and apparatus for maintaining one or more queues of elements such as commands using one or more token queues |
| US6092158A (en) | 1997-06-13 | 2000-07-18 | Intel Corporation | Method and apparatus for arbitrating between command streams |
| US6047334A (en) | 1997-06-17 | 2000-04-04 | Intel Corporation | System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence |
| US6067585A (en) | 1997-06-23 | 2000-05-23 | Compaq Computer Corporation | Adaptive interface controller that can operate with segments of different protocol and transmission rates in a single integrated device |
| 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 |
| US5938736A (en) * | 1997-06-30 | 1999-08-17 | Sun Microsystems, Inc. | Search engine architecture for a high performance multi-layer switch element |
| US6311256B2 (en) | 1997-06-30 | 2001-10-30 | Emc Corporation | Command insertion and reordering at the same storage controller |
| KR100216371B1 (en) | 1997-06-30 | 1999-08-16 | 윤종용 | Large scale atm switch with fault tolerant scheme and self routing method in 2nxn multiplexing switches |
| US6393483B1 (en) | 1997-06-30 | 2002-05-21 | Adaptec, Inc. | Method and apparatus for network interface card load balancing and port aggregation |
| US6233599B1 (en) | 1997-07-10 | 2001-05-15 | International Business Machines Corporation | Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers |
| US6247025B1 (en) | 1997-07-17 | 2001-06-12 | International Business Machines Corporation | Locking and unlocking mechanism for controlling concurrent access to objects |
| US6141348A (en) | 1997-08-25 | 2000-10-31 | Cisco Technology, Inc. | Constant-time programmable field extraction system and method |
| US6104700A (en) | 1997-08-29 | 2000-08-15 | Extreme Networks | Policy based quality of service |
| US6014729A (en) | 1997-09-29 | 2000-01-11 | Firstpass, Inc. | Shared memory arbitration apparatus and method |
| US6085294A (en) | 1997-10-24 | 2000-07-04 | Compaq Computer Corporation | Distributed data dependency stall mechanism |
| 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 |
| TW406229B (en) * | 1997-11-06 | 2000-09-21 | Hitachi Ltd | Data process system and microcomputer |
| US6223277B1 (en) | 1997-11-21 | 2001-04-24 | Texas Instruments Incorporated | Data processing circuit with packed data structure capability |
| US6360262B1 (en) | 1997-11-24 | 2002-03-19 | International Business Machines Corporation | Mapping web server objects to TCP/IP ports |
| US6029170A (en) | 1997-11-25 | 2000-02-22 | International Business Machines Corporation | Hybrid tree array data structure and method |
| US6070231A (en) | 1997-12-02 | 2000-05-30 | Intel Corporation | Method and apparatus for processing memory requests that require coherency transactions |
| US6144669A (en) | 1997-12-12 | 2000-11-07 | Newbridge Networks Corporation | Prioritized PVC management queues for improved frame processing capabilities |
| US6212602B1 (en) | 1997-12-17 | 2001-04-03 | Sun Microsystems, Inc. | Cache tag caching |
| 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 |
| JPH11203860A (en) | 1998-01-07 | 1999-07-30 | Nec Corp | Semiconductor memory device |
| US6134665A (en) | 1998-01-20 | 2000-10-17 | Digital Equipment Corporation | Computer with remote wake up and transmission of a status packet when the computer fails a self test |
| US6145054A (en) | 1998-01-21 | 2000-11-07 | Sun Microsystems, Inc. | Apparatus and method for handling multiple mergeable misses in a non-blocking cache |
| US6230119B1 (en) | 1998-02-06 | 2001-05-08 | Patrick Michael Mitchell | Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit |
| US6415338B1 (en) | 1998-02-11 | 2002-07-02 | Globespan, Inc. | System for writing a data value at a starting address to a number of consecutive locations equal to a segment length identifier |
| US5970013A (en) | 1998-02-26 | 1999-10-19 | Lucent Technologies Inc. | Adaptive addressable circuit redundancy method and apparatus with broadcast write |
| US6279113B1 (en) | 1998-03-16 | 2001-08-21 | Internet Tools, Inc. | Dynamic signature inspection-based network intrusion detection |
| US6223238B1 (en) | 1998-03-31 | 2001-04-24 | Micron Electronics, Inc. | Method of peer-to-peer mastering over a computer bus |
| US6092175A (en) | 1998-04-02 | 2000-07-18 | University Of Washington | Shared register storage mechanisms for multithreaded computer systems with out-of-order execution |
| US6079008A (en) | 1998-04-03 | 2000-06-20 | Patton Electronics Co. | Multiple thread multiple data predictive coded parallel processing system and method |
| KR100280460B1 (en) | 1998-04-08 | 2001-02-01 | 김영환 | Data processing device and its multiple thread processing method |
| EP0953897B1 (en) | 1998-05-01 | 2003-07-30 | Hewlett-Packard Company, A Delaware Corporation | Processing instruction using hashing |
| US6408325B1 (en) | 1998-05-06 | 2002-06-18 | Sun Microsystems, Inc. | Context switching technique for processors with large register files |
| US6092127A (en) | 1998-05-15 | 2000-07-18 | Hewlett-Packard Company | Dynamic allocation and reallocation of buffers in links of chained DMA operations by receiving notification of buffer full and maintaining a queue of buffers available |
| US6275505B1 (en) | 1998-05-30 | 2001-08-14 | Alcatel Canada Inc. | Method and apparatus for packetizing data into a data stream |
| US6505281B1 (en) | 1998-06-02 | 2003-01-07 | Raymond C. Sherry | Hard disk drives employing high speed distribution bus |
| US6157955A (en) | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
| US6272616B1 (en) | 1998-06-17 | 2001-08-07 | Agere Systems Guardian Corp. | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths |
| TW374967B (en) | 1998-06-22 | 1999-11-21 | Winbond Electronics Corp | Ethernet switch having shared memory structure and method of the shared memory |
| US6434145B1 (en) | 1998-06-22 | 2002-08-13 | Applied Micro Circuits Corporation | Processing of network data by parallel processing channels |
| US6724767B1 (en) | 1998-06-27 | 2004-04-20 | Intel Corporation | Two-dimensional queuing/de-queuing methods and systems for implementing the same |
| US6145123A (en) | 1998-07-01 | 2000-11-07 | Advanced Micro Devices, Inc. | Trace on/off with breakpoint register |
| US6424659B2 (en) * | 1998-07-17 | 2002-07-23 | Network Equipment Technologies, Inc. | Multi-layer switching apparatus and method |
| US6373848B1 (en) | 1998-07-28 | 2002-04-16 | International Business Machines Corporation | Architecture for a multi-port adapter with a single media access control (MAC) |
| US6073215A (en) | 1998-08-03 | 2000-06-06 | Motorola, Inc. | Data processing system having a data prefetch mechanism and method therefor |
| US6160562A (en) | 1998-08-18 | 2000-12-12 | Compaq Computer Corporation | System and method for aligning an initial cache line of data read from local memory by an input/output device |
| US6628652B1 (en) | 1998-09-18 | 2003-09-30 | Lucent Technologies Inc. | Flexible telecommunications switching network |
| US6505229B1 (en) | 1998-09-25 | 2003-01-07 | Intelect Communications, Inc. | Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems |
| 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 |
| US6449289B1 (en) | 1998-10-09 | 2002-09-10 | Adaptec, Inc. | Multi-processor bus protocol system |
| US6347344B1 (en) | 1998-10-14 | 2002-02-12 | Hitachi, Ltd. | Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor |
| US6212611B1 (en) | 1998-11-03 | 2001-04-03 | Intel Corporation | Method and apparatus for providing a pipelined memory controller |
| US6247086B1 (en) | 1998-11-12 | 2001-06-12 | Adaptec, Inc. | PCI bridge for optimized command delivery |
| US6182183B1 (en) | 1998-11-13 | 2001-01-30 | Sonics, Inc. | Communications system and method with multilevel connection identification |
| US6661795B1 (en) | 1998-11-30 | 2003-12-09 | Conexant Systems, Inc. | Method and apparatus for efficient signaling in an ATM environment |
| US6230261B1 (en) | 1998-12-02 | 2001-05-08 | I. P. First, L.L.C. | Method and apparatus for predicting conditional branch instruction outcome based on branch condition test type |
| US6230230B1 (en) | 1998-12-03 | 2001-05-08 | Sun Microsystems, Inc. | Elimination of traps and atomics in thread synchronization |
| US6212604B1 (en) | 1998-12-03 | 2001-04-03 | Sun Microsystems, Inc. | Shared instruction cache for multiple processors |
| GB2344665B (en) | 1998-12-08 | 2003-07-30 | Advanced Risc Mach Ltd | Cache memory |
| US6389449B1 (en) | 1998-12-16 | 2002-05-14 | Clearwater Networks, Inc. | Interstream control and communications for multi-streaming digital processors |
| SE9804529L (en) * | 1998-12-23 | 2000-06-24 | Axis Ab | Flexible memory channel |
| US6378124B1 (en) | 1999-02-22 | 2002-04-23 | International Business Machines Corporation | Debugger thread synchronization control points |
| 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 |
| US6256713B1 (en) | 1999-04-29 | 2001-07-03 | International Business Machines Corporation | Bus optimization with read/write coherence including ordering responsive to collisions |
| US6401149B1 (en) | 1999-05-05 | 2002-06-04 | Qlogic Corporation | Methods for context switching within a disk controller |
| US6351808B1 (en) | 1999-05-11 | 2002-02-26 | Sun Microsystems, Inc. | Vertically and horizontally threaded processor with multidimensional storage for storing thread data |
| US6457078B1 (en) | 1999-06-17 | 2002-09-24 | Advanced Micro Devices, Inc. | Multi-purpose bi-directional control bus for carrying tokens between initiator devices and target devices |
| US6490642B1 (en) | 1999-08-12 | 2002-12-03 | Mips Technologies, Inc. | Locked read/write on separate address/data bus using write barrier |
| US6430646B1 (en) | 1999-08-18 | 2002-08-06 | Ati International Srl | Method and apparatus for interfacing a processor with a bus |
| US6643726B1 (en) | 1999-08-18 | 2003-11-04 | Ati International Srl | Method of manufacture and apparatus of an integrated computing system |
| US6539439B1 (en) | 1999-08-18 | 2003-03-25 | Ati International Srl | Method and apparatus for interfacing a bus at an independent rate with input/output devices |
| EP1242103B1 (en) | 1999-08-27 | 2009-01-07 | CJ Cheiljedang Corp. | Extracts derived from pueraria mirifica and extraction thereof |
| US6427196B1 (en) | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
| US6606704B1 (en) | 1999-08-31 | 2003-08-12 | Intel Corporation | Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode |
| US6983350B1 (en) | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
| US6668317B1 (en) | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
| HK1046049A1 (en) | 1999-09-01 | 2002-12-20 | Intel Corporation | Branch instruction for multithreaded processor |
| WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
| WO2001016697A2 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Local register instruction for micro engine used in multithreadedparallel processor architecture |
| WO2001016703A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Instruction for multithreaded parallel processor |
| US6529999B1 (en) | 1999-10-27 | 2003-03-04 | Advanced Micro Devices, Inc. | Computer system implementing system and method for ordering write operations and maintaining memory coherency |
| US6523108B1 (en) | 1999-11-23 | 2003-02-18 | Sony Corporation | Method of and apparatus for extracting a string of bits from a binary bit string and depositing a string of bits onto a binary bit string |
| TW445730B (en) | 1999-11-30 | 2001-07-11 | Via Tech Inc | Output queuing scheme for forwarding packets in sequence |
| US6823399B2 (en) | 1999-12-06 | 2004-11-23 | Sony Corporation | Apparatus control method and transmission device |
| US6357016B1 (en) | 1999-12-09 | 2002-03-12 | Intel Corporation | Method and apparatus for disabling a clock signal within a multithreaded processor |
| US6496925B1 (en) | 1999-12-09 | 2002-12-17 | Intel Corporation | Method and apparatus for processing an event occurrence within a multithreaded processor |
| US6889319B1 (en) | 1999-12-09 | 2005-05-03 | Intel Corporation | Method and apparatus for entering and exiting multiple threads within a multithreaded processor |
| JP3546788B2 (en) * | 1999-12-20 | 2004-07-28 | 日本電気株式会社 | Memory control circuit |
| US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
| US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
| US6560667B1 (en) | 1999-12-28 | 2003-05-06 | Intel Corporation | Handling contiguous memory references in a multi-queue system |
| US6307789B1 (en) | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
| US6324624B1 (en) | 1999-12-28 | 2001-11-27 | Intel Corporation | Read lock miss control and queue management |
| US7051329B1 (en) | 1999-12-28 | 2006-05-23 | Intel Corporation | Method and apparatus for managing resources in a multithreaded processor |
| US6631430B1 (en) | 1999-12-28 | 2003-10-07 | Intel Corporation | Optimizations to receive packet status from fifo bus |
| US6625654B1 (en) | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
| US6463072B1 (en) | 1999-12-28 | 2002-10-08 | Intel Corporation | Method and apparatus for sharing access to a bus |
| US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
| US6584522B1 (en) | 1999-12-30 | 2003-06-24 | Intel Corporation | Communication between processors |
| US6631462B1 (en) | 2000-01-05 | 2003-10-07 | Intel Corporation | Memory shared between processing threads |
| US6480943B1 (en) * | 2000-04-29 | 2002-11-12 | Hewlett-Packard Company | Memory address interleaving and offset bits for cell interleaving of memory |
| US6278289B1 (en) | 2000-05-01 | 2001-08-21 | Xilinx, Inc. | Content-addressable memory implemented using programmable logic |
| 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 |
| US6654836B1 (en) | 2000-06-20 | 2003-11-25 | International Business Machines Corporation | Dual master device for improved utilization of a processor local bus |
| US6587905B1 (en) | 2000-06-29 | 2003-07-01 | International Business Machines Corporation | Dynamic data bus allocation |
| US6754662B1 (en) | 2000-08-01 | 2004-06-22 | Nortel Networks Limited | Method and apparatus for fast and consistent packet classification via efficient hash-caching |
| KR100716950B1 (en) | 2000-08-11 | 2007-05-10 | 삼성전자주식회사 | Bus system |
| US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
| US6629237B2 (en) | 2000-09-01 | 2003-09-30 | Intel Corporation | Solving parallel problems employing hardware multi-threading in a parallel processing environment |
| US20020053017A1 (en) | 2000-09-01 | 2002-05-02 | Adiletta Matthew J. | Register instructions for a multithreaded processor |
| US6625685B1 (en) * | 2000-09-20 | 2003-09-23 | Broadcom Corporation | Memory controller with programmable configuration |
| US6633938B1 (en) | 2000-10-06 | 2003-10-14 | Broadcom Corporation | Independent reset of arbiters and agents to allow for delayed agent reset |
| US6781992B1 (en) | 2000-11-30 | 2004-08-24 | Netrake Corporation | Queue engine for reassembling and reordering data packets in a network |
| US7020871B2 (en) | 2000-12-21 | 2006-03-28 | Intel Corporation | Breakpoint method for parallel hardware threads in multithreaded processor |
| US6671827B2 (en) | 2000-12-21 | 2003-12-30 | Intel Corporation | Journaling for parallel hardware threads in multithreaded processor |
| US6847645B1 (en) | 2001-02-22 | 2005-01-25 | Cisco Technology, Inc. | Method and apparatus for controlling packet header buffer wrap around in a forwarding engine of an intermediate network node |
| US6785843B1 (en) | 2001-02-23 | 2004-08-31 | Mcrae Andrew | Data plane restart without state change in a control plane of an intermediate network node |
| TW556077B (en) | 2001-06-05 | 2003-10-01 | Via Tech Inc | Controller for improving buffer management efficiency and the buffer management method |
| JP3489573B2 (en) * | 2001-07-11 | 2004-01-19 | 日本電気株式会社 | Packet processing device |
| US6668311B2 (en) | 2001-07-30 | 2003-12-23 | Intel Corporation | Method for memory allocation and management using push/pop apparatus |
| US7487505B2 (en) | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
| 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 |
| US6868476B2 (en) | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
| US20030065862A1 (en) | 2001-09-28 | 2003-04-03 | Wyland David C. | Computer system and method for communications between bus devices |
| US6934729B2 (en) * | 2001-10-18 | 2005-08-23 | International Business Machines Corporation | Method and system for performing shift operations |
| US6738831B2 (en) | 2001-12-12 | 2004-05-18 | Intel Corporation | Command ordering |
| US7028118B2 (en) * | 2001-12-12 | 2006-04-11 | Texas Instruments Incorporated | Multi-channel buffered serial port debugging |
| US6754795B2 (en) | 2001-12-21 | 2004-06-22 | Agere Systems Inc. | Methods and apparatus for forming linked list queue using chunk-based structure |
| US7610451B2 (en) | 2002-01-25 | 2009-10-27 | Intel Corporation | Data transfer mechanism using unidirectional pull bus and push bus |
| US7437724B2 (en) | 2002-04-03 | 2008-10-14 | Intel Corporation | Registers for data transfers |
| US7089379B1 (en) * | 2002-06-28 | 2006-08-08 | Emc Corporation | Large high bandwidth memory system |
| 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 |
-
2003
- 2003-01-10 US US10/340,220 patent/US6941438B2/en not_active Expired - Fee Related
-
2004
- 2004-01-02 KR KR1020057012816A patent/KR20050099967A/en not_active Ceased
- 2004-01-02 WO PCT/US2004/000084 patent/WO2004063929A2/en not_active Ceased
- 2004-01-02 EP EP04700076A patent/EP1627309A2/en not_active Withdrawn
- 2004-01-05 TW TW093100125A patent/TWI269162B/en not_active IP Right Cessation
- 2004-01-10 CN CNB2004100019466A patent/CN100380344C/en not_active Expired - Fee Related
- 2004-01-10 CN CNA2006101056993A patent/CN101042677A/en active Pending
-
2005
- 2005-04-22 US US11/112,047 patent/US7418571B2/en not_active Expired - Fee Related
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9256531B2 (en) | 2012-06-19 | 2016-02-09 | Samsung Electronics Co., Ltd. | Memory system and SoC including linear addresss remapping logic |
| US10817199B2 (en) | 2012-06-19 | 2020-10-27 | Samsung Electronics Co., Ltd. | Memory system and SoC including linear address remapping logic |
| US11169722B2 (en) | 2012-06-19 | 2021-11-09 | Samsung Electronics Co., Ltd. | Memory system and SoC including linear address remapping logic |
| US11573716B2 (en) | 2012-06-19 | 2023-02-07 | Samsung Electronics Co., Ltd. | Memory system and SoC including linear address remapping logic |
| US11681449B2 (en) | 2012-06-19 | 2023-06-20 | Samsung Electronics Co., Ltd. | Memory system and SoC including linear address remapping logic |
| US11704031B2 (en) | 2012-06-19 | 2023-07-18 | Samsung Electronics Co., Ltd. | Memory system and SOC including linear address remapping logic |
| US12001698B2 (en) | 2012-06-19 | 2024-06-04 | Samsung Electronics Co., Ltd. | Memory system and SoC including linear address remapping logic |
Also Published As
| Publication number | Publication date |
|---|---|
| US20040139290A1 (en) | 2004-07-15 |
| TWI269162B (en) | 2006-12-21 |
| CN1517880A (en) | 2004-08-04 |
| CN101042677A (en) | 2007-09-26 |
| TW200422828A (en) | 2004-11-01 |
| US6941438B2 (en) | 2005-09-06 |
| WO2004063929A3 (en) | 2006-03-23 |
| CN100380344C (en) | 2008-04-09 |
| US20050185437A1 (en) | 2005-08-25 |
| US7418571B2 (en) | 2008-08-26 |
| WO2004063929A2 (en) | 2004-07-29 |
| EP1627309A2 (en) | 2006-02-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR20050099967A (en) | Memory interleaving | |
| US10318434B2 (en) | Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application | |
| US6950107B1 (en) | System and method for reserving and managing memory spaces in a memory resource | |
| US4511964A (en) | Dynamic physical memory mapping and management of independent programming environments | |
| US7669033B2 (en) | Pretranslating input/output buffers in environments with multiple page sizes | |
| US9966152B2 (en) | Dedupe DRAM system algorithm architecture | |
| US6189069B1 (en) | Optimized logging of data elements to a data storage device | |
| US11675709B2 (en) | Reading sequential data from memory using a pivot table | |
| US10496543B2 (en) | Virtual bucket multiple hash tables for efficient memory in-line deduplication application | |
| CN114072777B (en) | Hardware-based memory compression | |
| US10678704B2 (en) | Method and apparatus for enabling larger memory capacity than physical memory size | |
| US10162554B2 (en) | System and method for controlling a programmable deduplication ratio for a memory system | |
| CN1607508B (en) | Systems and methods for adaptively reconstructing buffers | |
| CN114327245B (en) | Methods and apparatus for memory management | |
| US6983355B2 (en) | Virtualization of physical storage using size optimized hierarchical tables | |
| US20140040541A1 (en) | Method of managing dynamic memory reallocation and device performing the method | |
| US10528284B2 (en) | Method and apparatus for enabling larger memory capacity than physical memory size | |
| US6829690B1 (en) | Method and system for accessing spatially organized geographic data in blocks | |
| WO2024187629A1 (en) | Method and apparatus for vector instruction table filling and lookup in processor, and electronic device | |
| US12045475B1 (en) | Resizable scratchpad memory | |
| CN111190550B (en) | Metadata acceleration method and device and storage equipment | |
| US9355430B2 (en) | Techniques for interleaving surfaces | |
| US6933944B2 (en) | Dynamic computation of chipset-supported accelerated graphics port aperture sizes | |
| US6742077B1 (en) | System for accessing a memory comprising interleaved memory modules having different capacities | |
| US12008248B2 (en) | Systems, methods, and devices for utilization aware memory allocation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0105 | International application |
Patent event date: 20050708 Patent event code: PA01051R01D Comment text: International Patent Application |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20060523 Comment text: Request for Examination of Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20070914 Patent event code: PE09021S01D |
|
| E601 | Decision to refuse application | ||
| PE0601 | Decision on rejection of patent |
Patent event date: 20080327 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20070914 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |