KR19980085278A - 다중처리 시스템의 캐시메모리 검사방법 - Google Patents

다중처리 시스템의 캐시메모리 검사방법 Download PDF

Info

Publication number
KR19980085278A
KR19980085278A KR1019970021336A KR19970021336A KR19980085278A KR 19980085278 A KR19980085278 A KR 19980085278A KR 1019970021336 A KR1019970021336 A KR 1019970021336A KR 19970021336 A KR19970021336 A KR 19970021336A KR 19980085278 A KR19980085278 A KR 19980085278A
Authority
KR
South Korea
Prior art keywords
cache memory
memory
cache
inspection
shared memory
Prior art date
Application number
KR1019970021336A
Other languages
English (en)
Other versions
KR100230454B1 (ko
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 KR1019970021336A priority Critical patent/KR100230454B1/ko
Priority to CN98105549A priority patent/CN1129076C/zh
Priority to JP10100617A priority patent/JPH10333990A/ja
Priority to US09/084,925 priority patent/US6170070B1/en
Publication of KR19980085278A publication Critical patent/KR19980085278A/ko
Application granted granted Critical
Publication of KR100230454B1 publication Critical patent/KR100230454B1/ko

Links

Classifications

    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/104Embedded memory devices, e.g. memories with a processing device on the same die or ASIC memory designs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

본 발명은 버스를 기반으로 하는 공유메모리 구조를 가지며, 버스의 마스터 역할을 하는 복수의 프로세서모듈 및 프로세서모듈이 공유하는 데이터를 저장하는 공유 메모리모듈을 구비한 다중처리시스템에서 각 프로세서 모듈이 캐시메모리를 구비하고 있을 때, 캐시메모리를 검사하는 방법에 관한 것으로서, 캐시메모리 검사를 위한 검사영역과 캐시메모리 검사 프로그램이 위치하는 코드영역으로 캐시메모리를 분할하는 단계; 공유메모리 상에 저장되는 검사프로그램을 캐시메모리 내 검사프로그램 영역에 대응하도록 위치시키는 단계; 및 공유메모리에 저장된 검사프로그램을 독출하여 캐시메모리의 코드영역에 저장시키고 실행하는 단계를 포함함을 특징으로 한다.
본 발명에 의하면, 캐시 전체영역을 검사영역과 검사프로그램영역을 구분하면 검사영역만을 집중적으로 검사할 수 있으므로 검사성능이 매우 향상된다. 또한 캐시와 공유메모리 사이에서 발생할 수 있는 모든 버스사이클을 검사에 참가한 모든 보드들이 순차적으로 동기를 맞추어 발생시키므로 검사 프로그램의 신뢰성이 높아진다.

Description

다중처리 시스템의 캐시메모리 검사방법
본 발명은 캐시메모리 시험방법에 관한 것으로서, 특히 버스를 기반으로 한 공유메모리 구조를 갖고 각 처리장치가 캐시메모리를 갖는 다중처리시스템에서 상기 공유메모리와 각 처리장치 사이에 위치하는 캐시메모리의 시험방법에 관한 것이다.
일반적으로 버스를 기반으로 하는 공유메모리(shared memory)에 기초한 멀티프로세서(multiprocessor) 시스템에서 각각의 프로세서(processor)는 시스템 버스를 통해 공유메모리 자원을 접근하게 된다. 이 때 시스템을 구성하는 프로세서의 수가 많을수록, 상기 프로세서는 버스를 요구하는 마스터(master) 역할을 하게 되므로 시스템 버스사용권에 대한 경쟁은 심화된다. 마이크로프로세서(microprocessor)의 처리속도가 혁신적으로 빨라짐으로 인해 마이크로프로세서와 시스템 버스의 처리속도 차이는 더욱 크게 나타나는 양상을 보이고 있다.
따라서 멀티프로세서 시스템에서 각각의 프로세서 내에 속도가 빠른 캐시(cache)메모리를 탑재하는 것은 거의 일반화된 현상이 되었다. 캐시메모리는 프로세서와 공유메모리 사이에 위치하는 하드웨어 자원으로서, 프로세서가 시스템 버스를 통해 공유메모리 자원을 접근하는 대신 각각의 프로세서 자신이 최근에 가장 자주 접근하는 데이터를 프로세서 보드(board) 내의 속도가 빠른 메모리에 담아두고 사용함으로써 시스템 성능향상을 도모할 수 있게 하는 속도가 빠른 메모리이다. 캐시메모리의 채택으로 버스 마스터들의 시스템 버스 사용권에 대한 경쟁은 완화되어 시스템 버스의 사용효율은 증대된다. 특히 여러 프로세서가 서로 다른 프로그램을 수행하는 다중처리장치 시스템에서 캐시메모리는 프로세서간 공유데이터를 저장하기도 한다. 이 때 캐시메모리 내의 데이터를 변경할 때는 캐시메모리의 데이터 일관성 유지를 위해서 다른 프로세서에 이를 알려주어야 한다. 그리고 프로세서가 공유메모리로부터 자신의 캐시메모리로 데이터를 읽어온 후 이를 변경한 경우에는 다른 프로세서가 상기 변경된 데이터를 공유메모리에게 요구하는지를 늘 감시하고 있어야 한다. 만일 다른 프로세서가 변경된 데이터를 공유메모리에게 요구하면, 상기 변경된 데이터를 가지고 있는 프로세서는 먼저 다른 프로세서가 상기 공유메모리를 억세스하는 것을 막고, 자신이 변경한 데이터를 공유메모리에 먼저 기록을 하여야 한다. 그리고 나서 상기 다른 프로세서는 다시 상기 공유메모리를 억세스한다. 이러한 캐시메모리의 데이터 일관성에 관한 로직은 매우 정교하고 그 동작이 안정적이어야 한다.
따라서 캐시메모리를 효율적이고 다각적으로 검사하는 것은 시스템 안정화 측면 뿐만아니라 개발기간 단축 측면에서도 매우 중요하다. 도 1은 다중처리시스템의 일반적인 구조를 도시한 것으로서, 다수의 프로세서모듈(100), 입출력처리모듈(110) 및 공유메모리(120)가 시스템 버스(130)를 통하여 서로 연결되어 있다. 상기 프로세서모듈은 중앙처리장치(CPU, 102)와 캐시메모리(104)를 구비한다.
일반적으로 상기 캐시메모리(104) 검사는 다음과 같은 순서로 수행한다. 먼저, 상기 캐시메모리를 검사하기 위한 검사프로그램을 상기 공유메모리로부터 독출하여 상기 캐시메모리(104)에 저장한다. 그러면 상기 캐시메모리(104)는 상기 검사프로그램이 위치한 코드영역과 그 외의 검사영역이 혼재하게 된다. 그리고 나서 상기 검사프로그램을 실행하여 캐시메모리 검사를 하게 된다. 이 때, 상기 검사프로그램이 실행이 되다가 상기 검사프로그램이 위치한 코드영역에 데이터를 기록하게 될 경우가 발생할 수 있다. 이러한 경우에는 상기 검사프로그램이 Flush 된다. 캐시메모리 검사를 계속하기 위해서는 CPU는 다시 상기 공유메모리로부터 검사프로그램을 독출하여야 한다. 이렇게 할 경우, 캐시메모리를 검사하는 시간이 길어지는 단점이 있다. 또한 상기 캐시메모리를 제대로 검사하기 위해서는 상기 캐시메모리의 데이터 일관성을 유지하기 위한 하드웨어 로직(hardware logic)에 가능한 한 많은 부하(load)를 가해줄 필요가 있다.
본 발명이 이루고자 하는 기술적 과제는, 상술한 문제점을 해결하고 보다 효율적이며 다각적으로 캐시메모리를 검사하기 위해, 버스를 기반으로 하고 공유메모리 구조를 갖는 다중처리시스템에서의 캐시메모리 검사방법을 제공하는 것이다.
도 1은 다중처리시스템의 일반적인 구조를 도시한 것이다.
도 2은 수학식 1을 사용하여 공유메모리의 데이터가 캐시메모리에 매핑되는 예를 도시한 것이다.
도 3는 본 발명에 의한 캐시메모리 검사방법이 적용되는 바람직한 다중처리시스템의 구성을 블록도로 도시한 것이다.
도 4는 직접매핑 방식을 사용하는 캐시메모리에서의 영역분할과 공유메모리에서의 검사프로그램위치를 도시한 것이다.
도 5는 2-웨이 세트 연관매핑 방식을 사용하는 캐시메모리에서의 영역분할과 공유메모리에서의 검사프로그램 위치를 도시한 것이다.
도 6은 캐시검사를 위한 기능블록별 전체적인 흐름도를 도시한 것이다.
도 7은 사용자 인터페이스부의 동작흐름을 도시한 것이다.
도 8은 동기화부에서의 동기화를 수행하는 동작을 흐름도로 도시한 것이다.
상기의 기술적 과제를 해결하기 위한, 본 발명에 의한 다중처리시스템에서의 캐시메모리 검사방법은, 버스를 기반으로 하는 공유메모리 구조를 가지며, 상기 버스의 마스터 역할을 하는 복수의 프로세서모듈 및 상기 프로세서모듈이 공유하는 데이터를 저장하는 공유 메모리모듈을 구비한 다중처리시스템에서 상기 각 프로세서 모듈이 캐시메모리를 구비하고 있을 때, 상기 캐시메모리를 검사하는 방법에 있어서, 캐시메모리 검사를 위한 검사영역과 캐시메모리 검사 프로그램이 위치하는 코드영역으로 상기 캐시메모리를 분할하는 단계; 상기 공유메모리 상에 저장되는 검사프로그램을 캐시메모리 내 검사프로그램 영역에 대응하도록 위치시키고, 상기 공유메모리에 저장된 검사프로그램을 독출하여 상기 캐시메모리의 코드영역에 저장시키고 실행하는 단계를 포함함이 바람직하다.
그리고 상기 캐시메모리 검사프로그램은, 상기 검사프로그램을 시작하는 프로그램 실행부; 및 상기 캐시메모리의 데이터 일관성 유지를 위한 프로토콜을 만족시키기면서, 상기 캐시메모리를 검사하기 위해 캐시메모리의 상태에 따라 상기 캐시메모리와 공유메모리 사이에서 하드웨어에 부하를 최대로 가하도록 소정의 버스사이클을 발생하는 검사프로그램부를 구비함을 특징으로 한다.
또한 캐시메모리 검사에 참가한 프로세서 모듈 수를 결정하고, 상기 캐시메모리에 가혹한 부하를 가하기 위해, 상기 프로세서 모듈 간에 동기화를 이루는 동기화부 및 검사진행 중 에러가 발생하면 관련정보를 저장 및 관리하는 에러처리부를 더 구비한다.
한편, 상기 동기화부의 동기화는, 상기 다중처리시스템에서 버스마스터 역할을 하는 모듈(RQ)의 개수를 상한값으로 하여 상기 각 RQ에 소정의 일련번호가 할당되어 있다고 할 때, 공유메모리의 특정영역에 저장된 동기화플래그 값을 초기화시키는 단계; 캐시메모리를 검사하는 마스터가 상기 동기화플래그 값을 상기 다중처리시스템의 버스 마스터역할을 하는 모듈(RQ)의 개수로 설정하는 단계; 및 상기 각 버스마스터역할을 하는 모듈(RQ)이 상기 동기화플래그 값이 자신의일련번호와 같은지 검사하여, 같으면 상기 동기화플래그 값을 소정의 값만큼 감소시키고, 다르면 상기 동기화플래그값이 상기 초기화값이 될 때까지 검사하는 단계를 포함함이 바람직하다.
이하에서 본 발명의 바람직한 실시예를 들어 첨부된 도면을 참조하여 그 구성과 동작을 상세히 설명하기로 한다.
캐시메모리 설계에 있어서 중요한 요소 중의 하나는 공유메모리의 블록들을 캐시메모리로 매핑하는 함수이다. 상기 공유메모리의 데이터를 상기 캐시메모리로 저장하기 위해서는 소정의 크기를 갖는 데이터 전송단위로 데이터를 이동하여야한다. 상기 소정의 크기를 갖는 데이터 전송단위는 통상 상기 캐시메모리의 슬롯단위가 된다. 예를 들어 캐시메모리가 16KB, 공유메모리가 16MB의 크기를 가지며, 상기 데이터전송단위가 4 바이트라고 가정하면, 상기 캐시메모리는 4K개의 슬롯을 가지고 공유메모리는 4M개의 블록을 가지게 된다.
따라서 공유메모리의 블록들 보다 캐시메모리의 슬롯들이 더 적기 때문에 상기 공유메모리의 블록들을 캐시메모리의 슬롯들로 매핑하기 위해서는 알고리즘이 필요하다. 또한 공유메모리의 어느 블록이 캐시메모리의 슬롯을 차지할 것인지를 결정하는 방법이 필요하다.
상기 매핑에는 직접매핑(direct mapping), 연관매핑(associative mapping) 및 세트연관 매핑(set associative mapping)의 세 가지가 있다. 상기 직접매핑은 가장 간단한 기술로서, 공유메모리의 각 블록이 들어갈 수 잇는 캐시메모리의 슬롯을 한 개만 허용하는 것이다. 따라서 어떤 블록이 들어갈 수 있는 캐시 슬롯이 정해져 있으므로 한 프로그램이 같은 슬롯에 매핑되는 두 개의 블록들로부터 데이터들을 반복해서 읽어와야 한다면 그 블록들은 캐시에서 연속적으로 교체(swap)되어야 하고, 이로 인해 캐시메모리의 적중률이 떨어진다는 단점이 있다.
상기 연관매핑은 상기 직접매핑의 단점을 보완한 것으로서, 공유메모리의 블록이 캐시의 어느 슬롯으로도 저장할 수 있도록 허용하는 것이다. 따라서 새로운 블록이 캐시메모리로 읽혀질 때 블록을 교체하는 데 있어서 유연성이 있다. 그러나 모든 캐시메모리의 슬롯들의 태그들을 병렬로 검사하기 위한 복잡한 회로가 필요하다는 단점이 있다.
상기 세트연관 매핑은 상기 직접매핑과 연관매핑의 장점을 모두 취하기 위한 절충안으로서, 캐시메모리는 몇 개의 세트들로 나누어지며, 상기 세트 개수는 캐시 슬롯의 개수와 같다.
상기 세가지 매핑기술에 적용될 수 있는 매핑공식은 수학식 1과 같이 표현될 수 있다.
[수학식 1]
여기서,: 타겟 캐시 세트 번호
: 주어진 어드레스
: 라인(슬롯)크기
: 캐시메모리 크기
: 세트에서의 웨이(way) 수(예를 들어, 직접매핑이면 W = 1)
도 2은 상기 수학식 1을 사용하여 공유메모리의 데이터가 캐시메모리에 매핑되는 예를 도시한 것으로서, 라이크기는 64B이고, 캐시메모리의 크기는 1KB이고, 공유메모리의 크기는 8KB일 경우 공유메모리(220)의 검게표시된 영역이 직접매핑일 경우의 캐시메모리 매핑(200)과 2-웨이 세트 연관매핑일 경우의 캐시메모리 메핑(210)을 도시하고 있다.
도 3는 본 발명에 의한 캐시메모리 검사방법이 적용되는 바람직한 다중처리시스템의 구성을 블록도로 도시한 것으로서, 프로세서모듈은 8장 까지 확장가능하며, 공유메모리 모듈은 4장 까지, 입출력모듈도 4장까지 확장가능하다. 그리고 캐시메모리의 데이터 일관성(consistency) 유지를 위한 쓰기 정책(write policy)은 라이트백(write back) 방식을 사용하고 있다. 그리고 시스템 버스는 펜디드 프로토콜(pended protocol)로서 어드레스 사이클과 데이터 사이클을 구분하여 사용한다. 그리고 스누우프(snoop) 프로토콜은 MESI 프로토콜을 사용한다. 상기 MESI 는 Modified , Exclusive, Shared, Invalid 의 약자로서 캐시의 데이터 일관성을 유지하기 위한 것이다. 그리고 대체알고리즘(replacement algorithm)은 LRU(Least recently used)을 사용한다. 매핑(mapping)은 2-웨이 세트 연관(2-way set associative) 매핑을 사용한다.
본 발명에 의한 캐시메모리 검사방법은 먼저 캐시메모리를, 캐시메모리 검사를 위한 검사영역과 캐시메모리 검사프로그램이 위치하는 코드영역으로 분할을 한다. 그 다음에는 상기 공유메모리 상에 저장되는 검사프로그램을 캐시메모리 내의 검사프로그램 영역에 대응하도록 위치시킨다.
도 4는 직접매핑 방식을 사용하는 캐시메모리에서의 영역분할과 공유메모리에서의 검사프로그램위치를 도시한 것으로서, 상기 캐시메모리의 영역은 검사영역(400)과 코드영역(410)으로 분할된다. 여기서 캐시메모리 검사조건은 캐시메모리의 크기() = 1MB, 코드공간(code space,) = 240KB, 공유메모리 크기() = 1GB이다. 그리고 직접매핑에서의 실제 검사공간(Test space,)은 786KB이고, 코드공간(code space,)는 262KB이다. 도 5는 2-웨이 세트 연관매핑 방식을 사용하는 캐시메모리에서의 영역분할과 공유메모리에서의 검사프로그램 위치를 도시한 것으로서, 여기서 캐시메모리 검사조건은 상기 도 4에서와 동일하며, 2-웨이 세트 연관매핑에서의 실제 검사공간(Test space,)은 512KB이고, 코드공간(code space,)는 512KB이다. 이렇게 캐시메모리의 영역을 분할하고 상기 분할된 영역에 상응하도록 공유메모리에 검사프로그램을 위치시키면 상기 캐시메모리의 검사 부하를 최대화시킬 수 있으며, 캐시메모리의 검사도중 캐시메모리 Flush 로 인한 불필요한 캐시관련 버스사이클을 발생하지 않아도 된다.
한편, 도 4 및 도 5와 같이 검사프로그램을 공유메모리에 위치시킨 다음, 상기 공유메모리에 저장된 검사프로그램을 독출하여 상기 캐시메모리의 코드 영역에 저장시키고 상기 검사프로그램을 실행하여 상기 검사프로그램에 프로그램밍된 검사절차에 의해 캐시메모리를 검사한다.
이를 좀더 세부적으로 표현하면, 마스터 보드는 다른 모든 보드들이 동시에 캐시메모리 검사를 진행할 수 있도록 동기화를 진행한다. 이 때부터 모든 보드들이 동일한 환경을 가지고 각자 가지고 있는 캐시기능을 공유메모리와 연동하여 검사를 진행한다. 만약 검사를 진행하는 도중에 에러가 발생하면 에러가 발생한 보드가 에러관련 정보를 공유메모리에 정해진 형태로 저장한다. 마스터 보드는 매 동기화 시점마다 에러가 발생하였는지 점검하여 에러가 발생한 경우에는 모든 보드들로 하여금 검사를 중단하게 하고 에러가 발생한 상황과 관련정보를 출력장치에 표시하여 사용자가 조치를 취할 수 있도록 해준다.
도 6은 상기 캐시검사를 위한 기능블록별 전체적인 흐름도를 도시한 것이다. 상기 캐시검사를 위한 프로그램은 크게 사용자인터페이스부, 검사프로그램부, 동기화부 및 에러처리부로 이루어진다. 상기 사용자인터페이스부는 검사 프로그램을 시작하는 프로그램실행부를 구비하며, 사용자로부터 캐시관련 정보를 입력받아 초기화를 한다.(600단계) 상기 캐시관련정보는 캐시크기, 라인크기(line size), 캐시매핑방식, 공유메모리의 시작주소와 끝주소 등이 될 수 있다.
도 7은 상기 사용자 인터페이스부의 동작흐름을 도시한 것으로서, 먼저 각 프로세서모듈들을 인터럽트(broadcast interrupt)를 보내어 각 모듈들을 동작대기상태(wake up)로 만든다.(700단계) 그리고 나서 상기 각 프로세서모듈들이 장착되는 슬롯에 대한 구성(configuration)을 생성한다.(710단계) 그 다음에 사용자가 캐시매핑방식을 선택하면(720단계), 공유메모리에 코드를 재배치하고(730단계), 검사영역을 설정한다.(740단계) 그리고 나서 캐시메모리 검사 반복횟수를 결정하고나면(750단계), 캐시메모리 검사를 위한 메뉴를 디스플레이한다.(760단계)
상기 동기화부는 캐시메모리 검사에 참가한 프로세서 모듈 수를 결정하고, 상기 캐시메모리에 가혹한 부하를 가하기 위해, 상기 프로세서 모듈 간에 동기화를 이룬다.(610, 630단계) 도 8은 상기 동기화부에서의 동기화를 수행하는 동작을 흐름도로 도시한 것이다. 먼저 공유메모리에 특정영역을 할당하여 동기화를 나타내는 동기화플래그(sync-flag) 값을 저장하며, 처음에는 '0'으로 초기화한다.(800단계) 그리고나서 캐시메모리를 검사하는 마스터(master)가 상기 sync-flag값을 독출하여 상기 sync-flag 값이 '0'인지 검사한다.(805단계) 만일 0 아니면 동기화에러로 처리하고(815단계), 상기 sync-flag 값이 '0'이면 상기 마스터는 상기 sync-flag 값을 RQ 개수로 설정한다.(820단계) 여기서 RQ는 다중처리시스템에서 시스템버스 사용을 요청할 수 있는 버스마스터역할을 하는 보드들을 말하며, 각 RQ모드들은 일련번호순으로 고유의 번호를 가지고 있다. 예를 들어 RQ가 5개이면, 각 RQ는 1부터 5까지 고유번호를 가지게 된다. 한편, 각 RQ는 자신의 고유번호와 상기 sync-flag 값이 같은지 비교하여(825단계), 같으면(830단계), 상기 sync-flag값을 1 감소시킨다.(835단계) 이렇게 하여 각 RQ가 sync-flag 값이 '0'이 될 때가지 계속 체크하여 동기화를 이룬다.(840단계, 845단계)
상기 검사프로그램부는 상기 캐시메모리의 데이터 일관성 유지를 위한 프로토콜을 만족시키면서, 상기 캐시메모리를 검사하기 위해 캐시메모리의 상태에 따라 상기 캐시메모리와 공유메모리 사이에서 하드웨어에 부하를 최대로 가하도록 소정의 버스사이클을 발생한다.(620단계)
상기 에러처리부는 검사진행 중 에러가 발생하면(640단계), 관련정보를 저장 및 관리한다.(650단계) 상기 검사프로그램부에 의해 검사가 진행되면 모든 처리장치는 데이터비교에러, 버스사이클에러 등의 경우에 대해 프로그램 실행을 에러처리부로 전송한다. 그러면 에러처리부는 에러상황과 관련된 정보를 공유메모리의 특정영역에 정해진 형태대로 저장한다.
상술한 바와 같이 일반적으로 캐시기능을 검사하는 프로그램에서는 캐시 전체 영역과 검사 프로그램영역으로 구분하지 않고 사용하였다. 이렇게 캐시영역을 구분하지 않고 검사프로그램을 운용할 경우 검사성능을 저해하는 다음과 같은 문제점이 발생한다. 즉 캐시내에 있는 검사프로그램 영역이 검사를 위한 데이터 쓰기/읽기 시에 flush 된다. 이 경우 다음 번에 해당 검사 프로그램 코드를 다시 실행하기 위해서는 공유메모리로부터 캐시로 다시 읽어 와야 하는데 이럴 경우 불필요한 버스 사이클이 발생되어 검사 성능이 저하된다.
따라서 본 발명에 의하면, 캐시 전체영역을 검사영역과 검사프로그램영역을 구분하면 검사영역만을 집중적으로 검사할 수 있으므로 검사성능이 매우 향상된다.
그리고 캐시와 공유메모리 사이에서 발생할 수 있는 모든 버스사이클을 검사에 참가한 모든 보드들이 순차적으로 동기를 맞추어 발생시키므로 검사 프로그램의 신뢰성이 높아진다.

Claims (5)

  1. 버스를 기반으로 하는 공유메모리 구조를 가지며, 상기 버스의 마스터 역할을 하는 복수의 프로세서모듈 및 상기 프로세서모듈이 공유하는 데이터를 저장하는 공유 메모리모듈을 구비한 다중처리시스템에서 상기 각 프로세서 모듈이 캐시메모리를 구비하고 있을 때, 상기 캐시메모리를 검사하는 방법에 있어서,
    캐시메모리 검사를 위한 검사영역과 캐시메모리 검사 프로그램이 위치하는 코드영역으로 상기 캐시메모리를 분할하는 단계;
    상기 공유메모리 상에 저장되는 검사프로그램을 캐시메모리 내 검사프로그램 영역에 대응하도록 위치시키는 단계; 및
    상기 공유메모리에 저장된 검사프로그램을 독출하여 상기 캐시메모리의 코드영역에 저장시키고 실행하는 단계를 포함함을 특징으로 하는 다중처리시스템의 캐시메모리 검사방법.
  2. 제1항에 있어서, 상기 캐시메모리 검사프로그램은
    상기 검사프로그램을 시작하는 프로그램 실행부; 및
    상기 캐시메모리의 데이터 일관성 유지를 위한 프로토콜을 만족시키기면서, 상기 캐시메모리를 검사하기 위해 캐시메모리의 상태에 따라 상기 캐시메모리와 공유메모리 사이에서 하드웨어에 부하를 최대로 가하도록 소정의 버스사이클을 발생하는 검사프로그램부를 구비함을 특징으로 하는 다중처리시스템의 캐시메모리 검사방법.
  3. 제2항에 있어서,
    캐시메모리 검사에 참가한 프로세서 모듈 수를 결정하고, 상기 캐시메모리에 가혹한 부하를 가하기 위해, 상기 프로세서 모듈 간에 동기화를 이루는 동기화부를 더 구비함을 특징으로 하는 다중처리시스템의 캐시메모리 검사 방법.
  4. 제2항 또는 제3항에 있어서,
    검사진행 중 에러가 발생하면 관련정보를 저장 및 관리하는 에러처리부를 더 구비함을 특징으로 하는 다중처리시스템의 캐시메모리 검사방법.
  5. 제3항에 있어서, 상기 동기화부의 동기화는
    상기 다중처리시스템에서 버스마스터 역할을 하는 모듈(RQ)의 개수를 상한값으로 하여 상기 각 RQ에 소정의 일련번호가 할당되어 있다고 할 때,
    상기 공유메모리의 특정영역에 저장된 동기화플래그(sync-flag) 값을 초기화시키는 단계;
    캐시메모리를 검사하는 마스터가 상기 동기화플래그 값을 상기 다중처리시스템의 버스 마스터역할을 하는 모듈(RQ)의 개수로 설정하는 단계; 및
    상기 각 버스마스터역할을 하는 모듈(RQ)이 상기 동기화플래그 값이 자신의일련번호와 같은지 검사하여, 같으면 상기 동기화플래그 값을 소정의 값만큼 감소시키고, 다르면 상기 동기화플래그값이 상기 초기화값이 될 때까지 검사하는 단계를 포함함을 특징으로 하는 다중처리시스템의 캐시메모리 검사방법.
KR1019970021336A 1997-05-28 1997-05-28 다중처리 시스템의 캐시메모리 검사방법 KR100230454B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1019970021336A KR100230454B1 (ko) 1997-05-28 1997-05-28 다중처리 시스템의 캐시메모리 검사방법
CN98105549A CN1129076C (zh) 1997-05-28 1998-03-12 多处理器系统高速缓冲存储器的测试方法
JP10100617A JPH10333990A (ja) 1997-05-28 1998-03-26 キャッシュメモリの検査方法
US09/084,925 US6170070B1 (en) 1997-05-28 1998-05-28 Test method of cache memory of multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970021336A KR100230454B1 (ko) 1997-05-28 1997-05-28 다중처리 시스템의 캐시메모리 검사방법

Publications (2)

Publication Number Publication Date
KR19980085278A true KR19980085278A (ko) 1998-12-05
KR100230454B1 KR100230454B1 (ko) 1999-11-15

Family

ID=19507546

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970021336A KR100230454B1 (ko) 1997-05-28 1997-05-28 다중처리 시스템의 캐시메모리 검사방법

Country Status (4)

Country Link
US (1) US6170070B1 (ko)
JP (1) JPH10333990A (ko)
KR (1) KR100230454B1 (ko)
CN (1) CN1129076C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013103877A1 (en) * 2012-01-05 2013-07-11 Unisys Corporation Method and system for testing a cache memory architecture

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3288304B2 (ja) * 1998-07-01 2002-06-04 富士通株式会社 キャッシュ試験装置およびキャッシュ試験方法
US6446241B1 (en) * 1999-07-15 2002-09-03 Texas Instruments Incorporated Automated method for testing cache
US20030212935A1 (en) * 2002-05-09 2003-11-13 Roark Rodney W. Circuit and method for accelerating the test time of a serial access memory device
US7155637B2 (en) 2003-01-31 2006-12-26 Texas Instruments Incorporated Method and apparatus for testing embedded memory on devices with multiple processor cores
US8984199B2 (en) * 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
US20050066248A1 (en) * 2003-09-18 2005-03-24 Reid Hayhow Methods and systems for determining memory requirements for device testing
US8769361B2 (en) * 2003-10-07 2014-07-01 Advantest (Singapore) Pte Ltd Cost estimation for device testing
DE102004009497B3 (de) * 2004-02-27 2005-06-30 Infineon Technologies Ag Chipintegriertes Mehrprozessorsystem und Verfahren zur Kommunikation zwischen mehreren Prozessoren eines chipintegrierten Mehrprozessorsystems
KR20050120341A (ko) * 2004-06-18 2005-12-22 엘지전자 주식회사 다중 씨피유에서의 메모리 카드 공유 장치
US20060015776A1 (en) * 2004-07-16 2006-01-19 Yu-Mei Lee Built-in computer power-on memory test method
US7587635B2 (en) * 2004-10-04 2009-09-08 Cisco Technology, Inc. Method of debugging “active” unit using “non-intrusive source-level debugger” on “standby” unit of high availability system
US20060143401A1 (en) * 2004-12-27 2006-06-29 Jacob Doweck Method and apparatus for prefetching based on cache fill buffer hits
JP5068188B2 (ja) * 2008-01-21 2012-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリのテストを実行する方法、コンピュータ・プログラム、およびシステム
US8176362B2 (en) * 2008-03-24 2012-05-08 International Business Machines Corporation Online multiprocessor system reliability defect testing
US8868975B2 (en) * 2011-07-26 2014-10-21 International Business Machines Corporation Testing and operating a multiprocessor chip with processor redundancy
CN102722467A (zh) * 2012-05-31 2012-10-10 深圳市江波龙电子有限公司 一种多处理器设备及其程序运行方法
KR101477017B1 (ko) * 2013-03-29 2014-12-29 주식회사 알티베이스 공유메모리 내의 인덱스 운용 장치 및 방법
US9965391B2 (en) * 2014-06-30 2018-05-08 Hewlett Packard Enterprise Development Lp Access cache line from lower level cache
CN106294033B (zh) * 2015-05-13 2019-06-21 阿里巴巴集团控股有限公司 一种多机房缓存同步功能的测试方法及装置
JP2017097633A (ja) * 2015-11-25 2017-06-01 日立オートモティブシステムズ株式会社 車両制御装置
CN113468096A (zh) * 2017-06-26 2021-10-01 上海寒武纪信息科技有限公司 数据共享系统及其数据共享方法
WO2019001418A1 (zh) 2017-06-26 2019-01-03 上海寒武纪信息科技有限公司 数据共享系统及其数据共享方法
CN109214616B (zh) 2017-06-29 2023-04-07 上海寒武纪信息科技有限公司 一种信息处理装置、系统和方法
CN110413551B (zh) 2018-04-28 2021-12-10 上海寒武纪信息科技有限公司 信息处理装置、方法及设备
CN109426553A (zh) 2017-08-21 2019-03-05 上海寒武纪信息科技有限公司 任务切分装置及方法、任务处理装置及方法、多核处理器
KR102648790B1 (ko) * 2018-12-19 2024-03-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11847090B1 (en) * 2022-06-21 2023-12-19 Winbond Electronics Corporation SPI bus synchronization

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4686621A (en) * 1983-06-30 1987-08-11 Honeywell Information Systems Inc. Test apparatus for testing a multilevel cache system with graceful degradation capability
US4783736A (en) 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
JPH0221342A (ja) 1987-02-27 1990-01-24 Hitachi Ltd マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法
US5247649A (en) 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
US4905141A (en) 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US4982402A (en) * 1989-02-03 1991-01-01 Digital Equipment Corporation Method and apparatus for detecting and correcting errors in a pipelined computer system
JPH0359741A (ja) 1989-07-28 1991-03-14 Mitsubishi Electric Corp キャッシュメモリ
US5073891A (en) * 1990-02-14 1991-12-17 Intel Corporation Method and apparatus for testing memory
JPH0799508B2 (ja) 1990-10-15 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム
US5493668A (en) 1990-12-14 1996-02-20 International Business Machines Corporation Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation
US5634027A (en) 1991-11-20 1997-05-27 Kabushiki Kaisha Toshiba Cache memory system for multiple processors with collectively arranged cache tag memories
US5355471A (en) * 1992-08-14 1994-10-11 Pyramid Technology Corporation Multiprocessor cache coherency tester that exercises the coherency logic exhaustively and also detects errors in a processor using an automatic CPU sort
GB2275119B (en) 1993-02-03 1997-05-14 Motorola Inc A cached processor
US5406504A (en) * 1993-06-30 1995-04-11 Digital Equipment Multiprocessor cache examiner and coherency checker
US5533196A (en) * 1994-01-31 1996-07-02 Intel Corporation Method and apparatus for testing for a sufficient write voltage level during power up of a SRAM array
US5537635A (en) 1994-04-04 1996-07-16 International Business Machines Corporation Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size
US5638382A (en) 1994-06-29 1997-06-10 Intel Corporation Built-in self test function for a processor including intermediate test results
US5671231A (en) 1994-07-07 1997-09-23 Dell Usa, L.P. Method and apparatus for performing cache snoop testing on a cache system
US5644751A (en) 1994-10-03 1997-07-01 International Business Machines Corporation Distributed file system (DFS) cache management based on file access characteristics
US5651134A (en) 1994-10-26 1997-07-22 Ncr Corporation Method for configuring a cache memory to store only data, only code, or code and data based on the operating characteristics of the application program
US5644705A (en) * 1995-01-11 1997-07-01 International Business Machines Corporation Method and apparatus for addressing and testing more than two ATA/IDE disk drive assemblies using an ISA bus
US5784382A (en) * 1995-03-01 1998-07-21 Unisys Corporation Method and apparatus for dynamically testing a memory within a computer system
US5511164A (en) * 1995-03-01 1996-04-23 Unisys Corporation Method and apparatus for determining the source and nature of an error within a computer system
US5592616A (en) 1995-06-07 1997-01-07 Dell Usa, Lp Method for performing efficient memory testing on large memory arrays using test code executed from cache memory
US5539878A (en) * 1995-06-16 1996-07-23 Elonex Technologies, Inc. Parallel testing of CPU cache and instruction units
JP3846939B2 (ja) * 1995-08-30 2006-11-15 フリースケール セミコンダクター インコーポレイテッド データプロセッサ
US5913022A (en) * 1995-08-31 1999-06-15 Schlumberger Technologies, Inc. Loading hardware pattern memory in automatic test equipment for testing circuits
US5592432A (en) * 1995-09-05 1997-01-07 Emc Corp Cache management system using time stamping for replacement queue
US5793941A (en) * 1995-12-04 1998-08-11 Advanced Micro Devices, Inc. On-chip primary cache testing circuit and test method
US5740353A (en) * 1995-12-14 1998-04-14 International Business Machines Corporation Method and apparatus for creating a multiprocessor verification environment
US5666513A (en) 1996-01-05 1997-09-09 Unisys Corporation Automatic reconfiguration of multiple-way cache system allowing uninterrupted continuing processor operation
US5677913A (en) 1996-07-01 1997-10-14 Sun Microsystems, Inc. Method and apparatus for efficient self testing of on-chip memory
US5748897A (en) * 1996-07-02 1998-05-05 Sun Microsystems, Inc. Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer
US5958072A (en) * 1997-01-13 1999-09-28 Hewlett-Packard Company Computer-system processor-to-memory-bus interface having repeating-test-event generation hardware

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013103877A1 (en) * 2012-01-05 2013-07-11 Unisys Corporation Method and system for testing a cache memory architecture

Also Published As

Publication number Publication date
JPH10333990A (ja) 1998-12-18
US6170070B1 (en) 2001-01-02
CN1200513A (zh) 1998-12-02
CN1129076C (zh) 2003-11-26
KR100230454B1 (ko) 1999-11-15

Similar Documents

Publication Publication Date Title
KR100230454B1 (ko) 다중처리 시스템의 캐시메모리 검사방법
Archibald et al. Cache coherence protocols: Evaluation using a multiprocessor simulation model
CA2414438C (en) System and method for semaphore and atomic operation management in a multiprocessor
US4959777A (en) Write-shared cache circuit for multiprocessor system
US6247107B1 (en) Chipset configured to perform data-directed prefetching
EP0856796B1 (en) Variable-grained memory sharing for clusters of symmetric multi-processors
JP3849951B2 (ja) 主記憶共有型マルチプロセッサ
EP2476051B1 (en) Systems and methods for processing memory requests
US8982140B2 (en) Hierarchical memory addressing
US6470429B1 (en) System for identifying memory requests as noncacheable or reduce cache coherence directory lookups and bus snoops
US20060236039A1 (en) Method and apparatus for synchronizing shared data between components in a group
JP2004505346A (ja) 多重プロセッサアーキテクチャのためのキャッシュコヒーレンシシステムおよび方法
JP2006277762A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
Sandhu et al. The shared regions approach to software cache coherence on multiprocessors
US5590310A (en) Method and structure for data integrity in a multiple level cache system
US6965972B2 (en) Real time emulation of coherence directories using global sparse directories
US6601145B2 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
JPH071489B2 (ja) コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法
EP1067459B1 (en) Symmetric multiprocessing system with unified environment and distributed system functions
US7073004B2 (en) Method and data processing system for microprocessor communication in a cluster-based multi-processor network
Sahuquillo et al. The split data cache in multiprocessor systems: an initial hit ratio analysis
US20020083268A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers performing directory update
Lee et al. Protocol mapping for a bus-based COMA multiprocessor
JP4948141B2 (ja) バス制御装置
Kuramkote et al. Analysis of avalanche's shared memory architecture

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: 20120727

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20130729

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee