KR100449695B1 - Device for controlling bus traffic load on multiprocessor system using shared memory - Google Patents
Device for controlling bus traffic load on multiprocessor system using shared memory Download PDFInfo
- Publication number
- KR100449695B1 KR100449695B1 KR1019970009536A KR19970009536A KR100449695B1 KR 100449695 B1 KR100449695 B1 KR 100449695B1 KR 1019970009536 A KR1019970009536 A KR 1019970009536A KR 19970009536 A KR19970009536 A KR 19970009536A KR 100449695 B1 KR100449695 B1 KR 100449695B1
- Authority
- KR
- South Korea
- Prior art keywords
- bus
- counter
- traffic load
- master
- load control
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
Abstract
Description
본 발명은 버스를 기반으로 하는 공유메모리 다중프로세서 시스템에 관한 것으로서, 특히 상기 버스의 상태를 감시하여 시스템버스의 버스트래픽 부하를 제어하는 버스트래픽 부하 제어장치에 관한 것이다.The present invention relates to a bus-based shared memory multiprocessor system, and more particularly, to a bus traffic load control apparatus for controlling a bus traffic load of a system bus by monitoring a state of the bus.
버스를 기반으로 하여 공유메모리(shared memory)를 사용하는 다중프로세서 (multiprocessor) 시스템의 가장 큰 문제는 버스의 포화에 의한 시스템의 성능저하이다. 상기 버스가 포화되면 프로세서(processor)의 수가 증가하여도 시스템의 성능은 향상되지 않고 오히려 감소되기 때문이다.The biggest problem with multiprocessor systems that use shared memory based on the bus is the performance degradation of the system due to bus saturation. If the bus is saturated, the performance of the system does not improve even if the number of processors increases, but rather decreases.
이와같은 문제를 해결하기 위한 방법으로 공유메모리를 사용하는 다중 프로세서 시스템에서는 각 프로세서 보드(board) 내부에 캐시메모리(cache memory)를 갖게 하여 원하는 데이터가 캐시메모리에 없을 때만 버스를 사용하여 공유메모리로부터 데이터를 가져오게 함으로써 버스의 포화를 방지한다.As a solution to this problem, in a multiprocessor system using shared memory, each processor board has a cache memory in its internal memory. Importing data prevents bus saturation.
그러나 프로세서마다 캐시를 사용하게 되면 캐시상에 존재하는 데이터가 메모리나 다른 캐시의 데이터와 일관성이 깨어지는 문제(multi-cache consistency problem)가 발생한다. 캐시메모리의 데이터를 일관성있게 유지하기 위해서는 각 프로세서는 버스를 감시하여 현재의 버스사이클이 각자의 캐시데이터에 영향을 주는지를 살펴보아야 한다.However, the use of a cache per processor causes a problem in which data in the cache is inconsistent with data in memory or other caches. To keep the data in cache memory consistent, each processor must monitor the bus to see if the current bus cycle affects its cache data.
시스템 버스에는 데이터를 일관성있게 유지하기 위해서 SNK(Snoop No Acknowledge)라는 신호가 정의되어 있다. 상기 SNK 신호는 캐시 동일성 유지 프로토콜을 유지할 책임이 있는 프로세서가 현재 진행중인 버스 동작이 자신의 캐시에 영향을 주는 것인데도 불구하고 자신이 이에 합당한 캐시동작을 할 수 없거나 또는 진행중인 버스동작에 관련된 자신의 캐시동작에 문제가 발생할 경우 해당 버스 동작이 더 이상 진행되지 못하도록 하기위해 구동한다. 상기 SNK 신호가 구동되면 해당 전송을 수행하는 프로세서는 버스 사이클을 재시도(retry) 해야하고 메모리는 응답하지 않는다.The system bus defines a signal called Snoop No Acknowledge (SNK) to keep data consistent. The SNK signal indicates that the processor responsible for maintaining the cache identity maintaining protocol is unable to perform a reasonable cache operation or the cache operation related to the ongoing bus operation even though an ongoing bus operation affects its cache. If a problem occurs, run it to stop the bus operation from proceeding. When the SNK signal is driven, the processor performing the transmission must retry the bus cycle and the memory does not respond.
한편 캐시를 사용함으로써 버스사이클을 줄일 수는 있지만 프로세서의 수가증가함에 따라 상기 SNK신호가 발생되는 비율도 증가하게 되어 버스는 불필요한 재시도 사이클로 버스가 포화되기 시작하고, 메모리 보드의 입력큐(input queue)도 불필요한 데이터로 차기 때문에 메모리의 응답 시간이 지연되어 프로세서의 증가에 따른 성능향상을 기대할 수 없다.By using the cache, the bus cycle can be reduced, but as the number of processors increases, the rate at which the SNK signal is generated also increases, so that the bus begins to saturate with unnecessary retry cycles and the input queue of the memory board. ) Is filled with unnecessary data, so the response time of the memory is delayed, and the performance improvement due to the increase of the processor cannot be expected.
본 발명은 상술한 버스트래픽이 증가하는 문제점을 해결하기 위해 창출된 것으로서, 불필요한 재시도로 인한 버스의 포화를 방지하고 시스템의 성능을 향상시킬 수 있도록 하기 위해, 버스의 상태를 감시하여 재시도가 빈번히 발생하는 프로세서 보드에 대해 선별적으로 버스사용을 제한하여 전체적인 버스 트래픽 부하(load)를 조절하는 버스트래픽 부하 제어장치를 제공함에 그 목적이 있다.The present invention has been created to solve the problem of increasing the above-mentioned bus traffic, to prevent the saturation of the bus due to unnecessary retries and to improve the performance of the system, the state of the bus is frequently monitored and retries It is an object of the present invention to provide a bus traffic load control device that selectively regulates bus usage on a generated processor board to adjust overall bus traffic load.
도 1은 본 발명에 의한 버스트래픽 부하 제어장치가 적용되는 시스템버스를 기반으로 하고 공유메모리를 갖는 다중프로세서 시스템의 구성을 블록도로 도시한 것이다.1 is a block diagram illustrating a configuration of a multiprocessor system based on a system bus to which a bus traffic load control apparatus according to the present invention is applied and having a shared memory.
도 2는 본 발명에 의한 버스 트래픽 부하 제어장치의 일실시예의 구성을 블록도로 도시한 것이다.2 is a block diagram showing the configuration of an embodiment of a bus traffic load control apparatus according to the present invention.
*도면의 주요부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *
200 : 카운터제어부, 210 : 카운터부, 220 : 부하제어신호발생부,200: counter control unit, 210: counter unit, 220: load control signal generator,
230 : 프로그램가능한 타이머, 240 : 프로세서230: programmable timer, 240: processor
상기의 목적을 달성하기 위한 본 발명에 의한, 버스를 기반으로 하며 둘 이상의 버스마스터를 구비하는 공유메모리 다중프로세서 시스템의 버스트래픽 부하를 제어하는 버스트래픽 부하 제어장치는, 상기 버스마스터마다 하나씩 할당된 카운터들로 이루어진 카운터부; 버스상태를 나타내는 소정의 상태버스를 감시하고 있다가 상기 상태버스 중 버스트래픽 부하를 유발하는 재시도요구신호가 상기 시스템버스에 구동되면 상기 재시도요구를 받는 버스마스터에 할당된 상기 카운터부의 카운터를 구동시키고, 상기 버스마스터가 버스사이클을 재시도하면 이를 카운트하며, 상기 버스마스터가 구동한 버스사이클이 상기 재시도요구신호를 받지 않으면 상기 카운터의 카운트된 값을 클리어시키는 카운터제어부; 및 상기 카운터에서 카운트된값이 소정의 값 이상이면 상기 카운터에 상응하는 버스마스터가 버스 중재에 참가하지 못하도록 하는 신호를 발생하는 부하제어신호발생부를 포함함이 바람직하다.According to the present invention for achieving the above object, a bus traffic load control apparatus for controlling a bus traffic load of a shared memory multiprocessor system based on a bus and having two or more bus masters is allocated to each bus master. A counter unit consisting of counters; When a predetermined state bus indicating a bus state is monitored and a retry request signal causing bus traffic load is driven on the system bus, a counter of the counter unit assigned to the bus master receiving the retry request is A counter control unit for driving the bus master to retry the bus cycle, and clearing the counted value of the counter when the bus cycle driven by the bus master does not receive the retry request signal; And a load control signal generator for generating a signal for preventing a bus master corresponding to the counter from participating in bus arbitration when the value counted by the counter is equal to or greater than a predetermined value.
이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다. 도 1은 본 발명에 의한 버스트래픽 부하 제어장치가 적용되는 시스템버스를 기반으로 하고 공유메모리를 갖는 다중프로세서 시스템의 구성을 블록도로 도시한 것으로서, 버스마스터(bus master)역할을 하는 적어도 둘 이상의 프로세서보드(100, 110, 120), 버스트래픽부하 제어장치(130) 및 공유메모리(140)을 포함하여 이루어진다. 상기 각 프로세서 보드는 시스템버스의 사용을 위해 중재기를 구비하며, 버스 사용에 앞서 버스사용을 위해서는 상기 중재기를 통해 중재에 참가한다. 상기 시스템버스 중재방식은 분산자가중재(distributed self arbitration ) 방식으로, 각 프로세서보드마다 각기 따로 구동할 수 있는 하나의 버스 중재선(arbitration line)이 할당되어 있다. 버스 사용을 원하는 프로세서는 각각의 중재선을 구동하고, 다른 중재선과 비교하여 사용권의 획득여부를 스스로 결정한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. 1 is a block diagram showing a configuration of a multiprocessor system based on a system bus to which a bus traffic load control apparatus according to the present invention is applied and having a shared memory, and includes at least two processors serving as a bus master. It comprises a board (100, 110, 120), bus traffic
버스의 중재는 매 버스클럭 주기마다 이루어진다. 그러나 어드레스 버스 중재 금지신호가 구동되어 있으면 각각의 중재기는 중재에 참여하지 않거나 중재결과를 무시한다.Arbitration of the bus takes place every bus clock period. However, when the address bus arbitration prohibition signal is activated, each arbitrator does not participate in the arbitration or ignore the arbitration result.
도 2는 본 발명에 의한 버스 트래픽 부하 제어장치(bus traffic load controller )의 일실시예의 구성을 블록도로 도시한 것으로서, 카운터부(210), 카운터제어부(200), 부하제어신호발생부(220), 타이머(230), 프로세서(240)을 포함하여 이루어진다.Figure 2 is a block diagram showing the configuration of an embodiment of a bus traffic load controller according to the present invention, the
상기 카운터부(210)는 멀티프로세서시스템의 버스마스터 역할을 하는 보드마다 하나씩 할당된 카운터들로 이루어진다. 상기 카운터부(210)의 각 카운터는 프로그램가능한(programmable) 카운터이며, 소정의 값으로 세팅가능하고 카운트된 값을 클리어(clear)시키는 클리어단자를 구비한다. 도 2와 같이 상기 프로그램가능 카운터가 시스템 백플레인(backplane)에 프로세서 보드를 설치할 수 있는 갯수가 있고 이 카운터는 프로세서 ID로 구별된다.The
상기 카운터제어부(200)는 버스상태를 나타내는 소정의 상태버스 예를 들면 상기 SNK, LCR, AACK신호를 감시하고 있다가 상기 상태버스 중 버스트래픽 부하를 유발하는 재시도요구신호가 상기 시스템버스에 구동되면 상기 재시도요구를 받는 버스마스터에 할당된 상기 카운터부의 카운터를 구동시키고, 상기 버스마스터가 버스사이클을 재시도하면 이를 카운트하며, 상기 버스마스터가 구동한 버스사이클이 상기 재시도요구신호를 받지 않으면 상기 카운터의 카운트된 값을 클리어시키는 클리어신호를 구동한다. 상기 LCR신호는 잠금이 설정된 잠금영역의 데이터를 쓰고자 할 때, 상기 잠금영역에 대한 해제권이 있는 버스마스터가 다른 버스마스터가 상기 잠금영역을 억세스하지 못하게 하는 신호이며, 상기 AACK신호는 버스사이클이 정상적으로 수행되었을 때 공유메모리보드가 발생하는 신호이다.The
상기 부하제어신호발생부(220)는 상기 카운터에서 카운트된 값이 소정의 값 이상이면 상기 카운터에 상응하는 버스마스터가 버스 중재에 참가하지 못하도록 하는 신호를 발생한다. 상기 타이머(230)은 상기 부하제어신호발생부(220)에 연결되며, 상기 부하제어신호발생부(220)가 부하제어신호를 구동하고 있는 시간을 설정하는 프로그램가능한 타이머(timer)이다. 상기 프로세서(240)는 상기 프로그램가능한 카운터 및 상기 프로그램가능한 타이머를 소정의 값으로 설정한다.The load
상기의 구성에 의거하여 본 발명의 상기 실시예의 동작을 설명하면 다음과 같다. 상기 프로세서(240)에 의해 상기 카운터부(210)의 각 카운터에는 소정의 값 예를 들어 10이 설정된다. 그리고 상기 프로그램가능한 타이머(230)도 상기 프로세서(240)에 의해 상기 부하제어신호발생부(220)가 부하제어신호를 계속해서 구동하고 있는 시간이 설정된다.Referring to the operation of the embodiment of the present invention based on the above configuration is as follows. A predetermined value, for example, 10 is set in each counter of the
이렇게 된 후 먼저 카운터제어부(200)에 의해 버스사이클의 에러여부와 스누우프(snoop), 잠금(lock) 관련 상태 버스(AACK, SNK, LCR)신호가 감시된다. 이 때 버스사이클이 재시도를 요구하는 사이클, 즉 SNK 또는 LCR 사이클이 발생하면, 상기 SNK 또는 LCR신호를 당하는 프로세서 보드의 고유번호(ID)를 체크하여 상기 고유번호에 해당하는 상기 카운터부(210)의 카운터를 구동시킨다. 그리고 계속하여 상기 고유번호에 해당하는 프로세서보드가 재시도 버스사이클을 하여 상기 SNK 또는 LCR신호를 당하면, 즉 재시도되는 횟수를 카운터하여 상기 프로세서(240)에 의해 설정횟수(10)이 되면 카운트 완료신호를 발생하여 상기 부하제어신호발생부(220)에 이를 알린다. 그러면 상기 부하제어신호발생부(220)은 상기 카운터에 할당된 부하제어신호(ABINH)를 구동하여 상기 고유번호에 해당하는 프로세서보드가 재시도 버스사이클을 구동하지 못하도록 버스 중재에 참가하지 못하게 한다. 즉 상기 SNK, LCR 신호를 받은 버스사이클은 해당 프로세서 보드에 의해 재시도를 해야 하지만 ABINH 가 버스에 구동되어 있으면 중재에 참가하지 않으므로써 불필요한 연속적인 재시도를 방지한다.After this, first, the
이 때 상기 부하제어신호는 상기 프로그램가능한 타이머(230)에 설정된 시간동안 구동되고, 구동시간이 지나면 상기 프로세서보드는 다시 버스사용을 위해 버스 중재에 참가할 수 있게 된다. 이렇게 함으로써 일시적으로 버스사용을 제한하도록 하여 전체적인 버스트래픽 부하(load)를 조절하도록 한다.At this time, the load control signal is driven for the time set in the
한편, 상기 카운터가 카운트를 하다가 재시도 요구신호를 당하지 않고 정상적인 버스사이클을 수행하면 즉 AACK신호를 받으면 해당 카운터의 카운트된 값을 클리어시킨다. 그리고 버스 트래픽 부하 제어장치의 프로그램어블 카운터(210)와 타이머(230)는 프로세서(240)를 통해서 설정할 수 있고 시스템이 동작 중에 버스의 상태에 따라 적절히 모니터 프로그램이나 콘솔(console)을 통해 설정 값을 변경할 수도 있다.On the other hand, if the counter performs a normal bus cycle without receiving the retry request signal while receiving a count, that is, when the AACK signal is received, the counted value of the counter is cleared. In addition, the
본 발명에 의하면, 버스의 상태를 감시하여 재시도가 빈번히 발생하는 프로세서 보드에 대해 선별적으로 버스사용을 제한하여 전체적인 버스 트래픽 부하(load)를 조절하므로써 불필요한 재시도로 인한 버스의 포화를 방지하고 시스템의 성능을 향상시킬 수 있다.According to the present invention, by monitoring the state of the bus and selectively restraining the use of the bus for processor boards that frequently retry, the overall bus traffic load is controlled to prevent saturation of the bus due to unnecessary retries. Can improve the performance.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970009536A KR100449695B1 (en) | 1997-03-20 | 1997-03-20 | Device for controlling bus traffic load on multiprocessor system using shared memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970009536A KR100449695B1 (en) | 1997-03-20 | 1997-03-20 | Device for controlling bus traffic load on multiprocessor system using shared memory |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980073935A KR19980073935A (en) | 1998-11-05 |
KR100449695B1 true KR100449695B1 (en) | 2004-12-03 |
Family
ID=37366823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970009536A KR100449695B1 (en) | 1997-03-20 | 1997-03-20 | Device for controlling bus traffic load on multiprocessor system using shared memory |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100449695B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101030509B1 (en) * | 2004-01-30 | 2011-04-25 | 삼성전자주식회사 | Bus request signal generator device and system including the same |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5021950A (en) * | 1984-12-27 | 1991-06-04 | Kabushiki Kaisha Toshiba | Multiprocessor system with standby function |
KR970002699A (en) * | 1995-06-17 | 1997-01-28 | 김광호 | Traffic and load measurement circuit and method of serial communication bus between processors |
KR0139967B1 (en) * | 1992-11-30 | 1998-07-01 | 정장호 | Multi-frame transmission control circuit of global bus |
KR19980061553A (en) * | 1996-12-31 | 1998-10-07 | 이우복 | Available Bit Rate (ABR) Traffic Controller |
-
1997
- 1997-03-20 KR KR1019970009536A patent/KR100449695B1/en not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5021950A (en) * | 1984-12-27 | 1991-06-04 | Kabushiki Kaisha Toshiba | Multiprocessor system with standby function |
KR0139967B1 (en) * | 1992-11-30 | 1998-07-01 | 정장호 | Multi-frame transmission control circuit of global bus |
KR970002699A (en) * | 1995-06-17 | 1997-01-28 | 김광호 | Traffic and load measurement circuit and method of serial communication bus between processors |
KR0159659B1 (en) * | 1995-06-17 | 1998-12-15 | 김광호 | Serial telecommunication type bus of traffic between processor and load checking circuit and method thereof |
KR19980061553A (en) * | 1996-12-31 | 1998-10-07 | 이우복 | Available Bit Rate (ABR) Traffic Controller |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101030509B1 (en) * | 2004-01-30 | 2011-04-25 | 삼성전자주식회사 | Bus request signal generator device and system including the same |
Also Published As
Publication number | Publication date |
---|---|
KR19980073935A (en) | 1998-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100305138B1 (en) | Signaling Protocols for Parallel Access of Buses in Multiprocessor Systems | |
KR930000634B1 (en) | Method and apparatus for assuring adequate access to system resources by processors in a multiprocessor computer system | |
US5506971A (en) | Method and apparatus for performing a snoop-retry protocol in a data processing system | |
US5613075A (en) | Method and apparatus for providing deterministic read access to main memory in a computer system | |
US5392436A (en) | Two level system bus arbitration having lower priority multiprocessor arbitration and higher priority in a single processor and a plurality of bus masters arbitration | |
JPH0218657A (en) | Multiple bus microcomputer system | |
EP0658842A1 (en) | Watch dog timer device | |
US6115768A (en) | System and method for controlling main memory employing pipeline-controlled bus | |
KR100449695B1 (en) | Device for controlling bus traffic load on multiprocessor system using shared memory | |
US7558923B1 (en) | Prevention of live-lock in a multi-processor system | |
DE69535409T2 (en) | PROCESSOR THAT DISPLAYS SYSTEM BOOKS IN AN ADVANCED MULTIPROCESSOR COMPUTER SYSTEM | |
KR930004910Y1 (en) | Data bus arbitrator for multiprocessor system | |
KR930001586B1 (en) | Microcomputer system | |
JP2837893B2 (en) | Microcomputer device | |
JP3699529B2 (en) | Bus control device | |
JP2592525B2 (en) | Error detection circuit of common bus system | |
JP2614284B2 (en) | Reset circuit of data processing system | |
JPH08137785A (en) | Dma controller | |
KR930006309B1 (en) | Commander node method and apparatus for assuring adequate access to system resources in a multiprocessor computer system | |
KR0142289B1 (en) | System Bus Transmission Control System in Multi-Process System | |
JPH1139266A (en) | Multiprocessor device | |
KR930007049B1 (en) | Address bus arbitrator of multiprocessor system | |
KR950012510B1 (en) | Method for accessing a system bus between multi processors | |
KR0186024B1 (en) | Memory lock of multiprocessor computer | |
JPH0298769A (en) | Arithmetic processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20070830 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |