[go: up one dir, main page]

KR102344032B1 - 반도체 장치 - Google Patents

반도체 장치 Download PDF

Info

Publication number
KR102344032B1
KR102344032B1 KR1020167027043A KR20167027043A KR102344032B1 KR 102344032 B1 KR102344032 B1 KR 102344032B1 KR 1020167027043 A KR1020167027043 A KR 1020167027043A KR 20167027043 A KR20167027043 A KR 20167027043A KR 102344032 B1 KR102344032 B1 KR 102344032B1
Authority
KR
South Korea
Prior art keywords
controller
configuration register
master
masters
slot
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020167027043A
Other languages
English (en)
Other versions
KR20180062915A (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 KR20180062915A publication Critical patent/KR20180062915A/ko
Application granted granted Critical
Publication of KR102344032B1 publication Critical patent/KR102344032B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • 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
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명에 따른 반도체 장치는 복수의 마스터(100), 메모리 컨트롤러(400a), 복수의 마스터(100)와 메모리 컨트롤러(400a)를 접속하는 버스, 복수의 마스터(100)의 QoS 정보를 저장하는 QoS 정보 레지스터(610), 메모리 컨트롤러(400a)의 버퍼(401)의 공간 정보에 기초하여 액세스권의 권리 부여 가능수를 계산하는 권리 부여수 컨트롤러(602), QoS 정보 레지스터(610)의 QoS 정보 및 권리 부여수 컨트롤러(602)로부터의 권리 부여 가능수에 기초하여 액세스권이 부여될 마스터(100)를 선택하는 권리 부여 선택 컨트롤러(603a), 권리 부여 선택 컨트롤러(603a)로부터 액세스권이 부여되지 않은 마스터(100)의 리퀘스트를 통과시키지 않는 리퀘스트 발행 컨트롤러(201a)를 포함한다.

Description

반도체 장치{SEMICONDUCTOR DEVICE}
본 발명은 반도체 장치에 관한 것으로, 특히 버스를 통해 복수의 회로 블록이 접속되는 반도체 장치에 관한 것이다.
반도체 장치에서는, 복수의 버스 마스터가 공통 버스에 접속하는 버스 시스템이 많이 제안되고 있다. 이러한 버스 시스템에서는, 복수의 버스 마스터로부터의 공통 버스로 송신되는 리퀘스트에 대하여 조정을 행하는 것이 필요하다. 조정에 관한 기술의 예가 특허문헌 1 및 2에 개시되어 있다.
특허문헌 1에는, 우선 마스터로 지정되어 있는 마스터로부터의 리퀘스트가 있는 경우, 우선 마스터가 최우선 순위를 갖는 슬롯이 현재의 슬롯 또는 그 이후의 슬롯에 있으면, 우선 마스터의 레이텐시(latency)를 저감시키도록 슬롯의 교체를 행하는 기술이 개시되어 있다.
또한, 특허문헌 2에는, 인터커넥트를 통해 접속되는 다중 마스터 및 다중 슬레이브로 구성되는 회로에서, 물리 네트워크에서 리퀘스트를 발행하기 전에, 가상 네트워크 상에서 노드 간의 토큰 신호들을 전송함으로써 버스 조정을 행하는 기술이 개시되어 있다.
일본 특허 공개 제2005-258867호 공보 국제 특허 공개 제2012/049485호
특허문헌 1의 기술에서는, 메모리 컨트롤러의 버퍼의 활용 상태를 고려하지 않고, 마스터로부터의 리퀘스트를 슬롯마다 설정된 우선 마스터 정보에 따라 조정하고 있기 때문에, 버스 상에서의 리퀘스트가 정체된다. 따라서, 후속의 우선순위가 높은 리퀘스트가 선행의 우선순위가 낮은 리퀘스트에 의해 흐르지 않게 되어, 우선순위가 높은 리퀘스트의 레이텐시가 악화되는 문제가 있었다. 또한, 이러한 문제를 회피하기 위해서는, 후속의 리퀘스트가 선행의 리퀘스트를 앞지를 수 있도록 중간 버퍼를 설치할 필요가 있어, 회로 사이즈가 증가하게 된다.
또한, 특허문헌 2의 기술에서는, 리퀘스트에 응답하여 발행되는 토큰을 사용하여 조정을 행한 후에 물리 네트워크에서 리퀘스트를 발행하기 때문에, 회로의 레이텐시가 증가하는 문제가 있었다. 또한, 다중 인터커넥트 층에서는, 각 층마다 조정을 행하기 때문에, 리퀘스트를 저장하는 버퍼가 각 층에 대량으로 제공될 필요가 있다.
관련 기술의 그 밖의 문제점들과 본 발명의 신규한 특징들은 첨부된 도면들과 명세서의 설명으로부터 명백하게 될 것이다.
일 실시예에 따르면, 반도체 장치는 메모리 컨트롤러의 버퍼의 공간 정보에 기초하여 액세스권의 권리 부여 가능 수를 계산하고, 복수의 마스터의 QoS(Quality of Service) 정보 및 권리 부여 가능 수에 기초하여 액세스권을 부여할 마스터를 선택하고, 액세스권이 부여되지 않은 마스터에 대해서는 리퀘스트를 통과시키지 않는다.
실시예에 따르면, 버스 상에서의 리퀘스트의 정체를 방지하여, 레이텐시를 개선하고, 회로 사이즈를 감소시킬 수 있는 반도체 장치를 제공할 수 있다.
도 1은 제1 실시예에 따른 반도체 장치의 구성도이다.
도 2는 제1 실시예에 따른 액세스권에 관한 메모리 컨트롤러의 처리의 일례를 나타내는 흐름도이다.
도 3은 제1 실시예에 따른 액세스권에 관한 중앙 버스 컨트롤러의 처리의 일례를 나타내는 흐름도이다.
도 4는 제1 실시예에 따른 액세스권에 관한 서브 버스 컨트롤러의 처리의 일례를 나타내는 흐름도이다.
도 5는 제2 실시예에 따른 반도체 장치의 구성도이다.
도 6은 제2 실시예에 따른 중앙 버스 컨트롤러의 구성도이다.
도 7은 제2 실시예에 따른 메모리 컨트롤러의 구성도이다.
도 8은 제2 실시예에 따른 예약형 레지스터 그룹의 구성 정보예를 도시하는 도면이다.
도 9는 제2 실시예에 따른 도 8의 구성에서의 대역폭의 구성예를 도시하는 도면이다.
도 10은 제2 실시예에 따른 예약형 레지스터 그룹 및 리프레시 요구 서브 슬롯 번호 구성 레지스터의 구성 정보예를 도시하는 도면이다.
도 11은 제2 실시예에 따른 도 10의 구성에서의 대역폭의 구성예를 도시하는 도면이다.
도 12는 제2 실시예의 변형예에 따른 중앙 버스 컨트롤러의 구성도이다.
도 13은 제2 실시예의 변형예에 따른 예약형 레지스터 그룹의 구성 정보예를 도시하는 도면이다.
도 14는 제2 실시예의 변형예에 따른 도 13의 구성에서의 대역폭의 구성예를 도시하는 도면이다.
도 15는 제3 실시예에 따른 중앙 버스 컨트롤러의 구성도이다.
도 16a는 제3 실시예에 따라 일정 간격으로 리퀘스트를 발행하는 마스터의 배포 우선순위의 예를 나타내는 도면이다.
도 16b는 제3 실시예에 따라 전반에는 리퀘스트를 발행하지 않고 후반에만 리퀘스트를 발행하는 마스터의 배포 우선순위의 예를 나타내는 도면이다.
도 17은 제4 실시예에 따른 반도체 장치의 구성도이다.
이하, 도면을 참조하면서, 실시예에 대하여 설명할 것이다. 이하의 실시예에 기술되는 구체적인 수치 등은 본 발명의 이해를 용이하게 하기 위한 예시일 뿐이며, 달리 언급하지 않는 한, 그들에 한정되지 않는다. 또한, 이하의 기재 및 도면에서는 설명의 명확화를 위하여 본 분야의 통상의 기술자에게 자명한 사항에 대해서 적절하게 생략 또는 간략화될 수 있다.
또한, 이하의 실시예에는, 다양한 구성 레지스터가 존재하지만, 각각의 구성 레지스터가 저장하는 값 또는 정보는 변경될 수 있다.
제1 실시예
도 1은 제1 실시예에 따른 반도체 장치의 구성을 도시하는 도면이다. 도 1에 도시한 바와 같이, 제1 실시예에 따른 반도체 장치는 복수개의 마스터(100), 복수개의 서브 버스 컨트롤러(200a), 버스 아비터(Bus Arbiter)(300), 메모리 컨트롤러(400a), 메모리(500), 중앙 버스 컨트롤러(600a), 버스(10), 버스(20), 및 버스(30)를 포함한다. 도 1의 예에서는 마스터(100)의 수가 3개이지만, 마스터(100)의 수는 2개 이상이면 몇 개이어도 된다. 도 1에 나타낸 3개의 마스터(100)는 마스터 A, 마스터 B, 및 마스터 C라고 칭한다. 또한, 마스터(100)의 수와 서브 버스 컨트롤러(200a)의 수는 동일 수로 한다.
복수의 마스터(100)는 각각 버스(10)를 통해 대응하는 서브 버스 컨트롤러(200a)에 접속되어 있다. 복수의 마스터(100)는 메모리(500)에 대한 리퀘스트를 버스(10)을 통해 각각의 서브 버스 컨트롤러(200a)에 출력한다.
서브 버스 컨트롤러(200a)는 리퀘스트 발행 컨트롤러(201a)를 포함한다. 리퀘스트 발행 컨트롤러(201a)는 버스(10)로부터 리퀘스트를 수신한다. 또한, 리퀘스트 발행 컨트롤러(201a)는 중앙 버스 컨트롤러(600a)로부터 우선순위 레벨 신호(705)를 수신한다. 우선순위 레벨 신호(705)는 마스터(100)의 QoS 정보에 기초하는 우선순위 레벨을 나타내는 신호이다.
또한, 리퀘스트 발행 컨트롤러(201a)는 수신한 리퀘스트를 버스(20)에 출력할지 여부를 판정한다. 이 판정은 중앙 버스 컨트롤러(600a)로부터 액세스권의 부여를 나타내는 액세스권 부여 신호(700)가 배포되었는지 여부를 판정함으로써 행해진다. 리퀘스트 발행 컨트롤러(201a)는, 액세스권 부여 신호(700)가 배포된 경우, 수신된 리퀘스트를 버스(20)에 출력한다. 한편, 리퀘스트 발행 컨트롤러(201a)는, 액세스권 부여 신호(700)가 배포되어 있지 않은 경우, 즉 액세스권이 미부여인 경우, 수신하거나 리퀘스트를 버스(20)에 출력하지 않는다. 즉, 리퀘스트 발행 컨트롤러(201a)는 액세스권을 획득할 때까지 마스터(100)로부터의 리퀘스트를 통과시킬 수 없다.
리퀘스트 발행 컨트롤러(201a)는, 수신한 리퀘스트를 리퀘스트 발행 컨트롤러(201a)가 버스(20)에 출력할 때에는 대응하는 마스터(100)의 우선순위 레벨을 당해 리퀘스트에 부가하여 출력한다. 이 우선순위 레벨은 우선순위 레벨 신호(705)에 의해 표시된다. 또한, 리퀘스트 발행 컨트롤러(201a)는, 액세스권을 획득했을 때에, 리퀘스트 발행 컨트롤러(201a)가 버스(10)로부터 리퀘스트를 수신하지 않았다면, 액세스권 반환 신호(710)에 의해 중앙 버스 컨트롤러(600a)로 액세스권을 반환한다.
버스 아비터(300)는 버스(20)로부터 리퀘스트를 수신한다. 또한, 버스 아비터(300)는 수신된 리퀘스트에 부가되어 있는 우선순위 레벨을 사용하여 리퀘스트의 조정을 행한다. 또한, 버스 아비터(300)에 의한 우선순위 레벨을 사용하여 리퀘스트를 조정하는 방법은 알려진 방법이며 그에 대한 설명은 생략될 것이다. 버스 아비터(300)는, 조정의 결과로서, 복수의 마스터(100)로부터의 리퀘스트 중에서, 우선 순위가 가장 높은 리퀘스트를 버스(30)에 출력한다. 버스 아비터(300)가 행하는 조정은 라운드 로빈 방식이나 고정 우선 방식일 수 있다.
메모리 컨트롤러(400a)는 버퍼(401)를 포함한다. 메모리 컨트롤러(400a)는 버스(30)로부터 리퀘스트를 수신한다. 또한, 메모리 컨트롤러(400a)는 수신한 리퀘스트를 버퍼(401)에 저장한다. 다음으로, 메모리 컨트롤러(400a)는 버퍼(401)에 저장된 리퀘스트에 부가되어 있는 우선순위 레벨을 사용하여, 리퀘스트의 스케쥴링을 행하여, 메모리(500)로의 액세스를 제어한다. 또한, 메모리 컨트롤러(400a)는 버퍼(401)의 사용 상황을 항상 모니터링한다. 리스펀스 처리가 종료됨으로써, 버퍼(401)가 해제된 경우, 메모리 컨트롤러(400a)는 버퍼(401)가 해제되었다는 것을 나타내는 정보를 버퍼 해제 통지 신호(720)로서 중앙 버스 컨트롤러(600a)에 출력한다.
메모리(500)는 예를 들어, DDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory), SRAM(Static Random Access Memory) 등이다. 메모리(500)는 DDR SDRAM 또는 SRAM에 한정되지 않고 다른 메모리일 수도 있다.
중앙 버스 컨트롤러(600a)는 액세스권에 관한 제어를 행하기 위한 기능부이다. 중앙 버스 컨트롤러(600a)는 부여 가능 최대수 구성 레지스터(601), 권리 부여수 컨트롤러(602), 권리 부여 선택 컨트롤러(603a), 및 QoS 정보 레지스터(610)를 포함한다.
부여 가능 최대수 구성 레지스터(601)는 액세스권의 권리 부여 가능수의 최대수를 저장한다. 액세스권의 권리 부여 가능수의 최대수는 부여될 수 있는 액세스권의 최대수를 나타낸다. 부여 가능 최대수 구성 레지스터(601)에 저장되는 권리 부여 가능수의 최대수의 값은 변경될 수 있다.
권리 부여수 컨트롤러(602)는, 버퍼(401)가 해제된 경우, 버퍼 해제 통지 신호(720)를 메모리 컨트롤러(400a)로부터 수신한다. 다음으로, 권리 부여수 컨트롤러(602)는 버퍼(401)의 공간 정보에 기초하여, 액세스권의 권리 부여 가능수를 계산한다. 또한, 권리 부여수 컨트롤러(602)는 계산된 권리 부여 가능수를 권리 부여 선택 컨트롤러(603a)에 출력한다.
액세스권의 권리 부여 가능수의 계산의 구체예에 대하여 설명할 것이다. 권리 부여수 컨트롤러(602)는 버퍼 해제 통지 신호(720) 외에, 권리 부여 가능수의 최대수를 부여 가능 최대수 구성 레지스터(601)로부터 판독한다. 다음으로, 권리 부여수 컨트롤러(602)는 버퍼(401)의 공간 정보에 기초하여, 권리 부여 가능수의 최대수를 상한으로 하여 액세스권의 권리 부여 가능수를 계산한다.
또한, 권리 부여수 컨트롤러(602)는 버퍼 해제 통지 신호(720) 외에, 액세스권 반환 신호(710)를 리퀘스트 발행 컨트롤러(201a)로부터 수신한다. 다음으로, 권리 부여수 컨트롤러(602)는 버퍼(401)의 공간 정보 및 반환되는 액세스권의 반환수에 기초하여, 액세스권의 권리 부여 가능수를 계산한다.
또한, 권리 부여수 컨트롤러(602)는 버퍼 해제 통지 신호(720) 외에 권리 부여 가능수의 최대수, 액세스권 반환 신호(710) 및 배포된 액세스권의 수를 사용하여 액세스권의 권리 부여 가능수를 계산할 수 있다. 구체적으로, 권리 부여 가능수의 최대수에 기초하여, 액세스권 부여 신호(700)를 배포하면, 권리 부여수 컨트롤러(602)는 배포한 수만큼 권리 부여 가능수를 감소시킨다. 또한, 권리 부여수 컨트롤러(602)는 메모리 컨트롤러(400a)로부터 버퍼 해제 통지 신호(720)를 수신하거나, 또는 리퀘스트 발행 컨트롤러(201a)로부터 액세스권 반환 신호(710)를 수신함으로써 권리 부여 가능수를 증가시킨다. 권리 부여수 컨트롤러(602)는 액세스권을 배포한 수를 나타내는 통지를 권리 부여 선택 컨트롤러(603a)로부터 수신함으로써 배포된 액세스권의 수를 인식할 수 있다. 또한, 권리 부여수 컨트롤러(602)는 권리 부여 선택 컨트롤러(603a)에 출력한 권리 부여 가능수를, 액세스권을 배포한 수로서 인식할 수 있다. 이 기술은 권리 부여 선택 컨트롤러(603a)가 권리 부여 가능한 수만큼 모든 액세스권을 확실하게 배포하는 경우에 유효하다.
QoS 정보 레지스터(610)는 복수의 마스터(100)의 QoS 정보를 저장한다.
권리 부여 선택 컨트롤러(603a)는 복수의 마스터(100)의 QoS 정보를 QoS 정보 레지스터(610)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603a)는 권리 부여 가능수를 권리 부여수 컨트롤러(602)로부터 수신한다. 다음으로, 권리 부여 선택 컨트롤러(603a)는 복수의 마스터(100)의 QoS 정보 및 권리 부여 가능수에 기초하여, 액세스권이 부여되게 될 마스터를 선택한다. 구체적으로, 권리 부여 선택 컨트롤러(603a)는 권리 부여 가능수의 범위 내에서, QoS 정보에 기초하는 우선순위 레벨이 높은 마스터(100)에 우선적으로 액세스권을 부여하도록 액세스권이 부여될 마스터를 선택한다.
또한, 권리 부여 선택 컨트롤러(603a)는 액세스권이 부여될 마스터로서 선택된 마스터(100)에 대하여 액세스권 부여 신호(700)를 배포한다. 구체적으로, 권리 부여 선택 컨트롤러(603a)는 선택된 마스터(100)의 서브 버스 컨트롤러(200a)에 액세스권 부여 신호(700)를 출력한다. 권리 부여 선택 컨트롤러(603a)에서의 액세스권이 부여되게 될 마스터 선택 및 액세스권 부여 신호(700)의 출력은 사이클마다 행해진다. 또한, 권리 부여 선택 컨트롤러(603a)는 마스터(100)의 QoS 정보에 기초하는 우선순위 레벨을 나타내는 우선순위 레벨 신호(705)를 마스터(100)의 서브 버스 컨트롤러(200a)에 출력한다. 권리 부여 선택 컨트롤러(603a)에 의한 우선순위 레벨 신호(705)의 출력은 QoS 정보 레지스터(610)에 QoS 정보가 저장될 때 행해진다. 따라서, QoS 정보 레지스터(610)에 저장된 QoS 정보에 기초하는 우선순위 레벨은 서브 버스 컨트롤러(200a)에도 반영된다.
다음으로, 제1 실시예에 따른 반도체 장치에서의 액세스권에 관한 메모리 컨트롤러(400a), 중앙 버스 컨트롤러(600a) 및 서브 버스 컨트롤러(200a)의 처리 흐름의 예를 도 2, 도 3 및 도 4를 참조하여 설명할 것이다.
첫번째로, 도 2에 도시된 흐름도를 참조하여 액세스권에 관한 메모리 컨트롤러(400a)의 처리 흐름에 대하여 설명할 것이다.
먼저, 메모리 컨트롤러(400a)는 버퍼(401)가 해제되었는지 여부를 모니터링한다(S101). S101에서, 버퍼(401)가 아직 해제되지 않았다고 판정된 경우, S101에서의 모니터링을 계속한다.
S101에서, 버퍼(401)가 해제되었다고 판정된 경우, 메모리 컨트롤러(400a)는 버퍼(401)의 해제 정보를 버퍼 해제 통지 신호(720)로서 중앙 버스 컨트롤러(600a)에 출력하고(S102), 처리는 S101로 복귀된다.
다음으로, 도 3에 도시된 흐름도를 참조하여 액세스권에 관한 중앙 버스 컨트롤러(600a)의 처리 흐름에 대하여 설명할 것이다.
우선, 권리 부여수 컨트롤러(602)는 버퍼 해제 통지 신호(720)를 수신했는지 여부를 판정한다(S201). S201에서, 버퍼 해제 통지 신호(720)를 수신했다고 판정된 경우, 권리 부여수 컨트롤러(602)는 권리 부여 가능수를 증가시킨다(S202).
S202 이후, 권리 부여수 컨트롤러(602)는 액세스권 반환 신호(710)를 수신했는지 여부를 판정한다(S203). 또한, S201에서, 버퍼 해제 통지 신호(720)를 수신하지 않았다고 판정된 경우에도, 처리는 S203으로 진행된다. S203에서, 액세스권 반환 신호(710)를 수신했다고 판정된 경우, 권리 부여수 컨트롤러(602)는 권리 부여 가능수를 증가시킨다(S204).
S204 이후, 권리 부여 선택 컨트롤러(603a)는 권리가 부여될 수 있는지 여부를 판정한다(S205). 또한, S203에서, 액세스권 반환 신호(710)를 수신하지 않았다고 판정된 경우에도, 처리는 S205로 진행된다. S205에서의 판정은 권리 부여수 컨트롤러(602)로부터 권리 부여 가능수를 수신함으로써 수행된다. S205에서의 판정은 사이클마다 수행된다.
S205에서, 권리 부여가 가능하지 않다고 판정된 경우, 처리는 S201로 복귀된다. 한편, S205에서, 권리가 부여될 수 있다고 판정된 경우, 권리 부여 선택 컨트롤러(603a)는 액세스권이 부여될 마스터를 선택한다(S206). S206 이후, 권리 부여 선택 컨트롤러(603a)는 액세스권이 부여될 마스터에 액세스권 부여 신호(700)를 배포한다(S207).
S207 이후, 권리 부여수 컨트롤러(602)는 권리 부여 가능수를 감소시키고(S208), 처리는 S201로 복귀된다.
도 3에서는, S201이 S203보다 먼저 수행되지만, S201과 S203은 어느 쪽을 먼저 행해도 된다. 또한, 도 3에서는, S208이 S207보다 나중에 수행되지만, S208은 S207보다 먼저 수행될 수도 있다. 예를 들어, 권리 부여수 컨트롤러(602)는 권리 부여 가능수를 권리 부여 선택 컨트롤러(603a)에 출력할 때, 권리 부여 가능수를 감소시킬 수 있다.
다음으로, 도 4에 도시된 흐름도를 참조하여 액세스권에 관한 서브 버스 컨트롤러(200a)의 처리 흐름에 대하여 설명할 것이다.
먼저, 리퀘스트 발행 컨트롤러(201a)는 액세스권을 획득했는지 여부를 판정한다(S301). S301에서, 액세스권이 획득되지 않았다고 판정된 경우, 리퀘스트 발행 컨트롤러(201a)는 마스터(100)로부터의 리퀘스트를 통과시키지 않고(S302), 처리는 S301로 복귀된다.
한편, S301에서, 리퀘스트 발행 컨트롤러(201a)가 액세스권을 획득했다고 판정된 경우, 리퀘스트 발행 컨트롤러(201a)는 마스터(100)로부터 수신한 리퀘스트를 유지하고 있는지 여부를 판정한다(S303). S303에서, 리퀘스트를 유지하고 있지 않다고 판정된 경우, 리퀘스트 발행 컨트롤러(201a)는 액세스권을 권리 부여수 컨트롤러(602)에 반환한다(S304). 한편, S303에서 리퀘스트를 유지하고 있다고 판정된 경우, 리퀘스트 발행 컨트롤러(201a)는 리퀘스트를 통과시킨다(S305). 즉, 리퀘스트 발행 컨트롤러(201a)는 버스(20)에 리퀘스트를 출력한다. 다음으로, 프로세스는 S301로 복귀한다.
상술한 바와 같이, 제1 실시예에 따른 반도체 장치에서는, 메모리 컨트롤러(400a)의 버퍼(401)의 활용 상태를 모니터링하고, 중앙 버스 컨트롤러(600a)에 의한 액세스권을 사용하여 모든 마스터(100)로부터의 리퀘스트를 제어한다. 따라서, 전체적으로 최적의 제어를 달성할 수 있다.
또한, 권리 부여수 컨트롤러(602)에 의해 배포하는 액세스권의 수를 제어한다. 따라서, 버스 시스템 전체에서 정체되는 리퀘스트의 수를 제어할 수 있다.
또한, 부여 가능 최대수 구성 레지스터(601)는 액세스권의 권리 부여 가능수의 최대수를 설정할 수 있도록 구성된다. 따라서, 최대수를 메모리 컨트롤러(400a)의 버퍼(401)와 동일 수로 설정하면 확실히 버스의 혼잡이 방지되도록 제어할 수 있다. 또한, 최대수를 메모리 컨트롤러(400a)의 버퍼(401)보다 큰 수로 설정함으로써, 중간 버스에 존재할 수 있는 리퀘스트를 고려하여 제어할 수 있다.
또한, 리퀘스트 발행 컨트롤러(201a)가 액세스권이 부여된 마스터(100)로부터의 리퀘스트를 유지하고 있지 않은 경우, 액세스권은 반환된다. 따라서, 권리 부여 가능수를 반환된 권리수에 대응하는 수만큼 증가시킬 수 있다.
제2 실시예
다음으로, 제2 실시예에 따른 반도체 장치에 대하여 설명할 것이다. 도 5에 도시한 바와 같이, 제2 실시예에 따른 반도체 장치는 복수개의 마스터(100), 복수개의 서브 버스 컨트롤러(200a), 버스 아비터(300), 메모리 컨트롤러(400b), 메모리(500), 중앙 버스 컨트롤러(600b), 버스(10), 버스(20), 및 버스(30)를 포함한다. 복수개의 마스터(100), 복수개의 서브 버스 컨트롤러(200a), 버스 아비터(300), 메모리(500), 버스(10), 버스(20), 및 버스(30)의 구성은 제1 실시예에 나타낸 구성과 동일하기 때문에, 그에 대한 설명은 생략될 것이다.
다음으로, 중앙 버스 컨트롤러(600b)에 대하여 도 6을 참조하여 설명할 것이다. 도 6에 도시된 바와 같이, 중앙 버스 컨트롤러(600b)는 부여 가능 최대수 구성 레지스터(601), 권리 부여수 컨트롤러(602), 권리 부여 선택 컨트롤러(603b), 슬롯 구성 레지스터(604), 리프레시 요구 서브 슬롯 번호 구성 레지스터(605), 리프레시 요구 컨트롤러(606), 마스크 신호 생성기(607)와, 예약형 레지스터 그룹(620a), 전송량 모니터(640a)를 포함한다. 부여 가능 최대수 구성 레지스터(601)와 권리 부여수 컨트롤러(602)는 제1 실시예에 나타낸 구성과 동일하기 때문에, 그에 대한 설명은 생략될 것이다. 예약형 레지스터 그룹은 제1 구성 레지스터 그룹이라고 지칭될 수 있다.
슬롯 구성 레지스터(604)는 하나의 기본 슬롯 내에 존재하는 서브 슬롯의 수와 하나의 서브 슬롯의 기간을 저장한다. 기본 슬롯은 메모리(500)의 리프레시 기간을 나타낸다. 슬롯 구성 레지스터(604)에 저장되는 하나의 기본 슬롯 내에 존재하는 서브 슬롯의 수 및 하나의 서브 슬롯의 기간은 변경될 수 있다.
리프레시 요구 서브 슬롯 번호 구성 레지스터(605)는 리프레시 요구 컨트롤러(606)가 리프레시 요구 신호(740)를 출력하는 서브 슬롯 번호를 저장한다. 리프레시 요구 서브 슬롯 번호 구성 레지스터(605)에 저장되는 서브 슬롯 번호는 변경될 수 있다.
리프레시 요구 컨트롤러(606)는 리프레시 요구 서브 슬롯 번호 구성 레지스터(605)에 저장되어 있는 서브 슬롯 번호를 판독한다. 또한, 리프레시 요구 컨트롤러(606)는 판독한 서브 슬롯 번호가 나타내는 서브 슬롯에서 리프레시 요구 신호(740)를 메모리 컨트롤러(400b)에 출력한다.
전송량 모니터(640a)는 복수의 마스터(100)로부터 각각 서브 버스 컨트롤러(200a)를 통해 버스 아비터(300)에 전송되는 리퀘스트의 전송량을 측정하는 기능부이다. 전송량 모니터(640a)는 복수의 버스(20)로부터의 모니터 신호(730)에 의해 복수의 마스터(100)로부터의 리퀘스트의 전송량을 측정한다. 다음으로, 전송량 모니터(640a)는 측정된 복수의 마스터(100)로부터의 리퀘스트의 전송량을 마스크 신호 생성기(607)에 출력한다.
예약형 레지스터 그룹(620a)은 예약 대역폭 구성 레지스터(621), 예약형 우선순위 레벨 구성 레지스터(622), 기본 슬롯 사이클 구성 레지스터(623), 동작 기본 슬롯 번호 구성 레지스터(624), 및 전송 동작 서브 슬롯 패턴 구성 레지스터(625)를 포함한다.
도 6의 예에서는, 중앙 버스 컨트롤러(600b)는 마스터(100)의 수와 동일한 수의 예약형 레지스터 그룹(620a)을 포함한다. 또한, 복수의 마스터(100)와 예약형 레지스터 그룹(620a) 간의 관계는 이하에 나타내는 어느 한 관계일 수 있다.
예를 들어, 복수의 마스터(100)에 대하여 전용의 예약형 레지스터 그룹(620a)이 사용될 수 있다. 구체적으로, 3개의 마스터(마스터 A, 마스터 B, 및 마스터 C)가 존재하는 경우, 중앙 버스 컨트롤러(600b)는 마스터 A 전용의 예약형 레지스터 그룹(620a), 마스터 B 전용의 예약형 레지스터 그룹(620a), 마스터 C 전용의 예약형 레지스터 그룹(620a)의 3개의 예약형 레지스터 그룹(620a)을 포함할 수 있다. 또한, 예약형 레지스터 그룹(620a)은 각각의 마스터(100) 전용이 아닐 수도 있다. 중앙 버스 컨트롤러(600b)는 복수의 예약형 레지스터 그룹(620a)을 포함할 수 있고, 복수의 예약형 레지스터 그룹(620a)과 복수의 마스터(100)를 연관시킬 수 있다. 또한, 중앙 버스 컨트롤러(600b)는 하나의 예약형 레지스터 그룹(620a)을 포함할 수 있고, 예약형 레지스터 그룹(620a) 내의 구성 레지스터는 각각의 복수의 마스터(100)에 관한 정보를 저장할 수 있다. 또한, 예약형 레지스터 그룹(620a) 내의 구성 레지스터들은 복수의 마스터(100)의 각각에 대하여 별도로 제공되는 구성 레지스터와, 복수의 마스터(100)에 관한 정보를 하나의 구성 레지스터 내에 저장하는 구성 레지스터를 포함할 수 있다.
예약 대역폭 구성 레지스터(621)는 복수의 마스터(100)의 예약 대역폭을 저장한다. 예약 대역폭은, 예를 들어 마스터(100)에서의 하나의 서브 슬롯당 예약 전송량을 나타낸다.
예약형 우선순위 레벨 구성 레지스터(622)는 복수의 마스터(100)의 우선순위 레벨을 저장한다.
기본 슬롯 사이클 구성 레지스터(623)는 복수의 마스터(100) 각각에 대하여, 액세스권이 배포되는 기본 슬롯의 사이클을 저장한다. 예를 들어, 기본 슬롯 사이클 구성 레지스터(623)에 1을 저장하면, 액세스권의 배포가 기본 슬롯마다 유효해지고, 기본 슬롯 사이클 구성 레지스터(623)에 2를 저장하면, 액세스권의 배포가 2개의 기본 슬롯마다 한번 유효해진다.
동작 기본 슬롯 번호 구성 레지스터(624)는 복수의 마스터(100)의 각각에 대하여, 액세스권이 배포되는 기본 슬롯 번호를 저장한다. 예를 들어, 동작 기본 슬롯 번호 구성 레지스터(624)에 1을 저장하면, 최초의 기본 슬롯에서 액세스권의 배포가 유효해지고, 그곳에 2를 저장하면, 2번째의 기본 슬롯에서 액세스권의 배포가 유효해진다.
전송 동작 서브 슬롯 패턴 구성 레지스터(625)는 복수의 마스터(100) 각각에 대하여, 액세스권이 배포되는 서브 슬롯 패턴을 저장한다. 구체적으로, 전송 동작 서브 슬롯 패턴 구성 레지스터(625)는 액세스권이 배포되는 서브 슬롯 패턴으로서, 기본 슬롯을 구성하는 각각의 서브 슬롯에서의 액세스권 배포의 가부에 관한 정보를 저장한다. 예를 들어, 전송 동작 서브 슬롯 패턴 구성 레지스터(625)는 액세스권의 배포가 가능한 서브 슬롯에는 ○를 저장하고, 액세스권의 배포가 불가능한 서브 슬롯에는 ×를 저장한다.
마스크 신호 생성기(607)는 복수의 마스터(100)로부터의 리퀘스트의 전송량을 전송량 모니터(640a)로부터 수신한다. 또한, 마스크 신호 생성기(607)는 하나의 기본 슬롯 내에 존재하는 서브 슬롯의 수와 하나의 서브 슬롯의 기간을 슬롯 구성 레지스터(604)로부터 판독한다. 또한, 마스크 신호 생성기(607)는 복수의 마스터(100)의 예약 대역폭을 예약 대역폭 구성 레지스터(621)로부터 판독한다. 다음으로, 마스크 신호 생성기(607)는 하나의 기본 슬롯 내에 존재하는 서브 슬롯의 수와 하나의 서브 슬롯의 기간, 복수의 마스터(100)로부터의 리퀘스트의 전송량, 및 복수의 마스터(100)의 예약 대역폭을 사용하여, 액세스권 부여 신호(700)의 마스크 신호를 생성한다. 또한, 마스크 신호 생성기(607)는 생성된 마스크 신호를 권리 부여 선택 컨트롤러(603b)에 출력한다.
액세스권 부여 신호(700)의 마스크 신호의 생성 방법에 대하여 설명할 것이다. 마스크 신호 생성기(607)는 슬롯 구성 레지스터(604)로부터 판독한 하나의 기본 슬롯 내에 존재하는 서브 슬롯의 수와 하나의 서브 슬롯의 기간을 사용하여, 마스크 신호 생성기(607)에서의 하나의 기본 슬롯 내에 존재하는 서브 슬롯의 수와 하나의 서브 슬롯의 기간을 설정한다. 또한, 마스크 신호 생성기(607)는, 하나의 마스터(100)의 리퀘스트 전송량이 그 마스터(100)의 예약 전송량에 도달한 경우, 그 마스터(100)에 대하여 그 서브 슬롯의 잔여 기간에 대한 마스크 신호를 생성한다.
권리 부여 선택 컨트롤러(603b)는 복수의 마스터(100)의 예약 대역폭을 예약 대역폭 구성 레지스터(621)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603b)는 복수의 마스터(100)의 우선순위 레벨을 예약형 우선순위 레벨 구성 레지스터(622)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603b)는 복수의 마스터(100) 각각에 대하여, 액세스권이 배포되는 기본 슬롯 사이클을 기본 슬롯 사이클 구성 레지스터(623)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603b)는 복수의 마스터(100) 각각에 대하여, 액세스권이 배포되는 기본 슬롯 번호를 동작 기본 슬롯 번호 구성 레지스터(624)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603b)는 복수의 마스터(100)의 각각에 대하여 액세스권이 배포되는 서브 슬롯 패턴을 전송 동작 서브 슬롯 패턴 구성 레지스터(625)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603b)는 마스크 신호를 마스크 신호 생성기(607)로부터 수신한다. 또한, 권리 부여 선택 컨트롤러(603b)는 권리 부여 가능수를 권리 부여수 컨트롤러(602)로부터 수신한다.
다음으로, 권리 부여 선택 컨트롤러(603b)는 복수의 마스터(100)의 예약 대역폭, 복수의 마스터(100)의 우선순위 레벨, 복수의 마스터(100)의 기본 슬롯 사이클, 복수의 마스터(100)의 기본 슬롯 번호, 복수의 마스터(100)의 서브 슬롯 패턴, 마스크 신호, 및 권리 부여 가능수를 사용하여, 액세스권이 부여될 마스터를 선택한다. 또한, 권리 부여 선택 컨트롤러(603b)에 의해 액세스권이 부여될 마스터를 선택하는 방법에 대해서는, 이후에 도 8 및 도 9를 참조하여 상세하게 설명될 것이다.
또한, 권리 부여 선택 컨트롤러(603b)는 액세스권이 부여될 마스터로서 선택된 마스터(100)에 액세스권 부여 신호(700)를 배포한다. 구체적으로, 권리 부여 선택 컨트롤러(603b)는 선택된 마스터의 서브 버스 컨트롤러(200a)에 액세스권 부여 신호(700)를 출력한다. 권리 부여 선택 컨트롤러(603b)에서의 액세스권이 부여될 마스터 선택 및 액세스권 부여 신호(700)의 출력은 사이클마다 수행된다. 또한, 권리 부여 선택 컨트롤러(603b)는 마스터(100)의 우선순위 레벨을 나타내는 우선순위 레벨 신호(705)를 마스터(100)의 서브 버스 컨트롤러(200a)에 출력한다. 권리 부여 선택 컨트롤러(603b)에서의 우선순위 레벨 신호(705)의 출력은 예약형 우선순위 레벨 구성 레지스터(622)에 우선순위 레벨이 저장될 때 수행된다. 따라서, 예약형 우선순위 레벨 구성 레지스터(622)에 저장된 우선순위 레벨은 서브 버스 컨트롤러(200a)에도 반영된다.
다음으로, 메모리 컨트롤러(400b)에 대하여 도 7을 참조하여 설명할 것이다. 도 7에 도시한 바와 같이, 메모리 컨트롤러(400b)는 버퍼(401)와 리프레시 컨트롤러(402)를 포함한다. 버퍼(401)의 구성이 제1 실시예에 나타낸 구성과 동일하기 때문에, 그에 대한 설명은 생략될 것이다.
리프레시 컨트롤러(402)는 리프레시 요구 컨트롤러(606)로부터 리프레시 요구 신호(740)를 수신한다. 리프레시 컨트롤러(402)는, 리프레시 요구 신호(740)를 수신하면 리프레시 커맨드를 메모리(500)에 출력함으로써 메모리(500)를 리프레시한다.
다음으로, 권리 부여 선택 컨트롤러(603b)에 의해 액세스권이 부여될 마스터를 선택하는 방법에 대하여, 도 8 및 도 9를 참조하여 설명할 것이다. 도 8 및 도 9에서는, 복수의 마스터(100)로서, 마스터 A, 마스터 B, 마스터 C, 및 마스터 D의 4개의 마스터가 사용된다.
먼저, 도 8을 참조하여, 제2 실시예에서의 예약형 레지스터 그룹의 구성 정보의 예에 대하여 설명할 것이다.
예약 대역폭 구성 레지스터(621)는 마스터 A, 마스터 B, 마스터 C, 및 마스터 D의 예약 대역폭으로서, 각각 10GB/s(gigabytes per second), 5GB/s, 8GB/s, 및 3GB/s를 저장한다.
기본 슬롯 사이클 구성 레지스터(623)는 마스터 A, 마스터 B, 마스터 C, 및 마스터 D의 기본 슬롯 사이클로서, 각각 1, 1, 4, 및 2를 저장한다.
동작 기본 슬롯 번호 구성 레지스터(624)는 마스터 A, 마스터 B, 마스터 C, 및 마스터 D의 동작 기본 슬롯 번호로서, 각각 1, 1, 4, 및 1을 저장한다.
전송 동작 서브 슬롯 패턴 구성 레지스터(625)는 마스터 A의 서브 슬롯 0(ss0), 서브 슬롯 1, 서브 슬롯 2, 및 서브 슬롯 3에서의 전송 동작 서브 슬롯 패턴으로서, ○, ○, ○, ○를 저장한다. 또한, 전송 동작 서브 슬롯 패턴 구성 레지스터(625)는 마스터 B의 서브 슬롯 0, 서브 슬롯 1, 서브 슬롯 2, 및 서브 슬롯 3에서의 전송 동작 서브 슬롯 패턴으로서, ○, ×, ○, ×를 저장한다. 또한, 전송 동작 서브 슬롯 패턴 구성 레지스터(625)는 마스터 C의 서브 슬롯 0, 서브 슬롯 1, 서브 슬롯 2, 및 서브 슬롯 3에서의 전송 동작 서브 슬롯 패턴으로서 ○, ○, ○, ○를 저장한다. 또한, 전송 동작 서브 슬롯 패턴 구성 레지스터(625)는 마스터 D의 서브 슬롯 0, 서브 슬롯 1, 서브 슬롯 2, 및 서브 슬롯 3에서의 전송 동작 서브 슬롯 패턴으로서 ×, ○, ○, ○를 저장한다.
다음으로, 도 9를 참조하여, 도 8에 나타낸 구성에서 권리가 부여될 마스터의 선택에 대하여 설명할 것이다. 도 9에 나타낸 예에서, 본 발명은 권리 부여 가능수가 충분하다는 것을 전제로 하여 설명할 것이다. 권리 부여 가능수가 부족한 경우에는, 도 9의 테이블 및 복수의 마스터(100)의 우선순위 레벨을 사용하여 권리가 부여될 마스터의 선택을 행한다.
권리 부여 선택 컨트롤러(603b)는 마스터 A에 각각의 기본 슬롯의 서브 슬롯마다 액세스권을 배포한다. 또한, 권리 부여 선택 컨트롤러(603b)는 마스터 B에 대하여, 각각의 기본 슬롯의 서브 슬롯 0 및 서브 슬롯 2에서 액세스권의 배포를 행한다. 또한, 권리 부여 선택 컨트롤러(603b)는 마스터 C에 대하여, 4개의 기본 슬롯 사이클의 네번째 기본 슬롯의 서브 슬롯마다 액세스권의 배포를 행한다. 또한, 권리 부여 선택 컨트롤러(603b)는 마스터 D에 대하여 2개의 기본 슬롯 사이클의 첫번째 기본 슬롯의 서브 슬롯 1 내지 3에서 액세스권의 배포를 행한다.
즉, 권리 부여 선택 컨트롤러(603b)는 첫번째 기본 슬롯의 서브 슬롯 0에서는 권리가 부여될 마스터로서, 마스터 A 및 마스터 B를 선택하고, 첫번째 기본 슬롯의 서브 슬롯 1에서는 권리가 부여될 마스터로서, 마스터 A 및 마스터 D를 선택한다. 나머지의 슬롯에 대해서도 마찬가지로, 권리 부여 선택 컨트롤러(603b)는 대역폭이 구성되는 마스터(100)를 권리가 부여될 마스터로서 선택한다
또한, 권리 부여 선택 컨트롤러(603b)는, 권리 부여 선택 컨트롤러(603b)가 마스터(100)들 중 하나에 대해 마스크 신호를 수신한 경우, 그 마스터(100)를 서브 슬롯의 잔여 기간에는 액세스권의 배포 대상으로부터 제거한다.
메모리의 리프레시를 고려한 대역폭 제어에 대하여, 도 10 및 도 11을 참조하여 설명할 것이다.
먼저, 도 10을 참조하여, 제2 실시예에 따른 예약형 레지스터 그룹 및 리프레시 요구 서브 슬롯 번호 구성 레지스터의 구성 정보의 예에 대하여 설명할 것이다. 도 10의 예에서는 설명을 간단하게 하기 위하여, 기본 슬롯 사이클 및 동작 기본 슬롯 번호는 0으로 설정된다.
예약 대역폭 구성 레지스터(621)는 마스터 A, 마스터 B, 마스터 C, 및 마스터 D의 예약 대역폭으로서 각각 10GB/s, 5GB/s, 8GB/s, 3GB/s를 저장한다.
전송 동작 서브 슬롯 패턴 구성 레지스터(625)는 마스터 A의 서브 슬롯 0, 서브 슬롯 1, 서브 슬롯 2, 및 서브 슬롯 3에서의 전송 동작 서브 슬롯 패턴으로서 ○, ○, ○, ○를 저장한다. 또한, 전송 동작 서브 슬롯 패턴 구성 레지스터(625)는 마스터 B의 서브 슬롯 0, 서브 슬롯 1, 서브 슬롯 2, 및 서브 슬롯 3에서의 전송 동작 서브 슬롯 패턴으로서 ○, ×, ○, ×를 저장한다. 또한, 전송 동작 서브 슬롯 패턴 구성 레지스터(625)는 마스터 C의 서브 슬롯 0, 서브 슬롯 1, 서브 슬롯 2, 및 서브 슬롯 3에서의 전송 동작 서브 슬롯 패턴으로서 ×, ○, ○, ○를 저장한다. 또한, 전송 동작 서브 슬롯 패턴 구성 레지스터(625)는 마스터 D의 서브 슬롯 0, 서브 슬롯 1, 서브 슬롯 2, 및 서브 슬롯 3에서의 전송 동작 서브 슬롯 패턴으로서, ×, ○, ×, ○를 저장한다.
리프레시 요구 서브 슬롯 번호 구성 레지스터(605)는 리프레시 요구 컨트롤러(606)가 리프레시 요구 신호(740)를 출력하는 서브 슬롯 번호로서 0을 저장한다.
도 11을 참조하여, 도 10에 나타낸 구성에서 권리가 부여될 마스터의 선택에 대하여 설명할 것이다.
권리 부여 선택 컨트롤러(603b)는 마스터 A에 대하여, 서브 슬롯마다 액세스권의 배포를 행한다. 또한, 권리 부여 선택 컨트롤러(603b)는 마스터 B에 대하여, 서브 슬롯 0 및 서브 슬롯 2에서 액세스권의 배포를 행한다. 또한, 권리 부여 선택 컨트롤러(603b)는 마스터 C에 대하여, 서브 슬롯 1 내지 3에서 액세스권의 배포를 행한다. 또한, 권리 부여 선택 컨트롤러(603b)는 마스터 D에 대하여, 서브 슬롯 1 및 서브 슬롯 3에서 액세스권의 배포를 행한다.
즉, 권리 부여 선택 컨트롤러(603b)는 서브 슬롯 0에서는 권리가 부여될 마스터로서, 마스터 A 및 마스터 B를 선택한다. 또한, 권리 부여 선택 컨트롤러(603b)는 서브 슬롯 1에서는 권리가 부여될 마스터로서, 마스터 A, 마스터 C 및 마스터 D를 선택한다. 또한, 권리 부여 선택 컨트롤러(603b)는 서브 슬롯 2에서는, 권리가 부여될 마스터로서, 마스터 A, 마스터 B 및 마스터 C를 선택한다. 또한, 권리 부여 선택 컨트롤러(603b)는 서브 슬롯 3에서는, 권리가 부여될 마스터로서, 마스터 A, 마스터 C 및 마스터 D를 선택한다.
따라서, 서브 슬롯 0의 구성 대역폭은 15GB/s이고, 서브 슬롯 1의 구성 대역폭은 21GB/s이고, 서브 슬롯 2의 구성 대역폭은 23GB/s이고, 서브 슬롯 3의 구성 대역폭은 21GB/s이다. 따라서, 리프레시 동작을 행하는 서브 슬롯의 구성 대역폭은 다른 서브 슬롯의 구성 대역폭보다 작아진다.
상술한 바와 같이, 제2 실시예에 따른 반도체 장치에서는 전송량 모니터(640a)와 예약 대역폭 구성 레지스터(621)에 의해, 각 서브 슬롯에서의 구성 대역폭을 제한하고 있다. 따라서, 각 마스터(100)로부터의 리퀘스트의 수를 필요 이상으로 전송하지 않도록 제한할 수 있다. 또한, 구성된 대역폭이 서브 슬롯 내에서 획득되도록 구성되기 때문에, 일정한 레벨의 레이텐시를 보증할 수 있다.
또한, 마스크 신호 생성기(607)는 리퀘스트의 전송량이 예약 전송량에 대응하는 수에 도달한 마스터(100)에 대하여, 서브 슬롯의 잔여 기간 동안 마스크 신호를 생성한다. 따라서, 마스터(100)로부터 전송될 리퀘스트의 수를 예약 전송량 이상으로 전송하지 않도록 제한할 수 있다.
또한, 슬롯 구성 레지스터(604), 기본 슬롯 사이클 구성 레지스터(623), 동작 기본 슬롯 번호 구성 레지스터(624), 및 전송 동작 서브 슬롯 패턴 구성 레지스터(625)는 복수의 마스터(100)에 액세스권을 부여하는 서브 슬롯 및 기본 슬롯을 구성한다. 따라서, 마스터가 리퀘스트를 전송하는 순서와 동시에 리퀘스트를 전달하는 마스터의 조합을 프로그래밍하여, 시스템에 따른 대역폭 제어가 가능해진다.
또한, 리프레시 요구 컨트롤러(606), 리프레시 요구 서브 슬롯 번호 구성 레지스터(605), 및 리프레시 컨트롤러(402)에 의해, 리프레시를 발행하는 타이밍을 제어할 수 있다. 따라서, 리프레시로 인해 메모리 액세스할 수 없는 서브 슬롯은 전체의 요구 대역폭을 감소시키고, 리프레시를 고려한 대역폭 제어를 행하는 것이 가능해진다.
또한, 복수의 예약형 레지스터 그룹(620a)과 복수의 마스터(100)를 서로 연관시키는 구성이 채택될 수 있다. 따라서, 예약형 레지스터 그룹(620a)의 수를 마스터(100)의 수에 맞추지 않아도, 유사한 제어를 행할 수 있다.
제2 실시예의 변형예
다음으로, 제2 실시예의 변형예에 대하여 설명할 것이다. 제2 실시예의 변형예에서는, 제2 실시예의 중앙 버스 컨트롤러(600b) 대신에 중앙 버스 컨트롤러(600c)를 사용한다. 중앙 버스 컨트롤러 외의 구성에 대해서는, 제2 실시예에 나타낸 구성과 유사하기 때문에, 그에 대한 설명은 생략될 것이다.
중앙 버스 컨트롤러(600c)에 대하여 도 12를 참조하여 설명할 것이다. 도 12에 도시한 바와 같이, 중앙 버스 컨트롤러(600c)는 부여 가능 최대수 구성 레지스터(601), 권리 부여수 컨트롤러(602), 권리 부여 선택 컨트롤러(603c), 슬롯 구성 레지스터(604), 리프레시 요구 서브 슬롯 번호 구성 레지스터(605), 리프레시 요구 컨트롤러(606), 마스크 신호 생성기(607), 예약형 레지스터 그룹(620b), 및 전송량 모니터(640a)를 포함한다. 부여 가능 최대수 구성 레지스터(601), 권리 부여수 컨트롤러(602), 슬롯 구성 레지스터(604), 리프레시 요구 서브 슬롯 번호 구성 레지스터(605), 리프레시 요구 컨트롤러(606), 및 마스크 신호 생성기(607), 및 전송량 모니터(640a)의 구성은 제2 실시예에 나타낸 구성과 동일하기 때문에, 그에 대한 설명은 생략될 것이다.
예약형 레지스터 그룹(620b)은 예약형 우선순위 레벨 구성 레지스터(622), 기본 슬롯 사이클 구성 레지스터(623), 동작 기본 슬롯 번호 구성 레지스터(624), 및 예약 대역폭 테이블 구성 레지스터(626)를 포함한다. 예약형 우선순위 레벨 구성 레지스터(622), 기본 슬롯 사이클 구성 레지스터(623), 및 동작 기본 슬롯 번호 구성 레지스터(624)의 구성은 제2 실시예에 나타낸 구성과 동일하기 때문에, 그에 대한 설명은 생략될 것이다. 또한, 복수의 마스터(100)와 예약형 레지스터 그룹(620b) 간의 관계는 복수의 마스터(100)와 예약형 레지스터 그룹(620a) 간의 관계와 동일하기 때문에, 그에 대한 설명은 생략될 것이다.
예약 대역폭 테이블 구성 레지스터(626)는 복수의 마스터(100)에 대하여, 기본 슬롯에서의 서브 슬롯마다 예약 대역폭을 저장한다.
권리 부여 선택 컨트롤러(603c)는 복수의 마스터(100)의 우선순위 레벨을 예약형 우선순위 레벨 구성 레지스터(622)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603c)는 복수의 마스터(100) 각각에 대하여, 액세스권이 배포되는 기본 슬롯 사이클을 기본 슬롯 사이클 구성 레지스터(623)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603c)는 복수의 마스터(100)의 각각에 대하여, 액세스권이 배포되는 기본 슬롯 번호를 동작 기본 슬롯 번호 구성 레지스터(624)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603c)는 복수의 마스터(100)에서의 서브 슬롯마다 예약 대역폭을 예약 대역폭 테이블 구성 레지스터(626)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603c)는 마스크 신호를 마스크 신호 생성기(607)로부터 수신한다. 또한, 권리 부여 선택 컨트롤러(603c)는 권리 부여 가능수를 권리 부여수 컨트롤러(602)로부터 수신한다.
권리 부여 선택 컨트롤러(603c)는 복수의 마스터(100)의 우선순위 레벨, 복수의 마스터(100)의 기본 슬롯 사이클, 복수의 마스터(100)의 기본 슬롯 번호, 복수의 마스터(100)의 서브 슬롯마다의 예약 대역폭, 마스크 신호, 및 권리 부여 가능수를 사용하여 액세스권이 부여될 마스터를 선택한다.
또한, 권리 부여 선택 컨트롤러(603c)는 액세스권이 부여될 마스터로서 선택된 마스터(100)에 액세스권 부여 신호(700)를 배포한다. 구체적으로, 권리 부여 선택 컨트롤러(603c)는 선택된 마스터(100)의 서브 버스 컨트롤러(200a)에 액세스권 부여 신호(700)를 출력한다. 또한, 권리 부여 선택 컨트롤러(603c)는 액세스권 부여 신호(700) 이외에, 선택된 마스터(100)의 우선순위 레벨을 선택된 마스터(100)의 서브 버스 컨트롤러(200a)에 출력한다. 권리 부여 선택 컨트롤러(603c)에서의 액세스권이 부여될 마스터의 선택 및 액세스권 부여 신호(700)의 출력은 사이클마다 수행된다. 또한, 권리 부여 선택 컨트롤러(603c)는 마스터(100)의 우선순위 레벨을 나타내는 우선순위 레벨 신호(705)를 그 마스터(100)의 서브 버스 컨트롤러(200a)에 출력한다. 권리 부여 선택 컨트롤러(603c)에서의 우선순위 레벨 신호(705)의 출력은 예약형 우선순위 레벨 구성 레지스터(622)에 우선순위 레벨이 저장될 때 행해진다. 따라서, 예약형 우선순위 레벨 구성 레지스터(622)에 저장된 우선순위 레벨은 서브 버스 컨트롤러(200a)에도 반영된다.
다음으로, 권리 부여 선택 컨트롤러(603c)에 의해 액세스권이 부여될 마스터를 선택하는 방법에 대하여, 도 13 및 도 14를 참조하여 설명될 것이다. 도 13 및 도 14에서는, 복수의 마스터(100)로서, 4개의 마스터(마스터 A, 마스터 B, 마스터 C, 및 마스터 D)를 사용하고 있다.
도 13을 참조하여, 제2 실시예의 변형예에 따른 예약형 레지스터 그룹의 구성 정보의 예에 대하여 설명할 것이다.
예약 대역폭 테이블 구성 레지스터(626)는 마스터 A에서의 서브 슬롯 0 내지 3의 예약 대역폭으로서, 각각 10GB/s, 0GB/s, 10GB/s, 10GB/s를 저장한다. 또한, 예약 대역폭 테이블 구성 레지스터(626)는 마스터 B에서의 서브 슬롯 0 내지 3의 예약 대역폭으로서 각각 13GB/s, 10GB/s, 5GB/s, 5GB/s를 저장한다. 또한, 예약 대역폭 테이블 구성 레지스터(626)는 마스터 C에서의 서브 슬롯 0 내지 3의 예약 대역폭으로서, 각각 8GB/s, 8GB/s, 8GB/s, 8GB/s를 저장한다. 또한, 예약 대역폭 테이블 구성 레지스터(626)는 마스터 D에서의 서브 슬롯 0 내지 3의 예약 대역폭으로서 각각 0GB/s, 8GB/s, 3GB/s, 3GB/s를 저장한다.
즉, 권리 부여 선택 컨트롤러(603c)는 마스터 B 및 마스터 D에 대하여, 액세스권의 배포를 행하는 각 서브 슬롯으로 상이한 예약 대역폭을 구성하고 있다.
기본 슬롯 사이클 구성 레지스터(623)는 마스터 A, 마스터 B, 마스터 C, 및 마스터 D의 기본 슬롯 사이클로서, 각각 1, 1, 4, 및 2를 저장한다.
동작 기본 슬롯 번호 구성 레지스터(624)는 마스터 A, 마스터 B, 마스터 C, 및 마스터 D의 동작 기본 슬롯 번호로서 각각 1, 1, 4, 및 1을 저장한다.
다음으로, 도 14를 참조하여, 도 13의 구성에서 권리가 부여될 마스터의 선택에 대하여 설명할 것이다. 도 14의 예에서, 본 발명은 권리 부여 가능수가 충분하다는 것을 전제로 하여 설명될 것이다. 권리 부여 가능수가 부족한 경우에는, 도 14에 나타낸 테이블 및 복수의 마스터(100)의 우선순위 레벨을 사용하여 권리가 부여될 마스터의 선택을 행한다.
권리 부여 선택 컨트롤러(603c)는 마스터 A에 대하여, 각 기본 슬롯의 서브 슬롯 0, 서브 슬롯 2 및 서브 슬롯 3에서 액세스권의 배포를 행한다. 또한, 권리 부여 선택 컨트롤러(603c)는 마스터 B에 대하여, 각 기본 슬롯의 서브 슬롯마다 액세스권의 배포를 행한다. 또한, 권리 부여 선택 컨트롤러(603c)는 마스터 C에 대하여, 4개의 기본 슬롯 사이클의 4번째 기본 슬롯의 서브 슬롯마다 액세스권의 배포를 행한다. 또한, 권리 부여 선택 컨트롤러(603c)는 마스터 D에 대하여, 2개의 기본 슬롯 사이클의 첫번째 기본 슬롯의 서브 슬롯 1 내지 3에서 액세스권의 배포를 행한다.
즉, 권리 부여 선택 컨트롤러(603c)는 첫번째 기본 슬롯의 서브 슬롯 0에서는 권리가 부여될 마스터로서, 마스터 A 및 마스터 B를 선택하고, 첫번째 기본 슬롯의 서브 슬롯 1에서는 권리가 부여될 마스터로서 마스터 B 및 마스터 D를 선택한다. 권리 부여 선택 컨트롤러(603c)는, 잔여 슬롯에 대해서도 동일하게 대역폭이 구성되는 마스터(100)를 권리가 부여될 마스터로서 선택한다.
또한, 권리 부여 선택 컨트롤러(603c)는, 권리 부여 선택 컨트롤러(603c)가 마스터(100)들 중 하나에 관한 마스크 신호를 수신한 경우, 그 마스터(100)에 대하여 서브 슬롯의 잔여 기간에서는 액세스권의 배포 대상으로부터 제거한다.
상술한 바와 같이, 제2 실시예의 변형예에 따른 반도체 장치에서는, 예약 대역폭 테이블 구성 레지스터(626)가 복수의 마스터(100)에 대하여 서브 슬롯마다 예약 대역폭을 저장하고 있다. 따라서, 제2 실시예와 비교하여 더 유연하게 시스템에 따라 대역폭을 구성할 수 있다.
제3 실시예
다음으로, 제3 실시예에 대하여 설명할 것이다. 제3 실시예에서는, 제2 실시예의 중앙 버스 컨트롤러(600b)를 대신해서 중앙 버스 컨트롤러(600d)를 사용한다. 중앙 버스 컨트롤러 이외의 구성은 제2 실시예에서의 구성과 동일하기 때문에, 그에 대한 설명은 생략될 것이다.
다음으로, 중앙 버스 컨트롤러(600d)에 대하여 도 15를 참조하여 설명할 것이다. 도 15에 도시한 바와 같이, 중앙 버스 컨트롤러(600d)는 부여 가능 최대수 구성 레지스터(601), 권리 부여수 컨트롤러(602), 권리 부여 선택 컨트롤러(603d), 슬롯 구성 레지스터(604), 리프레시 요구 서브 슬롯 번호 구성 레지스터(605), 리프레시 요구 컨트롤러(606), 배포 우선순위 계산 회로(608)와, 베스트 에포트(BE)형 레지스터 그룹(630), 전송량 모니터(640a)를 포함한다. 부여 가능 최대수 구성 레지스터(601), 권리 부여수 컨트롤러(602), 슬롯 구성 레지스터(604), 리프레시 요구 서브 슬롯 번호 구성 레지스터(605), 및 리프레시 요구 컨트롤러(606)의 구성이 제2 실시예에서의 구성과 동일하기 때문에, 그에 대한 설명은 생략될 것이다. 베스트 에포트형 레지스터 그룹은 제2 구성 레지스터 그룹이라고 지칭될 수 있다.
제3 실시예에서의 전송량 모니터(640a)의 기본적인 기능은 제2 실시예에서의 전송량 모니터(640a)와 동일하기 때문에, 그에 대한 설명은 생략될 것이다. 그러나, 제3 실시예에서의 전송량 모니터(640a)는 측정된 복수의 마스터(100)로부터의 리퀘스트의 전송량을 배포 우선순위 계산 회로(608)에 출력한다.
베스트 에포트형 레지스터 그룹(630)은 목표 전송량 구성 레지스터(631), 갱신 전송량 레지스터(632), 배포 우선순위 보정 기간 구성 레지스터(633), 베스트 에포트형 우선순위 레벨 구성 레지스터(634), 배포 우선순위 초기화 간격 구성 레지스터(635), 기본 슬롯 사이클 구성 레지스터(623), 동작 기본 슬롯 번호 구성 레지스터(624), 전송 동작 서브 슬롯 패턴 구성 레지스터(625)를 포함한다. 기본 슬롯 사이클 구성 레지스터(623), 동작 기본 슬롯 번호 구성 레지스터(624) 및 전송 동작 서브 슬롯 패턴 구성 레지스터(625)의 구성은 제2 실시예에서의 구성과 동일하기 때문에, 그에 대한 설명은 생략될 것이다. 또한, 복수의 마스터(100)와 베스트 에포트형 레지스터 그룹(630) 간의 관계는 복수의 마스터(100)와 예약형 레지스터 그룹(620a) 간의 관계와 동일하기 때문에, 그에 대한 설명은 생략될 것이다.
목표 전송량 구성 레지스터(631)는 복수의 마스터(100)에 대하여, 하나의 서브 슬롯당 목표 전송량을 저장한다.
갱신 전송량 레지스터(632)는 복수의 마스터(100)에 대하여, 전송량의 누적값을 나타내는 누적 전송량을 저장한다.
배포 우선순위 보정 기간 구성 레지스터(633)는 배포 우선순위 보정 기간을 저장한다. 용어 "배포 우선순위"는 액세스권의 배포에 관한 우선순위를 의미한다. 또한, 용어 "배포 우선순위 보정 기간"은 복수의 마스터(100)의 목표 전송량이 보정되는 기간을 의미한다. 구체적으로, 현시점에서 배포 우선순위 보정 기간이 나타내는 기간 이후의 목표 전송량은 배포 우선순위를 계산하기 위한 목표 전송량으로서 설정된다. 배포 우선순위 보정 기간 구성 레지스터(633)에 저장되는 배포 우선순위 보정 기간의 값은 변경될 수 있다. 또한, 배포 우선순위 보정 기간은 서브 슬롯 단위이어도 되고, 서브 슬롯 단위가 아니어도 된다. 또한, 배포 우선순위 보정 기간은 복수의 마스터 간에 공통될 수 있거나, 복수의 마스터 각각에 대해 상이할 수 있다.
베스트 에포트형 우선순위 레벨 구성 레지스터(634)는 복수의 마스터(100)에 대하여, 우선순위 레벨을 저장한다. 베스트 에포트형 우선순위 레벨 구성 레지스터(634)에 저장되는 우선순위 레벨은 리퀘스트 발행 컨트롤러(201a)에서 리퀘스트에 부가된다.
배포 우선순위 초기화 간격 구성 레지스터(635)는 배포 우선순위가 초기화되는 간격을 나타내는 서브 슬롯 수를 저장한다. 배포 우선순위의 초기화는 갱신 전송량 레지스터(632)에 저장되는 누적 전송량을 초기화하는 것을 의미한다. 배포 우선순위 초기화 간격 구성 레지스터(635)에 저장되는 배포 우선순위가 초기화되는 간격의 값은 변경될 수 있다. 또한, 배포 우선순위 초기화 간격은 복수의 마스터 간에 공통될 수 있거나, 복수의 마스터 각각에 대해 상이할 수 있다.
배포 우선순위 계산 회로(608)는 액세스권의 배포에 관한 우선순위를 나타내는 배포 우선순위를 계산하는 회로이다. 예를 들어, 배포 우선순위 계산 회로(608)는 복수의 마스터의 목표 전송량에 기초하여 배포 우선순위를 계산한다.
배포 우선순위 계산 회로(608)에 대하여 구체적으로 설명할 것이다. 배포 우선순위 계산 회로(608)는 복수의 마스터(100)로부터의 리퀘스트의 전송량을 전송량 모니터(640a)로부터 수신한다. 또한, 배포 우선순위 계산 회로(608)는 복수의 마스터(100)에 대한 하나의 서브 슬롯당 목표 전송량을 목표 전송량 구성 레지스터(631)로부터 판독한다. 또한, 배포 우선순위 계산 회로(608)는 복수의 마스터(100)에 대한 누적 전송량을 갱신 전송량 레지스터(632)로부터 판독한다. 또한, 배포 우선순위 계산 회로(608)는 배포 우선순위 보정 기간을 배포 우선순위 보정 기간 구성 레지스터(633)로부터 판독한다. 또한, 배포 우선순위 계산 회로(608)는 배포 우선순위 초기화 간격을 배포 우선순위 초기화 간격 구성 레지스터(635)로부터 판독한다. 다음으로, 배포 우선순위 계산 회로(608)는 복수의 마스터(100)로부터의 리퀘스트의 전송량, 복수의 마스터(100)에 대한 하나의 서브 슬롯당 목표 전송량, 복수의 마스터(100)에 대한 누적 전송량, 배포 우선순위 보정 기간, 및 배포 우선순위 초기화 간격을 사용하여 배포 우선순위를 계산한다. 배포 우선순위의 계산 방법에 대해서는, 이후에 도 16a 및 도 16b를 참조하여 상세하게 설명할 것이다. 또한, 배포 우선순위 계산 회로(608)는 계산된 배포 우선순위를 권리 부여 선택 컨트롤러(603d)에 출력한다.
또한, 배포 우선순위 계산 회로(608)는 서브 슬롯이 경과할 때마다, 갱신 전송량 레지스터(632)에 저장되는 누적 전송량을 갱신한다. 구체적으로, 배포 우선순위 계산 회로(608)는 갱신 전송량 레지스터(632)부터 판독된 이전 서브 슬롯까지의 누적 전송량과 전송량 모니터(640a)로부터 수신된 현재 서브 슬롯의 전송량을 사용하여, 현재 서브 슬롯까지의 누적 전송량을 계산한다. 다음으로, 배포 우선순위 계산 회로(608)는 계산된 현재 서브 슬롯까지의 누적 전송량을 갱신 전송량 레지스터(632)에 저장한다.
권리 부여 선택 컨트롤러(603d)는 하나의 기본 슬롯 내에 존재하는 서브 슬롯의 수와 하나의 서브 슬롯의 기간을 슬롯 구성 레지스터(604)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603d)는 배포 우선순위를 배포 우선순위 계산 회로(608)로부터 수신한다. 또한, 권리 부여 선택 컨트롤러(603d)는 복수의 마스터(100) 각각에 대하여, 액세스권이 배포되는 기본 슬롯 사이클을 기본 슬롯 사이클 구성 레지스터(623)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603d)는 복수의 마스터(100) 각각에 대하여, 액세스권이 배포되는 기본 슬롯 번호를 동작 기본 슬롯 번호 구성 레지스터(624)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603d)는 복수의 마스터(100) 각각에 대하여, 액세스권이 배포되는 서브 슬롯 패턴을 전송 동작 서브 슬롯 패턴 구성 레지스터(625)로부터 판독한다. 또한, 권리 부여 선택 컨트롤러(603d)는 권리 부여 가능수를 권리 부여수 컨트롤러(602)로부터 수신한다. 또한, 권리 부여 선택 컨트롤러(603d)는 복수의 마스터(100)의 우선순위 레벨을 베스트 에포트형 우선순위 레벨 구성 레지스터(634)로부터 판독한다.
다음으로, 권리 부여 선택 컨트롤러(603d)는 하나의 기본 슬롯 내에 존재하는 서브 슬롯의 수, 하나의 서브 슬롯의 기간, 배포 우선순위, 복수의 마스터(100)의 기본 슬롯 사이클, 복수의 마스터(100)의 기본 슬롯 번호, 복수의 마스터(100)의 서브 슬롯 패턴, 및 권리 부여 가능수를 사용하여, 액세스권이 부여될 마스터를 선택한다.
또한, 권리 부여 선택 컨트롤러(603d)는 액세스권이 부여될 마스터로서 선택되는 마스터(100)에 액세스권 부여 신호(700)를 배포한다. 구체적으로, 권리 부여 선택 컨트롤러(603d)는 선택한 마스터(100)의 서브 버스 컨트롤러(200a)에 액세스권 부여 신호(700)를 출력한다. 또한, 권리 부여 선택 컨트롤러(603d)는 액세스권 부여 신호(700) 이외에, 선택된 마스터(100)의 우선순위 레벨을 선택된 마스터(100)의 서브 버스 컨트롤러(200a)에 출력한다. 권리 부여 선택 컨트롤러(603d)에서의 액세스권이 부여될 마스터의 선택 및 액세스권 부여 신호(700)의 출력은 사이클마다 수행된다. 또한, 권리 부여 선택 컨트롤러(603d)는 마스터(100)의 우선순위 레벨을 나타내는 우선순위 레벨 신호(705)를 마스터(100)의 서브 버스 컨트롤러(200a)에 출력한다. 권리 부여 선택 컨트롤러(603d)에서의 우선순위 레벨 신호(705)의 출력은 베스트 에포트형 우선순위 레벨 구성 레지스터(634)에 우선순위 레벨이 저장될 때 수행된다. 따라서, 베스트 에포트형 우선순위 레벨 구성 레지스터(634)에 저장되는 우선순위 레벨은 서브 버스 컨트롤러(200a)에도 반영된다.
다음으로, 배포 우선순위 계산 회로(608)에 의한 배포 우선순위의 계산 방법에 대하여, 도 16a 및 도 16b를 참조하여 설명할 것이다.
먼저, 도 16a를 참조하여, 제3 실시예에 따른 일정 간격으로 리퀘스트를 발행하는 마스터에 대한 배포 우선순위의 계산 방법에 대하여 설명할 것이다. 도 16a에서의 마스터는 마스터 A라고 가정된다. 또한, 도 16a에서의 배포의 우선순위 보정 기간은 하나의 서브 슬롯이라고 가정된다. 또한, 도 16a에 나타낸 점선은 마스터 A의 하나의 서브 슬롯당 목표 전송량을 기초로 하여 그려진 선이다. 점선의 종축 방향의 길이는 실행 시간에서의 목표 전송량을 나타낸다. 또한, 도 16a에 도시된 (1) 내지 (4)의 화살표의 기울기는 각각 배포 우선순위를 나타내고, 기울기가 클수록 배포 우선순위는 더 높아진다고 가정된다. 또한, 도 16a에 도시된 (5) 내지 (8)의 직선의 기울기는 각각 마스터 A에 의해 획득된 대역폭을 나타낸다.
배포 우선순위 계산 회로(608)는 갱신 전송량 레지스터(632)부터 판독된 마스터 A의 이전 서브 슬롯까지의 누적 전송량에, 전송량 모니터(640a)로부터 수신된 마스터 A의 현재 서브 슬롯의 전송량을 가산함으로써, 현재 서브 슬롯까지의 누적 전송량을 계산한다.
또한, 배포 우선순위 계산 회로(608)는 목표 전송량 구성 레지스터(631)로부터 판독된 마스터 A의 하나의 서브 슬롯당 목표 전송량과 배포 우선순위 보정 기간 구성 레지스터(633)로부터 판독된 배포 우선순위 보정 기간을 사용하여, 배포 우선순위 보정 기간 이후의 목표 전송량을 계산한다. 즉, 배포 우선순위 계산 회로(608)는 배포 우선순위 보정 기간인 하나의 서브 슬롯 이후의 목표 전송량을 계산한다.
다음으로, 배포 우선순위 계산 회로(608)는 현재 서브 슬롯까지의 누적 전송량과 하나의 서브 슬롯 이후의 목표 전송량을 사용하여 배포 우선순위를 계산한다.
다음으로, 구체예로서, 도 16a에 도시된 (1)의 화살표의 기울기가 나타내는 배포 우선순위의 계산 방법에 대하여 설명할 것이다.
(1)의 화살표의 기울기는 실행 시간이 0일 때 계산된다. 실행 시간이 0인 시점은 갱신 전송량 레지스터(632)에 저장되는 마스터 A의 누적 전송량이 초기화된 직후의 서브 슬롯의 개시될 때의 타이밍에 대응한다. 갱신 전송량 레지스터(632)에 저장되는 마스터 A의 누적 전송량의 초기화는 배포 우선순위 계산 회로(608)가 배포 우선순위 초기화 간격 구성 레지스터(635)로부터 판독한 배포 우선순위 초기화 간격을 사용하여 수행된다. 즉, 배포 우선순위 초기화 간격이 나타내는 서브 슬롯 수의 간격마다, 마스터 A의 누적 전송량의 초기화가 수행된다.
실행 시간이 0일 때, 마스터 A의 현재 서브 슬롯까지의 누적 전송량은 0이다. 따라서, 실행 시간이 0이면서 또한 전송량이 0인 점과, 배포 우선순위 보정 기간인 하나의 서브 슬롯 이후(실행 시간이 하나의 서브 슬롯일 때)의 목표 전송량이 나타내는 점을 연결한 직선은 (1)의 화살표가 된다.
다음으로, 구체예로서, 도 16a에 도시된 (2)의 화살표의 기울기가 나타내는 배포 우선순위의 계산 방법에 대하여 설명할 것이다.
(2)의 화살표의 기울기는 실행 시간이 하나의 서브 슬롯이 될 때 계산된다. (5)의 직선의 기울기는 실행 시간이 제로 내지 하나의 서브 슬롯일 때 마스터 A에 의해 획득된 대역폭을 나타낸다.
실행 시간이 하나의 서브 슬롯일 때, 마스터 A의 이전 서브 슬롯까지의 누적 전송량은 0이다. 또한, 전송량 모니터(640a)로부터 수신된 마스터 A의 현재의 서브 슬롯의 전송량은 (5)의 직선의, 실행 시간이 하나의 서브 슬롯일 때의 종축 방향의 길이에 대응한다. 따라서, (5)의 직선의, 실행 시간이 하나의 서브 슬롯일 때의 종축 방향의 길이는 마스터 A의 현재 서브 슬롯까지의 누적 전송량을 나타낸다. 마스터 A의 현재 서브 슬롯까지의 누적 전송량을 나타내는 점과 하나의 서브 슬롯 이후(실행 시간이 2개의 서브 슬롯일 때)의 목표 전송량이 나타내는 점을 연결한 직선이 (2)의 화살표가 된다.
다음으로, 구체예로서, 도 16a에 도시된 (3)의 화살표의 기울기가 나타내는 배포 우선순위의 계산 방법에 대하여 설명할 것이다.
(3)의 화살표의 기울기는 실행 시간이 2개의 서브 슬롯일 때 계산된다. (6)의 직선의 기울기는 실행 시간이 하나 내지 2개의 서브 슬롯일 때 마스터 A에 의해 획득된 대역폭을 나타낸다.
실행 시간이 2개의 서브 슬롯일 때 마스터 A의 현재 서브 슬롯까지의 누적 전송량은, (6)의 직선의, 실행 시간이 2개의 서브 슬롯일 때의 종축 방향의 길이에 대응한다. 마스터 A의 현재 서브 슬롯까지의 누적 전송량을 나타내는 점과 하나의 서브 슬롯 이후(실행 시간이 3개의 서브 슬롯일 때)의 목표 전송량이 나타내는 점을 연결한 직선은 (3)의 화살표가 된다. 도 16a에 도시된 (4)의 화살표의 기울기가 나타내는 배포 우선순위의 계산 방법은 상술한 방법과 유사하기 때문에, 그에 대한 설명은 생략될 것이다.
다음으로, 도 16b를 참조하여, 제3 실시예에 따른 전반은 리퀘스트를 발행하지 않고 후반에만 리퀘스트를 발행하는 마스터에 관한 배포 우선순위의 계산 방법에 대하여 설명할 것이다. 도 16b의 마스터는 마스터 B라고 가정된다. 또한, 도 16b에서의 배포 우선순위 보정 기간은 1.7 서브 슬롯이라고 가정된다. 또한, 도 16b에 나타낸 점선은 마스터 B의 하나의 서브 슬롯당 목표 전송량을 기초로 하여 그려진 선이다. 점선의 종축 방향의 길이는 그 실행 시간에서의 목표 전송량을 나타낸다. 또한, 도 16b에 도시된 (9) 내지 (12)의 화살표의 기울기는 각각 배포 우선순위를 나타낸다. 또한, 도 16b에 도시된 (13)의 직선의 기울기는 마스터 B에 의해 획득된 대역폭을 나타낸다.
다음으로, 구체예로서, 도 16b에 도시된 (9)의 화살표의 기울기가 나타내는 배포 우선순위의 계산 방법에 대하여 설명할 것이다.
(9)의 화살표의 기울기는 실행 시간이 0일 때 계산된다. 실행 시간이 0일 때, 마스터 B의 현재 서브 슬롯까지의 누적 전송량은 0이다. 따라서, 실행 시간이 0이면서 또한 전송량이 0인 점과 배포 우선순위 보정 기간인 1.7 서브 슬롯 이후(실행 시간이 1.7 서브 슬롯일 때)의 목표 전송량이 나타내는 점을 연결한 직선이 (9)의 화살표가 된다.
다음으로, 구체예로서, 도 16b에 도시된 (10)의 화살표의 기울기가 나타내는 배포 우선순위의 계산 방법에 대하여 설명할 것이다.
(10)의 화살표의 기울기는 실행 시간이 하나의 서브 슬롯일 때 계산된다. 마스터 B는 리퀘스트가 전송되지 않았기 때문에, 실행 시간이 하나의 서브 슬롯일 때 대역폭을 획득하지 않는다. 따라서, 실행 시간이 하나의 서브 슬롯일 때, 마스터 B의 현재의 서브 슬롯까지의 누적 전송량은 0이다. 따라서, 실행 시간이 0이면서 또한 전송량이 0인 점과 배포 우선순위 보정 기간인 1.7 서브 슬롯 이후(실행 시간이 2.7 서브 슬롯일 때)의 목표 전송량이 나타내는 점을 연결한 직선이 (10)의 화살표가 된다. 또한, 도 16b에 도시된 (11) 및 (12)의 화살표의 기울기가 나타내는 배포 우선순위의 계산 방법은 상술한 방법과 유사하기 때문에, 그에 대한 설명은 생략될 것이다.
다음으로, (13)의 직선의 기울기가 나타내는 마스터 B에 의해 획득된 대역폭에 대하여 설명할 것이다. 실행 시간이 3개의 서브 슬롯일 때, 마스터 B의 배포의 우선순위로서 (12)의 화살표의 기울기가 나타내는 배포 우선순위가 계산된다. 또한, 마스터 B의 배포의 우선순위를 사용하여, 액세스권이 부여될 마스터로서 마스터 B가 선택되었다고 가정된다. 마스터 B가 리퀘스트를 전달한 후, 마스터 B는 (13)의 직선의 기울기가 나타내는 대역폭을 획득한다.
상술한 바와 같이, 제3 실시예에 따른 반도체 장치에서는, 배포 우선순위 계산 회로(608)에 의해, 마스터의 목표 전송량에 기초하여 배포 우선순위를 계산한다. 따라서, 장기간에서의 획득된 전송량 보정이 가능해진다.
또한, 배포 우선순위 보정 기간 구성 레지스터(633)는 배포 우선순위 보정 기간을 저장한다. 또한, 배포 우선순위 보정 기간 구성 레지스터(633)에 저장되는 배포 우선순위 보정 기간의 값은 변경될 수 있다. 따라서, 시스템에 따라 최적인 배포 우선순위를 계산할 수 있다.
또한, 배포 우선순위 초기화 간격 구성 레지스터(635)는 배포 우선순위를 초기화하는 간격을 나타내는 서브 슬롯 수를 저장한다. 또한, 배포 우선순위의 초기화에 의해, 갱신 전송량 레지스터(632)에 저장되는 누적 전송량이 초기화된다. 따라서, 장기간에서의 오차의 누적을 경감할 수 있다. 또한, 마스터의 동작에 따라 리셋 간격을 설정할 수 있다.
또한, 복수의 베스트 에포트형 레지스터 그룹(630)과 복수의 마스터(100)가 서로 연관되는 구성이 채택될 수 있다. 따라서, 베스트 에포트형 레지스터 그룹(630)의 수가 마스터(100)의 수와 동일하지 않은 경우에도, 유사한 제어를 행할 수 있다.
제4 실시예
다음으로, 제4 실시예에 대하여 설명할 것이다. 제4 실시예에서는, 제2 실시예에서의 예약형 레지스터 그룹(620a)을 사용하는 액세스권의 제어와 제3 실시예에서의 베스트 에포트형 레지스터 그룹(630)을 사용하는 액세스권의 제어는 복합적으로 수행된다. 도 17에 도시된 바와 같이, 제4 실시예에 따른 반도체 장치는 서브 버스 컨트롤러(200b) 및 중앙 버스 컨트롤러(600e)를 포함한다. 서브 버스 컨트롤러(200b) 및 중앙 버스 컨트롤러(600e) 이외의 구성은 제2 실시예 및 3의 구성과 동일하기 때문에, 그에 대한 설명은 생략될 것이다.
중앙 버스 컨트롤러(600e)는 부여 가능 최대수 구성 레지스터(601), 권리 부여수 컨트롤러(602), 권리 부여 선택 컨트롤러(603e), 슬롯 구성 레지스터(604), 리프레시 요구 서브 슬롯 번호 구성 레지스터(605), 리프레시 요구 컨트롤러(606), 마스크 신호 생성기(607), 배포 우선순위 계산 회로(608), 예약형 레지스터 그룹(620a), 베스트 에포트형 레지스터 그룹(630), 및 전송량 모니터(640b)를 포함한다. 권리 부여 선택 컨트롤러(603e) 및 전송량 모니터(640b) 이외의 구성은 제2 실시예 또는 제3 실시예의 구성과 동일하기 때문에, 그에 대한 설명은 생략될 것이다.
먼저, 권리 부여 선택 컨트롤러(603e)에 대하여 설명할 것이다. 권리 부여 선택 컨트롤러(603e)는 제2 실시예의 권리 부여 선택 컨트롤러(603b)에서의 액세스권이 부여될 마스터의 선택 기능과, 제3 실시예의 권리 부여 선택 컨트롤러(603d)에서의 액세스권이 부여될 마스터의 선택 기능의 양쪽을 포함하는 기능부이다. 또한, 권리 부여 선택 컨트롤러(603b)에서의 액세스권이 부여될 마스터의 선택 처리를 예약형 레지스터 그룹(620a)을 이용하는 선택 처리라고 칭한다. 또한, 권리 부여 선택 컨트롤러(603d)에서의 권리가 부여될 마스터의 선택 처리를, 베스트 에포트형 레지스터 그룹(630)을 이용하는 선택 처리라고 칭한다. 권리 부여 선택 컨트롤러(603e)는 예약형 레지스터 그룹(620a)을 사용하는 선택 처리와, 베스트 에포트형 레지스터 그룹(630)을 이용하는 선택 처리를 독립적으로 수행한다.
양쪽 선택 처리가 서로 경합할 때에는, 이들 선택 처리 중 하나를 우선 순위로 설정한다. 양쪽 선택 처리가 서로 경합하는 상황은 양쪽 선택 처리에서 1개의 마스터를 권리가 부여될 마스터로서 선택하는 상황을 의미한다. 예를 들어, 베스트 에포트형 레지스터 그룹(630)을 이용하는 선택 처리를 우선 순위로 설정할 경우, 양쪽 선택 처리가 서로 경합할 때, 베스트 에포트형 레지스터 그룹(630)을 이용하는 선택 처리에 의해, 해당 마스터를 액세스권이 부여될 마스터로서 선택한다.
권리 부여 선택 컨트롤러(603e)는 선택된 마스터(100)에 액세스권 부여 신호(700)를 배포한다. 구체적으로, 권리 부여 선택 컨트롤러(603e)는 선택된 마스터(100)의 서브 버스 컨트롤러(200b)에 액세스권 부여 신호(700)를 출력한다. 또한, 권리 부여 선택 컨트롤러(603e)는 액세스권 부여 신호(700) 이외에, 선택된 마스터(100)의 우선순위 레벨 및 액세스권 속성 신호(750)를 마스터(100)의 서브 버스 컨트롤러(200b)에 출력한다.
다음으로, 액세스권 속성 신호(750)에 대하여 설명할 것이다. 액세스권 속성 신호(750)는 부여된 액세스권이 예약형 레지스터 그룹(620a)을 이용하는 선택 처리에 의해 부여된 액세스권인지, 베스트 에포트형 레지스터 그룹(630)을 이용하는 선택 처리에 의해 부여된 액세스권인지를 나타내는 식별 정보이다. 또한, 예약형 레지스터 그룹(620a)을 이용하는 선택 처리에 의해 부여된 액세스권은 예약형 레지스터 그룹(620a)을 이용하여 부여되는 액세스권이라고 칭한다. 또한, 베스트 에포트형 레지스터 그룹(630)을 사용하는 선택 처리에 의해 부여된 액세스권은 베스트 에포트형 레지스터 그룹(630)을 이용하여 부여되는 액세스권이라고 칭한다.
다음으로, 서브 버스 컨트롤러(200b)에 대하여 설명할 것이다. 서브 버스 컨트롤러(200b)는 리퀘스트 발행 컨트롤러(201b)를 포함한다. 리퀘스트 발행 컨트롤러(201b)에서의 제어는 액세스권 속성 신호(750)에 관한 제어 이외에는 리퀘스트 발행 컨트롤러(201a)와 동일하기 때문에, 중복되는 설명에 대해서는 생략될 것이다.
리퀘스트 발행 컨트롤러(201b)는 액세스권 속성 신호(750)를 권리 부여 선택 컨트롤러(603e)로부터 수신한다. 또한, 리퀘스트 발행 컨트롤러(201b)는, 리퀘스트 발행 컨트롤러(201b)가 버스(10)로부터 수신된 리퀘스트를 버스(20)에 출력할 때에는, 액세스권 속성 신호(750)를 리퀘스트에 부가하여 출력한다.
다음으로, 전송량 모니터(640b)에 대하여 설명할 것이다. 전송량 모니터(640b)는 예약형 전송량 모니터(641)와 베스트 에포트 전송량 모니터(642)를 포함한다.
예약형 전송량 모니터(641)는 복수의 마스터(100)로부터 각각의 서브 버스 컨트롤러(200b)를 통해 버스 아비터(300)에 전송되는 예약형 리퀘스트의 전송량을 측정하는 기능부이다. 예약형 리퀘스트는 예약형 레지스터 그룹(620a)을 이용하여 부여되는 액세스권에 의해 리퀘스트 발행 컨트롤러(201b)를 통과한 리퀘스트를 나타낸다.
예약형 전송량 모니터(641)는 복수의 버스(20)로부터의 모니터 신호(730)에 의해 복수의 마스터(100)로부터 전송되는 예약형 리퀘스트의 전송량을 측정한다. 리퀘스트가 예약형 리퀘스트인지 여부는 모니터 신호(730)에 부가된 액세스권 속성 신호(750)에 의해 식별된다. 다음으로, 예약형 전송량 모니터(641)는 측정된 복수의 마스터(100)로부터 전송되는 예약형 리퀘스트의 전송량을 마스크 신호 생성기(607)에 출력한다.
베스트 에포트 전송량 모니터(642)는 복수의 마스터(100)로부터 각각의 서브 버스 컨트롤러(200b)를 통해 버스 아비터(300)에 전송되는 베스트 에포트형 리퀘스트의 전송량을 측정하는 기능부이다. 용어 "베스트 에포트형 리퀘스트"는 베스트 에포트형 레지스터 그룹(630)을 이용하여 부여된 액세스권에 의해 리퀘스트 발행 컨트롤러(201b)를 통과한 리퀘스트를 의미한다.
베스트 에포트 전송량 모니터(642)는 복수의 버스(20)로부터의 모니터 신호(730)에 의해 복수의 마스터(100)로부터 전송된 베스트 에포트형 리퀘스트의 전송량을 측정한다. 리퀘스트가 베스트 에포트형 리퀘스트인지 여부는 모니터 신호(730)에 부가된 액세스권 속성 신호(750)에 의해 식별된다. 다음으로, 베스트 에포트 전송량 모니터(642)는 측정된 복수의 마스터(100)로부터 전송된 베스트 에포트형 리퀘스트의 전송량을 배포 우선순위 계산 회로(608)에 출력한다.
상술한 바와 같이, 제4 실시예에 따른 반도체 장치에서, 권리 부여 선택 컨트롤러(603e)는 예약형 레지스터 그룹(620a)을 이용하여 부여된 액세스권과 베스트 에포트형 레지스터 그룹(630)을 이용하여 부여된 액세스권의 2가지 종류의 액세스권을 배포한다. 따라서, 단기간에 미리 결정된 대역폭을 획득할 필요가 있는 마스터와 장기간에 미리 결정된 대역폭을 획득할 필요가 있는 마스터를 효율적으로 제어할 수 있다.
상술한 예에서, 제4 실시예에서는, 제2 실시예의 예약형 레지스터 그룹(620a)을 이용하는 액세스권의 제어와 제3 실시예의 베스트 에포트형 레지스터 그룹(630)을 이용하는 액세스권의 제어를 복합적으로 행하는 것을 예시하여 설명했지만, 본 발명은 이러한 예에 한정되지 않는다. 제2 실시예의 변형예의 예약형 레지스터 그룹(620b)을 이용하는 액세스권의 제어와 제3 실시예의 베스트 에포트형 레지스터 그룹(630)을 이용하는 액세스권의 제어를 복합적으로 행할 수 있다.
본 발명자에 의해 이루어진 발명을 실시예들을 참조하여 설명했지만, 본 발명은 상술한 실시예들에 한정되지 않는다. 본 발명의 범위 내에서 실시예들에 대해 다양한 변경이 이루어질 수 있다.
100: 마스터
200a, 200b: 서브 버스 컨트롤러
201a, 201b: 리퀘스트 발행 컨트롤러
300: 버스 아비터
400a, 400b: 메모리 컨트롤러
401: 버퍼
402: 리프레시 컨트롤러
500: 메모리
600a, 600b, 600c, 600d, 600e: 중앙 버스 컨트롤러
601: 부여 가능 최대수 구성 레지스터
602: 권리 부여수 컨트롤러
603a, 603b, 603c, 603d, 603e: 권리 부여 선택 컨트롤러
604: 슬롯 구성 레지스터
605: 리프레시 요구 서브 슬롯 번호 구성 레지스터
606: 리프레시 요구 컨트롤러
607: 마스크 신호 생성기
608: 배포 우선순위 계산 회로
610: QoS 정보 레지스터
620a, 620b: 예약형 레지스터 그룹
621: 예약 대역폭 구성 레지스터
622: 예약형 우선순위 레벨 구성 레지스터
623: 기본 슬롯 사이클 구성 레지스터
624: 동작 기본 슬롯 번호 구성 레지스터
625: 전송 동작 서브 슬롯 패턴 구성 레지스터
626: 예약 대역폭 테이블 구성 레지스터
630: 베스트 에포트형 레지스터 그룹
631: 목표 전송량 구성 레지스터
632: 갱신 전송량 레지스터
633: 배포 우선순위 보정 기간 구성 레지스터
634: 베스트 에포트형 우선순위 레벨 구성 레지스터
635: 배포 우선순위 초기화 간격 구성 레지스터
640a, 640b: 전송량 모니터
641: 예약형 전송량 모니터
642: 베스트 에포트 전송량 모니터

Claims (24)

  1. 반도체 장치로서,
    복수의 마스터;
    메모리 컨트롤러;
    상기 복수의 마스터와 상기 메모리 컨트롤러를 접속시키는 버스;
    상기 복수의 마스터의 QoS 정보를 저장하는 QoS 정보 레지스터;
    상기 메모리 컨트롤러의 버퍼의 공간 정보에 기초하여 액세스권의 권리 부여 가능수를 계산하는 권리 부여수 컨트롤러;
    상기 QoS 정보 레지스터의 상기 QoS 정보 및 상기 권리 부여수 컨트롤러로부터의 상기 권리 부여 가능수에 기초하여, 상기 액세스권이 부여될 마스터를 선택하는 권리 부여 선택 컨트롤러; 및
    상기 권리 부여 선택 컨트롤러로부터 상기 액세스권이 부여되지 않은 마스터로부터의 리퀘스트를 통과시키지 않는 리퀘스트 발행 컨트롤러
    를 포함하는 반도체 장치.
  2. 제1항에 있어서,
    상기 권리 부여 가능수의 최대수를 저장하는 부여 가능 최대수 구성 레지스터를 더 포함하고,
    상기 권리 부여수 컨트롤러는 상기 메모리 컨트롤러의 버퍼의 공간 정보에 기초하여, 상기 부여 가능 최대수 구성 레지스터에 저장되는 상기 최대수를 권리 부여 가능수의 상한으로 하여 상기 권리 부여 가능수를 계산하는 반도체 장치.
  3. 제1항에 있어서,
    상기 리퀘스트 발행 컨트롤러는 상기 액세스권이 부여된 마스터로부터의 리퀘스트를 유지하고 있지 않은 경우, 상기 액세스권을 반환하고,
    상기 권리 부여수 컨트롤러는 상기 메모리 컨트롤러의 버퍼의 공간 정보 및 상기 액세스권의 반환수에 기초하여, 상기 액세스권의 권리 부여 가능수를 계산하는 반도체 장치.
  4. 반도체 장치로서,
    복수의 마스터;
    메모리 컨트롤러;
    상기 복수의 마스터와 상기 메모리 컨트롤러를 접속시키는 버스;
    상기 복수의 마스터의 예약 대역폭을 저장하는 예약 대역폭 구성 레지스터를 포함하는 제1 구성 레지스터 그룹;
    미리 결정된 기간을 저장하는 슬롯 구성 레지스터;
    상기 복수의 마스터의 전송량을 측정하는 전송량 모니터;
    상기 메모리 컨트롤러의 버퍼의 공간 정보에 기초하여 액세스권의 권리 부여 가능수를 계산하는 권리 부여수 컨트롤러;
    상기 제1 구성 레지스터 그룹의 구성 정보, 상기 슬롯 구성 레지스터의 상기 미리 결정된 기간, 상기 전송량 모니터에 의해 측정된 상기 전송량, 및 상기 권리 부여수 컨트롤러로부터의 상기 권리 부여 가능수에 기초하여, 상기 액세스권이 부여될 마스터를 선택하는 권리 부여 선택 컨트롤러; 및
    상기 권리 부여 선택 컨트롤러로부터 상기 액세스권이 부여되지 않은 마스터로부터의 리퀘스트를 통과시키지 않는 리퀘스트 발행 컨트롤러를 포함하는 반도체 장치.
  5. 제4항에 있어서,
    상기 제1 구성 레지스터 그룹은 상기 복수의 마스터의 우선순위 레벨을 저장하는 예약형 우선순위 레벨 구성 레지스터를 더 포함하는 반도체 장치.
  6. 제4항에 있어서,
    상기 제1 구성 레지스터 그룹은 상기 복수의 마스터 각각에 대하여, 상기 액세스권이 배포되는 기본 슬롯의 번호를 저장하는 동작 기본 슬롯 번호 구성 레지스터를 더 포함하는 반도체 장치.
  7. 제6항에 있어서,
    상기 제1 구성 레지스터 그룹은 상기 복수의 마스터 각각에 대하여, 상기 액세스권이 배포되는 서브 슬롯 패턴을 저장하는 전송 동작 서브 슬롯 패턴 구성 레지스터를 더 포함하는 반도체 장치.
  8. 제6항에 있어서,
    상기 제1 구성 레지스터 그룹은 상기 복수의 마스터 각각에 대하여, 상기 액세스권이 배포되는 상기 기본 슬롯의 사이클을 저장하는 기본 슬롯 사이클 구성 레지스터를 더 포함하는 반도체 장치.
  9. 제6항에 있어서,
    상기 제1 구성 레지스터 그룹은 상기 예약 대역폭 구성 레지스터 대신에, 상기 복수의 마스터 각각에 대하여, 서브 슬롯마다 상기 예약 대역폭을 저장하는 예약 대역폭 테이블 구성 레지스터를 포함하는 반도체 장치.
  10. 제4항에 있어서,
    메모리의 리프레시 요구 신호를 상기 메모리 컨트롤러에 출력하도록 구성되는 리프레시 요구 컨트롤러를 더 포함하는 반도체 장치.
  11. 제10항에 있어서,
    상기 리프레시 요구 컨트롤러가 리프레시 요구를 발행하는 서브 슬롯 번호를 저장하는 리프레시 요구 서브 슬롯 번호 구성 레지스터를 더 포함하는 반도체 장치.
  12. 제4항에 있어서,
    복수의 제1 구성 레지스터 그룹을 포함하고, 상기 복수의 제1 구성 레지스터 그룹과 상기 복수의 마스터는 서로 연관되는 반도체 장치.
  13. 제4항에 있어서,
    상기 리퀘스트 발행 컨트롤러는 상기 액세스권이 부여된 마스터로부터의 리퀘스트를 유지하고 있지 않은 경우, 상기 액세스권을 반환하고,
    상기 권리 부여수 컨트롤러는 상기 메모리 컨트롤러의 버퍼의 공간 정보 및 상기 액세스권의 반환수에 기초하여, 액세스권의 권리 부여 가능수를 계산하는 반도체 장치.
  14. 반도체 장치로서,
    복수의 마스터;
    메모리 컨트롤러;
    상기 복수의 마스터와 상기 메모리 컨트롤러를 접속시키는 버스;
    상기 복수의 마스터의 목표 전송량을 저장하는 목표 전송량 구성 레지스터를 포함하는 제2 구성 레지스터 그룹;
    미리 결정된 기간을 저장하는 슬롯 구성 레지스터;
    상기 목표 전송량에 기초하여, 액세스권의 배포의 우선순위인 배포 우선순위를 계산하는 배포 우선순위 계산 회로;
    상기 메모리 컨트롤러의 버퍼의 공간 정보에 기초하여, 상기 액세스권의 권리 부여 가능수를 계산하는 권리 부여수 컨트롤러;
    상기 슬롯 구성 레지스터의 상기 미리 결정된 기간, 상기 배포 우선순위 계산 회로에 의해 계산된 상기 배포 우선순위, 및 상기 권리 부여수 컨트롤러로부터의 상기 권리 부여 가능수에 기초하여, 상기 액세스권이 부여될 마스터를 선택하는 권리 부여 선택 컨트롤러; 및
    상기 권리 부여 선택 컨트롤러로부터 상기 액세스권이 부여되지 않은 마스터로부터의 리퀘스트를 통과시키지 않는 리퀘스트 발행 컨트롤러를 포함하는 반도체 장치.
  15. 제14항에 있어서,
    상기 복수의 마스터의 전송량을 측정하는 전송량 모니터를 더 포함하고,
    상기 제2 구성 레지스터 그룹은 상기 목표 전송량이 보정되는 기간을 저장하는 배포 우선순위 보정 기간 구성 레지스터를 더 포함하고,
    상기 배포 우선순위 계산 회로는 상기 목표 전송량, 상기 전송량 모니터에 의해 측정된 상기 전송량의 누적값, 및 상기 목표 전송량이 보정되는 기간에 기초하여, 상기 액세스권의 배포의 우선순위를 나타내는 배포 우선순위를 계산하는 반도체 장치.
  16. 제14항에 있어서,
    상기 제2 구성 레지스터 그룹은 상기 복수의 마스터의 우선순위 레벨을 저장하는 베스트 에포트형(best effort type) 우선순위 레벨 구성 레지스터를 더 포함하는 반도체 장치.
  17. 제14항에 있어서,
    상기 제2 구성 레지스터 그룹은 상기 배포 우선순위를 초기화하는 간격을 저장하는 배포 우선순위 초기화 간격 구성 레지스터를 더 포함하는 반도체 장치.
  18. 제14항에 있어서,
    상기 제2 구성 레지스터 그룹은 상기 복수의 마스터 각각에 대하여, 상기 액세스권이 배포되는 기본 슬롯의 사이클을 저장하는 기본 슬롯 사이클 구성 레지스터를 더 포함하는 반도체 장치.
  19. 제18항에 있어서,
    상기 제2 구성 레지스터 그룹은 상기 복수의 마스터 각각에 대하여, 상기 액세스권이 배포되는 상기 기본 슬롯을 저장하는 동작 기본 슬롯 번호 구성 레지스터를 더 포함하는 반도체 장치.
  20. 제14항에 있어서,
    메모리의 리프레시 요구 신호를 상기 메모리 컨트롤러에 출력하도록 구성되는 리프레시 요구 컨트롤러를 더 포함하는 반도체 장치.
  21. 제20항에 있어서,
    상기 리프레시 요구 컨트롤러가 리프레시 요구를 발행하는 서브 슬롯 번호를 저장하는 리프레시 요구 서브 슬롯 번호 구성 레지스터를 더 포함하는 반도체 장치.
  22. 제14항에 있어서,
    복수의 제2 구성 레지스터 그룹을 포함하고, 상기 복수의 제2 구성 레지스터 그룹과 상기 복수의 마스터는 서로 연관되는 반도체 장치.
  23. 제14항에 있어서,
    상기 리퀘스트 발행 컨트롤러는 상기 액세스권이 부여된 마스터로부터의 리퀘스트를 유지하고 있지 않은 경우, 상기 액세스권을 반환하고;
    상기 권리 부여수 컨트롤러는 상기 메모리 컨트롤러의 버퍼의 공간 정보 및 상기 액세스권의 반환수에 기초하여, 상기 액세스권의 권리 부여 가능수를 계산하는 반도체 장치.
  24. 제14항에 있어서,
    상기 복수의 마스터의 예약 대역폭을 저장하는 예약 대역폭 구성 레지스터를 포함하는 제1 구성 레지스터 그룹; 및
    상기 복수의 마스터의 전송량을 측정하는 전송량 모니터
    를 더 포함하고,
    상기 권리 부여 선택 컨트롤러는 상기 제1 구성 레지스터 그룹의 구성 정보, 상기 슬롯 구성 레지스터의 상기 미리 결정된 기간, 상기 전송량 모니터에 의해 측정된 상기 전송량, 및 상기 권리 부여수 컨트롤러로부터의 상기 권리 부여 가능수, 또는 상기 슬롯 구성 레지스터의 상기 미리 결정된 기간, 상기 배포 우선순위 계산 회로에서 계산된 상기 배포 우선순위, 및 상기 권리 부여수 컨트롤러로부터의 상기 권리 부여 가능수에 기초하여, 상기 권리가 부여될 마스터를 선택하고,
    상기 권리 부여 선택 컨트롤러는 액세스권 부여 신호와 함께, 부여된 액세스권이 상기 제1 구성 레지스터 그룹을 사용하여 부여된 액세스권인지 또는 상기 제2 구성 레지스터 그룹을 사용하여 부여된 액세스권인지를 식별하는 액세스권 속성 신호를 배포하고,
    상기 전송량 모니터는 상기 액세스권 속성 신호에 따라 상기 마스터의 전송량을 측정하는 기능을 포함하는 반도체 장치.
KR1020167027043A 2015-10-01 2015-10-01 반도체 장치 Active KR102344032B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/005013 WO2017056132A1 (ja) 2015-10-01 2015-10-01 半導体装置

Publications (2)

Publication Number Publication Date
KR20180062915A KR20180062915A (ko) 2018-06-11
KR102344032B1 true KR102344032B1 (ko) 2021-12-28

Family

ID=58422810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167027043A Active KR102344032B1 (ko) 2015-10-01 2015-10-01 반도체 장치

Country Status (6)

Country Link
US (3) US10108562B2 (ko)
EP (1) EP3358468B1 (ko)
JP (1) JP6513695B2 (ko)
KR (1) KR102344032B1 (ko)
CN (2) CN114490457B (ko)
WO (1) WO2017056132A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6886301B2 (ja) * 2017-01-26 2021-06-16 キヤノン株式会社 メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置
JP6890055B2 (ja) 2017-06-30 2021-06-18 ルネサスエレクトロニクス株式会社 半導体装置
JP2019101446A (ja) * 2017-11-28 2019-06-24 ルネサスエレクトロニクス株式会社 半導体装置及びそれを備えた半導体システム
JP6946168B2 (ja) 2017-12-22 2021-10-06 ルネサスエレクトロニクス株式会社 半導体装置
JP7018834B2 (ja) * 2018-06-22 2022-02-14 ルネサスエレクトロニクス株式会社 半導体装置
JP7018833B2 (ja) * 2018-06-22 2022-02-14 ルネサスエレクトロニクス株式会社 半導体装置
US11449249B2 (en) 2018-11-26 2022-09-20 Micron Technology, Inc. Configuring command/address channel for memory
JP2021082103A (ja) * 2019-11-21 2021-05-27 ルネサスエレクトロニクス株式会社 調停回路、データ転送システム、及び、調停回路による調停方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171541A (ja) 2002-11-08 2004-06-17 Matsushita Electric Ind Co Ltd データ記憶システムおよび転送制御方法
US20130073762A1 (en) 2011-09-16 2013-03-21 Jong Ho Roh System on chip, electronic system including the same, and method of operating the same
WO2014027445A1 (ja) 2012-08-13 2014-02-20 パナソニック株式会社 アクセス制御装置、中継装置、アクセス制御方法、コンピュータプログラム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0294499B1 (en) * 1987-06-09 1992-08-26 International Business Machines Corporation Control scheme for segmented buffers based on a shared reference count
JP2986176B2 (ja) * 1990-05-11 1999-12-06 株式会社日立製作所 バス権制御方式およびバスシステム
US5265211A (en) * 1992-01-02 1993-11-23 International Business Machines Corporation Arbitration control logic for computer system having dual bus architecture
JP2591502B2 (ja) * 1994-12-09 1997-03-19 日本電気株式会社 情報処理システムおよびそのバス調停方式
US6070205A (en) * 1997-02-17 2000-05-30 Ssd Company Limited High-speed processor system having bus arbitration mechanism
US6006303A (en) * 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
JP3791005B2 (ja) * 2001-11-20 2006-06-28 日本電気株式会社 バスアクセス調停装置及びバスアクセス調停方法
EP1418506A3 (en) * 2002-11-08 2005-10-12 Matsushita Electric Industrial Co., Ltd. Data storing system and transmission control method
JP2004227049A (ja) * 2003-01-20 2004-08-12 Renesas Technology Corp データ転送装置、半導体集積回路及びマイクロコンピュータ
JP4480427B2 (ja) 2004-03-12 2010-06-16 パナソニック株式会社 リソース管理装置
JP4748641B2 (ja) * 2004-12-06 2011-08-17 ルネサスエレクトロニクス株式会社 情報処理システム
JP2006195867A (ja) * 2005-01-17 2006-07-27 Matsushita Electric Ind Co Ltd バス調停方法及び半導体装置
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
JP2008130056A (ja) * 2006-11-27 2008-06-05 Renesas Technology Corp 半導体回路
TW201017421A (en) * 2008-09-24 2010-05-01 Panasonic Corp Cache memory, memory system and control method therefor
JP2010282405A (ja) * 2009-06-04 2010-12-16 Renesas Electronics Corp データ処理システム
JP2011095966A (ja) * 2009-10-29 2011-05-12 Yamaha Corp アクセスコントローラ
GB2484483B (en) 2010-10-12 2018-07-11 Advanced Risc Mach Ltd Communication using integrated circuit interconnect circuitry
CN102207918B (zh) * 2011-06-07 2014-04-23 北京北大众志微系统科技有限责任公司 一种片上总线仲裁方法及装置
US9772958B2 (en) * 2011-10-31 2017-09-26 Hewlett Packard Enterprise Development Lp Methods and apparatus to control generation of memory access requests
US9251108B2 (en) * 2012-11-05 2016-02-02 International Business Machines Corporation Managing access to shared buffer resources
CN103914413A (zh) * 2014-04-18 2014-07-09 东南大学 用于粗粒度可重构系统的外存访问接口及其访问方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171541A (ja) 2002-11-08 2004-06-17 Matsushita Electric Ind Co Ltd データ記憶システムおよび転送制御方法
US20130073762A1 (en) 2011-09-16 2013-03-21 Jong Ho Roh System on chip, electronic system including the same, and method of operating the same
WO2014027445A1 (ja) 2012-08-13 2014-02-20 パナソニック株式会社 アクセス制御装置、中継装置、アクセス制御方法、コンピュータプログラム

Also Published As

Publication number Publication date
CN114490457A (zh) 2022-05-13
EP3358468B1 (en) 2020-12-09
US10831683B2 (en) 2020-11-10
US11294835B2 (en) 2022-04-05
US20170270063A1 (en) 2017-09-21
US20190057052A1 (en) 2019-02-21
CN106856663B (zh) 2022-01-07
CN114490457B (zh) 2024-06-21
CN106856663A (zh) 2017-06-16
JP6513695B2 (ja) 2019-05-15
KR20180062915A (ko) 2018-06-11
EP3358468A4 (en) 2019-06-12
US20210026788A1 (en) 2021-01-28
EP3358468A1 (en) 2018-08-08
US10108562B2 (en) 2018-10-23
JPWO2017056132A1 (ja) 2018-07-19
WO2017056132A1 (ja) 2017-04-06

Similar Documents

Publication Publication Date Title
KR102344032B1 (ko) 반도체 장치
US7647444B2 (en) Method and apparatus for dynamic hardware arbitration
US7350004B2 (en) Resource management device
JP6057179B2 (ja) 資源要求調停装置、資源要求調停システム、資源要求調停方法、集積回路およびプログラム
US9529751B2 (en) Requests and data handling in a bus architecture
CN110059043B (zh) 数据处理器及用于控制数据处理器的方法
US8463958B2 (en) Dynamic resource allocation for transaction requests issued by initiator devices to recipient devices
KR102537338B1 (ko) 반도체 장치 및 액세스 제어 방법
US7054970B2 (en) Bus arbiter for integrated circuit systems
TWI490697B (zh) 匯流排控制器、匯流排通信系統及匯流排控制方法
CN117708008A (zh) 基于计数器的轮询仲裁方法及装置
KR20190076869A (ko) 반도체 장치 및 버스 제너레이터
US9223731B2 (en) Arbitration circuit and control method thereof
US10608943B2 (en) Dynamic buffer management in multi-client token flow control routers
KR20180014689A (ko) 분할 버스트 대역폭 중재를 위한 방법 및 장치
JP2011059915A (ja) 半導体装置
US7404025B2 (en) Software programmable dynamically reconfigurable scheme for controlling request grant and masking for ultra high priority accessor during arbitration
JP2000250853A (ja) バス調整制御装置
JP2005004563A (ja) Dma転送制御装置
JP2007164713A (ja) リソース管理装置及びリソース管理方法
KR20210126978A (ko) 분리 메모리 디바이스 및 분리 메모리 디바이스의 동작 방법
JP2000259549A (ja) Dma制御装置

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20160929

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20200818

Comment text: Request for Examination of Application

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20211006

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20211223

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20211224

End annual number: 3

Start annual number: 1

PG1601 Publication of registration