KR100766666B1 - Multi-processor system - Google Patents
Multi-processor system Download PDFInfo
- Publication number
- KR100766666B1 KR100766666B1 KR1020057010950A KR20057010950A KR100766666B1 KR 100766666 B1 KR100766666 B1 KR 100766666B1 KR 1020057010950 A KR1020057010950 A KR 1020057010950A KR 20057010950 A KR20057010950 A KR 20057010950A KR 100766666 B1 KR100766666 B1 KR 100766666B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- processor
- update
- shared memory
- address
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
Abstract
공유 메모리에 데이터를 기입할 때의 데이터의 송신을, 각 프로세서와 공유 메모리의 사이에 설치된 고속의 전용 회선을 사용하여 행한다. 각 프로세서는, 공유 메모리의 공유 메모리 공간에 기입을 행하는 경우에는, 종래의 글로벌 버스에 대응하는 갱신 통지 버스에, 어느 하나의 어드레스에의 갱신을 할지를 통지한다. 이 통지를 검출한 다른 프로세서는, 공유 메모리 캐쉬 내의 그 어드레스에의 액세스를 금지하고, 해당 어드레스에의 기입 데이터가 전용 회선을 사용하여 송신되어 오는 것을 기다린다. 데이터가 송신되어 오면, 공유 메모리 캐쉬의 대응 어드레스에 데이터를 기입한다. 이 때, 공유 메모리의 대응하는 어드레스에도 해당 데이터가 기입되며, 캐쉬 코히어런시가 유지된다. 또한, 기입 어드레스를 송신하려면, 버스의 사용권 취득이 필요하지만, 데이터의 송신은 전용 회선을 사용하므로, 버스의 사용권 취득을 위한 시간이 크게 삭감된다.Data transmission when data is written to the shared memory is performed using a high-speed dedicated line provided between each processor and the shared memory. When writing to the shared memory space of the shared memory, each processor notifies the update notification bus corresponding to the conventional global bus to which address to update. The other processor detecting this notification prohibits access to the address in the shared memory cache and waits for data written to the address to be transmitted using the dedicated line. When data is transmitted, data is written to the corresponding address of the shared memory cache. At this time, the corresponding data is also written to the corresponding address of the shared memory, and cache coherency is maintained. In addition, in order to transmit the write address, it is necessary to acquire a license to use the bus. However, since data is transmitted using a dedicated line, the time for acquiring the license to use the bus is greatly reduced.
갱신 통지, 글로벌 버스, 공유 메모리 캐쉬, 캐쉬 코히어런시, 전용 회선 Update Notification, Global Bus, Shared Memory Cache, Cache Coherency, Private Line
Description
본 발명은 복수의 프로세서를 결합하고 이들 프로세서에 공유되는 공유 메모리 공간을 배치하는 공유 메모리형 멀티프로세서 시스템으로, 특히 공유 메모리 공간의 데이터를 캐쉬하는 공유 메모리 캐쉬가 구비된 프로세서에 의해 구성되는 시스템에 관한 것이다. 소프트웨어의 처리는 각 프로세서에 의해 분담되어 행해지고, 공유 메모리는 프로세서 사이에서 처리를 계속할 때의 데이터의 교환이나 프로세서 단체가 아니라, 시스템 단위로 관리하여야 할 정보를 저장하는 장소 등으로 사용된다. 공유 메모리 캐쉬는 공유 메모리에의 액세스를 고속화하여 시스템 성능을 향상하기 위해 도입된다.SUMMARY OF THE INVENTION The present invention is a shared memory type multiprocessor system that combines a plurality of processors and arranges a shared memory space shared by these processors, in particular a system configured by a processor having a shared memory cache for caching data in the shared memory space. It is about. The processing of the software is shared by each processor, and the shared memory is used as a place for storing information to be managed in units of systems, not as an exchange of data when the processing is continued between processors or a single processor. Shared memory caches are introduced to improve system performance by speeding up access to shared memory.
도 1은 가장 간단한 공유 메모리형 멀티프로세서 시스템의 종래예를 나타내는 도면이다. 1 is a diagram showing a conventional example of the simplest shared memory type multiprocessor system.
복수의 프로세서와 공유 메모리가 동일한 글로벌 버스에 의해 접속되고, 각 프로세서는 이 글로벌 버스를 경유하여 공유 메모리에 액세스한다. 각 프로세서(1a-1)∼(1a-n)는 아비터(1b)에 대하여 버스 요구 신호(1c-1)∼(1c-n)를 송출하고, 아비터에 의해 사용권이 조정되어, 동일 시간에 1개의 프로세서에만 글로벌 버스(1e)의 사용권이 주어지고, 그 프로세서에 대하여 버스 허가 신호(1d-1)∼(1d-n)가 송출된다. 버스 허가 신호를 받은 프로세서는 글로벌 버스를 경유하여 공유 메모리(1f)에 액세스하여 원하는 데이터의 수수를 행한다. A plurality of processors and shared memory are connected by the same global bus, and each processor accesses the shared memory via this global bus. Each of the
도 1의 실현 방식에서는, 공유 메모리 공간에의 액세스는 리드, 라이트의 종별을 막론하고, 모두가 글로벌 버스를 경유하게 된다. In the realization method of FIG. 1, all access to the shared memory space is via the global bus regardless of the type of read and write.
여기에 이하의 2개의 제약이 있다. There are two restrictions here.
제약 1: 신호 전송에 시간을 요한다(물리적 제약) Constraints 1: Time for signal transmission (physical constraints)
제약 2: 버스 사용권의 순서 대기 시간을 요한다(원리적 제약)Constraints 2: Require order wait time for bus licenses (principle constraints)
전자는, 글로벌 버스에 있어서 신호 전송 거리가 길어지는 것이나, 복수의 프로세서가 동일한 신호선을 공유하는 것 등의 전기적 조건에 의해, 고속인 신호 전송이 곤란해 진다는 것에 기인한다. 후자는, 2개 이상의 프로세서가 공유 메모리에 대하여 동일 시간에 액세스를 행한 경우, 2개째 이후의 프로세서가 글로벌 버스 사용권의 조정에 의해 공유 메모리에 대한 액세스를 기다리게 되는 시간이 발생하는 것에 기인한다. 결과적으로, 이들의 제약은 공유 메모리 공간에의 액세스에 이하의 문제를 발생시킨다. The former is due to the fact that the signal transmission distance becomes long in the global bus, and that high-speed signal transmission becomes difficult due to electrical conditions such as a plurality of processors sharing the same signal line. The latter is attributable to the fact that when two or more processors access the shared memory at the same time, the second and subsequent processors wait for access to the shared memory by adjusting the global bus usage rights. As a result, these restrictions cause the following problems in access to the shared memory space.
문제 1: 대역(시스템에 허용되는 시간 당의 액세스 횟수)의 부족 Issue 1: lack of bands (number of accesses per hour allowed to the system)
문제 2: 레이턴시(액세스 개시로부터 완료까지 걸리는 시간)의 과대 Problem 2: Excessive Latency (Time to Start to Complete)
도 2는 각 프로세서 상에 공유 메모리 캐쉬(2h)를 배치한 종래예를 나타내는 도면이다. Fig. 2 is a diagram showing a conventional example in which the shared
프로세서 코어(2g)가 공유 메모리 공간을 리드한 경우, 공유 메모리 캐쉬 상에 공유 메모리 공간의 데이터의 카피가 있으면, 리드 처리를 내부 버스(2i)를 통 하여 프로세서 상에서 완결할 수 있어, 상기한 제약 1을 경감할 수 있다. 또한, 글로벌 버스 경유의 액세스로 되지 않기 때문에, 글로벌 버스의 사용권 조정이 불필요해져, 상기한 제약 2로부터 해방된다. 이러한 점에서, 공유 메모리 캐쉬의 도입은 상기 문제에 대한 개선책이 된다. When the
공유 메모리 캐쉬의 도입에 의해 각 프로세서가 공유 메모리 공간의 데이터의 카피를 개별적으로 유지할 수 있게 되지만, 공유 메모리 공간 상의 데이터는 모든 프로세서에 있어서 동일하게 보이지 않으면 안된다. 따라서, 데이터 갱신의 계기가 되는 라이트 처리에 관해서는, 이를 보증하는 코히어런시 제어의 고려가 필수로 된다. 이유는 후술하지만, 이 코히어런시 제어도 상기 문제를 해결하는 데에 있어서의 장벽이 된다. The introduction of a shared memory cache allows each processor to maintain a copy of the data in the shared memory space individually, but the data on the shared memory space must look the same for all processors. Therefore, regarding the write processing which is the trigger for data update, consideration of coherency control that guarantees this is essential. Although the reason is mentioned later, this coherency control also becomes a barrier in solving the said problem.
여기서, 코히어런시 제어 상의 요건을 이하의 3가지로 세분한다. Here, the requirements on coherency control are subdivided into the following three.
요건 1: 시간적인 동기 Requirement 1: Time Motivation
요건 2: 공간적인 동기 Requirement 2: spatial motivation
요건 3: 갱신 시간의 단축 Requirement 3: Reduction of renewal time
도 3은 코히어런시 제어에 대하여 설명하는 도면이다. It is a figure explaining coherence control.
도 3은 상기의 요건의 의미를 설명하는 것으로, 공유 메모리 공간 상의 임의의 어드레스의 데이터가 값 0이었을 때, 그 어드레스에 프로세서 1이 값 1을 라이트하고, 그 후 프로세서 2가 값 2를 라이트하고, 다른 프로세서 3∼n이 해당 어드레스를 리드한 경우를 상정한 것이다. 여기서, 요건 1은 개개의 프로세서 상에서, 예를 들면 값 2→값 1의 순으로 리드하는 가능성을 배제하는 것에 상당하고(t1≥0의 보증), 또한 요건 2는, 예를 들면 이미 값 1을 리드한 프로세서가 있는데도, 그 후에 값 0을 리드하는 프로세서가 발생할 가능성을 배제하는 것에 상당한다(t2≥O의 보증). 또한, 요건 3은 데이터 갱신이 있은 시점으로부터, 다른 프로세서가 여전히 갱신 전의 데이터를 리드하는 시간과, 갱신 후의 데이터를 판독할 수 있게 되기까지의 시간을, 모두 가능한 한 짧게 하는 것에 상당한다(t2 및 t3의 최소화). 요건 3은 코히어런시 제어 상의 필수 요건은 아니지만, 시스템 성능을 향상하기 위해 필요하게 된다.3 illustrates the meaning of the above requirement, when data at any address on the shared memory space had a value of 0,
도 2에 있어서의 코히어런시 제어의 예로는, 공유 메모리 공간에 대한 프로세서의 라이트 처리마다, 그것을 자신의 공유 메모리 캐쉬에 반영함과 동시에 글로벌 버스를 경유하여 공유 메모리에 라이트하고, 한편 다른 프로세서는 글로벌 버스에 나타나는 라이트 액세스를 감시하여, 해당 어드레스의 데이터가 각각의 공유 메모리 캐쉬 상에 있는 경우, 그 데이터를 글로벌 버스 상의 데이터로 치환하는 방법을 들 수 있다. In the example of coherency control in FIG. 2, each write process of a processor to a shared memory space is reflected in its shared memory cache and written to the shared memory via the global bus, while another processor May monitor a write access appearing on the global bus and replace the data with data on the global bus when the data of the corresponding address is on each shared memory cache.
도 4는 캐쉬 코히어런시의 확립의 방법의 예를 설명하는 도면이다. 4 is a diagram for explaining an example of a method of establishing cache coherency.
도 4는 상기 방법에 기초한 처리 시퀀스의 예이다. 도면에서, (4a)∼(4f)의 타이밍은 각각 이하의 사상에 대응한다. 4 is an example of a processing sequence based on the above method. In the drawings, the timings of (4a) to (4f) correspond to the following ideas, respectively.
(4a): 프로세서 코어가 라이트 액세스를 기동(4a): processor core activates write access
(4b): 라이트 액세스 기동에 의해 글로벌 버스 요구를 송출(4b): Send global bus request by write access start
(4c): 버스 사용 허가를 받아, 글로벌 버스에 어드레스를 데이터 출력(4c): Bus use permission, address is output to the global bus
(4d): 다른 프로세서/공유 메모리가 글로벌 버스의 정보를 수신하여, 자신의 공유 메모리 혹은 공유 메모리 캐쉬에 라이트(4d): Another processor / shared memory receives information from the global bus and writes to its shared memory or shared memory cache
(4e): 메모리 라이트 완료(4e): complete memory write
(4f): 라이트 액세스를 기동한 프로세서가 버스 개방(4f): The processor that initiated write access opens the bus
이 예에서는, 코히어런시 보증에 필요한 조건은 이하의 식으로 표시된다. In this example, the conditions necessary for the coherence guarantee are expressed by the following equation.
여기서,here,
trc: 글로벌 버스에의 라이트 발행으로부터 버스 개방까지의 시간 t rc: Time from issuance of light to global bus to bus opening
tdsd: 글로벌 버스에의 라이트 발행을 다른 프로세서가 인식하는 데 필요한 시간 t dsd: the time required for other processors to recognize the write to the global bus
tdmw: 프로세서/공유 메모리가 글로벌 버스 상의 라이트 액세스를 인식하고 나서, 그 데이터를 자신에게 반영시키는 데 걸리는 시간t dmw: The time it takes for the processor / shared memory to recognize write access on the global bus and then reflect that data to itself
이다.to be.
여기서, 수학식 1은 상기한 요건 1을 만족하기 위한 조건으로, 라이트값이 공유 메모리 및 모든 프로세서 상의 공유 메모리 캐쉬에 반영된 후에 글로벌 버스를 개방하는 것을 보증하는 것이다(일반적으로는 라이트 처리의 완료 응답을 피 라이트측으로부터 송출하고, 그 수신으로써 버스 개방을 행하는 시퀀스가 채용되는 경우가 많다). 그 조건을 충족시킴으로써, 글로벌 버스의 사용권 조정에 의해 다음의 프로세서가 라이트 처리를 개시할 때에는 전의 라이트 처리가 완료되었음이 보증된다. 말하자면, 글로벌 버스가 갖는 결점에 의해 코히어런시 제어의 요건이 충족되어 있는 모습이지만, 실제로는 상기한 요건 1은 데이터 갱신의 조정을 요하는 것과 본질적으로 차이가 없다. 데이터 갱신의 순서 매김을 보증하는 것은, 복수의 데이터 갱신이 동시에 발생하지 않는 것을 보증하는 것, 즉 조정을 행하는 것과 등가이기 때문이다. 따라서, 상기한 코히어런시 제어의 요건 1을 충족시키는 것은, 글로벌 버스를 사용하는 데에 있어서 생기는 상기한 제약 2를 동일하게 받아, 상기 문제를 해결하는 데에 있어서의 장벽이 된다. Here,
한편, 수학식 2는 도 4의 (4d)의 타이밍이 각 프로세서에서 변동이 있는 것을 흡수하여, 상기한 요건 2를 충족시키기 위한 조건이다. (4d)의 타이밍은, 글로벌 버스에 나타난 라이트 액세스와 경합하는 리드 액세스가 각 프로세서 상에서 기동되었을 때에, 갱신 전의 데이터가 프로세서 코어로 되돌려지는지, 갱신 후의 데이터가 되돌려지는지의 경계가 되는 타이밍이다. 갱신 후의 데이터가 반송되는 것은 (4e)의 타이밍이기 때문에, 수학식 2를 충족하지 않으면, 이 타이밍이 프로세서에 따라서는 역전되어, 상기한 요건에 반하게 된다.On the other hand,
여기서, 예를 들면 수학식 1은 버스 점유 시간을 일정 이상으로 해야만 하는 것, 즉 공유 메모리 공간의 대역에 대한 제약을 부여하는 것을 나타내고 있고, 수학식 2는 공유 메모리 캐쉬나 공유 메모리에 대한 기입 시간을 짧게 하여 대역을 늘리려고 하여도, 프로세서 사이에서 (4d)의 타이밍이 변동되는 것을 고려하여, 일정 이상의 시간으로 유지하지 않으면 안 되는 것을 나타내고 있다. 이들 예대로, 각종의 동작 타이밍에 조건이 덧붙여지기 때문에, 처리 시간의 단축을 도모하여 성능 향상을 도모하고자 하는 경우에, 코히어런시 제어 자체가 일종의 제약을 낳게 된다. Here, for example,
종래의 캐쉬 사이의 코히어런시를 취하는 기술로서 특허 문헌 1이 있다. 특허 문헌 1에서는 프로세서 모듈은 캐쉬 메모리를 갖고 다른 프로세서 모듈에 버스를 통하여 코히어런시 트랜잭션을 발행한다. 코히어런시 트랜잭션을 수신한 프로세서 모듈은 코히어런시 검사를 실행한다. 코히어런시를 유지하기 위해 갱신을 행하는 경우, 갱신에 사용될 데이터는 버스를 통하여 보내진다. 프로세서 모듈과 메인 메모리를 연결하는 신호선은 코히어런시 검사의 결과의 통지에 사용된다.
[특허 문헌 1] 일본 특허공개 평7-281956호 공보 [Patent Document 1] Japanese Patent Application Laid-Open No. 7-281956
<발명의 개시><Start of invention>
본 발명의 과제는, 이상 설명한 바와 같은 코히어런시 제어를 포함하는 상기 각종 제약에 의한 성능 저하 요인의 최소화를 도모하면서, 상기 과제를 해결하여 공유 메모리 공간의 대역과 레이턴시의 향상을 도모한 멀티프로세서 시스템을 제공하는 것이다.Disclosure of Invention An object of the present invention is to solve the above problem by minimizing the performance deterioration factor caused by the various constraints including coherency control as described above, and to improve the bandwidth and latency of the shared memory space. It is to provide a processor system.
본 발명의 멀티프로세서 시스템은, 각각이 공유 메모리 캐쉬를 구비하는 복 수의 프로세서와 적어도 1개의 공유 메모리가 서로 결합된 멀티프로세서 시스템에 있어서, 공유 메모리 영역의 데이터의 갱신에 있어서, 갱신에 이용할 데이터를 프로세서와 공유 메모리 사이에서 전용으로 송수신하는 전용 회선 수단과, 데이터의 갱신 통지를, 각 프로세서에 상기 갱신 통지를 송신하는 권리를 조정하면서, 전송하는 글로벌 버스 수단을 구비하고, 프로세서로부터의 상기 데이터의 갱신 통지의 송신과 갱신에 이용할 데이터의 송신을 독립적으로 행하고, 각 프로세서 및 공유 메모리에서는, 갱신 통지의 수신에 의해서, 상기 갱신 통지에 의해서 나타나는 어드레스에의 액세스를 제한하고, 각 프로세서 및 공유 메모리에 도착한 갱신에 이용할 데이터에 의해서, 공유 메모리 영역의 상기 어드레스의 데이터가 갱신된 후, 상기 어드레스에의 액세스를 허가하는 것을 특징으로 한다.The multiprocessor system of the present invention is a multiprocessor system in which a plurality of processors each having a shared memory cache and at least one shared memory are combined with each other, wherein data to be used for updating is performed in updating data in a shared memory area. A dedicated line means for exclusively transmitting and receiving the data between the processor and the shared memory, and a global bus means for transmitting data update notification while adjusting the right to transmit the update notification to each processor, wherein the data from the processor is provided. Each processor and the shared memory independently transmit the update notification and the data to be used for the update, and by receiving the update notification, access to the address indicated by the update notification is restricted, and each processor and the shared memory. By data to use for update that arrived at After the data of the address of the shared memory area is updated, access to the address is permitted.
본 발명에 따르면, 갱신 데이터를 송수신하는 전용 회선 수단을 설치함으로써, 갱신 데이터의 송수신이 고속화된다. 또한, 글로벌 버스 수단으로는, 데이터량이 적은 갱신 통지만을 조정하여 전송하면 되기 때문에, 버스의 사용권의 획득을 위해 장시간 기다리는 일이 적어진다. 또한, 갱신 통지에 따라서, 갱신 데이터에 의한 공유 메모리 영역의 갱신을 각 프로세서 및 공유 메모리가 하기 때문에, 공유 메모리 캐쉬와 공유 메모리와의 코히어런시가 확보된다. According to the present invention, by providing a dedicated line means for transmitting and receiving update data, transmission and reception of update data is speeded up. In addition, since the global bus means only needs to adjust and transmit the update notification with a small amount of data, it is less likely to wait for a long time to obtain a bus usage right. Further, in accordance with the update notification, each processor and the shared memory update the shared memory area by the update data, thereby ensuring coherence between the shared memory cache and the shared memory.
도 1은 가장 간단한 공유 메모리형 멀티프로세서 시스템의 종래예를 나타내는 도면. 1 illustrates a conventional example of the simplest shared memory type multiprocessor system.
도 2는 각 프로세서 상에 공유 메모리 캐쉬(2h)를 배치한 종래예를 나타내는 도면. Fig. 2 is a diagram showing a conventional example in which a shared
도 3은 코히어런시 제어에 대하여 설명하는 도면. 3 is a diagram for explaining coherency control.
도 4는 캐쉬 코히어런시의 확립 방법의 예를 설명하는 도면. 4 is a view for explaining an example of a method of establishing cache coherency.
도 5는 본 발명의 실시 형태에 기초한 시스템의 구성도. 5 is a configuration diagram of a system based on an embodiment of the present invention.
도 6은 본 발명의 실시 형태에서의 제1 양태의 일련의 처리에 기초한 타임차트의 예. 6 is an example of a time chart based on a series of processes of the first aspect in the embodiment of the present invention.
도 7은 본 발명의 실시 형태의 제2 양태에 기초한 처리의 타임 차트의 예. 7 is an example of a time chart of processing based on the second aspect of the embodiment of the present invention.
도 8은 서로 다른 데이터 사이즈로 데이터 갱신을 행한 경우의 타임 차트의 예. 8 is an example of a time chart when data is updated with different data sizes.
도 9는 본 발명의 실시 형태의 제3 양태에 기초한 처리의 타임 차트의 예. 9 is an example of a time chart of processing based on the third aspect of the embodiment of the present invention.
도 10은 본 발명의 실시 형태의 제4 양태의 원리에 기초한 타임 차트의 예.10 is an example of a time chart based on the principle of the fourth aspect of an embodiment of the present invention.
도 11 및 도 12는 본 발명의 실시 형태의 제5 양태에서의 시스템의 구성도와 그 제어 원리를 나타내는 타임 차트. 11 and 12 are time charts showing the configuration diagram of the system in the fifth aspect of the embodiment of the present invention and its control principle.
도 13은 본 발명의 실시 형태의 제6 양태를 설명하는 도면. 13 is a view for explaining a sixth aspect of an embodiment of the present invention.
도 14는 본 발명의 실시 형태에 기초한 보다 구체적인 시스템 구성도. 14 is a more detailed system block diagram based on the embodiment of the present invention.
도 15는 도 14의 각 프로세서(14a-1)∼(14a-10)의 내부 구성도. Fig. 15 is a diagram showing the internal configuration of each of the
도 16은 본 발명의 실시 형태에서의 제1 양태의 라이트 액세스 시의 신호의 흐름을 나타내는 도면. Fig. 16 is a diagram showing the flow of signals during write access in the first aspect in the embodiment of the present invention.
도 17은 본 발명의 실시 형태의 제1 양태에 기초한 갱신 데이터 수신 시의 신호의 흐름을 나타내는 도면. Fig. 17 is a diagram showing a signal flow at the time of receiving update data based on the first aspect of the embodiment of the present invention.
도 18은 본 발명의 실시 형태의 제1 양태에서, 공유 메모리 캐쉬의 데이터를 이용할 수 있는 전형적인 리드 액세스 시의 신호의 흐름을 나타내는 도면. FIG. 18 is a diagram illustrating a signal flow during typical read access in which data in the shared memory cache can be used in the first aspect of the embodiment of the present invention. FIG.
도 19는 본 발명의 실시 형태의 제1 양태에서의 리드 액세스에서, 공유 메모리 캐쉬 상의 데이터를 이용할 수 없고, 갱신 데이터 요구 처리를 수반하는 경우의 신호의 흐름을 나타내는 도면. Fig. 19 is a diagram showing a signal flow when data on a shared memory cache cannot be used in read access in the first aspect of the embodiment of the present invention and involves update data request processing.
도 20은 본 발명의 실시 형태의 제1 양태에서, 다른 프로세서로부터 송신된 갱신 데이터 요구에 대한, 마스터 프로세서에 의한 응답 시의 신호의 흐름을 나타내는 도면. 20 is a diagram showing the flow of signals in response by the master processor to an update data request transmitted from another processor in the first aspect of the embodiment of the present invention;
도 21은 본 발명의 실시 형태의 제2 양태에서의 라이트 액세스 시의 신호의 흐름을 나타내는 도면. Fig. 21 is a diagram showing the flow of signals during write access in the second aspect of the embodiment of the present invention.
도 22는 본 발명의 실시 형태의 제2 양태에서, 다른 프로세서로부터 송출된 갱신 데이터 수신 시의 신호의 흐름을 나타내는 도면. Fig. 22 is a diagram showing a signal flow when receiving update data sent from another processor in the second aspect of the embodiment of the present invention.
도 23은 본 발명의 실시 형태의 제3 양태에서의 갱신 통지를 생략한 라이트 액세스 시의 신호의 흐름을 나타내는 도면. Fig. 23 is a diagram showing a signal flow during write access in which update notification is omitted in the third aspect of the embodiment of the present invention.
도 24는 본 발명의 실시 형태의 제3 양태에서, 다른 프로세서로부터 송출된 갱신 통지를 생략한 갱신 데이터 수신 시의 신호의 흐름을 나타내는 도면. Fig. 24 is a diagram showing a signal flow at the time of receiving update data in which the update notification sent from another processor is omitted in the third aspect of the embodiment of the present invention.
도 25는 본 발명의 실시 형태의 제2 양태에서의 캐쉬필 동작에 있어서, 시스템에 증설된 프로세서가 전체 데이터 송신 요구를 행할 때의 신호의 흐름을 나타내는 도면. Fig. 25 is a diagram showing the flow of signals when a processor added to the system makes an entire data transmission request in the cache fill operation in the second aspect of the embodiment of the present invention.
도 26은 본 발명의 실시 형태의 제4 양태에서의 캐쉬필 동작에 있어서, 마스 터 프로세서가 전체 데이터 송신 요구에 응답하여 전체 데이터 송신을 행할 때의 신호의 흐름을 나타내는 도면. Fig. 26 is a diagram showing a signal flow when a master processor performs full data transmission in response to a full data transmission request in the cache fill operation in the fourth aspect of the embodiment of the present invention.
도 27은 본 발명의 실시 형태의 제4 양태에서의 캐쉬필 동작에 있어서, 시스템에 증설된 프로세서가 전체 데이터 수신을 행할 때의 신호의 흐름을 나타내는 도면. Fig. 27 is a diagram showing a signal flow when a processor expanded in a system performs full data reception in the cache fill operation in the fourth aspect of the embodiment of the present invention.
도 28은 본 발명의 실시 형태의 제5 양태에 기초한 라이트 액세스 시의 신호의 흐름을 나타내는 도면. Fig. 28 is a diagram showing a signal flow at the time of light access based on the fifth aspect of the embodiment of the present invention.
<발명을 실시하기 위한 최량의 형태><Best Mode for Carrying Out the Invention>
도 5는 본 발명의 실시 형태에 기초한 시스템의 구성도이다. 5 is a configuration diagram of a system based on the embodiment of the present invention.
본 발명의 실시 형태의 제1 양태에서의 본 발명의 원리를 이하에 기재한다. 도 5에서, 종래예의 글로벌 버스에 상당하는 부분은, 갱신 통지 버스(5e)로서, 데이터 갱신의 통지와, 갱신 데이터의 송출 요구를 전적으로 행하는 버스로서 이용된다. 갱신 데이터의 내용은 데이터 채널(5g)을 사용하여 리피터(5h)와의 사이에서 송수신된다. 데이터 채널은 고속 광대역의 기지의 전송 수단(예를 들면, 기가 비트 이더넷 등)을 이용하는 것을 상정한다. 리피터(5h)는 데이터 채널이 접속된 각 포트에 나타난 데이터를, 모든 포트에 동보(同報)하는 기능을 갖는다. 또한, 프로세서의 수가 적어 현실적인 데이터 채널 수로 되는 경우에는, 리피터를 설치하지 않고서 모든 프로세서와 공유 메모리의 사이에 일 대 일로 데이터 채널을 설치하여, 각 프로세서 상에서 동보하는 처리를 행하여도 된다. 또한, 공유 메모리는 특 정한 프로세서 상에 배치하여도 되고, 일본 특허출원 제2002-126212호 공보에 있는 예와 같이, 각 프로세서가 공유 메모리 공간의 사이즈와 동일한 공유 메모리 캐쉬를 구비하는 경우에는, 공유 메모리 자체를 설치하지 않아도 된다. 어느 경우든 본 발명의 실시 형태로서의 효과를 얻을 수 있다. The principle of this invention in the 1st aspect of embodiment of this invention is described below. In Fig. 5, the portion corresponding to the global bus of the conventional example is used as the update notification bus 5e as a bus that makes a notification of data update and a request for sending update data. The content of the update data is transmitted and received between the
각 프로세서는, 프로세서 코어에 의해 공유 메모리 공간에의 라이트 처리가 발행되면, 갱신 통지 버스를 획득하여 갱신 대상의 어드레스를 갱신 통지 버스에 송출한다. 그와 동시에, 데이터 채널의 송신 버퍼에 갱신 데이터를 투입한다. 갱신 데이터는, 주로 각 프로세서와 리피터의 포트부에서의 신호 처리 지연을 받아, 갱신 통지에 대하여 지연되어 다른 프로세서에 도달한다. When the processor core issues a write process to the shared memory space, each processor acquires an update notification bus and sends an update target address to the update notification bus. At the same time, update data is input to the transmission buffer of the data channel. The update data mainly receives signal processing delays at ports of the processors and repeaters, and delays the update notification to reach other processors.
한편, 갱신 통지 버스는 모든 프로세서가 항상 감시하고 있으며, 갱신 통지를 검지하면, 해당 어드레스를 프로세서 상의 갱신 큐에 기입한다. 그 후 갱신 데이터가 도착하면, 그것을 공유 메모리 캐쉬에 라이트하고, 갱신 큐로부터 해당 어드레스를 소거한다. 또한, 갱신 큐 상에 존재하는 어드레스에 대하여 프로세서 코어로부터의 리드 처리가 기동된 경우, 공유 메모리 캐쉬로부터의 리드를 보류하고, 갱신 데이터 도착 시에 공유 메모리 캐쉬에의 라이트 처리에 맞추어 그 데이터를 프로세서 코어에 반송하는 처리를 행한다. 여기서, 갱신 큐에 저장되어 있는 어드레스는, 모두 모든 어드레스가 감시 대상으로 되어 있고, 갱신 데이터에는, 라이트 목적지의 어드레스가 부가되어 있다. 따라서, 각 프로세서에서는, 갱신 큐 내의 어드레스와 갱신 데이터에 부가되어 있는 어드레스를 비교하여, 공유 메모리 캐쉬의 적절한 어드레스에 갱신 데이터를 기입할 수 있다. 또한, 공유 메모리의 구성 은, 프로세서의 구성과 기본적으로 동일하지만, 공유 메모리에는, 프로세서 코어가 존재하지 않고, 공유 메모리 캐쉬가 보다 용량이 큰 공유 메모리 칩으로 되어 있다. On the other hand, the update notification bus is always monitored by all processors. When an update notification is detected, the update notification bus writes the corresponding address to the update queue on the processor. After that, when update data arrives, it is written to the shared memory cache and the corresponding address is erased from the update queue. When the read processing from the processor core is activated for an address existing on the update queue, the read from the shared memory cache is suspended, and the data is processed in accordance with the write processing to the shared memory cache when the update data arrives. The process of conveying to a core is performed. Here, all addresses are to be monitored for the addresses stored in the update queue, and the address of the write destination is added to the update data. Therefore, each processor can compare the address in the update queue with the address added to the update data, and write the update data to the appropriate address of the shared memory cache. In addition, although the configuration of the shared memory is basically the same as that of the processor, there is no processor core in the shared memory and the shared memory chip has a larger shared memory cache.
공유 메모리 캐쉬 상에 유효 데이터가 존재하지 않는 경우, 즉 캐쉬 미스 시의 리드 액세스는, 갱신 통지 버스에 갱신 데이터 송출 요구를 발행하고, 공유 메모리 또는 다른 유효한 데이터를 공유 메모리 캐쉬 상에 유지하는 프로세서가 갱신 데이터를 송출함으로써 행한다. If there is no valid data on the shared memory cache, i.e. read access at the time of a cache miss, the processor that issues a request to send an update data to the update notification bus and maintains the shared memory or other valid data on the shared memory cache This is done by sending update data.
도 6은 본 발명의 실시 형태에서의 제1 양태의 일련의 처리에 기초하는 타임 차트의 예이다.6 is an example of a time chart based on a series of processes of the first aspect in the embodiment of the present invention.
본 예는 프로세서 1이 어드레스 1에 데이터 1을, 그것에 계속해서 프로세서 2가 어드레스 2에 데이터 2를 라이트하고 있고, 그와 평행하게 프로세서 3이 어드레스 1, 어드레스 0, 어드레스 1의 순으로 공유 메모리 공간을 리드한 경우이다. 또한, 공유 메모리 공간 상의 데이터 초기값은 모두 0으로 한다. 또한, 도 6에서, A는 어드레스, D는 데이터를 의미하며, 또한, (1)←0 등의 표기는 어드레스 1에의 데이터 0의 라이트, 1←(0) 등의 표기는 어드레스 0으로부터의 데이터 1의 리드를 각각 의미한다. In this example,
프로세서 3의 1회째의 리드시에는 갱신 큐는 비어 있기 때문에, 공유 메모리 캐쉬로부터 리드가 행해지고, 데이터 0이 프로세서 코어에 반송된다. 계속해서, 프로세서 1로부터의 갱신 통지를 검지하고, 그것이 프로세서 3의 갱신 큐에 투입된다. 프로세서 3의 2회째의 리드시에는, 갱신 큐는 비어 있지 않지만, 갱신 큐 상 에 있는 것은 어드레스 1만으로, 리드 어드레스와 일치하는 것이 존재하지 않아, 1회째의 리드와 마찬가지의 처리로 데이터 0이 프로세서 코어에 반송된다. 3회째의 리드에서는, 갱신 큐 상에 리드 어드레스와 일치하는 것이 있기 때문에, 공유 메모리 캐쉬의 리드는 기동되지 않고 리드 액세스는 유지된다. 그 후, 프로세서 1로부터 어드레스 1의 갱신 데이터가 도착하면, 프로세서 3의 공유 메모리 캐쉬에 데이터 1이 라이트되어 갱신 큐가 클리어되고, 동시에 그 데이터가 어드레스 1의 리드 데이터로서 프로세서 코어에 반송된다. In the first read of the
본 방식의 주된 이점은 다음의 2가지이다. 하나는, 데이터 갱신을 행하는 측의 프로세서에 있어서, 다른 프로세서의 공유 메모리 캐쉬에의 반영을 대기하지 않아도 되기 때문에, 버스 점유 시간을 삭감할 수 있고, 공유 메모리 공간의 대역의 향상을 도모할 수 있는 것이다. 또 하나는, 데이터 갱신 처리와 경합하지 않는 리드 액세스의 불필요한 대기 시간을 배제함으로써, 리드 액세스의 평균 레이턴시를 저감할 수 있는 것이다. 이 중, 후자의 종래예에 대한 개선 정도는, 공유 메모리 캐쉬의 히트율과 액세스 경합의 발생 확률에 따라 변화하는데, 특히 히트율이 높고 경합 발생 확률이 낮을수록, 본 방식의 우위성은 현저해진다. The main advantages of this method are the following two. One is that the processor on the side of updating data does not have to wait for the other processor to reflect the shared memory cache, so that the bus occupancy time can be reduced, and the bandwidth of the shared memory space can be improved. will be. In addition, the average latency of read access can be reduced by eliminating unnecessary waiting time of read access that is not in conflict with the data update process. Of these, the degree of improvement of the latter conventional example varies depending on the hit ratio of the shared memory cache and the probability of occurrence of access contention. In particular, the higher the hit rate and the lower the probability of contention occurrence, the more prominent the advantage of the present scheme is.
본 발명의 실시 형태의 제1 양태에서의 원리는, 제1 양태에서의 데이터 갱신의 단위를 블록화함으로써, 공유 메모리 공간의 대역을 더욱 확대하고자 하는 것이다. 통상 생각할 수 있는 실장으로는, 데이터 채널이나 공유 메모리 캐쉬의 대역은, 갱신 통지 버스의 그것에 비해 훨씬 크게 할 수 있다. 따라서, 공유 메모리 공간의 대역으로는, 갱신 통지 버스의 대역에 의해 제한되고, 데이터 채널이나 공 유 메모리 캐쉬의 대역을 다 활용할 수 없을 가능성이 생긴다. 우선, 이를 해결하고자 하는 것이다. The principle in the first aspect of the embodiment of the present invention is to further expand the bandwidth of the shared memory space by blocking the unit of data update in the first aspect. As a general conceivable implementation, the bandwidth of the data channel and shared memory cache can be much larger than that of the update notification bus. Therefore, the band of the shared memory space is limited by the band of the update notification bus, and there is a possibility that the band of the data channel and the shared memory cache cannot be used up. First of all, this is to be solved.
도 7은 본 발명의 실시 형태의 제2 양태에 기초한 처리의 타임 차트의 예이다. 7 is an example of a time chart of processing based on the second aspect of the embodiment of the present invention.
도 7에서는, 데이터 갱신을 4 어드레스 단위로 한 것이다. 프로세서 1 및 2가 송출하는 갱신 통지는 갱신 대상 어드레스의 선두를 나타냄으로써 행해지고, 대응하는 어드레스의 갱신 데이터는 데이터 채널 상에 하나로 합쳐져 송출된다. In FIG. 7, data update is performed in units of four addresses. The update notifications sent by the
데이터 길이가 고정된 채로는, 소프트웨어의 처리상 불필요한 데이터까지 조로 하여 데이터 갱신을 행하지 않으면 안 되는 케이스가 발생하기 때문에, 데이터 채널이나 공유 메모리 캐쉬의 대역을 낭비하여, 실효 대역을 저하시킬 가능성이 발생한다. 그 때문에, 갱신 데이터 사이즈를 가변으로 하여 필요 충분한 데이터만이 데이터 채널에 송출되도록 구성한다. With the fixed data length, there is a case that data must be updated by tightening even data that is unnecessary for software processing. Therefore, the bandwidth of the data channel and the shared memory cache may be wasted and the effective band may be lowered. do. Therefore, the update data size is made variable so that only necessary data is sent out to the data channel.
도 8은 서로 다른 데이터 사이즈로 데이터 갱신을 행한 경우의 타임 차트의 예이다. 8 is an example of a time chart when data is updated with different data sizes.
도 8에서는, 도 7의 예에서 프로세서 1의 첫회의 라이트가 갱신 사이즈 2로 되어 있는 점만 서로 다르다. 이 차이에 의해, 전체적으로 2 어드레스분의 데이터교환에 요하는 시간만큼, 데이터 채널 및 공유 메모리 캐쉬의 점유 시간이 감소한다. 또한, 그 시간만큼 프로세서 2의 라이트 처리에 대응하는 갱신 데이터의 도착이 빨라져, 갱신 큐의 내용이 클리어되기까지의 시간이 짧아지기 때문에, 이 원리에 의해 액세스 경합 시의 레이턴시도 저감할 수 있다. In FIG. 8, only the first write of the
또한, 제2 양태에서의 방식은 대역의 향상만이 아니라, 공유 메모리 공간 상에 블록 단위에서의 배타적 갱신을 제공하는 수단으로도 된다. 이러한 점에 의해 소프트웨어 처리를 효율화하여, 시스템의 처리 능력을 향상하는 것도 기대할 수 있다. 동등한 것을 소프트웨어로 실현하기 위해서는, 갱신 개시와 완료를 관리하기 위해 여분의 처리가 필요해지기 때문이다. In addition, the scheme in the second aspect may be not only an improvement of the band but also a means for providing an exclusive update in units of blocks on the shared memory space. In this regard, it is also possible to make the software processing more efficient and to improve the processing capability of the system. This is because in order to realize the equivalent in software, extra processing is required to manage update start and completion.
본 발명의 실시 형태의 제3 양태에서의 원리는, 프로세서가 코히어런시 제어 필요 여부의 속성을 라이트 액세스마다 선택할 수 있게 하여, 코히어런시 제어 불필요의 속성이 지정된 라이트 액세스에 대하여 갱신 통지를 발행하지 않고, 갱신 데이터만을 다른 프로세서에 송출하는 제어를 행하는 것이다. 소프트웨어의 처리 내용에 따라서는, 코히어런시 보증이 불필요한 공유 메모리 공간의 용도도 있기 때문에, 그와 같은 처리에 대하여, 이 제어를 소프트웨어가 이용하여, 갱신 통지 버스의 사용 빈도를 삭감하여 공유 메모리 공간의 대역을 향상함과 함께, 갱신 데이터가 다른 프로세서에 반영되는 시간을 단축하고, 또한 불필요한 액세스 경합의 발생에 의한 레이턴시 증가를 필요 최소한으로 억제하여 리드 액세스의 평균 레이턴시의 삭감을 도모하고자 하는 것이다. The principle in the third aspect of the embodiment of the present invention is that the processor can select, for each write access, an attribute of whether coherency control is required, so that an update notification is given for a write access for which an attribute of no coherency control is specified. The control is performed to send only the update data to another processor without issuing the. Depending on the contents of the software process, there is also the use of the shared memory space where no coherency guarantee is required. Therefore, the software uses this control for such a process to reduce the frequency of use of the update notification bus, thereby reducing the shared memory. In addition to improving the bandwidth of the space, it is possible to reduce the time required for update data to be reflected to other processors, and to reduce the average latency of read access by minimizing the increase in latency caused by unnecessary access contention. .
도 9는 본 발명의 실시 형태의 제3 양태에 기초한 처리의 타임 차트의 예이다. 9 is an example of a time chart of processing based on the third aspect of the embodiment of the present invention.
이 예에서의 프로세서의 액세스 패턴은 도 6의 예에 준하고 있고, 프로세서 1의 첫회의 라이트가 코히어런시 제어 불필요의 속성이 덧붙여져 있다는 점만이 상이하다. 프로세서 1의 첫회의 라이트에 수반하는 갱신 통지 버스 상의 처리가 기 동되지 않기 때문에, 그에 필요한 만큼 갱신 통지 버스의 점유 시간이 감소하고 있다. 또한, 그 만큼 프로세서 2에 의한 2회째의 라이트 액세스에 수반하는 갱신 통지가 갱신 통지 버스에 빠르게 송출되기 때문에, 갱신 시간의 단축을 도모할 수도 있다. 프로세서 3의 3회째의 리드는 프로세서 1의 라이트보다 후에 발행되지만, 본 제어에 의해 갱신 큐에는 투입되어 있지 않기 때문에, 경합에 의한 대기가 발생하지 않고, 통상과 동일한 레이턴시로 리드 액세스가 완료하고 있다. The access pattern of the processor in this example is in accordance with the example of FIG. 6, except that the first write of
본 발명의 실시 형태의 제4 양태에서의 원리는, 프로세서의 온라인 증설 시에, 공유 메모리 공간의 모든 데이터를 유지하는 프로세서 혹은 공유 메모리가, 자신이 갖는 공유 메모리 공간의 데이터를 데이터 채널의 빈 시간을 사용하여, 증설 프로세서에 전송하고, 증설 프로세서는 그 데이터를 받아 공유 메모리 캐쉬를 초기화하는 것이다. The principle in the fourth aspect of the embodiment of the present invention is that the processor or shared memory holding all the data in the shared memory space at the time of online expansion of the processor frees the data in the shared memory space owned by the processor. Is sent to the expansion processor, which receives the data and initializes the shared memory cache.
증설 직후의 프로세서는 공유 메모리 캐쉬의 내용이 모두 무효 데이터로서, 그대로 운용계에 참가시키면, 공유 메모리 공간에의 액세스가 모두 공유 메모리 캐쉬에서 미스 히트한다. 이로써, 운용 개시 직후는 증설 프로세서의 처리 능력이 현저히 저하할 뿐만 아니라, 갱신 통지 버스나 데이터 채널이 부주의하게 점유되기 때문에 다른 프로세서에도 영향을 주어, 시스템 성능을 오히려 저하시킬 위험도 있다. 본 방식에 의해, 프로세서 증설에 의한 운용계의 처리 능력 저하를 방지하고, 또한 증설 프로세서의 처리 능력도 운용 개시 직후부터 최대한으로 끌어올릴 수 있다. If the contents of the shared memory cache are invalid data immediately after the expansion, and all of them are directly added to the operating system, all accesses to the shared memory space will be missed in the shared memory cache. As a result, the processing capacity of the expansion processor is notably reduced immediately after the start of operation, and since the update notification bus and the data channel are inadvertently occupied, there is a risk that other processors are affected and the system performance is rather deteriorated. According to this method, the processing capacity of the operating system can be prevented from being increased by the processor expansion, and the processing capacity of the expansion processor can also be raised to the maximum immediately after the start of operation.
도 10은 본 발명의 실시 형태의 제4 양태의 원리에 기초를 둔 타임 차트의 예이다. 10 is an example of a time chart based on the principle of the fourth aspect of the embodiment of the present invention.
도면에서, a∼h는 통상의 데이터 갱신 처리에 기초한 전송으로, 1∼8까지가, 본 방식에 의해 행해지는 증설 프로세서에의 데이터 전송이다. 증설 프로세서는, 자신이 새롭게 시스템에 실장된 것을, 갱신 통지 버스에 특정한 신호를 송출하거나, 혹은 실장 미 실장을 나타내는 전용의 신호선을 이용하는 등의 방법으로 다른 프로세서에 통지한다. 증설 프로세서 대상으로 데이터를 송출하는 프로세서 또는 공유 메모리는 그 통지를 받아, 도 10에 도시한 바와 같이, 자신의 갱신 큐가 비어 있을 때에, 갱신 데이터를 데이터 채널에 송출한다. 갱신 큐가 비어 있지 않으면, 즉시 데이터 송출을 중단하고 통상의 처리를 우선하고, 갱신 큐가 비게 되면 데이터 송출을 재개한다. 이러한 처리에 의해, 시스템 상에서 행해지는 통상의 데이터 갱신 처리의 타이밍에 영향을 주지 않고도, 증설 프로세서에 대하여 공유 메모리 캐쉬를 채우기 위한 데이터를 송출하는 처리를 추가할 수 있다. 증설 프로세서는, 데이터 채널로부터 수신한 모든 데이터로 채워진 후, 본래의 처리를 개시하여 운용계에 참가한다. 이 때에는 공유 메모리 캐쉬의 내용은 모두 갱신되어 있고, 운용 개시 직후부터 공유 메모리 캐쉬의 히트율이 높게 유지되어, 시스템으로서의 처리 능력을 향상할 수 있다. In the figure, a to h are transfers based on the normal data update process, and 1 to 8 are data transfers to the expansion processor performed by this system. The expansion processor notifies another processor of the newly installed system by sending a signal to the update notification bus or by using a dedicated signal line indicating unimplementation. The processor or shared memory that sends data to the enlarged processor object receives the notification and sends update data to the data channel when its update queue is empty, as shown in FIG. If the update queue is not empty, data sending stops immediately and priority processing is given priority. When the update queue becomes empty, data sending resumes. By this process, a process of sending out data for filling the shared memory cache to the expansion processor can be added without affecting the timing of the normal data update process performed on the system. After the expansion processor is filled with all data received from the data channel, the expansion processor starts the original processing and participates in the operation system. At this time, the contents of the shared memory cache are all updated, and the hit ratio of the shared memory cache is kept high immediately after the start of operation, thereby improving the processing capability as a system.
도 11 및 도 12는 본 발명의 실시 형태의 제5 양태에서의 시스템의 구성도와, 그 제어 원리를 나타내는 타임 차트이다. 11 and 12 are structural diagrams of a system in a fifth aspect of the embodiment of the present invention, and a time chart showing the control principle thereof.
제5 양태에 의한 제어의 원리는, 경합 빈도가 높은 특정한 어드레스에의 라이트 처리에 종래와 동일한 방법을 선택적으로 사용할 수 있도록 함으로써, 경합 시의 리드 액세스의 레이턴시를 저감하고자 하는 것이다. 도 11에 도시하는 바와 같이, 갱신 데이터를 전송하는 데이터 버스(11i)를 설치하여 갱신 통지 버스와 동일한 조정 논리 경로로서 데이터 채널(11g)을 사용할지, 데이터 버스를 사용할지는, 라이트 액세스마다 프로세서가 선택한다. The principle of the control according to the fifth aspect is to reduce the latency of read access during contention by selectively allowing the same method as conventionally used to write to a specific address having a high contention frequency. As shown in Fig. 11, whether the
도 12는 동일 시간에 발행된 라이트 액세스에 있어서, 갱신 데이터의 전송 경로에 데이터 채널을 사용한 경우(P=0)와, 데이터 버스를 사용한 경우(P=1)의 타이밍의 차이를 나타낸 것이다. 라이트 액세스 기동으로부터, 다른 프로세서가 갱신 전의 데이터를 리드하지 않게 되기까지의 시간은, tdsd로서, 양자에 차이 없다. 그러나, 갱신 후의 데이터를 리드할 수 있게 되기까지의 시간은, (P=1)인 경우의 tduc1에 대하여, (P=0)인 경우, 데이터 채널의 레이턴시의 영향을 받아, tduc0으로 증대한다. 동일 어드레스에 대한 리드 액세스의 경합이 발생하지 않는 한, 이 차이는 아무런 영향을 미치지 않지만, 경합이 발생한 경우에, 이 시간 차이가 리드 액세스의 레이턴시 증대로 되어 나타나기 때문에, 경합이 다발하는 액세스에 대하여 (P=0)을 선택적으로 사용한다. 그에 따라, 리드 액세스의 평균 레이턴시를 저감할 수 있다. Fig. 12 shows the difference in timing between the case of using a data channel (P = 0) and the case of using a data bus (P = 1) in the write access issued at the same time. The time from the write access activation until the other processor does not read the data before the update is t dsd . However, the time until able to read the data after the updating is, with respect to the t duc1 For (P = 1), when the (P = 0), received a latency effect of the data channel, increasing the t duc0 do. As long as there is no contention of read access to the same address, this difference has no effect. However, in case of contention, this time difference appears as an increase in latency of the read access. Optionally use (P = 0). As a result, the average latency of read access can be reduced.
도 13은 본 발명의 실시 형태의 제6 양태를 설명하는 도면이다. It is a figure explaining the 6th aspect of embodiment of this invention.
도 13의 (a)는, 제6 양태에서의 제어의 타임 차트이다.FIG. 13A is a time chart of control in the sixth aspect.
제6 양태는, 제5 양태에서의 제어 원리를, 제1∼제4 양태에서의 시스템 구성에 그대로 적용하는 것으로, 특정한 라이트 액세스에 대하여, 갱신 데이터의 물리 적인 전송은 행하지 않고 데이터 갱신을 행하는 것이다. 구체적으로는, 공유 메모리 공간 상의 어드레스로 라이트될 데이터를, 프로세서 코어가 생성하는 특정한 어드레스에 미리 대응시켜 두고, 그 특정 어드레스에 대한 라이트 액세스가 발행된 경우, 갱신 통지가 발행된 시점에, 그 예약된 데이터가 갱신 데이터로서 전송된 것으로 취급한다. 이 방법으로는 작은 정보량의 데이터밖에 취급할 수 없지만, 신호선 수가 많은 종래와 같은 데이터 버스를 설치하지 않고도, 또한, 제5 양태의 방식과 동일한 효과를 얻을 수 있다. The sixth aspect applies the control principle of the fifth aspect to the system configuration of the first to fourth aspects as it is, and updates data without performing physical transfer of update data for a specific write access. . Specifically, the data to be written to the address on the shared memory space is made to correspond in advance to a specific address generated by the processor core, and when the write access to the specific address is issued, the reservation is made at the time the update notification is issued. Treated data is transmitted as update data. In this method, only a small amount of data can be handled, but the same effects as those in the fifth aspect can be obtained without providing a conventional data bus having a large number of signal lines.
도 13의 (a)의 예에서는, 어드레스 1에 대한 라이트는, 공유 메모리 공간 상의 동일 어드레스에 대한 데이터 1의 라이트로서 취급하고 있다. 갱신 통지의 인식시, 갱신 데이터가 동시에 전달된 것으로 취급할 수 있기 때문에, 제5 양태에서(P=1)로 한 경우와 동일한 타이밍에서 처리를 행할 수 있다. 또한, 데이터 채널의 점유가 발생하지 않기 때문에, 후속의 액세스가 있는 경우에는, 그 액세스에 관계되는 레이턴시를 저감하는 효과도 얻을 수 있다. In the example of FIG. 13A, the write to address 1 is treated as the write of
예를 들면, 도 13의 (a)의 예에서, 어드레스 2에 대한 라이트를 어드레스 1에 대한 데이터 0의 라이트로서 취급하는 규약을 마련하여 병용하면, 액세스 경합의 오버헤드가 적어, 다른 프로세서에의 반영시간도 고속인 2값의 플래그로서의 기능을 소프트웨어에 제공할 수 있다(도 13의 (b)). For example, in the example of FIG. 13A, when a protocol for treating writes to address 2 as writes to
도 14는 본 발명의 실시 형태에 기초한 보다 구체적인 시스템 구성도이다. 시스템은 프로세서 10대(14a-1)∼(14a-10)와, 버스 아비터/리피터(14b)로 구성되어 있다. 버스 아비터와 리피터는 완전히 독립된 기능을 제공하는 것이지만, 시스템 구성을 간이하게 하기 위해서, 양 블록을 동일한 유닛에 수용하고 있다. 갱신 통지 버스(14c)는, 버스 블록 BC1∼BC10, 버스 요구 신호 NR1∼NR10, 버스 허가 신호 NG1∼NG10, 갱신 통지 어드레스 NA(30비트), 갱신 통지 어드레스 마스크 NM(4비트), 즉시 갱신 데이터 ND(4비트), 갱신 통지 신호 NV, 갱신 데이터 요구 신호 RV, 즉시 갱신 속성 신호 NI로 이루어지고, BC에 동기하여 동작한다. 데이터 채널 TSD1∼TSD10, RSD1∼RSD10은, 약 3기가 비트/초의 전송 대역을 갖는 시리얼 전송 선로를 대향시킨 전체 이중 통신 채널을 이용하고 있다. 프로세서 중 적어도 2개는 공유 메모리 공간의 전체 내용을 유지하고 있고, 그 중 1개는 마스터 프로세서로서 갱신 데이터 요구에 응답한다. 14 is a more detailed system block diagram based on the embodiment of the present invention. The system is composed of ten
도 15는 도 14의 각 프로세서(14a-1)∼(14a-10)의 내부 구성도이다. FIG. 15 is a diagram illustrating an internal configuration of each of the
프로세서 내부의 기능 블록은, 프로세서 코어(15a), 프로세서 버스 브릿지(15b), 갱신 통지 버스 브릿지(15e), 데이터 채널 IF(15h), 갱신 큐(15k), 공유 메모리 캐쉬(15n)로 대별된다. 각 부의 기능 개략을 이하에 기재한다. The functional blocks inside the processor are roughly divided into a processor core 15a, a processor bus bridge 15b, an update notification bus bridge 15e, a data channel IF 15h, an update queue 15k, and a shared memory cache 15n. . The functional outline of each part is described below.
(15a) 프로세서 코어 (15a) processor core
주 처리부이다. It is the main processing unit.
(15b) 프로세서 버스 브릿지 (15b) processor bus bridge
공유 메모리 공간에의 액세스의 포괄적 제어를 행한다. Perform comprehensive control of access to the shared memory space.
제어 블록(15c)은 전체의 제어를, 리다이렉터(15d)는, 각 기능 블록 간의 버스 스위칭과, 어드레스 및 데이터의 변환을 행한다. The
(15e) 갱신 통지 버스 브릿지 (15e) Update Notice Bus Bridge
갱신 통지 버스의 제어를 행한다. The update notification bus is controlled.
(15h) 데이터 채널 IF (15h) data channel IF
다른 프로세서와의 사이에서 갱신 데이터의 송수신을 행한다. Update data is transmitted / received with another processor.
(15k) 갱신 큐 (15k) update queue
갱신 큐를 수용하고 있고, 큐 상태를 외부에 출력한다. Holds an update queue and prints the queue status externally.
(15n) 공유 메모리 캐쉬 (15n) shared memory cache
공유 메모리 공간의 데이터를 유지하고, 프로세서 코어에 대하여 고속인 액세스를 제공한다. It maintains data in shared memory space and provides fast access to processor cores.
도 16은 본 발명의 실시 형태에서의 제1 양태의 라이트 액세스 시의 신호의 흐름을 설명하는 도면이다. It is a figure explaining the flow of the signal at the time of the light access of 1st aspect in embodiment of this invention.
그 흐름을 이하에 기재한다. 각 행의 앞의 번호는, 도 16의 각 신호에 붙인 번호에 대응한다. The flow is described below. The preceding number of each line corresponds to the number attached to each signal of FIG.
(1) 프로세서 코어(16a)가 프로세서 어드레스 PA, 프로세서 데이터 PD, 프로세서 전송 데이터 PT를 설정하고, 프로세서 라이트 신호 PW를 송신한다. (1) The processor core 16a sets the processor address PA, the processor data PD, and the processor transmission data PT, and transmits the processor write signal PW.
(2) 프로세서 버스 브릿지(16b)의 제어 로직(16c)은 리다이렉터 기능 제어 신호 FC를 설정한다. 리다이렉터(16d)는, 그에 따라, 프로세서 어드레스 PA를 실효 어드레스 EA와 캐쉬 어드레스 CA에, 프로세서 데이터 PD를 실효 데이터 ED 및 캐쉬 데이터 CD에 에코한다. (2) The
(3) 프로세서 버스 브릿지(16b)의 제어 로직(16c)은 갱신 통지 송신 신호 NS를 송신한다. (3) The
(4) 갱신 통지 버스 브릿지(16e)의 송신부(16f)는 NS를 받아, 버스 요구 신호 NR을 송신한다. (4) The transmission unit 16f of the update notification bus bridge 16e receives NS and transmits the bus request signal NR.
(5) 갱신 통지 버스 브릿지(16e)의 송신부(16f)가 버스 허가 신호 NG를 수신하여, 갱신 통지 버스를 획득한다. (5) The transmitting unit 16f of the update notification bus bridge 16e receives the bus permission signal NG to obtain an update notification bus.
(6) 갱신 통지 어드레스 NA에 EA가 에코되고, 갱신 통지 신호 NV가 전체 프로세서에 송신된다. NA 및 NV는 자기 프로세서의 갱신 통지 버스 브릿지 감시부(16g)에도 루프백하여 수신된다. (6) EA is echoed to update notification address NA, and update notification signal NV is transmitted to all the processors. NA and NV are also looped back to the update notification bus
(7) 갱신 통지 버스 브릿지(l6e)의 감시부(16g)는, 자신이 송출한 NV를 수취하면, NA를 갱신 통지 어드레스 SA로서 에코함과 함께, NV를 갱신 통지 수신 신호 SV로서 자기 프로세서 내에 송신한다. SV를 받아, 갱신 큐(16k)의 큐 레지스터(16l)에 해당 갱신 통지가 큐잉된다. 이 때, 다른 프로세서 상에서도 동일한 제어가 행하여진다. (7) The
(8) 프로세서 버스 브릿지(l6b)의 제어 로직(16c)은 SV를 받아 갱신 데이터 송신 신호 US를 송신하고, 이를 받은 데이터 채널 IF(16h)의 프레이머(16i)는, EA/ED의 내용을 송신 버퍼에 큐잉한다. US의 송신 후, 프로세서 코어에 액크날리지 신호 ACK가 송신되고, 프로세서 코어측의 액세스는 완료한다. (8) The
(9) 데이터 채널 IF(16h)의 프레이머(16i)에서는, 송신 버퍼에 큐잉된 데이터가 수시 패킷에 구축되어 있고, 완료한 분으로부터 SERDES(16j)(시리얼라이저 디시리얼라이저의 약칭으로, 시리얼 신호를 페러랠 신호로 변환하거나, 페러랠 신호를 시리얼 신호로 변환하는 기능 블록임)에 송신 페러랠 데이터 TPD 로서 송출된 다. SERDES는 이를 받아, 데이터 채널에서 반송할 수 있는 전기 신호로 변조를 행하여, 송신 시리얼로 TSD로서 갱신 데이터를 송출한다. (9) In the
도 17은 본 발명의 실시 형태의 제1 양태에 기초한 갱신 데이터 수신 시의 신호의 흐름을 설명하는 도면이다. It is a figure explaining the flow of the signal at the time of update data reception based on the 1st aspect of embodiment of this invention.
그 흐름을 이하에 기재한다. 각 행의 앞의 번호는 도 17의 각 신호에 붙인 번호에 대응한다. The flow is described below. The number in front of each row corresponds to the number added to each signal in FIG.
(1) 데이터 채널 IF(17h)의 SERDES(17j)가 수신 시리얼 데이터 RSD를 복조하여, 프레이머(17i)에 수신 페러랠 데이터 RPD로서 송출한다. (1) The
(2) 데이터 채널 IF(17h)의 프레이머(17i)는 RPD를 받아, 데이터 중의 패킷의 추출 및 전개를 행하고, 갱신 데이터 어드레스 UA, 갱신 데이터 UD를 설정하여, 갱신 데이터 수신 신호 UR을 송신한다. 이에 맞추어, 큐 레지스터(17l)의 큐 클리어 어드레스 QCA에 UA가 세트된다. (2) The
(3) 프로세서 버스 브릿지(17b)의 제어 로직(17c)은 UR을 받아, 리다이렉터 기능 제어 신호 FC를 설정한다. 리다이렉터(l7d)는 그에 따라, UA를 CA에, UD를 CD에 에코한다. 제어 로직(17c)에서 다른 처리가 행하여지고 있는 경우, 일단 대기하고, 그것이 완료하는 대로 본 처리를 실행한다. (3) The
(4) 프로세서 버스 브릿지(17b)의 제어 로직(17c)은 캐쉬 라이트 신호 CW를 송신하고, 이를 받은 공유 메모리 캐쉬(17n)는 CA에서 지정되는 원하는 데이터를 CD에서 갱신한다. 또한, 제어 로직(17c)은, 큐 클리어 신호 QC를 송신하고, 이를 받은 갱신 큐(17k)는, (2)에서 세트한 QCA를 큐 레지스터(17l)로부터 클리어한다. (4) The
도 18은 본 발명의 실시 형태의 제1 양태에서, 공유 메모리 캐쉬의 데이터를 이용할 수 있는 전형적인 리드 액세스 시의 신호의 흐름을 설명하는 도면이다. FIG. 18 is a diagram illustrating a signal flow during typical read access in which data in the shared memory cache can be used in the first aspect of the embodiment of the present invention.
그 흐름을 이하에 기재한다. 각 행의 앞의 번호는 도 18의 각 신호에 붙인 번호에 대응한다. The flow is described below. The number in front of each line corresponds to the number added to each signal in FIG.
(1) 프로세서 코어(18a)가 PA, PT를 설정하고, 프로세서 리드 신호 PR를 송신한다. (1) The processor core 18a sets PA and PT, and transmits the processor read signal PR.
(2) 프로세서 버스 브릿지(18b)의 제어 로직(18c)은 FC을 설정하고, 리다이렉터(18d)는, 그에 따라, PA를 EA와 CA에 에코한다. (2) The
(3) 프로세서 버스 브릿지(18b)의 제어 로직(18c)이 CR을 송신한다. (3) The
(4) 공유 메모리 캐쉬(18n)는 CR을 받고, CA에서 지정된 캐쉬 상의 데이터를 이용할 수 없는 경우에는 이용 불능 신호 NP를 송신하고, 이용 가능한 경우에는 캐쉬 데이터 CD를 송신한다. 또한, 갱신 큐(18k)의 비교기(18m)는, EA에서 지정되는 큐가 큐 레지스터 상에 있는 경우, 경합 신호 COL을 송신한다. (4) The shared memory cache 18n receives the CR, transmits the unavailable signal NP when the data on the cache designated by the CA is not available, and transmits the cache data CD when it is available. In addition, the comparator 18m of the update queue 18k transmits a contention signal COL when the queue specified by EA is on the queue register.
(5) 프로세서 버스 브릿지(18b)의 제어 로직(18c)은, NP, COL 중 어느 것도 수신하지 못한 경우, CD를 PD에 에코하고, ACK를 송신하고 액세스는 완료한다. COL을 수신한 경우에는 CR을 해제한 후, COL이 해제될 때까지 대기하고, COL 해제 후에 (3) 이후의 처리를 재차 행한다. 여기서, COL을 수신하지 않고, NP를 수신한 경우의 처리는 이하에서 설명한다. (5) When neither the NP nor the COL is received, the
도 19는 본 발명의 실시 형태의 제1 양태에서의 리드 액세스에서, 공유 메모리 캐쉬 상의 데이터를 이용할 수 없고, 갱신 데이터 요구 처리를 수반하는 경우의 신호의 흐름을 설명하는 도면이다. FIG. 19 is a diagram illustrating a signal flow when data on the shared memory cache cannot be used in read access in the first aspect of the embodiment of the present invention and involves update data request processing.
그 흐름을 이하에 기재한다. 각 행의 앞의 번호는 도 19의 각 신호에 붙인 번호에 대응한다. 또한, 도중의 (4)까지는 전항에서 설명한 리드 액세스 시의 흐름과 완전히 동일하기 때문에, 생략한다. The flow is described below. The number in front of each line corresponds to the number attached to each signal in FIG. In addition, up to (4) on the way is abbreviate | omitted since it is completely the same as the flow at the time of read access demonstrated in the preceding paragraph.
(5) 프로세서 버스 브릿지(19b)의 제어 로직(19c)이 COL을 수신하지 않고, NP를 수신한 경우에는, 갱신 데이터 요구 신호 RS를 송신한다. (5) When the
(6) 갱신 통지 버스 브릿지(19e)의 송신부(19f)는 RS를 받고, 버스 요구 신호 NR를 송신한다. (6) The transmitting
(7) 갱신 통지 버스 브릿지(19e)의 송신부(19f)가 버스 허가 신호 NG를 수신하고, 갱신 통지 버스를 획득한다. (7) The
(8) 갱신 통지 어드레스 NA에 EA가 에코되고, 갱신 데이터 요구 신호 RV가 전체 프로세서에 송신된다. NA 및 RV는 자기 프로세서의 갱신 통지 버스 브릿지 감시부(19g)에도 루프백하여 수신된다. (8) EA is echoed to update notification address NA, and update data request signal RV is transmitted to all processors. The NA and RV are also looped back to the update notification bus
(9) 갱신 통지 버스 브릿지(l9e)의 감시부(19g)는 NA를 SA로서 에코함과 함께, 자기 프로세서가 송출한 RV를 검지하면, 자기 프로세서 내에 SV로서 에코한다. 갱신 큐(19k)는 SV를 큐 세트 신호 QS로서 받아, SA의 내용을 큐 세트 어드레스 QSA로서 큐 레지스터(19l)에 큐잉한다. (9) The
(10) 리드 액세스 대상에 일치하는 큐가 큐잉되기 때문에, 갱신 큐(19k)로부터 COL이 반드시 송신된다. COL의 수신으로써, 프로세서 버스 브릿지(19b)는 COL이 해제될 때까지, 프로세서 코어(19a)로부터의 리드 액세스를 보류한 채로 갱신 통지와 갱신 데이터의 수신 처리를 행하면서 대기한다. (10) Since the queue matching the read access object is queued, the COL is necessarily transmitted from the update queue 19k. Upon reception of the COL, the processor bus bridge 19b waits while performing the update notification and the reception of the update data with the read access pending from the processor core 19a until the COL is released.
(11) (8)에서 송출된 갱신 데이터 요구를 받아, 마스터 프로세서로부터 갱신 데이터가 송출되고, 데이터 채널 IF(19h)은 갱신 데이터 어드레스 UA, 갱신 데이터 UD를 설정하고, 갱신 데이터 수신 신호 UR를 송신한다. 이에 맞추어, 큐 레지스터(19l)의 큐 클리어 어드레스 QCA에 UA가 세트된다. (11) Upon receiving the update data request sent in (8), update data is sent from the master processor, and the data channel IF 19h sets the update data address UA and the update data UD, and transmits the update data reception signal UR. do. In accordance with this, the UA is set in the queue clear address QCA of the queue register 19l.
(12) 갱신 큐(19k)로부터 리드 액세스 대상의 큐가 클리어되기 때문에, COL이 해제된다. (12) Since the queue for read access is cleared from the update queue 19k, the COL is released.
(13) 프로세서 버스 브릿지(19b)의 제어 로직(19c)은, COL의 해제를 받아, FC를 제어하여 리다이렉터(19d)를 제어하여, UA를 CA에, UD를 CD와 PD에 에코한다. (13) The
(14) 프로세서 버스 브릿지(19b)의 제어 로직(19c)은 캐쉬 라이트 신호 CW를 송신하여 공유 메모리 캐쉬 상의 원하는 데이터를 CD에서 갱신함과 함께, 프로세서 코어에 대하여 ACK를 송신하고, 리드 액세스를 완료한다. (14) The
도 20은 본 발명의 실시 형태의 제1 양태에서, 다른 프로세서로부터 송신된 갱신 데이터 요구에 대한, 마스터 프로세서에 의한 응답 시의 신호의 흐름을 설명하는 도면이다. FIG. 20 is a diagram for explaining the flow of signals in response by the master processor to an update data request transmitted from another processor in the first aspect of the embodiment of the present invention.
그 흐름을 이하에 기재한다. 각 행의 앞의 번호는 도 20의 각 신호에 붙인 번호에 대응한다. The flow is described below. The number in front of each row corresponds to the number attached to each signal in FIG.
(1) 갱신 통지 버스 브릿지(19e)의 감시부(19g)는 RV를 검지하면, NA를 SA에 에코함과 함께, 갱신 데이터 요구 신호 SR을 프로세서 내부에 송신한다. (1) When the
(2) 프로세서 버스 브릿지(20b)의 제어 로직(20c)은, 자신이 마스터 프로세 서인 경우, SR을 받아 FC를 설정하고, 리다이렉터(20d)를 제어하여 SA를 EA와 CA에 에코하고, CD와 ED를 접속한다. 여기서 자신이 마스터 프로세서가 아닌 경우, SR은 무시된다. 또한, 제어 로직(17c)에서 다른 처리가 행하여지고 있는 경우, 일단 대기하고, 그것이 완료하는 대로, 본 처리를 실행한다. (2) When the control logic 20c of the processor bus bridge 20b is the master processor, the control logic 20c receives the SR, sets the FC, controls the
(3) 프로세서 버스 브릿지(20b)의 제어 로직(20c)은, CR을 공유 메모리 캐쉬(20n)에 송신한다. (3) The control logic 20c of the processor bus bridge 20b transmits the CR to the shared memory cache 20n.
(4) 공유 메모리 캐쉬(20n)로부터 CD가 송출되어 ED에 에코된다. (4) The CD is sent out from the shared memory cache 20n and echoed to the ED.
(5) 프로세서 버스 브릿지(20b)의 제어 로직(20c)은 US를 송신하고, 라이트 액세스 시의 갱신 데이터 송출 처리와 마찬가지로, 데이터 채널에 갱신 데이터가 송출된다. (5) The control logic 20c of the processor bus bridge 20b transmits US, and the update data is sent to the data channel similarly to the update data sending process at the write access.
도 21은 본 발명의 실시 형태의 제2 양태에서의 라이트 액세스 시의 신호의 흐름을 설명하는 도면이다. It is a figure explaining the flow of the signal at the time of write access in the 2nd aspect of embodiment of this invention.
그 흐름을 이하에 기재한다. 각 행의 앞의 번호는 도 21의 각 신호에 붙인 번호에 대응한다. The flow is described below. The preceding number in each row corresponds to the number added to each signal in FIG.
(1) 프로세서 코어(21a)가 프로세서 어드레스 PA, 프로세서 데이터 PD, 프로세서 전송 타입 PT를 설정하고, 버스트 전송에 의해 복수 사이즈의 데이터를 리다이렉터에 전송한다. (1) The processor core 21a sets the processor address PA, the processor data PD, and the processor transfer type PT, and transmits data of multiple sizes to the redirector by burst transfer.
(2) 프로세서 버스 브릿지(21b)의 제어 로직(21c)은 리다이렉터 기능 제어 신호 FC를 설정한다. 리다이렉터(21d)는 그에 따라, 프로세서 어드레스 PA에서 설정된 선두의 어드레스를 실효 어드레스 EA에 에코한다. 또한, 버스트 전송된 데이 터 사이즈를 카운트하고, 그로부터 실행 어드레스 마스크 EM을 산출하여 출력한다. 여기서, 실효 어드레스 마스크는, 실효 어드레스의 하위 몇 비트를 무시하는지를 나타내는 신호이다. PD에 설정된 복수 사이즈의 데이터는 리다이렉터 내부의 버퍼에 저장한다. (2) The
(3) 프로세서 버스 브릿지(21b)의 제어 로직(21c)은 갱신 통지 송신 신호 NS를 송신한다. (3) The
(4) 갱신 통지 버스 브릿지(21e)의 송신부(21f)는 NS를 받아, 버스 요구 신호 NR을 송신한다. (4) The
(5) 갱신 통지 버스 브릿지(21e)의 송신부(21f)가 버스 허가 신호 NG를 수신하고, 갱신 통지 버스를 획득한다. (5) The
(6) 갱신 통지 어드레스 NA에 EA가, 갱신 통지 어드레스 마스크 NM에 EM이 에코되고, 갱신 통지 신호 NV가 전체 프로세서에 송신된다. NA, NM, NV는 자기 프로세서의 갱신 통지 버스 브릿지 감시부(21g)에도 루프백하여 수신된다. (6) EA is echoed to update notification address NA, EM is echoed to update notification address mask NM, and update notification signal NV is transmitted to all processors. The NA, NM, and NV are also looped back to the update notification bus
(7) 갱신 통지 버스 브릿지(21e)의 감시부(21g)는 NV를 받아, NA를 갱신 설정 어드레스 SA, NM을 갱신 설정 어드레스 마스크 SM에 에코하여 갱신 통지 수신 신호 SV를 송신한다. 갱신 큐(21k)는 SV를 큐 세트 신호 QS로서 받고, SA의 내용을 큐 세트 어드레스 QSA, SM의 내용을 큐 세트 어드레스 마스크 QSM으로서 큐 레지스터(21l)에 큐잉한다. (7) The
(8) 프로세서 버스 브릿지(21b)의 제어 로직(21c)은, SV를 받으면, 갱신 데이터 송신 신호 US를 송신하고, 동시에 FC를 설정한다. 리다이렉터(21d)는 이에 따라서 버퍼 내에 저장한 갱신 데이터의 선두의 데이터로부터 순서대로 ED로서 설정한다. 이를 받은 데이터 채널 IF(21h)의 프레이머(21i)는 EA/EM/ED의 내용을 송신 버퍼에 큐잉한다. US의 송신 후, 프로세서 코어에 액크날리지 신호 ACK가 송신되고, 프로세서 코어측의 액세스는 완료한다. (8) When the
(9) 데이터 채널 IF(21h)의 프레이머(21i)에서는, 송신 버퍼에 큐잉된 데이터를 수시 패킷에 구축하고 있고, 완료한 분으로부터 SERDES(21j)에 송신 페러랠 데이터 TPD로서 송출된다. SERDES는, 이를 받아, 데이터 채널에서 반송되는 전기 신호로 변조를 행하고, 송신 시리얼 데이터 TSD로서 갱신 데이터를 송출한다. (9) In the
도 22는 본 발명의 실시 형태의 제2 양태에서, 다른 프로세서로부터 송출된 갱신 데이터 수신 시의 신호의 흐름을 설명하는 도면이다. FIG. 22 is a diagram illustrating a signal flow when receiving update data sent from another processor in the second aspect of the embodiment of the present invention. FIG.
그 흐름을 이하에 기재한다. 각 행의 앞의 번호는 도 22의 각 신호에 붙인 번호에 대응한다. The flow is described below. The number in front of each line corresponds to the number added to each signal in FIG.
(1) 데이터 채널 IF(22h)의 SERDES(22j)가 수신 시리얼 데이터 RSD를 복조하여, 프레이머(22i)에 수신 페러랠 데이터 RPD로서 송출한다. (1)
(2) 데이터 채널 IF(22h)의 프레이머(22i)는 RPD를 받아, 데이터 중의 패킷의 추출 및 전개를 행하고, 갱신 데이터 어드레스 UA, 갱신 어드레스 마스크 UM에 설정하고, 갱신 데이터 수신 신호 UR을 송신한다. 이에 맞추어, 큐 레지스터(22l)의 큐 클리어 어드레스 QCA에 UA가 세트된다. 또한, UR 송신과 동시에 갱신 데이터를 선두 데이터로부터 순서대로 UD에 설정한다. (2) The framer 22i of the data channel IF 22h receives the RPD, extracts and expands a packet in the data, sets the update data address UA and the update address mask UM, and transmits the update data reception signal UR. . In accordance with this, the UA is set in the queue clear address QCA of the queue register 22l. At the same time as UR transmission, update data is set in the UD sequentially from the head data.
(3) 프로세서 버스 브릿지(22b)의 제어 로직(22c)은 UR를 받아, 리다이렉터 기능 제어 신호 FC를 설정한다. UA와 UD는 일단 리다이렉터 내의 버퍼에 저장하고, UA가 CA에 설정되고, UD의 선두 데이터가 CD에 설정된다. CA에 설정 제어 로직(22c)으로써 다른 처리가 행하여지고 있는 경우, 일단 대기하고, 그것이 완료하는 대로 본 처리를 실행한다. (3) The
(4) 프로세서 버스 브릿지(22b)의 제어 로직(22c)은 캐쉬 라이트 신호 CW를 송신하고, 이를 받은 공유 메모리 캐쉬(22n)는 CA에서 지정되는 원하는 데이터를 CD에서 갱신한다. 계속하여 리다이렉터의 버퍼에 저장된 다음의 갱신 데이터를 CD에 설정하고, CA의 값을 하나 인크리먼트하고, 마찬가지의 캐쉬 메모리 갱신 처리를, UM의 설정값에 따라서, 버퍼 내의 갱신 데이터가 없어질 때까지 반복하여 행한다. 그 후, 큐 클리어 신호 QC를 송신하고, 이를 받은 갱신 큐(22k)는, (2)에서 세트한 QCA를 큐 레지스터(22l)로부터 클리어한다. (4) The
도 23은 본 발명의 실시 형태의 제3 양태에서의 갱신 통지를 생략한 라이트 액세스 시의 신호의 흐름을 설명하는 도면이다. It is a figure explaining the flow of the signal at the time of write access in which update notification was abbreviate | omitted in the 3rd aspect of embodiment of this invention.
그 흐름을 이하에 기재한다. 각 행의 앞의 번호는 도 23의 각 신호에 붙인 번호에 대응한다. The flow is described below. The number in front of each line corresponds to the number added to each signal in FIG.
(1) 프로세서 코어(23a)가 프로세서 전송 타입 PT에 데이터 온리 속성을 설정하고, 프로세서 어드레스 PA, 프로세서 데이터 PD, 프로세서 라이트 신호 PW를 송신한다. (1) The processor core 23a sets a data only attribute to the processor transmission type PT and transmits a processor address PA, a processor data PD, and a processor write signal PW.
(2) 프로세서 버스 브릿지(23b)의 제어 로직(23c)은, 리다이렉터 기능 제어 신호 FC를 설정한다. 리다이렉터(23d)는 그에 따라, 프로세서 어드레스 PA를 실행 어드레스 EA에, 프로세서 데이터 PD를 실효 데이터 ED에 에코한다. (2) The
(3) 프로세서 버스 브릿지(23b)의 제어 로직(23c)은, 데이터 온리 속성 신호 DO를 설정하고, 갱신 데이터 송신 신호 US를 송신한다. US의 송신 후 프로세서 코어에 액크날리지 신호 ACK가 송신되고, 프로세서 코어측의 액세스는 완료한다. (3) The
(4) 갱신 데이터 송신 신호 US와 데이터 온리 속성 신호 DO를 수신한 데이터 채널 IF(23h)의 프레이머(23i)는 EA/ED의 내용 및 데이터 온리 속성을 송신 버퍼에 큐잉한다. (4) The
(5) 데이터 채널 IF(23h)의 프레이머(23i)에서는, 송신 버퍼에 큐잉된 데이터 및 속성을 수시 패킷에 구축하고 있고, 완료한 분으로부터 SERDES(23j)에 송신 페러랠 데이터 TPD로서 송출된다. SERDES는 이를 받아, 데이터 채널에서 반송할 수 있는 전기 신호로 변조를 행하여, 송신 시리얼 데이터 TSD로서 갱신 데이터를 송출한다. (5) In the
도 24는 본 발명의 실시 형태의 제3 양태에서, 다른 프로세서로부터 송출된 갱신 통지를 생략한 갱신 데이터 수신 시의 신호의 흐름을 설명하는 도면이다. FIG. 24 is a diagram for explaining the flow of a signal when receiving update data in which the update notification sent from another processor is omitted in the third aspect of the embodiment of the present invention.
그 흐름을 이하에 기재한다. 각 행의 앞의 번호는 도 24의 각 신호에 붙인 번호에 대응한다. The flow is described below. The number in front of each line corresponds to the number added to each signal in FIG.
(1) 데이터 채널 IF(24h)의 SERDES(24j)가 수신 시리얼 데이터 RSD를 복조하여, 프레이머(24i)에 수신 페러랠 데이터 RPD로서 송출한다. (1)
(2) 데이터 채널 IF(24h)의 프레이머(24i)는 RPD를 받아, 데이터 중의 패킷의 추출 및 전개를 행하여, 갱신 데이터 어드레스 UA, 갱신 데이터 UD, 데이터 온 리 속성 DO를 설정하고, 갱신 데이터 수신 신호 UR를 송신한다. (2) The framer 24i of the data channel IF 24h receives the RPD, extracts and expands a packet in the data, sets the update data address UA, update data UD, data only attribute DO, and receives update data. Transmit the signal UR.
(3) 프로세서 버스 브릿지(24b)의 제어 로직(24c)은 갱신 데이터 수신 신호 UR와 데이터 온리 속성 신호 DO를 받아, 리다이렉터 기능 제어 신호 FC를 설정한다. 리다이렉터(24d)는 그에 따라, UA를 캐쉬 어드레스 CA에, UD를 캐쉬 데이터 CD에 에코한다. 제어 로직(24c)으로써 다른 처리가 행하여지고 있는 경우, 일단 대기하고, 그것이 완료하는 대로 본 처리를 실행한다. (3) The control logic 24c of the processor bus bridge 24b receives the update data received signal UR and the data only attribute signal DO to set the redirector function control signal FC. The
(4) 프로세서 버스 브릿지(24b)의 제어 로직(24c)은 캐쉬 라이트 신호 CW를 송신하고, 이를 받은 공유 메모리 캐쉬(24n)는 CA에서 지정되는 원하는 데이터를 CD에서 갱신한다. (4) The control logic 24c of the processor bus bridge 24b transmits the cache write signal CW, and the shared memory cache 24n receiving this updates the desired data specified in the CA on the CD.
도 25는 본 발명의 실시 형태의 제2 양태에서의 캐쉬필 동작에 있어서, 시스템에 증설된 프로세서가 전체 데이터 송신 요구를 행할 때의 신호의 흐름을 설명하는 도면이다. It is a figure explaining the flow of the signal at the time of the processor extended in the system making the whole data transmission request in the cache fill operation | movement in 2nd aspect of embodiment of this invention.
그 흐름을 이하에 기재한다. 각 행의 앞의 번호는 도 25의 각 신호에 붙인 번호에 대응한다. The flow is described below. The number in front of each row corresponds to the number attached to each signal in FIG.
(1) 프로세서 버스 브릿지(25b)의 제어 로직(25c)은, 자기 프로세서가 디스템에 증설된 것을 검지하면, 전체 데이터 송신 요구 신호로서 RS와 IS를 동시에 송신한다. (1) The control logic 25c of the processor bus bridge 25b transmits RS and IS simultaneously as all data transmission request signals when it detects that its own processor is added to the system.
(2) 갱신 통지 버스 브릿지(25e)의 송신부(25f)는 RS와 IS를 받아, 버스 요구 신호 NR을 송신한다. (2) The
(3) 갱신 통지 버스 브릿지(25e)의 송신부(25f)가 버스 허가 신호 NG를 수신 하고, 갱신 통지 버스를 획득한다. (3) The
(4) 갱신 통지 버스 브릿지(25e)의 송신부(25f)는 RV와 NI를 동시에 송신한다. (4) The
도 26은 본 발명의 실시 형태의 제4 양태에서의 캐쉬필 동작에 있어서, 마스터 프로세서가 전체 데이터 송신 요구에 응답하여 전체 데이터 송신을 행할 때의 신호의 흐름을 설명하는 도면이다. It is a figure explaining the flow of the signal at the time of a master processor performing whole data transmission in response to a whole data transmission request in the cache fill operation | movement in 4th aspect of embodiment of this invention.
그 흐름을 이하에 기재한다. 각 행의 앞의 번호는, 도 26의 각 신호에 붙인 번호에 대응한다. The flow is described below. The preceding number of each line corresponds to the number attached to each signal of FIG.
(1) 마스터 프로세서의 갱신 통지 버스 브릿지(26e)의 감시부(26g)는, RV와 동시에 N1을 수신하면, SR과 SI를 동시에 송신한다. (1) When the monitoring unit 26g of the update notification bus bridge 26e of the master processor receives N1 at the same time as the RV, the monitoring unit 26g simultaneously transmits the SR and the SI.
(2) 프로세서 버스 브릿지(26b)의 제어 로직(26c)은 SR와 SI를 동시에 수신하면, 전체 데이터 송신 요구 신호로 해석하여, 공유 메모리 공간의 선두의 어드레스를 송신 개시 어드레스, 및, 다음 송신 어드레스로서 기억한다. (2) When the
(3) 시스템에 다른 프로세서가 증설되어, 마스터 프로세서의 제어 로직(26c)이, 다시 전체 데이터 요구 신호를 수신한 경우, 제어 로직(26c)은 먼저 기억한 다음 송신 어드레스를 송신 개시 어드레스로서 기억한다. (3) When another processor is added to the system and the
(4) 제어 로직(26c)은 큐 엠프티 신호 QE가 유효하고, 또한, 그 외에 요구되고 있는 처리가 없을 때, 리다이렉터 기능 제어 신호 FC를 설정하고, 리다이렉터(26d)는 먼저 기억한 다음 송신 어드레스를 캐쉬 어드레스 CA에 설정하고, 제어 로직(26c)은 캐쉬 리드 신호 CR을 송신한다. (4) The
(5) 공유 메모리 캐쉬(26n)는 CR을 받아, CA에서 지정된 캐쉬 상의 데이터를 캐쉬 데이터 CD에 송신한다. (5) The shared memory cache 26n receives the CR and transmits the data on the cache designated by the CA to the cache data CD.
(6) 프로세서 버스 브릿지(26b)의 리다이렉터(26d)는, 먼저 설정한 CA를 실효 어드레스 EA에도 설정하고, CD를 실효 데이터 ED에 에코한다. 제어 로직(26c)은 데이터 온리 속성 DO를 설정하고, 갱신 데이터 송신 신호 US를 송신한다. 이를 받은 데이터 채널 IF(26h)의 프레이머(26i)는 EA/ED의 내용 및 데이터 온리 속성을 송신 버퍼에 큐잉한다. (6) The
(7) 프로세서 버스 브릿지(26b)의 제어 로직(26c)은, 송신한 어드레스의 다음의 어드레스를 다음 송신 어드레스로서 기억한다. 송신한 어드레스가 공유 메모리 공간의 최후의 어드레스에 달한 경우에는, 공유 메모리 공간의 선두의 어드레스를 다음 송신 어드레스로서 기억한다. 다음 송신 어드레스가 먼저 기억한 송신 개시 어드레스와 일치한 경우, 전체 데이터 송신을 종료한다. (7) The
(8) (3)∼(7)의 수순을 반복하여, 순차적으로 데이터를 송출한다. (8) The procedure of (3)-(7) is repeated, and data is sent sequentially.
(9) 데이터 채널 IF(26h)의 프레이머(26i)에서는, 송신 버퍼에 큐된 데이터를 수시 패킷에 구축하고 있고, 완료된 분으로부터 SERDES(26j)에 송신 페러랠 데이터 TPD로서 송출된다. SERDES는 이를 받아, 데이터 채널에서 반송할 수 있는 전기 신호로 변조를 행하여, 송신 시리얼 데이터 TSD로서 데이터를 송출한다. (9) In the framer 26i of the data channel IF 26h, data queued in the transmission buffer is constructed in a packet at any time, and is sent to the
도 27은 본 발명의 실시 형태의 제4 양태에서의 캐쉬필 동작에 있어서, 시스템에 증설된 프로세서가 전체 데이터 수신을 행할 때의 신호의 흐름을 설명하는 도면이다. It is a figure explaining the flow of the signal at the time of the processor extended in the system to receive the whole data in the cache fill operation | movement in 4th aspect of embodiment of this invention.
그 흐름을 이하에 기재한다. 각 행의 앞의 번호는 도 27의 각 신호에 붙인 번호에 대응한다. The flow is described below. The number in front of each line corresponds to the number added to each signal in FIG.
(1) 전체 데이터 수신 동작 중에 제어 로직(27c)이, 프로세서 리드 신호 PR, 또는, 프로세서 라이트 신호 PW를 수신한 경우, 제어 로직(27c)은, 이 요구를 보류한다. 전체 데이터 수신 동작 중이어도, 갱신 큐에의 큐잉, 클리어는 각각 도 16,도 17에서 도시되는 흐름으로 행한다. (1) When the control logic 27c receives the processor read signal PR or the processor write signal PW during the entire data reception operation, the control logic 27c holds this request. Even during the entire data reception operation, queuing and clearing to the update queue are performed in the flows shown in Figs. 16 and 17, respectively.
(2) 데이터 채널 IF(27h)의 SERDES(27j)가 수신 시리얼 데이터 RSD를 복조하여, 프레이머(27i)에 수신 페러랠 데이터 RPD로서 송출한다. (2) The SERDES 27j of the data channel IF 27h demodulates the received serial data RSD and sends it to the framer 27i as a received parallel data RPD.
(3) 데이터 채널 IF(27h)의 프레이머(27i)는 RPD를 받아, 데이터 중의 패킷의 추출 및 전개를 행하고, 갱신 데이터 어드레스 UA, 갱신 데이터 UD, 데이터 온리 속성 DO를 설정하고, 갱신 데이터 수신 신호 UR를 송신한다. (3) The framer 27i of the data channel IF 27h receives the RPD, extracts and expands a packet in the data, sets the update data address UA, update data UD, data only attribute DO, and updates data reception signal. Send UR.
(4) 프로세서 버스 브릿지(27b)의 제어 로직(27c)은 UR을 받아, 리다이렉터 기능 제어 신호 FC를 설정한다. 리다이렉터(27d)는, 그에 따라, UA를 캐쉬 어드레스 CA에, UD를 캐쉬 데이터 CD에 에코한다. 제어 로직(27c)에서 다른 처리가 행하여지고 있는 경우, 일단 대기하고, 그것이 완료하는 대로 처리를 실행한다. (4) The control logic 27c of the processor bus bridge 27b receives the UR and sets the redirector function control signal FC. The
(5) 프로세서 버스 브릿지(27b)의 제어 로직(27c)은 캐쉬 라이트 신호 CW를 송신한다. 데이터 온리 속성 DO를 수신하고 있기 때문에, 큐 클리어 신호 QC는 송신하지 않는다. (5) The control logic 27c of the processor bus bridge 27b transmits the cache write signal CW. Since the data only attribute DO is received, the queue clear signal QC is not transmitted.
(6) 캐쉬 라이트 신호 CW를 받은 공유 메모리 캐쉬(27n)는, CA 및 CD에서 지정되는 원하는 데이터를 갱신하고, 갱신 전의 상태에서 해당 데이터가 이용 불가능 한 상태인 경우, 이용 불가능 신호 NP를 송신한다. (6) The shared memory cache 27n receiving the cache write signal CW updates the desired data specified in the CA and CD, and transmits an unavailable signal NP when the data is not available in the state before the update. .
(7) 프로세서 버스 브릿지(27b)의 제어 로직(27c)은, 전체 데이터 수신 동작 중에 이용 불능 신호 NP를 수신한 횟수를 계측함으로써, 공유 메모리 캐쉬의 전체 영역이 유효 데이터로 필된 것을 인식하면, 전체 데이터 수신 동작을 종료한다. (7) The control logic 27c of the processor bus bridge 27b measures the number of times the unusable signal NP is received during the entire data reception operation to recognize that the entire area of the shared memory cache is filled with valid data. The data receiving operation ends.
(8) 전체 데이터 수신 동작이 종료하였을 때, 보류되어 있는 프로세서 리드 신호 PR, 또는, 프로세서 라이트 신호 PW가 있는 경우에는, 그 동작을 개시한다. (8) When there is a processor read signal PR or a processor write signal PW held when the entire data reception operation is completed, the operation is started.
도 28은 본 발명의 실시 형태의 제5 양태에 기초한 라이트 액세스 시의 신호의 흐름을 설명하는 도면이다. It is a figure explaining the flow of the signal at the time of light access based on the 5th aspect of embodiment of this invention.
그 흐름을 이하에 기재한다.The flow is described below.
(1) 프로세서 코어(28a)가 PA, PD, PT를 설정하여 PW를 송신. (1) The processor core 28a sets the PA, PD and PT to transmit the PW.
(2) 프로세서 버스 브릿지(28b)의 제어 로직(28c)은 리다이렉터 기능 제어 신호 FC를 설정한다. 리다이렉터(28d)는 그에 따라, 프로세서 어드레스 PA를 실효 어드레스 EA와 캐쉬 어드레스 CA에, 프로세서 데이터 PD를 실효 데이터 ED 및 캐쉬 데이터 CD에 에코한다. (2) The
(3) 프로세서 버스 브릿지(28b)의 제어 로직(28c)은 갱신 통지 송신 신호 NS를 송신한다. 아울러, PA가 규정된 어드레스 공간에 있는 경우에 즉시 갱신 속성 송신 신호 IS를 송신한다. (3) The
(4) 갱신 통지 버스 브릿지(28e)의 송신부(28f)는 NS를 받아, NR을 송신한다. (4) The
(5) 갱신 버스 브릿지(28e)의 송신부(28f)가 NG를 수신하고, 갱신 통지 버스 를 획득한다. (5) The transmitting
(6) 갱신 통지 어드레스 NA에 EA가, 즉시 갱신 속성 신호 NI에 IS가, 즉시 갱신 데이터 ND에 ED가 각각 에코되어, 갱신 통지 신호 NV가 전체 프로세서에 송신된다. NA, ND, NV, NI는 자기 프로세서의 갱신 통지 버스 브릿지 감시부(28g)에도 루프백하여 수신된다. (6) EA is echoed to update notification address NA, IS to immediate update attribute signal NI, and ED to immediate update data ND, respectively, and update notification signal NV is transmitted to all processors. The NA, ND, NV, and NI are also looped back to the update notification bus bridge monitoring unit 28g of the magnetic processor.
(7) 갱신 통지 버스 브릿지(28e)의 감시부(28g)는, NV를 NI와 함께 수신하면, 즉시 갱신 신호 SI로서 자기 프로세서 내에 에코한다. 다른 프로세서 상에서도 동일한 동작이 행해진다. (7) When the monitoring unit 28g of the update notification bus bridge 28e receives the NV together with the NI, it immediately echoes into the self processor as the update signal SI. The same operation is performed on other processors.
(8) 프로세서 버스 브릿지(28b)의 제어 로직(28c)은, 리다이렉터 기능 제어 신호 FC를 설정한다. 리다이렉터(28d)는 그에 따라, SA를 CA에, SD를 CD에 에코한다. 다른 프로세서 상에서도 동일한 동작이 행해진다. 이 때, 프로세서 버스 브릿지(28b)가 다른 처리를 행하고 있는 경우, 그 처리의 완료 후에 이 처리를 최우선으로 행한다. (8) The
(9) 프로세서 버스 브릿지(28b)의 제어 로직(28c)은, 캐쉬 라이트 신호 CW를 송신하고, 이를 받은 공유 메모리 캐쉬(28n)는 CA에서 지정되는 원하는 데이터를 CD에서 갱신한다. 다른 프로세서 상에서도 동일한 동작이 행해진다. (9) The
(10) 프로세서 코어에 ACK가 송신되고, 프로세서 코어측의 액세스가 완료한다. (10) An ACK is sent to the processor core, and access on the processor core side is completed.
본 발명의 실시 형태의 제6 양태에 기초한 라이트 액세스는, 특정 어드레스에의 라이트 시에 예약 데이터를 이용하는 것으로, 그 흐름은 제5 양태에서의 라이 트 액세스에 거의 준한다. 이하의 점이 차이이다. The write access based on the sixth aspect of the embodiment of the present invention uses reservation data when writing to a specific address, and the flow is almost similar to the write access in the fifth aspect. The following points are differences.
(8) 프로세서 버스 브릿지(28b)의 리다이렉터(28d)는, SA가 그 액세스에 예약 데이터를 이용하는 특정 어드레스로 해석되는 경우, SD를 무시하고, SA에 대응하는 예약 데이터를 생성하여 CD에 출력한다. (8) The
이상과 같이, 공유 메모리 캐쉬를 구비하는 프로세서에 의해 구성되는 공유 메모리형 멀티프로세서 시스템에 있어서, 본 발명의 적용에 의해 코히어런시 보증에 필요한 시간과, 데이터 전송에 필요한 시간이 명확하게 분리되어, 공유 메모리 공간의 액세스에 있어서 종래 기술에 존재한 문제가 이하의 점에서 해결된다.As described above, in the shared memory type multiprocessor system constituted by a processor having a shared memory cache, the time required for coherency guarantee and the time required for data transmission are clearly separated by the application of the present invention. The problem existing in the prior art in accessing the shared memory space is solved in the following points.
·버스 점유 시간의 최소화와, 불필요한 레이턴시 증대 요인의 배제 Minimize bus occupancy time and eliminate unnecessary latency increases
·데이터 전송 경로의 레이턴시 은폐와, 이에 의한 대역 확대의 용이화Conceal latency in data transmission paths, thereby facilitating bandwidth expansion
이로써, 공유 메모리 캐쉬의 고속성을 최대한으로 활용할 수 있게 되고, 공유 메모리 공간 액세스의 대역과 레이턴시의 쌍방이 개선되어, 시스템의 처리 능력 향상에 기여할 수 있다. As a result, the high speed of the shared memory cache can be utilized to the maximum, and both the bandwidth and the latency of the shared memory space access can be improved, thereby contributing to the improvement of the processing capacity of the system.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020057010950A KR100766666B1 (en) | 2005-06-15 | 2003-05-30 | Multi-processor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020057010950A KR100766666B1 (en) | 2005-06-15 | 2003-05-30 | Multi-processor system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050085671A KR20050085671A (en) | 2005-08-29 |
KR100766666B1 true KR100766666B1 (en) | 2007-10-11 |
Family
ID=37269951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057010950A KR100766666B1 (en) | 2005-06-15 | 2003-05-30 | Multi-processor system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100766666B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100745369B1 (en) * | 2005-12-22 | 2007-08-02 | 삼성전자주식회사 | Multi-path accessible semiconductor memory device having port states signaling function |
JP5338435B2 (en) * | 2009-03-31 | 2013-11-13 | 富士通株式会社 | Information processing program, information processing apparatus, and information processing method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0510821A1 (en) * | 1991-04-22 | 1992-10-28 | International Business Machines Corporation | Multiprocessor cache system |
-
2003
- 2003-05-30 KR KR1020057010950A patent/KR100766666B1/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0510821A1 (en) * | 1991-04-22 | 1992-10-28 | International Business Machines Corporation | Multiprocessor cache system |
Also Published As
Publication number | Publication date |
---|---|
KR20050085671A (en) | 2005-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3764893B2 (en) | Multiprocessor system | |
EP1131729B1 (en) | Communications system and method with multilevel connection identification | |
US6862608B2 (en) | System and method for a distributed shared memory | |
US9251108B2 (en) | Managing access to shared buffer resources | |
US6721813B2 (en) | Computer system implementing a system and method for tracking the progress of posted write transactions | |
CN102255794B (en) | Remote message transmit-receive handling capacity and waiting time shortening system and method | |
JP4758384B2 (en) | Data processing system and method for processing data to support ticket-based behavior tracking | |
KR100814904B1 (en) | On-Chip Communication architecture | |
US6557048B1 (en) | Computer system implementing a system and method for ordering input/output (IO) memory operations within a coherent portion thereof | |
WO2002073407A1 (en) | Communications system and method with non-blocking shared interface | |
US7213087B1 (en) | Mechanism to control the allocation of an N-source shared buffer | |
US20060153078A1 (en) | Receiver, transceiver, receiving method and transceiving method | |
KR102409024B1 (en) | Multi-core interconnect in a network processor | |
KR20130071782A (en) | Bus bridge apparatus | |
US20190146935A1 (en) | Data transfer device, arithmetic processing device, and data transfer method | |
JP2008250985A (en) | Semiconductor integrated circuit and image processing device | |
US8346080B2 (en) | Optical network system and memory access method | |
KR100766666B1 (en) | Multi-processor system | |
KR20040054721A (en) | Tagging and arbitration mechanism in an input/output node of computer system | |
US10289598B2 (en) | Non-blocking network | |
JP4687925B2 (en) | Priority arbitration system and priority arbitration method | |
EP3493069B1 (en) | Resource allocation for atomic data access requests | |
JP4104939B2 (en) | Multiprocessor system | |
US10185606B2 (en) | Scalable autonomic message-transport with synchronization | |
JP3925105B2 (en) | Multiprocessor system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20101005 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |