KR20070010152A - 트랜잭션을 발행하기 위한 집적 회로 및 방법 - Google Patents

트랜잭션을 발행하기 위한 집적 회로 및 방법 Download PDF

Info

Publication number
KR20070010152A
KR20070010152A KR1020067022070A KR20067022070A KR20070010152A KR 20070010152 A KR20070010152 A KR 20070010152A KR 1020067022070 A KR1020067022070 A KR 1020067022070A KR 20067022070 A KR20067022070 A KR 20067022070A KR 20070010152 A KR20070010152 A KR 20070010152A
Authority
KR
South Korea
Prior art keywords
transaction
slave
network
master
processing module
Prior art date
Application number
KR1020067022070A
Other languages
English (en)
Inventor
안드레이 라듈레스큐
키이 쥐. 더블류. 구쎈
Original Assignee
코닌클리케 필립스 일렉트로닉스 엔.브이.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 코닌클리케 필립스 일렉트로닉스 엔.브이. filed Critical 코닌클리케 필립스 일렉트로닉스 엔.브이.
Publication of KR20070010152A publication Critical patent/KR20070010152A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]

Abstract

복수의 처리 모듈(M, S) 및 (상기 처리 모듈(M, S)을 연결하기 위해 배열된 ) 네트워크(N)를 포함하는 집적 회로가 제공된다. 상기 집적 회로는 원자적 동작을 제1 트랜잭션으로 인코딩하기 위한 그리고 상기 제1 트랜잭션을 적어도 하나의 제2 처리 모듈(S)에 발행하기 위한 제1 처리 모듈(M)을 포함한다. 또한, 발행된 제1 트랜잭션을 적어도 하나의 제2 트랜잭션으로 디코딩하기 위한 트랜잭션 디코딩 수단(TDM)이 제공된다.

Description

트랜잭션을 발행하기 위한 집적 회로 및 방법{INTEGRATED CIRCUIT AND METHOD FOR ISSUING TRANSACTIONS}
본 발명은 복수의 처리 회로와 (처리 모듈 사이에 연결을 제공하기 위해 배열된) 네트워크를 구비하는 집적 회로, 이러한 집적 회로에서 트랜잭션을 발행하기 위한 방법, 및 데이터 처리 시스템에 대한 것이다.
시스템 온 실리콘(Systems on Silicon)이 기존 기능의 개선 및 새로운 특징을 구현하기 위한 더욱 증가하는 요구로 인해 복잡도에서 지속적인 증가를 나타낸다. 이는 증가하는 밀도에 의해 가능한데, 이 증가하는 밀도로 구성요소가 집적 회로 상에 집적될 수 있다. 동시에 클록 속도(이 속도에서 회로가 동작함)가 또한 증가하는 경향이 있다. 구성요소의 증가된 밀도와 협력해서 클록 속도가 더 높아질수록 동일한 클록 도메인 내에서 동시에 동작할 수 있는 영역이 감소하고 있다. 이는 모듈식 접근법에 대한 요구를 만들었다. 이러한 접근법에 따라, 처리 시스템은 복수의 비교적 독립적인, 복잡한 모듈을 포함한다. 통상의 처리 시스템에서, 이 시스템 모듈은 보통 버스를 통해 통신한다. 그러나, 모듈수가 증가함에 따라, 이러한 통신 방식은 다음과 같은 이유로 더 이상 실용적이지 않다. 한편으로는, 큰 모듈 수가 너무 높은 버스 부하를 형성한다. 다른 한편으로는, 버스는 오직 하나의 디바 이스만이 데이터를 버스에 보내는 것을 가능하게 함에 따라 통신 병목현상을 형성한다. 통신 네트워크는 이러한 단점을 극복하기에 효과적인 방식을 형성한다.
네트워크 온 칩(NoC)이 최근 고도로-복잡한 칩 내에서의 상호연결 문제에 대한 해결책으로서 상당한 주목을 받고 있다. 그 이유는 두 가지이다. 첫째, NoC가 광역 와이어(global wire)를 구조화하고 다룸에 따라 새로운 미세공정(deep-submicron) 기술에서 전기적 문제를 해결하는 것을 돕는다. 동시에 NoC는 와이어를 공유해서, 와이어 수를 줄이며, 그 이용도를 증가시킨다. NoC는 또한 에너지 효율적이고 신뢰할만 할 수 있으며 버스에 비해 스케일러블하다. 둘째, NoC는 또한 계산(computation)을 통신으로부터 연결해제하는데, 이는 빌리언-트랜지스터 칩(billion-transistor chips)의 설계를 다루는데 필수적이다. NoC는 이러한 연결해제를 달성하는데, 그 이유는 NoC가 전통적으로, 통신 서비스 취급을 서비스 구현으로부터 분리하는 잘 한정된 인터페이스를 제공하는, 프로토콜 스택을 사용해서 설계되기 때문이다.
그러나, 시스템 온 칩(SoC)을 설계할 때 온-칩 통신용 네트워크를 사용하는 것은 고려되어야 하는 다수의 새로운 이슈를 제기한다. 이는 통신 모듈이 직접 연결되는 기존의 온-칩 상호 연결(예컨대, 버스, 스위치, 또는 점대점 와이어)과 대조적으로, NoC에서는 모듈이 네트워크 노드를 통해 원격으로 통신하기 때문이다. 그 결과, 상호연결 중재가 중앙집중형에서 분산형으로 변하며, 부적절한 트랜잭션, 더 높은 지연, 및 종단대 종단 흐름 제어와 같은 이슈가 지능형 특성 블록(IP)에 의해 또는 네트워크에 의해 처리되어야 한다.
이러한 토픽의 대부분은 이미 근거리 및 광역 네트워크(컴퓨터 네트워크) 분야에서 그리고 병렬 기계 상호연결 네트워크를 위한 상호연결로서 연구 주제가 되어 왔다. 이 두 가지는 온-칩 네트워크와 매우 많이 관련이 있으며, 이들 분야에서의 많은 결과가 또한 온 칩에 적용가능하다. 그러나, NoC의 대전제는 오프-칩 네트워크와 상이하며 따라서, 대부분의 네트워크 설계 선택이 재평가되어야 한다. 온-칩 네트워크는 상이한 설계 선택을 야기하는 상이한 특성(예컨대, 더 타이트한 링크 동기화) 및 제약(예컨대, 더 높은 메모리 비용)을 가지는데, 이 상이한 설계 선택이 최종적으로 네트워크 서비스에 영향을 미친다.
NoC는 제약 및 동기화에서 주로 오프-칩 네트워크와 상이하다. 일반적으로, 자원 제약은 오프 칩보다는 온칩에서 더 타이트하다. 기억장치(즉, 메모리) 및 계산 자원이 비교적 더 비싼 반면에, 점대점 링크 수는 오프칩보다는 온 칩에서 더 크다. 기억장치는 비싼데, 그 이유는 램과 같은 범용 온-칩 메모리가 큰 영역을 차지하기 때문이다. 비교적 작은 크기의 네트워크 구성요소 내에 메모리를 분산시키는 것은 더 나쁜데, 그 이유는 이때 메모리 내의 오버헤드 영역이 지배적이기 때문이다.
온-칩 네트워크에서, 계산 또한 오프-칩 네트워크에 비해 비교적 높은 비용에 이른다. 오프-칩 네트워크 인터페이스는 호스트 처리기를 통신 처리로부터 해방시키기 위해, 보통 네트워크 레이어 또는 훨씬 더 높은 레이어까지 프로토콜 스택을 구현하기 위해 전용 처리기를 포함한다. 전용 처리기를 네트워크 인터페이스에 포함하는 것은 온 칩에서는 가능하지 않은데, 그 이유는 네트워크 인터페이스의 크 기가 네트워크에 연결될 IP에 필적할 만하거나 그보다 더 클 것이기 때문이다. 더욱이, IP 자체 상에서 프로토콜 스택을 작동시키는 것 또한 가능하지 않은데, 그 이유는 종종 이 IP가 하나의 전용 기능만을 구비하며 네트워크 프로토콜 스택을 작동시킬 능력을 갖지 않기 때문이다.
컴퓨터 네트워크 토폴로지는 일반적으로 불규칙적인(아마도 동적인) 구조를 갖는데, 이 구조는 버퍼 사이클을 야기한다. 예컨대 토폴로지 또는 라우팅에 제약을 야기함으로써, 데드락이 또한 회피될 수 있다. 팻-트리 토폴로지(Fat-tree topology)가 이미 NoC에서 고려되어 왔는데, 여기서 데드락이 버퍼 또는 오버플로우의 경우에 네트워크에 패킷을 다시 반송함으로써 회피된다. 시스템 설계에 대한 타일-기반 접근법이 메쉬 또는 토루스(mesh or torus) 토폴로지를 사용하는데, 여기서 데드락이 예컨대 턴-모델(turn-model) 라우팅 알고리즘을 사용해서 회피될 수 있다. 데드락은 주로 버퍼 내에서의 사이클에 의해 야기된다. 데드락을 회피하기 위해, 라우팅은 신뢰할만한 통신을 달성하는데 있어서 더 적은 비용으로 인해 사이클-프리이어야 한다. 데드락의 제2 이유는 원자적 트랜잭션 체인(atomic chains of transactions)이다. 모듈이 로크되는 동안에, 트랜잭션을 저장하는 큐가 원자적 트랜잭션 체인 외부에서 트랜잭션으로 채워질 수 있어, 로크된 모듈에 도달하기 위해 체인 내의 트랜잭션의 액세스를 차단할 수 있다는 것이 그 이유이다. 원자적 트랜잭션 체인이 (이것, 예컨대 MIPS를 허용하는 처리기와 호환하도록) 구현되어야 하는 경우, 네트워크 노드는 원자적 체인 내에서 트랜잭션을 필터링할 수 있어야 한다.
온-칩 상호연결로서 네트워크를 도입하는 것은 버스 또는 스위치와 같은 직접 상호연결과 비교할 때 통신을 급진적으로 변화시킨다. 이는 네트워크의 멀티-홉 특성 때문인데, 여기서 통신 모듈은 직접 연결되지 않고 하나 이상의 네트워크 노드에 의해 분리된다. 이는 모듈이 직접 연결되는 널리 퍼져있는 기존의 상호연결(즉, 버스)과 대조적이다. 이러한 변화의 의미는 중재(중앙집중형으로부터 분산형으로 변화해야 함)에, 그리고 통신 특성(예컨대, 순서화, 또는 흐름 제어)에 존재한다.
현대의 온-칩 통신 프로토콜(예컨대, 디바이스 트랜잭션 레벨(DTL), 오픈 코어 프로토콜(OCP), 및 AXI-프로토콜)은 스플릿 및 파이프라인형에 기초해서 동작하는데, 여기서 트랜잭션은 요청 및 응답으로 구성되며, 버스는 마스터에 의해 발행된 요청이 슬레이브에 의해 용인된 후에 다른 것에 의해 사용하기 위해 해제된다. 스플릿 파이프라인형 통신 프로토콜은 멀티-홉 상호연결(예컨대, 네트워크 온 칩, 또는 브릿지를 구비한 버스)에서 사용되어, 상호 연결의 효율적인 이용을 허용한다.
멀티-홉 상호연결에서의 어려움 중 하나는 원자적 동작(예컨대, 테스트 및 설정, 비교-스왑(compare-swap) 등)을 수행하는 방법이다. 원자적 트랜잭션 체인은 단일 슬레이브 상에서 배타적으로 실행되는 단일 마스터에 의해 개시되는 트랜잭션 시퀀스이다. 즉, 다른 마스터는 체인 내의 제1 트랜잭션이 일단 해당 슬레이브를 요구한 경우 그 슬레이브로의 액세스가 거부된다. 원자적 동작은 일반적으로 상호 배타 또는 세마포어(semaphore)와 같은 더 높은-레벨 동작을 구현하기 위해 상호 멀티-처리 시스템에서 사용되며, 따라서 마스터 모듈(예컨대, 세마포어)간의 동기화 메커니즘을 구현하기 위해 폭넓게 사용된다.
현재 원자적 동작(간략함을 위해 단지 테스트-및-설정 동작만이 여기에서 설명되었으나, 다른 원자적 동작이 유사하게 처리될 수 있다)을 구현하기 위한 두 가지 접근법 즉, a) 로크 또는 b) 플래그가 존재한다. 원자적 동작이 원자적 체인을 요청하는 마스터에 의한 배타적인 사용을 위해 상호연결을 로크함으로써 구현될 수 있다. 원자적 트랜잭션이 종료될 때까지 로크를 사용하면, 즉, 마스터가 자원을 로크하는 경우, 트랜잭션이 항상 성공하나, 이는 시작하는데 시간이 걸리게 할 수 있으며 다른 것에 영향을 미칠 것이다. 즉, 상호연결, 슬레이브, 또는 어드레스 공간의 일부가 마스터에 의해 로크되는데, 이는 어떠한 다른 마스터도 로크된 동안 로크된 개체에 액세스할 수 없다는 것을 의미한다. 원자성은 따라서 쉽게 달성되나, 특히 멀티-홉 상호연결에서, 성능 페널티를 갖는다. 자원이 로크되는 시간이 짧아지는데 그 이유는 일단 마스터가 버스로의 액세스를 허가받으면, 체인 내의 모든 트랜잭션을 빨리 수행할 수 있으며 어떠한 중재 지연도 체인 내에서 후속 트랜잭션을 위해 요구되지 않기 때문이다. 결국, 로크된 슬레이브 및 상호연결이 짧은 시간 내에 다시 오픈 업 될 수 있다.
또한, 원자적 동작은 플래그를 설정하여 즉, 마스터가 자원을 사용중인 것으로 플래그하여 로크된 슬레이브로의 액세스의 허가를 제한함으로써 구현될 수 있으며, 원자적 트랜잭션이 완료되는 시간까지 플래그가 여전히 설정되어 있는 경우, 원자적 트랜잭션이 성공하며, 그렇지 않은 경우 실패한다. 이 경우에, 원자적 트랜 잭션이 더 빨리 실행되고 다른 것에 영향을 미치지 않으나, 실패 가능성이 존재한다. 여기에서 배타적인 액세스의 경우 동안, 원자적 동작은 한 쌍의 두 트랜잭션: 읽기링크된 및 쓰기조건부로 제한된다. 읽기링크된 후에, 플래그(초기에 리셋됨)가 슬레이브 또는 어드레스 범위(또한 슬레이브 영역으로도 불림)로 설정된다. 추후에, 쓰기조건부가 시도되는데, 이는 플래그가 여전히 설정되어 있을 때 성공한다. 다른 쓰기가 플래그에 의해 마킹된 슬레이브 또는 슬레이브 범위 상에서 수행될 때 플래그가 리셋된다. 그러나 상호연결이 로크되지 않으며, 슬레이브의 더 긴 로크 시간을 대가로 여전히 다른 모듈에 의해 사용될 수 있다.
두 번째는 로크되는/플래그되는 것이다. 이는 전체 상호연결, 슬레이브(또는 슬레이브 그룹), 또는 (슬레이브 내의, 또는 다수의 슬레이브에 걸친) 메모리 영역일 수 있다.
보통, 이 원자적 동작은 다른 트랜잭션으로부터 어떠한 간섭없이 순차적으로 실행되어야 하는 두 개의 트랜잭션으로 구성된다. 예컨대, 테스트-및 설정 동작에서, 우선 읽기 트랜잭션이 수행되고, 읽기값이 0(또는 다른 미리결정된 값)과 비교되며, 성공시에, 또 하나의 값이 쓰기 트랜잭션을 이용해 다시 써진다. 원자적 동작을 얻기 위해, 어떠한 쓰기 트랜잭션도 읽기 트랜잭션과 쓰기 트랜잭션 사이의 동일 위치에서 허용되지 않아야 한다.
이 경우에, 마스터(예컨대, CPU)는 이러한 원자적 동작(즉, 로크된 읽기 및 쓰기, 및 읽기링크 및 쓰기조건부)을 위한 상호연결 상에서 둘 이상의 트랜잭션을 수행해야 한다. 멀티-홉 상호연결에서, 트랜잭션의 지연이 비교적 높으며, 원자적 동작이 불필요한 긴 대기 시간을 야기한다.
멀티-홉 상호연결 내에서 높은 지연에 의해 야기된 다른 문제점은 두 가지 구현에 특정적이다. 로크에서, 완벽한 멀티-홉 상호연결을 로크하는 것이 불가능한데, 그 이유는 분산형 중재를 가지며, 로크가 너무 많은 시간이 걸리게 할 것이며 중재자 사이에서 너무 많은 통신을 수반할 것이기 때문이다. 따라서, AXI-프로토콜 및 OCP-프로토콜에서, 상호연결보다는 슬레이브 또는 슬레이브 영역이 로크된다. 그러나, 이 경우조차도, 로크된 슬레이브 또는 슬레이브 영역은 로크 마스터를 제외한 모든 마스터로부터의 액세스를 금지시킬 것이다. 따라서, 다른 마스터로부터 해당 슬레이브로의 모든 트래픽이 상호연결에서 누적될 것이며, 바람직하지 않은 네트워크 정체를 야기할 것이데, 그 이유는 로크된 슬레이브 또는 슬레이브 영역으로 의도되지 않은 트래픽이 또한 초래될 것이기 때문이다.
배타적인 액세스에서, 성공할 쓰기조건부의 가능성이 (멀티-홉 상호연결에서 일반적인) 지연의 증가와 함께 그리고 동일한 슬레이브 또는 슬레이브 영역에 액세스하려고 시도하는 증가하는 마스터 수와 함께 감소한다.
양 방식을 위한 다른 트래픽 상에서 효과를 제한할 하나의 해결책은 슬레이브 영역 크기를 가능한 한 작게 만드는 것이다. 이 경우에, (로크를 위해) 초래되는 또는 (배타적인 액세스를 위해) 원자적 동작을 초래하는 유입 트래픽이 감소된다. 그러나, 다수의 로크/플래그를 구비하는 구현 비용 또는 이들을 구현하기 위해 동적으로 프로그래밍가능한 테이블을 구현하는 복잡도가 너무 높다.
원자적 트랜잭션 체인을 처리하는 개선된 능력을 구비하는 집적 회로를 제공하는 것이 본 발명의 목적이다.
이러한 문제점은 청구항 1에 따른 집적 회로, 청구항 6에 따른 방법뿐만 아니라, 청구항 7에 따른 데이터 처리 시스템에 의해 해결된다.
따라서, 복수의 처리 모듈 및 (상기 모듈을 연결하기 위해 배열된) 네트워크를 포함하는 집적 회로가 제공된다. 상기 집적 회로는 원자적 동작을 제1 트랜잭션으로 인코딩하기 위한 그리고 상기 제1 트랜잭션을 적어도 하나의 제2 처리 모듈에 발행하기 위한 제1 처리 모듈을 포함한다. 또한, 발행된 제1 트랜잭션을 적어도 하나의 제2 트랜잭션으로 디코딩하기 위한 트랜잭션 디코딩 수단이 제공된다.
이러한 집적 회로에서, 상호연결 상에서의 부하가 감소되는데, 즉, 상호연결상에 더 작은 수의 메시지가 존재한다. 따라서, 원자적 동작을 지원하기 위한 비용이 감소될 것이다.
본 발명의 측면에 따르면, 상기 처리 모듈은 상기 원자적 동작의 제1 트랜잭션으로의 실행을 관리하기 위한 상기 트랜잭션 디코딩 수단에 의해 필요한 모든 정보를 포함한다. 따라서, 필요한 모든 정보는 트랜잭션 디코딩 수단에 전달되는데, 이 수단은 제1 처리 모듈의 상호작용없이 스스로 추가적인 처리 단계를 수행할 수 있다.
본 발명의 추가적인 측면에 따르면, 상기 제1 트랜잭션은 상기 네트워크를 거쳐 상기 제1 처리 모듈로부터 상기 트랜잭션 디코딩 수단으로 전달된다. 따라서, 실행 시간이 더 짧아지며 이에 따라 마스터 및 연결의 더 짧은 로크가 달성되는데, 그 이유는 원자적 트랜잭션이 제2 처리 모듈측 즉, 슬레이브측에서 실행되며, 제1 처리 모듈측 즉, 마스터측에 의해서는 실행되지 않기 때문이다.
본 발명의 바람직한 측면에 따르면, 상기 트랜잭션 디코딩 수단은 제2 처리 모듈에 대한 요청을 큐에 넣기 위한 요청 버퍼, 상기 제2 처리 모듈로부터의 응답을 큐에 넣기 위한 응답 버퍼, 및 인입 요청을 검사하기 위한 그리고 신호를 상기 제2 처리 모듈에 발행하기 위한 메시지 처리기를 포함한다.
본 발명의 추가적인 측면에 따르면, 상기 제1 트랜잭션은 명령어, 및 선택적으로는 명령어 플래그 및 어드레스를 포함하는 헤더, 및 0 또는 하나 이상의 값을 포함하는 페이로드를 포함하는데, 상기 명령어의 실행은 메시지 처리기에 의해 개시된다. 간단한 P 및 V의 경우에, 0값이 존재한다. 확장 P 및 V 동작은 하나의 값을 가지며, 테스트 및 설정은 두 개의 값을 갖는다.
본 발명은 또한 복수의 처리 모듈 및 (상기 모듈을 연결하기 위해 배열된) 네트워크를 포함하는 집적 회로 내에서 트랜잭션을 발행하기 위한 방법에 대한 것이다. 제1 처리 모듈은 원자적 동작을 제1 트랜잭션으로 인코딩하며 상기 제1 트랜잭션을 적어도 하나의 제2 처리 모듈에 발행한다. 발행된 제1 트랜잭션은 트랜잭션 디코딩 수단에 의해 적어도 하나의 제2 트랜잭션으로 디코딩된다.
본 발명은 또한 복수의 처리 모듈 및 (상기 모듈을 연결하기 위해 배열된) 네트워크를 포함하는 데이터 처리 시스템에 대한 것이다. 상기 집적 회로는 원자적 동작을 제1 트랜잭션으로 인코딩하기 위한 그리고 상기 제1 트랜잭션을 적어도 하나의 제2 처리 모듈에 발행하기 위한 제1 처리 모듈을 포함한다. 또한, 발행된 제1 트랜잭션을 적어도 하나의 제2 트랜잭션으로 디코딩하기 위한 트랜잭션 디코딩 수단이 제공된다.
본 발명은 원자적 동작을 단일 트랜잭션 내에서 완벽하게 인코딩함으로써 그리고 슬레이브 즉, 수신측에 실행을 이동시킴으로써 자원이 로크되는 배타적인 액세스와 함께 플래그되는, 시간을 최소로 줄이기 위한 아이디어를 기초로 한다.
본 발명의 추가적인 측면은 첨부된 종속 청구항에 기재되어 있다.
도 1은 제1 실시예에 따른 시스템 온 칩의 개략적인 표현을 도시하는 도면.
도 2a 및 2b는 제1 실시예에 따른 원자적 동작을 구현하기 위한 방식을 도시하는 도면.
도 3a 및 3b는 제2 실시예에 따른 원자적 동작을 구현하기 위한 방식을 도시하는 도면.
도 4는 바람직한 실시예에 따른 메시지 구조를 도시하는 도면.
도 5는 타겟 모듈의 수신측 및 그의 연관 네트워크 인터페이스의 개략적인 표현을 도시하는 도면.
도 6은 타겟 모듈의 대안적인 수신측 및 그의 연관 네트워크 인터페이스의 개략적인 표현을 도시하는 도면.
다음 실시예는 시스템 온 칩에 대한 것인데 즉, 동일한 칩 상에서의 복수의 모듈이 일정 종류의 상호연결을 통해 서로 통신한다. 상호연결은 단일 칩에 걸쳐 또는 다수의 칩에 걸쳐 확장할 수 있는 네트워크 온 칩(NOC)으로서 구현된다. 네트워크 온 칩은 와이어, 버스, 시분할 다중화, 스위치 및/또는 라우터를 네트워크 내에 포함할 수 있다. 상기 네트워크의 전송 레이어에서, 모듈간의 통신은 연결을 통해 수행된다. 연결은 채널 세트로서 고려되는데, 각 채널은 제1 모듈과 적어도 하나의 제2 모듈 사이에 연결 특성 세트를 갖는다. 제1 모듈과 단일의 제2 모듈 사이의 연결에서, 연결은 두 개의 채널 즉, 제1 모듈로부터 제2 모듈로의 하나의 채널(즉, 요청 채널)과, 제2 모듈로부터 제1 모듈로의 제2 채널(즉, 응답 채널)을 포함한다. 요청 채널은 제1 모듈로부터 제2 모듈로의 데이터 및 메시지를 위해 예비되는 반면, 응답 채널은 제2 모듈로부터 제1 모듈로의 데이터 및 메시지를 위해 예비된다. 그러나, 연결이 하나의 제1 모듈 및 N개의 제2 모듈을 수반하는 경우, 2*N개의 채널이 제공된다. 연결 특성이 순서화(적절한 데이터 전송), 흐름 제어(원격 버퍼가 연결을 위해 예비되며, 생성된 데이터를 위해 공간이 이용가능하다는 것이 보장될 때만 데이터 생성기가 데이터를 전송하는 것이 허용될 것이다), 처리량(처리량에 대한 하한이 보장된다), 지연(지연에 대한 상한이 보장된다), 손실(데이터 드롭), 송신 종료, 트랜잭션 완료, 데이터 정확도, 우선순위, 또는 데이터 전달을 포함할 수 있다.
도 1은 본 발명에 따른 시스템 온 칩을 도시한다. 시스템은 마스터 모듈(M), 두 개의 슬레이브 모듈(S1, S2)을 포함한다. 각 모듈은 네트워크 인터페이스(NI)를
통해 네트워크(N)와 각각 연결된다. 네트워크 인터페이스(NI)는 마스터 및 슬레이브 모듈(M, S1, S2)과 네트워크(N) 사이에서 인터페이스로서 사용된다. 네트워크 인터페이스(NI)는 각각의 모듈과 네트워크(N)의 통신을 관리하도록 제공되어, 모듈이 네트워크 또는 다른 모듈과의 통신을 다룰 필요없이 전용 동작을 수행할 수 있다. 네트워크 인터페이스(NI)는 네트워크(N)를 통해 서로간에 읽기(rd) 및 쓰기(wr)와 같은 요청을 전송할 수 있다.
위에서 설명된 모듈은 상기 네트워크 인터페이스(NI)에서 네트워크와 상호작용하는 소위 지능형 특성 블록(계산 요소, 메모리 또는 내부에 상호연결 모듈을 포함할 수 있는 서브시스템)일 수 있다.
특히, 트랜잭션 디코딩 수단(TDM)이 슬레이브(S1, S2) 중 하나와 연관된 적어도 하나의 네트워크 인터페이스에 배열된다. 원자적 동작이 통신 프로토콜에 포함될 특별한 트랜잭션으로서 구현된다. 이러한 아이디어는 자원이 로크되는, 또는 최소로의 배타적인 액세스로 플래그되는, 시간을 최소로 줄이기 위한 것이다. 이를 달성하기 위해, 원자적 동작이 마스터측에 의해 단일 트랜잭션에서 완벽하게 인코딩되고, 동작의 실행이 슬레이브측으로 이동된다.
원자적 동작의 구현이 도 2a 및 2b에 예시된다. 로크를 사용하는 전통적인 원자적 동작이 도 2a에 도시되며, 제1 실시예에 따른 원자적 동작이 도 2b에 도시된다.
따라서, 도 2a는 네트워크 온 칩 환경에서 제1 및 제2 마스터(M1, M2)와 슬레이브(S) 사이의 통신 방식의 기본적인 표현을 도시한다. 제1 마스터(M1)가 '읽기 & 쓰기'동작 즉, 슬레이브(S) 내의 값 읽기 및 슬레이브(S) 로크하기를 요청하고, 슬레이브(S)가 응답 '읽기 & 로크'를 반환하는데, 아마도 읽기값을 반환한다. 슬레 이브(S)가 이후 마스터(M1)로 로크되어, 제2 마스터(M2)로부터의 요청(쓰기2)이 차단되는데 즉, 요청 실행이 지연된다. 마스터(M1)가 슬레이브(S)로부터 응답 '읽기 & 로크'를 수신한 후에, 값을 슬레이브(S)에 쓰기 위해 슬레이브(S)에게 요청 '쓰기1'을 발행한다. 마스터(M1)로부터의 이러한 제2 요청이 슬레이브(S)에 의해 수신되며 응답 '쓰기1'이 마스터(M1)에게 전송되고 슬레이브(S)의 로크가 해제되어(L2), 동작이 종료된다. 따라서, 슬레이브(S)가 L1에서 L2까지 로크되며 요청 '쓰기2'는 L2 즉, 슬레이브(S)의 해제까지 차단된다. 이제 슬레이브(S)는 제2 마스터(M2)로부터의 요청 '쓰기2'으로 나아갈 수 있다.
도 2b에, 제1 실시예에 따른 네트워크 온 칩 환경 내에서 제1 및 제2 마스터(M1, M2)와 슬레이브(S) 사이의 통신 방식의 기본적인 표현이 도시된다. 마스터(M1)가 '테스트 및 설정' 동작을 요청한다. 슬레이브 측에서 이 요청을 처리하기 위한 모든 정보가 마스터(M1)에 의해 단일의 원자적 트랜잭션에 포함된다. 단일의 원자적 트랜잭션 '테스트-및-설정'이 슬레이브와 연관된 트랜잭션 디코딩 수단(TDM)에 의해 수신된다. 트랜잭션의 실행이 원자적 트랜잭션 디코딩 수단(TDM)에 의해 발행되고, 이 트랜잭션이 실행될 때 슬레이브가 요청된 동작을 수행하며 슬레이브는 응답 '테스트-및-설정'을 발행한다. 슬레이브가 L10에서 제1 요청을 수신시에 마스터(M1)로 로크되며 트랜잭션의 실행을 종료하고 L20에서 응답 '테스트-및-설정'을 발행할 때, 해제된다. 이로써, 슬레이브가 L20에서 해제될 때까지 제2 마스터(M2)로부터의 요청 '쓰기'가 차단된다.
즉, 슬레이브에서 원자적 동작의 실행의 지속기간 동안만 슬레이브가 차단되 는데, 이 지속기간은 도 2a에 도시된 실행의 지속기간보다 훨씬 더 짧다. 더욱이, 마스터가 더 간단한데, 그 이유는 마스터 그 자체에서 원자적 동작을 구현할 필요가 없기 때문이다. (원자적 동작의 일부를 실행할 필요가 없는) 마스터 상에서의 더 작은 부담이 존재한다. 그러나, 복잡도가 상호연결 특히, 재사용될 수 있는 네트워크 인터페이스로 이동된다.
도 2a와 도 2b에 도시된 통신 방식을 비교할 때, 도 2a에 따른 전통적인 구현에서 로크 시간(L1 - L2)이 더 길다는 것이 관찰될 수 있는데, 그 이유는 마스터(M1)가 원자적 동작 즉, '읽기, 로크' 및 요청 '쓰기1'의 실행에 참여하기 때문이다. 따라서, 슬레이브(S)는 네트워크 지연에 마스터(M1)가 원자적 동작의 자신의 부분을 실행하는 시간을 더한 것의 두 배 동안 로크된다. 모든 이러한 시간에, (예컨대, 마스터(M2)로부터) 슬레이브(S)로 의도된 트래픽이 차단된다.
도 3a 및 3b는 바람직한 실시예인, 제2 실시예에 따른 원자적 동작을 구현하기 위한 방식을 도시한다. 로크를 사용하는 전통적인 원자적 동작이 도 3a에 도시되며, 제2 실시예에 따른 원자적 동작이 도 3b에 도시된다.
도 3a에, 특히 도 1에 도시된 마스터(M)와 슬레이브(S) 사이의 통신이 마스터(M)의 중간 네트워크 인터페이스(MNI) 및 슬레이브(S)의 중간 네트워크 인터페이스(SNI)와 함께 도시되어 있다. 특히, 기본적인 원리가 두 가지 예시적인 실행 즉, 제1 실행예(ex1)로서의 로크된읽기 및 제2 실행예(ex2)로서의 읽기링크된에 대해 설명된다.
마스터(M)가 실행(ex1)으로서의 로크된읽기 또는 실행(ex2)으로서의 읽기링 크된 것일 수 있는 제1 트랜잭션(t1)을 발행한다. 트랜잭션(t1)은 마스터(M)의 네트워크 인터페이스(MNI)로, 네트워크(N)를 통해 슬레이브의 네트워크 인터페이스(SNI)로 그리고 최종적으로 슬레이브(S)로 전송된다. 슬레이브(S)가 트랜잭션(t1)을 실행하고 아마도 일부 데이터를 네트워크 인터페이스(SNI) 및 마스터와 연관된 네트워크 인터페이스(MNI)를 통해 마스터에게 반환한다. 한편, 슬레이브(S)는 각각, 로크된읽기 또는 읽기링크된 실행에 대해 차단되며, 쓰기 또는 쓰기조건부 실행에 대해 플래그된다. 마스터(M)가 슬레이브(S)의 응답을 수신할 때 제2 트랜잭션(t2)을 실행하는데, 이 트랜잭션은 위에서 언급된 양 경우(실행 (ex1 및 ex2))에서 비교이다. 이후에, 마스터(M)는 실행(ex1)의 경우에 쓰기 명령어이고, 실행(ex2)의 경우에 쓰기조건부 명령어 각각인 제3 트랜잭션(t3)을 슬레이브에 발행한다. 슬레이브(S)는 이 명령어를 수신하고 대응하는 응답을 반환한다. 이후에, 슬레이브(S)는 해제된다.
도 3b에, 네트워크 온 칩 환경 내에서 마스터(M)와 슬레이브(S) 사이의 통신 방식의 기본적인 표현이 제2 실시예에 따라 도시된다. 기본적인 네트워크 온 칩 환경의 기본적인 구조가 도 3a에 설명된 환경에 대응하나, 트랜잭션 디코딩 수단(TDM)이 네트워크 온 칩 환경에 추가로 포함된다. 마스터(M)가 마스터(M)의 네트워크 인터페이스(MNI)를 통해 트랜잭션 디코딩 수단(TDM)에 전송되는 테스트및설정과 같은 원자적 트랜잭션(ta)을 발행한다.
도 3a에 따라 설명된 바와 같이, 테스트및설정 명령어의 원자적 트랜잭션(ta)의 구현 또는 디코딩을 위한 두 개의 상이한 실행예 즉, 제1 실행예(ex1)로 서의 로크된읽기 및 쓰기와 제2 실행예(ex2)로서의 읽기링크된 및 쓰기조건부가 설명된다.
여기에서, 마스터(M)가 원자적 트랜잭션(ta)을 발행한다. 마스터(M)에 의해 수행된, 도 3a에 따라 설명된 원자적 트랜잭션의 디코딩 및 제1, 제2 및 제3 트랜잭션(t1, t2, t3)의 처리가 트랜잭션 디코딩 수단(TDM)에 의해 이제 수행된다. 따라서, 트랜잭션 디코딩 수단(TDM)이 원자적 트랜잭션(ta)을 트랜잭션(t1)으로 즉, 제1 또는 제2 실행예(ex1 또는 ex2)로 디코딩한다. 이로써, 슬레이브(S)가 제1 트랜잭션(t1) 즉, ex1 또는 ex2를 슬레이브와 연관된 네트워크 인터페이스(SMI)를 통해 트랜잭션 디코딩 수단(TDM)으로부터 수신하자마자, 제1 트랜잭션(t1)이 실행되고 슬레이브가 아마도 트랜잭션 디코딩 수단(TDM)에 대한 일부 데이터를 포함하는 응답을 발행한다. 트랜잭션 디코딩 수단(TDM)이 제2 트랜잭션에 따라 즉, 제1 또는 제2 실행예(ex1 또는 ex2)에 따라 비교를 수행하는데, 이것은 양 경우에 대한 비교이다. 이후에, 트랜잭션 디코딩 수단(TDM)이 ex1으로서의 쓰기 또는 ex2로서의 쓰기조건부 트랜잭션을 슬레이브(S)에 발행하는데, 이는 제3 트랜잭션을 실행하고 로크된읽기 및 쓰기 즉, 제1 실행예(ex1) 및 읽기링크된 및 쓰기조건부 즉, 제2 실행예(ex2)의 경우에 슬레이브를 언로크한다. 이는 플래그가 여전히 설정되어 있는 경우에 성공한다. 대응하는 응답이 마스터(M)에 발행된다.
도 3b에 도시된 바와 같이, 네트워크를 통해 전송되어야 하는 더 적은 트랜잭션이 존재한다. 또한, 마스터(M)가 단지 하나의 원자적 트랜잭션이 발행되어야 함에 따라 더 낮은 처리 부담을 갖는 한편, 이러한 원자적 트랜잭션은 트랜잭션 디 코딩 수단(TDM)에서 복수의 더 간단한 트랜잭션으로 확장된다. 제2 실시예에 따라 마스터(M)가 원자적 트랜잭션을 인식하고 있어야 하는데, 그 이유는 일부 처리 단계가 이제 마스터(M)에 의해서가 아니라 트랜잭션 디코딩 수단(TDM)에 의해 수행되기 때문이다. 예컨대, 제1 및 제3 트랜잭션(t1 및 t3) 사이에서 비교(t2)가 트랜잭션 디코딩 수단(TDM)에 의해 수행된다.
대안적으로, 슬레이브는 또한 원자적 트랜잭션을 인식할 수 있으나, 이 경우에 트랜잭션 디코딩 수단(TDM)이 슬레이브(S)의 일부일 수 있다. 이는 간단해진 네트워크를 야기할 것인데, 그 이유는 트랜잭션 디코딩 수단(TDM)이 네트워크로부터 이동되어 슬레이브(S)에 배열되기 때문이다. 또한, 더 작은 트랜잭션이 이에 따라 슬레이브와 연관된 네트워크 인터페이스(SNI)와 슬레이브 그 자체 사이에서 통과할 것이다. 특히, 이는 단지 원자적 트랜잭션일 수 있다.
원자적 트랜잭션의 예는 테스트 및 설정, 그리고 비교 및 스왑일 수 있다. 양 경우에, 두 개의 데이터 값이 트랜잭션의 요청에 의해 운반되어야 한다: 비교될 값(CMPVAL) 및 써질 값(WRVAL). 양 예에서, CMPVAL은 트랜잭션의 어드레스에서의 값과 비교된다. 이 값들이 동일한 경우, WRVAL이 써진다. 슬레이브로부터의 응답은 테스트 및 설정에 대해서는 해당 위치에서의 새로운 값이고, 비교 및 스왑에 대해서는 오래된 값이다. (예컨대, 아래에서 설명되는 세마포어 확장에서 사용되는 바와 같이, 더 작은 또는 동일한) 임의의 불리언 함수가 간단한 비교 대신에 가능하다는 것을 주목하라.
트랜잭션 관점에서 더 개선되고, 더 간단한 세마포어 트랜잭션이 존재하는 데, 이는 임의의 파라미터없이 P 및 V라 부를 것이다. P는 트랜잭션의 어드레스에 의해 지정된 위치에서 값의 감소를 나타내려고 시도하기보다는 트랜잭션에서 지정된 어드레스로의 액세스를 가질 때까지 기다린다. 값이 양수인 경우, 값을 감소시키고 성공이 반환된다. 값이 0 또는 음수인 경우, 변하지 않으며 실패가 반환된다. V는 항상 성공하며 지정된 어드레스에서 위치를 증가시킨다.
P 및 V 트랜잭션의 확장이 가능한데, 여기서 증가될/감소될 값(VAL)이 P/V 트랜잭션의 데이터 파라미터로서 지정된다. 트랜잭션의 어드레스에서의 값이 VAL보다 더 크거나 이와 동일한 경우, P는 VAL만큼 트랜잭션의 어드레스에서의 위치를 감소시키고, 성공을 반환한다. 이와 다른 경우, 위치를 변화시키지 않으며 실패를 반환한다. V는 항상 어드레스지정된 위치를 VAL만큼 증가분시킨다.
본 발명은 동작을 트랜잭션으로서 인코딩하는 것과 관련되는데, 이 트랜잭션은 슬레이브측에서 상호연결로 구현되고 실행된다.
테스트-및-설정 트랜잭션이 특히 높은-지연 상호연결을 이용한 IC 설계(예컨대, 브릿지를 구비한 버스, 네트워크 온 칩)에서 관련이 있는데, 이러한 설계는 칩 복잡도에서의 증가와 함께 본질적일 것이다.
위에서 설명된 테스트-및-설정 트랜잭션의 장점은 상호연결을 로크할 필요가 없다는 것이다. 상호연결상에 더 작은 부하(더 적은 메시지)가 존재한다. 마스터에서 테스트-및-설정 동작의 실행 시간이 더 짧다. CPU/마스터는 테스트-및-설정 동작(읽기, 비교, 쓰기)을 위한 세 개의 명령어 대신에 단지 단일 명령어를 수행하는 것이 필요하다. 더욱이, 원자적 동작을 지원하는 비용이 감소된다. 그러나, 현재의 CPU가 이러한 명령어를 아직 제공하지 않는다는 것이 단점이다.
도 4는 제1 실시예에 따른 메시지 구조를 도시한다. 여기에서, 요청 메시지는 헤더(hd) 및 페이로드(pl)로 구성된다. 헤더(hd)는 명령어(cmd)(예컨대, 읽기, 쓰기, 테스트 및 설정), 플래그(예컨대, 페이로드 크기, 비트 마스크, 버퍼링), 및 어드레스로 구성된다. 페이로드(pl)는 (예컨대, 읽기 명령어에 대해) 비어있을 수 있으며, 하나의 값(v1)(예컨대, 쓰기 명령), 또는 두 개의 값(V1, V2)(예컨대, 테스트-및-설정 명령어)을 포함할 수 있다.
도 5는 수신측 즉, 슬레이브(S) 및 (이 슬레이브의) 연관된 네트워크 인터페이스(NI)를 도시한다. 슬레이브의 네트워크 인터페이스 및 특히 트랜잭션 디코딩 수단(TDM)이 테스트 및 설정 동작을 구현한다. 테스트-및-설정 동작 구현과 관련된 네트워크 인터페이스의 일부 즉, 트랜잭션 디코딩 수단(TDM)만이 도시된다.
슬레이브 네트워크 인터페이스 내의 트랜잭션 디코딩 수단(TDM)은 두 개의 메시지 큐 즉, 요청 버퍼(REQB) 및 응답 버퍼(RESPB), 메시지 처리기(MP), 비교기(CMP), 비교기 버퍼(CMPB) 및 선택기(SEL)를 포함한다. 트랜잭션 디코딩 수단(TDM)은 요청 버퍼(REQB)에 연결된 요청 입력, 응답 버퍼(RESPB)의 출력에 연결된 응답 출력, 슬레이브에 써질 데이터(wr_data)를 위한 출력, 슬레이브로부터 출력되는 데이터(rd_data)를 위한 입력, 슬레이브(S) 내의 어드레스 '어드레스'를 위한 제어 출력, 읽기/쓰기(wr/rd)를 선택하기 위한 선택 출력, 및 유효한 쓰기(wr_valid)를 위한 출력, 읽기 용인(rd_accept)을 위한 출력, 쓰기 용인(wr_accept)을 위한 입력, 및 유효한 읽기(rd_valid)를 위한 입력을 포함한다. 메시지 처리기(MP)는 다음과 같은 입력: 요청 버퍼(REQB)의 출력, 쓰기 용인 입력(wr_accept), 읽기 유효 입력(rd_valid) 및 비교기(CMP)의 결과 출력(res)을 포함한다. 메시지 처리기는 다음과 같은 출력: 어드레스 출력, 쓰기/읽기 선택 출력(wr/rd), 쓰기 유효 출력(wr_valid), 읽기 용인 출력(rd_accept), 선택기(SEL)를 위한 선택 신호, 쓰기 인에이블 신호(wr_en), 읽기 인에이블 신호(rd_en), 비교기를 위한 읽기-인에이블 신호(cren), 및 비교기를 위한 쓰기-인에이블 신호(cwen)를포함한다.
요청 버퍼 또는 큐(REQB)는 네트워크를 통해 마스터로부터 수신된 요청(예컨대, 플래그, 어드레스 및 아마도 데이터를 구비하는 읽기, 쓰기, 테스트 및 설정 명령어를 수용하며 이 요청은 슬레이브에서 전달될 것이다. 응답 버퍼 또는 큐(RESPB)는 명령어(예컨대, 읽기 데이터, 승인)에 대한 응답으로서 마스터(M)를 위해 슬레이브(S)에 의해 생성된 메시지를 수용한다.
나아가, 메시지 처리기(MP)는 요청 버퍼(REQB)에 입력되는 각각의 메시지 헤더(hd)를 검사한다. 헤더 내의 명령어(cmd) 및 플래그에 따라, 슬레이브를 향해 신호를 구동한다. 쓰기 명령어의 경우에, 쓰기 위해 wr/rd 신호를 설정하며, wr_valid를 설정함으로써 출력되는 wr_data 상에 데이터를 제공한다. 읽기 명령어에서, 읽기 위해 wr/rd를 설정하며 읽기 데이터(rd_data)를 전달하기 위해 선택기(SEL)를 설정한다. 읽기 데이터가 입력(rd_data) 상에 존재할 때 (즉, rd_valid가 높을 때), rd_en이 설정되며(즉, 용인할 준비가 됨), 응답 큐가 데이터(간략함을 위해 도시되지 않은 신호)를 용인할 때 rd_accept가 생성된다. 선택기(SEL)가 요청 버퍼(REQB)의 출력 또는 rd_data 출력을 메시지 처리기(MP)의 선택기 신호(SEL)에 응답해서 응답 버퍼(RESPB) 또는 비교기 버퍼(CMPB)에 전송한다.
테스트-및-설정 명령어에서, 메시지 처리기(MP)는 우선 읽기 명령어를 슬레이브에 발행하고, 수신된 데이터를 비교기 버퍼 또는 큐(CMPB)에 저장한다. 이후, 메시지 처리기(MP)는 크기=N 워드에 대해 비교기(CMP)를 통해 데이터를 생성하기 위해 요청 버퍼(REQB) 및 비교기 버퍼(CMPB) 모두를 활성화시킨다. 모든 워드쌍이 동일한 워드를 갖는 경우, 비교 테스트가 성공하고, 요청 버퍼 또는 큐(REQB)내의 (또한 크기=N 워드의) 다음 값이 슬레이브(S)에 써진다. 이 경우에, 써진 값은 또한 응답 큐(RESPB)를 통해 마스터(M)에 직접 반환된다. 테스트가 실패한 경우, 요청 큐 내의 제2 값이 버려지고(즉, 슬레이브에 전혀 써지지 않음), 제2 읽기가 응답 큐(RESPB)를 통해 마스터에 반환되도록 동일 어드레스에 발행된다.
도 6은 도 5에 도시된 수신측의 대안적인 배열의 개략적인 표현을 도시한다. 도 6의 배열의 동작은 실질적으로 도 5의 배열의 동작에 대응한다. 도 6의 배열은 도 5의 배열에 대응하나, 도 5의 메시지 처리기(MP)가 두 부분으로 즉, 메시지 처리기(MP)와 슬레이브(S) 사이에서 메시지 처리기(MP) 및 프로토콜 셸(PS)로 분할된다. 여기에서, 트랜잭션 디코딩 수단(TDM)에 대응하는 부분 즉, 메시지 프플처리기(MP), 비교기(CMP), 비교기 큐(CMPB) 및 선택기(sel)가 점선으로 둘러싸인다. 요청 큐(REQB) 및 응답 큐(RESPB)가 네트워크(N)의 부분일 수 있다.
프로토콜 셸(PS)은 메시지 처리기(MP)의 메시지를 슬레이브(S)가 통신할 수 있는 프로토콜 예컨대, 버스 프로토콜로 번역하도록 작용한다. 특히, 메시지 또는 신호 트랜잭션 요청(t_req), 트랜잭션 요청 유효(t_req_valid) 및 트랜잭션 요청 용인(t_req_accept) 뿐만 아니라 단일 트랜잭션 응답(t_resp), 트랜잭션 응답 유효(t_resp_valid) 및 트랜잭션 응답 용인(t_resp_accept)이 도 5에 따라 설명된 슬레이브(S)의 각각의 출력 및 입력 신호로 번역된다.
대안적으로, 트랜잭션 디코딩 수단(TDM) 및 프로토콜 셸(PS)이 슬레이브(S)와 연관된 네트워크 인터페이스(NI) 내에서 또는 네트워크(N)의 부분으로서 구현될 수 있다.
위에서 설명된 네트워크 온 칩은 단일 칩 상에서 또는 멀티-칩 환경 내에서 구현될 수 있다.
위에서 언급된 실시예는 본 발명을 제한하기보다는 예시하는 것이며, 당업자는 첨부된 청구항의 범위를 벗어나지 않고 다수의 대안적인 실시예를 설계할 수 있을 것이라는 것이 주목되어야 할 것이다. 청구항에서, 괄호 안에 위치된 임의의 참조 부호는 청구항을 제한하는 것으로서 해석되지는 않을 것이다. "포함하는" 이라는 단어는 청구항에 나열된 요소 또는 단계 이외의 요소 또는 단계의 존재를 배제하지 않는다. 단수 요소는 복수의 그러한 요소의 존재를 배제하지 않는다. 몇 가지 수단을 열거하는 디바이스 청구항에서, 이들 수단 중 몇 가지는 하나의 동일한 하드웨어 항목에 의해 구현될 수 있다. 일정 수단이 상호 상이한 종속항에 언급된다는 단순한 사실이 유리하게 하기 위해 이들 수단의 조합이 사용될 수 없다는 것을 나타내지는 않는다.
나아가, 청구항 내의 임의의 참조 부호는 청구항의 범위를 제한하는 것으로 서 해석되지 않을 것이다.
본 발명은 복수의 처리 회로와 (처리 모듈 사이에 연결을 제공하기 위해 배열된) 네트워크를 구비하는 집적 회로, 이러한 집적 회로에서 트랜잭션을 발행하기 위한 방법, 및 데이터 처리 시스템에 이용가능하다.

Claims (7)

  1. 복수의 처리 모듈(M, S) 및 (상기 모듈(M, S; IP)을 연결하기 위해 배열된) 네트워크(N)를 포함하는 집적 회로로서,
    - 원자적 동작을 제1 트랜잭션으로 인코딩하기 위한 그리고 상기 제1 트랜잭션을 적어도 하나의 제2 처리 모듈(S)에 발행하기 위한 제1 처리 모듈(M), 및
    - 발행된 제1 트랜잭션을 적어도 하나의 제2 트랜잭션으로 디코딩하기 위한 트랜잭션 디코딩 수단(TDM)
    을 포함하는, 복수의 처리 모듈 및 네트워크를 포함하는 집적 회로.
  2. 제1 항에 있어서,
    상기 제1 처리 모듈(M)은 상기 원자적 동작의 실행을 상기 제1 트랜잭션으로 관리하기 위한 상기 트랜잭션 디코딩 수단(TDM)에 의해 필요한 모든 정보를 포함하도록 적응되는, 복수의 처리 모듈 및 네트워크를 포함하는 집적 회로.
  3. 제2 항에 있어서,
    상기 제1 트랜잭션은 상기 네트워크(N)를 거쳐 상기 제1 처리 모듈(M)로부터 상기 트랜잭션 디코딩 수단(TDM)으로 전달되는, 복수의 처리 모듈 및 네트워크를 포함하는 집적 회로.
  4. 제1 항에 있어서,
    상기 트랜잭션 디코딩 수단(TDM)은 제2 처리 모듈(S)에 대한 요청을 큐에 넣기 위한 요청 버퍼(REQB), 상기 제2 처리 모듈(S)로부터의 응답을 큐에 넣기 위한 응답 버퍼(RESPB), 및 인입 요청을 검사하기 위한 그리고 신호를 상기 제2 처리 모듈(S)에 발행하기 위한 메시지 처리기(MP)를 포함하는, 복수의 처리 모듈 및 네트워크를 포함하는 집적 회로.
  5. 제4 항에 있어서,
    상기 제1 트랜잭션은 명령어, 및 선택적으로는 명령어 플래그 및 어드레스를 포함하는 헤더, 및 0 또는 하나 이상의 값을 구비하는 페이로드를 포함하되,
    상기 명령어의 실행은 메시지 처리기(MP)에 의해 개시되는, 복수의 처리 모듈 및 네트워크를 포함하는 집적 회로.
  6. 복수의 처리 모듈(M; S) 및 (상기 모듈(M; S)을 연결하기 위해 배열된) 네트워크(N)를 포함하는 집적 회로 내에서 트랜잭션을 발행하기 위한 방법으로서,
    - 제1 처리 모듈(M)에 의해 원자적 동작을 제1 트랜잭션으로 인코딩하며 상기 제1 트랜잭션을 적어도 하나의 제2 처리 모듈에 발행하는 단계,
    - 트랜잭션 디코딩 수단(TDM)에 의해, 발행된 제1 트랜잭션을 적어도 하나의 제2 트랜잭션으로 디코딩하는 단계
    를 포함하는, 복수의 처리 모듈 및 네트워크를 포함하는 집적 회로 내에서 트랜잭션을 발행하기 위한 방법.
  7. 데이터 처리 시스템으로서,
    - 복수의 처리 모듈(M, S) 및 (상기 모듈(M, S)을 연결하기 위해 배열된) 네트워크(N),
    - 원자적 동작을 제1 트랜잭션으로 인코딩하기 위한 그리고 상기 제1 트랜잭션을 적어도 하나의 제2 처리 모듈(S)에 발행하기 위한 제1 처리 모듈(M), 및
    - 발행된 제1 트랜잭션을 적어도 하나의 제2 트랜잭션으로 디코딩하기 위한 트랜잭션 디코딩 수단(TDM)
    을 포함하는, 데이터 처리 시스템.
KR1020067022070A 2004-04-26 2005-04-12 트랜잭션을 발행하기 위한 집적 회로 및 방법 KR20070010152A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04101732.8 2004-04-26
EP04101732 2004-04-26

Publications (1)

Publication Number Publication Date
KR20070010152A true KR20070010152A (ko) 2007-01-22

Family

ID=34980261

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067022070A KR20070010152A (ko) 2004-04-26 2005-04-12 트랜잭션을 발행하기 위한 집적 회로 및 방법

Country Status (6)

Country Link
US (1) US20070234006A1 (ko)
EP (1) EP1743251A1 (ko)
JP (1) JP4740234B2 (ko)
KR (1) KR20070010152A (ko)
CN (1) CN100538691C (ko)
WO (1) WO2005103934A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1735712A1 (en) * 2004-03-26 2006-12-27 Koninklijke Philips Electronics N.V. Integrated circuit and method for transaction abortion
US7457905B2 (en) * 2005-08-29 2008-11-25 Lsi Corporation Method for request transaction ordering in OCP bus to AXI bus bridge design
KR100687659B1 (ko) 2005-12-22 2007-02-27 삼성전자주식회사 Axi 프로토콜에 따른 락 오퍼레이션을 제어하는네트워크 인터페이스, 상기 네트워크 인터페이스가 포함된패킷 데이터 통신 온칩 인터커넥트 시스템, 및 상기네트워크 인터페이스의 동작 방법
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
CN102004709B (zh) * 2009-08-31 2013-09-25 国际商业机器公司 处理器局部总线到高级可扩展接口之间的总线桥及映射方法
DE102009043451A1 (de) * 2009-09-29 2011-04-21 Infineon Technologies Ag Schaltungsanordnung, Network-on-Chip und Verfahren zum Übertragen von Informationen
US8103937B1 (en) * 2010-03-31 2012-01-24 Emc Corporation Cas command network replication
US20120331034A1 (en) * 2011-06-22 2012-12-27 Alain Fawaz Latency Probe
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
US9164804B2 (en) 2012-06-20 2015-10-20 Memory Technologies Llc Virtual memory module
US9116820B2 (en) 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
US20150199286A1 (en) * 2014-01-10 2015-07-16 Samsung Electronics Co., Ltd. Network interconnect with reduced congestion
GB2538754B (en) 2015-05-27 2018-08-29 Displaylink Uk Ltd Single-chip multi-processor communication
CN109271260A (zh) * 2018-08-28 2019-01-25 百度在线网络技术(北京)有限公司 临界区加锁方法、装置、终端及存储介质
US11481139B1 (en) 2021-03-31 2022-10-25 Netapp, Inc. Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity
US11709743B2 (en) 2021-03-31 2023-07-25 Netapp, Inc. Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system
US11934670B2 (en) 2021-03-31 2024-03-19 Netapp, Inc. Performing various operations at the granularity of a consistency group within a cross-site storage solution
US11740811B2 (en) 2021-03-31 2023-08-29 Netapp, Inc. Reseeding a mediator of a cross-site storage solution
US11550679B2 (en) * 2021-03-31 2023-01-10 Netapp, Inc. Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system
US11409622B1 (en) 2021-04-23 2022-08-09 Netapp, Inc. Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system without using an external mediator
US11893261B2 (en) 2021-05-05 2024-02-06 Netapp, Inc. Usage of OP logs to synchronize across primary and secondary storage clusters of a cross-site distributed storage system and lightweight OP logging
US11892982B2 (en) 2021-10-20 2024-02-06 Netapp, Inc. Facilitating immediate performance of volume resynchronization with the use of passive cache entries
US11907562B2 (en) 2022-07-11 2024-02-20 Netapp, Inc. Methods and storage nodes to decrease delay in resuming input output (I/O) operations after a non-disruptive event for a storage object of a distributed storage system by utilizing asynchronous inflight replay of the I/O operations

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4769768A (en) * 1983-09-22 1988-09-06 Digital Equipment Corporation Method and apparatus for requesting service of interrupts by selected number of processors
DE69223304T2 (de) * 1991-09-27 1998-06-18 Sun Microsystems Inc Arbitrierungsverriegelungverfahren und -vorrichtung für einen entfernten Bus
US5684977A (en) * 1995-03-31 1997-11-04 Sun Microsystems, Inc. Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system
US5657472A (en) * 1995-03-31 1997-08-12 Sun Microsystems, Inc. Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor
JPH10177560A (ja) * 1996-12-17 1998-06-30 Ricoh Co Ltd 記憶装置
US6249829B1 (en) * 1997-01-10 2001-06-19 U.S. Philips Corporation Communication bus system with reliable determination of command execution
US6366590B2 (en) * 1998-03-16 2002-04-02 Sony Corporation Unified interface between an IEEE 1394-1995 serial bus transaction layer and corresponding applications
JP2000267935A (ja) * 1999-03-18 2000-09-29 Fujitsu Ltd キヤッシュメモリ装置
US6490642B1 (en) * 1999-08-12 2002-12-03 Mips Technologies, Inc. Locked read/write on separate address/data bus using write barrier
JP2001243209A (ja) * 2000-03-01 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> 分散共有メモリシステム及び分散共有メモリシステム制御方法
US7065580B1 (en) * 2000-03-31 2006-06-20 Sun Microsystems, Inc. Method and apparatus for a pipelined network
US20020069279A1 (en) * 2000-12-29 2002-06-06 Romero Francisco J. Apparatus and method for routing a transaction based on a requested level of service
US7003604B2 (en) * 2001-10-04 2006-02-21 Sony Corporation Method of and apparatus for cancelling a pending AV/C notify command
US7013356B2 (en) * 2002-08-30 2006-03-14 Lsi Logic Corporation Methods and structure for preserving lock signals on multiple buses coupled to a multiported device
JP4181839B2 (ja) * 2002-09-30 2008-11-19 キヤノン株式会社 システムコントローラ
US7769893B2 (en) * 2002-10-08 2010-08-03 Koninklijke Philips Electronics N.V. Integrated circuit and method for establishing transactions
US7483370B1 (en) * 2003-12-22 2009-01-27 Extreme Networks, Inc. Methods and systems for hitless switch management module failover and upgrade

Also Published As

Publication number Publication date
US20070234006A1 (en) 2007-10-04
JP4740234B2 (ja) 2011-08-03
EP1743251A1 (en) 2007-01-17
CN1947112A (zh) 2007-04-11
JP2007535057A (ja) 2007-11-29
CN100538691C (zh) 2009-09-09
WO2005103934A1 (en) 2005-11-03

Similar Documents

Publication Publication Date Title
KR20070010152A (ko) 트랜잭션을 발행하기 위한 집적 회로 및 방법
US7366818B2 (en) Integrated circuit comprising a plurality of processing modules and a network and method for exchanging data using same
JP4638216B2 (ja) オンチップバス
US7594052B2 (en) Integrated circuit and method of communication service mapping
US7613849B2 (en) Integrated circuit and method for transaction abortion
US20060209846A1 (en) Globally asynchronous communication architecture for system on chip
US20030146073A1 (en) Asynchronous crossbar with deterministic or arbitrated control
EP1733309B1 (en) Integrated circuit and method for transaction retraction
US20070253410A1 (en) Integrated Circuit and Method for Packet Switching Control
Jiang et al. A lightweight early arbitration method for low-latency asynchronous 2D-mesh NoC's
US8645557B2 (en) System of interconnections for external functional blocks on a chip provided with a single configurable communication protocol
Bjerregaard et al. Paper C Implementation of Guaranteed Services in the MANGO Clockless Network-on-Chip

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application