KR20180071967A - 데이터 처리 - Google Patents

데이터 처리 Download PDF

Info

Publication number
KR20180071967A
KR20180071967A KR1020170173934A KR20170173934A KR20180071967A KR 20180071967 A KR20180071967 A KR 20180071967A KR 1020170173934 A KR1020170173934 A KR 1020170173934A KR 20170173934 A KR20170173934 A KR 20170173934A KR 20180071967 A KR20180071967 A KR 20180071967A
Authority
KR
South Korea
Prior art keywords
data
node
transmission
data transmission
slave
Prior art date
Application number
KR1020170173934A
Other languages
English (en)
Other versions
KR102469404B1 (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 KR20180071967A publication Critical patent/KR20180071967A/ko
Application granted granted Critical
Publication of KR102469404B1 publication Critical patent/KR102469404B1/ko

Links

Images

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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/0817Cache consistency protocols using directory methods
    • 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
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/404Coupling between buses using bus bridges with address mapping
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • G06F2212/6046Using a specific cache allocation policy other than replacement policy
    • 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

Abstract

데이터 처리 시스템은, 데이터 송신을 시작하는 마스터 노드; 상기 데이터 송신을 수신하는 하나 이상의 슬레이브 노드들; 및 상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 홈 노드를 구비하고, 상기 마스터 노드로부터 상기 하나 이상의 슬레이브 노드들 중 하나에의 적어도 하나의 데이터 송신은 상기 홈 노드를 우회한다.

Description

데이터 처리{DATA PROCESSING}
본 발명은 데이터 처리에 관한 것이다.
데이터 전송 프로토콜들은, 예를 들면 시스템 온 칩(SoC)이나 네트워크 온 칩(NoC) 시스템의 상황속에서, 인터커넥트 회로를 거쳐 서로 접속된 기기들 또는 노드들간의 데이터 전송의 동작을 규제할 수 있다. 이러한 데이터 전송 프로토콜의 일례는, 소위 AMBA(Advanced Microcontroller Bus Architecture) CHI(Coherent Hub Interface) 프로토콜이다.
상기 CHI 프로토콜에서는, 요구(request) 노드들(RN), 홈(home) 노드들(HN) 또는 슬레이브 노드들(SN)로서 노드들을 분류할 수 있다. 노드들은, 완전(fully) 코히어런트 또는 입/출력(I/O) 코히어런트일 수 있다. 완전 코히어런트 HN 또는 RN(각각 HN-F, RN-F)은 코히어런트 캐시 스토리지를 구비하고; 완전 코히어런트 SN(SN-F)은, HN-F와 쌍을 이룬다. HN-F는 메모리 영역의 일관성을 관리할 수 있다.
여기서, "코히어런트"란, 하나의 노드에 의해 상기 코히어런트 메모리 시스템에서의 메모리 어드레스에 기록된 그 데이터가 다른 노드에 의해 상기 코히어런트 메모리 시스템에서의 그 메모리 어드레스로부터 판독된 데이터와 일치된다는 것을 내포한다. 이 때문에, 일관성 기능과 관련된 로직의 역할은, 데이터 핸들링 트랜잭션이 일어나기 전에, 데이터 항목이 액세스되는 버전이 (동일한 데이터 항목의 다른 복사에 대해 이루어진 변형 때문에) 구식인 경우, 액세스되는 복사를 먼저 최신으로 하도록 보장하는 것이다. 마찬가지로, 상기 데이터 핸들링 트랜잭션이 데이터 항목을 변형하는 것을 포함하는 경우, 일관성 로직은 상기 데이터 항목의 다른 기존의 복사와 충돌하는 것을 피한다.
상기 CHI 프로토콜은, 기록 데이터 채널이 자유 유동(free-flowing)이어야 하는 것을 제공함으로써, 상기 인터커넥트가 데이터 전송을 금지하는 병목현상이 되지 않게 하는데 목적이 있다. 이것은, SN에의 데이터 기록에 관한 그 RN으로부터 기록 요구를 수신하는 것에 응답하여 RN에 풀(full) 패킷 버퍼를 상기 HN에 의해 할당함으로써 CHI 호환 시스템에서 이루어진다. 상기 패킷 버퍼는, 상기 전송에 관한 데이터 플릿(flit)의 전부(흐름 제어 숫자들)가 상기 RN으로부터 수신되어 상기 SN에 보내졌을 경우 해제된다. 이러한 구성에 의해, 상기 HN에서 버퍼 공간을 위해 상당히 필요하다.
다른 프로토콜의 예들은, 상기 AXI(Advanced Extensible Interface) 또는 ACE(AXI Coherency Extensions) 프로토콜들을 포함한다. 어느 점에서는, 상기 CHI 및 AXI/ACE 프로토콜들이 호환 불가능하다. 상기 ACE 프로토콜은, 예를 들면 HN을 이용하지 않지만, 일관성을 제공한다. 각각 기록 데이터가 자유 유동인 것을 필요로 하지만, (상기 ACE 프로토콜에서 일관성을 관리하는) 상기 인터커넥트는, 기록 요구와 같은 트랜잭션의 일부로서 기록 데이터를 경로 지정해야 한다.
일 구성 예에서 제공한 데이터 처리 시스템은,
데이터 송신을 시작하는 마스터 노드;
상기 데이터 송신을 수신하는 하나 이상의 슬레이브 노드들; 및
상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 홈 노드를 구비하고,
상기 마스터 노드로부터 상기 하나 이상의 슬레이브 노드들 중 하나에의 적어도 하나의 데이터 송신은 상기 홈 노드를 우회한다.
다른 구성 예에서 제공한 인터페이스 회로는,
데이터 처리 시스템의 마스터 노드를 갖는 정보와 홈 노드와 하나 이상의 슬레이브 노드들을 갖는 정보를 교환하는 회로를 구비하고, 상기 홈 노드가 상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 노드이고,
상기 인터페이스 회로는, 제1 데이터 전송 프로토콜에 따라 상기 마스터 노드로부터 송신 요구와 데이터 송신을 수신하고, 상기 제1 데이터 전송 프로토콜과 다른 제2 데이터 전송 프로토콜에 따라 상기 수신된 데이터 송신으로부터 주어진 슬레이브 노드에 데이터를 전송하도록 구성된다.
다른 구성 예에서 제공한 데이터 처리방법은,
마스터 노드에 의해, 하나 이상의 슬레이브 노드들에 데이터 송신을 시작하는 단계;
홈 노드에 의해, 상기 하나 이상의 슬레이브 노드들에 기억된 데이터간에 일관성을 제어하는 단계;
상기 하나 이상의 슬레이브 노드들 중 하나에 데이터를 송신하는 상기 마스터 노드에 의해, 상기 홈 노드를 우회하는 단계를 포함한다.
다른 구성 예에서 제공한 방법은,
데이터 처리 시스템의 마스터 노드를 갖는 정보와, 상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 홈 노드와 하나 이상의 슬레이브 노드들을 갖는 정보와를 교환하는 인터페이스 회로를 제공하는 단계;
상기 인터페이스 회로에 의해, 제1 데이터 전송 프로토콜에 따라 상기 마스터 노드로부터 송신 요구와 데이터 송신을 수신하고, 상기 제1 데이터 전송 프로토콜과 다른 제2 데이터 전송 프로토콜에 따라 상기 수신된 데이터 송신으로부터 주어진 슬레이브 노드에 데이터를 전송하는 단계를 포함한다.
본 기술의 또 다른 각각의 측면 및 특징은 첨부된 청구항에 기재되어 있다.
본 기술을 아래의 첨부도면들에 도시된 것과 같은 본 발명의 실시예들을 참조하여 예시로만 한층 더 설명하겠다:
도 1은 데이터 처리장치를 개략적으로 도시한 것이고,
도 2는 기록 데이터 트랜잭션을 개략적으로 도시한 것이고,
도 3은 홈 노드를 우회하는 기록 데이터 트랜잭션을 개략적으로 도시한 것이고,
도 4는 방법을 도시하는 개략 흐름도이고,
도 5는 홈 노드를 우회하는 기록 데이터 트랜잭션을 개략적으로 도시한 것이고,
도 6 및 도 7은 트랜잭션시의 식별자 필드들을 개략적으로 도시한 것이고,
도 8 및 도 9는 홈 노드를 우회하는 기록 데이터 트랜잭션을 개략적으로 도시한 것이고,
도 10은 기록 데이터 트랜잭션을 개략적으로 도시한 것이고,
도 11 내지 도 13은 홈 노드를 우회하는 기록 데이터 트랜잭션을 개략적으로 도시한 것이고,
도 14는 인터페이스 회로를 개략적으로 도시한 것이고,
도 15 및 도 16은 방법을 도시하는 개략 흐름도다.
첨부도면들을 참조하여 상기 실시예를 설명하기 전에, 아래의 실시예들을 설명한다.
일 실시예에서 제공하는 데이터 처리 시스템은,
데이터 송신을 시작하는 마스터 노드;
상기 데이터 송신을 수신하는 하나 이상의 슬레이브 노드들; 및
상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 홈 노드를 구비하고,
상기 마스터 노드로부터 상기 하나 이상의 슬레이브 노드들 중 하나에의 적어도 하나의 데이터 송신은 상기 홈 노드를 우회한다.
홈 노드가 일관성을 감독하게 하지만 마스터 노드가 데이터 전송을 슬레이브 노드에 직접 발행하게도 함으로써, 홈 노드에서 버퍼링할 필요가 감소하고 및/또는 기록 데이터 트랜잭션시의 데이터 트래픽을 감소하는 구성 예를 제공할 수 있다.
일부의 예에서, 상기 시스템은, 상기 마스터 노드가 상기 하나 이상의 슬레이브 노드들 중 하나에 데이터 송신을 요구하는 송신 요구를 상기 홈 노드에 발행하도록 구성됨으로써 상기 코히어런트 기술들을 이용할 수 있고; 상기 홈 노드는, 슬레이브 노드에서 메모리 어드레스에 기록된 데이터가 이후의 액세스 요구에 응답하여 상기 메모리 어드레스로부터 판독된 데이터와 일치되도록, 상기 하나 이상의 슬레이브 노드들에의 송신 요구들과 액세스 요구들을 직렬화하도록 구성된다.
일부의 예들에서, 상기 우회하는 기술은, 상기 하나 이상의 슬레이브 노드들 중 주어진 슬레이브 노드에의 데이터 송신을 요구하는 주어진 송신 요구의 직렬화에 응답하여, 상기 주어진 송신 요구에 대응한 상기 데이터 송신이 이루어진 것을 나타내는 허가를 상기 주어진 슬레이브 노드에 직접 발행하도록 상기 홈 노드가 구성됨으로써, 구현될 수 있다. 구현 예에서, 상기 홈 노드가 발행한 허가는, 소스 노드 식별자와 타겟 노드 식별자를 포함하고; 상기 소스 노드 식별자는 상기 주어진 슬레이브 노드가 상기 허가의 소스였던 것을 나타낸다. 이러한 일부의 예들에서, 상기 데이터 송신은, 상기 홈 노드가 발행한 허가의 상기 소스 노드 식별자로부터 얻어진 타겟 노드 식별자를 포함한다.
소위 데이터 해저딩(hazarding)을 피하기 위해서, 일부의 예들에서 상기 홈 노드는, 초기의 직렬화(earlier-serialized) 송신 요구에 관한 제1 데이터 송신의 완료후까지, 후기의 직렬화(later-serialized) 송신 요구에 관한 제2 데이터 송신이, 상기 제1 데이터 송신과 같은 메모리 어드레스에 데이터를 기록하는 것을 금지하도록 구성된다.
예들에서, 상기 하나 이상의 슬레이브 노드들의 각각이, 그 슬레이브 노드에 향한 임의의 다른 데이터 송신과 관계 없이 그 슬레이브 노드에 향한 각 데이터 송신을 접수하도록 구성된다.
이 구성들은, 상기 마스터 노드 및 상기 홈 노드와 상기 하나 이상의 슬레이브 노드들과의 사이의 인터페이스 회로를 사용하여서, 프로토콜 포맷들에 걸쳐 데이터 송신을 편리하게 제공할 수 있고; 상기 인터페이스 회로는, 제1 데이터 전송 프로토콜에 따라 상기 마스터 노드로부터 송신 요구와 데이터 송신을 수신하고, 상기 제1 데이터 전송 프로토콜과 다른 제2 데이터 전송 프로토콜에 따라 상기 수신된 데이터 송신으로부터 주어진 슬레이브 노드에 데이터를 전송한다.
예들에서, 상기 인터페이스 회로는 상기 주어진 슬레이브 노드에 송신하기 위한 송신 메시지를 생성하도록 구성되고, 상기 송신 메시지는, 적어도, 상기 수신된 송신 요구로부터의 메모리 어드레스 정보와, 상기 수신된 데이터 송신으로부터의 데이터를 포함한다. 상기 인터페이스 회로는, 상기 수신된 송신 요구로부터의 메모리 어드레스 정보; 및 상기 수신된 데이터 송신으로부터의 데이터 중, 적어도 하나를 버퍼링하는 버퍼를 구비하여도 된다.
상기 마스터 노드가 캐시 메모리와 관련되고 상기 하나 이상의 슬레이브 노드들 중 적어도 하나가 상위 레벨 메모리를 제공하는 구성에 의해, 소위 더티 코히어런트 데이터를 청소할 수 있고; 상기 시스템은 적어도 하나의 또 다른 마스터 노드를 구비하고; 상기 캐시 메모리에 기억된 메모리 어드레스로부터 데이터를 검색하기 위해 상기 또 다른 마스터 노드로부터의 데이터 액세스 요구에 응답하여, 상기 인터페이스 회로는, 상기 캐시 메모리로부터 검색된 데이터를 수신하고 그 검색된 데이터를 상기 또 다른 마스터 노드에 제공하도록 구성된다.
적어도 일부의 예들에서, 상기 캐시 메모리에서 상기 검색된 데이터가 상기 상위 레벨 메모리에서 동일한 메모리 어드레스에 보유된 데이터와 다르게 검출되는 경우, 상기 인터페이스 회로는 데이터 송신으로서 상기 검색된 데이터를 상기 상위 레벨 메모리에 송신하도록 구성된다.
일부의 예들에서, 상기 우회하는 기술은, 상기 마스터 노드로부터 상기 슬레이브 노드들 중 하나에의 데이터 송신에 관하여, 상기 슬레이브 노드가 상기 데이터 전송을 위해 크레디트(credit)를 발행하도록 구성됨으로써 이루어질 수 있고, 이때의 크레디트가 상기 홈 노드를 우회하는 경로에 의해 상기 마스터 노드에 제공된다.
데이터 트래픽을 저감시키기 위해서, 상기 슬레이브 노드는 상기 크레디트와 긍정응답(acknowledgement)으로 이루어지는 단일 메시지를 발행하도록 구성될 수 있는 것이 바람직하다.
적어도 일부의 예들에서, 상기 슬레이브 노드들 중 하나 이상은, 상기 마스터 노드에 대해 상이한 통신 프로토콜에 따라 동작하도록 구성된다. 예를 들면, 상기 마스터 노드는 코히어런트 허브 인터페이스(Coherent Hub Interface) 프로토콜에 따라 동작하도록 구성되어도 되고, 상기 슬레이브 노드들 중 하나 이상은 개선된 확장 가능 인터페이스(Advanced Extensible Interface) 프로토콜에 따라 동작하도록 구성되어도 된다.
다른 실시예에서 제공한 인터페이스 회로는,
데이터 처리 시스템의 마스터 노드를 갖는 정보와 홈 노드와 하나 이상의 슬레이브 노드들을 갖는 정보를 교환하는 회로를 구비하고, 상기 홈 노드가 상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 노드이고,
상기 인터페이스 회로는, 제1 데이터 전송 프로토콜에 따라 상기 마스터 노드로부터 송신 요구와 데이터 송신을 수신하고, 상기 제1 데이터 전송 프로토콜과 다른 제2 데이터 전송 프로토콜에 따라 상기 수신된 데이터 송신으로부터 주어진 슬레이브 노드에 데이터를 전송하도록 구성된다.
일부의 예들에서, 상기 인터페이스 회로는, 주어진 슬레이브 노드에 송신하기 위한 송신 메시지를 생성하도록 구성되고, 상기 송신 메시지는, 적어도, 상기 마스터 노드로부터 수신된 송신 요구로부터의 메모리 어드레스 정보와, 상기 마스터 노드로부터 수신된 상기 데이터 송신으로부터의 데이터를 포함한다.
다른 실시예에서 제공한 데이터 처리방법은,
마스터 노드에 의해, 하나 이상의 슬레이브 노드들에 데이터 송신을 시작하는 단계;
홈 노드에 의해, 상기 하나 이상의 슬레이브 노드들에 기억된 데이터간에 일관성을 제어하는 단계;
상기 하나 이상의 슬레이브 노드들 중 하나에 데이터를 송신하는 상기 마스터 노드에 의해, 상기 홈 노드를 우회하는 단계를 포함한다.
다른 실시예에서 제공한 방법은,
데이터 처리 시스템의 마스터 노드를 갖는 정보와, 상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 홈 노드와 하나 이상의 슬레이브 노드들을 갖는 정보와를 교환하는 인터페이스 회로를 제공하는 단계;
상기 인터페이스 회로에 의해, 제1 데이터 전송 프로토콜에 따라 상기 마스터 노드로부터 송신 요구와 데이터 송신을 수신하고, 상기 제1 데이터 전송 프로토콜과 다른 제2 데이터 전송 프로토콜에 따라 상기 수신된 데이터 송신으로부터 주어진 슬레이브 노드에 데이터를 전송하는 단계를 포함한다.
여러가지의 소위 노드들은, 상기 네트워크(100)를 거쳐 접속된다. 이 노드들은, 상기 네트워킹된 시스템내에서 데이터 일관성을 감독하는 하나 이상의 홈 노드들(HN)(110)과, 상위 레벨 캐시 메모리(120)와 같은 하나 이상의 슬레이브 노드들(SN)("상위 레벨"에 대한 참조는 요구중 노드에서 제공되고 후술한 캐시 메모리에 대한 것임)과, 메인 메모리(130)와, 주변기기(140)로 이루어진다. 도 1에 도시된 슬레이브 노드들은 예시에 의해 선택되고, 각 타입의 슬레이브 노드의 0이상이 제공되어도 된다.
도 1에는, 소위 복수의 요구중 노드들(RN)(150, 160, 170, 180)도 도시되어 있다. 이들 중, 상기 RN 160, 170은 상기 CHI(코히어런트 허브 인터페이스) 프로토콜에 따라 동작하고, 상기 RN 180은 상기 AXI(개선된 확장 가능 인터페이스) 표준에 따라 동작한다.
상기 RN(160)은 캐시 메모리(162)와 관련된 완전 코히어런트 RN(RN-F)이다. 상기 RN(170)은 RN-F이어도 되고 캐시 메모리(172)를 가져도 된다. 상기 RN(150)은, 상기 소위 ACE-lite 프로토콜에 따라 동작하는 입/출력 코히어런트 마스터다.
상기 노드 150, 160, 170, 180에 대해서는 네트워크 인터페이스(NI)가 제공된다. 그 노드 160, 170에 대한 NI는 CHI-NI 164, 174이고, 상기 노드 150, 180에 대한 NI는 AXI-NI 154, 184다. 상기 네트워크 인터페이스들의 동작에 대해서는 한층 더 후술하겠다.
상술한 것처럼, 상기 노드들은, 완전 코히어런트 또는 입/출력(I/0) 코히어런트일 수 있다. 완전 코히어런트 HN 또는 RN(각각 HN-F, RN-F)은 코히어런트 캐시 스토리지를 구비한다. 완전 코히어런트 SN(SN-F)은, HN-F와 쌍을 이룬다. HN-F는 메모리 영역에 대한 일관성을 관리할 수 있다.
구성 예들에 있어서, 상기 하나 이상의 슬레이브 노드들의 각각은, 그 슬레이브 노드로 향한 임의의 다른 데이터 송신에 관계 없이 그 슬레이브 노드로 향한 각 데이터 송신을 접수하도록 구성된다.
아래에 설명된 것처럼, 상기 NI들은, 상기 마스터 노드 및 상기 홈 노드와 상기 하나 이상의 슬레이브 노드들과의 사이의 인터페이스 회로의 예들을 제공할 수 있고; 상기 인터페이스 회로는, 제1 데이터 전송 프로토콜에 따라 상기 마스터 노드로부터 송신 요구와 데이터 송신을 수신하고, 상기 제1 데이터 전송 프로토콜과 다른 제2 데이터 전송 프로토콜에 따라 상기 수신된 데이터 송신으로부터 주어진 슬레이브 노드에 데이터를 전송하도록 구성된다. 예를 들면, 도 3을 참조하여 후술한 것처럼, CHI-NI는 기록 데이터 패킷을 AXI 호환 슬레이브 노드에 발행할 수 있다.
그러므로, 적어도 일부의 예들에 있어서, 도 1은, 상기 마스터 노드에 대해 상이한 통신 프로토콜에 따라 상기 하나 이상의 슬레이브 노드가 동작하도록 구성된 일례를 나타낸다. 예를 들면, 상기 마스터 노드는 코히어런트 허브 인터페이스 프로토콜에 따라 동작하도록 구성되어도 되고, 상기 하나 이상의 슬레이브 노드는 개선된 확장 가능 인터페이스 프로토콜에 따라 동작하도록 구성되어도 된다. 아래에 설명된 예들은, 이 마스터 및 슬레이브의 구성에도 적용될 수 있다.
도 2는 이전에 제안된 CHI 프로토콜에 따른 데이터 기록 요구를 나타내는 개략도다. 본 도면과 아래에 설명될 대응한 유사한 도면에 있어서, 초기(상기 도면의 상부)로부터 후기(상기 도면의 하부)로 수직방향으로, 시간 또는, 그 처리의 최소한 진행이 도시되어 있다. 상기 시스템내의 상이한 노드들은 수직선들로 나타내어져 있어서, 도 2의 예에는, 요구중 노드 RN-F로부터 홈 노드 HN-F를 거쳐 슬레이브 노드 SN-F로 일어나는 기록 트랜잭션이 나타내어져 있다.
상기 기록 트랜잭션은, 상기 RN-F가 기록 요구(210)를 상기 HN-F에 보냄으로써 시간 200에서 상기 RN-F에 의해 시작된다. 상기 HN-F는, 시간 220에서 버퍼 스토리지를 상기 기록 요구에 할당하고, 완료 표시(CompDBIDResp)(230)를 상기 RN-F에 회답한다.
한편, 상기 RN-F는, 상기 기록 데이터를 로컬 버퍼에 보유하고 있지만, 상기 HN-F으로부터 상기 완료 표시를 접수하면, 시간 240에서, 그 기록 데이터를 데이터 250으로서 상기 HN-F에 보낸다. 상기 HN-F는, 그 RN-F로부터 상기 데이터의 접수시에 그 할당된 버퍼에 상기 기록 데이터를 기억시킨다. 이때에, 상기 HN-F는, 스눕(snoop) 검출(260)이 없는 기록 동작을 나타내는 기록 요구(WriteNoSnp)를 상기 SN-F에 보낸다. 이 SN-F는, 상기 기록 요구의 접수의 긍정응답(270)에 대해 응답하고, 상기 HN-F는, 시간 280에서 그 긍정응답을 수신하면, 그 버퍼링된 기록 데이터를 상기 SN-F에 데이터 290으로서 보낸다.
이러한 구성에서는, 상기 RN-F와 상기 HN-F에서 버퍼링을 필요로 한다. 그 트랜잭션을 완료하기 위해서, 버퍼 공간은 적어도 상기 시간 200과 시간 240 사이에서 상기 RN-F에서 할당되어야 하고, 버퍼 공간은 적어도 시간 210과 시간 280 사이에서 상기 HN-F에서 할당되어야 한다.
상술한 것처럼, 상기 CHI 프로토콜에서는, RN의 관점에서, 기록 데이터 채널이 자유 유동이어야 하는 요구사항이 있다. 도 2에 도시된 것처럼, 이것은, 이전에 제안된 CHI 구성에서는, 풀 패킷 버퍼를 상기 HN에서 보류 기록 요구마다 할당함으로써 제공된다. 그렇지만, 이에 따라 상당한 양의 로컬 버퍼 메모리가 필요해질 수 있고; 일부의 구성 예에서는, 각 데이터 버퍼의 사이즈가 64바이트이어서, 충분한 버퍼 스토리지의 제공은 집적회로 면적과 소비전력의 면에서 값비쌀 수 있다.
도 2에 개략적으로 도시된 상기 이전에 제안된 CHI 트랜잭션은 AXI종료점과 양립될 수 없다는 것에도 주목한다.
도 3은 상기 CHI-NI(도 1에서 164, 174)를 포함하는 트랜잭션을 개략적으로 나타낸다. 도 3에 도시된 트랜잭션은, 슬레이브 노드 SN-F에 대한 기록 트랜잭션을 하는 요구중 노드 CHI-RN을 말한다. 이전과 같이, 본 도면의 상부에서 초기로부터 본 도면의 하부에서 후기로 수직방향으로 상기 처리의 시간/진행이 도시되어 있다.
도 3을 참조하면, 상기 CHI-RN은 기록 요구 300을 상기 CHI-NI에 발행한다. 그 CHI-NI는 그 기록 트랜잭션의 어드레스를 기억하고, 상기 기록 요구 300으로부터 얻어진 기록 요구 302를 상기 HN에 보낸다.
이 HN은, 시간 310에서 응답을, 그 요구가 임의의 선행 요구들로 직렬화되어 있을 때 상기 CHI-NI에 회답한다. 그렇지만, 도 2에 도시된 구성과 달리, 상기 응답(320)은, 그 기록 데이터를, HN 대신에 최종 타겟 노드 SN-F에 보낼 것을 상기 CHI-NI에 지시한다. 이것은, 상기 홈 노드가, 상기 하나 이상의 슬레이브 노드들 중 주어진 슬레이브 노드에 데이터 송신을 요구하는 주어진 송신 요구의 직렬화에 응답하여, 상기 주어진 송신 요구에 대응한 상기 데이터 송신이 이루어져야 하는 것을 나타내는 허가를 직접 상기 주어진 슬레이브 노드에 발행하도록 구성된 일례다. 이것을( 상기 메시지들에서의 소스 어드레스 및/또는 타겟 어드레스를 변경함으로써) 달성하는 기술의 일례를 후술한다.
CHI-NI는, 상기 응답 320으로부터 얻어진 응답 322를 상기 CHI-RN에 보내고, 또한 이 트랜잭션에 속하는 기록 데이터 플릿들 전부(흐름 제어 디지트들)의 접수를 보장하기 위해서 그 CHI-NI에서의 로컬 패킷 버퍼도 할당한다. 그 응답 322의 수신에 응답하여, 상기 CHI-RN은 기록 데이터를 데이터(330)로서 상기 CHI-NI에 보낸다.
동일한 트랜잭션에 속하는 기록 데이터 플릿들 전부가 그 패킷 버퍼에 수신되어 있을 때, CHI-NI는, 본 예에서는 AXI 풀(full) 기록 패킷(340)인 풀 기록 패킷을 최종 타겟 노드에 보낸다. 이 때문에, 본 예에서, 상기 인터페이스 회로는, 상기 주어진 슬레이브 노드에 송신하기 위한 송신 메시지를 생성하도록 구성되고, 상기 송신 메시지는, 적어도, 상기 수신된 송신 요구로부터의 메모리 어드레스 정보와, 상기 수신된 데이터 송신으로부터의 데이터를 포함한다. 상기 CHI-NI는, 상기 패킷 버퍼와 상기 트랜잭션 어드레스 추적을 할당 해제하지만, 상기 CHI-NI 와 상기 타겟 노드 SN-F간의 트랜잭션에 관한 트랜잭션 식별자(ID)의 트랙을 유지할 수 있다.
상기 타겟 노드는, 그 밖의 요구들에 어떠한 의존도 없이 (교착상태를 피하기 위해서 이전에 상기 HN에 보내졌던 기록 요구에 별도의 채널에 관해 보내진) 기록 패킷을 접수한다. 상기 타겟 노드는, 그 트랜잭션이 종료될 때 상기 CHI-NI에 응답(350)을 보낸다. 상기 CHI-NI는, 그 수신된 응답을 상기 RN에 전송할 수 있고, 완료 긍정응답(360)을 상기 HN에 보낸다. 이때에도, 상기 ID 추적으로부터 상기 요구를 할당 해제한다.
일부의 예들에서는, (사용중 특별한 프로토콜하에서) 상기 RN으로부터 상기 HN으로 긍정응답(acknowledgement)이 필요할 수도 있고, 이 경우에, 상기 CHI-NI는 상기 긍정응답(360)을 발행하기 전에 상기 RN으로부터 그 긍정응답을 수신하기를 기다린다.
상기 HN은, 상기 긍정응답(360)을 수신하면, 그 자신의 추적기(tracker)로부터의 요구를 할당 해제하고, 그 요구와 관련된 "해저드"를 제거한다(즉, 상기 요구는 이제 더 이상 동시보류 요구들의 직렬화에 관련되지 않는다).
버퍼링 요구사항의 면에서는, 상기 CHI-NI와 상기 RN간의 대기시간을 커버하기 위해 패킷 버퍼를 필요로 한다. 요구 버퍼는, 상기 CHI-NI 요구와 상기 HN의 응답간의 라운드 트립 대기시간을 커버하는데만 필요하다.
이 때문에, 도 3의 예에 따라 동작하는 도 1의 구성은,
데이터 송신을 시작하는 마스터 노드;
상기 데이터 송신을 수신하는 하나 이상의 슬레이브 노드들; 및
상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 홈 노드를 구비하고,
상기 마스터 노드로부터 상기 하나 이상의 슬레이브 노드들 중 하나에의 적어도 하나의 데이터 송신이 상기 홈 노드를 우회하는, 데이터 처리 시스템의 일례를 나타낸다.
도 4는 상술한 것처럼 기록 데이터 트랜잭션의 상황에서 홈 노드(HN)의 동작을 나타내는 개략적 흐름도다.
단계 400에서, 상기 HN은 다른 보류 트랜잭션들 중에서 상기 기록 데이터 트랜잭션을 직렬화하여, 그 트랜잭션은 동일 또는 중첩하는 메모리 영역에 액세스하는 그 밖의 트래잭션들에 대해 정확한 의존 순서로 재생된다.
단계 410에서, 상기 HN은 소위 해저드를 생성한다. 이 상황에서, 해저드는 라인에 대한 특별한 메모리 영역이 그 라인의 컨택스트를 변경하여도 되는 보류 트랜잭션의 대상인 상기 HN이 보유한 표시이어서, 그 해저드는, 현재의 트랜잭션을 완료하였을 때까지 다른 트랜잭션이 그 라인에 액세스하게 하지 못하도록 상기 HN에 지시한다.
단계 420에서, 상기 HN은, 그 트랜잭션이 일어나도록 허가를 제공한다. 도 3의 상황에서, 이것은, 상기 응답(320)이다.
단계 430에서, 상기 HN은, 도 3의 상황에서 상기 긍정응답(360)으로 나타낸 상기 트랜잭션 완료의 긍정응답을 수신하고, 단계 440에서, 상기 HN은 상기 특별한 메모리 영역이나 라인과 관련된 해저드를 해제한다.
그래서 알 수 있는 것은, 상기 HN은, 상이한 어드레스간과 같이 일관성과 해저딩에 대한 제어를 유지하지만, 도 3을 참조하여 설명한 것처럼, 기록 트랜잭션은 상기 요구중 노드와 상기 타겟 노드와의 사이에서 행해질 수 있다는 것이다.
그러므로, 이러한 예들에서, 상기 마스터 노드는 상기 하나 이상의 슬레이브 노드들 중 하나에 데이터 송신을 요구하는 송신 요구를 상기 홈 노드에 발행하도록 구성되고; 상기 홈 노드는, 슬레이브 노드에서 메모리 어드레스에 기록된 데이터가 이후의 액세스 요구에 응답하여 그 메모리 어드레스로부터 판독된 데이터와 일치되도록, 상기 하나 이상의 슬레이브 노드들에의 송신 요구들과 액세스 요구들을 직렬화하도록 구성된다.
도 5는 도 1의 RN(AXI)(180)과 SN-F와 같은 타겟 노드간의 기록 트랜잭션에 적절한 흐름의 개략적인 설명을 제공한다. 포맷은, 본 도면의 상부를 향하는 초기 시간으로부터 본 도면의 하부를 향하는 후기 시간으로 시간이나 진행이 계속되도록 도 3에 도시된 것과 유사하다.
상기 RN(AXI)은, 기록 패킷(500)을 상기 AXI-NI에 보냄으로써 기록 동작을 시작한다. 상기 AXI 프로토콜의 경우에, 상기 기록 패킷은, 타겟 어드레스와, 그 기록 데이터 전부를 포함한다.
상기 AXI-NI는, 그 RN(AXI)으로부터 수신된 기록 패킷을 버퍼링한다. 상기 AXI-NI는, 기록 요구(510)를 상기 HN에 보낸다. 이때, 상기 AXI 기록 패킷(500)과 달리, 상기 기록 요구(510)는, 기록 데이터가 아니고 단순히 요구다.
상기 HN은, CHI 호환 요구중 노드에서와 같이 상기 기록 요구를 처리하고, 그 요구에 긍정응답하고 기록 데이터를 타겟 노드에 보내는 것을 허가하는 응답(520)을 회답한다. 이 응답(520)에 응답하여, 상기 AXI-NI는, 풀 기록 패킷(요구와 데이터)(530)을 타겟 노드에 보내고 나서 완료의 긍정응답(540)에 대해 응답한다. 상기 AXI-NI는, 그 긍정응답을 RN AXI에 긍정응답(550)으로서 보내고, 또한 완료(560)를 상기 HN에 보낸다.
도 6 및 도 7은, 도 3 및 도 5의 구성에서 패킷 어드레싱을 어떻게 처리하는지에 관한 개략적인 표시를 제공한다.
도 6은 도 3에 도시되고 상술한 구성에 관계된다. 상기 CHI-RN으로부터의 원래의 요구는, 소스 식별자(600), (최종 대상(SN)(602)을 식별하는)타겟 식별자, 및 트랜잭션 ID(604)로 이루어진 여러가지의 식별자 필드들을 갖는다. 상기 CHI-NI는 이 식별자 필드들을 수신하여 AXI ID(610)와 대응시킨다. 상기 CHI-NI로부터 상기 HN에 보내진 기록 요구(300)는, 상기 RN에서 제공한 것처럼 동일한 소스 ID, 타겟 ID 및 트랜잭션 ID를 앞으로 반송한다.
도 3의 시점(310)에서, 상기 HN은 응답을 상기 CHI-NI에 회답한다. 이 응답에 있어서, 동일한 트랜잭션 ID가 유지되고, 소스 ID(600)가 상기 응답(320)의 타겟 ID(620)가 되며(달리 말하면, 그 응답을 발신 RN에 역으로 향하게 함), 상기 HN은 자신의 소스 ID(622)를 부가하고; 그렇지만, 이 소스 ID는, 상기 HN을 상기 메시지의 소스로서 나타내지 않지만, 그 대신에 상기 타겟 SN을 소스로서 나타낸다. 이것은, 기록 데이터가 회답될 때, 상기 HN이 아닌 상기 SN에 보내질 것이라는 것을 의미한다. 이것은, 상기 하나 이상의 슬레이브 노드들 중 주어진 슬레이브 노드에 데이터 송신을 요구하는 주어진 송신 요구의 직렬화에 응답하여, 상기 주어진 송신 요구에 대응한 상기 데이터 송신이 이루어져야 하는 것을 나타내는 허가를 직접 상기 주어진 슬레이브 노드에 발행하도록 구성된 일례다. 구체적으로, 이 예들에서, 상기 홈 노드가 발행한 허가는, 소스 노드 식별자와 타겟 노드 식별자를 포함하고; 상기 소스 노드 식별자는 상기 주어진 슬레이브 노드가 상기 허가의 소스였던 것을 나타낸다. 이것이 동작 가능한 일 방식은, 상기 데이터 송신이, 상기 홈 노드가 발행한 허가의 상기 소스 노드 식별자로부터 얻어진 타겟 노드 식별자를 포함하는 경우이다.
상기 CHI-NI는, 그 응답(320)을 수신하고, 그것의 응답(320)으로서 동일한 식별자 필드들을 상기 RN에 보내고, 이때 상기 트랜잭션 ID(604)는 DBID로서 복사되어 있다.
도 3을 참조하여 설명하였던 다음 스테이지는, 상기 CHI-RN이 상기 기록 데이터(330)를 보내는 것이었다. 또, 이것은, 그 기록 데이터와 관련된 소스 ID, 타겟 ID 및 트랜잭션 ID를 갖는다. 소스 ID(630)는, 상기 CHI-RN을 나타내는 ID인, 상기 수신된 응답의 타겟 ID 필드로부터 취해진다. 그 기록 데이터(330)의 타겟 ID(632)는 그 수신된 응답(320)의 소스 ID로부터 취해지고, 상기 기록 데이터(330)의 트랜잭션 ID(634)는 상기 응답(320)의 상기 DBID로서 취해진다. 상기 기록 데이터(330)는, 상기 CHI-NI에 보내진다.
그리고, 상기 CHI-NI는, 상기 CHI-RN으로부터 수신된 트랜잭션 ID를 상기 AXI-ID(610)로 대체하지만, 소스 ID(630)와 타겟 ID(632)를 앞으로 반송하는, 도 3에서의 상기 패킷(340)을 생성한다.
상술한 것처럼, 상기 타겟 ID(632)가 상기 SN을 규정하므로, 상기 패킷(340)은 상기 기록 패킷을 수신하고 상기 필요한 기록 동작을 실행하는 상기 SN에 경로 지정된다. 그 후, 상기 SN은, 상기 수신된 패킷(340)의 소스 ID와 타겟 ID를 교환하여서 식별하는 상기 완료된 긍정응답(350)을 생성한다. 이것은, 상기 긍정응답을 상기 CHI-NI에 역으로 경로 지정한다.
상기 CHI-NI는, 상기 긍정응답(350)을 수신하고, 상기 AXI ID를 참조하여 상기 원래의 트랜잭션(604)을 재삽입한다. (상기 CHI-NI를 식별하는) 상기 수신된 긍정응답의 타겟 ID는 상기 긍정응답(360)의 소스 ID(640)가 되고, 상기 긍정응답(360)의 타겟 ID(642)는 상기 원래의 요구의 타겟 ID(602)로서 취해지는데, 이는, 상기 긍정응답(360)이 상기 홈 노드에 역으로 경로 지정된다는 것을 의미한다.
도 7은 상술한 도 5의 트랜잭션들에 대응한 유사한 구성을 개략적으로 도시한 것이다.
도 7에 있어서, 상기 기록 패킷(510)은, 상기 AXI-NI에서 생성한 소스 ID(512), 타겟 ID(514), 트랜잭션 ID(516) 및 AXI ID(518)를 갖는다.
상기 홈 노드에서, 응답(520)은, 상기 트랜잭션 ID(516)가 유지되고, 상기 응답(522)의 타겟 ID가 상기 패킷(510)의 소스 ID로부터 취해지고, 상기 응답의 소스 ID(524)가 상기 HN에서 생성되고 상기 HN 자체가 아닌 상기 타겟(SN)을 나타내도록, 형성된다.
도 5를 참조하여 설명한 것처럼, 상기 AXI-NI는, 상기 AXI-NI(512)의 원래의 소스 ID, 상기 소스 ID(524)로부터 취해진 타겟 ID, 및 상기 AXI ID(518)와 같은 트랜잭션 ID(532)를 갖는, 기록 패킷(530)을 생성한다. 이것은, 상기 소스 ID와 타겟 ID가 전환되어 상기 AXI NI에 역으로 보내진 상기 긍정응답(540)을 형성하는 상기 타겟(SN)에 직접 보내진다.
상기 AXI-NI에서는, 상기 HN에 보내기 위해 긍정응답(560)을 생성한다. 이것은, 소스 ID(550)로서 상기 수신된 긍정응답(540)의 타겟 ID, 타겟 ID(552)로서 원래의 타겟 ID(514), 및 트랜잭션 ID(554)로서 원래의 트랜잭션 ID(516)를 갖는다. 상기 긍정응답(560)은, 상술한 것처럼 상기 홈 노드에 역으로 경로 지정된다.
도 8은 "더티" 데이터(로컬 캐시에서 변형되어 있고 메모리에 아직 역으로 기록되지 않은 데이터)가 존재할 가능성이 있는 구성을 개략적으로 도시한 것이다.
도 8에서, (NI를 갖는 RN-F 등의) 요구중 노드(800)와 완전 코히어런트 RN(810)이 상기 시스템과 관련된다고 가정하고, 상기 RN-F 810에 의해 로컬 캐시에 복사본을 보유한 데이터를 상기 RN-F 800이 참조하고 있다고 가정한다.
상기 RN은, 심의중인 특별한 데이터의 깨끗한 복사를 위한 요구(820)를 발행한다. 이 요구는, 데이터가 더티일 경우 청소하라는 것인 상기 데이터를 "청소하라"는 명령어(830)를 발행하는 상기 HN에 진행한다. 이 명령어(830)는, 상기 HN이 보유한 디렉토리 또는 다른 세트의 데이터에 근거하여, 동보 통신별로 모든 노드에 발행될 수 있거나, 관련 데이터의 국소적 복사본을 갖거나(가질 수도 있는) 노드들에 선택적으로 보내질 수 있다.
상기 RN-F(810)과 관련된 CHI-NI는, 상기 명령어 830을 수신하여, 명령어 832로서 상기 RN-F에 전송한다.
상기 RN-F는 3개의 데이터 항목에 응답한다: 당해 데이터(840)를 포함하는 긍정응답은, 상기 데이터가 기억되는 발신 RN(800)에 전송하는 상기 CHI-NI에 보내진다. 응답 메시지(844)는, 상기 HN이 본 동작의 완료를 나타내기 위해 2개의 긍정응답을 기대해야 하는 것을 나타내는 (상기 데이터(846)에 응답하여) 상기 CHI-NI로부터 상기 HN에 보내진다. 그 데이터 자체(846)는 상기 타겟 어드레스(848)를 포함한 기록 데이터 패킷으로서 (메인 메모리와 같은) 상기 SN에 직접 발행하는 상기 CHI-NI에 보내지고 나서, 상기 SN이 긍정응답(850)을 상기 CHI-NI에 역으로 보낸다.
그리고, 2개의 긍정응답 중, 한쪽은 상기 RN(852)에 의해 상기 HN에 보내지고 다른 쪽은 상기 CHI-NI(854)에 의해 보내진다. 이들 중 2번째의 긍정응답을 수신하면, 상기 HN은, 상기 트랜잭션을 닫고 상기 해저드를 해제한다.
도 9는, 다른 RN이 (메인 메모리와 같은 슬레이브 노드에 대해) 라이트 백(write back) 요구를 발행할 때 거의 동일한 시간에 특별한 데이터 항목에 대한 판독 요구를 수신하는 상황을 개략적으로 도시한 것이다.
도 9를 참조하면, 2개의 RN, 즉 RN-F0와 RN-F1이 도시되어 있고, 모두가 본 예에서는 완전 코히어런트다.
상기 RN-F1은, 상기 RN-F0에서 발행한 라이트 백 요구와 중첩하는, 판독 요구(900)를 상기 HN에 발행한다.
상기 HN은, 그 판독 요구(900)를 수신하여, 상기 관련 데이터의 복사본이 상기 RN-F0에 보유되어 있기 때문에, 소위 스눕 요구(902)를, 상기 RN-F0와 관련된 상기 CHI-NI에 의한 요구(904)로서 수신하여 전송하는 상기 RN-F0에 발행한다. 한편, 상기 라이트 백 요구(910)는, 상기 판독요구(900)가 이행되는 동안에 상기 HN에 의해 일시중지된다.
상기 관련 데이터(920)의 복사본은 상기 RN-F0에 의해 상기 CHI-NI에 되돌려진다. 그후, 이것은 2개의 액션을 취한다. 하나의 액션은 상기 스눕 응답이 상기 발신된 RN(RN-F1)에 전송되어 있다는 표시(930)를 상기 HN에 보내는 액션이고, 나머지 액션은 상기 스눕된 데이터(922)를 상기 RN-F1에 보내지고 나서 이 RN-F1이 긍정응답(940)을 상기 HN에 보내는 액션이다. 그 긍정응답(940)과 상기 표시(930) 모두가 수신되었다면, 상기 라이트 백 요구(910)의 일시중지는 상기 HN에 의해 해제될 수 있어, 상기 HN은 응답(950)을 상기 RN-F0에 전송하는 상기 CHI-NI에 응답(950)을 보낸다.
상기 RN-FO는 라이트 백 데이터(960)를 상기 CHI-NI에 되돌린다. 그렇지만, 상기 CHI-NI는 상기 데이터(922)의 이전의 발행으로부터, 관련 데이터가 이미 라이트 백을 위해 상기 HN에 되돌려졌다는 것을 알기 때문에, 상기 CHI-NI는 단지 상기 기록 트랜잭션을 닫는 완료 긍정응답(962)을 상기 HN에 보낼 뿐이다.
그러므로, 도 9에서는, 상기 홈 노드는, 초기의 직렬화 송신 요구에 관한 제1 데이터 송신의 완료후까지, 후기의 직렬화 송신 요구에 관한 제2 데이터 송신이, 상기 제1 데이터 송신과 같은 메모리 어드레스에 데이터를 기록하는 것을 금지하도록 구성되는 일례를, 제공한다.
또한, 도 8 및 도 9는, 상기 마스터 노드가 캐시 메모리와 관련되고 상기 하나 이상의 슬레이브 노드들 중 적어도 하나가 상위 레벨 메모리를 제공하는 예들을 제공하고; 상기 시스템은 적어도 하나의 또 다른 마스터 노드를 구비하고; 상기 캐시 메모리에 기억된 메모리 어드레스로부터 데이터를 검색하기 위해 상기 또 다른 마스터 노드로부터의 데이터 액세스 요구에 응답하여, 상기 인터페이스 회로는, 상기 캐시 메모리로부터 검색된 데이터를 수신하고 그 검색된 데이터를 상기 또 다른 마스터 노드에 제공하도록 구성된다. 도 8에서, 상기 캐시 메모리에서 상기 검색된 데이터가 상기 상위 레벨 메모리에서 동일한 메모리 어드레스에 보유된 데이터와 다르게 검출되는 경우, 상기 인터페이스 회로는 (848과 같은) 데이터 송신으로서 상기 검색된 데이터를 상기 상위 레벨 메모리에 송신하도록 구성된다.
도 10은, 형태에 있어서 상술한 도 2와 유사한 개략도로, 여기서 요구중 노드 RN은, 홈 노드를 거쳐 본 예에서 메모리 제어기(MC)인 슬레이브 노드에 대한 데이터 기록 트랜잭션을 시행한다.
그 제어 흐름은 도 2에 도시된 것과 유사하다. 기록 요구(1000)는, 상기 RN으로부터 상기 홈 노드를 통해 상기 MC에 전송된다. 그 기록과 관련된 데이터는, 그 기록 요구와 함께 또는 별도의 메시지(1010)로서 동일한 경로를 따라간다.
그 기록 데이터가 상기 기록 요구와 함께 건네질 때, 상기 요구의 송신자(RN)는 상기 요구와 상기 데이터 양쪽에 대한 다음 목적지로부터 암시적 또는 명시적 "크레디트"를 얻어야 한다. 한편, (도 10에 개략적으로 도시된 것처럼) 상기 기록 데이터가 따로따로 보내지는 경우에, 상기 홈 노드와 상기 메모리 제어기가, 상기 기록 요구를, 정확한 데이터의 크레디트를 암시적으로 요구하는 것으로서 사용하는 것이 일반적이다. 상기 RN이 상기 홈 노드로부터 상기 크레디트(1015)를 수신하면, 상기 기록 데이터(1010)는, 상기 RN에 의해 홈 노드에 보내진다. 마찬가지로, 상기 기록 데이터가 홈 노드로부터 상기 MC에 전송되기 전에 상기 홈 노드가 크레디트(1020)를 수신해야 한다.
실시예들은, 상기 요구가 상기 RN으로부터 상기 홈 노드에 보내지고 나서 그 홈 노드가 그 요구를 상기 메모리 제어기에 전송하는 것을 포함한다. 이 요구는, 요구자로부터 상기 메모리 제어기까지 크레디트용 요구로서 사용된다. 다음에, 상기 메모리 제어기는, 크레디트 응답을 상기 요구자(RN)에 직접 보낸다. 그 크레디트를 수신한 후, 상기 요구자는 데이터를 상기 메모리 제어기에 직접 보낸다.
도 11은 본 기술의 일례를 개략적으로 도시한 것이다. 도 11을 참조하면, (완전 코히어런트 요구중 노드 RN-F와 같은) 요구중 노드는, 상기 기록 요구(1100)를 상기 타겟(SN-F)에 전송하는 완전 코히어런트 홈 노드에 보내고, 또한 완료 통지(1110)를 역으로 상기 RN-F에 보낸다. 상기 SN-F는 데이터 크레디트(1120)를 상기 RN-F에 직접 보내어, 이 RN-F는 기록 데이터(1130)를 상기 SN-F에 직접 보내는 것으로써 응답한다.
구성 예들에서, 상기 데이터 크레디트 메시지를 상기 RN-F에 보냄과 아울러, 수신자 노드 SN-F도, 상기 요구의 수신을 인정하는 상기 HN-F에 긍정응답 메시지(1140)를 보낸다.
또 다른 긍정응답(1150)은, 상기 요구자 RN-F가 상기 홈 노드로부터 상기 완료 통지(1110)를 수신한 후 상기 RN-F로부터 상기 홈 노드에 보내질 수 있다.
그러므로, 도 11의 예에 따라 동작하는 도 1의 구성은,
데이터 송신을 시작하는 마스터 노드;
상기 데이터 송신을 수신하는 하나 이상의 슬레이브 노드들; 및
본 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 홈 노드를 구비하는, 상기 데이터 처리 시스템의 일례를 나타내고,
상기 마스터 노드로부터 상기 하나 이상의 슬레이브 노드들 중 하나에의 적어도 하나의 데이터 송신은 상기 홈 노드를 우회한다.
그러므로, 도 11( 및 아래에 설명되는 도 12 및 도 13)은, 상기 마스터 노드로부터 상기 슬레이브 노드들 중 하나에의 데이터 송신에 관하여, 상기 슬레이브 노드가 상기 데이터 전송을 위해 크레디트를 발행하도록 구성되는 예들을 제공하고, 이때의 크레디트는 상기 홈 노드를 우회하는 경로에 의해 상기 마스터 노드에 제공된다.
도 12 및 도 13은 이러한 기술의 변형 예들을 개략적으로 도시한 것이다.
도 12에서, 기록 요구(1200)는, 상기 RN에 의해 상기 홈 노드에 보내지고, 이전처럼, 상기 MC에 전송되고 나서, 이 MC는 상기 데이터 크레디트와 완료 통지로 이루어지는 단일 크레디트 메시지(1210)를 보낸다. 응답시에, 상기 RN은 상기 기록 데이터(1220)를 상기 MC에 직접 보내고 그 긍정응답(1230)을 상기 홈 노드에 보낸다. 이 때문에, 이것은, 상기 슬레이브 노드가 상기 크레디트와 긍정응답으로 이루어지는 단일 메시지를 발행하도록 구성되는 일례다.
도 13을 참조하여, 기록 요구(1300)는, 상기 RN으로부터, 그 기록 요구를 상기 MC에 전송하는 상기 홈 노드에 다시 보내진다. 도 12에서와 같이, 단일의 데이터 크레디트 플러스 완료 통지(1310)는, 상기 기록 데이터(1320)로써 답하는 상기 RN에 상기 MC에 의해 보내진다. 그후, 상기 MC는 그 처리를 닫기 위해 완료 긍정응답(1330)을 역으로 상기 홈 노드에 보낸다.
이 구성들은, 코히어런트 데이터 기록("기록 전용")과 논코히어런트("SNP 없는 기록") 양쪽에 적용할 수 있다.
실시예들은, 가능한 다수의 이점들을 제공한다.
상기 홈 노드는, 기록 데이터를 처리할 필요가 없어, 상기 홈 노드에서 필요한 처리 자원 및/또는 버퍼링을 저감할 수 있다.
각 기록 동작을 위한 인터커넥트와 일부의 경우에 데이터 메시지의 수는 절반이 될 가능성이 있다.
데이터 인터리빙은, 데이터를 상기 홈 노드에 업로딩하고 상기 홈 노드로부터 다운로딩하는 것을 피함으로써 저감될 가능성이 있다. (상기 메모리 제어기나 SN-F와 같은) 상기 수신자 노드에서의 데이터 패킷 수신기 로직은, 논인터리브된 데이터에 관하여 보다 효율적으로 행할 수 있다.
상기 홈 노드를 거친 잠재적으로 보다 큰 요구 처리율도 달성될 수 있을 뿐만 아니라, 기록 데이터의 잠재적으로 보다 효율적인 흐름으로서 상기 인터커넥트를 거친 잠재적으로 보다 큰 데이터 처리율도 얻어질 수 있다.
도 14는, 각각의 마스터 노드와 데이터를 교환하는 인터페이스 1400; 마스터 노드로부터 수신된 송신 요구로부터의 어드레스 정보와, 그 수신된 데이터 송신으로부터의 데이터 중, 적어도 하나를 버퍼링하는 버퍼(1410); 및 그 밖의 노드와 데이터를 교환하는 인터페이스 1420을 구비하는, 인터페이스 회로를 개략적으로 도시한 것이다. 상술한 것처럼, 상기 인터페이스(1400, 1420)는, 데이터 처리 시스템의 마스터 노드와, 또한 마스터 노드와 하나 이상의 슬레이브 노드들과의 정보를 교환하는 회로의 예들을 제공할 수 있고, 이때의 홈 노드는, 상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어한다. 상기 인터페이스 회로는, 제1 데이터 전송 프로토콜에 따라 상기 마스터 노드로부터 송신 요구와 데이터 송신을 수신하고, 상기 제1 데이터 전송 프로토콜과 다른 제2 데이터 전송 프로토콜에 따라 상기 수신된 데이터 송신으로부터 주어진 슬레이브 노드에 데이터를 전송하도록 구성되어도 된다. 일부의 예들에서, 상기 인터페이스 회로는 주어진 슬레이브 노드에 송신하기 위한 송신 메시지를 생성하도록 구성되어도 되고, 상기 송신 메시지는, 적어도, 상기 마스터 노드로부터 수신된 송신 요구로부터의 메모리 어드레스 정보와, 상기 마스터 노드로부터 수신된 데이터 송신으로부터의 데이터를 포함한다.
도 15는,
(단계 1500에서) 마스터 노드에 의해, 하나 이상의 슬레이브 노드들에 데이터 송신을 시작하는 단계;
(단계 1510에서) 홈 노드에 의해, 상기 하나 이상의 슬레이브 노드들에 기억된 데이터간에 일관성을 제어하는 단계; 및
(단계 1520에서) 상기 하나 이상의 슬레이브 노드들 중 하나에 데이터를 송신하는 상기 마스터 노드에 의해, 상기 홈 노드를 우회하는 단계를 포함하는, 데이터 처리 방법을 도시하는 개략적 흐름도다.
도 16은,
(단계 1600에서) 데이터 처리 시스템의 마스터 노드를 갖는 정보와, 상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 홈 노드와 하나 이상의 슬레이브 노드들을 갖는 정보와를 교환하는 인터페이스 회로를 제공하는 단계; 및
(단계 1610에서) 상기 인터페이스 회로에 의해, 제1 데이터 전송 프로토콜에 따라 상기 마스터 노드로부터 송신 요구와 데이터 송신을 수신하고, 상기 제1 데이터 전송 프로토콜과 다른 제2 데이터 전송 프로토콜에 따라 상기 수신된 데이터 송신으로부터 주어진 슬레이브 노드에 데이터를 전송하는 단계를 포함하는, 방법을 도시하는 개략적 흐름도다.
본 출원에서, "...하도록 구성된"의 단어는, 장치의 요소가 상기 규정된 동작을 실시할 수 있는 구성을 갖는다는 것을 의미하는데 사용된다. 본 문맥에서, "구성"은, 하드웨어 또는 소프트웨어의 상호연결의 배치 또는 방식을 의미한다. 예를 들면, 상기 장치는 상기 규정된 연산을 제공하는 전용 하드웨어를 가져도 되거나, 프로세서 또는 다른 처리 디바이스는 그 기능을 행하도록 프로그래밍되어도 된다. "하도록 구성된"은, 상기 장치 요소가 임의의 방식으로 상기 규정된 동작을 제공하기 위해서 변경될 필요가 있다는 것을 내포하지는 않는다.
본 발명의 설명에서는 본 기술들의 실시예들을 첨부도면을 참조하여 상세히 설명하였지만, 본 기술들은 구체적인 실시예들에 한정되지 않고, 첨부된 청구항에서 기재된 것과 같은 본 기술들의 범위 및 사상으로부터 벗어나지 않고 당업자가 변경, 부가 및 변형을 여러 가지로 실시할 수 있다는 것을 알 수 있다. 예를 들면, 본 기술들의 범위로부터 벗어나지 않고 종속항의 특징들과 독립항의 특징들을 여러 가지로 조합할 수 있다.

Claims (20)

  1. 데이터 처리 시스템으로서,
    데이터 송신을 시작하는 마스터 노드;
    상기 데이터 송신을 수신하는 하나 이상의 슬레이브 노드들; 및
    상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 홈 노드를 구비하고,
    상기 마스터 노드로부터 상기 하나 이상의 슬레이브 노드들 중 하나에의 적어도 하나의 데이터 송신은 상기 홈 노드를 우회하는, 데이터 처리 시스템.
  2. 제 1 항에 있어서,
    상기 마스터 노드는, 상기 하나 이상의 슬레이브 노드들 중 하나에 데이터 송신을 요구하는 송신 요구를 상기 홈 노드에 발행하도록 구성되고;
    상기 홈 노드는, 슬레이브 노드에서 메모리 어드레스에 기록된 데이터가 이후의 액세스 요구에 응답하여 상기 메모리 어드레스로부터 판독된 데이터와 일치되도록, 상기 하나 이상의 슬레이브 노드들에의 송신 요구들과 액세스 요구들을 직렬화하도록 구성되는, 데이터 처리 시스템.
  3. 제 2 항에 있어서,
    상기 홈 노드는, 상기 하나 이상의 슬레이브 노드들 중 주어진 슬레이브 노드에의 데이터 송신을 요구하는 주어진 송신 요구의 직렬화에 응답하여, 상기 주어진 송신 요구에 대응한 상기 데이터 송신이 이루어진 것을 나타내는 허가를 상기 주어진 슬레이브 노드에 직접 발행하도록 구성되는, 데이터 처리 시스템.
  4. 제 3 항에 있어서,
    상기 홈 노드가 발행한 허가는, 소스 노드 식별자와 타겟 노드 식별자를 포함하고;
    상기 소스 노드 식별자는 상기 주어진 슬레이브 노드가 상기 허가의 소스였던 것을 나타내는, 데이터 처리 시스템.
  5. 제 4 항에 있어서,
    상기 데이터 송신은, 상기 홈 노드가 발행한 허가의 상기 소스 노드 식별자로부터 얻어진 타겟 노드 식별자를 포함하는, 데이터 처리 시스템.
  6. 제 2 항에 있어서,
    상기 홈 노드는, 초기의 직렬화 송신 요구에 관한 제1 데이터 송신의 완료후까지, 후기의 직렬화 송신 요구에 관한 제2 데이터 송신이, 상기 제1 데이터 송신과 같은 메모리 어드레스에 데이터를 기록하는 것을 금지하도록 구성되는, 데이터 처리 시스템.
  7. 제 1 항에 있어서,
    상기 하나 이상의 슬레이브 노드들의 각각이, 그 슬레이브 노드에 향한 임의의 다른 데이터 송신과 관계 없이 그 슬레이브 노드에 향한 각 데이터 송신을 접수하도록 구성되는, 데이터 처리 시스템.
  8. 제 3 항에 있어서,
    상기 마스터 노드 및 상기 홈 노드와 상기 하나 이상의 슬레이브 노드들과의 사이에 인터페이스 회로를 구비하고,
    상기 인터페이스 회로는, 제1 데이터 전송 프로토콜에 따라 상기 마스터 노드로부터 송신 요구와 데이터 송신을 수신하고, 상기 제1 데이터 전송 프로토콜과 다른 제2 데이터 전송 프로토콜에 따라 상기 수신된 데이터 송신으로부터 상기 주어진 슬레이브 노드에 데이터를 전송하도록 구성되는, 데이터 처리 시스템.
  9. 제 8 항에 있어서,
    상기 인터페이스 회로는 상기 주어진 슬레이브 노드에 송신하기 위한 송신 메시지를 생성하도록 구성되고, 상기 송신 메시지는, 적어도, 상기 수신된 송신 요구로부터의 메모리 어드레스 정보와, 상기 수신된 데이터 송신으로부터의 데이터를 포함하는, 데이터 처리 시스템.
  10. 제 9 항에 있어서,
    상기 인터페이스 회로는,
    상기 수신된 송신 요구로부터의 어드레스 정보; 및
    상기 수신된 데이터 송신으로부터의 데이터 중,
    적어도 하나를 버퍼링하는 버퍼를 구비하는, 데이터 처리 시스템.
  11. 제 8 항에 있어서,
    상기 마스터 노드가 캐시 메모리와 관련되고 상기 하나 이상의 슬레이브 노드들 중 적어도 하나가 상위 레벨 메모리를 제공하고;
    상기 시스템은 적어도 하나의 또 다른 마스터 노드를 구비하고;
    상기 캐시 메모리에 기억된 메모리 어드레스로부터 데이터를 검색하기 위해 상기 또 다른 마스터 노드로부터의 데이터 액세스 요구에 응답하여, 상기 인터페이스 회로는, 상기 캐시 메모리로부터 검색된 데이터를 수신하고 그 검색된 데이터를 상기 또 다른 마스터 노드에 제공하도록 구성되는, 데이터 처리 시스템.
  12. 제 11 항에 있어서,
    상기 캐시 메모리에서 상기 검색된 데이터가 상기 상위 레벨 메모리에서 동일한 메모리 어드레스에 보유된 데이터와 다르게 검출되는 경우, 상기 인터페이스 회로는 데이터 송신으로서 상기 검색된 데이터를 상기 상위 레벨 메모리에 송신하도록 구성되는, 데이터 처리 시스템.
  13. 제 1 항에 있어서,
    상기 마스터 노드로부터 상기 슬레이브 노드들 중 하나에의 데이터 송신에 관하여, 상기 슬레이브 노드가 상기 데이터 전송을 위해 크레디트를 발행하도록 구성되고, 이때의 크레디트가 상기 홈 노드를 우회하는 경로에 의해 상기 마스터 노드에 제공되는, 데이터 처리 시스템.
  14. 제 13 항에 있어서,
    상기 슬레이브 노드는 상기 크레디트와 긍정응답으로 이루어지는 단일 메시지를 발행하도록 구성되는, 데이터 처리 시스템.
  15. 제 1 항에 있어서,
    상기 슬레이브 노드들 중 하나 이상은, 상기 마스터 노드에 대해 상이한 통신 프로토콜에 따라 동작하도록 구성되는, 데이터 처리 시스템.
  16. 제 15 항에 있어서,
    상기 마스터 노드는 코히어런트 허브 인터페이스 프로토콜에 따라 동작하도록 구성되어도 되고, 상기 슬레이브 노드들 중 하나 이상은 개선된 확장 가능 인터페이스 프로토콜에 따라 동작하도록 구성되는, 데이터 처리 시스템.
  17. 인터페이스 회로로서,
    데이터 처리 시스템의 마스터 노드를 갖는 정보와 홈 노드와 하나 이상의 슬레이브 노드들을 갖는 정보와를 교환하는 회로를 구비하고, 상기 홈 노드가 상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 노드이고,
    상기 인터페이스 회로는, 제1 데이터 전송 프로토콜에 따라 상기 마스터 노드로부터 송신 요구와 데이터 송신을 수신하고, 상기 제1 데이터 전송 프로토콜과 다른 제2 데이터 전송 프로토콜에 따라 상기 수신된 데이터 송신으로부터, 주어진 슬레이브 노드에 데이터를 전송하도록 구성되는, 인터페이스 회로.
  18. 제 17 항에 있어서,
    상기 인터페이스 회로는, 주어진 슬레이브 노드에 송신하기 위한 송신 메시지를 생성하도록 구성되고, 상기 송신 메시지는, 적어도, 상기 마스터 노드로부터 수신된 송신 요구로부터의 메모리 어드레스 정보와, 상기 마스터 노드로부터 수신된 상기 데이터 송신으로부터의 데이터를 포함하는, 인터페이스 회로.
  19. 데이터 처리방법으로서,
    마스터 노드에 의해, 하나 이상의 슬레이브 노드들에 데이터 송신을 시작하는 단계;
    홈 노드에 의해, 상기 하나 이상의 슬레이브 노드들에 기억된 데이터간에 일관성을 제어하는 단계;
    상기 하나 이상의 슬레이브 노드들 중 하나에 데이터를 송신하는 상기 마스터 노드에 의해, 상기 홈 노드를 우회하는 단계를 포함하는, 데이터 처리방법.
  20. 데이터 처리 시스템의 마스터 노드를 갖는 정보와, 상기 데이터 처리 시스템에서 기억한 데이터간에 일관성을 제어하는 홈 노드와 하나 이상의 슬레이브 노드들을 갖는 정보와를 교환하는 인터페이스 회로를 제공하는 단계;
    상기 인터페이스 회로에 의해, 제1 데이터 전송 프로토콜에 따라 상기 마스터 노드로부터 송신 요구와 데이터 송신을 수신하고, 상기 제1 데이터 전송 프로토콜과 다른 제2 데이터 전송 프로토콜에 따라 상기 수신된 데이터 송신으로부터, 주어진 슬레이브 노드에 데이터를 전송하는 단계를 포함하는, 방법.
KR1020170173934A 2016-12-20 2017-12-18 데이터 처리 시스템 KR102469404B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/384,688 2016-12-20
US15/384,688 US10489323B2 (en) 2016-12-20 2016-12-20 Data processing system for a home node to authorize a master to bypass the home node to directly send data to a slave

Publications (2)

Publication Number Publication Date
KR20180071967A true KR20180071967A (ko) 2018-06-28
KR102469404B1 KR102469404B1 (ko) 2022-11-22

Family

ID=61007086

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170173934A KR102469404B1 (ko) 2016-12-20 2017-12-18 데이터 처리 시스템

Country Status (5)

Country Link
US (2) US10489323B2 (ko)
JP (1) JP7153441B2 (ko)
KR (1) KR102469404B1 (ko)
CN (2) CN117009272A (ko)
GB (1) GB2559268B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795820B2 (en) * 2017-02-08 2020-10-06 Arm Limited Read transaction tracker lifetimes in a coherent interconnect system
US11269773B2 (en) * 2019-10-08 2022-03-08 Arm Limited Exclusivity in circuitry having a home node providing coherency control
US11630774B2 (en) 2020-09-28 2023-04-18 Mobileye Vision Technologies Ltd. Preventing overwriting of shared memory line segments
US11822535B2 (en) 2021-06-08 2023-11-21 Salesforce, Inc. Director-based database system for transactional consistency
US20220391291A1 (en) * 2021-06-08 2022-12-08 Salesforce.Com, Inc. History information in director-based database system for transactional consistency
CN116257479B (zh) * 2023-05-16 2023-08-15 北京象帝先计算技术有限公司 重排序缓冲器、系统、装置、设备及传输方法
CN116578523B (zh) * 2023-07-12 2023-09-29 上海芯高峰微电子有限公司 片上网络系统及其控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04107032A (ja) * 1990-08-28 1992-04-08 Mitsubishi Denki Shomei Kk 情報伝送システム
JP2002268933A (ja) * 2001-03-14 2002-09-20 Toshiba Corp クラスタシステム
US20090240873A1 (en) * 2003-12-02 2009-09-24 Super Talent Electronics Inc. Multi-Level Striping and Truncation Channel-Equalization for Flash-Memory System
US20120079211A1 (en) * 2010-09-28 2012-03-29 Arm Limited Coherency control with writeback ordering
US20130170336A1 (en) * 2011-12-30 2013-07-04 Industrial Technology Research Institute Master device, slave device, and methods thereof

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367695A (en) 1991-09-27 1994-11-22 Sun Microsystems, Inc. Bus-to-bus interface for preventing data incoherence in a multiple processor computer system
US5734825A (en) * 1994-07-18 1998-03-31 Digital Equipment Corporation Traffic control system having distributed rate calculation and link by link flow control
US6115804A (en) 1999-02-10 2000-09-05 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention
US7386680B2 (en) 2005-04-29 2008-06-10 Silicon Graphics, Inc. Apparatus and method of controlling data sharing on a shared memory computer system
US8732386B2 (en) 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
JP5117432B2 (ja) * 2009-03-10 2013-01-16 三菱電機株式会社 リング型ネットワークシステム
CN102004709B (zh) 2009-08-31 2013-09-25 国际商业机器公司 处理器局部总线到高级可扩展接口之间的总线桥及映射方法
US8510513B2 (en) 2009-12-18 2013-08-13 Electronics And Telecommunications Research Institute Network load reducing method and node structure for multiprocessor system with distributed memory
US8949547B2 (en) * 2011-08-08 2015-02-03 Arm Limited Coherency controller and method for data hazard handling for copending data access requests
US20130073811A1 (en) 2011-09-16 2013-03-21 Advanced Micro Devices, Inc. Region privatization in directory-based cache coherence
US20130318308A1 (en) 2012-05-24 2013-11-28 Sonics, Inc. Scalable cache coherence for a network on a chip
US9479275B2 (en) * 2012-06-01 2016-10-25 Blackberry Limited Multiformat digital audio interface
US9229896B2 (en) 2012-12-21 2016-01-05 Apple Inc. Systems and methods for maintaining an order of read and write transactions in a computing system
US10268815B2 (en) * 2015-06-26 2019-04-23 Intel Corporation Authentication of a multiple protocol connection
US9900260B2 (en) * 2015-12-10 2018-02-20 Arm Limited Efficient support for variable width data channels in an interconnect network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04107032A (ja) * 1990-08-28 1992-04-08 Mitsubishi Denki Shomei Kk 情報伝送システム
JP2002268933A (ja) * 2001-03-14 2002-09-20 Toshiba Corp クラスタシステム
US20090240873A1 (en) * 2003-12-02 2009-09-24 Super Talent Electronics Inc. Multi-Level Striping and Truncation Channel-Equalization for Flash-Memory System
US20120079211A1 (en) * 2010-09-28 2012-03-29 Arm Limited Coherency control with writeback ordering
US20130170336A1 (en) * 2011-12-30 2013-07-04 Industrial Technology Research Institute Master device, slave device, and methods thereof

Also Published As

Publication number Publication date
CN117009272A (zh) 2023-11-07
US20180173660A1 (en) 2018-06-21
GB201720649D0 (en) 2018-01-24
US11314675B2 (en) 2022-04-26
GB2559268B (en) 2020-02-26
US10489323B2 (en) 2019-11-26
JP2018109965A (ja) 2018-07-12
GB2559268A (en) 2018-08-01
US20200050568A1 (en) 2020-02-13
KR102469404B1 (ko) 2022-11-22
CN108205510A (zh) 2018-06-26
CN108205510B (zh) 2023-08-15
JP7153441B2 (ja) 2022-10-14

Similar Documents

Publication Publication Date Title
KR102469404B1 (ko) 데이터 처리 시스템
US6971098B2 (en) Method and apparatus for managing transaction requests in a multi-node architecture
JP3470951B2 (ja) 非一様メモリ・アクセス・コンピュータ・システム及びその操作方法
US7627738B2 (en) Request and combined response broadcasting to processors coupled to other processors within node and coupled to respective processors in another node
US20080162661A1 (en) System and method for a 3-hop cache coherency protocol
US6189062B1 (en) Apparatus and method for address translation in bus bridge devices
US20040093455A1 (en) System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system
JP2000227908A (ja) 共用介入サポ―トを有する不均等メモリ・アクセス(numa)デ―タ処理システム
KR100516286B1 (ko) 프로세싱 노드들 간의 패킷 전송 방법 및 장치
JP2000250883A (ja) 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム
US7474658B2 (en) Data processing system, method and interconnect fabric supporting concurrent operations of varying broadcast scope
US8103791B2 (en) Synchronized communication in a data processing system
EP3788492B1 (en) Separating completion and data responses for higher read throughput and lower link utilization in a data processing network
US6714994B1 (en) Host bridge translating non-coherent packets from non-coherent link to coherent packets on conherent link and vice versa
US7418556B2 (en) Accessing memory and processor caches of nodes in multi-node configurations
EP3788494B1 (en) Transfer protocol in a data processing network
US7415030B2 (en) Data processing system, method and interconnect fabric having an address-based launch governor
JP2006164218A (ja) ストレージシステム及びそのキャッシュ制御方法
JP2000010911A (ja) Ioバス専用に記憶装置を持つ情報処理システム
JP2000512407A (ja) ライトレジスタインターベンション

Legal Events

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