KR100328626B1 - Method for preventing dead lock of bus direction multiprocessing system - Google Patents

Method for preventing dead lock of bus direction multiprocessing system Download PDF

Info

Publication number
KR100328626B1
KR100328626B1 KR1019950067168A KR19950067168A KR100328626B1 KR 100328626 B1 KR100328626 B1 KR 100328626B1 KR 1019950067168 A KR1019950067168 A KR 1019950067168A KR 19950067168 A KR19950067168 A KR 19950067168A KR 100328626 B1 KR100328626 B1 KR 100328626B1
Authority
KR
South Korea
Prior art keywords
bus
flag
address
processor
read
Prior art date
Application number
KR1019950067168A
Other languages
Korean (ko)
Other versions
KR970049680A (en
Inventor
정병선
Original Assignee
엘지전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자주식회사 filed Critical 엘지전자주식회사
Priority to KR1019950067168A priority Critical patent/KR100328626B1/en
Publication of KR970049680A publication Critical patent/KR970049680A/en
Application granted granted Critical
Publication of KR100328626B1 publication Critical patent/KR100328626B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE: A method for preventing a dead lock of a bus direction multiprocessing system is provided to prevent a fatal error caused by a bus access retrial between processors by repeatedly reading a flag through processors, performing a locking operation if the flag is cleared, clearing the flag after completing a related operation in a corresponding processor in a locking process. CONSTITUTION: A processor judges whether a cache miss is generated at a reading period(ST100). If a cache miss is generated, a system bus using right is requested for accessing to a main memory. If an arbitration is successful(ST103), an address is operated on a bus(ST104) and it is judged whether a memory response with respect to the operated address exists(ST105). If the memory response exists, data are waited(ST106). If data are reached(ST107), a related cache status is updated or a shared related data is progressed(ST108). The cycle is completed(ST109), an address of other block is observed, an address bus is checked, and a reading flag/SHD flag is cleared(ST110). A bus period snoops continuously and it is judges whether a reading flag is set or not(ST111). If the reading flag is set and a bus access to other processor is reading period(ST112, ST113), a shared operation SHD flag is set and operated on a bus instead of a snack operation(ST114).

Description

버스방향 다중처리 시스템의 데드록 방지 방법How to Prevent Deadlock in Bus-Directed Multiprocessing Systems

본 발명은 다수의 프로세서가 버스를 공유하고 있는 다중 처리 시스템에서의 캐쉬 메모리에 의한 데드록 방지에 관한 것으로, 좀더 상세하게는 캐쉬 동일성 유지를 위해서 프로세서간에 서로가 버스 접근을 재시도 시킴으로써 서능저하는 물론 프로세서 갯수가 많아지면 데드 록(dead lock)까지 발생시켜서 시스템에 치명적인에러를 발생시킬 수 있는 문제를 해결하기 위한 버스방향 다중처리 시스템의 데드록방지 방법에 관한 것이다.The present invention relates to the prevention of deadlock by cache memory in a multiple processing system in which multiple processors share a bus. More specifically, the present invention relates to retrying bus access between processors in order to maintain cache identity. Of course, the present invention relates to a deadlock prevention method of a bus direction multiprocessing system to solve a problem in which a large number of processors may cause a dead lock and cause a fatal error in the system.

일반적으로, 시스템버스에 다수의 프로세서 보드와 메모리보드가 접속되어 있는 공유메모리 구조의 다중처리 시스템 버스는 클럭에 동기되어서 동작되는 동기화 버스이고 펜디드(pended) 프로토콜을 가지고 있다.In general, a multiprocessing system bus having a shared memory structure in which a plurality of processor boards and memory boards are connected to a system bus is a synchronization bus that operates in synchronization with a clock and has a pending protocol.

상기 펜디드 프로토콜은 버스상에서 요청주기와 응답주기가 분리되어 있고, 각각이 연속해서 발생될 수 있는 것이다.In the pending protocol, the request and response periods are separated on the bus, and each of them can be generated in succession.

즉 다시말해서, 하나의 프로세서 메모리에 데이타를 요청하는 것과 메모리에서 응답하는 것이 분리되어 있고 이 동안 다른 프로세서는 첫번째 프로세서가 버스상에 어드레스를 구동한 바로 그 다음 주기부터 연속해서 같은 동작을 진행할 수 있는 것이 펜디드 프로토콜이다.In other words, requesting data from one processor memory and responding from the memory are separate, while another processor can continue to perform the same operation continuously from the very next cycle in which the first processor drives an address on the bus. Is the pending protocol.

버스를 공유하는 다중 처리기 구조에서는 캐쉬 메모리를 두는데, 그 의미는 매우 크다.Multiprocessor architectures that share a bus have cache memory, which is very significant.

상기 캐쉬메모리는 프로세서와 주기억장치 사이에 위치하는 작은 용량의 고속 메모리로서 프로세서 접근시간을 향상시키고 버스상의 사용율(traffic)을 줄이는데 중요한 역할을 한다.The cache memory is a small high-speed memory located between the processor and the main memory, and plays an important role in improving processor access time and reducing traffic on the bus.

그런데 하드웨어 구현 측면에서 보면 매우 어려운 부분인데, 그 이유는 캐쉬메모리가 빠르고 그것의 동일성(coherency) 유지 때문이다.In terms of hardware implementation, however, it is very difficult because the cache memory is fast and maintains its coherency.

각각의 프로세서가 독립된 캐쉬메모리를 가지고 있고 여기에 항상 접근하기 때문에 각 캐쉬메모리를 사이에 같은 어드레스에 대한 동일성을 유지시켜 주는 것은 메우 중요하고 그렇지 못한 경우에는 시스템의 치명적인 에러가 된다.Because each processor has its own cache memory and always accesses it, keeping each cache memory the same for the same address is very important, otherwise it is a fatal error of the system.

제 1 도는 종래 버스방향 다중처리 시스템의 데드록 방지에 대한 신호흐름도로서, 이에 도시된 바와같이, 프로세서가 읽기 주기일때 캐쉬 판독 미스인가를 판단하여(단계; ST1) 자신의 캐쉬 히트(Hit)이면 캐쉬에 접근해서(단계; ST2) 원하는 데이타를 잃어 해당 주기를 끝낸다(단계; ST3).FIG. 1 is a signal flow diagram for the deadlock prevention of the conventional bus direction multiprocessing system. As shown in FIG. 1, it is determined whether the processor reads a cache read miss during a read cycle (step ST1). The cache is accessed (step ST2) and the desired data is lost (step ST3).

그리고, 상기 단계(5T1)에서 판단한 결과 캐쉬 판독 미스이면 주기억장치(main memory)에 접근하기 위해서 시스템버스 사용권을 요청하고 중재(arbitration)에서 성공할 경우(단계; ST4) 버스상에 어드레스를 구동하고(단계; ST5) 그 구동한 어드레스에 대한 메모리의 응답이 있는가를 판단한다(단계; ST6).If it is determined in step 5T1 that the cache read miss is requested, the system bus license is requested to access the main memory, and if it succeeds in arbitration (step ST4), the address is driven on the bus ( Step ST5) It is determined whether there is a response of the memory to the driven address (step ST6).

상기 판단한 결과 메모리 응답이 있으면 데이타를 기다리고 있다가(단계; ST7) 데이타가 도착하면(단계; ST8) 내부적으로 관련 캐쉬상태를 갱신하고 관련 데이타 프로세싱을 진행한다(단계; ST9).As a result of the determination, if there is a memory response, it waits for data (step; ST7), and when data arrives (step; ST8), the relevant cache state is updated internally and the related data processing is performed (step; ST9).

그리고, 사이클을 완료하고(단계; ST10) 다른 버스상의 어드레스 관찰과 어드레스 버스를 체크한다(단계; ST11).Then, the cycle is completed (step ST10) and the address observation on the other bus and the address bus are checked (step ST11).

이때 프로세서가 처음 버스상에 어드레스를 구동한 후에는 그 다음 버스 주기부터 지속적으로 버스상의 어드레스를 관찰하고 있다가(단계; ST12) 자기가 구동한 어드레스와 다른 프로세서가 버스상에 구동한 어드레스가 일치하면(단계; ST13) 제 2 도에서와 같이, 버스상에 스낵크(Snack)(Snoop ack)를 구동한다(단계; ST14).At this time, after the processor first drives an address on the bus, the processor continuously observes the address on the bus from the next bus cycle (step ST12). The address driven by the processor and the address driven by the other processor on the bus coincide. The lower surface (step; ST13) As in FIG. 2, a Snack (Snoop ack) is driven on the bus (step; ST14).

그러면 같은 어드레스를 구동한 다른 프로세서는 현재 시도했던 버스 주기가무의미 했다는 것을 알고 제 2 도와 같이, 그 주기를 다시 재반복 시도하게 된다.The other processor running the same address then knows that the current bus cycle was meaningless and attempts to repeat the cycle again, as in the second diagram.

이렇게 스낵크를 구동해서 자기의 원하는 시간동안 같은 어드레스에 다른 프로세서가 주기억장치 접근을 막는 것은 캐쉬 동일성 유지를 위해서 필요한 것이다.Running Snack this way prevents other processors from accessing the main memory at the same address for their desired time is necessary to maintain cache identity.

이때, 한 프로세서가 시스템버스 주기를 시작해서 내부 프로세싱을 진행하는 데는 버스 클럭 기준으로 최소한 10클럭 이상의 긴 시간이 필요하다.At this time, one processor needs a long time of at least 10 clocks based on a bus clock to start a system bus cycle and perform internal processing.

그러나, 이와같은 종래 버스방향 다중처리 시스템의 데드록 방지방법은 다중 처리기 시스템의 운영체제에서는 다수의 프로세서가 각각의 프로세스를 수행하다가 특정 경우에는 각 프로세서의 동작을 동기화 시켜야만 하는 경우가 있는데 이때는 잠금(Locking) 기능을 이용한다.However, the deadlock prevention method of the conventional bus-oriented multiprocessing system requires that multiple processors perform their respective processes in the operating system of the multiprocessor system, but in some cases, the operations of each processor must be synchronized. ) Function.

잠금 기능이란 다수 프로세서가 한 어드레스에 플래그를 쓰고 지우고 함으로써 동작을 동화시킨다.The lock function assimilates operations by multiple processors writing and clearing flags at one address.

이때 다수의 프로세서가 한 어드레스에 동시에 접근하는데 이때 상기에서 설명한 것과 같이 한 프로세서가 버스에 접근해서 내부의 프로세싱을 끝낼때까지의 긴 시간동안 스낵크를 구동시켜서 다른 프로세서의 접근을 재 반복시키는데, 여러 프로세서가 연속된 버스 주기로한 어드레스에 접근하고 또한 읽기와 쓰기가 섞여서 발생하면 서로가 스낵크를 구동시켜 쓸데없는 버스 접근을 반복해서 성능저하를 가져오고, 프로세서가 많아질 경우에는 무한 재반복 주기에 들어가서 시스템의 치명적인 상황을 발생시킬 수 있는 문제점이 있었다.At this time, multiple processors access one address at the same time. As described above, a processor runs a snack for a long time until the processor accesses the bus and finishes the internal processing. When a processor accesses an address in successive bus cycles and also mixes reads and writes, each other drives a snack to repeatedly useless bus accesses, resulting in performance degradation and infinite repetition cycles if more processors are used. There was a problem that could lead to a fatal situation in the system.

따라서, 본 발명의 목적은 이와같은 종래의 문제점을 감안하여 잠금동작시 프로세서들을 통해 플래그를 반복해서 판독한 후 플래그가클리어 되어 있으면 잠금동작을 수행하고 해당 프로세서는 관련 동작을 완료 후에 플래그를 클리어 하여 프로세서간의 버스접근 재 시도에 의한 치명적인 에러를 방지하도록 하는 버스방향 다중처리 시스템의 데드록 방지 방법을 제공함에 있다.Accordingly, an object of the present invention is to read the flag repeatedly through the processor during the lock operation in view of the conventional problem, and if the flag is clear, perform the lock operation and the processor clears the flag after completing the related operation The present invention provides a method for preventing deadlock in a bus direction multiprocessing system that prevents a fatal error due to a retry between buses between processors.

상기와 같은 목적을 달성하기 위한 본 발명 버스방향 다중처리 시스템의 데드록 방지 방법은 프로세서가 보드내부에서 캐쉬미스가 나고 시스템 버스에 자기자신의 버스 주기가 읽기인지 쓰기인지를 판단하여 읽기인 경우에 읽기 관련 버스주기를 시작 했다는 판독 플래그를 설정하는 단계와; 상기 버스상에 어드레스를 구동하고 나서 메모리에서 데이타가 도착하기 전까지 버스상태를 스눕핑하고 있다가 파이프 라인 매치이고 다른 프로세서의 버스 접근이 읽기인 경우에 SHD 플래그를 설정하고 버스상에 샤드를 구동하며 쓰기인 경우에는 스낵크를 구동하여 샤드를 한 번이라도 구동한 경우에는 데이타 도착후 자신의 캐쉬상태도 샤드로 갱신하는 단계와; 이후 주기억장치로 부터 데이타가 도착한 이후부터 내부 프로세싱을 마칠때까지 파이프라인 매치이면 스낵크를 구동시켜 재 반복시키는 단계로 이루어짐을 특징으로 한다.The deadlock prevention method of the bus direction multi-processing system of the present invention for achieving the above object is a case where the processor has a cache miss inside the board and reads it by determining whether its bus period is read or write on the system bus. Setting a read flag indicating that a read-related bus cycle has been started; After driving an address on the bus and snooping the bus state until data arrives in memory, it sets the SHD flag and drives the shard on the bus when the pipeline match and the bus access of another processor is read. In the case of writing, driving the snack and updating the cache state of the cache to the shard after the data arrives if the shard is driven at least once; After the data arrives from the main memory until the end of the internal processing, if the pipeline matches the snack is characterized in that it consists of a step of repetition.

이하, 본 발명을 첨부한 도면에 의거 상세히 설명하면 다음과 같다.Hereinafter, described in detail with reference to the accompanying drawings of the present invention.

제 3 도는 된 발명 버스방향 다중처리 시스템의 데드록 방지에 대한 신호흐름도로서, 이에 도시한 바와같이, 캐스 메모리의 판독이 미스인가를 판단하는 단계(ST100)와; 상기 캐스 판독 미스가 아니면 캐쉬에 접근해서 원하는 데이타를 판독하고 해당 주기를 끝내는 단계(ST101, ST102)와; 상기 캐스 판독 미스이면 시스템버스 사용권을 요청하고 중재에 성공하였는가를 판단하는 단계(ST103)와; 상기시스템 버스 중재 성공이면 어드레스 버스를 구동하고 어드레스 응답이 있는가를 판단하는 단계(ST104, ST105)와; 상기 어드레스 응답이 있으면 데이타를 기다리고 있다가 데이타가 도착하면 내부적으로 관련 캐수상태를 갱신 또는 샤드(Shared)관련 데이타를 처리하고 사이클을 완료하는 단계(ST106 - ST109)와; 상기 사이클 완료후 그 다음 주기부터 디스에이블된 어드레스관찰과 체크하여 판독 플래그와 SHD 플래그를 클리어하는 단계(ST110)와; 상기 시스템버스 중재 성공후 캐스블 판독 주기때 판독 플래그가 세팅되었는가를 검색하는 단계(ST111)와; 상기 판독 플래그 세팅이면 버스상의 어드레스 관찰과 샤드 또는 스낵크를 구동하는 단계(ST112)와; 상기 샤드 또는 스낵크 구동후 어드레스 일치 및 다른 마스터 판독 사이클이 있는가를 판단하는 단계(ST113)와; 상기 어드레스 일치 또는 다른 마스터로 부터의 판독 사이클이 있드면 샤드를 구동하여 SHD 플래그 세팅하는 단계(ST114)와; 상기 단계(ST111)에서 판단한 결과 판독 플래그가 세트되어 있지 않으면 버스상의 어드레스 관찰과 어드레스 버스를 체크하여 일치하는 가를 판단하는 단계(ST115, ST116)와; 상기 판단한 결과 일치 하거나 또는 단계(ST113)에서 판단한 결과 다른 마스터 판독 사이클이 없을 경우에는 스낵크온버스를 구동하는 단계(ST117)와; 상기 단계(ST107)에서 수신한 데이타를 가지고 판독 플래그가 세팅되었는가를 판단하는 단계(ST118)와; 상기 판독 플래그 세팅이면 디스에이블된 어드레스 관찰과 샤드 또는 스낵크 구동 및 인에이블 어드레스를 관찰하고 어드레스가 일치하는가를 판단하는 단계(ST119, ST120)와; 상기 어드레스 일치이면 스낵크 온버스를 구동하는 단계(ST121)로 이루어진다.3 is a signal flow diagram for deadlock prevention of the inventive bus-direction multiprocessing system, as shown therein, determining whether the read of the cas memory is missed (ST100); Accessing the cache to read the desired data and ending the cycle if it is not the cache read miss (ST101, ST102); Requesting a system bus license if it is the cas read miss and determining whether the mediation is successful (ST103); If the system bus arbitration is successful, driving an address bus and determining whether there is an address response (ST104, ST105); Waiting for data if there is an address response, and internally updating a relevant number of caches or processing shard (Shared) related data internally and completing a cycle (ST106-ST109); Clearing the read flag and the SHD flag by checking and checking the disabled address from the next period after the cycle is completed (ST110); Retrieving whether a read flag is set in a casable read period after the successful system bus arbitration (ST111); Driving address observation on the bus and shards or snacks if the read flag is set (ST112); Determining whether there is an address match and another master read cycle after driving the shard or snack (ST113); Driving a shard to set an SHD flag if there is a read cycle from the address match or another master (ST114); If it is determined in the step ST111 that the read flag is not set, determining whether or not the address observation on the bus and the address bus coincide (ST115, ST116); Driving a snack-on bus when the result of the determination is identical or there is no other master read cycle as a result of the determination in step ST113 (ST117); Judging whether or not a read flag is set based on the data received in step ST107; Observing the disabled address observation and the shard or snack drive and enable address if the read flag setting is set, and determining whether the addresses match (ST119, ST120); If the address matches, the step of driving Snack on Bus (ST121) is performed.

이와같이, 이루어진 본 발명의 작용 효과를 제 3 도 및 제 4 도를 참조하여 상세히 설명하면 다음과 같다.Thus, the working effect of the present invention made in detail with reference to FIGS. 3 and 4 as follows.

먼저, 프로세서가 읽기 주기일때 캐쉬 판독 미스인가를 판단하여(단계; ST100) 자신의 캐쉬 히트(Hit)이면 캐쉬에 접근해서(단계; ST101)원하는 데이타를 읽어 해당 주기를 끝낸다(단계; ST102).First, it is determined whether or not the cache read miss occurs when the processor is in a read cycle (step ST100), and if the cache hit (Hit) is its own, the cache is accessed (step ST101), and the desired data is read (step ST102).

그리고, 상기 단계(ST100)에서 판단한 걸과 캐쉬 판독 미스이면 주기억장치(main memory)에 접근하기 위해서 시스템버스 사용권을 요청하고 중재(arbitration)에서 성공할 경우(단계; ST103) 버스상에 어드레스를 구동하고(단계; ST104) 그 구동한 어드레스에 대한 메모리의 응답이 있는가를 판단한다(단계; ST105).If it is determined in step ST100 and the cache read miss, the system bus is requested to access the main memory, and if it succeeds in arbitration (step ST103), the address is driven on the bus. (Step ST104) It is determined whether there is a response of the memory to the driven address (step ST105).

상기 판단한 결과 메모리 응답이 있으면 데이타를 기다리고 있다가(단계; ST106) 데이타가 도착하면(단계; ST107) 내부적으로 관련 캐쉬 상태를 갱신 또는 샤드 관련 데이타 프로세싱을 진행한다(단계; ST108).As a result of the determination, if there is a memory response, data is waited (step ST106), and when data arrives (step ST107), the cache status is updated internally or the shard-related data processing is performed (step ST108).

그리고, 사이클을 완료하고(단계; ST109) 다른 버스상의 어드레스 관찰과 어드레스 버스 체크 및 판독 플래그/SHD 플래그를 클리어 한다(단계; ST110).Then, the cycle is completed (step ST109) and the address observation on another bus and the address bus check and read flag / SHD flag are cleared (step ST110).

이때 프로세서가 처음 버스상에 어드레스를 구동하고 나서 자기자신이 읽기 관련 버스 주기를 시작했다는 판독 플래그를 설정한다.At this point, the processor sets the read flag that it has started a read-related bus cycle since the first drive on the bus.

이후, 버스 주기를 지속적으로 스눕핑하고 있다가 캐쉬블 판독 주기때 자신의 판독 플래그가 세팅되었는가를 판단하여(단계; ST111) 자신의 판독 주기가 설정되어 있고 다른 프로세서의 버스 접근이 읽기주기인 경우(단계; ST112, ST113) 버스상에 스낵크를 구동하는 대신 샤드 구동 SHD 플래그를 세팅하여 구동한다(단계; ST114).Subsequently, when the bus cycle is continuously sniffed and it is determined whether the read flag is set at the cache read cycle (step 111), the read cycle is set and the bus access of another processor is the read cycle. (Step; ST112, ST113) Instead of driving a snack on the bus, it is driven by setting the shard drive SHD flag (step; ST114).

그리고, 상기 단계(ST111)에서 캐시블 판독 사이클주기때 판독 플래그가 세트되어 있지 않으면 버스상의 어드레스를 스눕핑하고 있다가 어드레스 버스를 체크하여(단계; ST115) 어드레스가 일치하는가를 판단하게 된다(단계; ST116).If the read flag is not set during the cacheable read cycle period in step ST111, the address on the bus is snooped and the address bus is checked (step ST115) to determine whether the addresses match (step ST115). ; ST116).

상기 판단한 결과 어드레스 버스가 일치하면 스낵크 온버스를 구동한다(단계; ST117).As a result of the determination, if the address buses match, Snack on bus is driven (step ST117).

그리고, 상기 단계(ST114)에서 버스상에 SHD 신호가 구동되면 읽기관련 버스접근을 시도했던 프로세서는 재 반복을 하는 것이 아니라 정상적인 읽기를 수행한 후 자기 캐쉬 상태를 S로 갱신하고 주기억장치도 버스상에 스낵크가 구동되면 응답을 하지 않았으나 SHD가 구동되면 제 4 도와 같이, 정상 응답을 하게 된다.When the SHD signal is driven on the bus in step ST114, the processor that attempted to access the read-related bus does not repeat, but after performing a normal read, updates its cache state to S and the main memory is also on the bus. If the snack is driven, but did not respond, but when the SHD is driven, as in the fourth degree, the normal response.

이때 물론 판독 플래그가 설정된 후 버스동작을 스눕핑시 다른 프로세서의 버스 접근이 읽기 주기 이외의 경우에는 스낵크를 구동해서 재 반복시킨다.At this time, of course, when sniffing the bus operation after the read flag is set, when the bus access of another processor is other than the read period, the snack is driven and repetitive.

그리고, 상기 단계(ST107)에서 데이타가 도착한 후에는 버스 스눕핑시 버스 접근의 형태(읽기/쓰기)에 관계없이 파이프라인 매치만 발생하면 스낵크를 발생시켜서 재반복시키고 내부 프로세싱을 진행한 후 스낵크 발생회로를 무효화(디스에이블)시킨다(단계; ST110).After the data arrives in step ST107, if a pipeline match is generated regardless of the type of bus access (read / write) during bus snooping, a snack is generated and repeated, and the internal processing is performed. Invalidate (disable) the generation generating circuit (step ST110).

그리고, 내부 프로세싱시 SHD 플래그가 설정되어 있으면(단계; ST118) 자신의 캐쉬상태를 갱신시 V로 갱신하는 것이 이니고 S로 갱신하고 판독 플래그와 SHD 플래그 설정을 해제한다(단계; ST110)If the SHD flag is set during internal processing (step ST118), it is not updating the cache state of itself with V at the time of updating, and the read flag and the SHD flag are released (step ST110).

실제적으로 운영체제나 하드웨어 시험 프로그램의 경우 잠금 동작의 플래그 시험 동작(플래그가 설정되어 있으면 계속 반복주기 진행됨, 실제 하드웨어 동작은 공유 영역의 한 어드레스에 대한 읽기 주기)에서 모든 프로세서가 한 어드레스에 대한 동시 접근이 발생하기 때문에 본 발명에서와 같이 설계와 구현이 큰 효과를 볼 수 있다.In practice, for operating systems or hardware test programs, all processors access concurrently to one address in the flag test operation of the lock operation (if the flag is set, iteration cycles, and the actual hardware operation reads from one address in the shared area). Because of this, the design and implementation can have a great effect as in the present invention.

그리고, 본 발명에서의 캐쉬 동일성 유지 관련 캐쉬 상태에서의 V(Valid - exclusive)로의 갱신은 유효한 데이타가 주기억장치와 한 캐쉬에만 있는 상태를 표시하는 것으로서, 프로세서 읽기 주기이고 캐쉬미스이고 주기억장치로 부터 데이타를 가져오는 경우 상태가 V로 갱신된다.In the present invention, the update to the cache (Valid-exclusive) in the cache identity maintenance-related cache state indicates that valid data exists only in the main memory and one cache, and is a processor read period, a cache miss, and a main memory. When getting data, the status is updated to V.

그리고, S(Shared)로의 갱신은 유효한 데이타를 주기억장치와 2개 이상의 캐쉬가 공유하고 있는 상태를 표시한 것으로서, 프로세서 읽기이고 캐쉬미스 이어서 주기억장치로 부터 데이타를 가져오는 경우 기존에 V상태 또는 S상태로 가지고 있는 캐쉬가 있고 이것이 버스상에 샤드신호를 구동시켜서 버스에 접근한 프로세서와 자기 자신들의 캐쉬 상태를 S로 갱신한다.In addition, the update to S (Shared) indicates a state in which valid data is shared by the main memory and two or more caches, and when the processor reads and caches the data from the main memory, the existing V state or S There is a cache in the state, which drives the shard signal on the bus to update the cache state of the processor and its own cache to S.

그리고 D(Dirty)는 유효한 데이타가 한 캐쉬에만 있는 상태를 표시하는 것으로서, 쓰기가 발생한 경우 캐쉬 리프레스멘트 방식이 기록-백 방식이기 때문에 더티 상태를 가지고 있는 캐쉬가 버스상태를 스눕핑하고 있다가 파이프라인 매치인 경우만 해당 프로세서들을 재 반복시키고 그 데이타를 주기억장치에 기록백한다.D (Dirty) indicates the state that valid data exists in only one cache. When a write occurs, the cache with dirty state is sniffing the bus state because the cache response method is a write-back method. Only in the case of a pipeline match, the processors are iterated again and the data is written back to main memory.

그리고, I(Invalid)는 캐쉬 내용이 무효하다는 것을 나타낸다.I (Invalid) indicates that the cache contents are invalid.

이상에서 상세히 설명한 바와같이, 본 발명에 따르면 잠금동작시에 프로세서들을 통해 플래그를 반복해서 판독한 후 플래그가 클리어 되어 있으면 잠금 동작을 수행하고 해당 프로세서는 관련 동작을 완료후에 플래그를 클리어 하여 줌으로써, 프로세서간의 버스접근 재 시도에 의한 치명적인 에러가 방지되는 효과가 있다.As described in detail above, according to the present invention, the flag is repeatedly read through the processors during the lock operation, and if the flag is cleared, the lock operation is performed and the processor clears the flag after completing the related operation. A fatal error caused by retrying a bus access between them is prevented.

제 1 도는 종래 버스방향 다중처리 시스템의 데드록 방지에 대한 신호흐름도.1 is a signal flow diagram for deadlock prevention in a conventional bus direction multiprocessing system.

제 2 도는 제 1 도에 의한 버스 상황 샘플링 상태의 테이블도.2 is a table diagram of a bus state sampling state according to FIG.

제 3 도는 본 발명 버스방향 다중처리 시스템의 데드록 방지에 대한 신호흐름도.3 is a signal flow diagram for deadlock prevention in a bus-oriented multiprocessing system of the present invention.

제 4 도는 제 3 도에 의한 버스 상황 샘플링 상태의 테이블도.4 is a table of bus state sampling states according to FIG.

***** 도면의 주요부분에 대한 부호의 설명 ********** Explanation of symbols for main parts of drawing *****

S : 샤드 V : 밸리드 익스크루시브S: Shard V: Valleyd Exclusive

D : 더티 I : 인벨리드D: Dirty I: Envelop

Claims (1)

프로세서가 보드내부에서 캐쉬미스가 나고 시스템 버스에 자기자신의 버스 주기가 읽기인지 쓰기인지를 판단하여 읽기인 경우에 읽기관련 버스주기를 시작 했다는 판독 플래그를 설정하는 단계와;Setting a read flag indicating that the processor has started a read-related bus cycle when the processor detects a cache miss in the board and determines whether the bus cycle is a read or write on the system bus; 상기 버스상에 어드레스를 구동하고 나서 메모리에서 데이타가 도착하기 전까지 버스상태를 스눕핑하고 있다가 파이프라인 매치이고 다른 프로세서의 버스 접근이 읽기인 경우에 SHD플래그를 설정하고 버스상에 샤드를 구동하며 쓰기인 경우에는 스낵크를 구동하여 샤드를 한 번이라도 구동한 경우에는 데이타 도착후 자신의 캐쉬상태도 샤드로 갱신하는 단계와;After driving an address on the bus, it snoops the bus state until data arrives in memory, sets an SHD flag and drives a shard on the bus when the pipeline matches and another processor's bus access is read. In the case of writing, driving the snack and updating the cache state of the cache to the shard after the data arrives if the shard is driven at least once; 이후 주기억장치로 부터 데이타가 도착한 이후부터 내부 프로세싱을 마칠때까지 파이프라인 매치이면 스낵크를 구동시켜 재 반복시키는 단계로 이루어짐을 특징으로 한 버스방향 다중처리 시스템의 데드록 방지 방법.After the data arrives from the main memory until the end of the internal processing, if the pipeline matches the method to prevent the deadlock of the bus direction multi-processing system characterized in that the step of driving the snacks and repeating.
KR1019950067168A 1995-12-29 1995-12-29 Method for preventing dead lock of bus direction multiprocessing system KR100328626B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950067168A KR100328626B1 (en) 1995-12-29 1995-12-29 Method for preventing dead lock of bus direction multiprocessing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950067168A KR100328626B1 (en) 1995-12-29 1995-12-29 Method for preventing dead lock of bus direction multiprocessing system

Publications (2)

Publication Number Publication Date
KR970049680A KR970049680A (en) 1997-07-29
KR100328626B1 true KR100328626B1 (en) 2002-08-13

Family

ID=37479026

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950067168A KR100328626B1 (en) 1995-12-29 1995-12-29 Method for preventing dead lock of bus direction multiprocessing system

Country Status (1)

Country Link
KR (1) KR100328626B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101200691B1 (en) 2010-11-30 2012-11-12 한양대학교 에리카산학협력단 Method and apparatus for tolerating multi cell upsets on content addressable memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930008606A (en) * 1991-10-04 1993-05-21 루이스 피. 엘빈저 Devices to Prevent Processor Deadlocks in Multiprocessor Systems
JPH06110848A (en) * 1992-09-30 1994-04-22 Mitsubishi Heavy Ind Ltd Shared memory access method
JPH06131295A (en) * 1992-10-16 1994-05-13 Hitachi Ltd Bus converting device
JPH06332867A (en) * 1993-05-21 1994-12-02 Fujitsu Ltd Bus interface inside buffer control system
US5442763A (en) * 1991-09-11 1995-08-15 International Business Machines Corporation System and method for preventing deadlock in multiprocessor multiple resource instructions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442763A (en) * 1991-09-11 1995-08-15 International Business Machines Corporation System and method for preventing deadlock in multiprocessor multiple resource instructions
KR930008606A (en) * 1991-10-04 1993-05-21 루이스 피. 엘빈저 Devices to Prevent Processor Deadlocks in Multiprocessor Systems
JPH06110848A (en) * 1992-09-30 1994-04-22 Mitsubishi Heavy Ind Ltd Shared memory access method
JPH06131295A (en) * 1992-10-16 1994-05-13 Hitachi Ltd Bus converting device
JPH06332867A (en) * 1993-05-21 1994-12-02 Fujitsu Ltd Bus interface inside buffer control system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101200691B1 (en) 2010-11-30 2012-11-12 한양대학교 에리카산학협력단 Method and apparatus for tolerating multi cell upsets on content addressable memory

Also Published As

Publication number Publication date
KR970049680A (en) 1997-07-29

Similar Documents

Publication Publication Date Title
US5796977A (en) Highly pipelined bus architecture
US6959364B2 (en) Partially inclusive snoop filter
JP3927556B2 (en) Multiprocessor data processing system, method for handling translation index buffer invalidation instruction (TLBI), and processor
JP3737834B2 (en) Dual cache snoop mechanism
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US6330643B1 (en) Cache coherency protocols with global and local posted operations
US5426765A (en) Multiprocessor cache abitration
KR0163231B1 (en) Coherency and synchronization mechanisms for i/o channel controller in a data processing system
EP0777184B1 (en) Cache coherency method and system
EP0856796B1 (en) Variable-grained memory sharing for clusters of symmetric multi-processors
US7076613B2 (en) Cache line pre-load and pre-own based on cache coherence speculation
US6434641B1 (en) System for reducing the number of requests presented to a main memory in a memory storage system employing a directory-based caching scheme
US6145059A (en) Cache coherency protocols with posted operations and tagged coherency states
JPH09138779A (en) Snoop processing method
US6374332B1 (en) Cache control system for performing multiple outstanding ownership requests
US5261106A (en) Semaphore bypass
US5226146A (en) Duplicate tag store purge queue
JPH08328957A (en) System and method for enhancement of cache performance in multiprocessing system
US6105108A (en) Method and apparatus for releasing victim data buffers of computer systems by comparing a probe counter with a service counter
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US5263144A (en) Method and apparatus for sharing data between processors in a computer system
US20060179175A1 (en) Method and system for cache utilization by limiting prefetch requests
US5426754A (en) Cross-interrogate method and means for combined scaler and vector processing system
US6178484B1 (en) DCBST with ICBI mechanism to maintain coherency of bifurcated data and instruction caches
JPH06243108A (en) Method and system for maintaining data coherency

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090302

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee