KR20160075638A - 버스 잠금 및 변환 색인 버퍼 무효화를 수행하기 위한 방법 및 장치 - Google Patents

버스 잠금 및 변환 색인 버퍼 무효화를 수행하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20160075638A
KR20160075638A KR1020167013468A KR20167013468A KR20160075638A KR 20160075638 A KR20160075638 A KR 20160075638A KR 1020167013468 A KR1020167013468 A KR 1020167013468A KR 20167013468 A KR20167013468 A KR 20167013468A KR 20160075638 A KR20160075638 A KR 20160075638A
Authority
KR
South Korea
Prior art keywords
lock
processors
processor
message
master
Prior art date
Application number
KR1020167013468A
Other languages
English (en)
Other versions
KR102165775B1 (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 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20160075638A publication Critical patent/KR20160075638A/ko
Application granted granted Critical
Publication of KR102165775B1 publication Critical patent/KR102165775B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • 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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/522Manager
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

Abstract

버스 잠금 및 변환 색인 버퍼 무효화 트랜잭션을 수행하기 위한 방법 및 장치는 잠금 마스터에 의해, 시스템에서의 제1 프로세서로부터 잠금 요청을 수신하는 것을 포함한다. 잠금 마스터는 시스템에서의 모든 프로세서로 작업 거부 요청을 전송하며, 잠금 마스터로부터의 작업 거부 요청의 수신 시, 모든 프로세서는 임의의 새로운 트랜잭션들을 발행하는 것을 중단하며 작업 거부 승인 트랜잭션을 발행한다. 모든 프로세서로부터의 작업 거부 승인 트랜잭션들의 수신 시, 잠금 마스터는 제1 프로세서의 식별자를 포함하는 잠금 승인 메시지를 발행한다. 제1 프로세서는 원자 트랜잭션 시퀀스를 수행하며 원자 트랜잭션 시퀀스의 완료 시 제1 잠금 해제 메시지를 잠금 마스터에 전송한다. 잠금 마스터는 제1 프로세서로부터 제1 잠금 해제 메시지를 수신할 때 제2 잠금 해제 메시지를 모든 프로세서로 전송한다.

Description

버스 잠금 및 변환 색인 버퍼 무효화를 수행하기 위한 방법 및 장치{METHOD AND APPARATUS FOR PERFORMING A BUS LOCK AND TRANSLATION LOOKASIDE BUFFER INVALIDATION}
관련 출원들에 대한 상호 참조
본 출원은 그 내용이 여기에서 참조로서 통합되는, 2013년 10월 25일에 출원된 미국 가 특허 출원 번호 제61/895,569호에 대한 이득을 주장한다.
기술분야
본 발명은 일반적으로 버스 잠금 동작 및 변환 색인 버퍼 무효화 동작에 관한 것이다.
다중프로세서 시스템들은 다수의 프로세서들 또는 스레드들 중에서 공유된 데이터 구조들을 프로세싱하기 위해 원자 판독-수정-기록 동작들을 사용한다. 이것들은 캐싱 가능한 메모리 상에서, 뿐만 아니라 캐싱 가능하지 않은 메모리 상에서 동작할 수 있다. 동작이 캐싱 가능한 메모리를 위한 것이며 경계(예로서, 캐시 라인)를 넘지 않을 때, 프로세서는 동작을 원자적으로 유지하기 위해 캐시 라인 잠금과 같은 내부 수단을 이용할 수 있다. 버스 잠금이 캐싱 가능하지 않은 메모리를 위한 것이거나, 또는 프로세서가 내부 수단을 사용할 수 없는 경계를 넘을 때, 그것은 원자 판독-수정-기록을 수행하기 위한 방식을 요구한다.
캐싱 가능하지 않은 원자 트랜잭션들을 위해 필요한 원자성을 제공하기 위한 공통적인 해결책은 상호 연결 패브릭(즉, 프로세서들, 캐시들, 및 메모리가 서로 통신하는 와이어링 및 시그널링 프로토콜)을 "잠그는 것(lock)"이며, 하나의 프로세서에 대한 그것의 유일한 사용을 예약하고 모든 다른 것들을 정지시킨다. 종래에, 이것은 패브릭의 토폴로지에서의 각각의 스위치 포인트에서 잠금 상태에 대해 중재하며, 이를 시행함으로써 패브릭에서 행해져 왔다.
부가적으로, 프로세서들은 가상-대-물리 어드레스 변환 기법들을 사용하여 흔히 변환 색인 버퍼들(Translation Lookaside Buffers; TLB들)에서 이들 동작들을 캐싱한다. 소프트웨어가 가상 어드레스를 무효화하고, 페이지에 대한 보호들을 변경하고, 페이지를 이동시키는 등을 하기 위해서와 같은, 이들 변환들 중 하나를 변경할 때, 변환의 모든 캐싱된(TLB) 사본들은 소프트웨어가 변경된 변환을 시행할 수 있기 전에 제거되어야 한다.
변환들에 대한 변화들을 동기화하기 위해 사용된 하나의 종래의 해결책은 모든 프로세서들을 중단하며 변경한 TLB 엔트리, 또는 엔트리들을 무효화하기 위해 각각의 것 상에서 태스크를 실행함으로써 소프트웨어가 다수의 프로세서들 상에서 TLB들을 명확하게 무효화하게 하는 것이다. 변환 변화를 개시하는 프로세서는 모든 다른 프로세서를 중단시킨다. 수신 프로세서들은 그것들의 TLB들로부터 변화하는 변환을 플러싱하는 인터럽트 핸들러를 실행한다. 변환들에 대한 변화들을 동기화하기 위해 사용된 또 다른 종래의 방법은 프로세서에서 프로세서로의 직접 하드웨어 통신이다(예로서, 소프트웨어는 변화하는 변환을 기술하는 하드웨어 메시지들을 모든 다른 프로세서에 전송하기 위해 명시적 TLB 무효화 지시들을 사용한다). 하나 이상의 개시 후, 프로세서들은 모든 다른 프로세서에 "동기화" 메시지를 전송하며 모든 이전 TLB-무효화 메시지들이 상기 프로세서에서 그것들의 전체 효과를 가질 때 핸드쉐이크 응답을 다시 수신한다. 전용 하드웨어는 모든 프로세서가 동기화 동작이 시작되기 전에 무효화된 모든 변환을 사용하여 정지할 때까지 동기화 동작이 끝나지 않을 것임을 보장한다.
종래의 버스 잠금 해결책에서, 상호 연결 패브릭에서의 모든 중간 스위치 포인트는 잠금을 알며 그것을 위한 하드웨어를 구현해야 한다. 각각의 스위치 포인트는 경쟁하는 잠금 요청자들 사이에서 중재하며 각각의 스위치 포인트는 비-잠금 프로세서들로부터의 트래픽을 금지 명령함으로써 승인된 잠금을 시행한다. 따라서, 보다 큰 시스템들은 보다 복잡한 상호 연결 토폴로지들을 요구한다.
TLB 무효화를 위한 종래의 동기화 해결책은 포인트 대 포인트 통신을 요구한다. 이러한 해결책은 그것이 수반된 프로세서들의 수의 제곱에 비례하는 와이어링 또는 트랜잭션들을 요구하기 때문에 제대로 확대하지 않을 수 있다. 부가적으로, 그것은 동시에 다수의 프로세서들에 의해 발행된 무효화/동기 시퀀스들의 직렬화를 통해 보다 낮은 성능을 야기할 수 있다.
그러므로, 종래의 해결책들의 제한들의 대상이 되지 않는 버스 잠금 및/또는 TLB 무효화를 수행하기 위한 방법 및 장치를 제공하는 것이 유리할 것이다.
버스 잠금을 수행하기 위한 방법에 관한 실시예가 개시된다. 상기 방법은 잠금 마스터에 의해, 시스템에서의 제1 프로세서로부터 잠금 요청을 수신하는 단계를 포함한다. 상기 잠금 마스터는 시스템에서의 모든 프로세서들에 작업 거부(quiesce) 요청을 전송하며, 상기 잠금 마스터로부터의 상기 작업 거부 요청의 수신 시, 모든 프로세서들은 임의의 새로운 트랜잭션들을 발행하는 것을 중단하며 작업 거부 승인 트랜잭션을 발행한다. 모든 프로세서들로부터 상기 작업 거부 승인 트랜잭션들의 수신 시, 상기 잠금 마스터는 제1 프로세서의 식별자를 포함하는 잠금 승인 메시지를 발행한다. 상기 제1 프로세서는 원자 트랜잭션 시퀀스를 수행하며 상기 원자 트랜잭션 시퀀스의 완료 시 상기 잠금 마스터에 제1 잠금 해제 메시지를 전송한다. 상기 잠금 마스터는 상기 제1 프로세서로부터 상기 제1 잠금 해제 메시지를 수신할 때 제2 잠금 해제 메시지를 모든 프로세서들에 전송한다.
버스 잠금을 수행하기 위한 시스템에 관한 실시예가 개시된다. 상기 시스템은 복수의 프로세서들 및 잠금 마스터를 포함한다. 상기 잠금 마스터는 상기 시스템에서 복수의 프로세서들의 제1 프로세서로부터 잠금 요청을 수신하며 상기 시스템에서의 모든 프로세서들에 작업 거부 요청을 전송하도록 구성된다. 모든 프로세서들로부터의 작업 거부 승인 트랜잭션의 수신 시, 상기 잠금 마스터는 제1 프로세서의 식별자를 포함하는 잠금 승인 메시지를 발행한다. 상기 잠금 마스터는 상기 제1 프로세서로부터 제1 잠금 해제 메시지를 수신할 때 제2 잠금 해제 메시지를 모든 프로세서들에 전송한다.
버스 잠금을 수행하기 위한 장치에 관한 실시예가 개시된다. 상기 장치는 시스템에서 복수의 프로세서들의 제1 프로세서로부터 잠금 요청을 수신하며 상기 시스템에서의 모든 프로세서들에 작업 거부 요청을 전송하도록 구성된 회로를 포함한다. 모든 프로세서들로부터의 작업 거부 승인 트랜잭션의 수신 시, 장치는 제1 프로세서의 식별자를 포함하는 잠금 승인 메시지를 발행한다. 상기 장치는 상기 제1 프로세서로부터 제1 잠금 해제 메시지를 수신할 때 제2 잠금 해제 메시지를 모든 프로세서들에 전송한다.
보다 상세한 이해가 첨부한 도면들과 함께 예로서 주어진, 다음의 설명으로부터 이루어질 수 있다;
도 1은 하나 이상의 개시된 실시예들이 구현될 수 있는 예시적인 디바이스의 블록도이다;
도 2는 실시예에 따른 예시적인 시스템의 개략적 표현이다;
도 3은 실시예에 따라 버스 잠금을 수행하는 예시적인 방법의 흐름도이다; 그리고
도 4는 실시예에 따라 변환 색인 버퍼(TLB) 무효화를 수행하는 예시적인 방법의 흐름도이다.
실시예들에 대한 보다 상세한 설명이 이하에 제공되지만, 간단히 중앙 잠금 마스터는 프로세서가 원자 판독-수정-기록 절차를 시작하기 위한 요구를 가질 때 프로세서로부터 버스를 잠그기 위한 요청들을 수신하기 위해 아비터(arbiter)로서 동작한다. 잠금 마스터는 어떤 다른 프로세서들도 임의의 다른 동작을 위해 버스를 이용하지 않는다는 것을 보장하도록 버스를 제어한다. 또 다른 실시예에서, 중앙 동기 마스터는 프로세서로부터 변환 색인 버퍼(TLB) 무효화 요청들을 수신하며 동기 메시지를 시스템에서의 모든 프로세서들에 방송한다.
도 1은 하나 이상의 개시된 실시예들이 구현될 수 있는 예시적인 디바이스(100)의 블록도이다. 디바이스(100)는 컴퓨터, 예를 들면, 데스크탑 컴퓨터, 태블릿 컴퓨터, 게이밍 디바이스, 핸드헬드 디바이스, 셋-탑 박스, 텔레비전, 또는 이동 전화를 포함할 수 있다. 디바이스(100)는 프로세서(102), 메모리(104), 저장 장치(106), 하나 이상의 입력 디바이스들(108), 및 하나 이상의 출력 디바이스들(110)을 포함한다. 디바이스(100)는 또한 선택적으로 입력 드라이버(112) 및 출력 드라이버(114)를 포함할 수 있다. 디바이스(100)는 도 1에 도시되지 않은 부가적인 구성요소들을 포함할 수 있다는 것이 이해된다.
프로세서(102)는 중앙 프로세싱 유닛(CPU), 그래픽스 프로세싱 유닛(GPU), 동일한 다이상에 위치된 CPU 및 GPU, 또는 하나 이상의 프로세서 코어들을 포함할 수 있으며, 여기에서 각각의 프로세서 코어는 CPU 또는 GPU일 수 있다. 메모리(104)는 프로세서(102)와 동일한 다이 상에 위치될 수 있거나, 또는 프로세서(102)로부터 별도로 위치될 수 있다. 메모리(104)는 휘발성 또는 비-휘발성 메모리, 예를 들면, 랜덤 액세스 메모리(RAM), 동작 RAM, 또는 캐시를 포함할 수 있다.
저장 장치(106)는 고정 또는 착탈 가능한 저장 장치, 예를 들면, 하드 디스크 드라이브, 고체 상태 드라이브, 광 디스크, 또는 플래시 드라이브를 포함할 수 있다. 입력 디바이스들(108)은 키보드, 키패드, 터치 스크린, 터치 패드, 검출기, 마이크로폰, 가속도계, 자이로스코프, 생물 측정 스캐너, 또는 네트워크 연결(예로서, 무선 IEEE 802 신호들의 송신 및/또는 수신을 위한 무선 근거리 네트워크 카드)을 포함할 수 있다. 출력 디바이스들(110)은 디스플레이, 스피커, 프린터, 햅틱 피드백 디바이스, 하나 이상의 광들, 안테나, 또는 네트워크 연결(예로서, 무선 IEEE 802 신호들의 송신 및/또는 수신을 위한 무선 근거리 네트워크 카드)을 포함할 수 있다.
입력 드라이버(112)는 프로세서(102) 및 입력 디바이스들(108)과 통신하며, 프로세서(102)가 입력 디바이스들(108)로부터 입력을 수신하도록 허용한다. 출력 드라이버(114)는 프로세서(102) 및 출력 디바이스들(110)과 통신하며, 프로세서(102)가 출력 디바이스들(110)로 출력을 전송하도록 허용한다. 입력 드라이버(112) 및 출력 드라이버(114)는 선택적 구성요소들이며, 디바이스(100)는 입력 드라이버(112) 및 출력 드라이버(114)가 존재하지 않는다면 동일한 방식으로 동작할 것이라는 것이 주의된다. 설명된 실시예들은 메인 디스플레이를 포함하지만, 본 발명은 메인 디스플레이 없이 실시될 수 있으며, 단지 비디오의 소스 디바이스만을 포함할 수 있다. 이러한 방식으로, 제어 영역은 복수의 휴대용 디바이스들을 가지며 메인 디스플레이가 없는 사무실 환경일 수 있다.
도 2는 실시예에 따른 예시적인 시스템(200)의 개략적인 표현이다. 예시적인 시스템(200)은 복수의 프로세서들(1021 내지 102N)(P0 내지 P(N)으로 지정된), 복수의 메모리 디바이스들(1040 내지 104M)(Mem0 내지 Mem(M)), 및 잠금/동기 마스터(210)를 포함한다. 도 2에 도시된 바와 같이, 프로세서들(102)은 잠금/동기 마스터(210)가 임의의 노드(X)에 연결될 수 있지만, 메모리(1040)에 직접 연결되는 노드에 연결된 잠금/동기 마스터(210)를 갖고, 노드들, 또는 스위치들("X")을 통해 각각의 메모리(104)와 연관된다. 예시적인 시스템(200)에서, 프로세서들(P0 내지 P5)은 Mem0과 연관되고, 프로세서들(P6 내지 P8)은 Mem1과 연관되며, 프로세서들(P(N-1) 내지 P(N))은 Mem(M)과 연관된다. 복수의 메모기(104)가 도시되지만, 임의의 수, 및 심지어 단지 하나의 메모리가 예시적인 시스템(200)에 존재할 수 있다는 것이 주의되어야 한다. 부가적으로, 다양한 프로세서들(102)이 특정한 메모리(104)와 연관되어 도시되지만, 임의의 프로세서(102)는 예시적인 시스템(200)에 도시된 메모리(102) 중 임의의 것에 대한 액세스를 가질 수 있다는 것이 주의되어야 한다.
버스 잠금 동작 또는 TLB 무효화 중 하나를 수행하기 전에, 프로세서들은 프로세서들의 활성 풀에 참여하는 것/그것을 떠나는 것에 관한 메시지를 잠금/동기 마스터에 전송한다. 이것은 잠금/동기 마스터로 하여금 임의의 주어진 시간에서 어떤 프로세서들이 깨어있으며 잠들어 있는지를 알도록 허용하기 위해 행해진다. 예를 들면, 프로세서는 프로세서가 잠금 마스터로 하여금 그것이 프로세서들의 활성 풀에 참여하였음을 알게 하기 위해 깨울 때 잠금/동기 마스터에 메시지를 전송하며 프로세서가, 프로세서가 활성 풀을 떠났음을 잠금 마스터가 알게 하도록 수면 상태에 들어가는 것을 의도할 때 잠금 마스터에 메시지를 전송할 수 있으며, 상기 프로세서로부터 시그널링을 예상하지 않을 것이다.
도 3은 실시예에 따라 버스 잠금을 수행하는 예시적인 방법(300)의 흐름도이다. 편리함을 위해, 잠금/동기 마스터는 예시적인 방법(300)에 대한 "잠금 마스터"로서 설명된다.
단계(301)에서, 프로세서는 프로세서가 원자 판독-수정-기록 트랜잭션을 시작하기 위한 요구를 가질 때 잠금 마스터에 잠금 요청을 전송한다. 잠금 요청은 캐싱되지 않은 기록과 유사한 상호 연결 패브릭을 통해 이동하며, 요청 프로세서(예로서, 코어)를 식별하는 값을 포함한다. 식별자(ID)는 코어 ID의 형태에 있을 수 있다. 하나 이상의 프로세서들이 실질적으로 동시에 또는 서로에 대해 계속 잠금 요청을 잠금 마스터에 전송할 수 있다.
프로세서들로부터 잠금 요청들을 수신할 때, 잠금 마스터는 그것들을 큐잉하며 어떤 것을 먼저 프로세싱할지에 관한 결정을 한다(단계 302). 일단 잠금 마스터가 그것의 결정을 하면, 그것은 모든 프로세서들에 작업 거부(quiesce) 요청을 전송한다(단계 303). 이러한 작업 거부 요청 방송 메시지는 간섭성 프로브와 유사한, 상호 연결 패브릭을 통해 이동하며, 상호 연결 패브릭을 이용하는 것을 중단하도록 모든 프로세서들에 지시한다.
단계(304)에서, 프로세서들은 상호 연결 패브릭 상에서 새로운 트랜잭션들을 발행하는 것을 정지시키며 임의의 미처리된 트랜잭션이 완료되기를 기다린다. 일단 미처리된 트랜잭션이 완료되면, 프로세서들은 상호 연결 패브릭 상에서의 작업 거부 승인 트랜잭션을 잠금 마스터에 발행하며 대기한다.
잠금 마스터는 프로세서들로부터 수신된 작업 거부 승인 트랜잭션들을 카운팅하며 단계(305)에서 카운트가 활성 프로세서들의 수와 일치할 때(즉, 모든 작업 거부 승인 트랜잭션이 수신되었을 때) 방송에 의해 잠금 승인 메시지를 발행한다(단계 306). 잠금 승인 메시지는 그것의 잠금이 승인되는 프로세서의 ID를 포함한다.
단계(307)에서, 각각의 프로세서는 잠금 마스터로부터 잠금 승인 메시지를 수신하며 승인 ID를 그 자신의 ID에 비교한다. 승인 ID가 프로세서의 ID이면(단계 308), 프로세서는 그것의 원자 트랜잭션 시퀀스(예로서, 판독-수정-기록)를 계속하며, 완료될 때 잠금 해제 메시지를 잠금 마스터에 발행한다(단계 309). 승인 ID가 단계(308)에서 프로세서들 ID에 일치하지 않는다면, 프로세서는 상호 연결 패브릭을 사용하는 것을 자제한다(단계 312).
잠금 마스터가 다수의 잠금 요청들을 수신하였다면(단계 310), 방법은 잠금 마스터가 다음 프로세서들 ID 승인을 포함하는 새로운 잠금 승인 메시지를 프로세서에 발행하는 단계(306)로 리턴한다. 그렇지 않자면, 잠금 마스터는 방송 메시지를 통해 잠금 해제를 모든 프로세서들에 전송하며(단계 311), 각각의 프로세서는 잠금 마스터로부터 잠금 해제를 수신할 때 상호 연결 패브릭을 사용하여 재개한다.
도 4는 실시예에 따라 변환 색인 버퍼(TLB) 무효화를 수행하는 예시적인 방법(400)의 흐름도이다. 편리함의 목적들을 위해, 잠금/동기 마스터는 예시적인 방법(400)에서 동기 마스터로서 불리운다.
프로세서가 변환을 변경하도록 요구할 때, 프로세서는 일련의 TLB 무효화 요청들을 동기 마스터에 전송하며, 이것은 삭제되는 변환들을 포함한다(단계 401). 그 후 프로세서는 그것의 고유 프로세서 ID를 포함하는 단일 동기 요청을 잠금 마스터에 전송한다. 가능한 한 빨리 무효화 시퀀스를 실행하기 위해, 무효화 요청들은 파이프라인될 수 있으며, 그에 의해 동기 요청은 직렬화를 시행한다. 즉, 직렬화는 변환을 변경하는 프로세서가 무효화 요청들을 파이프라이닝함으로써(예로서, 단일의 동기화 동작에 앞서 임의의 수의 TLB 무효화 동작들의 "배치(batch)"를 발행함으로써) 그것이 어떤 다른 프로세서도 오래된 변환을 여전히 사용하지 않음을 알 때까지 새로운 변환을 가능하게 할 수 없음을 요구하므로, 무효화 시퀀스는 가속화될 수 있다.
동기 마스터는 무효화 요청을 모든 프로세서들에 방송하며(단계 402), 동기 메시지를 모든 프로세서에 방송한다(단계 403). 무효화 요청 및 동기 메시지의 수신 시, 각각의 프로세서는 그것이 임의의 이전 무효화된 트랜잭션들을 사용하여 완료되었음을 보장하며, 동기 완료 메시지를 동기 마스터에 발행한다(단계 404).
동기 마스터는 프로세서들로부터의 수신된 동기 완료 메시지를 카운팅하며 카운트가 활성 프로세서들의 수와 일치할 때, 방송에 의해 동기 완료 메시지를 프로세서들에 발행한다(단계 405). 동기 완료 메시지는 그것의 동기 요청이 완료되는 프로세서 ID를 포함한다. 동기 마스터가 큐잉된 다수의 동기 요청들을 갖지만(예로서, 그것이 하나 이상의 프로세서로부터 하나 이상의 동기 요청을 수신하지만), 임의의 매개 무효화 요청들을 수신하지 않았다면, 동기 마스터는 개개의 동기 완료 메시지들 대신에, 다수의 동기 완료 메시지를 단계(405)에서 발행할 수 있다. 이것은 다수의 프로세서들에 의해 중첩하는 무효화/동기 시퀀스들의 핸들링을 가속화시킬 수 있다. 각각의 프로세서가 동기 마스터로부터 동기 완료 메시지를 수신할 때, 상기 프로세서가 동기를 요청하지 않았다면, 그것은 동기 완료 메시지를 무시하며 그것의 정상 실행을 계속한다. 상기 프로세서가 동기를 요청하였다면, 그것은 메시지에서의 ID를 그 자신의 ID에 비교한다(단계 406). ID가 단계(406)에서 일치한다면, 프로세서는 그 자신의 동기가 끝났음을 안다(단계 407). ID가 일치하지 않는다면, 프로세서는 프로세서가 요청한 동기를 수행하기 위해 동기 마스터를 계속해서 기다린다. 대안적으로, 동기 마스터에 의해 전송된 동기 완료 메시지는 단지 그 ID가 메시지에 포함되는 프로세서에, 또는 총 프로세서들의 서브세트에 전송될 수 있다.
많은 변화들이 여기에서의 개시에 기초하여 가능하다는 것이 이해되어야 한다. 특징들 및 요소들이 특정한 조합들로 상기에서 설명되지만, 각각의 특징 또는 요소는 다른 특징들 및 요소들 없이 단독으로 또는 다른 특징들 및 요소들을 갖거나 또는 그것 없이 다양한 조합들로 사용될 수 있다.
예를 들면, 상호 연결 패브릭은 다양한 기술들 중 임의의 것을 포함할 수 있다. 그것은 집적 회로 다이 상에서의 구성요소들 사이에서의 와이어들, 패키지를 공유하는 집적 회로 다이들 사이에서의 인터포저 또는 패키지 기판상에서의 와이어링, 또는 패키지들 사이에서의 인쇄 회로 보드 상에서의 와이어링을 포함할 수 있다.
부가적으로, 잠금 마스터 및 동기 마스터가 단일 엔티티(즉, 210)에 존재하는 것으로 상기 설명되었지만, 그것들은 각각 별개의 엔티티들에 존재할 수 있다는 것이 주의되어야 한다.
더욱이, 상기 방법들(300 및 400)은 예시적인 시스템(200)의 구성요소들에서 구현될 수 있으며, 여기에서 잠금 마스터 또는 동기 마스터는 잠금/동기 마스터(210)를 포함하며 프로세서들은 프로세서(P0 내지 P(N))를 포함한다. 상기 설명된 판독-수정-기록 동작들은 도 2에서의 프로세서들이 그것들의 각각의 메모리(즉, Mem0 내지 Mem(M))에 대한 판독-수정-기록 동작을 수행하는 것을 포함할 수 있다.
제공된 방법들은 범용 컴퓨터, 프로세서, 또는 프로세서 코어에서 구현될 수 있다. 적절한 프로세서들은, 예로서, 범용 프로세서, 특수 목적 프로세서, 종래의 프로세서, 디지털 신호 프로세서(DSP), 복수의 마이크로프로세서들, DSP 코어에 관련한 하나 이상의 마이크로프로세서들, 제어기, 마이크로제어기, 애플리케이션 특정 집적 회로들(ASIC들), 필드 프로그램 가능한 게이트 어레이들(FPGA들) 회로들, 임의의 다른 유형의 집적 회로(IC), 및/또는 상태 머신을 포함한다. 이러한 프로세서들은 프로세싱된 하드웨어 기술 언어(HDL) 지시들 및 네트리스트들을 포함한 다른 중간 데이터(이러한 지시들은 컴퓨터 판독 가능한 미디어 상에 저장될 수 있다)의 결과들을 사용하여 제조 프로세스를 구성함으로써 제조될 수 있다. 이러한 프로세싱의 결과들은 그 후 본 발명의 양상들을 구현하는 프로세서를 제조하기 위해 반도체 제조 프로세스에서 사용되는 마스크워크들일 수 있다.
여기에 제공된 방법들 또는 흐름도들은 범용 컴퓨터 또는 프로세서에 의한 실행을 위해 컴퓨터-판독 가능한 저장 매체에 통합된 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어에서 구현될 수 있다. 컴퓨터-판독 가능한 저장 매체들의 예들은 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 레지스터, 캐시 메모리, 반도체 메모리 디바이스들, 내부 하드 디스크들 및 착탈 가능한 디스크들과 같은 자기 미디어, 자기-광학 미디어, 및 CD-ROM 디스크들, 및 디지털 다목적 디스크들(DVD들)과 같은 광 미디어를 포함한다.
실시예들:
1. 기능을 수행하는 방법.
2. 실시예 1에 있어서, 캐시는 L2 또는 L3 캐시인, 방법.
3. 실시예 1 또는 실시예 2에 있어서, 동기화 배리어(DSB) 지시를 더 포함하는, 방법.
4. 실시예 1 내지 실시예 3 중 어느 하나의 실시예에 있어서, 동기화 배리어 지시는 간섭성 도메인에서의 모든 코어와의 특정 동기화를 수행하는, 방법.
5. 실시예 1 내지 실시예 4 중 어느 하나의 실시예에 있어서, 모든 다른 코어가 이제 DSB를 사용하여 동일한 스레드에 의해 이전 발행된 임의의 TLBI에 의해 영향을 받는 임의의 변환들을 사용하여 정지한 후 동기화를 완료시키는 단계를 더 포함하는, 방법.
6. 실시예 1 내지 실시예 5 중 어느 하나의 실시예에 있어서, 스레드는 DSB 또는 버스 잠금을 발행하는, 방법.
7. 실시예 1 내지 실시예 6 중 어느 하나의 실시예에 있어서, LS는 양쪽 스레드들 모두로부터 버스 잠금을 발행하지 않도록 스스로 제한하는, 방법.
8. 실시예 1 내지 실시예 7 중 어느 하나의 실시예에 있어서, LS는 양쪽 스레드들 모두로부터 DSB를 발행하지 않도록 스스로 제한하는, 방법.
9. 실시예 1 내지 실시예 8 중 어느 하나의 실시예에 있어서, DSB는 하나의 스레드로부터 발행되며 버스잠금은 제2 스레드로부터 발행되는, 방법.
10. 실시예 1 내지 실시예 9 중 어느 하나의 실시예에 있어서, DVMOp는 포스팅된 기록인, 방법.
11. 실시예 1 내지 실시예 10 중 어느 하나의 실시예에 있어서, 상기 스레드로부터 DVMSync 요청을 발행하기 전에 모든 보류 중인 기록들이 스레드로부터 끝나기를 기다리는 단계를 더 포함하는, 방법.
12. 실시예 1 내지 실시예 11 중 어느 하나의 실시예에 있어서, 모든 보류 중인 기록들이 스레드로부터 끝나기를 기다리는 단계는 임의의 DVMOp 요청들을 포함하는, 방법.
13. 실시예 1 내지 실시예 12 중 어느 하나의 실시예에 있어서, LS가 DVMSync 요청을 발행하였다면, 그것은 DVMSync가 그것의 DVMComplete를 수신할 때까지 상기 스레드 대신에 임의의 TLBI를 발행하지 않는, 방법.
14. 실시예 1 내지 실시예 13 중 어느 하나의 실시예에 있어서, 한 번에 단지 하나의 DVMSync를 발행하는 단계를 더 포함하는, 방법.
15. 실시예 1 내지 실시예 14 중 어느 하나의 실시예에 있어서, 제2 DVMSync는 DVMSync 메시지가 전송된 시간에서 DVMComplete 메시지가 전송된 시간까지 발행되지 않는, 방법.
16. 실시예 1 내지 실시예 15 중 어느 하나의 실시예에 있어서, 상이한 스레드들로부터의 다수의 DVMSync 요청들이 실패되며 단일의 DVMSync/DVMComplete 시퀀스를 갖고 핸들링되는, 방법.
17. 실시예 1 내지 실시예 16 중 어느 하나의 실시예에 있어서, 동기 동안, 메모리 제어기는 버스 잠금들을 포함한 정상 요청들을 계속해서 프로세싱하는, 방법.
18. 실시예 1 내지 실시예 17 중 어느 하나의 실시예에 있어서, DVMSync 요청들은 스레드 단위인, 방법.
19. 실시예 1 내지 실시예 18 중 어느 하나의 실시예에 있어서, DVMComplete 요청들은 퍼코어(percore)인, 방법.
20. 실시예 1 내지 실시예 19 중 어느 하나의 실시예에 있어서, 코어는 레지스터 기록을 통해, 메모리 제어기와 핸드쉐이크를 수행하는, 방법.
21. 실시예 1 내지 실시예 20 중 어느 하나의 실시예에 있어서, 코어는, CC6 엔트리 동안, 그것이 그것의 TLB를 사용하여 완료되었으며 셧 다운함을 상기 메모리 제어기에 알리며, 따라서 상기 메모리 제어기는 상기 코어로부터 임의의 DVMComplete 요청들을 더 이상 기대하지 않는, 방법.
22. 실시예 1 내지 실시예 21 중 어느 하나의 실시예에 있어서, 코어는, CC6 종료 동안 및 리셋 동안, 그것이 그것의 TLB를 사용하여 시작하려 함을 상기 메모리 제어기에 알리며, 따라서 상기 메모리 제어기는 DVMSync 메시지들에 응답하여 상기 코어로부터 DVMComplete 요청들을 기대하기 시작할 수 있는, 방법.
23. 실시예 1 내지 실시예 22 중 어느 하나의 실시예에 있어서, ITLB는 내부 2 사이클 프로브를 LS(어드레스 + 부가 필드들)에 전송하는, 방법.
24. 실시예 1 내지 실시예 23 중 어느 하나의 실시예에 있어서, ZVA는 캐시 체계가 모든 4개의 저장들을 수신할 때까지 폐쇄되지 않도록 보장된 4 WC+저장들인, 방법.
25. 실시예 1 내지 실시예 24 중 어느 하나의 실시예에 있어서, CLFLUSH는 별개의 트랜잭션 명령어 유형인, 방법.
26. 실시예 1 내지 실시예 25 중 어느 하나의 실시예에 있어서, ~LS_L2StWcbReqPosted를 갖고 강하게 순서화된 OP들의 성능은 WCB L2 버퍼들의 수에 의해 제한되는, 방법.
27. 실시예 1 내지 실시예 26 중 어느 하나의 실시예에 있어서, LS_L2StWcbReqPosted는 약하게 순서화된 트랜잭션들에 대해 설정되는, 방법.
28. 실시예 1 내지 실시예 27 중 어느 하나의 실시예에 있어서, L1은 단지 간섭성 memtype들에 대해서만 프로빙되며 L2 태그들이 보여준다면 그것은 L1에 존재하는, 방법.
29. 실시예 1 내지 실시예 28 중 어느 하나의 실시예에 있어서, 국소적으로 또는 전역적으로, TLB 엔트리들을 무효화하는 TLBI로 불리우는 지시를 더 포함하는, 방법.
30. 실시예 1 내지 실시예 29 중 어느 하나의 실시예에 있어서, 스레드는 파이프라이닝된 TLBI의 시리즈를 보내는, 방법.
31. 실시예 1 내지 실시예 30 중 어느 하나의 실시예에 있어서, TLBI 시리즈에 대한 대역폭은 5 내지 10 사이클들마다 하나인, 방법.
32. 실시예 1 내지 실시예 31 중 어느 하나의 실시예에 있어서, 프로브 채널에서의 연쇄된 메시지들은 인터리빙되지 않는, 방법.
33. 실시예 1 내지 실시예 32 중 어느 하나의 실시예에 있어서, SDP 포트에서의 상기 연쇄된 메시지들 사이에 정상 프로브들이 있지만, XSI는 이러한 유형의 인터리빙을 은닉하는, 방법.
34. 실시예 1 내지 실시예 33 중 어느 하나의 실시예에 있어서, 단지 유휴 사이클들만이 두 개의 DVMOp 메시지들 사이에 있는, 방법.
35. 실시예 1 내지 실시예 34 중 어느 하나의 실시예에 있어서, CC6 엔트리 동안, L1I, L1D, 및 L2가 플러싱되는, 방법.
36. 실시예 1 내지 실시예 35 중 어느 하나의 실시예에 있어서, PC6 엔트리 동안, L3가 플러싱되는, 방법.
37. 실시예 1 내지 실시예 36 중 어느 하나의 실시예에 있어서, 소프트웨어는 새로운 FlushL2Way CMO들 중 8개를 실행하는, 방법.
38. 실시예 1 내지 실시예 37 중 어느 하나의 실시예에 있어서, L3Ctl에서의 상기 플러시 반복자는 L2 및 L2 섀도우 태그들을 플러싱하지만, L3을 플러싱하지 않는, 방법.
39. 실시예 1 내지 실시예 38 중 어느 하나의 실시예에 있어서, SMU는 FlushL3Way 명령어를 갖고 8개의 SMN 기록들을 L3CTL1에 발행하는, 방법.
40. 실시예 1 내지 실시예 39 중 어느 하나의 실시예에 있어서, L3Ctl에서의 반복자는 상기 L3 캐시의 두 개의 방향들을 플러싱하는, 방법.
41. 실시예 1 내지 실시예 40 중 어느 하나의 실시예에 있어서, L2 캐시 위치의 플러시가 상기 라인이 또한 DC에 존재한다는 것을 발견할 때, L2Ctl은 DC 외의 라인을 프로브하는, 방법.
42. 실시예 1 내지 실시예 41 중 어느 하나의 실시예에 있어서, IC를 무효화하는 것은 상기 코어의 책임인, 방법.
43. 실시예 1 내지 실시예 42 중 어느 하나의 실시예에 있어서, 다중-코어 시스템에서 동기화 및 세마포어들을 지원하기 위해 국소적 및 전역적 모니터들을 더 포함하는, 방법.
44. 실시예 1 내지 실시예 43 중 어느 하나의 실시예에 있어서, 각각의 코어는 LS 내부에서의 국소적 모니터 및 CPU 밖에서의 전역적 모니터를 갖는, 방법.
45. 실시예 1 내지 실시예 44 중 어느 하나의 실시예에 있어서, 국소적 모니터는 상기 메모리 제어기의 간섭성 슬레이브에 또는 그 가까이에 있는, 방법.
46. 실시예 1 내지 실시예 45 중 어느 하나의 실시예에 있어서, LS는 배타적 트랜잭션 속성을 캐싱되지 않은 로드 또는 저장 트랜잭션에 적용하는, 방법.
47. 실시예 1 내지 실시예 46 중 어느 하나의 실시예에 있어서, 임의의 상이하게 상기 트랜잭션을 핸들링하지 않고, 트랜잭션 인코딩의 부분으로서 LS로부터 상기 SDF로 속성을 송신하는 단계를 더 포함하는, 방법.
48. 실시예 1 내지 실시예 47 중 어느 하나의 실시예에 있어서, SDF로부터의 캐싱되지 않은 저장 응답들은 배타적 판독-수정-기록의 성공 또는 실패를 표시하는 "ExOkay"로 불리우는 속성을 가질 수 있는, 방법.
49. 실시예 1 내지 실시예 48 중 어느 하나의 실시예에 있어서, 속성은 LS로 끝까지 상기 응답을 갖고 송신되는, 방법.
50. 실시예 1 내지 실시예 49 중 어느 하나의 실시예에 있어서, CLREX는 상기 국소적 모니터에 의해 전체적으로 핸들링되는, 방법.
51. 실시예 1 내지 실시예 50 중 어느 하나의 실시예에 있어서, NS는 모든 메모리 요청들의 속성으로서 통과할 수 있는, 방법.
52. 실시예 1 내지 실시예 51 중 어느 하나의 실시예에 있어서, NS는 태그들에 저장되는, 방법.
53. 실시예 1 내지 실시예 52 중 어느 하나의 실시예에 있어서, NS는 리필 응답에 대해 MCT에 의해 표시되는 것처럼 설정되며, 그것이 로드 또는 저장을 완료하려고 시도함에 따라 궁극적으로 LS에 의해 반응되는, 방법.
54. 실시예 1 내지 실시예 53 중 어느 하나의 실시예에 있어서, 실행 스레드가 상기 코어에서 적절한 제어 레지스터 비트마다, 보안 상태에 있지 않으며(SCR_EL3.NS), 상기 NS 태그 비트가 명확하다면, 그것은 상기 액세스를 거절하며 예외를 발생시키는, 방법.
55. 실시예 1 내지 실시예 54 중 어느 하나의 실시예에 있어서, 코어 액세스들을 위해 필요한 의미론들은 상기 코어 자체에 포함되는, 방법.
56. 실시예 1 내지 실시예 55 중 어느 하나의 실시예에 있어서, 다음의 속성들: 액세스 모드: {로드, 저장, 지시들 (ARM 전용)}, 캐시 레벨: {L1, L2, L3}, 및/또는 사용:{정상, 비-일시적}의 조합을 포함한 프리패치 지시들을 더 포함하는, 방법.
57. 실시예 1 내지 실시예 56 중 어느 하나의 실시예에 있어서, L2는 상기 L1을 포함하는, 방법.
58. 실시예 1 내지 실시예 57 중 어느 하나의 실시예에 있어서, L1을 타겟팅하는 프리패치는 또한 상기 L2를 타겟팅할, 방법.
59. 실시예 1 내지 실시예 58 중 어느 하나의 실시예에 있어서, 프리패치 지원은 LS 또는 IT로부터 오는, 방법.
60. 실시예 1 내지 실시예 59 중 어느 하나의 실시예에 있어서, 프리패치 지원이 LS로부터 온다면, 상기 L2가 로딩되는, 방법.
61. 실시예 1 내지 실시예 60 중 어느 하나의 실시예에 있어서, 코어는 인터럽트 또는 이벤트를 보류하는 유휴 저 전력 상태로 갈 수 있는, 방법.
62. 실시예 1 내지 실시예 61 중 어느 하나의 실시예에 있어서, 이벤트는 임의의 스레드가 모든 다른 스레드들로 방송할 수 있는 일반적 각성인, 방법.
63. 실시예 1 내지 실시예 62 중 어느 하나의 실시예에 있어서, 인터럽트들 및 이벤트들 양쪽 모두는 인터럽트 채널 상에서 코어에 도달하는, 방법.
64. 실시예 1 내지 실시예 63 중 어느 하나의 실시예에 있어서, 스레드가 SEV를 실행할 때, 그것은 특수 어드레스로의 캐싱되지 않은 기록으로서 LS에서 L2로 나가는, 방법.
65. 실시예 1 내지 실시예 64 중 어느 하나의 실시예에 있어서, CPU 밖에서의 로직은 상기 기록을 인식하며 상기 인터럽트 채널 상에서 상기 이벤트를 방송할 책임이 있는, 방법.
66. 실시예 1 내지 실시예 65 중 어느 하나의 실시예에 있어서, 코어에서의 양쪽 스레드들 모두가 WFE 또는 WFI를 실행한다면, 코어는 CC1에 들어가는(클록들이 중단됨), 방법.
67. 실시예 1 내지 실시예 66 중 어느 하나의 실시예에 있어서, L3I에서의 SCFCTP 블록은 상기 이벤트 또는 인터럽트가 도달할 때 상기 코어를 깨우는 것에 대한 책임이 있는, 방법.
68. 실시예 1 내지 실시예 67 중 어느 하나의 실시예에 있어서, 스레드-단위 리소스를 가진 인터럽트 제어기는 상기 SOC에서, CPU 집합체 밖에 존재하는, 방법.
69. 실시예 1 내지 실시예 68 중 어느 하나의 실시예에 있어서, 스레드는 상기 데이터 패브릭을 검토하는, 캐싱되지 않은 판독들 및 기록들을 사용하여 그것의 APIC/GIC와의 아웃바운드 통신을 개시할 수 있는, 방법.
70. 실시예 1 내지 실시예 69 중 어느 하나의 실시예에 있어서, APIC/GIC는 상기 인터럽트 채널을 사용하여 그것의 스레드와 인바운드 통신을 개시할 수 있는, 방법.
71. 실시예 1 내지 실시예 70 중 어느 하나의 실시예에 있어서, CPU 집합체 밖에 GIC 또는 APIC 블록들의 뱅크가 있는, 방법.
72. 실시예 1 내지 실시예 71 중 어느 하나의 실시예에 있어서, 각각의 CPU 집합체는, 상기 CPU 집합체에서의 스레드들의 수에 대한 충분한 용량을 갖고, 그것에 부착된 이들 인터럽트 제어기들의 세트를 갖는, 방법.
73. 실시예 1 내지 실시예 72 중 어느 하나의 실시예에 있어서, 인터럽트 제어기들의 뱅크는 프로세서 스레드들로부터의 레지스터 판독들 및 기록들을 위해, 및 IO 디바이스들로부터의 인입하는 인터럽트들을 위해 데이터 패브릭 연결(AXI를 사용하여)을 가지며, 상기 뱅크는 또한 프로세서 스레드로의 인터럽트들 및 인터럽트 핸드쉐이크들을 위한 제어 패브릭 연결(AXI_SP를 사용하여)을 갖는, 방법.
74. 실시예 1 내지 실시예 73 중 어느 하나의 실시예에 있어서, AXI_SP는 각각의 방향으로 단지 하나의 기록 채널을 가진 AXI의 서브세트와 비슷한, 방법.
75. 실시예 1 내지 실시예 74 중 어느 하나의 실시예에 있어서, 상기 기록들 모두는 포스팅되는, 방법.
76. 실시예 1 내지 실시예 75 중 어느 하나의 실시예에 있어서, AXI_SP로 및 그로부터의 트래픽은 수정된 SMN 라우터에 의해 또는 전용 개스킷 블록에 의해 SMN으로 병합되는, 방법.
77. 실시예 1 내지 실시예 76 중 어느 하나의 실시예에 있어서, SMN은 CPU 집합체에, 및 각각의 코어의 SCFCTP 블록 전방으로 인터럽트 트래픽을 연결하기 위해 사용되는, 방법.
78. 실시예 1 내지 실시예 77 중 어느 하나의 실시예에 있어서, SCFCTP는 물리적 인터럽트 와이어들을 코어로 이끄는, 방법.
79. 실시예 1 내지 실시예 78 중 어느 하나의 실시예에 있어서, 인터럽트는 IO 디바이스에서 시작하며 IO 허브로 나아가는, 방법.
80. 실시예 1 내지 실시예 79 중 어느 하나의 실시예에 있어서, 인터럽트는 메시지-시그널링 인터럽트로서 확장 가능한 데이터 패브릭에 걸쳐, APIC/GIC 뱅크의 AXI 포트로 가는, 방법.
81. 실시예 1 내지 실시예 80 중 어느 하나의 실시예에 있어서, CM은 실제 AXI 인터페이스를 사용하여 타겟팅된 APIC 또는 GIC에 메시지를 전달하는, 방법.
82. 실시예 1 내지 실시예 81 중 어느 하나의 실시예에 있어서, 인터럽트 메시지는 상기 AXI_SP 버스에 걸쳐 상기 SMN 네트워크로 가는, 방법.
83. 실시예 1 내지 실시예 82 중 어느 하나의 실시예에 있어서, SMN 네트워크는 인터럽트 메시지를 CPU 집합체로 라우팅하는, 방법.
84. 실시예 1 내지 실시예 83 중 어느 하나의 실시예에 있어서, CPU 집합체 내부에서, 상기 정상 SMN 라우팅 하드웨어는 인터럽트 메시지를 타겟팅된 코어의 SCFCTP 블록으로 향하게 하는, 방법.
85. 실시예 1 내지 실시예 84 중 어느 하나의 실시예에 있어서, SCFCTP 블록은 전용 물리적 인터럽트 와이어들을 사용하여, 인터럽트 메시지를 상기 L3I/코어 경계에 걸쳐 상기 코어의 인터럽트 로직으로 전달하는, 방법.
86. 실시예 1 내지 실시예 85 중 어느 하나의 실시예에 있어서, 인터럽트 전달을 위해 필요한 임의의 하드웨어 핸드쉐이크는 SMN 기록 트랜잭션들을 다시 GIC/APIC 뱅크로 되돌려 보내는 SCFCTP 뱅크에 의해 관리되는, 방법.
87. 실시예 1 내지 실시예 86 중 어느 하나의 실시예에 있어서, 판독/수정/기록 시퀀스를 보호하기 위해 원자성 프리미티브를 더 포함하는, 방법.
88. 실시예 1 내지 실시예 87 중 어느 하나의 실시예에 있어서, 원자성 프리미티브는 상기 L1 데이터 캐시에서 전체적으로 핸들링되는, 방법.
89. 실시예 1 내지 실시예 88 중 어느 하나의 실시예에 있어서, 원자성 프리미티브는 캐싱 가능한 잠금으로서 불리우는, 방법.
90. 실시예 1 내지 실시예 89 중 어느 하나의 실시예에 있어서, 버스잠금은 캐싱 가능하지 않은 어드레스들을 수반하거나 또는 캐시라인 경계를 스패닝하는, 방법.
91. 실시예 1 내지 실시예 90 중 어느 하나의 실시예에 있어서, SDF에서 버스 잠금들은 간섭성 슬레이브들 중 하나에서 또는 그 가까이에서, 집중된 버스 잠금 결정권자에 의해 제어되는, 방법.
92. 실시예 1 내지 실시예 91 중 어느 하나의 실시예에 있어서, 스레드들은 버스 잠금을 요청하며 아비터는 트랜잭션들을 발행하는 것을 정지시키기 위해 모든 다른 스레드에 알릴, 방법.
93. 실시예 1 내지 실시예 92 중 어느 하나의 실시예에 있어서, 아비터는 요청 스레드에 대한 버스 잠금을 승인하는, 방법.
94. 실시예 1 내지 실시예 93 중 어느 하나의 실시예에 있어서, 잠금 스레드는 그것의 원자 동작을 수행하는, 방법.
95. 실시예 1 내지 실시예 94 중 어느 하나의 실시예에 있어서, 상기 잠금은 해제되는, 방법.
96. 실시예 1 내지 실시예 95 중 어느 하나의 실시예에 있어서, 버스 잠금 아비터는 그것들이 트랜잭션들을 발행하는 것을 재개할 수 있음을 다른 스레드들에 알리는, 방법.
97. 실시예 1 내지 실시예 96 중 어느 하나의 실시예에 있어서, 잠금 동안, 간섭성 도메인에서의 모든 다른 코어들로부터의 모든 트래픽이 정지되는, 방법.
98. 실시예 1 내지 실시예 97 중 어느 하나의 실시예에 있어서, 간섭성 도메인에서의 다른 코어들은 그것들의 L1 및 L2 캐시들 중에서 계속해서 실행할 수 있지만, 임의의 L2 손실은 상기 버스가 잠금 해제될 때까지 정지할, 방법.
99. 실시예 1 내지 실시예 98 중 어느 하나의 실시예에 있어서, 인입하는 DVMSync를 완료하기 전에 미처리된 버스 잠금 시퀀스를 획득하며 끝내는 단계를 더 포함하는, 방법.
100. 실시예 1 내지 실시예 99 중 어느 하나의 실시예에 있어서, D 비트 기록은 원자적이며 일단 시작되면 DVMSync는 그것보다 앞서 순서화될 수 없는, 방법.
101. 실시예 1 내지 실시예 100 중 어느 하나의 실시예에 있어서, 버스 잠금은 DVMSync 시퀀스 동안 흐르는, 방법.
102. 실시예 1 내지 실시예 101 중 어느 하나의 실시예에 있어서, 메모리 제어기는 어떤 코어들이 CC6에 있는지를 아는, 방법.
103. 실시예 1 내지 실시예 102 중 어느 하나의 실시예에 있어서, CC6으로 및 그 밖으로 상기 트랜잭션들 주위에 코너 케이스들이 있는, 방법.
104. 실시예 1 내지 실시예 103 중 어느 하나의 실시예에 있어서, 코어(예로서, x86 마이크로코드, ARM 소프트웨어)는 메모리 제어기와, 레지스터 기록을 통해, 핸드쉐이크를 수행하는, 방법.
105. 실시예 1 내지 실시예 104 중 어느 하나의 실시예에 있어서, CC6 엔트리 동안, 상기 코어는 버스 트랜잭션들을 하며 셧 다운하는 것이 완료되었음을 상기 메모리 제어기에 알리며, 따라서 상기 메모리 제어기는 상기 코어로부터 임의의 BusLockGrant 요청들을 더 이상 기대하지 않는, 방법.
106. 실시예 1 내지 실시예 105 중 어느 하나의 실시예에 있어서, CC6 종료 동안 및 리셋 동안, 상기 코어는 그것이 버스 트랜잭션을 다시 시작하려고 함을 상기 메모리 제어기에 알리며, 따라서 상기 메모리 제어기는 BusLockReq 메시지들에 응답하여, 상기 코어로부터 BusLockGrant 요청들을 기대하기 시작해야 하는, 방법.
107. 실시예 1 내지 실시예 106 중 어느 하나의 실시예에 있어서, 잠금 마스터에 의해, 시스템에서의 제1 프로세서로부터 잠금 요청을 수신하는 단계를 포함하는, 방법.
108. 실시예 1 내지 실시예 107 중 어느 하나의 실시예에 있어서, 잠금 마스터에 의해, 상기 시스템에서의 모든 프로세서들에 작업 거부 요청을 전송하는 단계를 더 포함하는, 방법.
109. 실시예 1 내지 실시예 108 중 어느 하나의 실시예에 있어서, 잠금 마스터로부터 상기 작업 거부 요청의 수신 시, 모든 프로세서들에 의해, 새로운 트랜잭션을 발행하는 것을 중단하며 작업 거부 승인 트랜잭션을 발행하는, 방법.
110. 실시예 1 내지 실시예 109 중 어느 하나의 실시예에 있어서, 모든 프로세서들로부터 상기 작업 거부 승인 트랜잭션들의 수신 시, 상기 잠금 마스터에 의해, 잠금 승인 메시지를 발행하며, 상기 잠금 마스터에 의해 발행된 상기 잠금 승인 메시지는 상기 제1 프로세서의 식별자를 포함하는, 방법.
111. 실시예 1 내지 실시예 110 중 어느 하나의 실시예에 있어서, 상기 제1 프로세서에 의해, 원자 트랜잭션 시퀀스를 수행하는 단계 및 상기 원자 트랜잭션 시퀀스의 완료 시 상기 잠금 마스터에 제1 잠금 해제 메시지를 전송하는 단계를 더 포함하는, 방법.
112. 실시예 1 내지 실시예 111 중 어느 하나의 실시예에 있어서, 상기 잠금 마스터에 의해, 상기 제1 프로세서로부터 상기 제1 잠금 해제 메시지를 수신할 때 제2 잠금 해제 메시지를 모든 프로세서들에 전송하는 단계를 더 포함하는, 방법.
113. 실시예 1 내지 실시예 112 중 어느 하나의 실시예에 있어서, 상기 제1 프로세서가 상기 잠금 승인 메시지에 포함된 상기 식별자를 상기 제1 프로세서의 식별자에 비교하는 단계를 더 포함하는, 방법.
114. 실시예 1 내지 실시예 113 중 어느 하나의 실시예에 있어서, 상기 잠금 마스터가 상기 제1 프로세서가 아닌 프로세서들로부터 수신된 다수의 잠금 요청들을 큐잉하는 단계를 더 포함하는, 방법.
115. 실시예 1 내지 실시예 114 중 어느 하나의 실시예에 있어서, 적어도 하나의 프로세서가 활성 세트의 프로세서들에 참여하거나 또는 그것을 떠나기 위해 메시지를 상기 잠금 마스터에 전송하는 단계를 더 포함하는, 방법.
116. 실시예 1 내지 실시예 115 중 어느 하나의 실시예에 있어서, 상기 적어도 하나의 프로세서가 각성 상태에 이를 때 상기 활성 세트의 프로세서들에 참여하기 위해 메시지를 전송하는, 방법.
117. 실시예 1 내지 실시예 116 중 어느 하나의 실시예에 있어서, 상기 적어도 하나의 프로세서는 수면 상태에 들어갈 때 상기 프로세서들의 활성 상태를 떠나기 위해 메시지를 전송하는, 방법.
118. 실시예 1 내지 실시예 117 중 어느 하나의 실시예에 있어서, 상기 잠금 마스터가 상기 프로세서들로부터 수신된 작업 거부 승인 메시지들의 수를 카운팅하는 단계, 및 작업 거부 승인 메시지들이 모든 활성 프로세서들로부터 수신됨을 결정할 때 상기 잠금 승인 메시지들을 전송하는 단계를 더 포함하는, 방법.
119. 실시예 1 내지 실시예 118 중 어느 하나의 실시예에서와 같은 방법을 수행하도록 구성된 장치.
120. 실시예 1 내지 실시예 118 중 어느 하나의 실시예에서와 같은 방법을 수행하도록 구성된 시스템.

Claims (18)

  1. 방법으로서,
    잠금 마스터(lock master)에 의해, 시스템에서 제1 프로세서로부터 잠금 요청을 수신하는 단계;
    상기 잠금 마스터에 의해, 상기 시스템에서의 모든 프로세서에 작업 거부 요청을 전송하는 단계;
    상기 잠금 마스터로부터 상기 작업 거부 요청의 수신 시, 모든 프로세서에 의해, 새로운 트랜잭션들을 발행하는 것을 중단하며 작업 거부 승인 트랜잭션을 발행하는 단계;
    모든 프로세서로부터 상기 작업 거부 승인 트랜잭션들의 수신 시, 상기 잠금 마스터에 의해, 잠금 승인 메시지를 발행하는 단계로서, 상기 잠금 마스터에 의해 발행된 상기 잠금 승인 메시지는 상기 제1 프로세서의 식별자를 포함하는, 상기 잠금 승인 메시지를 발행하는 단계;
    상기 제1 프로세서에 의해, 원자 트랜잭션 시퀀스(atomic transaction sequence)를 수행하며 상기 원자 트랜잭션 시퀀스의 완료 시 제1 잠금 해제 메시지를 상기 잠금 마스터에 전송하는 단계; 및
    상기 잠금 마스터에 의해, 상기 제1 프로세서로부터 상기 제1 잠금 해제 메시지를 수신 시, 제2 잠금 해제 메시지를 모든 프로세서에 전송하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 제1 프로세서가 상기 잠금 승인 메시지에 포함된 상기 식별자를 상기 제1 프로세서의 상기 식별자에 비교하는 단계를 더 포함하는, 방법.
  3. 제1항에 있어서,
    상기 잠금 마스터가 상기 제1 프로세서가 아닌 프로세서들로부터 수신된 다수의 잠금 요청을 큐잉(queuing)하는 단계를 더 포함하는, 방법.
  4. 제1항에 있어서,
    적어도 하나의 프로세서가 활성 세트의 프로세서에 참여하거나 또는 이를 떠나기 위해 메시지를 상기 잠금 마스터에 전송하는 단계를 더 포함하는, 방법.
  5. 제4항에 있어서,
    상기 적어도 하나의 프로세서는 각성 상태(awake state)에 이를 때 상기 활성 세트의 프로세서에 참여하기 위해 메시지를 전송하는, 방법.
  6. 제4항에 있어서,
    상기 적어도 하나의 프로세서는 수면 상태(sleep state)에 들어갈 때 상기 활성 세트의 프로세서들을 떠나기 위해 메시지를 전송하는, 방법.
  7. 제4항에 있어서,
    상기 잠금 마스터가 상기 프로세서들로부터 수신된 작업 거부 승인 메시지들의 수를 카운팅하는 단계, 및 작업 거부 승인 메시지들이 모든 활성 프로세서로부터 수신됨을 결정 시 상기 잠금 승인 메시지들을 전송하는 단계를 더 포함하는, 방법.
  8. 시스템으로서,
    복수의 프로세서; 및
    잠금 마스터를 포함하며,
    상기 잠금 마스터는 상기 시스템에서의 상기 복수의 프로세서의 제1 프로세서로부터 잠금 요청을 수신하고, 상기 시스템에서의 모든 프로세서에 작업 거부 요청을 전송하고, 모든 프로세서로부터의 작업 거부 승인 트랜잭션의 수신할 때, 잠금 승인 메시지를 발행하되, 상기 잠금 마스터에 의해 발행된 상기 잠금 승인 메시지는 상기 제1 프로세서의 식별자를 포함하는, 상기 잠금 승인 메시지를 발행하며, 그리고 상기 제1 프로세서로부터 제1 잠금 해제 메시지를 수신할 때 제2 잠금 해제 메시지를 모든 프로세서에 전송하도록 구성되는, 시스템.
  9. 청구항 8에 있어서,
    상기 잠금 마스터로부터의 상기 작업 거부 요청의 수신 시, 모든 프로세서는 새로운 트랜잭션을 중단하며 상기 작업 거부 승인 트랜잭션을 발행하는, 시스템.
  10. 제8항에 있어서,
    상기 잠금 승인 메시지의 수신 시, 상기 제1 프로세서는 원자 트랜잭션 시퀀스를 수행하며 상기 원자 트랜잭션 시퀀스의 완료 시 상기 제1 잠금 해제 메시지를 상기 잠금 마스터에 전송하도록 구성되는, 시스템.
  11. 제8항에 있어서,
    상기 제1 프로세서는 상기 잠금 승인 메시지에 포함된 상기 식별자를 상기 제1 프로세서의 상기 식별자에 비교하도록 구성되는, 시스템.
  12. 제8항에 있어서,
    상기 잠금 마스터는 상기 제1 프로세서가 아닌 프로세스들로부터 수신된 다수의 잠금 요청을 큐잉하도록 구성되는, 시스템.
  13. 제8항에 있어서,
    적어도 하나의 프로세서는 활성 세트의 프로세스에 참여하거나 또는 이를 떠나기 위해 메시지를 상기 잠금 마스터에 전송하도록 구성되는, 시스템.
  14. 제13항에 있어서,
    상기 적어도 하나의 프로세서는 각성 상태에 이를 때 상기 활성 세트의 프로세서에 참여하기 위해 메시지를 전송하는, 시스템.
  15. 제13항에 있어서,
    상기 적어도 하나의 프로세서는 수면 상태에 들어갈 때 상기 활성 세트의 프로세서를 떠나기 위해 메시지를 전송하는, 시스템.
  16. 제13항에 있어서,
    상기 잠금 마스터는 상기 프로세서들로부터 수신된 작업 거부 승인 메시지들의 수를 카운팅하며, 작업 거부 승인 메시지들이 모든 활성 프로세서로부터 수신됨을 결정할 때 상기 잠금 승인 메시지들을 전송하도록 구성되는, 시스템.
  17. 장치로서,
    시스템에서의 복수의 프로세서 중 제1 프로세서로부터 잠금 요청을 수신하고, 상기 시스템에서의 모든 프로세서에 작업 거부 요청을 전송하고, 모든 프로세서로부터의 작업 거부 승인 트랜잭션들의 수신 시, 잠금 승인 메시지를 발행하되, 상기 잠금 승인 메시지는 상기 제1 프로세서의 식별자를 포함하는, 상기 잠금 승인 메시지를 발행하며, 그리고 상기 제1 프로세서로부터 제1 잠금 해제 메시지를 수신할 때 제2 잠금 해제 메시지를 모든 프로세서에 전송하도록 구성된 회로를 포함하는, 장치.
  18. 제17항에 있어서,
    상기 프로세서들로부터 수신된 작업 거부 승인 메시지들의 수를 카운팅하며, 작업 거부 승인 메시지들이 모든 활성 프로세서로부터 수신됨을 결정할 때 상기 잠금 승인 메시지들을 전송하도록 구성된 회로를 더 포함하는, 장치.
KR1020167013468A 2013-10-25 2014-10-23 버스 잠금 및 변환 색인 버퍼 무효화를 수행하기 위한 방법 및 장치 KR102165775B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361895569P 2013-10-25 2013-10-25
US61/895,569 2013-10-25
PCT/US2014/061944 WO2015061554A1 (en) 2013-10-25 2014-10-23 Method and apparatus for performing a bus lock and translation lookaside buffer invalidation

Publications (2)

Publication Number Publication Date
KR20160075638A true KR20160075638A (ko) 2016-06-29
KR102165775B1 KR102165775B1 (ko) 2020-10-14

Family

ID=52993553

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167013468A KR102165775B1 (ko) 2013-10-25 2014-10-23 버스 잠금 및 변환 색인 버퍼 무효화를 수행하기 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US9916243B2 (ko)
EP (1) EP3060996A4 (ko)
JP (1) JP6609552B2 (ko)
KR (1) KR102165775B1 (ko)
CN (1) CN105765547A (ko)
WO (1) WO2015061554A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10817434B2 (en) * 2018-12-19 2020-10-27 International Business Machines Corporation Interruptible translation entry invalidation in a multithreaded data processing system
CN113590314A (zh) * 2021-07-13 2021-11-02 上海一谈网络科技有限公司 网络请求数据处理方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020186711A1 (en) * 2001-05-17 2002-12-12 Kazunori Masuyama Fault containment and error handling in a partitioned system with shared resources
US20070033311A1 (en) * 2005-07-22 2007-02-08 Young David W Quiescing a processor bus agent
US7761696B1 (en) * 2007-03-30 2010-07-20 Intel Corporation Quiescing and de-quiescing point-to-point links
US20110296028A1 (en) * 2009-02-17 2011-12-01 Panasonic Corporation Exclusive control method of resource and exclusive controller of resource
US20130054915A1 (en) * 2011-08-22 2013-02-28 Pik Shen Chee Performing An Atomic Operation Without Quiescing An Interconnect Structure

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381663B1 (en) 1999-03-26 2002-04-30 Hewlett-Packard Company Mechanism for implementing bus locking with a mixed architecture
US6484185B1 (en) 1999-04-05 2002-11-19 Microsoft Corporation Atomic operations on data structures
US7640315B1 (en) * 2000-08-04 2009-12-29 Advanced Micro Devices, Inc. Implementing locks in a distributed processing system
CN1302419C (zh) * 2001-09-21 2007-02-28 泛伺服公司 用于具有共享存储器的多节点环境的系统和方法
US6892283B2 (en) * 2002-12-05 2005-05-10 International Business Machines Corporation High speed memory cloner with extended cache coherency protocols and responses
US7191349B2 (en) * 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US7730491B2 (en) * 2005-08-30 2010-06-01 Intel Corporation Fair scalable reader-writer mutual exclusion
JP4208895B2 (ja) * 2006-05-30 2009-01-14 株式会社東芝 キャッシュメモリ装置および処理方法
US8443148B2 (en) 2009-12-26 2013-05-14 Intel Corporation System-wide quiescence and per-thread transaction fence in a distributed caching agent
US8352656B2 (en) 2010-04-08 2013-01-08 Intel Corporation Handling atomic operations for a non-coherent device
US8516577B2 (en) * 2010-09-22 2013-08-20 Intel Corporation Regulating atomic memory operations to prevent denial of service attack
JP5838652B2 (ja) 2011-08-23 2016-01-06 富士通株式会社 データコピー処理システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020186711A1 (en) * 2001-05-17 2002-12-12 Kazunori Masuyama Fault containment and error handling in a partitioned system with shared resources
US20070033311A1 (en) * 2005-07-22 2007-02-08 Young David W Quiescing a processor bus agent
US7761696B1 (en) * 2007-03-30 2010-07-20 Intel Corporation Quiescing and de-quiescing point-to-point links
US20110296028A1 (en) * 2009-02-17 2011-12-01 Panasonic Corporation Exclusive control method of resource and exclusive controller of resource
US20130054915A1 (en) * 2011-08-22 2013-02-28 Pik Shen Chee Performing An Atomic Operation Without Quiescing An Interconnect Structure

Also Published As

Publication number Publication date
US20150120976A1 (en) 2015-04-30
JP2016534432A (ja) 2016-11-04
CN105765547A (zh) 2016-07-13
JP6609552B2 (ja) 2019-11-20
EP3060996A4 (en) 2017-05-10
WO2015061554A1 (en) 2015-04-30
EP3060996A1 (en) 2016-08-31
US9916243B2 (en) 2018-03-13
KR102165775B1 (ko) 2020-10-14

Similar Documents

Publication Publication Date Title
US10223280B2 (en) Input/output memory map unit and northbridge
US10509740B2 (en) Mutual exclusion in a non-coherent memory hierarchy
US7590805B2 (en) Monitor implementation in a multicore processor with inclusive LLC
JP3589394B2 (ja) リモート資源管理システム
CN110109847B (zh) Apb总线多个主设备的仲裁方法、系统及存储介质
US9547596B2 (en) Handling of a wait for event operation within a data processing apparatus
US20020083299A1 (en) High speed remote storage controller
TW201320098A (zh) 用於i/o流量的同調性開關
US20130080795A1 (en) Dynamically Adjusting Power Of Non-Core Processor Circuitry
JP2001167077A (ja) ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
CN105492989B (zh) 用于管理对时钟进行的门控的装置、系统、方法和机器可读介质
DE112013001361T5 (de) Bereitstellung Snoop-Filterung zugeordnet mit einem Datenpuffer
WO2006124750A1 (en) Transparent support for operating system services
JP2008027305A (ja) データ処理装置
Yilmazer et al. HQL: A scalable synchronization mechanism for GPUs
US20070073977A1 (en) Early global observation point for a uniprocessor system
KR20160075638A (ko) 버스 잠금 및 변환 색인 버퍼 무효화를 수행하기 위한 방법 및 장치
US10386904B2 (en) Hardware managed power collapse and clock wake-up for memory management units and distributed virtual memory networks
JP2009217721A (ja) マルチプロセッサシステムにおけるデータ同期方法及びマルチプロセッサシステム
US8959290B2 (en) Methods and apparatus for reusing snoop responses and data phase results in a cache controller
JP2013196245A (ja) シミュレーション方法、シミュレーション装置及びシミュレーションプログラム
Rutgers et al. An efficient asymmetric distributed lock for embedded multiprocessor systems
US8886889B2 (en) Methods and apparatus for reusing snoop responses and data phase results in a bus controller
JP2001167068A (ja) メモリアクセス方法及びマルチプロセッサシステム
Mirian et al. Managing mutex variables in a cache-coherent shared-memory system for FPGAs

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant