KR20190076869A - 반도체 장치 및 버스 제너레이터 - Google Patents

반도체 장치 및 버스 제너레이터 Download PDF

Info

Publication number
KR20190076869A
KR20190076869A KR1020180164323A KR20180164323A KR20190076869A KR 20190076869 A KR20190076869 A KR 20190076869A KR 1020180164323 A KR1020180164323 A KR 1020180164323A KR 20180164323 A KR20180164323 A KR 20180164323A KR 20190076869 A KR20190076869 A KR 20190076869A
Authority
KR
South Korea
Prior art keywords
access
request
bus
write request
control system
Prior art date
Application number
KR1020180164323A
Other languages
English (en)
Inventor
쇼 야마나까
도시유끼 히라끼
노부히꼬 혼다
Original Assignee
르네사스 일렉트로닉스 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 르네사스 일렉트로닉스 가부시키가이샤 filed Critical 르네사스 일렉트로닉스 가부시키가이샤
Publication of KR20190076869A publication Critical patent/KR20190076869A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/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/20Handling requests for interconnection or transfer for access to input/output bus
    • 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

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

마스터와 메모리 컨트롤러 사이에 캐시가 배치되는 경우라도, 메모리 컨트롤러에 의해 접수되는 액세스 요구의 제어를 가능하게 한다.
각 마스터는, 메모리(90)에 대해, 리드 요구 및 라이트 요구를 포함하는 액세스 요구를 발행한다. 캐시(75)는, 마스터가 발행한 라이트 요구를 캐시한다. 중앙 버스 제어 시스템(50)은, 각 마스터가 발행하는 리드 요구 및 캐시(75)가 출력하는 라이트 요구에 대해 액세스 제어를 실시한다. 중앙 버스 제어 시스템(60)은, 각 마스터가 발행하는 라이트 요구에 대해 액세스 제어를 실시한다. 중앙 버스 제어 시스템(50)은, 메모리 컨트롤러(80)의 버퍼의 빈 상황에 따라서 액세스 제어를 실시한다. 중앙 버스 제어 시스템(60)은, 캐시(75)의 빈 상황에 따라서 액세스 제어를 실시한다.

Description

반도체 장치 및 버스 제너레이터{SEMICONDUCTOR DEVICE AND BUS GENERATOR}
본 발명은 반도체 장치에 관한 것으로, 예를 들어 메모리에의 액세스를 행하는 반도체 장치에 관한 것이다. 또한, 본 발명은, 상기 반도체 장치에 있어서의 버스를 생성하는 버스 제너레이터에 관한 것이다.
특허문헌 1은, 복수의 버스 마스터가 공통 버스에 접속하는 버스 시스템에 있어서의 액세스 제어를 개시한다. 특허문헌 1에 기재되는 반도체 장치는, 복수의 마스터와, 메모리 컨트롤러와, 복수의 마스터와 메모리 컨트롤러를 접속하는 버스와, 중앙 버스 제어 시스템을 갖는다. 특허문헌 1에는, 중앙 버스 제어 시스템이, 각 마스터의 전송량을 모니터하고, 각 마스터의 예약 핸드 폭과 모니터한 전송량과 권리 부여 가능수에 기초하여, 액세스권의 부여처인 마스터를 선택하는 것이 기재되어 있다. 특허문헌 1에 있어서, 액세스권이 부여되어 있지 않은 마스터의 리퀘스트는, 메모리 컨트롤러와 마스터 사이의 버스에 의해 마스크된다.
특허문헌 1에 있어서, 중앙 버스 제어 시스템은, 메모리 컨트롤러 내의 버퍼를 감시하고, 버퍼의 빈 상황에 따라서 각 마스터의 액세스 요구에 대해 부여하는 액세스권을 제어한다. 중앙 버스 제어 시스템은, 액세스권을 부여할 때마다 권리 부여 가능수를 저감시키고, 버퍼가 해방될 때마다 권리 부여 가능수를 증가시킨다. 버퍼의 빈 상황에 따라서 액세스권의 부여를 행함으로써, 버퍼가 미처리의 액세스 요구로 가득 차는 것을 피할 수 있고, 저레이턴시가 요구되는 액세스 요구가, 메모리 컨트롤러에 의해 접수되지 않는 사태를 회피할 수 있다.
국제 공개 제2017/056132호
그러나 특허문헌 1에 있어서, 각 마스터와 메모리 컨트롤러 사이에 캐시가 배치되면, 캐시의 라이트백에 의해 메모리 컨트롤러의 버퍼가 점유되는 경우가 있다. 그 경우, 메모리 컨트롤러에 의해 접수되는 액세스 요구를, 중앙 버스 제어 시스템으로부터 제어할 수 없게 되어, 레이턴시의 보증이 곤란해진다.
그 밖의 과제와 신규의 특징은, 본 명세서의 기술 및 첨부 도면으로부터 명백해질 것이다.
일 실시 형태에 의하면, 반도체 장치는, 마스터와, 메모리 컨트롤러와, 캐시와, 마스터가 발행한 리드 요구의 메모리 컨트롤러로의 출력, 및 캐시된 라이트 요구의 메모리 컨트롤러로의 출력을 제어하는 제1 액세스 제어부와, 마스터가 발행한 라이트 요구의 메모리 컨트롤러로의 출력을 제어하는 제2 액세스 제어부를 구비한다. 제1 액세스 제어부는, 메모리 컨트롤러의 캐시의 빈 상황에 따라서 액세스 제어를 행하고, 제2 액세스 제어부는, 캐시의 빈 상황에 따라서 액세스 제어를 행한다.
상기 일 실시 형태에 의하면, 마스터와 메모리 컨트롤러 사이에 캐시가 배치되는 경우라도, 메모리 컨트롤러에 의해 접수되는 액세스 요구의 제어가 가능하다.
도 1은 실시 형태 1에 관한 반도체 장치를 포함하는 전자 장치를 나타내는 블록도.
도 2는 중앙 버스 제어 시스템 1의 구성예를 나타내는 블록도.
도 3은 중앙 버스 제어 시스템 2의 구성예를 나타내는 블록도.
도 4는 중앙 버스 제어 시스템 1에 있어서의 액세스권 부여의 동작 순서를 나타내는 블록도.
도 5는 중앙 버스 제어 시스템 2에 있어서의 액세스권 부여의 동작 순서를 나타내는 블록도.
도 6은 실시 형태 2에 있어서 사용되는 중앙 버스 제어 시스템 1의 구성예를 나타내는 블록도.
도 7은 리드 기간 서브 슬롯과 라이트 기간 서브 슬롯의 설정예를 나타내는 도면.
도 8의 (a) 및 (b)는 각각 리드 기간 서브 슬롯과 라이트 기간 서브 슬롯의 다른 설정예를 나타내는 도면.
도 9는 실시 형태 3에 있어서 사용되는 중앙 버스 제어 시스템 2의 구성예를 나타내는 블록도.
도 10은 캐시의 빈 엔트리수의 레벨을 나타내는 도면.
도 11은 빈 엔트리수의 레벨과 액세스권의 부여 대상의 마스터의 관계를 나타내는 도면.
도 12는 버스 제너레이터의 하드웨어 구성예를 나타내는 블록도.
도 13은 버스 설계의 개략적인 플로우를 나타내는 흐름도.
도 14는 설정 정보의 입력에 있어서의 화면예를 나타내는 도면.
도 15는 버스 제너레이터의 기능예를 나타내는 블록도.
도 16은 실시 형태 5에 관한 반도체 장치를 포함하는 전자 장치를 나타내는 블록도.
도 17은 실시 형태 5에 있어서 사용되는 중앙 버스 제어 시스템 1의 구성예를 나타내는 블록도.
도 18의 (a) 및 (b)는 메모리에의 액세스의 동작예를 나타내는 타이밍 차트.
이하, 도면을 참조하면서, 상기 과제의 해결 수단을 적용한 실시 형태를 상세하게 설명한다. 설명의 명확화를 위해, 이하의 기재 및 도면은, 적절하게 생략 및 간략화가 이루어져 있다. 또한, 다양한 처리를 행하는 기능 블록으로서 도면에 기재되는 각 요소는, 하드웨어적으로는, CPU(Central Processing Unit), 메모리, 또는 그 밖의 회로로 구성할 수 있고, 소프트웨어적으로는, 메모리에 로드된 프로그램 등에 의해 실현된다. 따라서, 이들 기능 블록을 하드웨어만으로, 소프트웨어만으로, 또는 그들의 조합에 의해 다양한 형태로 실현할 수 있는 것은 당업자에게는 이해되는 바이며, 어느 것에 한정되는 것은 아니다. 또한, 각 도면에 있어서, 동일한 요소에는 동일한 부호가 붙여져 있고, 필요에 따라서 중복 설명은 생략되어 있다.
또한, 상술한 프로그램은, 다양한 타입의 비일시적인 컴퓨터 가독 매체를 사용하여 저장되고, 컴퓨터에 공급할 수 있다. 비일시적인 컴퓨터 가독 매체는, 다양한 타입의 실체가 있는 기록 매체를 포함한다. 비일시적인 컴퓨터 가독 매체의 예는, 자기 기록 매체(예를 들어, 플렉시블 디스크, 자기 테이프, 하드 디스크), 광자기 기록 매체(예를 들어, 광자기 디스크), CD-ROM(Read Only Memory), CD-R, CD-R/W 및 반도체 메모리(예를 들어, 마스크 ROM, PROM(Programmable ROM), EPROM(Erasable PROM), 플래시 ROM, RAM(Random Access Memory))를 포함한다. 또한, 프로그램은, 다양한 타입의 일시적인 컴퓨터 가독 매체에 의해 컴퓨터에 공급되어도 된다. 일시적인 컴퓨터 가독 매체의 예는, 전기 신호, 광 신호 및 전자파를 포함한다. 일시적인 컴퓨터 가독 매체는, 전선 및 광 파이버 등의 유선 통신로, 또는 무선 통신로를 통해, 프로그램을 컴퓨터에 공급할 수 있다.
이하의 실시 형태에 있어서는 편의상 그 필요가 있을 때에는, 복수의 섹션 또는 실시 형태로 분할하여 설명하지만, 특별히 명시한 경우를 제외하고, 그것들은 서로 관계없는 것은 아니며, 한쪽은 다른 쪽의 일부 또는 전부의 변형예, 응용예, 상세 설명, 또는 보충 설명 등의 관계에 있다. 또한, 이하의 실시 형태에 있어서, 요소의 수 등(개수, 수치, 양, 범위 등을 포함함)으로 언급하는 경우, 특별히 명시한 경우 및 원리적으로 명백하게 특정 수에 한정되는 경우 등을 제외하고, 그 특정한 수에 한정되는 것은 아니며, 특정 수 이상이어도 되고, 이하여도 된다.
또한, 이하의 실시 형태에 있어서, 그 구성 요소(동작 스텝 등도 포함함)는, 특별히 명시한 경우 및 원리적으로 명백하게 필수적이라고 생각되는 경우 등을 제외하고, 반드시 필수적인 것은 아니다. 마찬가지로, 이하의 실시 형태에 있어서, 구성 요소 등의 형상, 또는 위치 관계 등으로 언급할 때에는, 특별히 명시한 경우 및 원리적으로 명백하게 그렇지 않다고 생각되는 경우 등을 제외하고, 실질적으로 그 형상 등에 근사 또는 유사한 것 등을 포함하는 것으로 한다. 이것은, 상기 수 등(개수, 수치, 양, 범위 등을 포함함)에 대해서도 마찬가지이다.
[실시 형태 1]
도 1은, 실시 형태 1에 관한 반도체 장치를 포함하는 전자 장치를 나타낸다. 전자 장치(10)는, 마스터 A(20), 마스터 B(30), 마스터 C(40), 서브 버스 컨트롤러(22R, 32R, 42R, 22W, 32W, 42W 및 77), 중앙 버스 제어 시스템(50 및 60), 인터커넥트(70), 캐시(75), 메모리 컨트롤러(80), 및 메모리(90)를 갖는다. 전자 장치(10)의 구성 요소 중, 예를 들어 마스터 A(20), 마스터 B(30), 마스터 C(40), 서브 버스 컨트롤러(22R, 32R, 42R, 22W, 32W, 42W 및 77), 중앙 버스 제어 시스템(50 및 60), 인터커넥트(70), 캐시(75), 및 메모리 컨트롤러(80)는 반도체 장치를 구성한다. 반도체 장치의 구성 요소 중, 예를 들어 서브 버스 컨트롤러(22R, 32R, 42W, 22W, 32W, 42W 및 77), 인터커넥트(70), 캐시(75), 및 메모리 컨트롤러(80)는, 하드웨어 회로로서 구성할 수 있다. 또한, 중앙 버스 제어 시스템(50 및 60)은, 예를 들어 프로세서를 포함한 회로로서 구성할 수 있다
마스터 A(20), 마스터 B(30) 및 마스터 C(40)는, 메모리(90)에 대해 액세스 요구를 발행한다. 메모리(90)에 대한 액세스 요구는, 리드 요구와 라이트 요구를 포함한다. 메모리(90)는, 예를 들어 DDR-SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory) 등의 메모리이다. 마스터 A(20), 마스터 B(30) 및 마스터 C(40)는, 예를 들어 CPU나 GPU(Graphics Processing Unit) 등의 프로세서로서 구성된다. 마스터 A(20), 마스터 B(30) 및 마스터 C(40)는, 각각 대응하는 버스(리드 요구 버스)(21R, 31R 및 41R)를 통해 리드 요구를 출력하고, 버스(라이트 요구 버스)(21W, 31W 및 41W)를 통해 라이트 요구를 출력한다.
마스터 A(20)는, 버스(21R 및 21W)를 통해 대응하는 서브 버스 컨트롤러(22R 및 22W)에 접속된다. 서브 버스 컨트롤러(리드 서브 버스 컨트롤러)(22R)는, 버스(24R)를 통해 인터커넥트(70)에 접속된다. 서브 버스 컨트롤러(라이트 서브 버스 컨트롤러 2)(22W)는, 버스(24W)를 통해 인터커넥트(70)에 접속된다. 서브 버스 컨트롤러(22R)는, 리퀘스트 발행 제어부(리드 리퀘스트 발행 제어부)(23R)를 포함한다. 서브 버스 컨트롤러(22W)는, 리퀘스트 발행 제어부(라이트 리퀘스트 발행 제어부 2)(23W)를 포함한다. 리퀘스트 발행 제어부(23R 및 23W)는, 각각 버스(21R 및 21W)를 통해 리드 요구 및 라이트 요구를 접수하고, 접수한 리드 요구 및 라이트 요구의 버스(24R 및 24W)로의 출력을 제어한다.
마스터 B(30)는, 버스(31R 및 31W)를 통해 대응하는 서브 버스 컨트롤러(32R 및 32W)에 접속된다. 서브 버스 컨트롤러(32R 및 32W)는, 각각 버스(34R 및 34W)를 통해 인터커넥트(70)에 접속된다. 서브 버스 컨트롤러(32R 및 32W)는, 각각 리퀘스트 발행 제어부(33R 및 33W)를 포함한다. 마찬가지로, 마스터 C(40)는, 버스(41R 및 41W)를 통해 대응하는 서브 버스 컨트롤러(42R 및 42W)에 접속된다. 서브 버스 컨트롤러(42R 및 42W)는, 각각 버스(44R 및 44W)를 통해 인터커넥트(70)에 접속된다. 서브 버스 컨트롤러(42R 및 42W)는, 각각 리퀘스트 발행 제어부(43R 및 43W)를 포함한다.
리퀘스트 발행 제어부(23R 및 23W)는, 각각 마스터 A(20)로부터 리드 요구 및 라이트 요구를 접수한다. 리퀘스트 발행 제어부(23R)는, 중앙 버스 제어 시스템(50)으로부터 액세스권이 부여되어 있는 경우는, 마스터 A(20)가 발행한 리드 요구를, 버스(24R)를 통해 인터커넥트(70)에 출력한다. 리퀘스트 발행 제어부(23W)는, 중앙 버스 제어 시스템(60)으로부터 액세스권이 부여되어 있는 경우는, 마스터 A(20)가 발행한 라이트 요구를, 버스(24W)를 통해 인터커넥트(70)에 출력한다. 리퀘스트 발행 제어부(23R 및 23W)는, 액세스권이 부여되어 있지 않은 경우는, 각각 마스터 A(20)가 발행한 리드 요구 및 라이트 요구의 인터커넥트(70)로의 출력을 억제한다.
리퀘스트 발행 제어부(33R 및 43R)의 기능은, 리퀘스트 발행 제어부(23R)의 기능과 마찬가지이며, 리퀘스트 발행 제어부(33W 및 43W)의 기능은, 리퀘스트 발행 제어부(23W)의 기능과 마찬가지이다. 리퀘스트 발행 제어부(23R, 33R 및 43R)는, 액세스권이 부여된 경우이며, 또한 대응하는 마스터로부터 리드 요구를 수취하지 않은 경우는, 액세스권 반환 신호를 중앙 버스 제어 시스템(50)에 출력하여, 액세스권을 반환해도 된다. 또한, 리퀘스트 발행 제어부(23W, 33W 및 43W)는, 액세스권이 부여된 경우이며, 또한 대응하는 마스터로부터 라이트 요구를 수취하지 않은 경우는, 액세스권 반환 신호를 중앙 버스 제어 시스템(60)에 출력하여, 액세스권을 반환해도 된다. 중앙 버스 제어 시스템(50 및 60)은, 반환된 액세스권을, 다른 리퀘스트 발행 제어부로의 액세스권의 부여에 사용할 수 있다.
인터커넥트(70)는, 버스(71R 및 71W)를 통해 캐시(75)에 접속된다. 인터커넥트(70)는, 버스(24R, 34R, 44R, 24W, 34W 및 44W)를 통해, 마스터 A(20), 마스터 B(30) 및 마스터 C(40)가 발행한 리드 요구 및 라이트 요구를 수취한다. 인터커넥트(70)는, 예를 들어 버스 아비터이며, 복수의 마스터로부터 입력되는 리드 요구 및 라이트 요구를 중재한다. 인터커넥트(70)는, 예를 들어 마스터 A(20), 마스터 B(30) 및 마스터 C(40)로부터 리드 요구 또는 라이트 요구를 수취한 경우는, 각 마스터에 설정된 우선도에 따라서, 우선도가 높은 마스터가 발행한 리드 요구 또는 라이트 요구를 캐시(75)에 출력한다. 인터커넥트(70)는, 캐시(75)에 출력한 리드 요구 또는 라이트 요구에 대한 리스폰스가 얻어지면, 다음으로 우선도가 높은 마스터의 리드 요구 또는 라이트 요구를 선택하여 캐시(75)에 출력한다.
캐시(75)는, 메모리 컨트롤러(80)와 인터커넥트(70) 사이에 배치된다. 캐시(75)에는, 버스(71R 및 71W)를 통해 인터커넥트(70)로부터 출력된 리드 요구 및 라이트 요구가 입력된다. 캐시(75)는, 라이트 요구에 대해 라이트백을 행하고, 입력된 라이트 요구 및 라이트 데이터를 캐시한다. 또한, 캐시(75)는, 리드 요구에 따라서 판독되는 리드 데이터를 캐시한다. 캐시(75)는, 라이트 데이터 및 리드 데이터를 일시적으로 기억하기 위한 복수의 엔트리를 갖고 있다.
캐시(75)는, 예를 들어 라이트 요구를 캐시하면, 버스(79W) 및 서브 버스 컨트롤러(라이트 서브 버스 컨트롤러 1)(77)를 통해, 메모리 컨트롤러(80)로 캐시한 라이트 요구를 출력한다. 메모리 컨트롤러(80)는, 예를 들어 버퍼(81)에 빈 공간이 있을 때, 캐시(75)로부터 출력된 라이트 요구를 접수한다. 서브 버스 컨트롤러(77)는, 리퀘스트 발행 제어부(라이트 리퀘스트 발행 제어부 1)(78)를 포함한다. 리퀘스트 발행 제어부(78)는, 버스(76W)를 통해, 캐시(75)로부터 라이트 요구를 접수한다. 리퀘스트 발행 제어부(78)는, 접수한 라이트 요구의 버스(79W)로의 출력을 제어한다. 리퀘스트 발행 제어부(78)는, 중앙 버스 제어 시스템(50)으로부터 액세스권이 부여되어 있는 경우는, 라이트 요구를 버스(79W)로 출력한다. 리퀘스트 발행 제어부(78)는, 액세스권이 부여되어 있지 않은 경우는, 라이트 요구의 버스(79W)로의 출력을 억제한다. 리퀘스트 발행 제어부(78)는, 액세스권이 부여된 경우이며, 또한 라이트 요구를 접수하지 않은 경우는, 액세스권 반환 신호를 중앙 버스 제어 시스템(50)에 출력하고, 액세스권을 반환해도 된다. 중앙 버스 제어 시스템(50)은, 반환된 액세스권을, 다른 리퀘스트 발행 제어부로의 액세스권의 부여에 사용할 수 있다.
캐시(75)는, 리드 요구가 입력된 경우는, 리드 요구에 의해 요구되는 데이터(리드 데이터)를 캐시하고 있는지 여부를 판단한다. 달리 말하면, 캐시(75)는, 캐시가 히트하였는지 여부를 판단한다. 캐시(75)는, 리드 데이터를 캐시하고 있지 않은 경우는, 버스(76R)를 통해 메모리 컨트롤러(80)에 리드 요구를 출력한다. 캐시(75)는, 리드 데이터가 캐시되어 있는 경우는, 그 리드 데이터를, 리드 요구에 대한 응답으로서, 리드 요구의 발행원인 마스터에 출력한다. 캐시(75)는, 리드 데이터를 마스터에 출력하면, 캐시에 히트하였다는 취지를 나타내는 통지를 중앙 버스 제어 시스템(50)에 출력하고, 리퀘스트 발행 제어부(23R, 33R, 또는 43R)에 부여된 액세스권을 중앙 버스 제어 시스템(50)에 반환해도 된다.
메모리 컨트롤러(80)는, 버스, 캐시(75) 및 인터커넥트(70) 등을 통해 마스터 A(20), 마스터 B(30) 및 마스터 C(40)에 접속되고, 캐시(75)를 통해 접수한 액세스 요구에 따라서 메모리(90)에 액세스한다. 또한, 도 1에서는 전자 장치(10)가 마스터를 3개 갖는 예가 나타나 있지만, 마스터의 수는 특별히 한정되지 않는다. 전자 장치(10)는, 메모리 컨트롤러(80)에 대해 메모리(90)에의 액세스 요구를 발행하는 마스터를 적어도 하나 갖고 있으면 된다. 마스터의 수가 1개인 경우, 중재를 위한 인터커넥트(70)는 불필요하다.
메모리 컨트롤러(80)는, 버퍼(리퀘스트 버퍼)(81)를 갖는다. 버퍼(81)는, 메모리 컨트롤러(80)가 인터커넥트(70) 및 캐시(75)를 통해 접수한 액세스 요구를 기억한다. 버퍼(81)는 복수의 엔트리를 갖고 있고, 복수의 액세스 요구를 기억 가능하게 구성된다. 메모리 컨트롤러(80)는, 버퍼(81) 이외에, 예를 들어 버퍼(81)에 기억된 복수의 액세스 요구 중 하나를 선택하는 스케줄러와, 선택된 액세스 요구에 따라서 메모리(90)에 액세스하기 위한 메모리 커맨드(커맨드 신호)를 생성하는 메모리 커맨드 생성부를 갖고 있다. 메모리 컨트롤러(80)는, 버퍼(81)로부터 액세스 요구가 선택되어 처리되면, 버퍼(81)의 엔트리가 해방된 취지를 나타내는 버퍼 해방 통지를 중앙 버스 제어 시스템(50)에 출력한다.
중앙 버스 제어 시스템(중앙 버스 제어 시스템 1)(50)은, 서브 버스 컨트롤러(22R, 32R 및 42R)와, 서브 버스 컨트롤러(77)를 사용하여, 리드 요구 및 라이트 요구에 대한 액세스 제어를 실시한다. 중앙 버스 제어 시스템(50)은, 서브 버스 컨트롤러(22R, 32R 및 42R), 및 서브 버스 컨트롤러(77)와 함께 액세스 제어부(액세스 제어부 1)를 구성한다. 중앙 버스 제어 시스템(50)은, 버퍼(81)의 빈 상황에 따라서, 리드 요구 및 라이트 요구에 대한 액세스 제어를 실시한다.
중앙 버스 제어 시스템(50)은, 예를 들어 리퀘스트 발행 제어부(23R, 33R 및 43R)에의 액세스권의 부여를 제어함으로써, 각 마스터로부터 메모리 컨트롤러(80)로 출력되는 리드 요구에 대한 액세스 제어를 실시한다. 또한, 중앙 버스 제어 시스템(50)은, 리퀘스트 발행 제어부(78)로의 액세스권의 부여를 제어함으로써, 캐시(75)로부터 메모리 컨트롤러(80)로 출력되는 라이트 요구에 대한 액세스 제어를 실시한다.
한편, 중앙 버스 제어 시스템(중앙 버스 제어 시스템 2)(60)은, 서브 버스 컨트롤러(22W, 32W 및 42W)를 사용하여, 라이트 요구에 대한 액세스 제어를 실시한다. 중앙 버스 제어 시스템(60)은, 서브 버스 컨트롤러(22W, 32W 및 42W)와 함께 별도의 액세스 제어부(액세스 제어부 2)를 구성한다. 중앙 버스 제어 시스템(60)은, 캐시(75)로부터, 캐시(75)의 빈 엔트리수를 취득한다. 중앙 버스 제어 시스템(60)은, 취득한 빈 엔트리수에 기초하여 캐시(75)의 빈 상황을 감시하고, 캐시(75)의 빈 상황에 따라서 액세스 제어를 실시한다. 중앙 버스 제어 시스템(60)은, 예를 들어 리퀘스트 발행 제어부(23W, 33W 및 43W)로의 액세스권의 부여를 제어함으로써, 각 마스터로부터 캐시(75)로 출력되는 라이트 요구에 대한 액세스 제어를 실시한다.
유저는, 예를 들어 중앙 버스 제어 시스템(50) 및 중앙 버스 제어 시스템(60)에 미리 각 마스터의 대역을 설정하고, 일정 시간(슬롯) 내의 QoS(Quality of Service)를 보증한다. 여기서, 본 실시 형태에 있어서, 마스터는, 액세스 요구의 종별마다 존재하는 것으로 간주되고, 예를 들어 리드 요구와 라이트 요구의 각각에 대해 각 마스터의 대역이 설정된다. 또한, 중앙 버스 제어 시스템(50)이 행하는 액세스 제어에 있어서, 라이트 요구를 출력하는 캐시(75)는 마스터 중 하나로 간주된다. 중앙 버스 제어 시스템(50)은, 리퀘스트 발행 제어부(23R, 33R, 43R 및 78) 각각에 대해, 예를 들어 소정의 액세스 제어의 내용에 따라서 액세스권을 부여한다. 또한, 중앙 버스 제어 시스템(60)은, 리퀘스트 발행 제어부(23W, 33W 및 43W) 각각에 대해, 예를 들어 소정의 액세스 제어의 내용에 따라서 액세스권을 부여한다. 액세스 제어의 내용은, 예를 들어 특허문헌 1에 기재된 것과 마찬가지이면 된다. 특허문헌 1에 기재된 내용은, 참조로서 본 명세서에 포함된다.
중앙 버스 제어 시스템(50)은, 예를 들어 각 마스터의 리드 요구 및 캐시(75)의 라이트 요구에 대해 설정된 QoS 정보에 기초하여, 각 마스터 및 캐시(75)에 대응하는 리퀘스트 발행 제어부(23R, 33R, 43R 및 78)에 대해 액세스권을 부여할지 여부를 결정한다. 이때, 중앙 버스 제어 시스템(50)은, 버스(24R, 34R, 44R 및 79W)로부터 취득된 리퀘스트 모니터(트랜잭션 모니터 신호)에 의해 버스를 흐르는 트랜잭션을 감시하고, 트랜잭션의 전송량에 기초하여 슬롯마다 보정하면서 액세스권을 부여해도 된다. 중앙 버스 제어 시스템(50)은, 액세스권의 부여를 통해, 각 마스터 및 캐시(75)가 발행하는 리드 요구 및 라이트 요구의 메모리 컨트롤러(80)로의 출력을 제어한다.
중앙 버스 제어 시스템(60)은, 예를 들어 각 마스터의 라이트 요구에 대해 설정된 QoS 정보에 기초하여, 각 마스터에 대응하는 리퀘스트 발행 제어부(23W, 33W 및 43W)에 대해 액세스권을 부여할지 여부를 결정한다. 이때, 중앙 버스 제어 시스템(60)은, 버스(24W, 34W 및 44W)로부터 취득된 리퀘스트 모니터(트랜잭션 모니터 신호)에 의해 버스를 흐르는 트랜잭션을 감시하고, 트랜잭션의 전송량에 기초하여 슬롯마다 보정하면서 액세스권을 부여해도 된다. 중앙 버스 제어 시스템(60)은, 액세스권의 부여를 통해, 각 마스터가 발행하는 라이트 요구의 캐시(75)로의 출력을 제어한다.
[중앙 버스 제어 시스템 1]
도 2는, 중앙 버스 제어 시스템(50)의 구성예를 나타낸다. 중앙 버스 제어 시스템(50)은, 권리 부여 선택 제어부(501), 마스크 신호 생성부(502), 배부 우선도 계산 회로(503), 권리 부여수 제어부(504), 리프레시 제어부(505), 전송량 모니터(510), 슬롯 설정 레지스터(521), 예약형 레지스터군(522), BE(Best Effort)형 레지스터군(523) 및 부여 가능 최대수 설정 레지스터(524)를 갖는다.
전송량 모니터(510)는, 버스를 통해 전송되는 리드 요구 및 라이트 요구의 트랜잭션 전송량을 측정하는 기능부이다. 전송량 모니터(510)는, 예약형용 전송량 모니터(511)와, BE형용 전송량 모니터(512)를 갖는다. 예약형용 전송량 모니터(511)는 버스(24R, 34R 및 44R)(도 1을 참조)를 통해 인터커넥트(70)에 전송되는 리드 요구의 트랜잭션 전송량을 측정한다. 또한, 예약형용 전송량 모니터(511)는 버스(79W)를 통해 메모리 컨트롤러(80)로 전송되는 라이트 요구의 트랜잭션 전송량을 측정한다. BE형용 전송량 모니터(512)도 마찬가지로, 버스(24R, 34R 및 44R)를 통해 인터커넥트(70)에 전송되는 리드 요구의 트랜잭션 전송량을 측정하고, 버스(79W)를 통해 메모리 컨트롤러(80)로 전송되는 라이트 요구의 트랜잭션 전송량을 측정한다.
슬롯 설정 레지스터(521)는, 1 기본 슬롯 내에 존재하는 서브 슬롯의 수와 1 서브 슬롯의 기간을 저장한다. 기본 슬롯은, 예를 들어 메모리(90)에 있어서의 리프레시 기간을 나타낸다. 슬롯 설정 레지스터(521)가 저장하는 1 기본 슬롯 내에 존재하는 서브 슬롯의 수, 및 1 서브 슬롯의 기간은 변경할 수 있다.
리프레시 제어부(505)는, 메모리 컨트롤러(80)에 리프레시 요구를 송신하고, 메모리(90)에 있어서 리프레시 동작을 실시시킨다. 리프레시 제어부(505)는, 예를 들어 도시하지 않은 레지스터 등을 사용하여 설정된, 기본 슬롯 내의 소정의 번호의 서브 슬롯에 있어서, 메모리 컨트롤러(80)에 리프레시 요구를 송신한다.
권리 부여 선택 제어부(501)는, 리퀘스트 발행 제어부(23R, 33R, 43R 및 78)에 대해 액세스권을 부여한다. 권리 부여 선택 제어부(501)는, 액세스권의 부여 시에, 어느 리퀘스트 발행 제어부에 액세스권을 부여할지를 결정(선택)한다. 권리 부여 선택 제어부(501)는, 액세스권의 부여처인 리퀘스트 발행 제어부에, 액세스권을 획득하였다는 취지를 나타내는 액세스권 부여 신호를 출력한다. 권리 부여 선택 제어부(501)는, 예를 들어 액세스권의 부여처인 리퀘스트 발행 제어부에 출력하는 액세스권 부여 신호를 어서트하고, 액세스권을 부여하지 않는 리퀘스트 발행 제어부에 출력하는 액세스권 부여 신호는 네게이트한 상태로 한다.
권리 부여수 제어부(504)는, 리퀘스트 발행 제어부에 부여할 수 있는 액세스권의 수(권리 부여 가능수)를 계산한다. 부여 가능 최대수 설정 레지스터(524)는, 액세스권의 권리 부여 가능수의 최대수를 저장한다. 권리 부여 가능수의 최대수는, 예를 들어 메모리 컨트롤러(80)의 버퍼(81)가 저장 가능한 액세스 요구의 수에 따라서 설정된다. 권리 부여수 제어부(504)는, 예를 들어 버퍼(81)의 빈 상황에 따라서, 부여 가능 최대수 설정 레지스터(524)가 저장하는 최대수를 상한으로 하여, 액세스권의 권리 부여 가능수를 계산한다. 권리 부여 선택 제어부(501)는, 권리 부여수 제어부(504)가 계산한 권리 부여 가능수의 범위에서, 액세스권의 부여를 행한다.
권리 부여수 제어부(504)는, 예를 들어 권리 부여 선택 제어부(501)가 어느 리퀘스트 발행 제어부에 액세스권을 부여하면, 권리 부여 가능수를 부여한 액세스권의 분만큼 감소시킨다. 권리 부여수 제어부(504)는, 예를 들어 메모리 컨트롤러(80)가 버퍼 해방 통지를 출력하면, 권리 부여 가능수를 해방된 버퍼의 엔트리수만큼 증가시킨다. 또한, 권리 부여수 제어부(504)는, 어느 리퀘스트 발행 제어부가 액세스권을 반환하면, 권리 부여 가능수를 반환된 액세스권의 분만큼 증가시킨다. 권리 부여수 제어부(504)는, 캐시(75)가 캐시에 히트하였다는 취지를 나타내는 통지를 출력한 경우도, 권리 부여 가능수를, 캐시에 히트한 리드 요구의 분만큼 증가시킨다.
예약형 레지스터군(522)은, 예를 들어 예약 밴드 폭 설정 레지스터와, 예약형 우선 레벨 설정 레지스터를 포함한다. 예약 밴드 폭 설정 레지스터는, 예를 들어 각 마스터 및 캐시(75)에 대해 설정된 예약 밴드 폭을 저장한다. 예약 밴드 폭 설정 레지스터는, 예를 들어 각 마스터 및 캐시(75)의 1 서브 슬롯당 예약 전송량을, 예약 밴드 폭으로서 저장한다. 예약형 우선 레벨 설정 레지스터는, 예를 들어 각 마스터 및 캐시(75)의 우선 레벨을 저장한다.
마스크 신호 생성부(502)는, 각 마스터 및 캐시(75)의 전송량이, 각 마스터 및 캐시(75)의 예약 전송량에 도달하였는지 여부를 판단한다. 마스크 신호 생성부(502)는, 어느 마스터 또는 캐시(75)의 서브 슬롯에 있어서의 전송량이 예약 전송량에 도달한 경우, 그 마스터 또는 캐시(75)에 대해, 그 서브 슬롯의 나머지 기간에 대한 마스크 신호를 생성한다.
BE형 레지스터군(523)은, 예를 들어 목표 전송량 설정 레지스터와, 갱신 전송량 레지스터와, 배부 우선도 보정 기간 설정 레지스터와, BE형 우선 레벨 설정 레지스터를 포함한다. 목표 전송량 설정 레지스터는, 예를 들어 각 마스터 및 캐시(75)에 대해, 1 서브 슬롯당 목표 전송량을 저장한다. 갱신 전송량 레지스터는, 각 마스터 및 캐시(75)에 대해 전송량의 누적값을 나타내는 누적 전송량을 저장한다. 배부 우선도 보정 기간 설정 레지스터는, 목표 전송량을 보정하는 기간을 나타내는 배부 우선도 보정 기간을 저장한다. BE형 우선 레벨 설정 레지스터는, 각 마스터 및 캐시(75)에 대해 우선 레벨을 저장한다.
배부 우선도 계산 회로(503)는, 액세스권의 배부에 관한 우선도를 나타내는 배부 우선도를 계산한다. 배부 우선도 계산 회로(503)는, 예를 들어 각 마스터 및 캐시(75)의 목표 전송량에 기초하여, 배부 우선도를 계산한다. 보다 상세하게는, 배부 우선도 계산 회로(503)는, BE형용 전송량 모니터(512)를 사용하여 측정된 전송량, 목표 전송량, 누적 전송량, 및 배부 우선도 보정 기간 등을 사용하여, 배부 우선도를 계산한다.
또한, 배부 우선도 계산 회로(503)는, 서브 슬롯이 경과할 때마다, BE형 레지스터군(523)에 포함되는 갱신 전송량 레지스터에 저장되는 누적 전송량을 갱신한다. 보다 상세하게는, 배부 우선도 계산 회로(503)는, 갱신 전송량 레지스터로부터 전 서브 슬롯까지의 누적 전송량을 판독한다. 배부 우선도 계산 회로(503)는, 판독한 누적 전송량과 BE형용 전송량 모니터(512)에 의해 계측된 현재 서브 슬롯의 전송량을 사용하여, 현재 서브 슬롯까지의 누적 전송량을 계산한다. 배부 우선도 계산 회로(503)는, 계산한 누적 전송량을 갱신 전송량 레지스터에 저장함으로써 누적 전송량을 갱신한다. 배부 우선도 계산 회로(503)는, 계산한 배부 우선도를 권리 부여 선택 제어부(501)에 출력한다.
권리 부여 선택 제어부(501)는, 예약형 레지스터군(522)을 사용한 액세스권의 부여처의 선택과, BE형 레지스터군(523)을 사용한 액세스권의 부여처의 선택을 독립적으로 행한다. 권리 부여 선택 제어부(501)는, 예약형 레지스터군(522)을 사용한 액세스권의 부여처의 선택에서는, 예를 들어 예약형 레지스터군(522)으로부터 판독한 예약 밴드 폭 및 우선 레벨 등을 사용하여, 액세스권을 부여하는 리퀘스트 발행 제어부를 결정한다. 권리 부여 선택 제어부(501)는, BE형 레지스터군(523)을 사용한 액세스권의 부여처의 선택에서는, 예를 들어 배부 우선도 계산 회로(503)가 계산한 배부 우선도 및 BE형 레지스터군(523)으로부터 판독한 우선 레벨 등을 사용하여, 액세스권을 부여하는 리퀘스트 발행 제어부를 결정한다.
[중앙 버스 제어 시스템 2]
도 3은, 중앙 버스 제어 시스템(60)의 구성예를 나타낸다. 중앙 버스 제어 시스템(60)은, 권리 부여 선택 제어부(601), 마스크 신호 생성부(602), 배부 우선도 계산 회로(603), 권리 부여수 제어부(604), 전송량 모니터(610), 슬롯 설정 레지스터(621), 예약형 레지스터군(622), BE형 레지스터군(623) 및 부여 가능 최대수 설정 레지스터(624)를 갖는다. 중앙 버스 제어 시스템(60)의 구성은, 리프레시 제어부(505)(도 2를 참조)를 포함하지 않는 점을 제외하면, 중앙 버스 제어 시스템(50)의 구성과 마찬가지이면 된다.
전송량 모니터(610)는, 버스를 통해 전송되는 라이트 요구의 트랜잭션 전송량을 측정하는 기능부이다. 전송량 모니터(610)는, 예약형용 전송량 모니터(611)와, BE형용 전송량 모니터(612)를 갖는다. 예약형용 전송량 모니터(611)는, 버스(24W, 34W 및 44W)(도 1을 참조)를 통해 인터커넥트(70)에 전송되는 라이트 요구의 트랜잭션 전송량을 측정한다. BE형용 전송량 모니터(612)도 마찬가지로, 버스(24W, 34W 및 44W)를 통해 인터커넥트(70)에 전송되는 라이트 요구의 트랜잭션 전송량을 측정한다. 슬롯 설정 레지스터(621)는, 1 기본 슬롯 내에 존재하는 서브 슬롯의 수와 1 서브 슬롯의 기간을 저장한다.
권리 부여 선택 제어부(601)는, 리퀘스트 발행 제어부(23W, 33W 및 43W)에 대해 액세스권을 부여한다. 권리 부여 선택 제어부(601)는, 액세스권의 부여 시에, 어느 리퀘스트 발행 제어부에 액세스권을 부여할지를 결정(선택)한다. 권리 부여 선택 제어부(601)는, 액세스권의 부여처인 리퀘스트 발행 제어부에, 액세스권을 획득하였다는 취지를 나타내는 액세스권 부여 신호를 출력한다. 권리 부여 선택 제어부(601)는, 예를 들어 액세스권의 부여처인 리퀘스트 발행 제어부에 출력하는 액세스권 부여 신호를 어서트하고, 액세스권을 부여하지 않는 리퀘스트 발행 제어부에 출력하는 액세스권 부여 신호는 네게이트한 상태로 한다.
권리 부여수 제어부(604)는, 리퀘스트 발행 제어부에 부여할 수 있는 액세스권의 수(권리 부여 가능수)를 계산한다. 부여 가능 최대수 설정 레지스터(624)는, 액세스권의 권리 부여 가능수의 최대수를 저장한다. 권리 부여 가능수의 최대수는, 예를 들어 캐시(75)가 캐시 가능한 라이트 요구의 수(라이트 데이터의 사이즈)에 따라서 설정된다. 권리 부여수 제어부(604)는, 예를 들어 캐시(75)의 빈 엔트리수에 따라서, 부여 가능 최대수 설정 레지스터(624)가 저장하는 최대수를 상한으로 하여, 액세스권의 권리 부여 가능수를 계산한다. 권리 부여 선택 제어부(601)는, 권리 부여수 제어부(604)가 계산한 권리 부여 가능수의 범위에서, 액세스권의 부여를 행한다.
권리 부여수 제어부(604)는, 예를 들어 권리 부여 선택 제어부(601)가 어느 리퀘스트 발행 제어부에 액세스권을 부여하면, 권리 부여 가능수를 부여한 액세스권의 분만큼 감소시킨다. 권리 부여수 제어부(604)는, 예를 들어 캐시(75)의 빈 엔트리수가 증가한 경우, 권리 부여 가능수를 증가한 엔트리의 수만큼 증가시킨다. 또한, 권리 부여수 제어부(604)는, 어느 리퀘스트 발행 제어부가 액세스권을 반환하면, 권리 부여 가능수를 반환된 액세스권의 분만큼 증가시킨다.
예약형 레지스터군(622)은, 예를 들어 예약 밴드 폭 설정 레지스터와, 예약형 우선 레벨 설정 레지스터를 포함한다. 예약 밴드 폭 설정 레지스터는, 예를 들어 각 마스터에 대해 설정된 예약 밴드 폭을 저장한다. 예약 밴드 폭 설정 레지스터는, 예를 들어 각 마스터의 1 서브 슬롯당 라이트 요구의 트랜잭션의 예약 전송량을, 예약 밴드 폭으로서 저장한다. 예약형 우선 레벨 설정 레지스터는, 예를 들어 각 마스터의 우선 레벨을 저장한다. 또한, 중앙 버스 제어 시스템(50)의 예약형 레지스터군(522)(도 2를 참조)의 예약 밴드 폭 설정 레지스터에는, 예를 들어 예약형 레지스터군(622)의 예약 밴드 폭 설정 레지스터에 저장되는 각 마스터의 예약 전송량의 총합이, 캐시(75)로부터 출력되는 라이트 요구의 트랜잭션에 대한 예약 밴드 폭으로서 저장되어 있어도 된다.
마스크 신호 생성부(602)는, 각 서브 슬롯에 있어서, 각 마스터의 전송량이, 각 마스터의 예약 전송량에 도달하였는지 여부를 판단한다. 마스크 신호 생성부(602)는, 어느 마스터 서브 슬롯에 있어서의 전송량이 예약 전송량에 도달한 경우, 그 마스터에 대해, 그 서브 슬롯의 나머지 기간에 대한 마스크 신호를 생성한다.
BE형 레지스터군(623)은, 예를 들어 목표 전송량 설정 레지스터와, 갱신 전송량 레지스터와, 배부 우선도 보정 기간 설정 레지스터와, BE형 우선 레벨 설정 레지스터를 포함한다. 목표 전송량 설정 레지스터는, 예를 들어 각 마스터에 대해, 1 서브 슬롯당 목표 전송량을 저장한다. 갱신 전송량 레지스터는, 각 마스터에 대해 전송량의 누적값을 나타내는 누적 전송량을 저장한다. 배부 우선도 보정 기간 설정 레지스터는, 목표 전송량을 보정하는 기간을 나타내는 배부 우선도 보정 기간을 저장한다. BE형 우선 레벨 설정 레지스터는, 각 마스터에 대해 우선 레벨을 저장한다.
배부 우선도 계산 회로(603)는, 액세스권의 배부에 관한 우선도를 나타내는 배부 우선도를 계산한다. 배부 우선도 계산 회로(603)는, 예를 들어 각 마스터의 목표 전송량에 기초하여, 배부 우선도를 계산한다. 배부 우선도 계산 회로(603)에 있어서의 배부 우선도의 계산 등은, 중앙 버스 제어 시스템(50)의 배부 우선도 계산 회로(503)와 동일하면 된다. 배부 우선도 계산 회로(603)는, 계산한 배부 우선도를 권리 부여 선택 제어부(601)에 출력한다.
권리 부여 선택 제어부(601)는, 예약형 레지스터군(622)을 사용한 액세스권의 부여처의 선택과, BE형 레지스터군(623)을 사용한 액세스권의 부여처의 선택을 독립적으로 행한다. 권리 부여 선택 제어부(601)는, 예약형 레지스터군(622)을 사용한 액세스권의 부여처의 선택에서는, 예를 들어 예약형 레지스터군(622)으로부터 판독한 예약 밴드 폭 및 우선 레벨 등을 사용하여, 액세스권을 부여하는 리퀘스트 발행 제어부를 결정한다. 권리 부여 선택 제어부(601)는, BE형 레지스터군(623)을 사용한 액세스권의 부여처의 선택에서는, 예를 들어 배부 우선도 계산 회로(603)가 계산한 배부 우선도 및 BE형 레지스터군(623)으로부터 판독한 우선 레벨 등을 사용하여, 액세스권을 부여하는 리퀘스트 발행 제어부를 결정한다.
[동작 순서]
도 4는, 중앙 버스 제어 시스템(50)에 있어서의 액세스권 부여의 동작 순서를 나타낸다. 중앙 버스 제어 시스템(50)의 권리 부여수 제어부(504)(도 2를 참조)는, 메모리 컨트롤러(80)로부터 버퍼 해방 통지를 수취하였는지 여부를 판단한다(스텝 A1). 권리 부여수 제어부(504)는, 스텝 A1에서 버퍼 해방 통지를 수취하였다고 판단하면, 버퍼가 해방된 분만큼 권리 부여 가능수를 증가시킨다(스텝 A2). 권리 부여수 제어부(504)는, 스텝 A1에서 버퍼 해방 통지를 수취하지 않았다고 판단한 경우는, 권리 부여 가능수를 변화시키지 않는다.
권리 부여수 제어부(504)는, 액세스권이 반환되었는지 여부를 판단한다(스텝 A3). 권리 부여수 제어부(504)는, 예를 들어 리퀘스트 발행 제어부(23R, 33R, 43R 및 78) 중 적어도 하나로부터 액세스권 반환 신호가 출력된 경우는, 액세스권이 반환되었다고 판단한다. 또한, 권리 부여수 제어부(504)는, 캐시(75)로부터 캐시에 히트하였다는 취지를 나타내는 통지가 출력된 경우도, 액세스권이 반환되었다고 판단한다. 권리 부여수 제어부(504)는, 스텝 A3에서 액세스권이 반환되었다고 판단하면, 권리 부여 가능수를, 반환된 액세스권의 분만큼 증가시킨다(스텝 A4). 권리 부여수 제어부(504)는, 스텝 A3에서 액세스권이 반환되지 않았다고 판단한 경우는, 권리 부여 가능수를 변화시키지 않는다. 스텝 A1과 스텝 A3은, 어느 쪽을 먼저 실시해도 된다.
권리 부여 선택 제어부(501)는, 액세스권을 부여하는 것이 가능한지 여부를 판단한다(스텝 A5). 권리 부여 선택 제어부(501)는, 스텝 A5에서는, 권리 부여수 제어부(504)로부터 권리 부여 가능수를 취득하고, 권리 부여 가능수에 기초하여 액세스권의 부여가 가능한지 여부를 판단한다. 권리 부여 선택 제어부(501)는, 예를 들어 권리 부여 가능수가 1 이상이면 액세스권의 부여가 가능하다고 판단한다. 권리 부여 선택 제어부(501)는, 권리 부여 가능수가 0이면, 액세스권의 부여가 가능하지 않다고 판단한다. 권리 부여 선택 제어부(501)는, 예를 들어 사이클마다, 액세스권의 부여가 가능한지 여부를 판단한다. 액세스권의 부여가 가능하지 않다고 판단된 경우, 처리는 스텝 A1로 되돌아간다.
권리 부여 선택 제어부(501)는, 스텝 A5에서 액세스권의 부여가 가능하다고 판단한 경우, 액세스권의 부여처인 리퀘스트 발행 제어부를 선택한다(스텝 A6). 권리 부여 선택 제어부(501)는, 스텝 A6에서는, 마스터 A(20), 마스터 B(30), 마스터 C(40) 및 캐시(75)에 대응하는 리퀘스트 발행 제어부(23R, 33R, 43R 및 78) 중, 어느 리퀘스트 발행 제어부에 액세스권을 부여할지를 결정한다. 권리 부여 선택 제어부(501)는, 예를 들어 예약형 레지스터군(522) 또는 BE형 레지스터군(523)을 사용한 선택 처리에 의해, 권리 부여처인 리퀘스트 발행 제어부를 선택(결정)한다.
권리 부여 선택 제어부(501)는, 스텝 A6에서 선택한 부여처에, 액세스권을 부여한다(스텝 A7). 권리 부여 선택 제어부(501)는, 스텝 A7에서는, 액세스권을 부여하는 리퀘스트 발행 제어에 액세스권 부여 신호를 출력함으로써, 액세스권을 부여한다. 액세스권 부여 신호를 수신한 리퀘스트 발행 제어부는, 대응하는 마스터 또는 캐시(75)로부터 리드 요구 또는 라이트 요구를 접수한 경우는, 그 리드 요구 또는 라이트 요구를 메모리 컨트롤러(80)측에 출력한다. 리퀘스트 발행 제어부는, 액세스권 부여 신호를 수신한 경우이며, 또한 대응하는 마스터 또는 캐시(75)로부터 리드 요구 또는 라이트 요구를 접수하지 않은 경우는, 액세스권 반환 신호를 중앙 버스 제어 시스템(50)에 출력한다.
권리 부여수 제어부(504)는, 권리 부여 선택 제어부(501)가 리퀘스트 발행 제어부에 액세스권을 부여하면, 권리 부여 가능수를 1개 감소시킨다(스텝 A8). 그 후, 처리는 스텝 A1로 되돌아가고, 버퍼(81)의 빈 상황 및 액세스권의 반환에 기초하는 권리 부여 가능수의 계산과, 권리 부여 가능수의 범위 내에서의 액세스권의 부여가, 반복하여 행해진다.
도 5는, 중앙 버스 제어 시스템(60)에 있어서의 액세스권 부여의 동작 순서를 나타낸다. 중앙 버스 제어 시스템(60)의 권리 부여수 제어부(604)(도 3을 참조)는, 캐시(75)의 빈 상황을 감시하여, 캐시(75)의 엔트리가 해방되었는지 여부를 판단한다(스텝 B1). 권리 부여수 제어부(604)는, 스텝 B1에서 캐시(75)의 엔트리가 해방되었다고 판단하면, 해방된 엔트리의 분만큼 권리 부여 가능수를 증가시킨다(스텝 B2). 권리 부여수 제어부(604)는, 스텝 B1에서 캐시(75)의 엔트리가 해방되지 않았다고 판단한 경우는, 권리 부여 가능수를 변화시키지 않는다.
권리 부여수 제어부(604)는, 리퀘스트 발행 제어부(23W, 33W, 또는 43W)로부터 액세스권이 반환되었는지 여부를 판단한다(스텝 B3). 권리 부여수 제어부(604)는, 예를 들어 리퀘스트 발행 제어부(23W, 33W 및 43W) 중 적어도 하나로부터 액세스권 반환 신호가 출력된 경우는, 액세스권이 반환되었다고 판단한다. 권리 부여수 제어부(604)는, 스텝 B3에서 액세스권이 반환되었다고 판단하면, 권리 부여 가능수를, 반환된 액세스권의 분만큼 증가시킨다(스텝 B4). 권리 부여수 제어부(604)는, 스텝 B3에서 액세스권이 반환되지 않았다고 판단한 경우는, 권리 부여 가능수를 변화시키지 않는다. 스텝 B1과 스텝 B3은, 어느 쪽을 먼저 실시해도 된다.
권리 부여 선택 제어부(601)는, 액세스권을 부여하는 것이 가능한지 여부를 판단한다(스텝 B5). 권리 부여 선택 제어부(601)는, 스텝 B5에서는, 권리 부여수 제어부(604)로부터 권리 부여 가능수를 취득하고, 권리 부여 가능수에 기초하여 액세스권의 부여가 가능한지 여부를 판단한다. 권리 부여 선택 제어부(601)는, 예를 들어 권리 부여 가능수가 1 이상이면 액세스권의 부여가 가능하다고 판단한다. 권리 부여 선택 제어부(601)는, 권리 부여 가능수가 0이면, 액세스권의 부여가 가능하지 않다고 판단한다. 권리 부여 선택 제어부(601)는, 예를 들어 사이클마다, 액세스권의 부여가 가능한지 여부를 판단한다. 액세스권의 부여가 가능하지 않다고 판단된 경우, 처리는 스텝 B1로 되돌아간다.
권리 부여 선택 제어부(601)는, 스텝 B5에서 액세스권의 부여가 가능하다고 판단한 경우, 액세스권의 부여처인 리퀘스트 발행 제어부를 선택한다(스텝 B6). 권리 부여 선택 제어부(601)는, 스텝 B6에서는, 마스터 A(20), 마스터 B(30) 및 마스터 C(40)에 대응하는 리퀘스트 발행 제어부(23W, 33W 및 43W) 중, 어느 마스터에 대응하는 리퀘스트 발행 제어부에 액세스권을 부여할지를 결정한다. 권리 부여 선택 제어부(601)는, 예를 들어 예약형 레지스터군(622) 또는 BE형 레지스터군(623)을 사용한 선택 처리에 의해, 권리 부여처인 리퀘스트 발행 제어부를 선택(결정)한다.
권리 부여 선택 제어부(601)는, 스텝 B6에서 선택한 부여처에, 액세스권을 부여한다(스텝 B7). 권리 부여 선택 제어부(601)는, 스텝 B7에서는, 액세스권을 부여하는 리퀘스트 발행 제어에 액세스권 부여 신호를 출력함으로써, 액세스권을 부여한다. 액세스권 부여 신호를 수신한 리퀘스트 발행 제어부는, 대응하는 마스터로부터 라이트 요구를 접수한 경우에는, 그 라이트 요구를 메모리 컨트롤러(80)측에 출력한다. 리퀘스트 발행 제어부는, 액세스권 부여 신호를 수신한 경우이며, 또한 대응하는 마스터로부터 라이트 요구를 접수하지 않은 경우는, 액세스권 반환 신호를 중앙 버스 제어 시스템(60)에 출력한다.
권리 부여수 제어부(604)는, 권리 부여 선택 제어부(601)가 리퀘스트 발행 제어부에 액세스권을 부여하면, 권리 부여 가능수를 1개 감소시킨다(스텝 B8). 그 후, 처리는 스텝 B1로 되돌아가고, 캐시(75)의 빈 상황 및 액세스권의 반환에 기초하는 권리 부여 가능수의 계산과, 권리 부여 가능수의 범위 내에서의 액세스권의 부여가 행해진다.
[정리]
본 실시 형태에서는, 전자 장치(10)는, 인터커넥트(70)와 메모리 컨트롤러(80) 사이에, 라이트백을 행하는 캐시(75)를 갖는다. 각 마스터가 발행한 라이트 요구는 캐시(75)에 일시적으로 유지되고, 캐시(75)는 예를 들어 메모리 컨트롤러(80)에 빈 공간이 있는 경우에, 라이트백을 행한다. 캐시(75)는, 데이터 버퍼로서의 역할이 크고, 리드 데이터가 캐시에 히트하는 기대값은 작다. 그래서 본 실시 형태에서는, 중앙 버스 제어 시스템(50)이 행하는 각 마스터의 리드 요구에 대한 액세스 제어에 있어서, 리드 데이터가 캐시에 히트하지 않고, 리드 요구가 메모리 컨트롤러(80)에 도달하는 것을 전제로 한 액세스 제어를 행한다. 달리 말하면, 중앙 버스 제어 시스템(50)은, 리드 요구가 메모리 컨트롤러(80)의 버퍼(81)에 도달하는 것을 전제로, 각 마스터의 리드 요구에 대해 액세스권을 부여한다.
본 실시 형태에서는, 메모리(90)에 대한 액세스 요구를, 캐시(75)에 일시적으로 유지할 수 있는 액세스 요구와, 메모리 컨트롤러(80)의 버퍼(81)에 지체 없이 저장되는 액세스 요구로 나누어, 각각에 대해 개별로 액세스 제어를 행한다. 보다 상세하게는, 본 실시 형태에 있어서, 중앙 버스 제어 시스템(50)은, 캐시(75)에 의해 차단되는 일 없이 메모리 컨트롤러(80)의 버퍼(81)에 도달하는 것이 예견되는 각 마스터가 발행한 리드 요구, 및 캐시(75)로부터 출력되는 라이트 요구에 대해 액세스 제어를 행한다. 또한, 중앙 버스 제어 시스템(60)은, 캐시(75)에 일시적으로 기억되는 각 마스터가 발행한 라이트 요구에 대해 액세스 제어를 행한다.
가령, 특허문헌 1과 마찬가지로, 하나의 중앙 버스 제어 시스템을 사용하여, 각 마스터와 캐시(75) 사이에서만 액세스 제어를 실시하였다고 하면, 캐시(75)가 라이트백을 행한 경우에 버퍼(81)가 점유되어, 중앙 버스 제어 시스템이 버퍼(81)의 빈 상황을 제어할 수 없는 사태가 발생할 가능성이 있다. 그 경우, 메모리 컨트롤러(80)에 의해 접수되는 액세스 요구를, 중앙 버스 제어 시스템으로부터 제어할 수 없게 되고, 특히 각 마스터가 발행하는 리드 요구에 대해 레이턴시의 보증이 곤란해진다. 이에 비해, 본 실시 형태에서는, 중앙 버스 제어 시스템(50)이, 각 마스터가 발행하는 리드 요구 및 캐시(75)가 행하는 라이트백(라이트 요구)에 대해 버퍼(81)의 빈 상황에 따라서 액세스 제어를 행한다. 이와 같이 함으로써, 버퍼(81)의 빈 상황을 중앙 버스 제어 시스템(50)으로부터 제어할 수 있어, 각 마스터가 발행하는 리드 요구에 대해 레이턴시를 보증하는 것이 가능해진다.
또한, 중앙 버스 제어 시스템(60)은, 각 마스터가 발행한 라이트 요구에 대해, 캐시(75)의 빈 상황에 따라서 액세스 제어를 행한다. 라이트 요구를 발행한 마스터는, 라이트 요구가 캐시(75)에 접수된 단계에서, 라이트 요구에 대한 응답을 수취할 수 있다. 중앙 버스 제어 시스템(60)은, 예를 들어 캐시(75)가 접수 가능한 범위에서, 각 마스터가 발행한 라이트 요구에 대해 액세스권을 부여한다. 이와 같이 함으로써, 마스터가 발행하는 라이트 요구에 대해서도, 레이턴시를 보증하는 것이 가능해진다.
[실시 형태 2]
이어서, 실시 형태 2를 설명한다. 본 실시 형태에 관한 반도체 장치를 포함하는 전자 장치의 구성은, 도 1에 나타낸 실시 형태에 관한 전자 장치(10)의 구성과 마찬가지이면 된다. 도 6은, 본 실시 형태에 있어서 사용되는 중앙 버스 제어 시스템(중앙 버스 제어 시스템 1)의 구성예를 나타낸다. 본 실시 형태에 있어서 사용되는 중앙 버스 제어 시스템(50a)은, 도 2에 나타낸 실시 형태 1에서 사용된 중앙 버스 제어 시스템(50)의 구성 외에도, 배부 페이즈 설정 레지스터(531), 배부 오버랩 설정 레지스터(532) 및 배부 페이즈 계산 회로(533)를 갖는다. 그 밖의 점은, 실시 형태 1과 동일하면 된다.
본 실시 형태에서는, 중앙 버스 제어 시스템(50a)은, 각 마스터의 리드 요구에 대응하는 리퀘스트 발행 제어부(23R, 33R 및 43R)와, 캐시(75)의 라이트 요구에 대응하는 리퀘스트 발행 제어부(78)에 대해, 기간을 나누어 배타적으로 액세스권을 부여한다. 중앙 버스 시스템(50a)은, 리퀘스트 발행 제어부(23R, 33R 및 43R)에 대해 액세스권을 부여하는 기간에서는, 리퀘스트 발행 제어부(78)에 대해 액세스권을 부여하지 않는다. 반대로, 중앙 버스 제어 시스템(50a)은, 리퀘스트 발행 제어부(78)에 대해 액세스권을 부여하는 기간에서는, 리퀘스트 발행 제어부(23R, 33R 및 43R)에 대해 액세스권을 부여하지 않는다.
본 실시 형태에서는, 중앙 버스 제어 시스템(50a)에 있어서, 예를 들어 서브 슬롯의 단위로, 리퀘스트 발행 제어부(23R, 33R 및 43R)에 대해, 즉 리드 요구에 대해 액세스권을 부여하는 기간과, 리퀘스트 발행 제어부(78)에 대해, 즉 라이트 요구에 대해 액세스권을 부여하는 기간이 설정된다. 배부 페이즈 설정 레지스터(531)는, 어느 서브 슬롯이, 리드 요구에 대해 액세스권을 부여하는 기간인지, 또는 라이트 요구에 대해 액세스권을 부여하는 기간인지를 지정하기 위한 정보를 기억한다.
본 실시 형태에 있어서, 중앙 버스 제어 시스템(50a)은, 리드 요구에 대해 액세스권을 부여하는 서브 슬롯(이하, 리드 기간 서브 슬롯이라고도 칭함)과 라이트 요구에 대해 액세스권을 부여하는 서브 슬롯(이하, 라이트 기간 서브 슬롯이라고도 칭함)의 전환에 있어서, 그 전환의 타이밍보다 소정 시간 전의 타이밍으로부터, 억제되어 있던 액세스권의 부여를 해제해도 된다. 배부 오버랩 설정 레지스터(532)는, 리드 기간 서브 슬롯과 라이트 기간 서브 슬롯의 전환에 있어서, 억제되어 있던 액세스권의 부여가 해제되는 소정 시간의 길이를 설정한다. 예를 들어, 배부 오버랩 설정 레지스터(532)는, 리드 기간 서브 슬롯과 라이트 기간 서브 슬롯의 전환에 있어서, 현재의 서브 슬롯의 종료의 몇 사이클 전부터, 리드 요구와 라이트 요구의 양쪽에 대해 액세스권의 부여가 허가되는지를 나타내는 정보를 기억한다. 배부 오버랩 설정 레지스터(532)에는, 리드 기간 서브 슬롯으로부터 라이트 기간 서브 슬롯으로의 전환과, 라이트 기간 서브 슬롯으로부터 리드 기간 서브 슬롯으로의 전환에서, 상이한 시간이 설정 가능해도 된다.
배부 페이즈 계산 회로(533)는, 배부 페이즈 설정 레지스터(531)에 기억된 정보에 따라서, 예를 들어 현재의 서브 슬롯이, 리드 기간 서브 슬롯인지, 또는 라이트 기간 서브 슬롯인지를 나타내는 정보를 권리 선택 제어부(501)에 통지한다. 권리 부여 선택 제어부(501)는, 리드 기간 서브 슬롯에서는, 리퀘스트 발행 제어부(78)를 액세스권의 부여처의 선택의 대상으로부터 제외한다. 또한, 권리 부여 선택 제어부(501)는, 라이트 기간 서브 슬롯에서는, 리퀘스트 발행 제어부(23R, 33R 및 43R)를, 액세스권의 부여처의 선택의 대상으로부터 제외한다.
배부 페이즈 계산 회로(533)는, 배부 오버랩 설정 레지스터(532)를 참조하고, 리드 기간 서브 슬롯과 라이트 기간 서브 슬롯의 전환의 타이밍으로부터 소정 시간 전의 타이밍이 되면, 리드 요구와 라이트 요구의 양쪽에 대한 액세스권의 부여가 가능하다는 취지를 권리 부여 선택 제어부(501)에 통지한다. 권리 부여 선택 제어부(501)는, 이 통지를 수취하면, 현재의 서브 슬롯이 종료될 때까지, 리퀘스트 발행 제어부(23R, 33R, 43R 및 78) 중에서, 액세스권의 부여처를 선택한다.
[설정예]
도 7은, 리드 기간 서브 슬롯과 라이트 기간 서브 슬롯의 설정예를 나타낸다. 도 7의 예에서는, 하나의 기본 슬롯은 6개의 서브 슬롯을 포함하고 있다. 배부 페이즈 설정 레지스터(531)는, 예를 들어 서브 슬롯 1, 2, 3 및 5가 리드 기간 서브 슬롯이고, 서브 슬롯 4 및 6이 라이트 기간 서브 슬롯인 취지를 나타내는 정보를 기억한다. 그 경우, 권리 부여 선택 제어부(501)는, 서브 슬롯 1, 2, 3 및 5에서는, 리드 요구에 대해 액세스권을 부여하고, 라이트 요구에 대한 액세스권의 부여를 억제한다. 또한, 권리 부여 선택 제어부(501)는, 서브 슬롯 4 및 6에서는, 라이트 요구에 대해 액세스권을 부여하고, 리드 요구에 대한 액세스권의 부여를 억제한다.
배부 페이즈 계산 회로(533)는, 서브 슬롯(3)으로부터 서브 슬롯(4)으로의 전환 시에, 그 타이밍보다 배부 오버랩 설정 레지스터(532)에 설정된 소정 시간(오버랩 시간) 전의 타이밍에, 리드 요구와 라이트 요구의 양쪽에 대한 액세스권의 부여가 가능한 취지를 권리 부여 선택 제어부(501)에 통지한다. 권리 부여 선택 제어부(501)는, 그 통지를 받으면, 예를 들어 리드 기간 서브 슬롯인 서브 슬롯 3에 있어서, 억제되어 있던 라이트 요구도, 액세스권 부여의 대상에 부가한다.
권리 부여 선택 제어부(501)는, 라이트 기간 서브 슬롯인 서브 슬롯 4로부터 리드 기간 서브 슬롯인 서브 슬롯 5로의 전환에 있어서도, 마찬가지로, 전환의 타이밍 소정 시간 전부터, 억제되어 있던 리드 요구를 액세스권 부여의 대상에 부가한다. 또한, 권리 부여 선택 제어부(501)는, 리드 기간 서브 슬롯인 서브 슬롯 5로부터 라이트 기간 서브 슬롯인 서브 슬롯 6으로의 전환에 있어서, 전환의 타이밍의 소정 시간 전부터, 억제되어 있던 라이트 요구를 액세스권 부여의 대상에 부가한다.
여기서, 액세스권이 부여된 리드 요구는, 인터커넥트(70) 및 캐시(75) 등을 통해 메모리 컨트롤러(80)에 도달하는 것에 비해, 라이트 요구는 메모리 컨트롤러(80)에 즉시 도달한다. 이와 같이, 리드 요구와 라이트 요구에서는, 액세스권이 부여되고 나서, 메모리 컨트롤러(80)에 도달할 때까지의 레이턴시가 상이하다. 각 서브 슬롯에 있어서, 액세스권의 배부를 완전히 배타적으로 행하면, 레이턴시의 차이에 기인하여 메모리 컨트롤러(80)의 버퍼(81)가 빌 가능성이 있다. 리드와 라이트의 전환 타이밍까지, 소정 시간만큼 리드 요구와 라이트 요구의 양쪽에 액세스권을 부여함으로써, 버퍼(81)가 빌 가능성을 저하시킬 수 있다.
[정리]
본 실시 형태에서는, 중앙 버스 제어 시스템(50a)은, 리드 요구와 라이트 요구에 대해, 기간을 나누어 배타적으로 액세스권을 부여한다. 예를 들어, DDR 등의 메모리(80)에의 액세스에서는, 액세스 종별을 리드와 라이트 사이에서 전환하는 경우, 액세스 종별의 전환 시에 일정 시간만큼 메모리 액세스하지 않는 기간을 설정할 필요가 있다. 이 때문에, 메모리 액세스에서는, 액세스 종별이 동종인 것을 연속하여 액세스한 쪽이, 효율적으로 메모리 액세스할 수 있다. 본 실시 형태에서는, 리드 기간 서브 슬롯에서는 리드 요구에 대해 액세스권을 부여하고, 라이트 기간 서브 슬롯에서는 라이트 요구에 대해 액세스권을 부여한다. 이와 같이 함으로써, 동종의 액세스 종별의 액세스 요구가 메모리 컨트롤러(80)에 연속하여 도달하게 되어, 메모리 컨트롤러(80) 내의 스케줄링 효율 등을 향상시킬 수 있다.
[변형예]
본 실시 형태에 있어서, 중앙 버스 제어 시스템(50a)은, 캐시(75)로부터 캐시의 빈 엔트리수를 취득하고, 빈 엔트리수에 따라서, 기본 슬롯 내에 있어서의, 리드 기간 서브 슬롯의 수와 라이트 기간 서브 슬롯의 수를 동적으로 변경해도 된다. 도 8의 (a) 및 (b)는, 각각 리드 기간 서브 슬롯과 라이트 기간 서브 슬롯의 설정예를 나타낸다. 도 8의 (a)에서는, 서브 슬롯 1, 2, 3, 4 및 5가 리드 기간 서브 슬롯에 설정되고, 서브 슬롯 6이 라이트 기간 서브 슬롯에 설정된다. 한편, 도 8의 (b)에서는, 서브 슬롯 1, 3 및 5가 리드 기간 서브 슬롯에 설정되고, 서브 슬롯 2, 4 및 6이 라이트 기간 서브 슬롯에 설정된다.
예를 들어, 배부 페이즈 설정 레지스터(531)(도 6을 참조)에는, 도 7에 나타낸 설정이 기억되어 있다고 하자. 배부 페이즈 계산 회로(533)는, 캐시(75)로부터 빈 엔트리수를 취득하고, 빈 엔트리수가 상측 역치 이상인지, 혹은 하측 역치 이하인지를 판단한다. 배부 페이즈 계산 회로(533)는, 평상 시, 예를 들어 빈 엔트리수가 상측 역치보다 적고, 또한 하측 역치보다 많은 경우는, 도 7에 나타낸 설정으로, 리드 기간 서브 슬롯과 라이트 기간 서브 슬롯을 설정한다.
배부 페이즈 계산 회로(533)는, 빈 엔트리수가 상측 역치 이상인 경우, 즉 빈 엔트리수가 많은 경우는, 라이트 기간 서브 슬롯의 수를 저감시키고, 예를 들어 도 8의 (a)에 나타낸 설정으로, 리드 기간 서브 슬롯과 라이트 기간 서브 슬롯을 설정한다. 배부 페이즈 계산 회로(533)는, 빈 엔트리수가 하측 역치 이하인 경우, 즉 빈 엔트리수가 적은 경우는, 라이트 기간 서브 슬롯의 수를 증가시키고, 예를 들어 도 8의 (b)에 나타낸 설정으로, 리드 기간 서브 슬롯과 라이트 기간 서브 슬롯을 설정한다.
상기한 바와 같이 함으로써, 빈 엔트리수가 많은 경우, 즉 캐시(75)에 기억되는 라이트백해야 할 라이트 요구가 적은 경우는, 기본 슬롯 내에서, 리드 요구에 대해 평상 시에 비해 보다 많은 액세스권을 부여할 수 있다. 한편, 빈 엔트리수가 적은 경우, 즉 캐시(75)에 라이트백해야 할 라이트 요구가 많이 기억되어 있는 경우는, 기본 슬롯 내에서, 라이트 요구에 대해 평상 시에 비해 보다 많은 액세스권을 부여할 수 있다. 리드 기간 서브 슬롯의 수와 라이트 기간 서브 슬롯의 수를, 캐시(75)의 빈 엔트리수에 따라서 동적으로 제어함으로써, 예를 들어 라이트백이 필요없을 때, 리드 요구에 많이 액세스권을 배부하여 액세스의 효율을 향상시킬 수 있다.
[실시 형태 3]
계속해서, 실시 형태 3을 설명한다. 본 실시 형태에 관한 전자 장치의 구성은, 도 1에 나타낸 실시 형태 1에 관한 전자 장치(10)의 구성과 마찬가지이면 된다. 도 9는, 본 실시 형태에 있어서 사용되는 중앙 버스 제어 시스템(중앙 버스 제어 시스템 2)의 구성을 나타낸다. 본 실시 형태에 있어서 사용되는 중앙 버스 제어 시스템(60a)은, 권리 부여 선택 제어부(601), 권리 부여수 제어부(604), 슬롯 설정 레지스터(621), 부여 가능 최대수 설정 레지스터(624) 및 QoS 레지스터군(625)을 갖는다. 권리 부여수 제어부(604), 슬롯 설정 레지스터(621) 및 부여 가능 최대수 설정 레지스터(624)는, 실시 형태 1에서 설명한 것과 마찬가지이면 된다.
실시 형태 1에서는, 중앙 버스 제어 시스템(60)(도 3을 참조)은, 예약형 레지스터군(622) 및 BE형 레지스터군(623)을 사용하여, 액세스권의 부여처인 마스터(그것에 대응한 리퀘스트 발행 제어부)를 선택한다. 이에 비해, 본 실시 형태에서는, 중앙 버스 제어 시스템(60a)은, 캐시(75)의 빈 엔트리수에 따라서, 복수의 마스터 중, 어느 마스터의 라이트 요구에 대해 액세스권을 부여할지를 결정한다.
본 실시 형태에 관한 중앙 버스 제어 시스템(60a)에 있어서, QoS 레지스터군(625)은, 각 마스터와, 캐시(75)의 빈 엔트리수의 조건을 대응지어 기억한다. 권리 부여 선택 제어부(601)는, 캐시(75)의 빈 엔트리수를 취득하고, 취득한 빈 엔트리수와, QoS 레지스터군(625)에 기억된 정보에 기초하여, 액세스권의 부여처인 마스터를 결정한다. 권리 부여 선택 제어부(601)는, 예를 들어 취득한 빈 엔트리수가, QoS 레지스터군(625)에 기억된 조건을 만족시키는 마스터 중에서, 액세스권을 부여하는 마스터를 선택한다. 이와 같이 함으로써, 예를 들어 어느 마스터에 대해서는 빈 엔트리수의 다소에 관계없이 액세스권의 부여 대상으로 하면서, 다른 마스터에 대해서는 빈 엔트리수가 많은 경우에만 액세스권의 부여의 대상으로 할 수 있다.
[설정예]
도 10은, 캐시(75)의 빈 엔트리수의 레벨을 나타낸다. 예를 들어, 캐시(75)의 빈 엔트리수는 복수의 레벨을 사용하여 관리된다. 도 10에 나타낸 예에서는, 캐시(75)의 빈 엔트리수는, 최소의 레벨 1부터, 최대의 레벨 4까지의 4개의 레벨로 관리된다. 권리 부여 선택 제어부(601)는, 취득한 캐시(75)의 빈 엔트리수가 어느 레벨인지를 판정한다. 권리 부여 선택 제어부(601)는, 예를 들어 빈 엔트리수가 역치 A 이하인 경우, 빈 엔트리수의 레벨이 레벨 1이라고 판정한다. 권리 부여 선택 제어부(601)는, 예를 들어 빈 엔트리수가 역치 A보다 많고, 또한 역치 B 이하인 경우, 빈 엔트리수의 레벨이 레벨 2라고 판정한다. 권리 부여 선택 제어부(601)는, 예를 들어 빈 엔트리수가 역치 B보다 많고, 또한 역치 C 이하인 경우, 빈 엔트리수의 레벨이 레벨 3이라고 판정한다. 권리 부여 선택 제어부(601)는, 예를 들어 빈 엔트리수가 역치 C 이상인 경우, 빈 엔트리수의 레벨이 레벨 4라고 판정한다. QoS 레지스터군(625)은, 레벨 판정에 사용되는 역치를 저장하는 레지스터도 포함하고 있어도 된다.
QoS 레지스터군(625)은, 예를 들어 각 마스터와, 빈 엔트리수의 레벨을 대응지어 기억한다. QoS 레지스터군(625)에 기억되는 빈 엔트리수의 레벨은, 대응하는 마스터가 액세스권의 부여 대상이 되는 조건을 나타낸다. 권리 부여 선택 제어부(601)는, QoS 레지스터군(625)을 참조하여, QoS 레지스터군(625)에 기억되는 빈 엔트리수의 레벨이, 취득한 빈 엔트리수의 레벨 이하인 마스터 중에서 액세스권의 부여처인 마스터를 선택한다. 예를 들어 취득한 빈 엔트리수의 레벨이 레벨 2인 경우, 권리 부여 선택 제어부(601)는 QoS 레지스터군(625)에 있어서, 레벨 1 및 레벨 2에 대응지어 기억된 마스터 중에서, 액세스권의 부여처인 마스터를 선택한다.
도 11은, 빈 엔트리수의 레벨과 액세스권의 부여 대상인 마스터의 관계를 나타낸다. 여기서는, 마스터 A 내지 마스터 D의 4개의 마스터를 생각한다. QoS 레지스터군(625)은, 예를 들어 마스터 A에 대해 레벨 2를, 마스터 B에 대해 레벨 1을, 마스터 C에 대해 레벨 4를, 마스터 D에 대해 레벨 3을 액세스권의 부여 대상이 되는 조건으로서 기억한다. 그 경우, 권리 부여 선택 제어부(601)는, 취득한 빈 엔트리수의 레벨이 레벨 1이면, 마스터 B만을 액세스권의 부여 대상으로 하고, 빈 엔트리수의 레벨이 레벨 2이면 마스터 A 및 B를 액세스권의 부여 대상으로 한다. 또한, 권리 부여 선택 제어부(601)는, 취득한 빈 엔트리수의 레벨이 레벨 3이면, 마스터 A, B 및 D를 액세스권의 부여 대상으로 하고, 빈 엔트리수의 레벨이 레벨 4 이면, 모든 마스터를 액세스권의 부여 대상으로 한다.
[정리]
본 실시 형태에서는, 권리 부여 선택 제어부(601)는, 캐시(75)의 빈 엔트리수에 따라서, 액세스권의 부여 대상 마스터를 결정하고, 부여 대상 마스터 중에서 액세스권의 부여처인 마스터를 선택한다. 예를 들어 QoS 레지스터군(625)에는, 비디오 입력을 행하는 마스터에 대해 캐시(75)의 빈 상황에 관계없이 항상 액세스권의 부여 대상으로 하기 위한 조건이 기억되고, 다른 마스터에 대해서는, 캐시(75)가 일정 이상 비어 있는 경우에만 액세스권의 부여 대상으로 하기 위한 조건이 기억된다. 그 경우, 캐시(75)의 빈 엔트리수가 적을 때, 비디오 입력을 행하는 마스터 이외의 마스터에 대한 액세스권의 부여가 정지됨으로써, 비디오 입력을 행하는 마스터의 버퍼가 오버플로우하지 않는 것을 보증하기 쉬워진다. 빈 엔트리수의 레벨에 따라서 액세스권의 부여처인 마스터를 선택하는 것 대신에, QoS 레지스터군에 직접적으로 빈 엔트리수의 역치를 설정하고, 빈 엔트리수가 역치 이상인지 여부에 기초하여, 액세스권의 부여처인 마스터를 선택해도 된다.
[실시예 4]
계속해서, 실시 형태 4를 설명한다. 본 실시 형태에서는, 반도체 장치에 있어서의 버스의 회로 정보의 생성을, 각종 설정 정보로부터 생성하는 버스 제너레이터를 설명한다. 도 12는, 버스 제너레이터(800)의 하드웨어 구성예를 나타낸다. 버스 제너레이터(800)는, 예를 들어 CPU(801), 메모리(802), 키보드(804), 마우스(805), 모니터(806) 및 버스(807)를 포함하는 컴퓨터 장치로서 구성된다. 메모리(802)에는, 컴퓨터 장치를 버스 제너레이터(800)로서 동작시키기 위한 버스 생성 툴(803)이 기억된다. 컴퓨터 장치에 있어서, CPU(801)가 메모리(802)로부터 판독된 버스 생성 툴(803)에 따라서 처리를 실행함으로써, 컴퓨터 장치를 버스 제너레이터(800)로서 동작시킬 수 있다.
도 13은, 버스 설계의 개략적인 플로우를 나타낸다. 먼저, 시장에 있어서의 유스케이스 등이 상정되고(스텝 S101), 버스에 요구되는 성능이 검토된다(스텝 S102). 이어서, 필요 성능 등에 따라서 버스 구조가 검토된다(스텝 S103). 버스 구조의 검토는, 예를 들어 중앙 버스 제어 시스템(50 및 60)(도 1을 참조)을 사용하는지 여부의 검토를 포함한다.
버스 구조가 정해지면, 결정한 버스 구조에 대해 필요한 설정 정보가 버스 제너레이터에 입력된다(스텝 S104). 버스 제너레이터는, 버스의 회로 정보를 생성하고, 출력한다(스텝 S105). 회로 정보는, 예를 들어 RTL(Register Transfer Level)로 기술된다. 그 후, 버스의 회로 정보는 논리 합성되고(스텝 S106), 이어서 레이아웃 설계가 행해진다(스텝 S107). 스텝 S104 및 S105는, 버스 제너레이터를 사용하여 설계가 행해지는 페이즈를 나타낸다.
도 14는, 설정 정보의 입력에 있어서의 화면예를 나타낸다. 예를 들어 모니터(806)(도 12를 참조)에는, 설정 정보의 입력을 재촉하는 화면이 표시되고, 유저는, 키보드(804)나 마우스(805)를 사용하여, 각종 설정을 버스 제너레이터(800)에 부여한다. 예를 들어, 도 14에 나타낸 화면에 있어서, 유저가 메뉴(901)로부터 「QoS」를 선택하면, 서브메뉴(902)가 표시된다. 유저가 서브메뉴(902)에 있어서 「아비터」를 선택하면, 아비터의 방식 등의 선택 화면(903)이 표시된다. 유저는, 선택 화면(903)에 있어서, 예를 들어 중앙 제어 방식을 선택하고, 또한 캐시의 유무 등을 선택할 수 있다.
유저는, 예를 들어 메모리에 대한 액세스 요구를 출력하는 마스터에 관한 정보로서, 마스터의 액세스처의 정보, 사용하는 클럭의 정보, 버스 폭에 관한 정보 및 기능 안전에 관한 정보 등을 버스 제너레이터(800)에 입력한다. 또한, 마스터로부터 액세스되는 슬레이브에 관한 정보로서, 어드레스 영역의 정보, 사용하는 클럭의 정보, 버스 폭에 관한 정보 및 기능 안전에 관한 정보 등을 입력한다. 또한, 아비터에 관한 정보로서, QoS 방식을 지정하는 정보 및 각 방식의 상세 설정 등을 입력한다.
도 15는, 버스 제너레이터의 기능 블록을 나타낸다. 버스 제너레이터(800)는, 기능 블록으로서, 버스 구조 정보 생성부(811), 버스 부품 생성부(812), 중앙 버스 제어부 생성부(813), 서브 버스 제어부 생성부(814) 및 머지부(815)를 갖는다. 버스 제너레이터(800)에는, 클럭 정보(101), 접속 정보(102), 슬레이브 정보(103), 마스터 정보(104), 캐시 정보(106), QoS 정보 초기값(107), DDR 컨트롤러 버퍼 정보(108) 및 서브 기능 옵션(109)이 입력된다. 이들 정보는, 예를 들어 도 14에 나타낸 설정 정보의 입력 화면을 통해 입력된다.
버스 구조 정보 생성부(811)는, 클럭 정보(101), 접속 정보(102), 슬레이브 정보(103) 및 마스터 정보(104) 등을 사용하여, 마스터와 슬레이브 사이를 접속하는 버스의 구조 정보를 생성한다. 버스 부품 생성부(812)는, 버스 구조 정보 생성부(811)가 생성한 버스의 구조 정보와, 서브 IP(Intellectual Property)군 기억부(105)에 기억된 각종 기능 블록의 회로 정보에 기초하여, 각종 버스 부품의 회로 정보(110)를 생성한다. 서브 IP군 기억부(105)에 기억되는 각종 기능 블록의 회로 정보는, 예를 들어 각종 IP 코어를 제공하는 벤더로부터 제공된다. 버스 부품 생성부(812)는, 예를 들어 RTL로 기술되는 버스 부품의 회로 정보(110)를 생성한다.
중앙 버스 제어부 생성부(813)에는, 버스 구조 정보 생성부(811)가 생성한 버스의 구조 정보와, 캐시 정보(106), QoS 정보 초기값(107), DDR 컨트롤러 버퍼 정보(108) 및 서브 기능 옵션(109)과, 서브 IP군 기억부(105)에 기억된 각종 기능 블록의 회로 정보가 입력된다. 중앙 버스 제어부 생성부(813)는, 마스터가 출력하는 리드 요구 및 캐시의 라이트백과, 마스터가 출력한 라이트 요구에 대해 액세스 제어를 행하는 중앙 버스 제어 시스템의 회로 정보(111)를 생성한다. 중앙 버스 제어부 생성부(813)는, 예를 들어 RTL로 기술되는 중앙 버스 제어 시스템의 회로 정보(111)를 생성한다. 중앙 버스 제어 시스템의 회로 정보(111)는, 예를 들어 도 1에 나타낸 중앙 버스 제어 시스템(50 및 60)의 회로 구성을 나타낸다.
서브 버스 제어부 생성부(814)는, 중앙 버스 제어 시스템의 회로 정보(111)를 사용하여, 중앙 버스 제어 시스템의 제어에 기초하여 동작하는 서브 버스 제어 시스템의 회로 정보(112)를 생성한다. 서브 버스 제어부 생성부(814)는, 예를 들어 RTL로 기술되는 서브 버스 제어 시스템의 회로 정보(112)를 생성한다. 서브 버스 제어 시스템의 회로 정보(112)는, 예를 들어 도 1에 나타낸 서브 버스 컨트롤러 시스템(22R, 32R, 42R, 22W, 32W, 42W 및 77)의 회로 구성을 나타낸다. 머지부(815)는, 버스 부품의 회로 정보(110)와, 중앙 버스 제어 시스템의 회로 정보(111)와, 서브 버스 제어 시스템의 회로 정보(112)를 머지하여, 버스의 회로 정보(113)를 출력한다. 버스의 회로 정보(113)는, 예를 들어 도 1에 나타낸 전자 장치(10)에 있어서의, 각 마스터로부터 메모리(90)까지의 사이의 버스에 관한 회로 부분을 RTL로 기술한 것이다.
[정리]
본 실시 형태에서는, 버스 시스템의 생성에 버스 제너레이터(800)가 사용된다. 버스 제너레이터(800)에 각종 설정 정보 등을 입력함으로써, 예를 들어 도 1에 나타낸 전자 장치(10)의 각 마스터로부터 메모리(90)까지의 사이의 버스 시스템을 자동 생성할 수 있다.
[실시 형태 5]
실시 형태 5를 설명한다. 도 16은, 본 실시 형태에 관한 반도체 장치를 포함하는 전자 장치를 나타낸다. 도 1에 나타낸 실시 형태 1에 관한 전자 장치(10)에서는, 중앙 버스 제어 시스템(50)은, 캐시(75)의 라이트백에 대응한 리퀘스트 발행 제어부(78)에 대해 부여하는 액세스권을 제어함으로써, 라이트백에 대한 액세스 제어를 행한다. 이에 비해, 본 실시 형태에 관한 전자 장치(10a)에서는, 중앙 버스 제어 시스템(50b)은, 리퀘스트 발행 제어부(78)로 출력하는 액세스 허가를 나타내는 신호를 제어함으로써, 라이트 요구 백에 대한 액세스 제어를 실시한다. 그 밖의 점은, 실시 형태 1 내지 3과 마찬가지이면 된다.
본 실시 형태에 있어서, 중앙 버스 제어 시스템(50b)은, 허가 기간 통지를, 액세스 허가를 나타내는 신호로서 리퀘스트 발행 제어부(78)에 출력한다. 허가 기간 통지는, 액세스가 허가되는 경우에 어서트되고, 액세스가 허가되지 않는 경우에 네게이트된다. 라이트 리퀘스트 발행 제어부(78)는, 중앙 버스 제어 시스템(50b)으로부터 출력되는 허가 기간 통지가 어서트되어 있는 경우는, 캐시(75)로부터 출력된 라이트 요구를 메모리 컨트롤러(80)로 출력한다. 리퀘스트 발행 제어부(78)는, 허가 기간 통지가 네게이트되어 있는 경우는, 라이트 요구의 메모리 컨트롤러(80)로의 출력을 억제한다. 리퀘스트 발행 제어부(78)는, 라이트 요구를 메모리 컨트롤러(80)에 출력하면, 그 취지를 나타내는 전송 통지를 중앙 버스 제어 시스템(50b)에 출력한다.
도 17은, 중앙 버스 제어 시스템(50b)의 구성예를 나타낸다. 중앙 버스 제어 시스템(50b)은, 권리 부여 선택 제어부(501), 마스크 신호 생성부(502), 배부 우선도 계산 회로(503), 권리 부여수 제어부(504), 리프레시 제어부(505), 전송량 모니터(510), 슬롯 설정 레지스터(521), 예약형 레지스터군(522), BE(Best Effort)형 레지스터군(523) 및 부여 가능 최대수 설정 레지스터(524)를 갖는다. 본 실시 형태에 있어서, 중앙 버스 제어 시스템(50b)의 예약형 레지스터군(522)은, 캐시(75)에 대한 예약 밴드 폭 등의 정보를 기억하고 있지 않아도 되고, BE형 레지스터군(523)은 캐시(75)에 대한 목표 전송량 등의 정보를 기억하고 있지 않아도 된다. 또한, 전송량 모니터(510)는, 리퀘스트 발행 제어부(78)와 메모리 컨트롤러(80) 사이의 버스(79W)에 있어서의 트랜잭션의 전송량을 모니터하지 않아도 된다(도 16도 참조).
본 실시 형태에 관한 중앙 버스 제어 시스템(50b)에 있어서, 권리 부여 선택 제어부(501)가 행하는 리퀘스트 발행 제어부(23R, 33R 및 43R)에 대한 액세스권의 부여는, 실시 형태 1에 있어서 설명한 것과 마찬가지이면 된다. 권리 부여 선택 제어부(501)는, 리퀘스트 발행 제어부(78)에 대해서는, 허가 기간 통지를 출력한다. 권리 부여수 제어부(504)는, 리퀘스트 발행 제어부(78)로부터, 전송 통지를 수신한다. 권리 부여수 제어부(504)는, 전송 통지를 수신하면, 캐시(75)의 라이트백에 대해 액세스권이 부여되었다고 간주하여, 권리 부여 가능수를 전송된 라이트 요구의 분만큼 저감시킨다. 권리 부여 선택 제어부(501)는, 권리 부여 가능수의 범위에서, 리퀘스트 발행 제어부(23R, 33R 및 43R)에 대해 액세스권을 부여한다.
[정리]
실시 형태 1에 관한 중앙 버스 제어 시스템(50)이 행하는 라이트 요구의 액세스권의 부여에 있어서, 액세스권의 부여처는, 캐시(75)의 라이트백만, 즉 리퀘스트 발행 제어부(78) 뿐이다. 캐시의 라이트백 액세스 허가를, 액세스권에 기초하여 실시하는 경우, 액세스권의 부여처가 1개소뿐이기 때문에, 액세스권이 연속해서 부여되는 경우가 많다고 생각된다. DDR 메모리에 대한 액세스는 버스트 액세스인 것이 일반적이고, 또한 라이트 요구에서는 데이터 셀의 전송도 있기 때문에, 리퀘스트 발행 제어부(78)에 대해 연속해서 액세스권을 부여하였다고 해도, 전부 사용할 수 없어, 중앙 버스 제어 시스템(50)에 반환되는 경우가 많아진다고 생각된다. 그 경우, 불필요한 액세스권의 부여가 증가하고, 리드 요구에 대해 부여 가능한 액세스권이 감소할 가능성이 있다. 본 실시 형태에서는, 중앙 버스 제어 시스템(50b)은, 리퀘스트 발행 제어부(78)에 출력하는 허가 기간 통지를 사용하여 라이트 요구에 대한 액세스 제어를 실시한다. 본 실시 형태에서는, 리퀘스트 발행 제어부(78)가 라이트 리퀘스트를 메모리 컨트롤러(80)에 출력한 경우에 권리 부여 가능수를 감소시키고 있어, 상기한 불필요한 액세스권의 부여를 회피할 수 있다.
[실시 형태 6]
실시 형태 6을 설명한다. 본 실시 형태에 관한 전자 장치의 구성은, 도 1에 나타낸 실시 형태 1에 관한 전자 장치(10)의 구성과 마찬가지이면 된다. 본 실시 형태에서는, 실시 형태 2와 마찬가지로, 각 마스터의 리드 요구에 대응하는 리퀘스트 발행 제어부(23R, 33R 및 43R)와, 캐시(75)의 라이트 요구에 대응하는 리퀘스트 발행 제어부(78)에 대해, 기간을 나누어 배타적으로 액세스권이 부여된다. 본 실시 형태에서는, 도 6에 나타낸 실시 형태 2에 있어서 사용되는 중앙 버스 제어 시스템(50a)이 중앙 버스 제어 시스템 1로서 사용된다. 본 실시 형태에 있어서, 중앙 버스 제어 시스템(50a)의 리프레시 제어부(505)는, 리드 요구에 대해 액세스권이 부여되는 기간과, 라이트 요구에 대해 액세스권이 부여되는 기간을 전환하는 타이밍에 맞추어, 메모리(90)에 리프레시 요구를 출력한다. 그 밖의 점은, 실시 형태 2와 마찬가지이면 된다.
[동작예]
도 18은, 메모리(90)에의 액세스의 동작예를 나타낸다. 도 18의 (a)는, 리드와 라이트의 전환에 맞추어 리프레시를 행하지 않는 경우의 동작예를 나타내고, (b)는 리드와 라이트의 전환에 맞추어 리프레시를 행한 경우의 동작예를 나타낸다.
도 18의 (a)에 나타낸 바와 같이, 예를 들어 시각 t11에 메모리(90)에 대해 리드로 액세스를 개시하고, 그 후 액세스 종별을 라이트로 전환하는 경우를 생각한다. 메모리(90)에 대한 액세스 종별을 리드로부터 라이트로 전환하는 경우, 리드의 종료 후, 라이트를 개시할 때까지, 일정 기간만큼 메모리 액세스를 행하지 않는 기간을 설정할 필요가 있다. 즉, 리드와 라이트의 전환에, R(Read)/W(Write) 전환 페널티가 발생한다. 도 18의 (a)에서는, 시각 t12에 리드를 종료하고 나서 시각 t13에 라이트를 개시할 때까지의 시간 T1이, R/W 전환 페널티가 된다.
시각 t13에 액세스 종별을 라이트로 전환한 후, 다시 액세스 종별을 리드로 전환하는 경우도, 시각 t14에 라이트를 종료하고 나서 시각 t15로 리드를 개시할 때까지의 시간 T1만큼, R/W 전환 페널티가 발생한다. 시각 t16에 리프레시를 개시한 경우, 리프레시 기간 동안에도 메모리(90)에의 액세스를 할 수 없어, 시각 t16으로부터 리프레시가 종료되는 시각 t17까지의 시간 T2가 리프레시 페널티가 된다. 리프레시에 의해 중단된 리드의 메모리(90)에의 액세스는 시각 t17에 재개되고, 시각 t18에 종료된다.
이어서, 도 18의 (b)에 나타낸 바와 같이, 예를 들어 시각 t21에 메모리(90)에 대해 리드로 액세스를 개시하고, 그 후 액세스 종별을 라이트로 전환하는 경우를 생각한다. 이 경우도, 도 18의 (a)의 예와 마찬가지로, 시각 t22로부터 시각 t23까지의 시간 T1만큼, R/W 전환 페널티가 발생한다. 도 18의 (b)의 예에서는, 시각 t23에 액세스 종별이 라이트로 전환된 후, 시각 t24에 액세스 종별의 전환과 리프레시가 동시에 실시된다. 이 경우, 시각 t24로부터 시각 t25까지의 시간 T2(리프레시 페널티)가, R/W 전환 페널티(T1)를 은폐하여, 별도로 R/W 전환 페널티만큼 대기하지 않아도, 시각 t25에, 액세스 종별을 리드로 전환할 수 있다. 시각 t25에 개시된 리드의 메모리(90)에의 액세스는, 시각 t26에 종료된다.
도 18의 (a)의 예에서는, 시각 t11로부터 시각 t18까지의 사이에, 액세스 종별의 전환이 2회 있고, 리프레시 동작이 1회 있다. 도 18의 (a)의 예에서는, R/W 전환 페널티가 2회 있고, 리프레시 페널티가 1회 있기 때문에, 시각 t11로부터 시각 t18까지의 사이에, 메모리(90)에의 액세스를 할 수 없는 기간이 2×T1+T2만큼 있다. 도 18의 (b)의 예에 있어서도, 시각 t21로부터 시각 t26까지의 사이에, 액세스 종별의 전환은 2회 있고, 리프레시가 1회 있다. 그러나 도 18의 (b)의 예에서는, 리프레시 페널티가 R/W 전환 페널티를 은폐하기 때문에, 시각 t21로부터 시각 t26까지의 사이에, 메모리(90)에 액세스할 수 없는 기간은 T1+T2이면 된다. 시각 t11로부터 시각 t18까지의 시간과, 시각 t21로부터 시각 t26까지의 시간이 동등한 경우, 액세스 종별의 전환에 맞추어 리프레시를 동시에 실시함으로써, 시간 T1만큼 메모리(90)에 액세스 가능한 시간이 증가한 것이 된다.
[정리]
본 실시 형태에서는, 중앙 버스 제어 시스템(50a)은, 리드 요구에 대해 액세스권을 부여하는 기간과, 라이트 요구에 대해 액세스권을 부여하는 기간을 전환하는 타이밍에 맞추어, 메모리(90)에 리프레시 동작을 실시시킨다. DDR 등의 메모리에의 액세스에서는, 리드와 라이트 사이의 액세스 종별의 전환 페널티가 크다. 본 실시 형태에서는, 리드 요구에 액세스권을 부여하는 기간과 라이트 요구에 액세스권을 부여하는 기간의 전환 타이밍에 맞추어 리프레시를 실시시킴으로써, 리프레시 페널티로 R/W 전환 페널티를 은폐할 수 있다. 이와 같이 함으로써, 메모리(90)에의 액세스의 효율을 높일 수 있다.
[변형예]
또한, 상기 각 실시 형태에서는, 중앙 버스 제어 시스템(50)의 권리 부여 선택 제어부(501)(도 2를 참조)가, 예약형 레지스터군(522)을 사용한 액세스권의 부여처의 선택과, BE형 레지스터군(523)을 사용한 액세스권의 부여처의 선택을 독립적으로 행하는 예를 설명하였지만, 이것에 한정되는 것은 아니다. 권리 부여 선택 제어부(501)는, 예약형 레지스터군(522)을 사용한 액세스권의 부여처의 선택과, BE형 레지스터군(523)을 사용한 액세스권의 부여처의 선택을 전환하여 실시해도 된다. 중앙 버스 제어 시스템(60)의 권리 부여 선택 제어부(601)(도 3을 참조)에 대해서도 마찬가지이다.
상기 각 실시 형태에서는, 2개의 중앙 버스 제어 장치를 사용하여, 메모리 컨트롤러(80)에 출력되는 액세스 요구의 액세스 제어와, 캐시(75)에 일시적으로 기억되는 액세스 요구(라이트 요구)의 액세스 제어를 실시하는 예를 설명하였지만, 이들 중앙 버스 제어 시스템은, 물리적으로 분리되어 있을 필요는 없다. 하나의 중앙 버스 제어 시스템을 사용하여, 메모리 컨트롤러(80)에 출력되는 액세스 요구의 액세스 제어와, 캐시(75)에 일시적으로 기억되는 액세스 요구(라이트 요구)의 액세스 제어를 개별로 실시해도 된다.
이상, 본 발명자에 의해 이루어진 발명을 실시 형태에 기초하여 구체적으로 설명하였지만, 본 발명은 이미 설명한 실시 형태에 한정되는 것은 아니며, 그 요지를 일탈하지 않는 범위에 있어서 다양한 변경이 가능한 것은 물론이다.
예를 들어, 상기한 실시 형태의 일부 또는 전부는, 이하의 부기와 같이 기재될 수도 있지만, 이하에 한정되는 것은 아니다.
[부기 1]
메모리에 대해, 리드 요구 및 라이트 요구를 포함하는 액세스 요구를 발행하는 마스터와,
버스를 통해 상기 마스터에 접속되고, 상기 액세스 요구에 따라서 상기 메모리에 액세스하는 메모리 컨트롤러와,
상기 메모리 컨트롤러와 상기 마스터 사이에 배치되고, 상기 액세스 요구가 라이트 요구인 경우에 당해 라이트 요구를 캐시하는 캐시와,
상기 마스터가 발행한 리드 요구의 상기 메모리 컨트롤러로의 출력, 및 상기 캐시에 캐시된 라이트 요구의 상기 메모리 컨트롤러로의 출력을 제어하는 제1 액세스 제어를 실시하는 제1 액세스 제어부와,
상기 마스터가 발행한 라이트 요구의 상기 메모리 컨트롤러로의 출력을 제어하는 제2 액세스 제어를 실시하는 제2 액세스 제어부를 구비하고,
상기 메모리 컨트롤러는, 상기 액세스 요구를 접수하여 기억하는 리퀘스트 버퍼를 갖고 있고,
상기 제1 액세스 제어부는, 상기 리퀘스트 버퍼의 빈 상황에 따라서 상기 제1 액세스 제어를 실시하고,
상기 제2 액세스 제어부는, 상기 캐시의 빈 상황에 따라서 상기 제2 액세스 제어를 실시하는 반도체 장치.
[부기 2]
상기 버스는, 상기 리드 요구를 전송하기 위한 리드 요구 버스와, 상기 라이트 요구를 전송하기 위한 라이트 요구 버스를 포함하고,
상기 제1 액세스 제어부는, 상기 리드 요구 버스에 대응하여 배치된 리드 리퀘스트 발행 제어부를 갖는 리드 서브 버스 컨트롤러와, 상기 캐시와 상기 메모리 컨트롤러 사이의 상기 라이트 요구 버스에 대응하여 배치된 제1 라이트 리퀘스트 발행 제어부를 갖는 제1 라이트 서브 버스 컨트롤러와, 상기 리드 서브 버스 컨트롤러 및 상기 제1 라이트 서브 버스 컨트롤러를 사용하여 상기 제1 액세스 제어를 실시하는 제1 중앙 버스 제어 시스템을 포함하고,
상기 제2 액세스 제어부는, 상기 마스터와 상기 캐시 사이의 상기 라이트 요구 버스에 대응하여 배치된 제2 라이트 리퀘스트 발행 제어부를 갖는 제2 라이트 서브 버스 컨트롤러와, 상기 제2 라이트 서브 버스 컨트롤러를 사용하여 상기 제2 액세스 제어를 실시하는 제2 중앙 버스 제어 시스템을 포함하는 부기 1에 기재된 반도체 장치.
[부기 3]
상기 제1 중앙 버스 제어 시스템은, 상기 리드 리퀘스트 발행 제어부로의 액세스권의 부여를 제어함으로써 상기 리드 요구에 대한 상기 제1 액세스 제어를 실시하고,
상기 리드 리퀘스트 발행 제어부는, 상기 마스터로부터 상기 리드 요구를 접수하고, 상기 제1 중앙 버스 제어 시스템으로부터 상기 액세스권이 부여되어 있는 경우는 상기 리드 요구를 상기 메모리 컨트롤러로 출력하고, 상기 액세스권이 부여되어 있지 않은 경우는 상기 리드 요구의 상기 메모리 컨트롤러로의 출력을 억제하는 부기 2에 기재된 반도체 장치.
[부기 4]
상기 제1 중앙 버스 제어 시스템은, 상기 제1 라이트 리퀘스트 발행 제어부로의 액세스권의 부여를 제어함으로써 상기 라이트 요구에 대한 상기 제1 액세스 제어를 실시하고,
상기 제1 라이트 리퀘스트 발행 제어부는, 상기 캐시로부터 상기 라이트 요구를 접수하고, 상기 제1 중앙 버스 제어 시스템으로부터 상기 액세스권이 부여되어 있는 경우는 상기 라이트 요구를 상기 메모리 컨트롤러로 출력하고, 상기 액세스권이 부여되어 있지 않은 경우는 상기 라이트 요구의 상기 메모리 컨트롤러로의 출력을 억제하는 부기 3에 기재된 반도체 장치.
[부기 5]
상기 제1 중앙 버스 제어 시스템은, 상기 제1 라이트 리퀘스트 발행 제어부로 출력하는 액세스 허가를 나타내는 신호를 제어함으로써 상기 라이트 요구에 대한 상기 제1 액세스 제어를 실시하고,
상기 제1 라이트 리퀘스트 발행 제어부는, 상기 캐시로부터 상기 라이트 요구를 접수하고, 상기 제1 중앙 버스 제어 시스템으로부터 상기 액세스의 허가를 나타내는 신호가 출력되어 있는 경우는 상기 라이트 요구를 상기 메모리 컨트롤러로 출력하고, 상기 액세스 허가를 나타내는 신호가 출력되어 있지 않은 경우는 상기 라이트 요구의 상기 메모리 컨트롤러로의 출력을 억제하는 부기 3에 기재된 반도체 장치.
[부기 6]
상기 제2 중앙 버스 제어 시스템은, 상기 제2 라이트 리퀘스트 발행 제어부로의 액세스권의 부여를 제어함으로써 상기 제2 액세스 제어를 실시하고,
상기 제2 라이트 리퀘스트 발행 제어부는, 상기 마스터로부터 상기 라이트 요구를 접수하고, 상기 제2 중앙 버스 제어 시스템으로부터 상기 액세스권이 부여되어 있는 경우는 상기 라이트 요구를 상기 캐시로 출력하고, 상기 액세스권이 부여되어 있지 않은 경우는 상기 라이트 요구의 상기 캐시로의 출력을 억제하는 부기 2에 기재된 반도체 장치.
[부기 7]
상기 마스터를 복수 갖고,
상기 복수의 마스터로부터 입력되는 액세스 요구를 중재하여 상기 메모리 컨트롤러에 출력하는 인터커넥트를 더 구비하는 부기 2에 기재된 반도체 장치.
[부기 8]
상기 리드 리퀘스트 발행 제어부 및 상기 제2 라이트 리퀘스트 발행 제어부는, 상기 복수의 마스터 각각과 상기 인터커넥트 사이를 접속하는 복수의 리드 버스 및 라이트 버스 각각에 대응하여 배치되는 부기 7에 기재된 반도체 장치.
[부기 9]
상기 제1 중앙 버스 제어 시스템은, 상기 리퀘스트 버퍼의 빈 엔트리수에 따라서, 상기 액세스권을 부여하는 것이 가능한 수를 나타내는 권리 부여 가능수를 관리하고, 당해 권리 부여 가능수의 범위에서 상기 리드 리퀘스트 발행 제어부 및 상기 제1 라이트 리퀘스트 발행 제어부에 상기 액세스권을 부여하는 부기 4에 기재된 반도체 장치.
[부기 10]
상기 메모리 컨트롤러는, 상기 리퀘스트 버퍼가 해방되면, 상기 리퀘스트 버퍼가 해방되었다는 취지를 나타내는 버퍼 해방 통지를 상기 제1 중앙 버스 제어 시스템에 출력하고,
상기 제1 중앙 버스 제어 시스템은, 상기 리드 리퀘스트 발행 제어부 및 상기 제1 라이트 리퀘스트 발행 제어부에 상기 액세스권을 부여한 경우, 상기 권리 부여 가능수로부터 상기 액세스권의 부여수를 감산하고, 상기 버퍼 해방 통지를 수취한 경우, 상기 권리 부여 가능수에 상기 리퀘스트 버퍼에 있어서 해방된 엔트리의 수를 가산하는 부기 9에 기재된 반도체 장치.
[부기 11]
상기 리드 리퀘스트 발행 제어부 및 상기 제1 라이트 리퀘스트 발행 제어부는, 각각, 상기 액세스권이 부여된 경우에 상기 리드 요구 및 라이트 요구를 접수하고 있지 않은 경우는, 상기 제1 중앙 버스 제어 시스템에 상기 액세스권을 반환하고,
상기 제1 중앙 버스 제어 시스템은, 상기 액세스권이 반환된 경우, 상기 권리 부여 가능수에 상기 액세스권의 반환 수를 가산하는 부기 10에 기재된 반도체 장치.
[부기 12]
상기 캐시는 상기 메모리로부터 판독된 리드 데이터를 더 캐시하고,
상기 리드 리퀘스트 발행 제어부로부터 출력된 리드 요구에 의해 요구되는 데이터가 상기 캐시에 캐시되어 있는 경우, 상기 캐시는, 상기 캐시된 리드 데이터를, 상기 리드 요구의 발행원인 마스터에 상기 리드 요구에 대한 응답으로서 출력하고, 또한 상기 리드 리퀘스트 발행 제어부에 부여된 액세스권을 상기 제1 중앙 버스 제어 시스템에 반환하는 부기 10에 기재된 반도체 장치.
[부기 13]
상기 제2 중앙 버스 제어 시스템은, 상기 캐시의 빈 엔트리수에 따라서, 상기 액세스권을 부여하는 것이 가능한 수를 나타내는 권리 부여 가능수를 관리하고, 당해 권리 부여 가능수의 범위에서 상기 제2 라이트 리퀘스트 발행 제어부에 상기 액세스권을 부여하는 부기 6에 기재된 반도체 장치.
[부기 14]
상기 제2 중앙 버스 제어 시스템은, 상기 제2 라이트 리퀘스트 발행 제어부에 상기 액세스권을 부여한 경우, 상기 권리 부여 가능수로부터 상기 액세스권의 부여수를 감산하고, 상기 캐시의 빈 엔트리수가 증가한 경우, 상기 권리 부여 가능수에 상기 빈 엔트리가 증가한 수를 가산하는 부기 13에 기재된 반도체 장치.
[부기 15]
상기 제2 라이트 리퀘스트 발행 제어부는, 상기 액세스권이 부여된 경우에 상기 라이트 요구를 접수하고 있지 않은 경우는, 상기 제2 중앙 버스 제어 시스템에 상기 액세스권을 반환하고,
상기 제2 중앙 버스 제어 시스템은, 상기 액세스권이 반환된 경우, 상기 권리 부여 가능수에 상기 액세스권의 반환 수를 가산하는 부기 14에 기재된 반도체 장치.
[부기 16]
상기 제1 중앙 버스 제어 시스템은, 제1 기간에서는 상기 리드 리퀘스트 발행 제어부에 상기 액세스권을 부여하고, 또한 상기 제1 라이트 리퀘스트 발행 제어부로의 상기 액세스권의 부여를 억제하고, 제2 기간에서는 상기 제1 라이트 리퀘스트 발행 제어부에 상기 액세스권을 부여하고, 또한 상기 리드 리퀘스트 발행 제어부로의 상기 액세스권의 부여를 억제하는 부기 4에 기재된 반도체 장치.
[부기 17]
상기 제1 중앙 버스 제어 시스템은, 소정의 기본 슬롯의 기간을 복수의 기간으로 분할한 기간을 서브 슬롯으로 하여, 당해 서브 슬롯의 단위로, 상기 제1 기간 또는 상기 제2 기간을 설정하는 부기 16에 기재된 반도체 장치.
[부기 18]
상기 제1 중앙 버스 제어 시스템은, 상기 서브 슬롯이 상기 제1 기간에 설정되는지, 또는 상기 제2 기간에 설정되는지를 지정하기 위한 레지스터를 갖는 부기 17에 기재된 반도체 장치.
[부기 19]
상기 제1 중앙 버스 제어 시스템은, 상기 캐시의 빈 엔트리수에 따라서, 상기 제1 기간에 설정되는 서브 슬롯의 수와, 상기 제2 기간에 설정되는 서브 슬롯의 수를 변경하는 부기 17에 기재된 반도체 장치.
[부기 20]
상기 제1 중앙 버스 제어 시스템은, 상기 제1 기간에 설정된 서브 슬롯으로부터 상기 제2 기간에 설정된 서브 슬롯으로의 전환, 및 상기 제2 기간에 설정된 서브 슬롯으로부터 상기 제1 기간에 설정된 서브 슬롯으로의 전환 중 적어도 한쪽에 있어서, 당해 전환의 타이밍보다 소정 시간 전의 타이밍으로부터, 상기 억제된 액세스권의 부여를 해제하는 부기 17에 기재된 반도체 장치.
[부기 21]
상기 메모리는 리프레시 동작이 실행 가능하게 구성되어 있고,
상기 제1 중앙 버스 제어 시스템은, 상기 제1 기간과 상기 제2 기간을 전환하는 타이밍에 맞추어 상기 메모리에 상기 리프레시 동작을 실행시키는 부기 16에 기재된 반도체 장치.
[부기 22]
상기 마스터를 복수 갖고,
상기 복수의 마스터로부터 입력되는 액세스 요구를 중재하여 상기 메모리 컨트롤러에 출력하는 인터커넥트를 더 구비하고,
상기 제2 중앙 버스 제어 시스템은, 상기 캐시의 빈 엔트리수에 따라서, 상기 복수의 마스터 중, 어느 마스터의 라이트 요구에 상기 액세스권을 부여할지를 결정하는 부기 6에 기재된 반도체 장치.
[부기 23]
상기 제2 중앙 버스 제어 시스템은, 상기 복수의 마스터와, 상기 캐시의 빈 엔트리수의 조건을 대응지어 기억하는 레지스터를 갖고, 상기 캐시의 빈 엔트리수가 상기 조건을 만족시키는 마스터 중에서, 상기 액세스권을 부여하는 마스터를 결정하는 부기 22에 기재된 반도체 장치.
[부기 24]
반도체 장치에 있어서의 버스를 생성하는 버스 제너레이터로서,
리드 요구 및 라이트 요구를 포함하는, 메모리에 대한 액세스 요구를 출력하는 마스터에 관한 정보와, 상기 마스터로부터 액세스되는 슬레이브의 정보에 기초하여, 상기 마스터와 상기 슬레이브 사이를 접속하는 버스의 구조 정보를 생성하는 버스 구조 정보 생성부와,
상기 버스의 구조 정보, 상기 라이트 요구를 일시적으로 기억하여 라이트백하는 캐시의 정보, 상기 마스터의 서비스 품질 정보, 및 기능 블록의 회로 정보를 사용하여, 상기 마스터가 출력하는 리드 요구 및 상기 캐시의 라이트백과, 상기 마스터가 출력한 라이트 요구에 대해 액세스 제어를 행하는 중앙 버스 제어 시스템의 회로 정보를 생성하는 중앙 버스 제어부 생성부와,
상기 중앙 버스 제어 시스템의 회로 정보를 사용하여, 상기 중앙 버스 제어 시스템의 제어에 기초하여 동작하는 서브 버스 제어 시스템의 회로 정보를 생성하는 서브 버스 제어부 생성부와,
상기 버스의 구조 정보 및 기능 블록의 회로 정보를 사용하여, 버스 부품의 회로 정보를 생성하는 버스 부품 생성부와,
상기 중앙 버스 제어 시스템의 회로 정보, 상기 서브 버스 제어 시스템의 회로 정보, 및 상기 버스 부품의 회로 정보를 머지하여, 상기 버스의 회로 정보를 생성하는 머지부를 구비하는 버스 제너레이터.
10 : 전자 장치
21R, 21W, 31R, 31W, 41R, 41W : 버스
22R, 22W, 32R, 32W, 42R, 42W, 77 : 서브 버스 컨트롤러
23R, 23W, 33R, 33W, 43R, 43W : 리퀘스트 발행 제어부
24R, 24W, 34R, 34W, 44R, 44W : 버스
50 : 중앙 버스 제어 시스템 1
60 : 중앙 버스 제어 시스템 2
70 : 인터커넥트
75 : 캐시
76R, 76W, 79W : 버스
77 : 서브 버스 컨트롤러(라이트 서브 버스 컨트롤러 1)
78 : 리퀘스트 발행 제어부
80 : 메모리 컨트롤러
81 : 버퍼
90 : 메모리
101 : 클럭 정보
102 : 접속 정보
103 : 슬레이브 정보
104 : 마스터 정보
105 : IP군 기억부
106 : 캐시 정보
107 : QoS 정보 초기값
108 : 컨트롤러 버퍼 정보
109 : 서브 기능 옵션
110 : 버스 부품의 회로 정보
111 : 중앙 버스 제어 시스템의 회로 정보
112 : 서브 버스 제어 시스템의 회로 정보
113 : 버스의 회로 정보
501, 601 : 권리 부여 선택 제어부
502, 602 : 마스크 신호 생성부
503, 603 : 배부 우선도 계산 회로
504, 604 : 권리 부여수 제어부
505 : 리프레시 제어부
510, 610 : 전송량 모니터
511, 611 : 예약형용 전송량 모니터
512, 612 : BE형용 전송량 모니터
521, 621 : 슬롯 설정 레지스터
522, 622 : 예약형 레지스터군
523, 623 : BE형 레지스터군
524, 624 : 부여 가능 최대 수 설정 레지스터
531 : 배부 페이즈 설정 레지스터
532 : 배부 오버랩 설정 레지스터
533 : 배부 페이즈 계산 회로
601 : 권리 부여 선택 제어부
800 : 버스 제너레이터
801 : CPU
802 : 메모리
803 : 버스 생성 툴
804 : 키보드
805 : 마우스
806 : 모니터
807 : 버스
811 : 버스 구조 정보 생성부
812 : 버스 부품 생성부
813 : 중앙 버스 제어부 생성부
814 : 서브 버스 제어부 생성부
815 : 머지부

Claims (20)

  1. 메모리에 대해, 리드 요구 및 라이트 요구를 포함하는 액세스 요구를 발행하는 마스터와,
    버스를 통해 상기 마스터에 접속되고, 상기 액세스 요구에 따라서 상기 메모리에 액세스하는 메모리 컨트롤러와,
    상기 메모리 컨트롤러와 상기 마스터 사이에 배치되고, 상기 액세스 요구가 라이트 요구인 경우에 당해 라이트 요구를 캐시하는 캐시와,
    상기 마스터가 발행한 리드 요구의 상기 메모리 컨트롤러로의 출력, 및 상기 캐시에 캐시된 라이트 요구의 상기 메모리 컨트롤러로의 출력을 제어하는 제1 액세스 제어를 실시하는 제1 액세스 제어부와,
    상기 마스터가 발행한 라이트 요구의 상기 메모리 컨트롤러로의 출력을 제어하는 제2 액세스 제어를 실시하는 제2 액세스 제어부를 구비하고,
    상기 메모리 컨트롤러는, 상기 액세스 요구를 접수하여 기억하는 리퀘스트 버퍼를 갖고 있고,
    상기 제1 액세스 제어부는, 상기 리퀘스트 버퍼의 빈 상황에 따라서 상기 제1 액세스 제어를 실시하고,
    상기 제2 액세스 제어부는, 상기 캐시의 빈 상황에 따라서 상기 제2 액세스 제어를 실시하는 반도체 장치.
  2. 제1항에 있어서,
    상기 버스는, 상기 리드 요구를 전송하기 위한 리드 요구 버스와, 상기 라이트 요구를 전송하기 위한 라이트 요구 버스를 포함하고,
    상기 제1 액세스 제어부는, 상기 리드 요구 버스에 대응하여 배치된 리드 리퀘스트 발행 제어부를 갖는 리드 서브 버스 컨트롤러와, 상기 캐시와 상기 메모리 컨트롤러 사이의 상기 라이트 요구 버스에 대응하여 배치된 제1 라이트 리퀘스트 발행 제어부를 갖는 제1 라이트 서브 버스 컨트롤러와, 상기 리드 서브 버스 컨트롤러 및 상기 제1 라이트 서브 버스 컨트롤러를 사용하여 상기 제1 액세스 제어를 실시하는 제1 중앙 버스 제어 시스템을 포함하고,
    상기 제2 액세스 제어부는, 상기 마스터와 상기 캐시 사이의 상기 라이트 요구 버스에 대응하여 배치된 제2 라이트 리퀘스트 발행 제어부를 갖는 제2 라이트 서브 버스 컨트롤러와, 상기 제2 라이트 서브 버스 컨트롤러를 사용하여 상기 제2 액세스 제어를 실시하는 제2 중앙 버스 제어 시스템을 포함하는 반도체 장치.
  3. 제2항에 있어서,
    상기 제1 중앙 버스 제어 시스템은, 상기 리드 리퀘스트 발행 제어부로의 액세스권의 부여를 제어함으로써 상기 리드 요구에 대한 상기 제1 액세스 제어를 실시하고,
    상기 리드 리퀘스트 발행 제어부는, 상기 마스터로부터 상기 리드 요구를 접수하고, 상기 제1 중앙 버스 제어 시스템으로부터 상기 액세스권이 부여되어 있는 경우는 상기 리드 요구를 상기 메모리 컨트롤러로 출력하고, 상기 액세스권이 부여되어 있지 않은 경우는 상기 리드 요구의 상기 메모리 컨트롤러로의 출력을 억제하는 반도체 장치.
  4. 제3항에 있어서,
    상기 제1 중앙 버스 제어 시스템은, 상기 제1 라이트 리퀘스트 발행 제어부로의 액세스권의 부여를 제어함으로써 상기 라이트 요구에 대한 상기 제1 액세스 제어를 실시하고,
    상기 제1 라이트 리퀘스트 발행 제어부는, 상기 캐시로부터 상기 라이트 요구를 접수하고, 상기 제1 중앙 버스 제어 시스템으로부터 상기 액세스권이 부여되어 있는 경우는 상기 라이트 요구를 상기 메모리 컨트롤러로 출력하고, 상기 액세스권이 부여되어 있지 않은 경우는 상기 라이트 요구의 상기 메모리 컨트롤러로의 출력을 억제하는 반도체 장치.
  5. 제3항에 있어서,
    상기 제1 중앙 버스 제어 시스템은, 상기 제1 라이트 리퀘스트 발행 제어부로 출력하는 액세스 허가를 나타내는 신호를 제어함으로써 상기 라이트 요구에 대한 상기 제1 액세스 제어를 실시하고,
    상기 제1 라이트 리퀘스트 발행 제어부는, 상기 캐시로부터 상기 라이트 요구를 접수하고, 상기 제1 중앙 버스 제어 시스템으로부터 상기 액세스의 허가를 나타내는 신호가 출력되어 있는 경우는 상기 라이트 요구를 상기 메모리 컨트롤러로 출력하고, 상기 액세스 허가를 나타내는 신호가 출력되어 있지 않은 경우는 상기 라이트 요구의 상기 메모리 컨트롤러로의 출력을 억제하는 반도체 장치.
  6. 제2항에 있어서,
    상기 제2 중앙 버스 제어 시스템은, 상기 제2 라이트 리퀘스트 발행 제어부로의 액세스권의 부여를 제어함으로써 상기 제2 액세스 제어를 실시하고,
    상기 제2 라이트 리퀘스트 발행 제어부는, 상기 마스터로부터 상기 라이트 요구를 접수하고, 상기 제2 중앙 버스 제어 시스템으로부터 상기 액세스권이 부여되어 있는 경우는 상기 라이트 요구를 상기 캐시로 출력하고, 상기 액세스권이 부여되어 있지 않은 경우는 상기 라이트 요구의 상기 캐시로의 출력을 억제하는 반도체 장치.
  7. 제2항에 있어서,
    상기 마스터를 복수 갖고,
    상기 복수의 마스터로부터 입력되는 액세스 요구를 중재하여 상기 메모리 컨트롤러에 출력하는 인터커넥트를 더 구비하고,
    상기 리드 리퀘스트 발행 제어부 및 상기 제2 라이트 리퀘스트 발행 제어부는, 상기 복수의 마스터 각각과 상기 인터커넥트 사이를 접속하는 복수의 리드 버스 및 라이트 버스 각각에 대응하여 배치되는 반도체 장치.
  8. 제4항에 있어서,
    상기 제1 중앙 버스 제어 시스템은, 상기 리퀘스트 버퍼의 빈 엔트리수에 따라서, 상기 액세스권을 부여하는 것이 가능한 수를 나타내는 권리 부여 가능수를 관리하고, 당해 권리 부여 가능수의 범위에서 상기 리드 리퀘스트 발행 제어부 및 상기 제1 라이트 리퀘스트 발행 제어부에 상기 액세스권을 부여하는 반도체 장치.
  9. 제8항에 있어서,
    상기 메모리 컨트롤러는, 상기 리퀘스트 버퍼가 해방되면, 상기 리퀘스트 버퍼가 해방되었다는 취지를 나타내는 버퍼 해방 통지를 상기 제1 중앙 버스 제어 시스템에 출력하고,
    상기 제1 중앙 버스 제어 시스템은, 상기 리드 리퀘스트 발행 제어부 및 상기 제1 라이트 리퀘스트 발행 제어부에 상기 액세스권을 부여한 경우, 상기 권리 부여 가능수로부터 상기 액세스권의 부여수를 감산하고, 상기 버퍼 해방 통지를 수취한 경우, 상기 권리 부여 가능수에 상기 리퀘스트 버퍼에 있어서 해방된 엔트리의 수를 가산하는 반도체 장치.
  10. 제9항에 있어서,
    상기 캐시는 상기 메모리로부터 판독된 리드 데이터를 더 캐시하고,
    상기 리드 리퀘스트 발행 제어부로부터 출력된 리드 요구에 의해 요구되는 데이터가 상기 캐시에 캐시되어 있는 경우, 상기 캐시는, 상기 캐시된 리드 데이터를, 상기 리드 요구의 발행원인 마스터에 상기 리드 요구에 대한 응답으로서 출력하고, 또한 상기 리드 리퀘스트 발행 제어부에 부여된 액세스권을 상기 제1 중앙 버스 제어 시스템에 반환하는 반도체 장치.
  11. 제6항에 있어서,
    상기 제2 중앙 버스 제어 시스템은, 상기 캐시의 빈 엔트리수에 따라서, 상기 액세스권을 부여하는 것이 가능한 수를 나타내는 권리 부여 가능수를 관리하고, 당해 권리 부여 가능수의 범위에서 상기 제2 라이트 리퀘스트 발행 제어부에 상기 액세스권을 부여하는 반도체 장치.
  12. 제11항에 있어서,
    상기 제2 중앙 버스 제어 시스템은, 상기 제2 라이트 리퀘스트 발행 제어부에 상기 액세스권을 부여한 경우, 상기 권리 부여 가능수로부터 상기 액세스권의 부여수를 감산하고, 상기 캐시의 빈 엔트리수가 증가한 경우, 상기 권리 부여 가능수에 상기 빈 엔트리가 증가한 수를 가산하는 반도체 장치.
  13. 제4항에 있어서,
    상기 제1 중앙 버스 제어 시스템은, 제1 기간에서는 상기 리드 리퀘스트 발행 제어부에 상기 액세스권을 부여하고, 또한 상기 제1 라이트 리퀘스트 발행 제어부로의 상기 액세스권의 부여를 억제하고, 제2 기간에서는 상기 제1 라이트 리퀘스트 발행 제어부에 상기 액세스권을 부여하고, 또한 상기 리드 리퀘스트 발행 제어부로의 상기 액세스권의 부여를 억제하는 반도체 장치.
  14. 제13항에 있어서,
    상기 제1 중앙 버스 제어 시스템은, 소정의 기본 슬롯의 기간을 복수의 기간으로 분할한 기간을 서브 슬롯으로 하여, 당해 서브 슬롯의 단위로, 상기 제1 기간 또는 상기 제2 기간을 설정하는 반도체 장치.
  15. 제13항에 있어서,
    상기 제1 중앙 버스 제어 시스템은, 상기 캐시의 빈 엔트리수에 따라서, 상기 제1 기간에 설정되는 서브 슬롯의 수와, 상기 제2 기간에 설정되는 서브 슬롯의 수를 변경하는 반도체 장치.
  16. 제14항에 있어서,
    상기 제1 중앙 버스 제어 시스템은, 상기 제1 기간에 설정된 서브 슬롯으로부터 상기 제2 기간에 설정된 서브 슬롯으로의 전환, 및 상기 제2 기간에 설정된 서브 슬롯으로부터 상기 제1 기간에 설정된 서브 슬롯으로의 전환 중 적어도 한쪽에 있어서, 당해 전환의 타이밍보다 소정 시간 전의 타이밍으로부터, 상기 억제된 액세스권의 부여를 해제하는 반도체 장치.
  17. 제13항에 있어서,
    상기 메모리는 리프레시 동작이 실행 가능하게 구성되어 있고,
    상기 제1 중앙 버스 제어 시스템은, 상기 제1 기간과 상기 제2 기간을 전환하는 타이밍에 맞추어 상기 메모리에 상기 리프레시 동작을 실행시키는 반도체 장치.
  18. 제6항에 있어서,
    상기 마스터를 복수 갖고,
    상기 복수의 마스터로부터 입력되는 액세스 요구를 중재하여 상기 메모리 컨트롤러에 출력하는 인터커넥트를 더 구비하고,
    상기 제2 중앙 버스 제어 시스템은, 상기 캐시의 빈 엔트리수에 따라서, 상기 복수의 마스터 중, 어느 마스터의 라이트 요구에 상기 액세스권을 부여할지를 결정하는 반도체 장치.
  19. 제18항에 있어서,
    상기 제2 중앙 버스 제어 시스템은, 상기 복수의 마스터와, 상기 캐시의 빈 엔트리수의 조건을 대응지어 기억하는 레지스터를 갖고, 상기 캐시의 빈 엔트리수가 상기 조건을 만족시키는 마스터 중에서, 상기 액세스권을 부여하는 마스터를 결정하는 반도체 장치.
  20. 반도체 장치에 있어서의 버스를 생성하는 버스 제너레이터로서,
    리드 요구 및 라이트 요구를 포함하는, 메모리에 대한 액세스 요구를 출력하는 마스터에 관한 정보와, 상기 마스터로부터 액세스되는 슬레이브의 정보에 기초하여, 상기 마스터와 상기 슬레이브 사이를 접속하는 버스의 구조 정보를 생성하는 버스 구조 정보 생성부와,
    상기 버스의 구조 정보, 상기 라이트 요구를 일시적으로 기억하여 라이트백하는 캐시의 정보, 상기 마스터의 서비스 품질 정보, 및 기능 블록의 회로 정보를 사용하여, 상기 마스터가 출력하는 리드 요구 및 상기 캐시의 라이트백과, 상기 마스터가 출력한 라이트 요구에 대해 액세스 제어를 행하는 중앙 버스 제어 시스템의 회로 정보를 생성하는 중앙 버스 제어부 생성부와,
    상기 중앙 버스 제어 시스템의 회로 정보를 사용하여, 상기 중앙 버스 제어 시스템의 제어에 기초하여 동작하는 서브 버스 제어 시스템의 회로 정보를 생성하는 서브 버스 제어부 생성부와,
    상기 버스의 구조 정보 및 기능 블록의 회로 정보를 사용하여, 버스 부품의 회로 정보를 생성하는 버스 부품 생성부와,
    상기 중앙 버스 제어 시스템의 회로 정보, 상기 서브 버스 제어 시스템의 회로 정보, 및 상기 버스 부품의 회로 정보를 머지하여, 상기 버스의 회로 정보를 생성하는 머지부를 구비하는 버스 제너레이터.
KR1020180164323A 2017-12-22 2018-12-18 반도체 장치 및 버스 제너레이터 KR20190076869A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2017-246433 2017-12-22
JP2017246433A JP6946168B2 (ja) 2017-12-22 2017-12-22 半導体装置

Publications (1)

Publication Number Publication Date
KR20190076869A true KR20190076869A (ko) 2019-07-02

Family

ID=64755234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180164323A KR20190076869A (ko) 2017-12-22 2018-12-18 반도체 장치 및 버스 제너레이터

Country Status (6)

Country Link
US (1) US11188488B2 (ko)
EP (2) EP3502909B1 (ko)
JP (1) JP6946168B2 (ko)
KR (1) KR20190076869A (ko)
CN (1) CN110059035B (ko)
TW (1) TW201935259A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6946168B2 (ja) * 2017-12-22 2021-10-06 ルネサスエレクトロニクス株式会社 半導体装置
CN110299164B (zh) * 2019-06-28 2021-10-26 西安紫光国芯半导体有限公司 一种自适应dram刷新控制方法和dram刷新控制器
JP2022129555A (ja) * 2021-02-25 2022-09-06 セイコーエプソン株式会社 回路装置及び電子機器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017056132A1 (ja) 2015-10-01 2017-04-06 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2759178B1 (fr) * 1997-02-05 1999-04-09 Sgs Thomson Microelectronics Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d'acces
GB2341765B (en) 1998-09-18 2003-10-22 Pixelfusion Ltd Idle bus usage
JP2004171209A (ja) * 2002-11-19 2004-06-17 Matsushita Electric Ind Co Ltd 共有メモリデータ転送装置
TWI252409B (en) * 2004-04-26 2006-04-01 Sunplus Technology Co Ltd Enhanced expandable time-sharing bus device
JP2008299438A (ja) * 2007-05-29 2008-12-11 Yamaha Corp メモリ制御装置
TW201017421A (en) * 2008-09-24 2010-05-01 Panasonic Corp Cache memory, memory system and control method therefor
KR101620460B1 (ko) * 2010-05-04 2016-05-13 삼성전자주식회사 인터커넥트, 그것을 포함하는 버스 시스템 그리고 버스 시스템의 동작 방법
US11392517B2 (en) * 2014-09-10 2022-07-19 Sony Group Corporation Access control method, bus system, and semiconductor device
JP6946168B2 (ja) * 2017-12-22 2021-10-06 ルネサスエレクトロニクス株式会社 半導体装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017056132A1 (ja) 2015-10-01 2017-04-06 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
EP3502909B1 (en) 2021-04-07
US20190196997A1 (en) 2019-06-27
JP6946168B2 (ja) 2021-10-06
CN110059035B (zh) 2023-10-17
TW201935259A (zh) 2019-09-01
US11188488B2 (en) 2021-11-30
EP3502909A3 (en) 2019-09-11
JP2019114015A (ja) 2019-07-11
EP3872644B1 (en) 2023-05-24
EP3872644A1 (en) 2021-09-01
CN110059035A (zh) 2019-07-26
EP3502909A2 (en) 2019-06-26

Similar Documents

Publication Publication Date Title
JP4480427B2 (ja) リソース管理装置
US8549199B2 (en) Data processing apparatus and a method for setting priority levels for transactions
US6820152B2 (en) Memory control device and LSI
KR20190076869A (ko) 반도체 장치 및 버스 제너레이터
JP6513695B2 (ja) 半導体装置
JP2007334748A (ja) 情報処理装置およびアクセス制御方法
US20210141749A1 (en) Semiconductor device and access control method
JP2007334749A (ja) 情報処理装置およびアクセス制御方法
EP3588318B1 (en) Semiconductor device and bus generator
JP7181892B2 (ja) マルチクライアントシステムにおけるリアルタイムストリームの動的アービトレーションの方法
JP7018834B2 (ja) 半導体装置
JP2012168773A (ja) バスシステムおよびアクセス制御方法
JP2011242928A (ja) 半導体装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal