KR101993258B1 - 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩 - Google Patents
레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩 Download PDFInfo
- Publication number
- KR101993258B1 KR101993258B1 KR1020120132818A KR20120132818A KR101993258B1 KR 101993258 B1 KR101993258 B1 KR 101993258B1 KR 1020120132818 A KR1020120132818 A KR 1020120132818A KR 20120132818 A KR20120132818 A KR 20120132818A KR 101993258 B1 KR101993258 B1 KR 101993258B1
- Authority
- KR
- South Korea
- Prior art keywords
- request
- register circuit
- requests
- emergency
- register
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
레지스터 슬라이싱 회로는, 제1 레지스터 회로, 제2 레지스터 회로, 순방향 채널 및 역방향 채널을 포함한다. 상기 제1 레지스터 회로와 상기 제2 레지스터 회로는 마스터 장치들로부터 발생된 리퀘스트들을 슬레이브 장치에게 전달하기 위하여 상기 리퀘스트들을 각각 순차적으로 저장하고 출력한다. 상기 순방향(forward) 채널은 상기 제1 레지스터 회로로부터의 제1 리퀘스트를 상기 제2 레지스터 회로로 전송하기 위한 채널이다. 상기 역방향(backward) 채널은 상기 제2 레지스터 회로로부터의 제2 리퀘스트를 상기 제1 레지스터 회로로 반송하기 위한 채널이다.
Description
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 긴급 리퀘스트의 플로우 촉진을 위한 레지스터 슬라이싱 회로 및 시스템 온 칩에 관한 것이다.
시스템 온 칩(SOS: system on chip)은 여러 가지 반도체 부품들이 하나로 집적되는 하나의 칩 또는 그 칩에 집적된 시스템을 말한다. 컴퓨터, 통신, 방송 등이 점차 통합(Convergence)됨에 따라서 기존의 주문형 반도체(ASIC: application specific integrated circuit)와 특정용도 표준제품(ASSP: application specific standard product)의 수요가 점차 시스템 온 칩으로 전환되어 가고 있는 추세이다. 또한 전자 기기의 경박단소화 및 고기능화 추세도 시스템 온 칩 산업을 촉진시키는 요인이 되고 있다.
시스템 온 칩의 집적도 향상에 따라서 더 많은 부품들이 하나의 칩에 집적되고 시스템 온 칩의 동작 속도도 점진적으로 증가하고 있다. 특히 칩 내에 내재되어 있는 여러 지능 소자(IP: intellectual property)들을 연결하는 방안이 매우 중요한 사항으로 대두되고 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은, 긴급 리퀘스트의 서비스를 촉진하여 전체 시스템의 리퀘스트 플로우를 효율적으로 조절할 수 있는 레지스터 슬라이싱 회로를 제공하는 것이다.
본 발명의 다른 목적은, 상기 레지스터 슬라이싱 회로를 이용하여 긴급 리퀘스트의 서비스를 촉진하여 전체 시스템의 리퀘스트 플로우를 효율적으로 조절할 수 있는 시스템 온 칩을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로는, 제1 레지스터 회로, 제2 레지스터 회로, 순방향 채널 및 역방향 채널을 포함한다. 상기 제1 레지스터 회로와 상기 제2 레지스터 회로는 마스터 장치들로부터 발생된 리퀘스트들을 슬레이브 장치에게 전달하기 위하여 상기 리퀘스트들을 각각 순차적으로 저장하고 출력한다. 상기 순방향(forward) 채널은 상기 제1 레지스터 회로로부터의 제1 리퀘스트를 상기 제2 레지스터 회로로 전송하기 위한 채널이다. 상기 역방향(backward) 채널은 상기 제2 레지스터 회로로부터의 제2 리퀘스트를 상기 제1 레지스터 회로로 반송하기 위한 채널이다.
상기 제2 리퀘스트를 반송하기 위한 상기 역방향 채널의 전송 라인들의 개수는 상기 제1 리퀘스트를 전송하기 위한 상기 순방향 채널의 전송 라인들의 개수보다 작을 수 있다.
상기 제2 레지스터 회로는 상기 제2 리퀘스트를 복수의 세그먼트들로 분할하고, 상기 세그먼트들을 상기 역방향 채널을 통하여 복수 회에 걸쳐 순차적으로 상기 제1 레지스터 회로로 반송할 수 있다.
상기 리퀘스트들은 서비스의 긴급 여부를 나타내는 긴급 플래그들을 각각 포함하고, 상기 리퀘스트들은 상기 긴급 플래그가 제1 값을 갖는 긴급 리퀘스트 또는 제2 값을 갖는 노말 리퀘스트로 구분될 수 있다.
상기 제1 레지스터 회로 및 상기 제2 레지스터 회로는, 상기 긴급 플래그들에 기초하여 상기 제1 리퀘스트와 상기 제2 리퀘스트를 교환하는 노드간 스와핑 동작(inter-node swapping operation)을 수행할 수 있다.
상기 노드간 스와핑 동작은 상기 제2 레지스터 회로가 저장 가능한 최대 개수의 상기 리퀘스트들을 저장하고 있는 이슈-풀 상태(issue-full state)이고 상기 제1 리퀘스트가 상기 긴급 리퀘스트에 해당하는 경우에 수행될 수 있다.
상기 제1 레지스터 회로 및 상기 제2 레지스터 회로는, 상기 노드간 스와핑 동작이 완료되기 전에 상기 제2 레지스터 회로의 상기 이슈-풀 상태가 해제된 경우에 상기 노드간 스와핑 동작을 취소할 수 있다.
상기 제1 레지스터 회로 및 상기 제2 레지스터 회로는, 상기 긴급 플래그들에 기초하여 각각의 내부에 인접하여 저장된 두개의 리퀘스트들 중에서 후순위로 저장된 상기 긴급 리퀘스트와 선순위로 저장된 상기 노말 리퀘스트를 서로 바꾸어 저장하는 노드내 스와핑 동작(in-node swapping operation)을 수행할 수 있다.
상기 리퀘스트들은 상호간의 서비스 순서의 제한을 나타내는 순서 의존 플래그들을 각각 더 포함할 수 있다. 상기 제1 레지스터 회로 및 상기 제2 레지스터 회로의 각각은, 상기 순서 의존 플래그들에 기초하여 상기 리퀘스트들 중에서 상기 서비스 순서 제한이 적용되는 리퀘스트들의 그룹을 판별하고, 상기 그룹이 후순위로 저장된 상기 긴급 리퀘스트를 포함하는 경우 상기 그룹에 포함된 선순위로 저장된 상기 노말 리퀘스트의 긴급 플래그를 상기 제2 값에서 상기 제1 값으로 변경할 수 있다.
상기 제1 레지스터 회로 및 상기 제2 레지스터 회로의 각각은, 상기 리퀘스트들을 저장하는 리퀘스트 버퍼; 상기 노드간 스와핑 동작시 상기 제2 리퀘스트를 임시 저장하기 위한 반송 버퍼; 및 상기 리퀘스트 버퍼 및 상기 반송 버퍼를 제어하는 제어부를 포함할 수 있다.
상기 제2 레지스터 회로의 제어부는 상기 제2 레지스터 회로의 상기 이슈-풀 상태를 나타내는 풀 카운트 신호를 상기 제1 레지스터 회로로 제공하고, 상기 제1 레지스터 회로의 제어부는 상기 제2 레지스터 회로로부터의 풀 카운트 신호 및 상기 제1 리퀘스트에 포함된 상기 긴급 플래그에 기초하여 상기 노드간 스와핑 동작의 수행 여부를 결정할 수 있다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 시스템 온 칩은 슬레이브 장치; 상기 슬레이브 장치에게 서비스를 요구하기 위한 리퀘스트들을 각각 발생하는 복수의 마스터 장치들; 및 상기 슬레이브 장치와 상기 마스터 장치들을 연결하는 상호접속 장치를 포함한다. 상기 상호접속 장치는, 상기 리퀘스트들을 상기 슬레이브 장치에게 전달하기 위하여 상기 리퀘스트들을 각각 순차적으로 저장하고 출력하는 제1 레지스터 회로와 제2 레지스터 회로; 상기 제1 레지스터 회로로부터의 제1 리퀘스트를 상기 제2 레지스터 회로로 전송하기 위한 순방향(forward) 채널; 및 상기 제2 레지스터 회로로부터의 제2 리퀘스트를 상기 제1 레지스터 회로로 반송하기 위한 역방향(backward) 채널을 포함한다.
상기 리퀘스트들은 서비스의 긴급 여부를 나타내는 긴급 플래그들을 각각 포함하고 상기 긴급 플래그가 제1 값을 갖는 긴급 리퀘스트 또는 제2 값을 갖는 노말 리퀘스트로 구분될 수 있다.
상기 제1 레지스터 회로 및 상기 제2 레지스터 회로는, 상기 긴급 플래그들에 기초하여 상기 제1 리퀘스트와 상기 제2 리퀘스트를 교환하는 노드간 스와핑 동작(inter-node swapping operation) 및 상기 긴급 플래그들에 기초하여 각각의 내부에 인접하여 저장된 두개의 리퀘스트들 중에서 후순위로 저장된 상기 긴급 리퀘스트와 선순위로 저장된 상기 노말 리퀘스트를 서로 바꾸어 저장하는 노드내 스와핑 동작(in-node swapping operation)을 수행할 수 있다.
상기 서비스의 긴급 여부를 나타내는 긴급 정보가 상기 마스터 장치들로부터 상기 제1 레지스터 회로 및 상기 제2 레지스터 회로에 실시간으로 제공되고, 상기 긴급 정보에 기초하여 상기 제1 레지스터 회로 및 상기 제2 레지스터 회로에 저장된 상기 리퀘스트들의 상기 긴급 플래그들의 값들이 실시간으로 갱신될 수 있다.
본 발명의 실시예들에 따른 레지스터 슬라이싱 회로는 긴급 플래그에 기초한 노드내 스와핑 동작 및 역방향 채널을 이용한 노드간 스와핑 동작을 통하여 레지스터 슬라이싱이 요구되는 장거리의 네트워크 노드들 사이에서도 긴급 리퀘스트의 플로우를 효율적으로 촉진할 수 있다. 한편, 리퀘스트들 상호간의 서비스 순서의 제한이 있는 경우 선순위의 노말 리퀘스트를 긴급 리퀘스트로 변경함으로써 긴급 리퀘스트의 플로우가 정체되는 것을 방지할 수 있다.
본 발명의 실시예들에 따른 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩은 노말 리퀘스트를 배제하고 긴급 리퀘스트의 플로우만을 촉진함으로써 다른 링크의 리퀘스트 플로우를 과도하게 제한하지 않으면서 효율적으로 시스템의 전체 플로우를 조절할 수 있다. 또한 역방향 채널의 전송 라인들의 개수를 적절히 설정하여 시스템 온 칩의 설계 부담을 감소할 수 있다.
도 1은 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로를 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 레지스터 슬라이싱 회로를 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 슬라이싱 회로에 저장되는 리퀘스트의 구조의 일 예를 나타내는 도면이다.
도 4a 및 도 4b는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 일반적인 노드간 전송을 설명하기 위한 도면이다.
도 5a 내지 도 5e는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드간 스와핑 동작을 설명하기 위한 도면이다.
도 6a 및 도 6b는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드간 스와핑 동작의 취소를 설명하기 위한 도면이다.
도 7은 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드내 스와핑 동작을 위한 제1 콘트롤 로직의 일 예를 나타내는 도면이다.
도 8a 및 도 8b는 도 7의 제1 콘트롤 로직의 인에이블 신호들의 예들을 나타내는 도면들이다.
도 9는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드간 스와핑 동작을 위한 제2 콘트롤 로직의 일 예를 나타내는 도면이다.
도 10a 내지 도 10f는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드내 스와핑 동작 시퀀스의 일 예를 나타내는 도면들이다.
도 11은 본 발명의 실시예들에 따른 시스템 온 칩을 나타내는 도면이다.
도 12는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로가 적용된 상호접속 장치의 일 예를 나타내는 도면이다.
도 13은 본 발명의 실시예들에 따른 시스템 온 칩에 이용되는 긴급 정보의 일 예를 나타내는 도면이다.
도 14는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로가 적용된 상호접속 장치의 일 예를 나타내는 도면이다.
도 15는 본 발명의 실시예들에 따른 시스템 온 칩을 전자 기기에 응용한 예를 나타내는 블록도이다.
도 16은 도 15의 전자 기기에서 사용되는 인터페이스의 일 예를 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 레지스터 슬라이싱 회로를 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 슬라이싱 회로에 저장되는 리퀘스트의 구조의 일 예를 나타내는 도면이다.
도 4a 및 도 4b는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 일반적인 노드간 전송을 설명하기 위한 도면이다.
도 5a 내지 도 5e는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드간 스와핑 동작을 설명하기 위한 도면이다.
도 6a 및 도 6b는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드간 스와핑 동작의 취소를 설명하기 위한 도면이다.
도 7은 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드내 스와핑 동작을 위한 제1 콘트롤 로직의 일 예를 나타내는 도면이다.
도 8a 및 도 8b는 도 7의 제1 콘트롤 로직의 인에이블 신호들의 예들을 나타내는 도면들이다.
도 9는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드간 스와핑 동작을 위한 제2 콘트롤 로직의 일 예를 나타내는 도면이다.
도 10a 내지 도 10f는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드내 스와핑 동작 시퀀스의 일 예를 나타내는 도면들이다.
도 11은 본 발명의 실시예들에 따른 시스템 온 칩을 나타내는 도면이다.
도 12는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로가 적용된 상호접속 장치의 일 예를 나타내는 도면이다.
도 13은 본 발명의 실시예들에 따른 시스템 온 칩에 이용되는 긴급 정보의 일 예를 나타내는 도면이다.
도 14는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로가 적용된 상호접속 장치의 일 예를 나타내는 도면이다.
도 15는 본 발명의 실시예들에 따른 시스템 온 칩을 전자 기기에 응용한 예를 나타내는 블록도이다.
도 16은 도 15의 전자 기기에서 사용되는 인터페이스의 일 예를 나타내는 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로를 나타내는 도면이다.
도 1을 참조하면, 레지스터 슬라이싱 회로(500)는 제1 레지스터 회로(100), 제2 레지스터 회로(200), 순방향(forward) 채널(10) 및 역방향(backward) 채널(20)을 포함한다.
제1 레지스터 회로(100)와 제2 레지스터 회로(200)는 마스터 지능 소자(master IP)들 또는 마스터 장치들로부터 발생된 리퀘스트들을 슬레이브 지능 소자(slave IP) 또는 슬레이브 장치에게 전달하기 위하여 상기 리퀘스트들을 각각 순차적으로 저장하고 출력한다. 순방향 채널(10)은 제1 레지스터 회로(100)로부터의 제1 리퀘스트(FRQ)를 제2 레지스터 회로(200)로 전송하기 위한 채널이고, 역방향 채널(20)은 제2 레지스터 회로(200)로부터의 제2 리퀘스트(BRQ)를 제1 레지스터 회로(100)로 반송하기 위한 채널이다.
최근 휴대용 기기를 이용한 무선 인터넷, 방송, 멀티미디어 등의 고성능 애플리케이션을 지원하기 위하여 시스템 온 칩(SOC: system on chip) 내부의 온 칩 버스(on-chip bus) 또는 상호접속 장치(interconnect device)의 동작 주파수는 계속 증가하고 있다. 많은 장치들이 시스템 온 칩에 집적됨에 따라서 설계 마진이 감소하고 타이밍 클로저(timing closure)를 위한 네트워크 노드들 또는 슬라이싱 노드들 사이의 거리가 증가할 수 있다. 비교적 장거리의 네트워크 노드들 사이에서는 신호 전송의 시간이 증가하고 이는 결과적으로 상호접속 장치의 동작 주파수를 증가하는데 제약이 된다. 이러한 문제를 해결하기 위하여 AXI(advanced extensible interface) 프로토콜 또는 오픈 코어 프로토콜(OCP: open core protocol)은 상호접속 장치 내의 장거리 네트워크 노드들 사이에 레지스터 슬라이스(register slice) 또는 레지스터 포인트(register point)를 삽입할 수 있도록 규정하고 있다.
도 1의 레지스터 슬라이싱 회로(500)는 이러한 프로토콜들에 따른 레지스터 슬라이싱을 위한 것으로서 도 11에 도시된 바와 같이 상호접속 장치(800) 내의 임의의 경로에 삽입될 수 있다. 예를 들어, 레지스터 슬라이싱 회로(500)는 마스터 인터페이스들과 슬레이브 인터페이스들 사이의 채널들 중에서 타임 크리티컬(time-critical)한 부분에 삽입될 수 있다.
일반적으로 종래의 레지스터 슬라이싱 회로는 마스터 장치로부터 슬레이브 장치로의 리퀘스트 전달을 위한 순방향 채널만을 포함한다. 이 경우, 하나의 레지스터 회로가 저장 가능한 최대 개수의 리퀘스트들을 저장하고 있는 이슈-풀 상태(issue-full state)에 있는 경우에는 전단의 레지스터 회로에 저장된 긴급 리퀘스트는 후단의 레지스터 회로로 전달될 수 없으므로 긴급 리퀘스트의 플로우 촉진이 저해된다. 이를 해결하기 위하여 해당 링크의 선순위의 노말 리퀘스트들의 플로우를 촉진하는 방법을 사용할 수 있다. 그러나 이 경우에는 상기 해당 링크의 과도한 리퀘스트 플로우로 인하여 다른 링크들의 기근(starvation)을 초래할 수 있다. 또한 하나의 네트워크 노드에서 리퀘스트들을 우선순위(priority)별로 저장하는 복수의 리퀘스트 버퍼들을 구비하고 우선순위가 높은 리퀘스트들을 우선적으로 전달하는 방법이 있다. 그러나 이 경우에는 많은 리퀘스트 버퍼들이 필요하기 때문에 게이트 카운트 오버헤드(gate count overhead)가 증가한다.
본 발명의 실시예들에 따른 레지스터 슬라이싱 회로(500)는 역방향 채널(20)을 구비하여 후술하는 노드간 스와핑 동작(inter-node swapping operation)을 수행함으로써 후단의 제2 레지스터 회로(200)가 이슈-풀 상태에 있는 경우에도 전단의 제1 레지스터 회로(100)의 긴급 리퀘스트를 제2 레지스터 회로(200)로 전달할 수 있다.
일 실시예에서, 제2 리퀘스트(BRQ)를 반송하기 위한 역방향 채널(20)의 전송 라인들의 개수(N)는 제1 리퀘스트(FRQ)를 전송하기 위한 순방향 채널(10)의 전송 라인들의 개수(M)보다 작을 수 있다. 이 경우, 상기 노드간 스와핑 동작의 시간이 증가할 수 있으며, 역방향 채널(20)의 전송 라인들의 개수(N)는 설계 마진과 노드간 스와핑 동작의 시간을 고려하여 적절한 개수로 결정될 수 있다.
결과적으로, 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로(500)는 적절한 개수의 전송 라인들로 구현되는 역방향 채널(20)을 이용하여 노드간 스와핑 동작을 수행함으로써, 긴급 리퀘스트의 플로우를 효율적으로 촉진할 수 있다.
도 1에는 편의상 2개의 레지스터 회로들(100, 200)만 도시하였으나, 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로는 3개 이상의 레지스터 회로들을 포함할 수도 있다. 예를 들어, 제1 레지스터 회로(100)는 순방향 채널(11) 및 역방향 채널(21)을 통하여 그 전단의 레지스터 회로(미도시)와 노드간 스와핑 동작을 수행할 수도 있고, 제2 레지스터 회로(200)는 순방향 채널(12) 및 역방향 채널(22)을 통하여 그 후단의 레지스터 회로(미도시)와 노드간 스와핑 동작을 수행할 수도 있다.
도 2는 본 발명의 일 실시예에 따른 레지스터 슬라이싱 회로를 나타내는 블록도이다.
도 2를 참조하면, 레지스터 슬라이싱 회로(500a)는 전술한 바와 같은 제1 레지스터 회로(100), 제2 레지스터 회로(200), 순방향 채널(10) 및 역방향 채널(20)을 포함하고, 제1 레지스터 회로(100) 및 제2 레지스터 회로(200)는 리퀘스트 버퍼들(120, 220), 반송 버퍼(BB)들(140, 240), 제어부(CTRL)들(160, 260)을 각각 포함할 수 있다.
리퀘스트 버퍼들(120, 220)은 전단으로부터 전달된 리퀘스트들을 저장하고, 반송 버퍼들(140, 240)은 노드간 스와핑 동작시 후단으로 전송될 리퀘스트들을 임시 저장한다. 제어부들(160, 260)은 리퀘스트 버퍼들(120, 220) 및 반송 버퍼들(140, 240)을 각각 제어한다.
전술한 바와 같이, 제1 레지스터 회로(100)는 반송 버퍼(140) 및 역방향 채널(21)을 이용하여 그 전단의 레지스터 회로(미도시)와 노드간 스와핑 동작을 수행할 수 있다. 만약 제1 레지스터 회로(100)가 그 전단의 레지스터 회로와 노드간 스와핑 동작을 수행하지 않는 경우에는 도 2에 도시된 반송 버퍼(140) 및 이에 연결된 역방향 채널(21)은 생략될 수 있다.
마찬가지로 제2 레지스터 회로(200)는 역방향 채널(22)을 이용하여 그 후단의 레지스터 회로(미도시)와 노드간 스와핑 동작을 수행할 수 있다. 만약 제2 레지스터 회로(200)가 그 후단의 레지스터 회로와 노드간 스와핑 동작을 수행하지 않는 경우에는 도 2에 도시된 역방향 채널(22)은 생략될 수 있다. 이하에서는 제1 레지스터 회로(100)와 제2 레지스터 회로(200) 사이의 노드간 스와핑 동작을 설명하고, 제1 레지스터 회로(100)와 그 전단의 레지스터 회로 사이의 노드간 스와핑 동작 및 제2 레지스터 회로(200)와 그 후단의 레지스터 회로 사이의 노드간 스와핑 동작의 경우도 동일한 설명이 적용될 수 있다.
제1 리퀘스트 버퍼(120)는 복수의 저장 유닛들(101~106)을 포함할 수 있고 제2 리퀘스트 버퍼(220)는 복수의 저장 유닛들(201~206)을 포함할 수 있다. 도 2에는 설명의 편의상 제1 리퀘스트 버퍼(120) 및 제2 리퀘스트 버퍼(220)가 각각 6개의 저장 유닛들을 포함하는 예를 도시하였으나, 저장 유닛들의 개수는 다양하게 변형될 수 있다. 제1 리퀘스트 버퍼(120) 및 제2 리퀘스트 버퍼(220)는 동일한 개수의 저장 유닛들을 포함할 수도 있고, 서로 다른 개수의 저장 유닛들을 포함할 수도 있다.
리퀘스트 버퍼들(120, 220)은 기본적으로 시프트 레지스터와 유사한 시프팅 동작 및 선입선출(FIFO: first-in first-out) 방식의 입출력 동작을 수행할 수 있다.
제1 리퀘스트 버퍼(120)는 그 전단으로부터 전송되는 리퀘스트들을 제1 저장 유닛(101)부터 제6 저장 유닛(106)까지 순차적으로 저장한다. 마지막 저장 유닛(106)에 리퀘스트가 저장되면 제어부(160)는 이슈-풀(issue-full) 상태를 나타내는 풀 카운트 신호(FC1)를 활성화한다. 풀 카운트 신호(FC1)는 제1 레지스터 회로(100)의 전단으로 전달되어 제1 리퀘스트 버퍼(120)의 점유 상태를 제공할 수 있다. 제1 리퀘스트 버퍼(120)는 제1 저장 유닛(101)에 저장된 리퀘스트를 순방향 채널(10)을 통하여 제1 리퀘스트(FRQ)로서 제2 레지스터 회로(200)로 전송할 수 있다. 하나의 리퀘스트가 제2 레지스터 회로(200)로 전송될 때마다 후순위로 저장된 리퀘스트들이 한 단계씩 시프팅될 수 있다. 즉, 제2 저장 유닛(102)에 저장된 리퀘스트가 제1 저장 유닛(101)으로 이동하고, 제3 저장 유닛(103)에 저장된 리퀘스트가 제2 저장 유닛(102)으로 이동하는 방식으로 시프팅 동작이 수행될 수 있다. 이러한 시프팅 동작에 의해 먼저 입력된 리퀘스트가 먼저 출력되는 선입선출 방식의 입출력이 수행될 수 있다.
전술한 시프팅 동작 및 선입선출 방식의 입출력은 후술하는 노드내 스와핑 동작(in-node swapping operation) 및 노드간 스와핑 동작(inter-node swapping operation)의 경우에는 제한될 수 있다. 도 5a 내지 도 5e를 참조하여 후술하는 바와 같이 노드간 스와핑 동작의 경우에는 제2 레지스터 회로(200)로부터 반송된 제2 리퀘스트(BRQ)가 제1 저장 유닛(101)에 저장되므로 제1 리퀘스트 버퍼(120)의 시프팅 동작이 제한될 수 있다. 한편, 도 7을 참조하여 후술하는 바와 같이 노드내 스와핑 동작에 의하여 후순위로 저장된 긴급 리퀘스트가 선순위로 저장된 노말 리퀘스트보다 먼저 출력되도록 저장 순서가 스와핑될 수 있다.
제2 레지스터 버퍼(220)는 그 전단의 제1 레지스터 회로(100)로부터 전송되는 제1 리퀘스트(FRQ)를 제1 저장 유닛(201)부터 제6 저장 유닛(206)까지 순차적으로 저장하고, 마지막 저장 유닛(206)에 리퀘스트가 저장되면 제어부(260)는 이슈-풀 상태를 나타내는 풀 카운트 신호(FC2)를 활성화한다. 풀 카운트 신호(FC2)는 제1 레지스터 회로(100)로 전달되어 제2 리퀘스트 버퍼(220)의 점유 상태를 제공할 수 있다.
제1 레지스터 회로(100) 및 제2 레지스터 회로(200)는, 제1 리퀘스트(FRQ)와 제2 리퀘스트(BRQ)를 교환하는 노드간 스와핑 동작을 수행할 수 있다. 이러한 노드간 스와핑 동작은 제2 레지스터 회로(200)가 저장 가능한 최대 개수의 리퀘스트들을 저장하고 있는 이슈-풀 상태(issue-full state)이고 제1 리퀘스트(FRQ)가 긴급 리퀘스트에 해당하는 경우에 수행될 수 있다. 노드간 스와핑 동작을 위하여 제2 리퀘스트 버퍼(220)의 마지막 저장 유닛, 즉 제6 저장 유닛(206)에 저장된 리퀘스트가 반송 버퍼(240)로 옮겨지고 제1 레지스터 회로(100)로부터 전송된 제1 리퀘스트(FRQ)가 제6 저장 유닛(206)에 저장될 수 있다. 반송 버퍼(240)에 저장된 리퀘스트는 역방향 채널(20)을 통하여 제2 리퀘스트(BRQ)로서 반송되어 제1 리퀘스트 버퍼(120)의 제1 저장 유닛(101)에 저장될 수 있다.
도 3은 본 발명의 실시예들에 따른 슬라이싱 회로에 저장되는 리퀘스트의 구조의 일 예를 나타내는 도면이다.
도 3을 참조하면, 리퀘스트 버퍼들(120, 220)에 저장되고 순방향 채널(10)을 통하여 전송되는 리퀘스트(RQ)는 리퀘스트(RQ)를 발생한 마스터 지능 소자를 나타내는 마스터 식별자(MID), 복수의 리퀘스트들을 구별하기 위한 리퀘스트 식별자(AxID), 리퀘스트(RQ)의 내용을 나타내는 어드레스-코맨드(ADD-COM), 리퀘스트(RQ)의 우선순위(AxQ) 및 긴급 플래그(UP)를 포함할 수 있다.
긴급 플래그(UP)는 리퀘스트(RQ)에 상응하는 서비스의 긴급 여부를 나타내고, 리퀘스트(RQ)는 긴급 플래그가 제1 값(예를 들어, "1")을 갖는 긴급 리퀘스트 또는 제2 값(예를 들어, "0")을 갖는 노말 리퀘스트로 구분될 수 있다. 긴급 플래그는 긴급 여부만을 나타내는 하나의 비트일 수도 있고, 긴급한 정도를 표현할 수 있도록 복수의 비트들을 포함할 수도 있다.
리퀘스트 식별자(AxID)는 일정한 관련성이 있는 리퀘스트들의 그룹을 나타낼 수 있다. 예를 들어 상기 일정한 관련성은 상기 그룹에 속하는 리퀘스트들의 상호간의 서비스 순서의 제한일 수 있다. 서비스 순서의 제한은 마스터 지능 소자로부터 먼저 이슈된 리퀘스트에 대한 서비스가 나중에 이슈된 리퀘스트에 대한 서비스보다 먼저 제공되어야 하는 제한일 수 있다. 도 10a 내지 도 10f를 참조하여 설명하는 순서 의존 플래그(OD)는 리퀘스트 식별자(AxID)에 기초한 값일 수 있다.
도 4a 및 도 4b는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 일반적인 노드간 전송을 설명하기 위한 도면이다.
도 4a 및 도 4b에는 편의상 제1 리퀘스트 버퍼(120)의 일부의 저장 유닛들(101, 102, 103), 제2 리퀘스트 버퍼(220)의 일부의 저장 유닛들(204, 205, 206) 및 반송 버퍼(240)에 대한 리퀘스트들의 저장 상태가 도시되어 있다. 도 4a 및 도 4b에서 EMT는 리퀘스트가 저장되지 않은 빈 상태(empty state) 또는 비점유 상태(non-occupied state)를 나타낸다.
도 4a는 노드간 전송 전의 리퀘스트 버퍼들(120, 220) 및 반송 버퍼(240)의 상태를 나타내고, 도 4b는 노드간 전송 후의 리퀘스트 버퍼들(120, 220) 및 반송 버퍼(240)의 상태를 나타낸다. 도 4a에 도시된 바와 같이 제2 리퀘스트 버퍼(220)의 제6 저장 유닛(206)이 비점유 상태이므로 제2 리퀘스트 버퍼(220)는 이슈-풀 상태가 아니다.
이슈-풀 상태가 아닌 경우에는 노드간 스와핑 동작이 수행될 필요가 없으며, 따라서 일반적인 노드간 전송이 수행되어 제1 리퀘스트 버퍼(120)의 제1 저장 유닛(101)에 저장된 리퀘스트(RQ3)가 순방향 채널(10)을 통하여 전송되고 제2 리퀘스트 버퍼(220)의 제6 저장 유닛(206)에 저장된다. 하나의 리퀘스트(RQ3)가 출력됨에 따라서 제1 리퀘스트 버퍼(120)의 시프팅 동작이 수행되고 후순위의 리퀘스트들(RQ4, RQ5, RQ6)이 한 단계씩 순방향으로 전진한다.
이러한 일반적인 노드간 전송은 전송되는 리퀘스트(RQ3)가 긴급 리퀘스트인 경우 및 노말 리퀘스트인 경우에 대하여 동일하게 수행된다. 일반적인 노드간 전송의 경우에는 반송 버퍼(240) 및 역방향 채널(20)은 아무런 역할을 하지 않고 비활성화된 상태를 유지한다.
도 5a 내지 도 5e는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드간 스와핑 동작을 설명하기 위한 도면이다.
도 5a 내지 도 5e에는 편의상 제1 리퀘스트 버퍼(120)의 일부의 저장 유닛들(101, 102, 103), 제2 리퀘스트 버퍼(220)의 일부의 저장 유닛들(204, 205, 206) 및 반송 버퍼(240)에 대한 리퀘스트들의 저장 상태가 도시되어 있다. 도 5a 내지 도 5e에서 EMT는 리퀘스트 또는 리퀘스트의 세그먼트가 저장되지 않은 빈 상태 또는 비점유 상태를 나타낸다. 하나의 리퀘스트(RQ4)만이 긴급 리퀘스트에 해당하고 나머지 리퀘스트들(RQ1, RQ2, RQ3, RQ5, RQ6)은 노말 리퀘스트에 해당한다고 가정한다.
도 5a 내지 도 5e는 일정한 시간 간격으로 순차적으로 변화되는 리퀘스트 버퍼들(120, 220) 및 반송 버퍼(240)의 상태를 나타낸다. 예를 들어, 상기 일정한 시간 간격은 레지스터 슬라이싱 회로(500)의 동작 클록 신호의 주기에 해당할 수 있다.
도 5a를 참조하면, 노드간 스와핑 동작은 도 2의 제2 레지스터 회로(200)에 포함된 제2 리퀘스트 버퍼(220)가 저장 가능한 최대 개수의 상기 리퀘스트들을 저장하고 있는 이슈-풀 상태이고 전술한 제1 리퀘스트(FRQ)에 해당하는 리퀘스트(RQ4)가 긴급 리퀘스트인 경우에 수행된다.
도 5b를 참조하면, 제2 리퀘스트 버퍼(220)의 제6 저장 유닛(206)에 저장되어 있던 노말 리퀘스트(RQ3)가 반송 버퍼(240)로 옮겨지고 순방향 채널(10)을 통하여 전송된 긴급 리퀘스트(RQ4)가 제2 리퀘스트 버퍼(220)의 제6 저장 유닛(206)에 저장된다. 노드간 스와핑 동작시에는 하나의 리퀘스트(RQ4)가 출력되더라도 제1 리퀘스트 버퍼(120)는 시프팅 동작을 수행하지 않고 제1 저장 유닛(101)은 비점유 상태를 유지한다.
도 5c, 도 5d 및 도 5e에 도시된 바와 같이, 도 2의 제2 레지스터 회로(200)는 전술한 제2 리퀘스트(BRQ)에 해당하는 리퀘스트(RQ3)를 복수의 세그먼트들(RQ3a, RQ3b, RQ3c)로 분할하고, 세그먼트들(RQ3a, RQ3b, RQ3c)을 역방향 채널(20)을 통하여 복수 회에 걸쳐 순차적으로 제1 레지스터 회로(100)로 반송할 수 있다. 리퀘스트(RQ3)의 분할 및 반송은 반송 버퍼(240)를 이용하여 수행될 수 있다. 도 5c, 도 5d 및 도 5e에는 하나의 리퀘스트(RQ3)가 3개의 세그먼트들(RQ3a, RQ3b, RQ3c)로 분할되어 전송되는 예를 도시하였으나, 분할되는 세그먼트들의 개수는 역방향 채널(20)의 전송 라인들의 개수와 관계하여 다양하게 조절될 수 있다. 노드간 스와핑 동작시 이러한 분할 반송을 채용함으로써 역방향 채널(20)의 전송 라인들의 개수를 감소시키고 설계 부담을 경감할 수 있다.
한편, 도 5c, 도 5d 및 도 5e에는 제1 리퀘스트 버퍼(120)로부터 제2 리퀘스트 버퍼(220)로 전송된 긴급 리퀘스트(RQ4)가 제2 리퀘스트 버퍼(220) 내에서 선순위의 노말 리퀘스트들(RQ2, RQ1, RQ0)과 순차적으로 스와핑되는 것이 도시되어 있다. 이러한 노드내 스와핑 동작에 대해서는 도 7을 참조하여 후술하기로 한다.
도 6a 및 도 6b는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드간 스와핑 동작의 취소를 설명하기 위한 도면이다.
도 6a 및 도 6b에는 편의상 제1 리퀘스트 버퍼(120)의 일부의 저장 유닛들(101, 102, 103), 제2 리퀘스트 버퍼(220)의 일부의 저장 유닛들(204, 205, 206) 및 반송 버퍼(240)에 대한 리퀘스트들의 저장 상태가 도시되어 있다. 도 6a 및 도 6b에서 EMT는 리퀘스트 또는 리퀘스트의 세그먼트가 저장되지 않은 빈 상태 또는 비점유 상태를 나타낸다. 하나의 리퀘스트(RQ4)만이 긴급 리퀘스트에 해당하고 나머지 리퀘스트들(RQ2, RQ3, RQ5, RQ6)은 노말 리퀘스트에 해당한다고 가정한다.
제1 레지스터 회로(100) 및 제2 레지스터 회로(200)는, 노드간 스와핑 동작이 완료되기 전에 제2 레지스터 회로(200)의 이슈-풀 상태가 해제된 경우에 노드간 스와핑 동작을 취소할 수 있다.
도 6a를 참조하면, 세그먼트들(RQ3a, RQ3b, RQ3c)의 역방향 채널(20)을 통한 반송이 완료되기 전에 제2 리퀘스트 버퍼(200)의 시프팅 동작이 수행되어 제6 저장 유닛(206)이 비점유 상태가 될 수 있다. 이 경우에는 제2 리퀘스트(BRQ)에 해당하는 노말 리퀘스트(RQ3)의 반송을 끝까지 수행한 후에 다시 일반적인 노드간 전송을 수행하여 제2 리퀘스트 버퍼(220)로 재전송하는 것은 비효율적일 수 있다.
도 6b를 참조하면, 노드간 스와핑 동작의 취소에 의해, 제1 리퀘스트 버퍼(120)에 이미 반송되어 저장된 일부 세그먼트(RQ3a)는 무시되고 제1 리퀘스트 버퍼(120)는 시프팅 동작을 수행하여 후순위의 리퀘스트들(RQ5, RQ6, RQ7)이 한 단계씩 전진한다. 동시에 반송 버퍼(240)에 임시 저장된 리퀘스트(RQ3)는 비점유 상태가 된 제2 리퀘스트 버퍼(220)의 제6 저장 유닛(206)으로 다시 복원된다.
도 7은 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드내 스와핑 동작을 위한 제1 콘트롤 로직의 일 예를 나타내는 도면이다.
도 7에는 전술한 바와 같이 복수의 저장 유닛들(101~106)을 포함하는 제1 리퀘스트 버퍼(120)와 노드내 스와핑 동작을 위한 제1 콘트롤 로직(162)이 함께 도시되어 있다. 제1 콘트롤 로직(162)은 도 2에서 전술한 제어부(160)에 포함될 수 있다. 제1 콘트롤 로직(162)은 저장 유닛들(101~106)에 저장된 리퀘스트들(RQ1~RQ6)의 긴급 플래그들(UP1~UP6)에 기초하여 스와핑 신호들(SW1~SW5)을 발생할 수 있다.
제1 로직 게이트(G1)는 제1 인에이블 신호(EN1)에 응답하여 인에이블되어 제1 긴급 플래그(UP1)와 제2 긴급 플래그(UP2)를 비교한다. 제1 로직 게이트(G1)는 제1 긴급 플래그(UP1)가 노말 리퀘스트를 나타내는 제2 값(예를 들어, "0")을 갖고 제2 긴급 플래그(UP2)가 긴급 리퀘스트를 나타내는 제1 값(예를 들어, "1")을 갖는 경우에만 제1 스와핑 신호(SW1)를 활성화할 수 있다. 제1 스와핑 신호(SW1)가 활성화된 경우 제어부(160)는 제1 저장 유닛에 저장된 리퀘스트(RQ1)와 제2 저장 유닛에 저장된 리퀘스트(RQ2)를 서로 바꾸어 저장하는 스와핑을 수행한다. 이와 같은 방식으로, 제3 로직 게이트(G3)에 의해 발생되는 제3 스와핑 신호(SW3)에 응답하여 제3 저장 유닛(103)에 저장된 리퀘스트(RQ3)와 제4 저장 유닛(104)에 저장된 리퀘스트(RQ4)에 대한 스와핑이 수행되고, 제5 로직 게이트(G5)에 의해 발생되는 제5 스와핑 신호(SW5)에 응답하여 제5 저장 유닛(105)에 저장된 리퀘스트(RQ5)와 제6 저장 유닛(106)에 저장된 리퀘스트(RQ6)에 대한 스와핑이 수행될 수 있다.
제2 로직 게이트(G2)는 제2 인에이블 신호(EN2)에 응답하여 인에이블되어 제2 긴급 플래그(UP2)와 제3 긴급 플래그(UP3)를 비교한다. 제2 로직 게이트(G2)는 제2 긴급 플래그(UP2)가 노말 리퀘스트를 나타내는 제2 값(예를 들어, "0")을 갖고 제3 긴급 플래그(UP3)가 긴급 리퀘스트를 나타내는 제1 값(예를 들어, "1")을 갖는 경우에만 제2 스와핑 신호(SW2)를 활성화할 수 있다. 제2 스와핑 신호(SW2)가 활성화된 경우 제어부(160)는 제2 저장 유닛에 저장된 리퀘스트(RQ2)와 제3 저장 유닛에 저장된 리퀘스트(RQ3)를 서로 바꾸어 저장하는 스와핑을 수행한다. 이와 같은 방식으로, 제4 로직 게이트(G4)에 의해 발생되는 제4 스와핑 신호(SW4)에 응답하여 제4 저장 유닛(104)에 저장된 리퀘스트(RQ4)와 제5 저장 유닛(105)에 저장된 리퀘스트(RQ5)에 대한 스와핑이 수행될 수 있다.
인접한 로직 게이트들이 동시에 인에이블되는 경우에는 중앙에 위치하는 하나의 리퀘스트가 동시에 두 개의 스와핑에 참여하게 되어 동작 오류가 발생할 수 있다. 이를 방지하기 위하여 제1 인에이블 신호(EN1)와 제2 인에이블 신호(EN2)는 상보적으로 활성화될 수 있다.
도 8a 및 도 8b는 도 7의 제1 콘트롤 로직의 인에이블 신호들의 예들을 나타내는 도면들이다.
도 8a에는 제1 인에이블 신호(EN1) 및 제2 인에이블 신호(EN2)가 각각 클록 신호(CLK)와 같은 주기로 활성화되는 예가 도시되어 있고, 도 8b에는 제1 인에이블 신호(EN1) 및 제2 인에이블 신호(EN2)가 각각 클록 신호(CLK)의 두배의 주기로 활성화되는 예가 도시되어 있다. 이와 같은 방식으로 노드내 스와핑 동작의 주기를 적절하게 조절할 수 있다.
도 8a 및 도 8b의 양자 모두에 대하여 제1 인에이블 신호(EN1)와 제2 인에이블 신호(EN2)는 상보적으로 활성화된다. 결과적으로 제1, 제3 및 제5 로직 게이트들(G1, G3, G5)에 의한 스와핑 동작과 제2 및 제4 로직 게이트들(G2, G4)에 의한 스와핑 동작이 교호적으로 수행됨으로써 스와핑 동작의 오류가 방지될 수 있다.
도 7을 참조하여 제1 레지스터 회로(100)의 노드내 스와핑 동작을 설명하였으나, 동일한 방식으로 제2 레지스터 회로(200)의 노드내 스와핑 동작이 수행될 수 있다.
이와 같이, 제1 레지스터 회로(100) 및 제2 레지스터 회로(200)는, 긴급 플래그들(UP1~UP6)에 기초하여 각각의 내부에 인접하여 저장된 두개의 리퀘스트들 중에서 후순위로 저장된 상기 긴급 리퀘스트와 선순위로 저장된 상기 노말 리퀘스트를 서로 바꾸어 저장하는 노드내 스와핑 동작(in-node swapping operation)을 수행할 수 있다.
도 9는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드간 스와핑 동작을 위한 제2 콘트롤 로직의 일 예를 나타내는 도면이다.
제2 콘트롤 로직(164)은 도 2에서 전술한 제1 레지스터 회로(100)의 제어부(160)에 포함될 수 있다. 제2 콘트롤 로직(164)은 제1 긴급 플래그(UP1) 및 제2 풀 카운트 신호(FC2)에 기초하여 노드간 스와핑 신호(INTSW)를 발생하는 로직 게이트(LG)로 구현될 수 있다. 제1 긴급 플래그(UP1)는 제1 리퀘스트 버퍼(120)의 제1 저장 유닛(101)에 저장된 리퀘스트, 즉 전술한 제1 리퀘스트(FRQ)에 포함되는 긴급 플래그이다. 제2 풀 카운트 신호(FC2)는 제2 레지스터 회로(200)로부터 제공되고 제2 레지스터 회로(200)의 이슈-풀 상태를 나타낸다. 제2 콘트롤 로직(164)은 제1 긴급 플래그(UP1)가 긴급 리퀘스트임을 나타내는 제1 값을 갖고 제2 풀 카운트 신호(FC2)가 활성화된 경우에만 노드간 스와핑 신호(INTSW)를 활성화할 수 있다. 노드간 스와핑 신호(INTSW)는 제1 레지스터 회로(100)로부터 제2 레지스터 회로(200)로 제공될 수 있고, 제1 레지스터 회로(100) 및 제2 레지스터 회로(200)는 노드간 스와핑 신호(INTSW)에 응답하여 전술한 노드간 스와핑 동작을 수행할 수 있다.
도 10a 내지 도 10f는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로의 노드내 스와핑 동작 시퀀스의 일 예를 나타내는 도면들이다.
도 10a 내지 도 10f에는 시간 Ta 내지 Tf에서의 제1 리퀘스트 버퍼(120)의 리퀘스트 저장 상태들이 각각 도시되어 있다. 인접한 시간들 사이의 간격, 예를 들어 시간 Ta 와 Tb의 간격 또는 Tb와 Tc의 간격은 스와핑 주기에 해당될 수 있다. OD는 전술한 순서 의존 플래그이고 UP는 전술한 긴급 플래그를 나타낸다. U는 긴급 리퀘스트임을 나타내고 N은 노말 리퀘스트임을 나타낸다. 도 10a 내지 도 10f에 도시된 바와 같이, RQ3과 RQ6이 상호간의 서비스 순서가 제한되는 리퀘스트들이고, RQ2와 RQ6이 긴급 리퀘스트들이라 가정한다.
도 10a 및 도 10b를 참조하면, 긴급 리퀘스트에 해당하는 RQ6 및 RQ2가 선순위의 노말 리퀘스트인 RQ1 및 RQ5와 각각 스와핑된다. 도 10b 및 도 10c를 참조하면, 긴급 리퀘스트에 해당하는 RQ6가 선순위의 노말 리퀘스트인 RQ4와 스와핑된다. 이 때 긴급 리퀘스트인 RQ2는 제1 저장 유닛(101)에 위치하므로 노드내 스와핑 동작에 의해서는 전진할 수 없는 상태에 있다. 이 경우 전술한 노드간 스와핑 동작을 수행함으로써 RQ2는 후단의 제2 레지스터 회로(200)로 전송될 수 있다. 도 10c에 도시된 바와 같이, RQ3는 선순위의 노말 리퀘스트이고 RQ6는 후순위의 긴급 리퀘스트이므로 스와핑이 수행되어야 하지만 서비스 순서 제한에 의해 스와핑이 금지된다. 이 경우 긴급 리퀘스트인 RQ6의 플로우를 촉진하는 것이 저해되므로 도 10d에 도시된 바와 같이 RQ3의 긴급 플래그를 노말 리퀘스트를 나타내는 제2 값(N)에서 긴급 리퀘스트를 나타내는 제1 값(U)으로 변경한다. 도 10d 및 도 10e를 참조하면, 긴급 리퀘스트로 변경된 RQ3가 선순위의 노말 리퀘스트인 RQ1과 스와핑된다. 도 10e 및 도 10f를 참조하면, 긴급 리퀘스트에 해당하는 RQ6가 선순위의 노말 리퀘스트인 RQ1과 스와핑된다.
도 10a 내지 도 10f를 참조하여 제1 레지스터 회로(100)의 노드내 스와핑 동작만을 설명하였으나, 동일한 방식으로 제2 레지스터 회로(200)의 노드내 스와핑 동작이 수행될 수 있다.
제1 레지스터 회로(100) 및 제2 레지스터 회로(200)의 각각은, 순서 의존 플래그들(OD)에 기초하여 리퀘스트들(RQ1~RQ6) 중에서 서비스 순서 제한이 적용되는 리퀘스트들의 그룹(RQ3, RQ6)을 판별하고, 그룹(RQ3, RQ6)이 후순위로 저장된 긴급 리퀘스트(RQ6)를 포함하는 경우 그룹(RQ3, RQ6)에 포함된 선순위로 저장된 노말 리퀘스트(RQ3)의 긴급 플래그(UP)를 노말 리퀘스트를 나타내는 제2 값(N)에서 긴급 리퀘스트를 나타내는 제1 값(U)으로 변경할 수 있다.
이와 같이, 리퀘스트들 상호간의 서비스 순서의 제한이 있는 경우 선순위의 노말 리퀘스트를 긴급 리퀘스트로 변경함으로써 긴급 리퀘스트의 플로우가 정체되는 것을 방지할 수 있다.
도 11은 본 발명의 실시예들에 따른 시스템 온 칩을 나타내는 도면이다.
도 11을 참조하면, 시스템 온 칩(1000)은 슬레이브(slave) 장치들(SLAVE1, SLAVE2, SLAVE3)(41, 42, 43), 마스터(master) 장치들(MASTER1, MASTER2, MASTER3, MASTER4)(31, 32, 33, 34) 및 상호접속 장치(interconnect device)(800)를 포함한다. 도 11에 도시된 마스터 장치들 및 슬레이브 장치들의 개수는 다양하게 변경될 수 있다.
복수의 마스터 장치들(31, 32, 33, 34)은 적어도 하나의 슬레이브 장치(41, 42, 43)에게 서비스를 요구하기 위한 리퀘스트들을 각각 발생한다. 마스터 장치들(31, 32, 33, 34)은 각각의 서비스 요구수준들을 나타내는 긴급 정보들 및/또는 우선순위 정보들을 실시간으로 발생할 수 있다.
슬레이브 장치들(41, 42, 43) 및 마스터 장치들(31, 32, 33, 34)은 각각의 채널(channel)을 통하여 상호접속 장치(800)에 연결된다. 상호접속 장치(800)는 우선순위 정보들에 기초하여 상기 리퀘스트들의 중재 동작을 수행하고 긴급 정보들에 기초하여 마스터 장치들(31, 32, 33, 34)과 슬레이브 장치들(41, 42, 43) 사이의 리퀘스트 플로우를 제어한다.
상호 접속 장치(800)는 슬레이브 장치들(41, 42, 43) 및 마스터 장치들(31, 32, 33, 34) 사이의 리퀘스트 경로 상에 배치되는 도 1 내지 도 10f를 참조하여 설명한 바와 같은 적어도 하나의 레지스터 슬라이싱 회로(500)를 포함할 수 있다. 동일 또는 유사한 구성을 갖는 복수의 레지스터 슬라이싱 회로들이 상호접속 장치(800)에 포함될 수 있다.
전술한 바와 같이 슬라이싱 회로(500)는 노드내 스와핑 동작 및 역방향 채널을 이용한 노드간 스와핑 동작을 통하여 레지스터 슬라이싱이 요구되는 장거리의 네트워크 노드들 사이에서도 긴급 리퀘스트의 플로우를 효율적으로 촉진할 수 있다. 한편, 리퀘스트들 상호간의 서비스 순서의 제한이 있는 경우 선순위의 노말 리퀘스트를 긴급 리퀘스트로 변경함으로써 긴급 리퀘스트의 플로우가 정체되는 것을 방지할 수 있다.
도 12는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로가 적용된 상호접속 장치의 일 예를 나타내는 도면이다.
도 12를 참조하면, 상호접속 장치(800a)는 복수의 마스터 지능 소자들로부터 발생된 리퀘스트 시퀀스들(REQ1, REQ2, REQ3, REQ4)을 공통의 슬레이브 지능 소자에게 전달하기 위한 다중 계층 구조(multi-layered architecture)를 가질 수 있다.
복수의 리퀘스트 시퀀스들이 수렴하는 중재 포인트들(arbitration points)(ABT1, ABT2)에는 중재 회로들(arbiter circuits)이 배치될 수 있다. 중재 회로는 경합하는 리퀘스트들의 우선순위들 및/또는 긴급 플래그들에 기초하여 선택된 리퀘스트를 하나씩 후단으로 전송할 수 있다. 또한 타이밍 클로저를 위하여 상호접속 장치(800a) 내의 적절한 위치에 레지스터 슬라이싱 노드들(RG1~RG6)이 설정될 수 있다. 슬라이싱 노드들(RG1~RG6)의 각각은 다중 아웃스탠딩 리퀘스트들(multiple outstanding)을 지원하기 위한 구성을 가질 수 있다. 예를 들어 슬라이싱 노드들(RG1~RG6)에는 전술한 바와 같이 복수의 리퀘스트들을 저장하고 제어하는 레지스터 회로(100)가 배치될 수 있다.
슬라이싱 노드들(RG1~RG6)은 각각 전술한 바와 같은 노드내 스와핑 동작을 수행할 수 있다. 또한 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로(500)는 순방향 채널(10)과 역방향 채널(20)을 통하여 연결된 슬라이싱 노드들(RG5, RG6)을 포함하고 전술한 바와 같은 노드간 스와핑 동작을 수행할 수 있다. 전술한 바와 같이, 역방향 채널(20)의 전송 라인들의 개수(N)는 순방향 채널(10)의 전송 라인들의 개수(M)보다 작을 수 있다. 이 경우 도 5a 내지 도 5e를 참조하여 설명한 바와 같이 역방향 채널(20)을 통하여 반송되는 리퀘스트(RQ3)는 후단의 슬라이싱 노드(RG6)에 의해 복수의 세그먼트들(RQ3a, RQ3b, RQ3c)로 분할하고, 세그먼트들(RQ3a, RQ3b, RQ3c)을 역방향 채널(20)을 통하여 복수 회에 걸쳐 순차적으로 전단의 슬라이싱 노드(RG5)로 반송할 수 있다.
이와 같이, 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로(500)를 이용하여 다른 링크의 리퀘스트 플로우를 과도하게 제한하지 않으면서 효율적으로 시스템의 전체 플로우를 조절할 수 있고, 역방향 채널의 전송 라인들의 개수를 적절히 설정하여 시스템 온 칩의 설계 부담을 감소할 수 있다.
마스터 장치 또는 마스터 지능 소자는 그 유형(type)에 따라서 하드 리얼타임 지능 소자(hard realtime IP), 소프트 리얼타임 지능 소자(soft realtime IP), 베스트 에포트 지능 소자(best effort IP) 등으로 구분될 수 있다.
하드 리얼타임 지능소자는 디스플레이 지능 소자와 같이 일정한 대역폭의 데이터를 꾸준히 사용하고 필요한 대역폭을 보장 받지 못하면, 데이터 버퍼의 언더런(underrun)이 발생하는 지능 소자이다. 이러한 지능 소자는 일정한 대역폭을 보장해주면 데이터 버퍼가 충분히 채워지고, 데이터를 소비하는 만큼만 리퀘스트를 발생시키면서 리퀘스트 플로우를 자체적으로 제어할 수 있다.
한편, 시스템의 제조비용을 줄이기 위해, 외부 모뎀 칩(external modem chip)이 시스템 온 칩의 메모리를 공유하는 방식을 사용될 수 있다. 이러한 외부 모뎀 칩은 평균 레이턴시 요구수준(average latency requirement)을 만족하지 못하면 오류가 생기는 특성을 가진다. 모뎀 칩의 경우에는 통신이 일어날 때에만 리퀘스트가 시스템 온 칩으로 들어오고, 모뎀 칩 종류도 다양하므로 모뎀 칩의 대역폭 요구수준을 파악하기는 곤란하다.
소프트 리얼타임 지능 소자는 비디오 코덱(CODEC)과 같이 프레임율(frame rate, 예를 들어, 30, 60 per sec)이 정해져 있고 프레임의 특성에 따라서 대역폭 요구량이 조금씩 다르면서 여러 개의 프레임 버퍼를 가지고 있어서 평균 디코드/인코드 시간을 보장 받아야 하는 지능 소자이다. 이러한 지능 소자는 리퀘스트 플로우를 제어해주지 않으면 되도록 빠른 시간에 디코드/인코드를 다음 프레임으로 넘어가려는 특성을 가지고 있지만 데이터 간에 의존성(dependency)이 있어서 한꺼번에 많은 리퀘스트를 내지 못하는 특성을 가지고 있다. 그래서 일정한 대역폭 및/또는 레이턴시를 보장받는 동안에는 동작 속도가 프레임율을 만족하지만 레이턴시가 임계치를 넘어가면 급격히 디코드/인코드 시간이 증가하여 동작 속도가 감소하는 특성을 가진다.
베스트 에포트 지능 소자는 2D, 3D 그래픽 엔진 (two-dimensional and/or three dimensional graphics engine) 또는 DMAC(direct memory access controller)와 같이 리퀘스트 플로우를 제어해주지 않으면 끊임없이 리퀘스트를 발생하는 지능 소자이다. 이러한 지능 소자는 플로우 제어를 반드시 해주어야만 한다. 높은 우선순위(high priority)의 지능 소자들이 긴급한 상황이 아니라면 되도록 리퀘스트 플로우를 제한하지 않고 메모리 콘트롤러와 같은 슬레이브 지능 소자가 감당 할 수 있는 만큼 최대한 서비스 해주는 것이 바람직하다. 그러나, 높은 우선순위의 지능 소자에서 긴급한 상황이 발생하면 슬레이브 지능 소자에 여유를 만들어 주는 수준까지 베스트 에포트 지능 소자의 리퀘스트를 제한해 주어야 높은 우선순위의 지능 소자가 긴급 상황에서 빠져 나올 수 있다.
한편, CPU와 같은 레이턴시 지향 지능 소자(latency oriented IP)는 요구하는 대역폭이 있는 것이 아니고 상황에 따라 대역폭 요구량은 많이 변하지만 평균 레이턴시에 따라서 성능에 직접적인 영향을 받는다. 이러한 지능 소자는 대역폭 요구량을 규정하기 힘들기 때문에 평균 레이턴시에 따라서 시스템의 서비스 우선권을 받아야 한다.
이러한 마스터 지능 소자들의 특성에 따라서 리퀘스트 플로우를 조절하기 위한 우선순위 정보 및/또는 긴급 정보가 적절한 방식으로 제공될 수 있다.
도 13은 본 발명의 실시예들에 따른 시스템 온 칩에 이용되는 긴급 정보의 일 예를 나타내는 도면이다.
도 13을 참조하면, 긴급 정보(UGNT)는 마스터 지능 소자를 나타내는 마스터 식별자(MID), 복수의 리퀘스트들을 구별하기 위한 리퀘스트 식별자(AxID) 및 긴급 플래그(UP)를 포함할 수 있다. 도 14를 참조하여 설명하는 바와 같이 긴급 정보(UGNT)는 리퀘스트 플로우와 독립적으로 상호접속 장치로 전파되어 상호접속 장치 내에 저장된 상기 긴급 정보(UGNT)에 상응하는 리퀘스트들의 긴급 플래그들(UP)을 실시간으로 갱신할 수 있다.
도 14는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로가 적용된 상호접속 장치의 일 예를 나타내는 도면이다.
도 14를 참조하면, 상호접속 장치(800b)는 적어도 하나의 중재 포인트(ABT) 및 복수의 슬라이싱 노드들(RG1, RG2, RG3, RG4)을 포함한다. 전술한 바와 같이, 상호접속 장치(800)는 본 발명의 실시예들에 따른 레지스터 슬라이싱 회로(500)를 포함할 수 있고, 레지스터 슬라이싱 회로(500)는 적절한 리퀘스트 경로 상에 배치될 수 있다.
도 13에서 설명한 바와 같이 긴급 정보들(UGNT1, UGNT2)은 상응하는 리퀘스트 시퀀스들(REQ1, REQ2)에 대한 서비스의 긴급 여부를 나타내고 리퀘스트 채널과 독립적으로 형성된 경로(15, 16)를 통하여 실시간으로 상호접속 장치(800b)로 전달될 수 있다. 이와 같은 긴급 정보들(UGNT1, UGNT2)에 기초하여 상호접속 장치(800b)의 후단에 위치한 슬라이싱 노드들(RG3, RG3)에 저장된 리퀘스트들의 긴급 플래그(UP)들의 값들이 실시간으로 갱신될 수 있다.
도 15는 본 발명의 실시예들에 따른 시스템 온 칩을 전자 기기에 응용한 예를 나타내는 블록도이다.
도 15를 참조하면, 전자 기기(2000)는 시스템 온 칩(1010), 메모리 장치(1020), 저장 장치(1030), 입출력 장치(1040), 파워 서플라이(1050) 및 이미지 센서(1060)를 포함할 수 있다. 한편, 도 30에는 도시되지 않았지만, 전자 기기(2000)는 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다.
예를 들어, 상기 지능 소자들은 메모리 콘트롤러(memory controller)(MC), 중앙 처리부(central processing unit), 디스플레이 콘트롤러(display controller)(DIS), 파일 시스템 블록(file system block)(FSYS), 그래픽 처리부(graphic processing unit)(GPU), 이미지 신호 프로세서(image signal processor)(ISP), 멀티 포맷 코덱 블록(multi-format codec block)(MFC) 등을 포함할 수 있다. 메모리 콘트롤러(MC)는 전술한 슬레이브 지능 소자들 중 하나에 해당하고 다른 지능 소자들 중 복수의 지능 소자들은 메모리 콘트롤러(MC)를 공통 자원으로 이용하는 마스터 지능 소자들에 해당한다. 도 15에 도시하지는 않았으나, 전술한 바와 같이 시스템 온 칩(1010)의 상호접속 장치(INT), 즉 온 칩 버스는 본 발명의 실시예들에 따른 적어도 하나의 레지스터 슬라이싱 회로를 포함할 수 있다.
시스템 온 칩(1010)은 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus)를 통하여 메모리 장치(1020), 저장 장치(1030), 입출력 장치(1040) 및 이미지 센서(2060)와 통신을 수행할 수 있다. 전술한 순방향 채널(10)과 역방향 채널(20)은 상기 어드레스 버스 및 제어 버스에 포함될 수 있다. 실시예에 따라, 시스템 온 칩(1010)은 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다.
메모리 장치(1020)는 전자 기기(2000)의 동작에 필요한 데이터 및 프로그램 코드를 저장할 수 있다. 예를 들어, 메모리 장치(1020)는 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 알램(RRAM) 및/또는 엠램(MRAM)으로 구현될 수 있다. 저장 장치(1030)는 솔리드 스테이트 드라이브(solid state drive), 하드 디스크 드라이브(hard disk drive), 씨디롬(CD-ROM) 등을 포함할 수 있다. 입출력 장치(1040)는 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터, 디스플레이 등과 같은 출력 수단을 포함할 수 있다. 파워 서플라이(1050)는 전자 기기(2000)의 동작에 필요한 동작 전압을 공급할 수 있다.
이미지 센서(1060)는 상기 버스들 또는 다른 통신 링크를 통해서 시스템 온 칩(1010)과 연결되어 통신을 수행할 수 있다. 이미지 센서(1060)는 시스템 온 칩(1010)과 함께 하나의 칩에 집적될 수도 있고, 서로 다른 칩에 각각 집적될 수도 있다.
도 15에 도시된 전자 기기(2000)의 구성 요소들의 적어도 일부는 다양한 형태들의 패키지로 구현될 수 있다. 예를 들어, 적어도 일부의 구성들은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 패키지들을 이용하여 실장될 수 있다.
한편, 전자 기기(2000)는 적어도 하나의 시스템 온 칩을 포함하는 모든 장치 및 시스템으로 해석되어야 할 것이다. 예를 들어, 전자 기기(2000)는 디지털 카메라, 이동 전화기, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 스마트폰 등을 포함할 수 있다.
도 16은 도 15의 전자 기기에서 사용되는 인터페이스의 일 예를 나타내는 블록도이다.
도 16을 참조하면, 전자 기기(1100)는 MIPI 인터페이스를 사용 또는 지원할 수 있는 데이터 처리 장치로 구현될 수 있고, 애플리케이션 프로세서 칩 형태의 시스템 온 칩(AP SOC)(1110), 이미지 센서(1140) 및 디스플레이(1150) 등을 포함할 수 있다.
시스템 온 칩(1110)의 CSI 호스트(1112)는 카메라 시리얼 인터페이스(Camera Serial Interface; CSI)를 통하여 이미지 센서(1140)의 CSI 장치(1141)와 시리얼 통신을 수행할 수 있다. 일 실시예에서, CSI 호스트(1112)는 디시리얼라이저(DES)를 포함할 수 있고, CSI 장치(1141)는 시리얼라이저(SER)를 포함할 수 있다. 시스템 온 칩(1110)의 DSI 호스트(1111)는 디스플레이 시리얼 인터페이스(Display Serial Interface; DSI)를 통하여 디스플레이(1150)의 DSI 장치(1151)와 시리얼 통신을 수행할 수 있다.
일 실시예에서, DSI 호스트(1111)는 시리얼라이저(SER)를 포함할 수 있고, DSI 장치(1151)는 디시리얼라이저(DES)를 포함할 수 있다. 나아가, 전자 기기(1100)는 시스템 온 칩(1110)과 통신을 수행할 수 있는 알에프(Radio Frequency; RF) 칩(1160)을 더 포함할 수 있다. 전자 기기(1100)의 PHY(1113)와RF 칩(1160)의 PHY(1161)는 MIPI(Mobile Industry Processor Interface) DigRF에 따라 데이터 송수신을 수행할 수 있다. 또한, 시스템 온 칩(1110)은 PHY(1161)의 MIPI DigRF에 따른 데이터 송수신을 제어하는 DigRF MASTER(1114)를 더 포함할 수 있다.
한편, 전자 기기(1100)는 지피에스(Global Positioning System; GPS)(1120), 스토리지(1170), 마이크(1180), 디램(Dynamic Random Access Memory; DRAM)(1185) 및 스피커(1190)를 포함할 수 있다. 또한, 전자 기기(1100)는 초광대역(Ultra WideBand; UWB)(1210), 무선 랜(Wireless Local Area Network; WLAN)(1220) 및 와이맥스(Worldwide Interoperability for Microwave Access; WIMAX)(1230) 등을 이용하여 통신을 수행할 수 있다. 도 16에 도시된 전자 기기(1100)의 구조 및 인터페이스는 하나의 예시로서 이에 한정되는 것이 아니다.
본 발명의 실시예들에 따른 레지스터 슬라이싱 회로는 복수의 마스터 장치들과 상기 마스터 장치들에 의해 공통으로 액세스되는 적어도 하나의 슬레이브 소자의 상호접속에 유용하게 이용될 수 있다. 특히 본 발명은 여러 가지 반도체 부품들이 하나의 칩에 집적되는 시스템 온 칩에 유용하게 이용될 수 있으며, 소형화, 고성능 및 고속의 동작이 요구되는 디지털 카메라, 이동 전화기, 피디에이(PDA), 피엠피(PMP), 스마트폰 등의 휴대 기기에 더욱 유용하게 이용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.
100, 200: 레지스터 회로
120, 220: 리퀘스트 버퍼
140, 240: 반송 버퍼
500: 레지스터 슬라이싱 회로
10: 순방향 채널
20: 역방향 채널
FRQ: 제1 리퀘스트
BRQ: 제2 리퀘스트
120, 220: 리퀘스트 버퍼
140, 240: 반송 버퍼
500: 레지스터 슬라이싱 회로
10: 순방향 채널
20: 역방향 채널
FRQ: 제1 리퀘스트
BRQ: 제2 리퀘스트
Claims (10)
- 마스터 장치들로부터 발생된 리퀘스트들을 슬레이브 장치에게 전달하기 위하여 상기 리퀘스트들을 각각 순차적으로 저장하고 출력하는 제1 레지스터 회로와 제2 레지스터 회로;
상기 제1 레지스터 회로로부터의 제1 리퀘스트를 상기 제2 레지스터 회로로 전송하기 위한 순방향(forward) 채널; 및
상기 제2 레지스터 회로로부터의 제2 리퀘스트를 상기 제1 레지스터 회로로 반송하기 위한 역방향(backward) 채널을 포함하고,
상기 리퀘스트들은 서비스의 긴급 여부를 나타내는 긴급 플래그들을 각각 포함하고, 상기 리퀘스트들은 상기 긴급 플래그가 제1 값을 갖는 긴급 리퀘스트 또는 제2 값을 갖는 노말 리퀘스트로 구분되고,
상기 제1 레지스터 회로 및 상기 제2 레지스터 회로는, 상기 제1 리퀘스트와 상기 제2 리퀘스트를 교환하는 노드간 스와핑 동작(inter-node swapping operation)을 수행하는 레지스터 슬라이싱 회로. - 제1 항에 있어서,
상기 제2 리퀘스트를 반송하기 위한 상기 역방향 채널의 전송 라인들의 개수는 상기 제1 리퀘스트를 전송하기 위한 상기 순방향 채널의 전송 라인들의 개수보다 작은 것을 특징으로 하는 레지스터 슬라이싱 회로. - 제2 항에 있어서,
상기 제2 레지스터 회로는 상기 제2 리퀘스트를 복수의 세그먼트들로 분할하고, 상기 세그먼트들을 상기 역방향 채널을 통하여 복수 회에 걸쳐 순차적으로 상기 제1 레지스터 회로로 반송하는 것을 특징으로 하는 레지스터 슬라이싱 회로. - 삭제
- 삭제
- 제1 항에 있어서,
상기 노드간 스와핑 동작은 상기 제2 레지스터 회로가 저장 가능한 최대 개수의 상기 리퀘스트들을 저장하고 있는 이슈-풀 상태(issue-full state)이고 상기 제1 리퀘스트가 상기 긴급 리퀘스트에 해당하는 경우에 수행되는 것을 특징으로 하는 레지스터 슬라이싱 회로. - 제6 항에 있어서,
상기 제1 레지스터 회로 및 상기 제2 레지스터 회로는, 상기 노드간 스와핑 동작이 완료되기 전에 상기 제2 레지스터 회로의 상기 이슈-풀 상태가 해제된 경우에 상기 노드간 스와핑 동작을 취소하는 것을 특징으로 하는 레지스터 슬라이싱 회로. - 제1 항에 있어서,
상기 제1 레지스터 회로 및 상기 제2 레지스터 회로는, 상기 긴급 플래그들에 기초하여 각각의 내부에 인접하여 저장된 두개의 리퀘스트들 중에서 후순위로 저장된 상기 긴급 리퀘스트와 선순위로 저장된 상기 노말 리퀘스트를 서로 바꾸어 저장하는 노드내 스와핑 동작(in-node swapping operation)을 수행하는 것을 특징으로 하는 레지스터 슬라이싱 회로. - 제8 항에 있어서,
상기 리퀘스트들은 상호간의 서비스 순서의 제한을 나타내는 순서 의존 플래그들을 각각 더 포함하고,
상기 제1 레지스터 회로 및 상기 제2 레지스터 회로의 각각은, 상기 순서 의존 플래그들에 기초하여 상기 리퀘스트들 중에서 상기 서비스 순서 제한이 적용되는 리퀘스트들의 그룹을 판별하고, 상기 그룹이 후순위로 저장된 상기 긴급 리퀘스트를 포함하는 경우 상기 그룹에 포함된 선순위로 저장된 상기 노말 리퀘스트의 긴급 플래그를 상기 제2 값에서 상기 제1 값으로 변경하는 것을 특징으로 하는 레지스터 슬라이싱 회로. - 슬레이브 장치;
상기 슬레이브 장치에게 서비스를 요구하기 위한 리퀘스트들을 각각 발생하는 복수의 마스터 장치들; 및
상기 슬레이브 장치와 상기 마스터 장치들을 연결하는 상호접속 장치를 포함하고,
상기 상호접속 장치는,
상기 리퀘스트들을 상기 슬레이브 장치에게 전달하기 위하여 상기 리퀘스트들을 각각 순차적으로 저장하고 출력하는 제1 레지스터 회로와 제2 레지스터 회로;
상기 제1 레지스터 회로로부터의 제1 리퀘스트를 상기 제2 레지스터 회로로 전송하기 위한 순방향(forward) 채널; 및
상기 제2 레지스터 회로로부터의 제2 리퀘스트를 상기 제1 레지스터 회로로 반송하기 위한 역방향(backward) 채널을 포함하고,
상기 리퀘스트들은 서비스의 긴급 여부를 나타내는 긴급 플래그들을 각각 포함하고, 상기 리퀘스트들은 상기 긴급 플래그가 제1 값을 갖는 긴급 리퀘스트 또는 제2 값을 갖는 노말 리퀘스트로 구분되고,
상기 제1 레지스터 회로 및 상기 제2 레지스터 회로는, 상기 제1 리퀘스트와 상기 제2 리퀘스트를 교환하는 노드간 스와핑 동작(inter-node swapping operation)을 수행하는 시스템 온 칩.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120132818A KR101993258B1 (ko) | 2012-11-22 | 2012-11-22 | 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩 |
US14/077,282 US9690730B2 (en) | 2012-11-22 | 2013-11-12 | Register slicing circuit and system on chip including the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120132818A KR101993258B1 (ko) | 2012-11-22 | 2012-11-22 | 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140065850A KR20140065850A (ko) | 2014-05-30 |
KR101993258B1 true KR101993258B1 (ko) | 2019-09-27 |
Family
ID=50729051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120132818A KR101993258B1 (ko) | 2012-11-22 | 2012-11-22 | 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9690730B2 (ko) |
KR (1) | KR101993258B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10141938B2 (en) * | 2016-09-21 | 2018-11-27 | Xilinx, Inc. | Stacked columnar integrated circuits |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186941A1 (en) * | 2003-03-20 | 2004-09-23 | Sheng-Chang Peng | Link bus between control chipsets and arbitration method thereof |
US20090300382A1 (en) * | 2006-06-29 | 2009-12-03 | Alistair Crone Bruce | Controlling Power Consumption in a Data Processing Apparatus |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6286083B1 (en) | 1998-07-08 | 2001-09-04 | Compaq Computer Corporation | Computer system with adaptive memory arbitration scheme |
US6292856B1 (en) * | 1999-01-29 | 2001-09-18 | International Business Machines Corporation | System and method for application influence of I/O service order post I/O request |
US6877081B2 (en) | 2001-02-13 | 2005-04-05 | International Business Machines Corporation | System and method for managing memory compression transparent to an operating system |
US8032561B1 (en) | 2001-08-16 | 2011-10-04 | Altera Corporation | System and method for scheduling and arbitrating events in computing and networking |
US7035958B2 (en) * | 2002-10-03 | 2006-04-25 | International Business Machines Corporation | Re-ordering a first request within a FIFO request queue to a different queue position when the first request receives a retry response from the target |
GB2402761B (en) * | 2003-06-12 | 2006-02-22 | Advanced Risc Mach Ltd | Improvements in flexibility of a bus interconnect block for a data processing apparatus |
FR2858895B1 (fr) | 2003-08-13 | 2006-05-05 | Arteris | Procede et dispositif de gestion de priorite lors de la transmission d'un message |
JP4222251B2 (ja) | 2004-04-27 | 2009-02-12 | ソニー株式会社 | バス調停装置およびバス調停方法 |
CA2595858A1 (en) | 2005-05-24 | 2006-11-30 | Turbo Data Laboratories Inc. | Multiprocessor system, and its information processing method |
JP4845522B2 (ja) * | 2006-01-30 | 2011-12-28 | シャープ株式会社 | システムバス制御装置、集積回路およびデータ処理システム |
US9027025B2 (en) | 2007-04-17 | 2015-05-05 | Oracle International Corporation | Real-time database exception monitoring tool using instance eviction data |
JP4983919B2 (ja) | 2007-06-20 | 2012-07-25 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
JP2009211604A (ja) | 2008-03-06 | 2009-09-17 | Canon Inc | 情報処理装置、情報処理方法、プログラム、及び、記憶媒体 |
CN102165408B (zh) | 2008-09-29 | 2014-08-06 | 国际商业机器公司 | 用于确定数据的再调用顺序的装置和方法 |
US9262357B2 (en) * | 2008-09-29 | 2016-02-16 | International Business Machines Corporation | Associating process priority with I/O queuing |
KR20110013868A (ko) | 2009-08-04 | 2011-02-10 | 삼성전자주식회사 | 멀티 코멘드 셋 동작 및 우선처리 동작 기능을 갖는 멀티 프로세서 시스템 |
KR20110070656A (ko) | 2009-12-18 | 2011-06-24 | 한국전자통신연구원 | 플래시 메모리의 데이터 처리 방법 및 장치 |
KR101241584B1 (ko) | 2009-12-21 | 2013-03-11 | 한국전자통신연구원 | 데이터 플로우 병렬 처리 장치 및 방법 |
WO2011137813A2 (zh) * | 2011-05-24 | 2011-11-10 | 华为技术有限公司 | 先进可扩展接口总线以及相应的数据传输方法 |
-
2012
- 2012-11-22 KR KR1020120132818A patent/KR101993258B1/ko active IP Right Grant
-
2013
- 2013-11-12 US US14/077,282 patent/US9690730B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186941A1 (en) * | 2003-03-20 | 2004-09-23 | Sheng-Chang Peng | Link bus between control chipsets and arbitration method thereof |
US20090300382A1 (en) * | 2006-06-29 | 2009-12-03 | Alistair Crone Bruce | Controlling Power Consumption in a Data Processing Apparatus |
Also Published As
Publication number | Publication date |
---|---|
KR20140065850A (ko) | 2014-05-30 |
US20140143462A1 (en) | 2014-05-22 |
US9690730B2 (en) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9684633B2 (en) | Adaptive service controller, system on chip and method of controlling the same | |
US9367499B2 (en) | System on chip for enhancing quality of service and method of controlling the same | |
US8316171B2 (en) | Network on chip (NoC) with QoS features | |
US7467358B2 (en) | Asynchronous switch based on butterfly fat-tree for network on chip application | |
US20070115995A1 (en) | NoC system employing AXI protocol and interleaving method thereof | |
CN111971648B (zh) | 异步多时钟域数据流接合及再同步***和方法 | |
US20170063625A1 (en) | Configurable router for a network on chip (noc) | |
US11748284B2 (en) | Systems and methods for arbitrating traffic in a bus | |
WO2009070324A1 (en) | A method for setting parameters and determining latency in a chained device system | |
US10558591B2 (en) | Method and apparatus for in-band priority adjustment forwarding in a communication fabric | |
US20110182384A1 (en) | Reception circuit, information processing device, and buffer control method | |
JP5482466B2 (ja) | データ転送装置及びデータ転送装置の動作周波数制御方法 | |
US9552323B1 (en) | High-speed peripheral component interconnect (PCIe) input-output devices with receive buffer management circuitry | |
US6728790B2 (en) | Tagging and arbitration mechanism in an input/output node of a computer system | |
US6681274B2 (en) | Virtual channel buffer bypass for an I/O node of a computer system | |
EP1444587B1 (en) | Computer system i/o node | |
KR101993258B1 (ko) | 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩 | |
US11483209B2 (en) | Forward progress mechanisms for a communications network having multiple nodes | |
US6820151B2 (en) | Starvation avoidance mechanism for an I/O node of a computer system | |
US10417148B2 (en) | Bus system and bus traffic control apparatus for controlling the same | |
KR102021795B1 (ko) | 적응적 서비스 제어기, 시스템 온 칩 및 시스템 온 칩의 제어 방법 | |
US20140112141A1 (en) | Backbone channel management method and backbone channel management apparatus | |
WO2010113226A1 (ja) | 半導体集積回路装置および映像音響処理システム | |
CN115695292A (zh) | 一种基于片上网络的广播传输电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |