KR20190066551A - 반도체 장치 및 그 재구성 제어 방법 - Google Patents

반도체 장치 및 그 재구성 제어 방법 Download PDF

Info

Publication number
KR20190066551A
KR20190066551A KR1020180148167A KR20180148167A KR20190066551A KR 20190066551 A KR20190066551 A KR 20190066551A KR 1020180148167 A KR1020180148167 A KR 1020180148167A KR 20180148167 A KR20180148167 A KR 20180148167A KR 20190066551 A KR20190066551 A KR 20190066551A
Authority
KR
South Korea
Prior art keywords
circuit
circuits
configuration information
semiconductor device
buffers
Prior art date
Application number
KR1020180148167A
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 KR20190066551A publication Critical patent/KR20190066551A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in 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
    • 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
    • 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
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)

Abstract

[과제] 반도체 장치의 소비 전력을 저감하는 것.
[해결수단] 본 실시형태에 따른 반도체 장치는, 복수의 회로와, 복수의 회로 사이의 통신 데이터를 일시적으로 보존하는 복수의 버퍼 및 복수의 회로와 복수의 버퍼 사이의 액세스를 조정하는 복수의 조정 회로를 가지는 버스 회로와, 복수의 회로 사이의 통신에 있어서의 복수의 버퍼의 사용 상황에 근거하는 정보와 복수의 회로 중 통신에 사용되지 않는 불사용 회로의 지정을 포함하는 구성 정보를 기억하는 기억부와, 구성 정보에 근거하여, 복수의 버퍼 중 통신에서 사용되지 않는 불사용 버퍼 및 복수의 조정 회로 중 불사용 회로에 대응하는 조정 회로 내의 적어도 일부의 구성의 사용을 정지하도록, 버스 회로를 제어하는 제어 회로를 구비한다.

Description

반도체 장치 및 그 재구성 제어 방법{SEMICONDUCTOR DEVICE AND RECONFIGURATION CONTROL METHOD OF THE SAME}
본 발명은 반도체 장치 및 그 재구성 제어 방법에 관한 것으로, 예를 들면, 구성 정보에 근거하여 재구성을 행하는 반도체 장치 및 그 재구성 제어 방법에 관한 것이다.
최근, MCU(Micro Control Unit) 등을 포함하는 반도체 장치는, 탑재되는 주변 모듈 수가 증가하고 있다. 그리고 주변 모듈 수의 증가에 따라, 각 모듈 사이의 통신 경로를 망라하기 위해 버스 회로의 규모도 증가하고 있다. 또한, 반도체 장치의 논리 구성을 동적으로 재구성하는 기술로서, 예를 들면, 특허문헌 1이나 2를 들 수 있다.
특허문헌 1에 따른 기술에서는, 우선, 마이크로컴퓨터의 초기화 시에 제1 통신 처리 방식의 컨피규레이션 데이터(configuration data)에 의해 프로그래머블 로직(programmable logic)을 제1 통신 처리 회로로서 구성한다. 그리고 제1 통신 처리 회로에 의한 통신에 대한 응답이 없었던 경우에, 제2 통신 처리 방식의 컨피규레이션 데이터에 의해 프로그래머블 로직을 제2 통신 처리 회로로서 재구성한다. 한편, 제1 통신 처리 회로에 의한 통신에 대한 응답이 있었던 경우에는, 제2 통신 처리 방식의 컨피규레이션 데이터를 이용하지 않고, 마이크로컴퓨터는 통상 처리로 진행한다. 이와 같이, 복수의 컨피규레이션 데이터 중 필요가 없는 것의 사용을 회피함으로써, 프로그래머블 로직의 자원의 소비를 억제할 수 있다.
또한, 특허문헌 2에 따른 기술은, 액세스 커맨드의 감시에 의해 산출된 메모리 밴드 폭 등에 따라, 재구성 회로 내의 논리부와 버퍼부를 재구성하는 것이다.
[특허문헌 1] 일본 특개2008-219806호 공보 [특허문헌 2] 국제공개 제2009/060567호
최근의 반도체 장치에는, 주변 모듈 수의 증가나 버스 회로의 규모의 증가에 따라, 소비 전력이 증가하고 있다는 문제점이 있다. 여기서, 특허문헌 1에 따른 기술은, 특정의 논리 회로를 구성하기 위한 컨피규레이션 데이터가 필요한지 여부를 판별할 수 있지만, 필요한 컨피규레이션 데이터에 의해 재구성된 프로그래머블 로직의 소비 전력을 저감하는 것은 아니다. 또한, 특허문헌 2에 따른 기술은, 재구성 회로에 있어서의 논리부와 버퍼부의 구성 비율을 조정(調整)하는 것이며, 재구성 회로 자체의 소비 전력을 저감하기 위한 것은 아니다.
그 밖의 과제와 신규한 특징은, 본 명세서의 기술 및 첨부 도면으로부터 명확해질 것이다.
일 실시형태에 따르면, 반도체 장치는, 복수의 회로 사이의 통신에 있어서의 복수의 버퍼의 사용 상황에 근거하는 정보와 불사용 회로의 지정을 포함하는 구성 정보를 기억하는 기억부와, 상기 구성 정보에 근거하여, 상기 복수의 버퍼 중 상기 통신에서 사용되지 않는 불사용 버퍼 및 불사용 회로에 대응하는 조정(調停) 회로 내의 적어도 일부의 구성의 사용을 정지하도록, 상기 버스 회로를 제어하는 제어 회로를 구비하는 것이다.
상기 일 실시형태에 따르면, 반도체 장치의 소비 전력을 저감할 수 있다.
[도 1] 본 실시형태 1에 따른 반도체 장치의 구성을 나타내는 블록도이다.
[도 2] 본 실시형태 1에 따른 반도체 장치의 재구성 제어 시스템의 구성을 나타내는 블록도이다.
[도 3] 본 실시형태 1에 따른 에뮬레이션 디바이스(emulation device)의 구성을 나타내는 블록도이다.
[도 4] 본 실시형태 1에 따른 동작 정보와 구성 정보의 관계를 나타내는 도면이다.
[도 5] 본 실시형태 1에 따른 MCU의 구성을 나타내는 블록도이다.
[도 6] 본 실시형태 1에 따른 버스 회로를 포함하는 구성을 나타내는 블록도이다.
[도 7] 본 실시형태 1에 따른 조정 회로의 구성을 나타내는 블록도이다.
[도 8] 본 실시형태 1에 따른 조정 회로 내의 FF군(群)의 구성을 나타내는 블록도이다.
[도 9] 본 실시형태 1에 따른 포인터(pointer) 회로의 구성을 나타내는 블록도이다.
[도 10] 본 실시형태 1에 따른 버퍼 회로의 구성을 나타내는 블록도이다.
[도 11] 본 실시형태 1에 따른 동작 정보 취득 처리의 흐름을 나타내는 플로우차트(flowchart)이다.
[도 12] 본 실시형태 1에 따른 변환 처리의 흐름을 나타내는 플로우차트이다.
[도 13] 본 실시형태 1에 따른 재구성 처리의 흐름을 나타내는 플로우차트이다.
[도 14] 본 실시형태 2에 따른 반도체 장치의 재구성 제어 시스템의 구성을 나타내는 블록도이다.
[도 15] 본 실시형태 2에 따른 에뮬레이션 디바이스의 구성을 나타내는 블록도이다.
[도 16] 본 실시형태 2에 따른 동작 정보와 구성 정보의 관계를 나타내는 도면이다.
[도 17] 본 실시형태 2에 따른 MCU의 구성을 나타내는 블록도이다.
[도 18] 본 실시형태 3에 따른 반도체 장치의 재구성 제어 시스템의 구성을 나타내는 블록도이다.
[도 19] 본 실시형태 3에 따른 에뮬레이션 디바이스의 구성을 나타내는 블록도이다.
[도 20] 본 실시형태 3에 따른 동작 정보와 구성 정보의 관계를 나타내는 도면이다.
[도 21] 본 실시형태 3에 따른 MCU의 구성을 나타내는 블록도이다.
[도 22] 본 실시형태 3에 따른 동작 정보 취득 처리의 흐름을 나타내는 플로우차트이다.
[도 23] 본 실시형태 3에 따른 재구성 처리의 흐름을 나타내는 플로우차트이다.
설명의 명확화를 위하여, 이하의 기재 및 도면은, 적절히, 생략, 및 간략화가 이루어져 있다. 또한, 다양한 처리를 행하는 기능 블록으로서 도면에 기재되는 각 요소는, 하드웨어적으로는, 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에 따른 반도체 장치(1000)의 구성을 나타내는 블록도이다. 반도체 장치(1000)는, 복수의 회로(1101∼110n)(n은 2 이상의 자연수.)와, 버스 회로(1200)와, 기억부(1300)와, 제어 회로(1400)를 구비한다. 반도체 장치(1000)는, 예를 들면, 프로세서 등을 탑재하여, 특정 소프트웨어를 실행하는 것이다. 회로(1101) 등은, 주변 모듈, 프로세서, 메모리, 또는, 통신 모듈 등의 회로 블록이다.
버스 회로(1200)는, 회로(1101∼110n)와, 기억부(1300)와, 제어 회로(1400)를 접속하여, 그들 사이의 통신 데이터를 중계하는 신호 경로이다. 버스 회로(1200)는, 복수의 버퍼(1201, 1202, …120m)(m는 2 이상의 자연수.)와, 복수의 조정 회로(1211, 1212, …121p)(p는 2 이상의 자연수.)를 가진다. 버퍼(1201) 등은, 회로(1101) 등의 사이의 통신 데이터를 일시적으로 보존하는 기억 영역이다. 조정 회로(1211) 등은, 회로(1101) 등과 버퍼(1201) 등의 사이의 액세스를 조정한다.
기억부(1300)는, 구성 정보(1310)를 기억하는 기억 회로이다. 구성 정보(1310)는, 회로(1101) 등의 사이의 통신에 있어서의 버퍼(1201) 등의 사용 상황에 근거하는 정보와, 회로(1101) 등 중 상기 통신에 사용되지 않는 불사용 회로의 지정을 포함한다. 제어 회로(1400)는, 구성 정보(1310)에 근거하여, 버퍼(1201) 등 중 상기 통신에서 사용되지 않는 불사용 버퍼 및 조정 회로(1211) 등 중 불사용 회로에 대응하는 조정 회로 내의 적어도 일부의 구성의 사용을 정지하도록, 버스 회로(1200)를 제어한다.
이와 같이, 본 실시형태에서는, 회로 사이의 통신에서 사용되지 않는 버퍼 및 통신에 사용되지 않는 회로에 대응하는 조정 회로에 공급되는 클록 신호를 정지함으로써, 반도체 장치(1000)의 소비 전력을 저감할 수 있다.
여기서, 반도체 장치(1000)는, 다음과 같은 구성을 가지는 것이 바람직하다. 즉, 상기 버스 회로는, 상기 복수의 버퍼 중에서 액세스 대상의 버퍼를 선택하는 선택 회로를 더 가진다. 그리고 상기 제어 회로는, 상기 복수의 버퍼 중 상기 불사용 버퍼에 대하여, 클록 신호의 공급을 정지하도록 지시하고, 상기 선택 회로에 대하여, 상기 불사용 버퍼를 선택 대상 외로 하도록 지시한다. 이에 의해, 버스 회로 내의 불사용 버퍼의 클록 공급의 정지와 해당 불사용 버퍼의 선택을 제외함으로써, 확실하게 불사용 버퍼의 사용을 정지할 수 있다.
또한, 상기 구성 정보는, 상기 복수의 버퍼 중 상기 통신에 있어서의 버퍼의 최대 사용 수를 포함하면 된다. 그리고 상기 제어 회로는, 상기 선택 회로에 대하여, 상기 복수의 버퍼 중 상기 최대 사용 수 이하의 버퍼를 선택하도록 지시하면 된다. 이에 의해, 클록 공급을 정지한 버퍼가 선택 회로에 의해 선택되지 않도록 하여, 불필요한 액세스를 억제할 수 있다.
또한, 상기 구성 정보는, 상기 복수의 버퍼의 총수로부터 상기 최대 사용 수를 제외한 수의 버퍼를 상기 불사용 버퍼로서 더 포함하면 된다. 이에 의해, 클록 공급을 정지하는 버퍼를 적확하게 지시할 수 있다.
또한, 반도체 장치(1000)는, 다음과 같은 구성을 가지는 것이 바람직하다. 즉, 상기 불사용 회로는, 상기 복수의 회로 중 상기 통신에 있어서의 마스터 회로 또는 슬레이브 회로로서 사용되지 않는 것이다. 그리고 상기 버스 회로는, 상기 복수의 조정 회로 중 상기 마스터 회로 또는 상기 슬레이브 회로로부터의 복수의 액세스를 조정하는 제1 조정 회로를 더 포함한다. 그리고 상기 제어 회로는, 상기 지정된 불사용 회로에 대응하는 상기 제1 조정 회로 내의 적어도 일부의 구성에 대한 클록 신호의 공급을 정지하도록, 상기 버스 회로를 제어한다. 이에 의해, 어느 회로가 회로 사이의 통신의 송신원(마스터 회로) 또는 송신처(슬레이브 회로)가 될 수 없는 경우에, 해당 회로로부터의 리퀘스트 또는 리스폰스를 조정하는 조정 회로로의 클록 공급을 정지할 수 있다. 그리고 클록 공급의 정지에 의해 CMOS(Complementary MOS(metal-oxide-semiconductor))의 충방전(充放電)을 억제하여, 동적 소비 전력을 저감할 수 있다.
또한, 상기 버스 회로는, 상기 복수의 조정 회로 중 상기 마스터 회로 또는 상기 슬레이브 회로에 대한 복수의 액세스를 조정하는 제2 조정 회로를 더 포함하면 된다. 그리고 상기 제어 회로는, 상기 지정된 불사용 회로에 대응하는 상기 제2 조정 회로에 대한 클록 신호의 공급을 정지하도록, 상기 버스 회로를 제어하면 된다. 이에 의해, 불사용 회로로의 리퀘스트 또는 리스폰스를 조정하는 조정 회로로의 클록을 정지할 수 있다. 그리고 동적 소비 전력을 저감할 수 있다.
또한, 상기 구성 정보는, 특정 소프트웨어의 실행시에 있어서의 상기 사용 상황에 근거하는 정보인 것이 바람직하다. 이에 의해, 소프트웨어마다 특유의 회로 사이의 통신에 대응시켜, 버스 회로를 최적화할 수 있다.
또한, 상기 구성 정보는, 상기 복수의 회로 및 상기 버스 회로와 동등한 구성을 적어도 탑재한 다른 반도체 장치에서 상기 특정 소프트웨어를 실행한 경우에 취득된 동작 정보에 근거하여 도출된 것인 것이 바람직하다. 이와 같이, 특정 소프트웨어의 에뮬레이션에 의해 얻어진 동작 정보를 이용함으로써, 실제의 동작에 더 비슷하게 하여, 버스 회로를 최적화할 수 있다.
이어서, 상술한 반도체 장치(1000)의 구체적인 적용례에 관하여 이하에 설명한다.
도 2는, 본 실시형태 1에 따른 반도체 장치의 재구성 제어 시스템(2000)의 구성을 나타내는 블록도이다. 재구성 제어 시스템(2000)은, 에뮬레이션 디바이스(100)와, MCU(Micro Control Unit)(200)와, 정보 처리 장치(300)를 구비한다. MCU(200)는, 상술한 반도체 장치(1000)의 일 실시예이며, 특정 소프트웨어를 실행하는 것이다. MCU(200)는, 예를 들면, 양산판(量産版)의 반도체 장치에 상당한다. 에뮬레이션 디바이스(100)는, MCU(200)에 탑재하는 특정 소프트웨어를 에뮬레이트하여, 해당 소프트웨어의 개발을 진행시키기 위한 반도체 장치이다. 여기서, 에뮬레이션 디바이스(100)와 MCU(200)는, 후술하는 바와 같이, 많은 회로 구성이 공통된다. 단, 에뮬레이션 디바이스(100)는, MCU(200)와 비교하여 후술하는 동작 모니터를 가진다. 또한, MCU(200)는, 에뮬레이션 디바이스(100)와 비교하여 후술하는 재구성 제어 회로를 가진다.
도 3은, 본 실시형태 1에 따른 에뮬레이션 디바이스(100)의 구성을 나타내는 블록도이다. 에뮬레이션 디바이스(100)는, 동작 모니터(110)와, FLASH(120)와, RAM(130)과, 통신 모듈(140)과, 버스 회로(150)와, 주변 모듈(161∼16n)과, CPU(171∼17x)(x는, 2 이상의 자연수.)를 구비한다. FLASH(120)는, MCU(200)에 탑재될 예정인 개발 대상의 소프트웨어(121)를 기억하는 불휘발성 기억장치의 일례인 플래시 메모리이다. RAM(130)은, 각종 데이터를 일시적으로 기억하는 휘발성 기억장치이다. 통신 모듈(140)은, 외부와의 통신을 행하는 회로이다. 버스 회로(150)는, 동작 모니터(110), FLASH(120), RAM(130), 통신 모듈(140), 주변 모듈(161∼16n), 및, CPU(171∼17x)를 접속하여, 이들 사이의 통신 데이터를 중계하는 신호 경로이다. 또한, 버스 회로(150)는, 후술하는 바와 같이 통신 데이터를 일시적으로 보존하는 복수의 버퍼를 가진다. 주변 모듈(161∼16n)은, 각종 처리를 행하는 회로 블록이다. CPU(171∼17x) 중 적어도 하나는, FLASH(120)로부터 소프트웨어(121)를 로딩하여, 실행하는 것에 의해, 소정의 처리를 실현한다.
동작 모니터(110)는, 소프트웨어(121)의 실행시에 있어서의 각 회로의 동작 상태를 관측하고, 동작 정보(111)를 취득하여, 내부에 보존한다. 특히, 동작 모니터(110)는, 소프트웨어(121)의 실행시에 있어서의 회로 사이의 통신을 감시하고, 통신시에 있어서의 버스 회로(150)의 동작으로부터 동작 정보(111)를 취득한다. 그리고 동작 모니터(110)는, 소프트웨어(121)의 실행 후에, 동작 정보(111)를 통신 모듈(140)을 통하여, 정보 처리 장치(300)로 송신한다. 동작 정보(111)는, 예를 들면, 버스 루팅(routing) 정보나 버퍼의 최대 엔트리(entry) 사용 수 등을 포함한다. 버스 루팅 정보는, 송신원인 마스터 회로로부터 송신처인 슬레이브 회로로 버스 회로(150)를 통하여 리퀘스트 신호가 송신될 때의 마스터 회로와 슬레이브 회로의 조합을 나타내는 정보이다. 또한, 버퍼의 최대 엔트리 사용 수는, 소프트웨어(121)의 실행을 통해서, 버스 회로(150) 내의 버퍼가 동시에 사용되었을 때의 최대 수를 나타내는 정보이다.
도 2로 돌아와서 설명을 계속한다. 정보 처리 장치(300)는, 에뮬레이션 디바이스(100)로부터 수신한 동작 정보를, MCU(200)를 재구성하기 위한 구성 정보로 변환하는 변환 툴로서 동작하는 것이다. 정보 처리 장치(300)는, 정보 변환 처리부(310)와, 기억부(320)를 구비한다. 또한, 정보 처리 장치(300)는, 범용적인 컴퓨터 장치이며, 일반적인 구성의 도시 및 동작의 설명을 생략한다. 기억부(320)는, 불휘발성 또는 휘발성의 기억장치이다. 기억부(320)는, 동작 정보(321)와, 회로 정보(322)와, 구성 정보(323)를 기억한다. 동작 정보(321)는, 상술한 동작 정보(111)가 저장된 것이다. 회로 정보(322)는, MCU(200) 내의 회로 구성을 나타내는 정보이다. 예를 들면, 회로 정보(322)는, 마스터 회로의 리스트, 슬레이브 회로의 리스트, 및, 버스 회로 내의 버퍼의 총수 등이다. 구성 정보(323)는, MCU(200) 내의 버스 회로를 재구성하기 위한 정보이다.
정보 변환 처리부(310)는, 에뮬레이션 디바이스(100)로부터 동작 정보(111)를 수신한 경우에, 기억부(320)에 동작 정보(321)로서 보존한다. 또한, 정보 변환 처리부(310)는, 동작 정보(321)와 회로 정보(322)에 근거하여, 소정의 변환을 행하고, 구성 정보(323)를 생성하여, 기억부(320)에 보존한다. 그리고 정보 변환 처리부(310)는, 변환 후에, 구성 정보(323)를 MCU(200)로 송신한다.
도 4는, 본 실시형태 1에 따른 동작 정보와 구성 정보의 관계를 나타내는 도면이다. 예를 들면, 동작 정보 A가 버스 회로의 사용시의 루팅 정보인 경우, 정보 변환 처리부(310)는, 회로 정보(322)의 마스터 회로 및 슬레이브 회로의 리스트 중, 동작 정보 A에 출현하지 않는 마스터 회로 및 슬레이브 회로를 불사용 회로로서 특정하여, 구성 정보 A로 한다. 또한, 동작 정보 B가 버퍼의 최대 엔트리 사용 수인 경우, 정보 변환 처리부(310)는, 해당 사용 수를 버퍼의 사용 상한(上限) 수로 한다. 또한, 정보 변환 처리부(310)는, 회로 정보(322) 내의 버퍼 총수로부터 최대 엔트리 사용 수를 감산하여 미사용 수를 산출한다. 그리고 정보 변환 처리부(310)는, 버퍼 엔트리 번호의 최대값으로부터 미사용 수만큼의 각 번호를 불사용의 버퍼 엔트리 번호로 한다. 다시 말해, 정보 변환 처리부(310)는, 버퍼의 사용 상한 수와 불사용의 버퍼 엔트리 번호를 구성 정보 B로 한다. 또는, 정보 변환 처리부(310)는, 각 버퍼 엔트리에 관하여 사용 또는 불사용을 나타내는 정보를 구성 정보 B로 해도 된다. 그 경우, 최대 엔트리 사용 수 미만의 번호에 대응하는 버퍼 엔트리에 관하여 사용으로 하고, 최대 엔트리 사용 수 이상의 번호에 대응하는 버퍼 엔트리에 관하여 불사용으로 한다. 또한, 동작 정보 및 구성 정보의 예는, 이들로 한정되지 않는다.
도 5는, 본 실시형태 1에 따른 MCU(200)의 구성을 나타내는 블록도이다. MCU(200)는, 재구성 제어 회로(210)와, FLASH(220)와, RAM(230)과, 통신 모듈(240)과, 버스 회로(250)와, 주변 모듈(261∼26n)과, CPU(271∼27x)를 구비한다. 또한, FLASH(220)와, RAM(230)과, 통신 모듈(240)과, 버스 회로(250)와, 주변 모듈(261∼26n)과, CPU(271∼27x)는, 상술한 FLASH(120)와, RAM(130)과, 통신 모듈(140)과, 버스 회로(150)와, 주변 모듈(161∼16n)과, CPU(171∼17x)와 동등한 구성이다.
FLASH(220)는, 정보 처리 장치(300)로부터 수신한 구성 정보(221)를 기억한다. 또한, FLASH(220)는, 상술한 소프트웨어(121)와 동등한 기능을 가지는 소프트웨어(222)를 기억한다. RAM(230)은, 각종 데이터를 일시적으로 기억하는 휘발성 기억장치이다. 재구성 제어 회로(210)는, MCU(200)의 기동시에, FLASH(220)로부터 구성 정보(221)를 판독한다. 그리고 재구성 제어 회로(210)는, 판독한 구성 정보(221)에 근거하여, 버스 회로(250) 내의 구성에 대하여 지시를 행한다.
도 6은, 본 실시형태 1에 따른 버스 회로(250)를 포함하는 구성을 나타내는 블록도이다. 여기서, 마스터(401∼406)는, 소프트웨어(222)의 실행시에, 통신 모듈(240), 버스 회로(250), 주변 모듈(261∼26n), 및, CPU(271∼27x)의 일부 또는 전부에 대응하는 구성이 마스터 회로로서 동작하는 경우를 나타낸다. 여기서는, 설명의 편의상, 마스터(401∼403)와, 마스터(404∼406)의 2그룹으로 나누고 있지만, 그룹 수 및 각 그룹 내의 마스터 회로 수는 이들로 한정되지 않는다.
또한, 슬레이브(411∼413)는, FLASH(220), RAM(230), 통신 모듈(240), 버스 회로(250), 주변 모듈(261∼26n), 및, CPU(271∼27x)의 일부 또는 전부에 대응하는 구성이 슬레이브 회로로서 동작하는 경우를 나타낸다. 여기서는, 설명의 편의상, 슬레이브(411∼413) 3개를 1그룹으로서 기재하고 있지만, 그룹 수 및 각 그룹 내의 슬레이브 회로 수는 이들로 한정되지 않는다. 이상을 근거로, 도 6에서는, FLASH(220)는 슬레이브(411) 등에 포함될 가능성도 있지만, 설명의 편의상, 별도, 기재하고 있다.
또한, 도 6에서는, 버스 회로(250) 중, 마스터 회로로부터 슬레이브 회로로의 리퀘스트인 통신 데이터를 중계하는 구성을 나타내는 것이다. 이와는 별도로, 버스 회로(250)는, 슬레이브 회로로부터 마스터 회로로의 리스폰스인 통신 데이터를 중계하는 구성을 가지지만, 도 6과 대응하는 것이기 때문에, 도시 및 설명을 생략한다.
재구성 제어 회로(210)는, FLASH(220)로부터 판독한 구성 정보(221)에 근거하여, 버스 회로(250)에 대해서 각종 지시를 행한다. 마스터(401∼406)의 적어도 일부는, 버스 회로(250)를 통해서 슬레이브(411∼413) 중 어느 하나에 대하여 통신 데이터를 송신하기 위해 리퀘스트를 송신한다. 또한, 슬레이브(411∼413)의 적어도 일부는, 버스 회로(250)를 통하여 마스터(401∼406) 중 어느 하나로부터 리퀘스트를 수신한다.
버스 회로(250)는, 크로스바(crossbar) 스위치(511 및 512)와, 조정 회로(521 및 522)와, 버퍼 회로(531 및 532)와, 크로스바 스위치(540)와, 조정 회로(551∼553)를 가진다. 크로스바 스위치(511)는, 마스터(401∼403)로부터 송신처 정보를 포함하는 통신 데이터를 받아들이며, 통신 데이터를 동시에 받아들인 마스터의 리스트를 나타내는 리퀘스트 신호를 조정 회로(521)로 출력한다. 또한, 크로스바 스위치(511)는, 조정 회로(521)로부터의 조정 결과를 받아들이며, 조정 결과로 지정된 마스터로부터의 통신 데이터를 버퍼 회로(531)로 출력한다. 마찬가지로, 크로스바 스위치(512)는, 마스터(404∼406)로부터 송신처 정보를 포함하는 통신 데이터를 받아들이며, 리퀘스트 신호를 조정 회로(522)로 출력한다. 또한, 크로스바 스위치(512)는, 조정 회로(522)로부터의 조정 결과를 받아들이며, 조정 결과로 지정된 마스터로부터의 통신 데이터를 버퍼 회로(532)로 출력한다.
조정 회로(521)는, 재구성 제어 회로(210)로부터, 마스터(401∼403) 중 불사용 회로의 지정을 나타내는 활성 신호(A0∼An)를 받아들이며, 마스터(401∼403)에 대응하는 플립플롭(flipflop)(FF)으로의 클록 신호의 공급을 정지한다. 또한, 조정 회로(521)는, 크로스바 스위치(511)로부터의 리퀘스트 신호와, 아비트레이션(arbitration) 선택 신호에 근거하여, 마스터의 조정을 행하며, 조정된 마스터를 지정한 조정 결과 신호를 크로스바 스위치(511)로 출력한다.
도 7은, 본 실시형태 1에 따른 조정 회로(521)의 구성을 나타내는 블록도이다. 또한, 조정 회로(522)의 구성 및 동작도 마찬가지이기 때문에, 도시 및 설명을 생략한다. 여기서는, 마스터(401∼403)의 개수가 n+1개인 것으로 한다.
조정 회로(521)는, 일부의 구성으로서, FF군(5211)과, 라운드 로빈식 우선도 판정 회로(round-robin type priority determination circuit)(5212)와, 고정 우선도식(fixed priority type) 우선도 판정 회로(5213)와, FF군(5214)을 구비한다. 또한, 라운드 로빈식 우선도 판정 회로(5212) 및 고정 우선도식 우선도 판정 회로(5213)는, 공지의 기술로 실현 가능하다. 조정 회로(521)는, n+1비트의 리퀘스트 신호(REQ)와, 아비트레이션 선택 신호(ARBSEL)를 받아들인다. 그리고 아비트레이션 선택 신호(ARBSEL)에 따라, 라운드 로빈식 우선도 판정 회로(5212) 및 고정 우선도식 우선도 판정 회로(5213) 중 어느 한쪽이 선택되어, 리퀘스트 신호(REQ) 중 어느 하나의 우선도 판정 회로에 의해 우선도가 높은 것으로서 선택된 신호값을 조정 결과로서 출력한다. 그때, FF군(5211)은, 라운드 로빈 방식으로 조정을 행하기 위해, 라운드 로빈 방식에서 최후로 선택된 리퀘스트 신호의 정보를 유지한다. 또한, FF군(5214)은, 최종적으로 선택된 리퀘스트 신호의 정보를 유지한다. 여기서, FF군(5211) 및 FF군(5214)은, 각각, n+1개, 즉, 마스터(401∼403)에 대응하는 FF를 가진다. FF군(5211) 및 FF군(5214) 내의 각 FF는, 클록 신호(CLK_G)에 따라 동작한다.
여기서, 도 8은, 본 실시형태 1에 따른 조정 회로(521) 내의 FF군(5211)의 구성을 나타내는 블록도이다. 또한, FF군(5214)의 구성 및 동작도 마찬가지이기 때문에, 도시 및 설명을 생략한다. FF군(5211) 내의 각 FF에는, 대응하는 AND 회로가 접속되어 있다. 각 AND 회로는, 활성 신호(A0∼An)와 클록 신호(CLK)의 논리곱을 클록 신호(CLK_G)로서 출력한다. 예를 들면, 재구성 제어 회로(210)는, 구성 정보(221)에서 불사용 회로로서 지정된 마스터 회로에 대응하는 활성 신호를 0으로 하고, 그것 이외(사용되는 회로)의 마스터 회로에 대응하는 활성 신호를 1로 한다. 그 때문에, FF군(5211) 내의 각 FF 중 불사용 회로에 대응하는 FF는, 클록 신호(CLK_G)에 의해 불활성이 되어, 소비 전력이 억제된다. 그리고 불활성이 된 FF는, 리퀘스트 신호의 값이 0이 되어, 라운드 로빈식 우선도 판정 회로(5212)는, 해당 불활성이 된 FF에 대응하는 마스터 회로를 선택하는 일은 없다. 여기서, 불활성이 된 FF에 대응하는 마스터 회로는, 소프트웨어(222)의 실행시에 마스터 회로로서 사용되지 않기 때문에, 조정의 대상이 되지 않더라도 영향이 없다. 또한, 불활성이 된 FF에 대응하는 리퀘스트 신호가 항상 0이 되기 때문에, 후단(後段)의 FF군(5214)에 있어서의 대응하는 FF도 불활성으로서 문제가 없다.
도 6으로 되돌아와서 설명을 계속한다. 버퍼 회로(531)는, 셀렉터(5311 및 5312)와, 라이트(write) 포인터 제어 회로(5313)와, 리드(read) 포인터 제어 회로(5314)와, 버퍼군(5315)을 구비한다. 또한, 버퍼 회로(532)의 구성 및 동작은, 버퍼 회로(531)과 마찬가지이기 때문에, 도시 및 설명을 생략한다.
셀렉터(5311)는, 크로스바 스위치(511)로부터 통신 데이터를 접수하고, 라이트 포인터 제어 회로(5313)로부터 저장처의 버퍼의 지정을 접수한다. 그리고 셀렉터(5311)는, 버퍼군(5315) 중 지정된 버퍼로 통신 데이터를 출력한다.
버퍼군(5315)은, 복수의 버퍼 엔트리를 가진다. 여기서는, 버퍼군(5315)은, 4개의 버퍼 엔트리를 가지지만, 2 이상이면 된다. 각 버퍼 엔트리는, 셀렉터(5311)로부터의 통신 데이터를 일시적으로 보존한다. 또한, 각 버퍼 엔트리는, 셀렉터(5312)로부터의 판독에 따라 통신 데이터를 출력한다. 단, 버퍼 회로(531)는, 재구성 제어 회로(210)로부터, 버퍼군(5315) 내의 버퍼(0∼3) 중 불사용 버퍼의 지정을 나타내는 활성 신호(A0∼A3)를 접수하여, 활성 신호로 지정된 버퍼로의 클록 신호의 공급을 정지한다.
셀렉터(5312)는, 리드 포인터 제어 회로(5314)로부터 판독원의 버퍼의 지정을 접수한다. 그리고 셀렉터(5312)는, 버퍼군(5315) 중 지정된 판독원의 버퍼로부터 통신 데이터를 판독하여, 크로스바 스위치(540)로 출력한다.
라이트 포인터 제어 회로(5313)는, 재구성 제어 회로(210)로부터, 버퍼의 사용 상한 수를 나타내는 신호를 접수하고, 사용 상한 수 미만의 엔트리 번호를 선택하여, 저장처의 버퍼의 지정으로서 셀렉터(5311)로 출력한다. 또한, 리드 포인터 제어 회로(5314)는, 재구성 제어 회로(210)로부터, 버퍼의 사용 상한 수를 나타내는 신호를 접수하고, 사용 상한 수 미만의 엔트리 번호를 선택하여, 판독원의 버퍼의 지정으로서 셀렉터(5312)로 출력한다.
도 9는, 본 실시형태 1에 따른 라이트 포인터 제어 회로(5313)의 구성을 나타내는 블록도이다. 또한, 리드 포인터 제어 회로(5314)의 구성 및 동작은, 이것과 대응하는 것이기 때문에, 도시 및 설명을 생략한다.
라이트 포인터 제어 회로(5313)는, 가산기(561)와, FF(562)와, 비교기(563)와, 셀렉터(564)와, 셀렉터(565)와, FF(566)와, 디코더(567)를 구비한다. Valid 신호는, 기록 요구 유효 신호를 나타낸다. 또한, 리드 포인터 제어 회로(5314)의 경우, Valid 신호는, 리드 완료 신호를 나타낸다. 셀렉터(565)는, Valid 신호가 0인 경우, 전회(前回) 선택된 엔트리 번호(포인터)를 선택하여 FF(566)로 출력한다. FF(566)는, 선택된 포인터를 유지한다. 디코더(567)는, 포인터를 디코드하여, 버퍼 0∼버퍼 3 중 포인터에 대응하는 신호를 1로 하고, 그 외를 0으로 하여 셀렉터(5311)로 출력한다. 가산기(561)는, FF(566)에 유지된 포인터에 1을 가산한다. FF(562)는, 재구성 제어 회로(210)로부터 접수한 버퍼의 사용 상한 수를 나타내는 신호, 다시 말해, 사용 가능 엔트리 수를 유지한다. 비교기(563)는, 가산기(561)에 의한 가산 결과의 포인터와, FF(562)에 유지된 사용 가능 엔트리 수를 비교하여, 일치한 경우에 1을 선택 신호로서 셀렉터(564)로 출력한다. 셀렉터(564)는, 선택 신호가 0인 경우, 가산기(561)에 의한 가산 결과인 포인터를 선택하고, 선택 신호가 1인 경우, 포인터의 초기값인 2b'00을 선택하여, 셀렉터(565)로 출력한다. 예를 들면, 사용 가능 엔트리 수가 2b'10인 경우, 가산기(561)에 의해 포인터가 2b'00, 2b'01으로 가산된 후, 2b'10이 되었을 시에, 셀렉터(564)는, 2b'00을 선택한다.
이와 같이, 라이트 포인터 제어 회로(5313)는, Valid 신호의 1이 통지될 때마다 포인터를 인크리먼트(increment)한다. 그리고 인크리먼트된 포인터가 사용 가능 엔트리 수와 일치한 경우에는, 포인터가 0으로 초기화된다. 그 때문에, 라이트 포인터 제어 회로(5313)는, 항상 사용 가능 엔트리 수 미만의 값의 포인터를 출력한다. 따라서, 불활성이 된 버퍼가 셀렉터(5311)에 의해 선택되는 일이 없어, 오동작을 막을 수 있다.
사용 가능 엔트리 수가 버퍼군(5315)의 버퍼 총수의 반수인 경우, 도 9에서, 가산기(561)에 의한 가산 결과의 포인터의 상위 비트를 0으로 마스크해도 된다. 이에 의해, 라이트 포인터 제어 회로(5313)는, 도 9의 구성과 비교하여 간략화할 수 있다.
도 10은, 본 실시형태 1에 따른 버퍼 회로(531)의 구성을 나타내는 블록도이다. 우선, 상술한 바와 같이, 라이트 포인터 제어 회로(5313) 및 리드 포인터 제어 회로(5314)는, MCU(200)의 기동시에, 재구성 제어 회로(210)로부터 사용 가능 엔트리 수를 나타내는 신호를 접수한다. 이에 따라, 라이트 포인터 제어 회로(5313) 및 리드 포인터 제어 회로(5314)는, 대응하는 포인터를 셀렉터(5311 및 5312)로 출력한다.
또한, 버퍼군(5315)은, 버퍼 0_53150, 버퍼 1_53151, 버퍼 2_53152, 및, 버퍼 3_53153을 가진다. 그리고 버퍼 0_53150부터 버퍼 3_53153에는, 대응하는 AND 회로가 접속되어 있다. 각 AND 회로는, 활성 신호(A0∼A3)와 클록 신호(CLK)의 논리곱을 클록 신호(CLK_G)로서 출력한다. 예를 들면, 재구성 제어 회로(210)는, 구성 정보(221)에서 불사용 버퍼로서 지정된 엔트리 번호에 대응하는 활성 신호를 0으로 하고, 그것 이외(사용되는)의 버퍼에 대응하는 활성 신호를 1로 한다. 그 때문에, 버퍼군(5315) 내의 각 버퍼 중 불사용 버퍼는, 클록 신호(CLK_G)에 의해 불활성이 되어, 소비 전력이 억제된다. 여기서, 불활성이 된 버퍼는, 소프트웨어(222)의 실행시에는 사용되지 않는 버퍼이기 때문에, 실행에는 영향이 없다.
도 6으로 돌아와서 설명을 계속한다. 조정 회로(551∼553)의 각각은, 슬레이브(411∼413)의 각각에 대응한다. 크로스바 스위치(540)는, 버퍼 회로(531 및 532)로부터 통신 데이터를 접수하고, 통신 데이터를 동시에 접수한 버퍼 회로의 리스트를 나타내는 리퀘스트 신호를, 송신처의 슬레이브에 대응하는 조정 회로(551∼553)로 출력한다. 크로스바 스위치(540)는, 조정 회로(551∼553) 중 어느 하나로부터의 조정 결과를 접수하고, 조정 결과로 지정된 버퍼 회로로부터의 통신 데이터를, 송신처인 슬레이브(411∼413) 중 어느 하나로 출력한다.
조정 회로(551)는, 재구성 제어 회로(210)로부터, 대응하는 슬레이브(411)의 불사용 회로의 지정을 나타내는 활성 신호를 접수하며, 활성 신호가 불활성을 나타내는 경우, 다시 말해, 슬레이브(411)가 불사용 회로인 경우, 슬레이브(411)에 대응하는 조정 회로(551)로의 클록 신호의 공급은 정지되어, 소비 전력이 억제된다. 또한, 조정 회로(552 및 553)에 관해서도 마찬가지이다. 여기서, 불사용 회로로 지정된 슬레이브 회로는, 소프트웨어(222)의 실행시에 슬레이브 회로로서 사용되지 않기 때문에, 불사용 회로로 지정된 슬레이브 회로에 대응하는 조정 회로의 조정의 필요는 없다. 그리고 크로스바 스위치(540)가 접수한 통신 데이터의 송신처로는 되지 않기 때문에, 크로스바 스위치(540)는, 불사용 회로로 지정된 슬레이브 회로에 대응하는 조정 회로로는 리퀘스트 신호를 출력하지 않는다. 따라서, 소프트웨어(222)의 실행시에 문제가 생기지 않는다.
이어서, 본 실시형태에 따른 반도체 장치의 재구성 제어 방법을 설명한다. 해당 반도체 장치는, 적어도 복수의 회로와, 상기 복수의 회로 사이의 통신 데이터를 일시적으로 보존하는 복수의 버퍼 및 상기 복수의 회로와 상기 복수의 버퍼 사이의 액세스를 조정하는 복수의 조정 회로를 가지는 버스 회로와, 상기 복수의 회로 사이의 통신에 있어서의 상기 복수의 버퍼의 사용 상황에 근거하는 정보 및 상기 복수의 회로 중 상기 통신에 사용되지 않는 불사용 회로의 지정을 포함하는 구성 정보를 기억하는 기억부와, 제어 회로를 구비하는 것이다. 그리고 해당 재구성 제어 방법은, 적어도, 반도체 장치의 제어 회로가, 구성 정보를 기억부로부터 판독하고, 상기 구성 정보에 근거하여, 상기 복수의 버퍼 중 상기 통신에서 사용되지 않는 불사용 버퍼 및 상기 복수의 조정 회로 중 상기 불사용 회로에 대응하는 조정 회로 내의 적어도 일부의 구성의 사용을 정지하도록, 상기 복수의 버퍼를 가지는 버스 회로를 제어한다.
또한, 다음과 같이 하는 것이 바람직하다. 즉, 상기 복수의 회로 및 상기 버스 회로와 동등한 구성을 적어도 탑재한 다른 반도체 장치에서, 특정 소프트웨어를 실행했을 때에, 상기 복수의 회로 사이의 상기 통신에 관한 동작 정보를 취득한다. 그리고 상기 동작 정보에 근거하여 상기 구성 정보를 도출한다. 그리고 상기 구성 정보를 상기 기억부에 저장한다. 그 후, 상기 반도체 장치에 있어서의 상기 특정 소프트웨어의 실행시에, 상기 기억부로부터 상기 구성 정보를 판독한다.
이하에서는, 본 실시형태에 따른 반도체 장치의 재구성 제어 방법의 구체적인 실시예에 관하여 설명한다. 도 11은, 본 실시형태 1에 따른 동작 정보 취득 처리의 흐름을 나타내는 플로우차트이다. 우선, 에뮬레이션 디바이스(100)는 기동한다. 그리고 CPU(171∼17x) 중 어느 하나는, FLASH(120)로부터 개발 대상의 소프트웨어(121)를 로딩하여, 실행한다(S101). 그리고 소프트웨어(121)의 실행 중의 각 처리에서, 동작 모니터(110)는, 버스 회로(150)로의 액세스를 감시한다. 그리고 동작 모니터(110)는, 버스 액세스가 발생했는지 여부를 판정한다(S102). 버스 액세스가 발생하지 않으면, 스텝 S104로 진행한다. 한편, 버스 액세스가 발생했을 경우, 동작 모니터(110)는, 버스 회로(150)의 동작 정보(111)의 취득 및 보존을 행한다(S103). 예를 들면, 동작 모니터(110)는, 마스터 회로로부터 슬레이브 회로로의 액세스에 관하여 버스 회로(150)에 있어서의 버스 루팅 정보를 취득한다. 또한, 동작 모니터(110)는, 복수의 액세스시에 있어서의 버스 회로(150) 내의 버퍼의 사용 수를 취득하고, 최대값이면, 버퍼의 최대 엔트리 사용 수로서 보존한다.
그 후, 에뮬레이션 디바이스(100)는, 소프트웨어(121)의 실행이 종료했는지 여부를 판정한다(S104). 소프트웨어(121)의 실행이 종료해 있지 않으면, 스텝 S102로 되돌아간다. 한편, 소프트웨어(121)의 실행이 종료해 있으면, 동작 모니터(110)는, 동작 정보(111)를 통신 모듈(140)을 통하여 정보 처리 장치(300)로 출력한다(S105). 그리고 정보 처리 장치(300)는, 동작 정보(111)를 수신하여, 동작 정보(321)로서 기억부(320)에 보존한다.
다음으로, 도 12는, 본 실시형태 1에 따른 변환 처리의 흐름을 나타내는 플로우차트이다. 우선, 정보 변환 처리부(310)는, 기억부(320)로부터 동작 정보(321) 및 회로 정보(322)를 판독한다(S111). 다음으로, 정보 변환 처리부(310)는, 동작 정보(321)를 구성 정보(323)로 변환한다(S112). 예를 들면, 상술한 도 4와 같이 변환한다. 동작 정보 B의 구체적인 예로서는, 버퍼의 최대 엔트리 사용 수가 2개(3b’010)인 경우, 정보 변환 처리부(310)는, 구성 정보 B를 6b’100011로 변환한다. 이 경우, 상위 2비트(2b’10)를 버퍼의 사용 상한 수로 하고, 하위 4비트(4b’0011)를 불사용의 버퍼 엔트리에 대응하는 활성 신호(A3, A2, A1 및 A0)로 한다. 그 후, 정보 변환 처리부(310)는, 변환된 구성 정보(323)를 기억부(320)에 저장한다. 그리고 정보 변환 처리부(310)는, 구성 정보(323)를 MCU(200)로 송신하여, MCU(200) 내의 FLASH(220)에 구성 정보(323)를 저장한다(S113).
도 13은, 본 실시형태 1에 따른 재구성 처리의 흐름을 나타내는 플로우차트이다. 우선, MCU(200)는 기동한다. 그리고 재구성 제어 회로(210)는, FLASH(220)로부터 구성 정보(221)를 판독한다(S121). 다음으로, 재구성 제어 회로(210)는, 구성 정보(221)에 근거하여 버스 회로(250)로 각종 설정을 지시한다(S122). 예를 들면, 상술한 바와 같이, 재구성 제어 회로(210)는, 구성 정보(221)에 포함되는 불사용 회로가 나타내는 마스터 회로 및 슬레이브 회로에 대응하는 활성 신호를 0으로 설정하여, 조정 회로(521) 등으로 출력한다. 또한, 재구성 제어 회로(210)는, 구성 정보(221)에 포함되는 버퍼 사용 상한 수를 라이트 포인터 제어 회로(5313) 및 리드 포인터 제어 회로(5314)로 출력한다. 또한, 재구성 제어 회로(210)는, 구성 정보(221)에 포함되는 불사용 버퍼의 엔트리 번호에 대응하는 활성 신호를 0으로 설정하고, 불사용 버퍼 이외의 엔트리 번호에 대응하는 활성 신호를 1로 설정하여, 버퍼군(5315)으로 출력한다. 이에 의해, 버스 회로(250)는 재구성된다.
그 후, CPU(271∼27x) 중 어느 하나는, FLASH(220)로부터 소프트웨어(222)를 로딩하여, 실행한다. 이에 의해, 소프트웨어(222)의 실행시에 최저한 사용되는 버스 회로(250)의 구성에 대하여 클록 신호가 공급되어, 불사용 구성으로의 클록 신호 공급을 억제할 수 있다. 그 때문에, 동일한 MCU(200)에 대하여 다양한 소프트웨어에 대응한 최적의 회로 구성을 자동적으로 실현할 수 있고, 또한, 소비 전력을 저감할 수 있다. 특히, 에뮬레이션 디바이스(100)를 이용하여 소프트웨어(121)의 동작을 관측하기 때문에, 소프트웨어 해석 등만으로는 곤란한 정보의 취득을 가능하게 하여, 회로 구성을 더 최적에 근접하게 할 수 있다.
<실시형태 2>
본 실시형태 2는, 상술한 실시형태 1의 개량 예이다. 즉, 상기 구성 정보는, 상기 특정 소프트웨어의 실행시에 있어서 사용된, 상기 반도체 장치가 구비하는 인터럽트 컨트롤러에 의한 인터럽트 통지, DMA(Direct Memory Access)의 사용 채널, 또는, 통신 포트의 포트에 근거하여 특정되는 불사용 회로의 지정을 포함하는 것으로 한다. 그리고 상기 제어 회로는, 상기 특정 소프트웨어의 실행시에 있어서, 상기 지정된 불사용 회로에 대응하는 구성에 대한 클록 신호의 공급을 정지하도록, 상기 인터럽트 컨트롤러, 상기 DMA, 또는, 상기 통신 포트를 제어한다. 이에 의해, 버스 회로에 더하여, 인터럽트 컨트롤러, DMA, 또는, 통신 포트에 대한 불사용 회로로의 소비 전력을 저감할 수 있다.
도 14는, 본 실시형태 2에 따른 반도체 장치의 재구성 제어 시스템(2000a)의 구성을 나타내는 블록도이다. 재구성 제어 시스템(2000a)은, 에뮬레이션 디바이스(100a)와, MCU(200a)와, 정보 처리 장치(300a)를 구비한다.
도 15는, 본 실시형태 2에 따른 에뮬레이션 디바이스(100a)의 구성을 나타내는 블록도이다. 에뮬레이션 디바이스(100a)는, 상술한 에뮬레이션 디바이스(100)를 개량한 것이며, 동작 모니터(110)가 동작 모니터(110a)로 치환되고, DMA(181), 인터럽트 컨트롤러(182), 포트(183)가 추가된 것이다. DMA(181)는, CPU(171∼17x)를 통하지 않고 모듈 사이의 데이터 전송을 가능하게 하는 회로이다. 인터럽트 컨트롤러(182)는, 소프트웨어(121)의 실행시의 인터럽트 요구를 수신하며, 우선도나 마스크 제어, 인터럽트 통지 등을 행한다. 포트(183)는, 외부와의 입출력 제어를 행한다.
동작 모니터(110a)는, 소프트웨어(121)의 실행시에 있어서의 각 회로의 동작 상태를 관측하며, 동작 정보(111a)를 취득하여, 내부에 보존한다. 특히, 동작 모니터(110a)는, 소프트웨어(121)의 실행시에 있어서의 DMA(181)의 동작으로부터, 사용 DMA 채널을 취득한다. 또한, 동작 모니터(110a)는, 인터럽트 컨트롤러(182)로부터의 인터럽트 요구시의 인터럽트 ID를 취득한다. 또한, 동작 모니터(110a)는, 외부와의 입출력시에 사용된 포트 경로에 있어서의 사용 포트 번호를 취득한다. 다시 말해, 동작 모니터(110a)는, 상술한 동작 정보(111)에 더하여, 사용 DMA 채널, 인터럽트 ID, 및, 사용 포트 번호 중 적어도 어느 하나를 포함하여 동작 정보(111a)로서 보존한다.
정보 처리 장치(300a)는, 상술한 정보 처리 장치(300)를 개량한 것이며, 정보 변환 처리부(310a)와, 기억부(320)를 구비한다. 기억부(320)는, 동작 정보(321a)와, 회로 정보(322a)와, 구성 정보(323a)를 기억한다. 동작 정보(321a)는, 상술한 동작 정보(111a)가 저장된 것이다. 회로 정보(322a)는, 회로 정보(322)에 더하여, MCU(200a)가 가지는 DMA(281), 인터럽트 컨트롤러(282), 포트(283)의 구성을 포함한다. 구성 정보(323a)는, 구성 정보(323)에 더하여, DMA(281), 인터럽트 컨트롤러(282), 포트(283)를 재구성하기 위한 정보를 포함한다. 정보 변환 처리부(310a)는, 동작 정보(321a)와 회로 정보(322a)에 근거하여, 소정의 변환을 행하고, 구성 정보(323a)를 생성하여, 기억부(320)에 보존하고, 구성 정보(323a)를 MCU(200a)로 송신한다.
도 16은, 본 실시형태 2에 따른 동작 정보와 구성 정보의 관계를 나타내는 도면이다. 예를 들면, 동작 정보 C가 사용 DMA 채널인 경우, 정보 변환 처리부(310a)는, 회로 정보(322a)의 DMA의 채널 정보 중 동작 정보 C에 포함되지 않은 불사용 DMA 채널을 특정하고, 특정한 불사용 DMA 채널에 대응하는 DMA 내의 불사용 회로로 변환하여, 구성 정보 C로 한다. 또한, 동작 정보 D가 발생한 인터럽트 ID인 경우, 정보 변환 처리부(310a)는, 회로 정보(322a)의 인터럽트 컨트롤러가 발생할 수 있는 인터럽트 ID 중, 동작 정보 D에 포함되지 않은 불사용의 인터럽트 ID를 특정하고, 특정한 불사용 인터럽트 ID에 대응하는 인터럽트 컨트롤러 내의 불사용 회로로 변환하여, 구성 정보 D로 한다. 또한, 동작 정보 E가 발생한 사용 포트 번호인 경우, 정보 변환 처리부(310a)는, 회로 정보(322a)의 포트의 포트 번호 중, 동작 정보 E에 포함되지 않은 불사용의 포트 번호를 특정하고, 특정한 불사용 포트 번호에 대응하는 포트 내의 불사용 회로로 변환하여, 구성 정보 E로 한다.
도 17은, 본 실시형태 2에 따른 MCU(200a)의 구성을 나타내는 블록도이다. MCU(200a)는, 상술한 MCU(200)를 개량한 것이며, 재구성 제어 회로(210)가 재구성 제어 회로(210a)로 치환되고, DMA(281), 인터럽트 컨트롤러(282), 포트(283)가 추가된 것이다. DMA(281), 인터럽트 컨트롤러(282), 및, 포트(283)는, 상술한 DMA(181), 인터럽트 컨트롤러(182), 및, 포트(183)와 동등한 구성이다. FLASH(220)는, 정보 처리 장치(300a)로부터 수신한 구성 정보(221a)를 기억한다. 재구성 제어 회로(210a)는, MCU(200a)의 기동시에, FLASH(220)로부터 구성 정보(221a)를 판독한다. 그리고 재구성 제어 회로(210a)는, 판독한 구성 정보(221a)에 근거하여, 버스 회로(250), 및, DMA(281), 인터럽트 컨트롤러(282), 및, 포트(283) 내의 구성에 대하여 지시를 행한다.
재구성 제어 회로(210a)는, 예를 들면, 구성 정보 C, D 및 E에 근거하여, 대응하는 각 구성의 불사용 회로를 불활성으로 한다. 이에 의해, 실시형태 1과 비교하여 소비 전력을 한층 더 억제할 수 있다.
<실시형태 3>
본 실시형태 3은, 상술한 실시형태 1의 개량 예이다. 즉, 상기 구성 정보는, 상기 특정 소프트웨어의 실행시에 있어서 발생하는 인터럽트 처리마다 대응시킨 정보이다. 그리고 상기 제어 회로는, 상기 특정 소프트웨어의 실행시에 있어서 상기 인터럽트 처리가 발생한 경우에, 상기 기억부 중에서 해당 인터럽트 처리에 대응하는 상기 구성 정보를 특정한다. 그리고 상기 제어 회로는, 해당 특정한 구성 정보에 근거하여, 상기 버스 회로를 제어한다. 상기 제어 회로는, 상기 인터럽트 처리의 종료 후에, 해당 인터럽트 처리의 발생 전의 구성 정보에 근거하여, 상기 버스 회로를 제어한다. 이에 의해, 인터럽트 처리마다 세밀한 소비 전력의 저감을 행할 수 있다.
도 18은, 본 실시형태 3에 따른 반도체 장치의 재구성 제어 시스템(2000b)의 구성을 나타내는 블록도이다. 재구성 제어 시스템(2000b)은, 에뮬레이션 디바이스(100b)와, MCU(200b)와, 정보 처리 장치(300b)를 구비한다.
도 19는, 본 실시형태 3에 따른 에뮬레이션 디바이스(100b)의 구성을 나타내는 블록도이다. 에뮬레이션 디바이스(100b)는, 상술한 에뮬레이션 디바이스(100)를 개량한 것이며, 동작 모니터(110)가 동작 모니터(110b)로 치환되고, 인터럽트 컨트롤러(182)가 추가된 것이다.
동작 모니터(110b)는, 소프트웨어(121)의 실행시에 있어서의 각 회로의 동작 상태를 관측하며, 동작 정보(111b)를 취득하여, 내부에 보존한다. 특히, 동작 모니터(110b)는, 인터럽트 컨트롤러(182)로부터의 인터럽트 요구시의 인터럽트 ID를 취득한다. 그리고 동작 모니터(110b)는, 인터럽트 처리시에 취득된 동작 정보에, 취득한 인터럽트 ID를 대응시켜 보존한다. 동작 모니터(110b)는, 인터럽트 요구가 발생할 때마다, 이를 반복한다.
정보 처리 장치(300b)는, 상술한 정보 처리 장치(300)를 개량한 것이며, 정보 변환 처리부(310b)와, 기억부(320)를 구비한다. 기억부(320)는, 동작 정보(321b)와, 회로 정보(322b)와, 구성 정보(323b)를 기억한다. 동작 정보(321b)는, 상술한 동작 정보(111b)가 저장된 것이다. 회로 정보(322b)는, 회로 정보(322)에 더하여, MCU(200b)가 가지는 인터럽트 컨트롤러(282)의 인터럽트 ID의 리스트를 포함한다. 구성 정보(323b)는, 구성 정보(323)를 인터럽트 ID마다 대응시킨 정보이다. 정보 변환 처리부(310b)는, 동작 정보(321b)와 회로 정보(322b)에 근거하여, 소정의 변환을 행하고, 구성 정보(323b)를 생성하여, 기억부(320)에 보존하고, 구성 정보(323b)를 MCU(200b)로 송신한다.
도 20은, 본 실시형태 3에 따른 동작 정보와 구성 정보의 관계를 나타내는 도면이다. 여기서는, 도 4의 동작 정보 A 및 B의 각각에 관하여, 인터럽트 ID0, 인터럽트 ID1 및 인터럽트 ID2가 대응되어 있다. 그 때문에, 구성 정보 A 및 B의 각각에 관해서도, 인터럽트 ID0, 인터럽트 ID1 및 인터럽트 ID2가 대응되어 있다.
도 21은, 본 실시형태 3에 따른 MCU(200b)의 구성을 나타내는 블록도이다. MCU(200b)는, 상술한 MCU(200)를 개량한 것이며, 재구성 제어 회로(210)가 재구성 제어 회로(210b)로 치환되고, 인터럽트 컨트롤러(282)가 추가된 것이다. FLASH(220)는, 정보 처리 장치(300b)로부터 수신한 구성 정보(221b)를 기억한다. 재구성 제어 회로(210b)는, MCU(200b)의 기동시에, FLASH(220)로부터 구성 정보(221b)를 판독한다. 그리고 재구성 제어 회로(210b)는, 소프트웨어(222)의 실행 중에, 인터럽트가 발생 또는 종료할 때마다, 판독한 구성 정보(221b)에 근거하여, 버스 회로(250) 내의 구성에 대하여 지시를 행한다.
도 22는, 본 실시형태 3에 따른 동작 정보 취득 처리의 흐름을 나타내는 플로우차트이다. 우선, 에뮬레이션 디바이스(100b)는 기동한다. 그리고 CPU(171∼17x) 중 어느 하나는, FLASH(120)로부터 개발 대상의 소프트웨어(121)를 로딩하여, 실행한다(S201). 동작 모니터(110b)는, 인터럽트 ID를 0으로 설정한다(S202). 다시 말해, 동작 모니터(110b)는, 메인 프로그램 실행시의 인터럽트 ID를 0으로서 설정한다.
이어서, 동작 모니터(110b)는, 버스 회로(150)로의 액세스와 함께, 인터럽트 컨트롤러(182)로부터의 인터럽트 신호를 감시한다. 동작 모니터(110b)는, 인터럽트가 발생했는지, 또는, 종료했는지를 판정한다(S203). 인터럽트가 발생 및 종료 중 어느 쪽도 아닌 경우, 스텝 S205로 진행한다. 한편, 인터럽트가 발생 또는 종료 중 어느 한쪽인 경우, 동작 모니터(110b)는, 인터럽트 ID를 변경한다(S204). 예를 들면, 인터럽트가 발생한 경우, 동작 모니터(110b)는, 인터럽트 컨트롤러(182)로부터 인터럽트 요구의 통지를 접수하여, 인터럽트 ID를 발생한 인터럽트 요구가 나타내는 ID로 변경한다. 또한, 인터럽트가 종료한 경우, 동작 모니터(110b)는, 인터럽트 ID를 복귀처(return destination)의 처리에 대응한 값으로 변경한다.
그리고 동작 모니터(110b)는, 버스 액세스가 발생했는지 여부를 판정한다(S205). 버스 액세스가 발생하지 않으면, 스텝 S207로 진행한다. 한편, 버스 액세스가 발생한 경우, 동작 모니터(110b)는, 버스 회로(150)의 동작 정보(111b)를 취득하고, 인터럽트 ID와 취득한 동작 정보를 대응시켜 동작 정보(111b)로서 보존을 행한다(S206).
그 후, 에뮬레이션 디바이스(100b)는, 소프트웨어(121)의 실행이 종료했는지 여부를 판정한다(S207). 소프트웨어(121)의 실행이 종료해 있지 않으면, 스텝 S203으로 되돌아간다. 한편, 소프트웨어(121)의 실행이 종료해 있으면, 동작 모니터(110b)는, 동작 정보(111b)를 통신 모듈(140)을 통하여 정보 처리 장치(300b)로 출력한다(S208). 그리고 정보 처리 장치(300b)는, 동작 정보(111b)를 수신하여, 동작 정보(321b)로서 기억부(320)에 보존한다.
도 23은, 본 실시형태 3에 따른 재구성 처리의 흐름을 나타내는 플로우차트이다. 우선, MCU(200b)는 기동한다. 그리고 재구성 제어 회로(210b)는, 인터럽트 ID를 0으로 설정한다(S221). 그리고 재구성 제어 회로(210b)는, FLASH(220)로부터 구성 정보(221b)를 판독한다(S222). 다음으로, 재구성 제어 회로(210b)는, 구성 정보(221b)에 근거하여 버스 회로(250)로 각종 설정을 지시한다(S223). 구체적으로는, 재구성 제어 회로(210b)는, 인터럽트 ID0에 대응시킨 구성 정보를 특정하고, 특정한 구성 정보에 근거하여 버스 회로(250)로 각종 설정을 지시한다. 이에 의해, 인터럽트 ID0에 있어서의 버스 회로(250)의 재구성을 할 수 있다.
그 후, CPU(271∼27x) 중 어느 하나는, FLASH(220)로부터 소프트웨어(222)를 로딩하여, 실행한다(S224). 그리고 재구성 제어 회로(210b)는, 인터럽트 컨트롤러(282)로부터의 인터럽트 신호를 감시한다. 재구성 제어 회로(210b)는, 인터럽트가 발생했는지, 또는, 종료했는지를 판정한다(S225). 인터럽트가 발생 및 종료 중 어느 쪽도 아닌 경우, 스텝 S225로 되돌아간다. 한편, 인터럽트가 발생 또는 종료 중 어느 한쪽이었던 경우, 재구성 제어 회로(210b)는, 인터럽트 ID를 변경한다(S226). 예를 들면, 인터럽트가 발생했을 경우, 재구성 제어 회로(210b)는, 인터럽트 컨트롤러(282)로부터 인터럽트 요구의 통지를 접수하여, 인터럽트 ID를 발생한 인터럽트 요구가 나타내는 ID로 변경한다. 또한, 인터럽트가 종료한 경우, 재구성 제어 회로(210b)는, 인터럽트 ID를 복귀처의 처리에 대응한 값으로 변경한다.
그 후, 재구성 제어 회로(210b)는, FLASH(220)로부터 구성 정보(221b)를 판독한다(S227). 다음으로, 재구성 제어 회로(210b)는, 현재의 인터럽트 ID에 대응시킨 구성 정보를 특정하고, 특정한 구성 정보에 근거하여 버스 회로(250)로 각종 설정을 지시한다(S228). 이에 의해, 현재의 인터럽트 ID에 있어서의 버스 회로(250)의 재구성을 할 수 있다. 그리고 스텝 S225로 되돌아간다.
이와 같이, 본 실시형태에 의해, 인터럽트 처리마다 회로 구성을 최적화할 수 있다. 따라서, 실시형태 1과 비교하여 소비 전력을 더 저감시킬 수 있다.
이상, 본 발명자에 의해 이루어진 발명을 실시형태에 근거하여 구체적으로 설명했지만, 본 발명은 이미 기술한 실시형태에 한정되는 것이 아니라, 그 요지를 일탈하지 않는 범위에서 여러 가지 변경이 가능한 것은 말할 필요도 없다.
1000 반도체 장치
1101 회로
110n 회로
1200 버스 회로
1201 버퍼
1202 버퍼
120m 버퍼
1211 조정 회로
1212 조정 회로
121p 조정 회로
1300 기억부
1310 구성 정보
1400 제어 회로
2000 재구성 제어 시스템
2000a 재구성 제어 시스템
2000b 재구성 제어 시스템
100 에뮬레이션 디바이스
100a 에뮬레이션 디바이스
100b 에뮬레이션 디바이스
110 동작 모니터
110a 동작 모니터
110b 동작 모니터
111 동작 정보
111a 동작 정보
111b 동작 정보
120 FLASH
121 소프트웨어
130 RAM
140 통신 모듈
150 버스 회로
161 주변 모듈
16n 주변 모듈
171 CPU
17x CPU
181 DMA
182 인터럽트 컨트롤러
183 포트
200 MCU
200a MCU
200b MCU
210 재구성 제어 회로
210a 재구성 제어 회로
210b 재구성 제어 회로
220 FLASH
221 구성 정보
221a 구성 정보
221b 구성 정보
222 소프트웨어
230 RAM
240 통신 모듈
250 버스 회로
261 주변 모듈
26n 주변 모듈
271 CPU
27x CPU
281 DMA
282 인터럽트 컨트롤러
283 포트
300 정보 처리 장치
310 정보 변환 처리부
320 기억부
321 동작 정보
322 회로 정보
323 구성 정보
300a 정보 처리 장치
310a 정보 변환 처리부
321a 동작 정보
322a 회로 정보
323a 구성 정보
300b 정보 처리 장치
310b 정보 변환 처리부
321b 동작 정보
322b 회로 정보
323b 구성 정보
401 마스터
402 마스터
403 마스터
404 마스터
405 마스터
406 마스터
411 슬레이브
412 슬레이브
413 슬레이브
511 크로스바 스위치
512 크로스바 스위치
521 조정 회로
5211 FF군
5212 라운드 로빈식 우선도 판정 회로
5213 고정 우선도식 우선도 판정 회로
5214 FF군
522 조정 회로
531 버퍼 회로
5311 셀렉터
5312 셀렉터
5313 라이트 포인터 제어 회로
5314 리드 포인터 제어 회로
5315 버퍼군
53150 버퍼 엔트리 0
53151 버퍼 엔트리 1
53152 버퍼 엔트리 2
53153 버퍼 엔트리 3
532 버퍼 회로
540 크로스바 스위치
551 조정 회로
552 조정 회로
553 조정 회로
561 가산기
562 FF
563 비교기
564 셀렉터
565 셀렉터
566 FF
567 디코더
REQ 리퀘스트 신호
ARBSEL 아비트레이션 선택 신호
A0∼An 활성 신호

Claims (12)

  1. 복수의 회로와,
    상기 복수의 회로 사이의 통신 데이터를 일시적으로 보존하는 복수의 버퍼와, 상기 복수의 회로와 상기 복수의 버퍼 사이의 액세스를 조정(調停)하는 복수의 조정 회로를 가지는 버스 회로와,
    상기 복수의 회로 사이의 통신에 있어서의 상기 복수의 버퍼의 사용 상황에 근거하는 정보와 상기 복수의 회로 중 상기 통신에 사용되지 않는 불사용 회로의 지정을 포함하는 구성 정보를 기억하는 기억부와,
    상기 구성 정보에 근거하여, 상기 복수의 버퍼 중 상기 통신에서 사용되지 않는 불사용 버퍼 및 상기 복수의 조정 회로 중 상기 불사용 회로에 대응하는 조정 회로 내의 적어도 일부의 구성의 사용을 정지하도록, 상기 버스 회로를 제어하는 제어 회로,
    를 구비하는 반도체 장치.
  2. 청구항 1에 있어서,
    상기 버스 회로는,
    상기 복수의 버퍼 중에서 액세스 대상의 버퍼를 선택하는 선택 회로를 더 가지며,
    상기 제어 회로는,
    상기 복수의 버퍼 중 상기 불사용 버퍼에 대하여, 클록 신호의 공급을 정지하도록 지시하고,
    상기 선택 회로에 대하여, 상기 불사용 버퍼를 선택 대상 외로 하도록 지시하는
    반도체 장치.
  3. 청구항 2에 있어서,
    상기 구성 정보는,
    상기 복수의 버퍼 중 상기 통신에 있어서의 버퍼의 최대 사용 수를 포함하고,
    상기 제어 회로는,
    상기 선택 회로에 대하여, 상기 복수의 버퍼 중 상기 최대 사용 수 이하의 버퍼를 선택하도록 지시하는
    반도체 장치.
  4. 청구항 3에 있어서,
    상기 구성 정보는,
    상기 복수의 버퍼의 총수로부터 상기 최대 사용 수를 제외한 수의 버퍼를 상기 불사용 버퍼로서 더 포함하는
    반도체 장치.
  5. 청구항 1에 있어서,
    상기 불사용 회로는, 상기 복수의 회로 중 상기 통신에 있어서의 마스터 회로 또는 슬레이브 회로로서 사용되지 않는 것이며,
    상기 버스 회로는,
    상기 복수의 조정 회로 중 상기 마스터 회로 또는 상기 슬레이브 회로로부터의 복수의 액세스를 조정하는 제1 조정 회로를 더 포함하고,
    상기 제어 회로는,
    상기 지정된 불사용 회로에 대응하는 상기 제1 조정 회로 내의 적어도 일부의 구성에 대한 클록 신호의 공급을 정지하도록, 상기 버스 회로를 제어하는
    반도체 장치.
  6. 청구항 5에 있어서,
    상기 버스 회로는,
    상기 복수의 조정 회로 중 상기 마스터 회로 또는 상기 슬레이브 회로에 대한 복수의 액세스를 조정하는 제2 조정 회로를 더 포함하고,
    상기 제어 회로는,
    상기 지정된 불사용 회로에 대응하는 상기 제2 조정 회로에 대한 클록 신호의 공급을 정지하도록, 상기 버스 회로를 제어하는
    반도체 장치.
  7. 청구항 1에 있어서,
    상기 구성 정보는,
    특정 소프트웨어의 실행시에 있어서의 상기 사용 상황에 근거하는 정보인,
    반도체 장치.
  8. 청구항 7에 있어서,
    상기 구성 정보는,
    상기 복수의 회로 및 상기 버스 회로와 동등한 구성을 적어도 탑재한 다른 반도체 장치에서 상기 특정 소프트웨어를 실행한 경우에 취득된 동작 정보에 근거하여 도출된 것인,
    반도체 장치.
  9. 청구항 7에 있어서,
    상기 구성 정보는,
    상기 특정 소프트웨어의 실행시에 있어서 발생하는 인터럽트 처리마다 대응시킨 정보이고,
    상기 제어 회로는,
    상기 특정 소프트웨어의 실행시에 있어서 상기 인터럽트 처리가 발생한 경우에, 상기 기억부 중에서 해당 인터럽트 처리에 대응하는 상기 구성 정보를 특정하고,
    해당 특정한 구성 정보에 근거하여, 상기 버스 회로를 제어하고,
    상기 인터럽트 처리의 종료 후에, 해당 인터럽트 처리의 발생 전의 구성 정보에 근거하여, 상기 버스 회로를 제어하는
    반도체 장치.
  10. 청구항 7에 있어서,
    상기 구성 정보는,
    상기 특정 소프트웨어의 실행시에 있어서 사용된, 상기 반도체 장치가 구비하는 인터럽트 컨트롤러에 의한 인터럽트 통지, DMA(Direct Memory Access)의 사용 채널, 또는, 통신 포트의 포트에 근거하여 특정되는 불사용 회로의 지정을 포함하며,
    상기 제어 회로는,
    상기 특정 소프트웨어의 실행시에 있어서, 상기 지정된 불사용 회로에 대응하는 구성에 대한 클록 신호의 공급을 정지하도록, 상기 인터럽트 컨트롤러, 상기 DMA, 또는, 상기 통신 포트를 제어하는
    반도체 장치.
  11. 복수의 회로와, 상기 복수의 회로 사이의 통신 데이터를 일시적으로 보존하는 복수의 버퍼 및 상기 복수의 회로와 상기 복수의 버퍼 사이의 액세스를 조정하는 복수의 조정 회로를 가지는 버스 회로와, 상기 복수의 회로 사이의 통신에 있어서의 상기 복수의 버퍼의 사용 상황에 근거하는 정보 및 상기 복수의 회로 중 상기 통신에 사용되지 않는 불사용 회로의 지정을 포함하는 구성 정보를 기억하는 기억부와, 제어 회로를 구비하는 반도체 장치의 재구성 제어 방법으로서,
    상기 제어 회로가,
    상기 구성 정보를 상기 기억부로부터 판독하고,
    상기 구성 정보에 근거하여, 상기 복수의 버퍼 중 상기 통신에서 사용되지 않는 불사용 버퍼 및 상기 복수의 조정 회로 중 상기 불사용 회로에 대응하는 조정 회로 내의 적어도 일부의 구성의 사용을 정지하도록, 상기 복수의 버퍼를 가지는 버스 회로를 제어하는
    반도체 장치의 재구성 제어 방법.
  12. 청구항 11에 있어서,
    상기 복수의 회로 및 상기 버스 회로와 동등한 구성을 적어도 탑재한 다른 반도체 장치에서, 특정 소프트웨어를 실행했을 때에, 상기 복수의 회로 사이의 상기 통신에 관한 동작 정보를 취득하고,
    상기 동작 정보에 근거하여 상기 구성 정보를 도출하며,
    상기 구성 정보를 상기 기억부에 저장하고,
    상기 반도체 장치에 있어서의 상기 특정 소프트웨어의 실행시에, 상기 기억부로부터 상기 구성 정보를 판독하는,
    반도체 장치의 재구성 제어 방법.
KR1020180148167A 2017-12-05 2018-11-27 반도체 장치 및 그 재구성 제어 방법 KR20190066551A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2017-233116 2017-12-05
JP2017233116A JP2019103013A (ja) 2017-12-05 2017-12-05 半導体装置及びその再構成制御方法

Publications (1)

Publication Number Publication Date
KR20190066551A true KR20190066551A (ko) 2019-06-13

Family

ID=63914896

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180148167A KR20190066551A (ko) 2017-12-05 2018-11-27 반도체 장치 및 그 재구성 제어 방법

Country Status (5)

Country Link
US (1) US10802730B2 (ko)
EP (1) EP3495919A1 (ko)
JP (1) JP2019103013A (ko)
KR (1) KR20190066551A (ko)
CN (1) CN109872753A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928816B (zh) * 2019-10-28 2021-06-08 北京时代民芯科技有限公司 一种片上可配置中断控制系统电路

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008219806A (ja) 2007-03-07 2008-09-18 Mitsubishi Electric Corp 電気機器
WO2009060567A1 (ja) 2007-11-09 2009-05-14 Panasonic Corporation データ転送制御装置、データ転送装置、データ転送制御方法及び再構成回路を用いた半導体集積回路

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273711A (ja) * 2000-03-28 2001-10-05 Sanyo Electric Co Ltd Cd−romデコーダ
KR100585116B1 (ko) * 2003-12-13 2006-06-01 삼성전자주식회사 멀티 뱅크 메모리의 억세스 효율을 개선한 아비터, 이를구비한 메모리 억세스 중재 시스템 및 그 방법
JP5051448B2 (ja) 2007-08-07 2012-10-17 ソニー株式会社 情報処理装置および方法、並びにプログラム
US8030982B2 (en) 2008-10-30 2011-10-04 Qualcomm Incorporated Systems and methods using improved clock gating cells
KR101842245B1 (ko) * 2011-07-25 2018-03-26 삼성전자주식회사 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법
KR102090677B1 (ko) * 2013-09-16 2020-03-18 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 동작 방법
JP2016173798A (ja) * 2015-03-18 2016-09-29 ルネサスエレクトロニクス株式会社 半導体装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008219806A (ja) 2007-03-07 2008-09-18 Mitsubishi Electric Corp 電気機器
WO2009060567A1 (ja) 2007-11-09 2009-05-14 Panasonic Corporation データ転送制御装置、データ転送装置、データ転送制御方法及び再構成回路を用いた半導体集積回路

Also Published As

Publication number Publication date
US10802730B2 (en) 2020-10-13
EP3495919A1 (en) 2019-06-12
CN109872753A (zh) 2019-06-11
JP2019103013A (ja) 2019-06-24
US20190171377A1 (en) 2019-06-06

Similar Documents

Publication Publication Date Title
US10606778B2 (en) Bus system
US11880330B2 (en) Network-on-chip data processing method and device
CN107783882B (zh) 一种服务器功耗管理方法及设备
US9747963B2 (en) Multi-channel memory system using asymmetric channel frequency scaling and related power management method
JP2011530760A (ja) マルチコアメモリモジュール内のパワーダウンモードの動的利用
WO2018190931A1 (en) Method and apparatus for implementing heterogeneous frequency operation and scheduling task of heterogeneous frequency cpu
US10444813B2 (en) Multi-criteria power management scheme for pooled accelerator architectures
US11029746B2 (en) Dynamic power management network for memory devices
US10990562B2 (en) System and method of asymmetric system description for optimized scheduling
US20100042751A1 (en) Data transfer control device, data transfer device, data transfer control method, and semiconductor integrated circuit using reconfigured circuit
WO2018236543A1 (en) MAXIMUM DYNAMIC FREQUENCY LIMIT FOR TREATING HEART GROUPS
WO2021026095A1 (en) Memory controller for non-interfering accesses to nonvolatile memory by different masters, and related systems and methods
CN114579498A (zh) 跨多个存储器管芯封装的电力管理
KR20190066551A (ko) 반도체 장치 및 그 재구성 제어 방법
CN112969978B (zh) 提供峰值优化电力供应单元的方法与装置
KR20170069269A (ko) 새로운 저비용, 저전력 고성능 smp/asmp 다중-프로세서 시스템
US20210141755A1 (en) Bridge chip with function of expanding external devices and associated expansion method
CN112350963A (zh) 一种交换芯片电压调节方法及系统
US20140025966A1 (en) Information processing system, system management apparatus, and integrated circuit
US11663021B2 (en) System and method for providing granular processor performance control
US20160105168A1 (en) Chip and chip control method
CN112783809A (zh) 一种硬盘连接装置、方法、计算机设备及存储介质
CN112069108A (zh) 一种基于PCIE Switch的服务器灵活配置系统及方法
US10649943B2 (en) System and method for I/O aware processor configuration
US12001373B2 (en) Dynamic allocation of peripheral component interconnect express bus numbers