KR20040025541A - 집적 회로 및 시스템 개발 방법 - Google Patents

집적 회로 및 시스템 개발 방법 Download PDF

Info

Publication number
KR20040025541A
KR20040025541A KR1020030041417A KR20030041417A KR20040025541A KR 20040025541 A KR20040025541 A KR 20040025541A KR 1020030041417 A KR1020030041417 A KR 1020030041417A KR 20030041417 A KR20030041417 A KR 20030041417A KR 20040025541 A KR20040025541 A KR 20040025541A
Authority
KR
South Korea
Prior art keywords
dedicated hardware
parameter
interface
processor
arithmetic
Prior art date
Application number
KR1020030041417A
Other languages
English (en)
Other versions
KR100922411B1 (ko
Inventor
사이토미요시
히로세요시오
Original Assignee
후지쯔 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Publication of KR20040025541A publication Critical patent/KR20040025541A/ko
Application granted granted Critical
Publication of KR100922411B1 publication Critical patent/KR100922411B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • 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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

본 발명은 사양 변경 가능성, 성능, 및 소비 전력이 다른 복수의 모듈을 탑재하여 최적의 처리의 할당을 가능하게 하는 동시에, 신호 전송로에서의 전송량이 비교적 적은 논리 재구성 가능한 집적 회로를 제공하는 것을 목적으로 한다.
집적 회로는 프로세서와, 복수의 연산기와 상기 연산기 사이를 변경 가능하게 접속하는 접속 경로를 포함하는 연산 회로군과, 파라미터 설정에 의해 처리 사양을 변경할 수 있는 파라미터 기반의 전용 하드웨어와, 상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어를 서로 접속하는 모듈간 인터페이스를 포함한다.

Description

집적 회로 및 시스템 개발 방법{INTEGRATED CIRCUIT AND SYSTEM DEVELOPMENT METHOD}
본 발명은 일반적으로 집적 회로에 관한 것이며, 자세하게는 논리를 재구성 가능한 집적 회로에 관한 것이다.
실행하는 처리가 미리 정해져 있는 경우에는 이것에 대하여 전용 LSI를 설계하면, 높은 성능 또한 적은 소비 전력으로 이 처리를 실행하는 시스템을 실현할 수 있다. 단, 사양을 변경하여 다른 처리를 실행하고자 하면, 설계 및 제조를 전부 다시 할 필요가 있고, 전용 LSI는 사양 변경 가능성이 매우 낮은 구성이다.
사양 변경 가능성이 높은 구성으로서는 프로세서에 의해 소프트웨어를 실행하고, 사양의 변경은 소프트웨어를 재기록하는 것으로 실현하는 구성을 들 수 있다. 이 경우, 사양 변경 가능성은 매우 높지만, 프로세서는 범용 처리를 실행 가능하도록 구성되어 있기 때문에 용장성이 높고, 처리 성능이 낮아지는 동시에 소비 전력이 커져 버린다.
FPGA(Field Programmable Gate Array)는 메모리에의 컨피규레이션 데이터의 기록에 의해서 논리 소자 사이의 접속을 자유롭게 재구성 가능하게 하는 것에 의해 게이트 단위에서의 변경을 가능한 구성으로 하는 것이다. 단 사양 변경 가능성이 있다고 하더라도, 사양 변경을 위해서는 RTL(Register Transfer Logic) 설계로부터 다시 할 필요가 있고, 전용 LSI와 같이 하드웨어를 제조하여 고칠 필요는 없지만, 논리 설계의 면에서는 전용 LSI의 설계 변경과 동등한 시간이 걸리게 된다. 또한하드웨어에 용장성이 높기 때문에, 회로 규모의 면에서는 예컨대 전용 LSI의 10배 정도의 크기가 되어, 비용이 높고 소비 전력도 크다.
또한 SOC(System on Chip)는 프로세서와 전용 하드웨어를 동일한 LSI칩으로 구성한 것이며, 프로세서는 전용 하드웨어를 제어하기 위해서 사용된다. 전용 하드웨어 부분에 관해서는 전술한 전용 LSI와 동일한 문제가 있다.
또한 FPGA와 프로세서를 짜맞춰, 프로세서에 의해 전용 하드웨어를 제어하는 구성이 존재한다. 이 구성에 있어서 FPGA의 부분에 관해서는 전술한 FPGA의 문제점이 그대로 들어맞는다.
또한 프로그래밍의 문제를 생각하면, 프로세서와 소프트웨어로 구성되는 높은 사양 변경 가능성을 구비한 시스템에 있어서조차도, 포괄적으로 설계를 하는 경우에는 소프트웨어의 사양 변경에는 많은 수고와 시간이 걸려 매우 힘든 작업이 되어 버린다. 포괄적인 접근 방법에 있어서는 처리 순서가 플로우차트로 표현되기 때문에, 플로우차트를 수정하여 소프트웨어를 변경하는 작업은 용이하지 않다. 예컨대, 새로운 처리를 추가하는 경우, 기존의 프로그램의 일부에 조건 분기를 추가하는 것 등이 필요하게 되어, 새로운 처리를 단순히 추가할 뿐만 아니라, 또 다른 처리를 분기하기 전에 전개할 필요가 생긴다. 이것을 반복하면 프로그램의 판독 가능성이나 메인티넌스성이 낮아져, 에러가 많아지거나 수정이 불가능한 상태가 되거나 한다.
또한 SOC에서의 프로그래밍의 문제로서는 소프트웨어와 하드웨어와의 역할 배분의 어려움이 있다. SOC에서는 설계의 초기 단계에서 설계자가 경험칙에 기초하여 소프트웨어와 하드웨어에 각 처리 부분을 할당하기 때문에 처리의 배분이 최적화되어 있지 않은 경우가 많다. 또한 나중이 되어서, 하드웨어와 소프트웨어 사이의 경계를 움직이는 것이 어렵다.
즉, 포괄적 접근 방법에 의한 소프트웨어와 하드웨어와의 분류에 있어서는 설계의 최초 단계에서 전체를 바라보아, 경험에 기초하여 무겁다고 판단되는 처리를 하드웨어에 할당하고, 가볍다고 판단되는 처리 및 제어는 소프트웨어에 할당한다. 이러한 설계 수법에 의해 얻어지는 구성은 반드시 최적화되어 있지는 않다. 나중에 와서, 하드웨어로부터 소프트웨어로 처리를 이행시키는 것은 불가능하지 않지만, 소프트웨어로부터 하드웨어로 처리를 이행하기 위해서는 하드웨어의 설계 변경과 공장에서의 제조 공정이 필요하게 된다.
상기와 같은 문제점을 해결하는 하나의 수법으로서, 플레이아데스(Pleiades)라는 시스템이 제안되어 있다(Hui Zhang, Vandana Prabhu, Varghese George, Marlene Uran, Martin Benes, Arthur Abnous, "A 1V Heterogeneous Reconfigurable Processor IC for Baseband Wirelss Applications", Proceedings of ISSCC2000). 플레이아데스에 있어서는 프로세서, MAC(승가산기), ALU(산술 연산기), AGU(어드레스 생성기), MEM(메모리), FPGA 등을 버스에 의해 접속하여, 싱글 스레드 처리를 실행하도록 설계되어 있다.
플레이아데스에 있어서는 프로세서 이외에 입도(변경 가능한 단위의 크기)가 다른 복수 종류의 재구성 가능한 모듈 및 전용 하드웨어를 제공함으로써 사양 변경가능성, 성능, 및 소비 전력의 3점에서 최적화된 구성을 제공하고자 한다. 단 설계 방법이 포괄적이며, 소프트웨어 동작으로부터 하드웨어(재구성 가능한 부분도 포함함)로 이동하는 처리 부분을 추출하여, 그 부분을 하드웨어로 이동하는 것으로 최적화를 하기 때문에, 이동을 위한 설계 변경에 시간이 걸린다.
또한 플레이아데스에서는 싱글 프로세스(또는 싱글 스레드) 내의 처리를 각 모듈에 할당하여 신호 처리를 행하고 있기 때문에, 각 모듈 사이에서 빈번한 데이터 전송이 필요하게 되어, 모듈 사이의 신호 전송로의 리소스에 의해 처리 성능이 제한된다. 이것을 하드웨어적인 관점에서 생각하면, 플레이아데스에서는 MAC(승가산기)나 ALU(산술 연산기)라는 개개의 연산기와 FPGA나 프로세서가 신호 전송로상의 동일한 계층에 설치되는 구성으로 되어 있기 때문에, 연산기 사이 또는 연산기와 FPGA 사이 또는 연산기와 프로세서 사이에서의 데이터의 전송량이 커져, 처리 성능이 열화하여 버린다.
이상을 감안하여, 본 발명은 사양 변경 가능성, 성능, 및 소비 전력이 다른 복수의 모듈을 탑재하여 최적의 처리의 할당을 가능하게 하는 동시에, 신호 전송로에서의 전송량이 비교적 적은 논리 재구성 가능한 집적 회로를 제공하는 것을 목적으로 한다.
도 1은 본 발명에 의한 애플리케이션 특화형 플랫폼 LSI의 구성을 도시한 도면이다.
도 2는 애플리케이션 특화형 플랫폼 LSI의 제1 실시예의 구성을 도시한 도면이다.
도 3은 애플리케이션 특화형 플랫폼 LSI의 제2 실시예의 구성을 도시한 도면이다.
도 4는 애플리케이션 특화형 플랫폼 LSI의 제3 실시예의 구성을 도시한 도면이다.
도 5는 애플리케이션 특화형 플랫폼 LSI의 제4 실시예의 구성을 도시한 도면이다.
도 6은 연산 회로군의 제1 실시예의 구성을 도시한 도면이다.
도 7은 연산 회로군의 제2 실시예의 구성을 도시한 도면이다.
도 8은 연산 회로군의 제3 실시예의 구성을 도시한 도면이다.
도 9는 연산 회로군의 제4 실시예의 구성을 도시한 도면이다.
도 10은 파라미터 기반의 전용 하드웨어의 제1 실시예의 구성을 도시한 도면이다.
도 11은 파라미터 기반의 전용 하드웨어의 제2 실시예의 구성을 도시한 도면이다.
도 12는 파라미터 기반의 전용 하드웨어의 제3 실시예의 구성을 도시한 도면이다.
도 13은 파라미터 기반의 전용 하드웨어의 제4 실시예의 구성을 도시한 도면이다.
도 14는 애플리케이션 특화형 플랫폼 LSI에서의 시스템 개발의 일례를 도시한 도면이다.
도 15는 애플리케이션 특화형 플랫폼 LSI의 각 모듈에 프로세스를 맵핑하는 방법의 일례를 도시한 도면이다.
<도면의 주요부분에 대한 부호의 설명>
10: 애플리케이션 특화형 플랫폼 LSI
11; 프로세서
12: 연산 회로군
13: 재구성 가능 게이트 어레이
14: 전용 하드웨어
15: 파라미터 기반의 전용 하드웨어
16: 메모리
17: 모듈간 인터페이스
본 발명에 의한 집적 회로는 프로세서와, 복수의 연산기와 상기 연산기 사이를 변경 가능하게 접속하는 접속 경로를 포함하는 연산 회로군과, 파라미터 설정에 의해 처리 사양을 변경할 수 있는 파라미터 기반의 전용 하드웨어와, 상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어를 서로 접속하는 모듈간 인터페이스를 포함하는 것을 특징으로 한다.
상기 발명에 있어서는, 다른 입도(변경 가능한 단위의 크기)를 갖는 복수의 상이한 모듈을 탑재함으로써 소비 전력, 성능, 사양 변경 가능성을 최적화하는 것이 가능하게 된다. 또한 개개의 연산 회로가 모듈간 인터페이스에 독립적으로 접속되는 것이 아니고, 연산 회로군 내에 가변하는 접속 경로를 설치하여 복수의 연산 회로를 포함하는 구성으로 되어 있기 때문에, 복수의 연산기 사이에서의 데이터 전송을 연산 회로군 내에서 폐쇄한 구성이 실현된다. 따라서 본 발명에 있어서는 모듈간 인터페이스상의 데이터 전송 속도에 의해 연산기에 의한 연산 처리 속도가 제한되는 일이 없고, 높은 시스템 성능을 달성할 수 있다.
또한 본 발명에 의한 시스템 개발 방법은 프로세서와, 복수의 연산기와 상기 연산기 사이를 변경 가능하게 접속하는 접속 경로를 포함하는 연산 회로군과, 파라미터 설정에 의해 처리 사양을 변경할 수 있는 파라미터 기반의 전용 하드웨어와, 상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어를 서로 접속하는 모듈간 인터페이스를 포함하는 집적 회로에 관해서, 오브젝트 지향 분석에 의해 오브젝트와 오브젝트 사이의 관계를 생성하여, 서로 관계있는 오브젝트를 모음으로써 적어도 하나의 오브젝트를 포함하는 프로세스를 생성하고, 상기 집적 회로의 상기 프로세서, 상기 연산 회로군, 및 상기 파라미터 기반의 전용 하드웨어마다 상기 프로세스를 할당하는 각 단계를 포함한다.
상기 발명에서는 하드웨어를 포함하는 시스템을 오브젝트로 구성하는 것으로, 오브젝트의 변경 등에 의한 사양 변경을 용이하게 행할 수 있다. 프로세서 부분 또는 재구성 가능한 하드웨어 부분에 맵핑된 오브젝트에 관해서는 사양 변경이 가능하고, 사양 변경의 대상인 오브젝트와 집적 회로의 모듈과의 대응 관계가 명확하기 때문에, 사양 변경을 용이하게 행할 수 있다.
이하에, 본 발명의 실시예를 첨부 도면을 이용하여 상세히 설명한다.
도 1은 본 발명에 의한 애플리케이션 특화형 플랫폼 LSI의 구성을 도시한 도면이다.
도 1에 있어서, 애플리케이션 특화형 플랫폼 LSI(10)는, 프로세서(11), 복수의 연산기에 의해서 구성되어 연산기 사이의 접속을 가변으로 하는 것으로 연산 처리의 흐름을 재구성 가능한 연산 회로군(12), 게이트 레벨의 논리 변경이 가능한 재구성 가능 게이트 어레이(13), 특정한 처리를 실행하기 위한 전용 하드웨어(14), 파라미터 설정에 의해 특정한 처리의 사양 변경이 가능한 파라미터 기반의 전용 하드웨어(15), 공유되는 메모리(16), 및 모듈간 인터페이스(17)를 포함한다. 또 도 1에 있어서, 연산 회로군(12), 재구성 가능 게이트 어레이(13), 전용 하드웨어(14), 및 파라미터 기반의 전용 하드웨어(15)는 각각 여러 개 설치되어 있지만, 개수에 특별히 제한은 없고 하나만 설치하는 구성이라도 좋다. 또한 본 발명에 있어서 애플리케이션 특화형 플랫폼 LSI(10)는 적어도 프로세서(11), 연산 회로군(12), 및 파라미터 기반의 전용 하드웨어(15)를 포함하는 구성으로 하고, 그 이외의 논리 모듈인 재구성 가능 게이트 어레이(13) 및 전용 하드웨어(14)는 옵션이다.
도 1과 같이, 본 발명에 있어서는 다른 입도(변경 가능한 단위의 크기)를 갖는 복수의 상이한 모듈을 탑재함으로써 소비 전력, 성능, 사양 변경 가능성을 최적화하는 것이 가능하게 된다. 즉, 처리의 각 부분을 최적의 모듈에 할당하여 실행함으로써 소비 전력과 성능을 최적화하는 동시에, 사양 변경의 경우에 필요한 변경 단위의 크기를 고려하여 모듈에의 처리의 할당을 고려함으로써 최적의 사양 변경 가능성을 실현할 수 있다.
도 2는 애플리케이션 특화형 플랫폼 LSI의 제1 실시예의 구성을 도시한 도면이다. 도 2에 있어서 도 1과 동일한 구성 요소는 동일한 번호로 참조하고, 그 설명은 생략한다.
도 2의 애플리케이션 특화형 플랫폼 LSI(10A)는 도 1의 구성 요소에 더하여, 데이터 전송 제어기(18)를 포함한다. 또한 모듈간 인터페이스(17)는 복수 라인의 버스로 구성되어, 데이터 전송 제어기(18)가 버스상의 데이터 전송을 제어하는 구성으로 되어 있다. 또한 공유 메모리(16) 이외에 각 모듈에 국부적인 메모리를 구비하더라도 좋다.
도 3은 애플리케이션 특화형 플랫폼 LSI의 제2 실시예의 구성을 도시한 도면이다. 도 3에 있어서 도 1과 동일한 구성 요소는 동일한 번호로 참조하고, 그 설명은 생략한다.
도 3의 애플리케이션 특화형 플랫폼 LSI(10B)는 도 1의 구성 요소에 더하여, 데이터 전송 제어기(18) 및 DSP(19)를 포함한다. 또한 모듈간 인터페이스(17)는 크로스바로 구성되어, 데이터 전송 제어기(18)가 크로스바상의 데이터 전송을 제어하는 구성으로 되어 있다. 이에 따라, 각 모듈 사이의 신호 경로의 접속을 변경 가능한 재구성 가능 모듈간 인터페이스를 제공할 수 있다. 또한 공유 메모리(16) 이외에 각 모듈에 국부적인 메모리를 구비하더라도 좋다. 또한 예컨대 공유 메모리(16)를 16뱅크 구성의 4포트 메모리로 하여, 뱅크 구성에 의해 메모리 액세스의 경합을 배제하는 구성으로 해도 좋다.
도 4는 애플리케이션 특화형 플랫폼 LSI의 제3 실시예의 구성을 도시한 도면이다. 도 4에 있어서 도 3과 동일한 구성 요소는 동일한 번호로 참조하고, 그 설명은 생략한다.
도 4의 (a)의 애플리케이션 특화형 플랫폼 LSI(10C)는 프로세서(11), 연산 회로군(12), 전용 하드웨어(14), 파라미터 기반의 전용 하드웨어(15), 메모리(16), 크로스바에 의해 실현되는 모듈간 인터페이스(17), 데이터 전송 제어기(18), I/O 제어기(20), 및 연결부(21)를 포함한다. 이 애플리케이션 특화형 플랫폼 LSI(10C)에는 재구성 가능 게이트 어레이(13)가 설치되어 있지 않다.
도 4의 (b)는 애플리케이션 특화형 플랫폼 LSI(10C)에 접속하는 재구성 가능 게이트 어레이 LSI(30)를 도시한다. 재구성 가능 게이트 어레이 LSI(30)는 재구성 가능 게이트 어레이(13)와 연결부(31)를 포함한다.
도 4의 (c)는 애플리케이션 특화형 플랫폼 LSI(10C)와 재구성 가능 게이트 어레이 LSI(30)를 적층하여 접속한 구성을 도시한다. 연결부(21과 31)를 배선 접속하는 것으로 애플리케이션 특화형 플랫폼 LSI(10C)로부터 재구성 가능 게이트 어레이(13)의 기능을 사용할 수 있게 된다. 또한, 도 4의 (c)의 구성에서는 적층 실장하고 있지만, 기판상에 2개의 칩을 평면상에 모두 탑재하는 구성으로 해도 좋다.또한, 2칩 구성에 한정되지 않고, 각 LSI를 더욱 나란히 하여 모두 3가지 이상의 칩을 하나의 기판에 실장하더라도 좋다.
도 5는 애플리케이션 특화형 플랫폼 LSI의 제4 실시예의 구성을 도시한 도면이다. 도 5에 있어서 도 1과 동일한 구성 요소는 동일한 번호로 참조하고, 그 설명은 생략한다.
도 5의 애플리케이션 특화형 플랫폼 LSI(10D)는 프로세서(11), 연산 회로군(12), 재구성 가능 게이트 어레이(13), 전용 하드웨어(14), 파라미터 기반의 전용 하드웨어(15), 메모리(16), 모듈간 인터페이스(17), 및 DSP(19)를 포함한다. 이 제4 실시예의 구성에 있어서는 모듈간 인터페이스(17)가 계층 버스로 실현되고 있다. 이 계층 버스에 있어서 근접하는 모듈 사이는 하층 버스에 의해 접속되고, 거리가 떨어진 모듈 사이는 상층 버스(굵은 선으로 도시)를 통해 데이터 전송이 행해진다. 도 5의 예는 2층 구성의 버스로 되어 있지만, 계층수는 2층에 한정되는 것이 아니고, 3층 또는 그 이상의 계층수라도 좋다.
도 6은 연산 회로군(12)의 제1 실시예의 구성을 도시한 도면이다.
도 6의 연산 회로군(12A)은 레지스터(40-1 내지 40-4), 복수의 선택기(41-l 내지 41-3), 연산기(42-11 내지 42-15, 42-21 내지 42-25, 및 42-31 내지 42-35), 및 제어기(43)를 포함한다. 모듈간 인터페이스(17)로부터 공급되는 데이터는 레지스터(40-1)에 입력되어 일시적으로 유지된다. 레지스터(40-1)에는 복수의 레지스터 회로가 설치되어 복수의 데이터를 동시에 기억할 수 있다. 레지스터(40-1)의 데이터는 제어기(43)에 의해 제어되는 선택기(41-1)를 통해 연산기(42-11 내지 42-15)에 공급된다.
연산기(42-11 내지 42-15)는 종류가 다른 연산기이며, 연산기(42-11 내지 42-13)는 예컨대, 각각 8비트 MPY(승산기), 16비트 MPY(승산기), 및 MAC(승가산기)이다. 또한, 연산기(42-14 내지 42-15)는 예컨대 ALU(산술 연산기)이다. 연산기(42-11 내지 42-15)는 제어기(43)의 제어하에 동작하여, 각각이 2개의 데이터를 받아들여, 소정의 연산을 실행하여 하나의 데이터를 출력한다. 출력된 데이터는 레지스터(40-2)에 공급된다. 이에 따라 1단째의 연산기 배열에 의한 연산이 종료한다. 또 연산기(42-11 내지 42-15)가 다른 종류일 필요는 없고, 전부 동일한 종류의 연산기(예컨대 ALU)라도 좋다.
2단째 및 3단째도 1단째와 같이 구성된다. 레지스터(40-2)의 데이터는 선택기(41-2)를 통해 연산기(42-21 내지 42-25)에 공급되어, 소정의 연산이 실행된 후, 연산 결과가 레지스터(40-3)에 공급된다. 레지스터(40-3)의 데이터는 선택기(41-3)를 통해 연산기(42-31 내지 42-35)에 공급되어, 소정의 연산이 실행되어, 연산 결과가 레지스터(40-4)에 공급된다. 레지스터(40-4)의 연산 결과는 모듈간 인터페이스(17)에 공급된다.
이와 같이 모듈간 인터페이스(17)로부터 공급되는 데이터를 1단째에서 연산하고, 1단째의 연산 결과의 데이터를 2단째에서 연산하고, 2단째의 연산 결과의 데이터를 3단째에서 연산한다. 이 때 제어기(43)에 의해 각 연산기에 공급하는 연산 대상의 데이터를 선택함으로써 연산기 사이의 접속을 임의로 구성한다. 이에 따라, 어떤 단의 결과를 다음단에 공급하는 연산 데이터의 흐름을 제어하여, 원하는 연산처리를 실행할 수 있다. 제어기(43)는 프로그램 가능하며, 연산 처리의 내용을 변경할 필요가 있는 경우에는 제어기(43)의 제어 프로그램을 재기록하여 연산 데이터의 흐름(연산기 사이의 접속)을 변경함으로써 연산 단위의 사양 변경이 가능해진다.
또 이 예에서는 3단 구성으로 했지만, 단수는 3단에 한정되는 일없이, 2단 또는 4단 이상의 구성이라도 좋다.
전술한 플레이아데스에서는 MAC(승가산기)나 ALU(산술 연산기)라는 개개의 연산기와 FPGA나 프로세서가 신호 전송로상의 동일한 계층에 설치되는 구성으로 되어 있기 때문에, 연산기 사이 또는 연산기와 FPGA 사이 또는 연산기와 프로세서 사이에서의 데이터의 전송량이 커져, 처리 성능이 열화하여 버린다. 그것에 대하여 본 발명에 있어서의 애플리케이션 특화형 플랫폼 LSI(10)에 있어서는 게이트 단위의 변경이 가능한 FPGA와 소프트 재기록에 의한 변경이 가능한 프로세서와의 중간의 입도인 연산 회로군(12)은 복수 종류의 연산기 사이에서의 데이터 전송을 연산 회로군(12) 내에서 폐쇄한 형태의 구성으로 되어 있다. 따라서 본 발명에 있어서는 모듈간 인터페이스(17)상의 데이터 전송 속도에 의해 연산기에 의한 연산 처리 속도가 제한되는 일이 없어, 높은 시스템 성능을 달성할 수 있다.
도 7은 연산 회로군(12)의 제2 실시예의 구성을 도시한 도면이다.
도 7의 연산 회로군(12B)은 4단의 연산기 배열(51 내지 54)을 포함한다. 각 단의 연산기 배열은 도 6의 연산 회로군(12A)의 연산기 배열과 같이 레지스터, 선택기, 및 복수의 연산기로 이루어진다. 4단의 연산기 배열(51-54)은 후단으로 갈수록 연산기의 수가 적어지는 구성으로 되어 있다. 이것은 일련의 연산 처리를 실행하는 데 있어서, 후단으로 갈수록 연산의 병행성이 적어지는 것에 대응하고 있다. 즉, 각 연산기는 2개 또는 하나의 데이터 입력으로부터 하나의 데이터 출력을 생성하기 때문에, 일반적으로 후단으로 갈수록 데이터수가 적어져 필요한 연산기의 수가 적어진다.
또한, 도 7의 구성에 있어서는 설정용 메모리(44) 및 바이패스(45)가 설치된다. 바이패스(45)는 각 단의 레지스터 사이를 직접적으로 접속하는 것으로, 연산기가 부족한 경우 또는 상기 단에 필요한 타입의 연산기가 없는 경우 등에 다음단 이후의 연산기를 사용하기 위해서 설치된다. 이에 따라, 적은 연산기수로 연산의 최적화를 실현할 수 있다. 또한 설정용 메모리(44)는 각 선택기의 선택에 관한 설정 정보를 축적하는 메모리이며, 이 메모리에 제어기(43)로부터 적절하게 설정 데이터를 기록함으로써 각 선택기의 동작을 제어할 수 있다. 이에 따라, 선택기에 의한 복잡한 선택의 조합을 용이하게 실현할 수 있다.
도 8은 연산 회로군(12)의 제3 실시예의 구성을 도시한 도면이다.
도 8의 연산 회로군(12C)은 제어기(60), 설정용 메모리(61), 레지스터(62), 선택기(63), 크로스바(64), 버퍼(65), 및 연산기(66-1 내지 66-6)를 포함한다.
모듈간 인터페이스(17)로부터 공급되는 데이터는 레지스터(62)에 입력되어 일시적으로 유지된다. 레지스터(62)에는 복수의 레지스터 회로가 설치되어 복수의 데이터를 동시에 기억할 수 있다. 레지스터(62)의 데이터는 제어기(60)에 의해 제어되는 선택기(63) 및 크로스바(64)를 통해 연산기(66-1 내지 66-6)에 공급된다.선택기(63)의 선택에 관한 설정 정보는 설정용 메모리(61)에 기억되어 있다.
연산기(66-1 내지 66-6)는 종류가 다른 연산기이며, 예컨대 MPY(승산기), BIT 연산기, MAC(승가산기), ALU(산술 연산기) 등을 포함한다. 연산기(66-1 내지 66-6)는 제어기(60)의 제어하에 동작하여, 각각이 2개 또는 하나의 데이터를 받아들여, 소정의 연산을 실행하여 하나의 데이터를 출력한다. 또 동일한 종류의 연산기가 여러 개 설치되어 있어도 좋고, 모든 연산기가 동일한 종류라도 좋다. 출력된 데이터는 크로스바(64) 및 선택기(63)를 통해 레지스터(62)에 공급된다. 이에 따라 연산기 배열에 의한 최초의 연산이 종료한다.
그 후는, 제어기(60)의 제어에 따라서 레지스터(62)의 데이터를 연산기(66-1 내지 66-6)에 의해 연산하여, 그 결과를 레지스터(62)로 복귀하는 동작을 필요한 횟수 반복한다. 이 때, 연산의 중간 결과를 버퍼(65)에 기억하여, 연산기(66-1 내지 66-6)로 이용할 수 있도록 한다. 또한 각 연산기(66-1 내지 66-6)의 출력 부분에는 레지스터(66a)가 설치되고, 출력을 일시적으로 유지 가능한 구성으로 되어 있다. 또한, 제어기(60)에는 어드레스 생성 회로(60a)가 더 설치되어, 어드레스 지정에 의한 각 유닛의 제어가 가능하게 되어 있다.
또한 제어기(60)는 프로그램 가능하며, 연산 처리의 내용을 변경할 필요가 있는 경우에는 제어기(60)의 제어 프로그램을 재기록하여 연산 데이터의 흐름(연산기 사이의 접속)을 변경함으로써 연산 단위의 사양 변경이 가능해진다.
도 9는 연산 회로군(12)의 제4 실시예의 구성을 도시한 도면이다.
도 9의 연산 회로군(12D)은 제어기(70), 설정용 메모리(71), 메모리(72), 재설정 가능 네트워크(73), 및 연산기(74-1 내지 74-7)를 포함한다. 연산기(74-1 내지 74-7)는 종류가 다른 연산기이며, 예컨대 MPY(승산기), BIT 연산기, MAC(승가산기), ALU(산술 연산기), MOD 연산기(모듈 연산기) 등을 포함한다. 또 동일한 종류의 연산기가 여러 개 설치되어 있어도 좋고, 모든 연산기가 동일한 종류라도 좋다. 모듈간 인터페이스(17)와의 인터페이스 부분에는 메모리(72)가 설치된다. 또한, 메모리(72)와 각 연산기(74-1 내지 74-7)와의 사이에는 신호 경로의 접속을 자유롭게 재구성 가능한 재설정 가능 네트워크(73)가 설치된다. 재설정 가능 네트워크(73)의 신호 경로의 접속을 설정하는 설정 데이터는 설정용 메모리(71)에 기억되어 있다. 도 9의 연산 회로군(12D)의 동작은 도 8의 연산 회로군(12C)의 동작과 대략 동일하다.
도 10은 파라미터 기반의 전용 하드웨어(15)의 제1 실시예의 구성을 도시한 도면이다.
도 10의 파라미터 기반의 전용 하드웨어(15A)는 제어기(80), 파라미터 유지 레지스터(81), 데이터 입출력용 버퍼(82), 전용 하드웨어 엔진(83), 및 일시 데이터 기억 버퍼(84)를 포함한다.
모듈간 인터페이스(17)로부터 공급되는 데이터는 데이터 입출력용 버퍼(82)에 일시적으로 기억되어 유지된다. 데이터 입출력용 버퍼(82)에 기억되는 데이터는 전용 하드웨어 엔진(83)에 공급되어, 제어기(80)의 제어하에서 동작하는 전용 하드웨어 엔진(83)에 의해 소정의 데이터 처리가 실행된다. 일시 데이터 기억 버퍼(84)는 전용 하드웨어 엔진(83)에 의해 데이터 처리가 실행될 때에, 처리의 중간 결과등을 일시적으로 기억하여 유지하는 버퍼이다.
전용 하드웨어 엔진(83)은 소정의 처리를 실행하기 위해서 전용에 설계·제조된 하드웨어이며, 엔진의 역할을 변경하는 것은 할 수 없다. 그러나, 예컨대 처리의 데이터수나 정밀도 등의 파라미터를 변경 가능하도록 구성되어 있다. 이 파라미터의 정보는 파라미터 유지 레지스터(81)에 기억되어 있고, 제어기(80)가 파라미터 유지 레지스터(81)에 기억되는 정보에 기초하여 전용 하드웨어 엔진(83)을 동작시킴으로써 소정의 동작을 원하는 사양에 따라서 실행할 수 있다.
도 11은 파라미터 기반의 전용 하드웨어(15)의 제2 실시예의 구성을 도시한 도면이다. 도 11에 있어서 도 10과 동일한 구성 요소는 동일한 부호로 참조하고, 그 설명은 생략한다.
도 11의 파라미터 기반의 전용 하드웨어(15B)는 고속 푸리에 변환을 실행하기 위한 하드웨어이며, 전용 하드웨어 엔진(83B)은 FFT용의 버터플라이 연산기(85-1 내지 85-4), 및 데이터 순차환(循次換) 처리용의 퍼뮤테이터(86)를 포함한다. 제어기(80)에 의해 계산하는 횟수를 제어함으로써 포인트수(데이터수)가 다른 FFT를 실행할 수 있다.
도 12는 파라미터 기반의 전용 하드웨어(15)의 제3 실시예의 구성을 도시한 도면이다. 도 12에 있어서 도 11과 동일한 구성 요소는 동일한 부호로 참조하고, 그 설명은 생략한다.
도 12의 파라미터 기반의 전용 하드웨어(15C)는 도 11의 파라미터 기반의 전용 하드웨어(15B)에 대하여 클록 제어기(87)가 추가된 구성으로 되어 있다. 클록제어기(87)는 클록 신호를 생성하여, 제어기(80), 데이터 입출력용 버퍼(82), 전용 하드웨어 엔진(83B), 및 일시 데이터 기억 버퍼(84)에 공급한다. 이들 회로 유닛은 공급된 클록 신호에 기초하여 동작한다. 도 12의 파라미터 기반의 전용 하드웨어(15C)에서는 파라미터 설정에 의해 클록 제어기(87)가 생성하는 클록 신호의 주파수를 변경 가능한 구성으로 되어 있다. 이에 따라, FFT 연산 처리에 요하는 시간을 제어하는 것이 가능해져, 그 결과 처리 모드를 변경 가능해진다.
도 13은 파라미터 기반의 전용 하드웨어(15)의 제4 실시예의 구성을 도시한 도면이다. 도 13에 있어서 도 12와 동일한 구성 요소는 동일한 부호로 참조하고, 그 설명은 생략한다.
도 13의 파라미터 기반의 전용 하드웨어(15D)는 스팩트럼 확산 통신에 있어서의 역확산 처리를 실행하기 위한 하드웨어이며, 전용 하드웨어 엔진(83D)은 역확산 처리용의 역확산 엔진(85-1 내지 85-8)을 포함한다. 즉 8핑거의 역확산 처리가 가능하다. 또한 파라미터 설정에 의해 제어기(80)에 의한 제어 동작을 변경함으로써 8개의 역확산 엔진에 의한 시분할 처리를 실행하여, 16, 32, 또는 48핑거의 처리를 실현하는 것도 가능하다. 이와 같이 시분할 처리에 의해 핑거수를 크게 하는 경우에는 클록 제어기(87)가 생성하는 클록 신호의 주파수를 높게 하여, 소정의 시간 내에 소정의 처리를 종료시키는 것이 필요하게 된다.
이하에, 본 발명에 의한 애플리케이션 특화형 플랫폼 LSI에서의 시스템 개발에 관해서 설명한다.
소프트웨어의 분야에서는 포괄 접근 방법의 사양 변경이나 메인티넌스의 곤란함을 해결하기 위해서 오브젝트 지향의 설계 수법이 개발되어 이용되고 있다. 오브젝트 지향의 설계 수법에 있어서는 소프트웨어의 구성 요소를 인간이 직감적으로 이해하기 쉬운 오브젝트 단위로 하여, 그 오브젝트 사이의 상호 관계를 구축해 나가는 것에 의해 소프트웨어 전체를 형성한다. 이 설계 방법의 장점은 소프트웨어를 구성하는 단위가 작은 오브젝트이기 때문에 사양을 변경할 때는 오브젝트를 변경하거나, 교체하거나, 또는 오브젝트 사이의 관계를 변경하거나 하면 되고, 사양 변경 등이 용이한 것이다.
본 발명에서는 종래의 소프트웨어 개발뿐만 아니라, 하드웨어를 포함하는 시스템을 오브젝트로 구성함으로써 오브젝트의 변경 등에 의한 사양 변경을 쉽게 한다. 오브젝트 지향으로 설계된 시스템에 있어서 적어도 하나 이상의 오브젝트로 구성되는 프로세스를 본 발명의 애플리케이션 특화형 플랫폼 LSI의 각 모듈에 맵핑한다.
프로세서 부분 또는 재구성 가능한 하드웨어 부분에 맵핑된 오브젝트에 관해서는 사양 변경이 가능하기 때문에 SOC에서는 불가능하던 시스템의 사양 변경이 가능해진다. 이 때 사양 변경의 대상인 오브젝트와 LSI의 모듈과의 대응 관계가 명확하기 때문에 사양 변경을 용이하게 행할 수 있다.
도 14는 애플리케이션 특화형 플랫폼 LSI에서의 시스템 개발의 일례를 도시한다.
우선, 사양으로부터 시스템에 대한 오브젝트 분석을 행하여, 시스템을 오브젝트와 오브젝트 사이의 관계로서 기술한다. 이 단계에서는 소프트와 하드와의 구별은 없다.
다음에, 관계가 있는 오브젝트를 각각 모음으로써 프로세스화한다. 이 때, 프로세스 내에서의 통신량에 비교하여 프로세스 사이에서의 통신량이 작아지도록 하는 것, 프로세스 사이의 관계도 작게 하는 것 등을 조건으로서, 프로세스화를 한다. 이 단계에서는 소프트와 하드와의 구별은 없다.
다음에, 프로세서간 통신을 인터페이스 또는 채널이라는 추상화된 형식으로 기술한다. 이 단계에서는 소프트와 하드와의 구별은 없다.
마지막으로, 애플리케이션 특화형 플랫폼 LSI를 구성하는 각 모듈에 각 프로세스를 할당한다. 이 때 인터페이스 또는 채널로 기술된 통신은 애플리케이션 특화형 플랫폼 LSI상의 통신용 리소스 또는 미들웨어에 맵핑된다. 이 단계에서 하드와 소프트를 구별하여 맵핑한다. 모듈에 대한 프로세스의 할당을 최적화함으로써 시스템을 최적화한다. 또한, 프로세스는 오브젝트로 구성되어 있기 때문에, 오브젝트의 프로세스간 이동은 용이하고, 프로세스를 재구성하는 최적화의 작업도 용이하다. 또, 이 설계 수법은 애플리케이션 특화형 플랫폼 LSI에만 적용 가능한 것이 아니라, 통상의 SOC 등에도 적용 가능하다.
상기한 본 설계 수법에 있어서는 싱글 프로세스(싱글 스레드)의 프로그래밍이 아니라, 멀티 프로세스(멀티 스레드)의 프로그래밍이 행해지게 된다. 각 모듈(프로세서, 연산 회로군, 재구성 가능 게이트 어레이, 전용 하드웨어, 파라미터 기반의 전용 하드웨어 등)에 대하여 프로세스(스레드)를 할당함으로써 모듈 사이의 데이터 전송을 적게 할 수 있게 된다. 각각의 프로세스(스레드) 내의 처리는 적어도 하나 이상의 오브젝트로 구성한다. 그 때문에, 프로세스 사이의 처리의 이동이 용이하다.
전술한 바와 같이, 프로세스(스레드)간 통신을 인터페이스 기술 또는 채널 기술이라는 추상도가 높은 레벨의 기술로 함으로써 프로그래밍의 단계에서는 하드웨어간 통신, 소프트웨어간 통신, 또는 하드웨어와 소프트웨어간의 통신인 지를 의식할 필요가 없어진다. 이것을 실현하기 위해서 인터페이스 또는 채널에 대응하는 하드웨어 모듈(하드웨어간 통신 및 소프트와 하드간 통신의 일부를 담당함)을 설치하는 동시에, 소프트와 하드를 잇는 드라이버, 소프트끼리를 잇는 라이브러리를 제공한다.
또 각 모듈 사이에서의 스레드 또는 프로세스간의 통신은 프로세서(11)가 실행하는 소프트웨어에 의해서 제어된다.
이하에, 본 발명에 의한 애플리케이션 특화형 플랫폼 LSI용의 시스템 개발 수법에 관해서 구체적으로 설명한다.
최초의 단계인 오브젝트 분석에는 UML을 이용하여, 그것을 C++로 실장하면 좋다. 다음 단계에서 오브젝트를 모으는 것으로 프로세스화한다. 다음 단계에서 프로세스와 인터페이스를 더 분리한다. 이 때, 인터페이스와 프로세스는 예컨대 SystemC를 이용하여 표현하면 좋다. 다음 단계에서, 프로세스를 애플리케이션 특화형 플랫폼 LSI의 각 모듈에 맵핑하지만, 이 때, 성능을 평가하면서 맵핑을 조정함으로써 최적화를 행한다. 또 사용하는 기술 언어는 C++의 대신에 예컨대 JAVA(등록상표)라도 좋고, 오브젝트 지향 언어이면 임의의 것이라도 좋다. 또한 인터페이스기술은 SystemC에 한정되는 것이 아니라, JINI나 CORBA 등을 사용하더라도 좋다.
도 15는 애플리케이션 특화형 플랫폼 LSI의 각 모듈에 프로세스를 맵핑하는 방법의 일례를 도시한다.
할당 대상 모듈이 프로세서인 경우에는 프로세스를 소프트웨어 오브젝트로서 맵핑한다. 이 때, 소프트웨어 오브젝트를 생성하는 것은 컴파일러이다. 또한 API 콜로 호출하는 프로세스로서, 소정의 프로세스를 전용 하드웨어에 맵핑한다. 또한, 파라미터화된 하드웨어를 사용할 수 있는 프로세스는 인수가 붙은 API 콜로 호출하는 프로세스로서, 파라미터 기반의 전용 하드웨어에 맵핑한다. 프로세서에 의한 소프트웨어 처리에서는 속도적으로 문제가 있는 프로세스는 연산 회로군 또는 재구성 가능 게이트 어레이에 맵핑한다. 연산 회로군에의 맵핑에 있어서는 전용 컴파일러를 사용하거나 또는 전용 프로그래밍을 행한다. 또한 재구성 가능 게이트 어레이에의 맵핑에 있어서는 RTL 기술 또는 고위 논리 합성툴에 의해 회로로서 맵핑한다.
또한, 인터페이스는 전술한 바와 같이, 예컨대 SystemC의 채널 또는 시그널로 기술되어 있다. 이 인터페이스를 관련 프로세스가 맵핑된 모듈의 타입에 따라서 최적의 통신 방식으로 맵핑한다. 예컨대, 하드웨어간의 통신인 경우에는 모듈 사이의 인터페이스에 맵핑하고, 소프트와 하드간의 통신인 경우에는 드라이버와 모듈 사이의 인터페이스로 변환되고, 소프트간의 통신인 경우에는 프로세서간 통신 라이브러리로 변환한다.
이상의 동작에 의해, 애플리케이션 특화형 플랫폼 LSI에 시스템의 각 프로세스 및 인터페이스를 맵핑할 수 있다.
이상, 본 발명을 실시예에 기초하여 설명했지만, 본 발명은 상기 실시예에 한정되는 것이 아니라, 특허청구의 범위에 기재한 범위 내에서 여러 가지 변형이 가능하다.
또 본 발명은 이하의 내용을 포함하는 것이다.
(부기 1) 프로세서와,
복수의 연산기와 상기 연산기 사이를 변경 가능하게 접속하는 접속 경로를 포함하는 연산 회로군과,
파라미터 설정에 의해 처리 사양을 변경할 수 있는 파라미터 기반의 전용 하드웨어와,
상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어를 서로 접속하는 모듈간 인터페이스를 포함하는 것을 특징으로 하는 집적 회로.
(부기 2) 상기 연산 회로군은,
상기 모듈간 인터페이스에 접속되는 데이터 기억 회로와,
상기 데이터 기억 회로와 상기 연산기와의 사이에 신호 경로를 확립하여 상기 신호 경로의 접속을 변경 가능한 접속 회로와,
상기 접속 회로의 상기 신호 경로의 접속을 제어하는 제어 회로를 포함하는 것을 특징으로 하는 부기 1에 기재한 집적 회로.
(부기 3) 상기 접속 회로는 변경 가능한 신호 경로를 상기 연산 회로 사이에 확립하는 것을 특징으로 하는 부기 2에 기재한 집적 회로.
(부기 4) 상기 모듈간 인터페이스에 접속되어 게이트 레벨에서의 논리 변경이 가능한 재구성 가능 게이트 어레이를 더 포함하는 것을 특징으로 하는 부기 1에 기재한 집적 회로.
(부기 5) 상기 모듈간 인터페이스에 접속되어 특정한 처리를 실행하는 전용 하드웨어를 더 포함하는 것을 특징으로 하는 부기 1에 기재한 집적 회로.
(부기 6) 상기 모듈간 인터페이스에 접속되는 공유 메모리를 더 포함하는 것을 특징으로 하는 부기 1에 기재한 집적 회로.
(부기 7) 상기 모듈간 인터페이스는 접속 경로를 변경 가능한 재구성 가능 네트워크인 것을 특징으로 하는 부기 1에 기재한 집적 회로.
(부기 8) 상기 파라미터 기반의 전용 하드웨어는,
상기 모듈간 인터페이스에 접속되는 데이터 입출력 버퍼와,
상기 데이터 입출력 버퍼에 접속되어 특정한 처리를 실행하는 전용 하드웨어와,
상기 전용 하드웨어의 동작 및 처리 사양을 제어하는 제어 회로를 포함하는 것을 특징으로 하는 부기 1에 기재한 집적 회로.
(부기 9) 프로세서와, 복수의 연산기와 상기 연산기 사이를 변경 가능하게 접속하는 접속 경로를 포함하는 연산 회로군과, 파라미터 설정에 의해 처리 사양을 변경할 수 있는 파라미터 기반의 전용 하드웨어와, 상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어를 서로 접속하는 모듈간 인터페이스를 포함하는 집적 회로를 프로그래밍하는 시스템 개발 방법으로서,
오브젝트 지향 분석에 의해 오브젝트 및 오브젝트 사이의 관계를 생성하여서로 관계있는 오브젝트를 모음으로써 적어도 하나의 오브젝트를 포함하는 프로세스를 생성하고,
상기 집적 회로의 상기 프로세서, 상기 연산 회로군, 및 상기 파라미터 기반의 전용 하드웨어마다 상기 프로세스를 할당하는 각 단계를 포함하는 것을 특징으로 하는 시스템 개발 방법.
(부기 10) 상기 프로세스간의 통신을 통신 인터페이스로서 소정의 언어로 기술하고,
상기 소정의 언어로 기술된 통신 인터페이스를 상기 모듈간 인터페이스의 리소스, 하드웨어에 대한 드라이버, 및 프로세서간 통신의 소프트웨어 라이브러리의 적어도 하나에 맵핑하는 각 단계를 더 포함하는 것을 특징으로 하는 부기 9에 기재한 시스템 개발 방법.
(부기 11) 프로세서와, 복수의 연산기와 상기 연산기 사이를 변경 가능하게 접속하는 접속 경로를 포함하는 연산 회로군과, 파라미터 설정에 의해 처리 사양을 변경할 수 있는 파라미터 기반의 전용 하드웨어와, 상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어를 서로 접속하는 모듈간 인터페이스를 포함하는 집적 회로에 있어서, 데이터 처리의 복수의 프로세스를 상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어마다 할당하여 멀티 프로세스 처리를 실행하는 것을 특징으로 하는 데이터 처리 방법.
(부기 12) 프로세서와, 복수의 연산기와 상기 연산기 사이를 변경 가능하게 접속하는 접속 경로를 포함하는 연산 회로군과, 파라미터 설정에 의해 처리 사양을변경할 수 있는 파라미터 기반의 전용 하드웨어와, 게이트 레벨에서의 논리 변경이 가능한 재구성 가능 게이트 어레이와, 상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어, 및 상기 재구성 가능 게이트 어레이를 서로 접속하는 모듈간 인터페이스를 포함하는 집적 회로에 있어서, 데이터 처리의 복수의 프로세스를 상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어, 및 상기 재구성 가능 게이트 어레이마다 할당하여 멀티 프로세스 처리를 실행하는 것을 특징으로 하는 데이터 처리 방법.
(부기 13) 프로세서와, 복수의 연산기와 상기 연산기 사이를 변경 가능하게 접속하는 접속 경로를 포함하는 연산 회로군과, 파라미터 설정에 의해 처리 사양을 변경할 수 있는 파라미터 기반의 전용 하드웨어와, 특정한 처리를 실행하는 전용 하드웨어와, 상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어, 및 상기 특정한 처리를 실행하는 전용 하드웨어를 서로 접속하는 모듈간 인터페이스를 포함하는 집적 회로에 있어서, 데이터 처리의 복수의 프로세스를 상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어, 및 상기 특정한 처리를 실행하는 전용 하드웨어마다 할당하여 멀티 프로세스 처리를 실행하는 것을 특징으로 하는 데이터 처리 방법.
본 발명에 있어서는 다른 입도(변경 가능한 단위의 크기)를 갖는 복수가 다른 모듈을 탑재함으로써 소비 전력, 성능, 사양 변경 가능성을 최적화하는 것이 가능하게 된다. 또한 개개의 연산 회로가 모듈간 인터페이스에 독립적으로 접속되는것은 아니고, 연산 회로군 내에 가변인 접속 경로를 설치하여 복수의 연산 회로를 포함하는 구성으로 되어 있기 때문에 복수의 연산기 사이에서의 데이터 전송을 연산 회로군 내에서 폐쇄한 구성이 실현된다. 따라서 본 발명에 있어서는 모듈간 인터페이스상의 데이터 전송 속도에 의해 연산기에 의한 연산 처리 속도가 제한되는 일이 없어, 높은 시스템 성능을 달성할 수 있다.
또한 본 발명에서는 하드웨어를 포함하는 시스템을 오브젝트로 구성함으로써 오브젝트의 변경 등에 의한 사양 변경을 용이하게 행할 수 있다. 프로세서 부분 또는 재구성 가능한 하드웨어 부분에 맵핑된 오브젝트에 관해서는 사양 변경이 가능하고, 사양 변경의 대상인 오브젝트와 집적 회로의 모듈과의 대응 관계가 명확하기 때문에 사양 변경을 용이하게 행할 수 있다.

Claims (10)

  1. 프로세서와,
    복수의 연산기와 상기 연산기 사이를 변경 가능하게 접속하는 접속 경로를 포함하는 연산 회로군과,
    파라미터 설정에 의해 처리 사양을 변경할 수 있는 파라미터 기반의 전용 하드웨어와,
    상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어를 서로 접속하는 모듈간 인터페이스를 포함하는 것을 특징으로 하는 집적 회로.
  2. 제1항에 있어서, 상기 연산 회로군은,
    상기 모듈간 인터페이스에 접속되는 데이터 기억 회로와,
    상기 데이터 기억 회로와 상기 연산기와의 사이에 신호 경로를 확립하여 상기 신호 경로의 접속을 변경 가능한 접속 회로와,
    상기 접속 회로의 상기 신호 경로의 접속을 제어하는 제어 회로를 포함하는 것을 특징으로 하는 집적 회로.
  3. 제2항에 있어서, 상기 접속 회로는 변경 가능한 신호 경로를 상기 연산 회로 사이에 확립하는 것을 특징으로 하는 집적 회로.
  4. 제1항에 있어서, 상기 모듈간 인터페이스에 접속되어 게이트 레벨에서의 논리 변경이 가능한 재구성 가능 게이트 어레이를 더 포함하는 것을 특징으로 하는 집적 회로.
  5. 제1항에 있어서, 상기 모듈간 인터페이스에 접속되어 특정한 처리를 실행하는 전용 하드웨어를 더 포함하는 것을 특징으로 하는 집적 회로.
  6. 제1항에 있어서, 상기 모듈간 인터페이스에 접속되는 공유 메모리를 더 포함하는 것을 특징으로 하는 집적 회로.
  7. 제1항에 있어서, 상기 모듈간 인터페이스는 접속 경로를 변경 가능한 재구성 가능 네트워크인 것을 특징으로 하는 집적 회로.
  8. 제1항에 있어서, 상기 파라미터 기반의 전용 하드웨어는,
    상기 모듈간 인터페이스에 접속되는 데이터 입출력 버퍼와,
    상기 데이터 입출력 버퍼에 접속되어 특정한 처리를 실행하는 전용 하드웨어와,
    상기 전용 하드웨어의 동작 및 처리 사양을 제어하는 제어 회로를 포함하는 것을 특징으로 하는 집적 회로.
  9. 프로세서와, 복수의 연산기와 상기 연산기 사이를 변경 가능하게 접속하는 접속 경로를 포함하는 연산 회로군과, 파라미터 설정에 의해 처리 사양을 변경할 수 있는 파라미터 기반의 전용 하드웨어와, 상기 프로세서, 상기 연산 회로군, 상기 파라미터 기반의 전용 하드웨어를 서로 접속하는 모듈간 인터페이스를 포함하는 집적 회로를 프로그래밍하는 시스템 개발 방법으로서,
    오브젝트 지향 분석에 의해 오브젝트 및 오브젝트 사이의 관계를 생성하는 단계와,
    서로 관계하는 오브젝트를 모음으로써 적어도 하나의 오브젝트를 포함하는 프로세스를 생성하는 단계와,
    상기 집적 회로의 상기 프로세서, 상기 연산 회로군, 및 상기 파라미터 기반의 전용 하드웨어마다 상기 프로세스를 할당하는 단계를 포함하는 것을 특징으로 하는 시스템 개발 방법.
  10. 제9항에 있어서, 상기 프로세스간의 통신을 통신 인터페이스로서 소정의 언어로 기술하는 단계와,
    상기 소정의 언어로 기술된 통신 인터페이스를 상기 모듈간 인터페이스의 리소스, 하드웨어에 대한 드라이버, 및 프로세서간 통신의 소프트웨어 라이브러리의 적어도 하나에 맵핑하는 단계를 더 포함하는 것을 특징으로 하는 시스템 개발 방법.
KR1020030041417A 2002-06-28 2003-06-25 집적 회로 및 시스템 개발 방법 KR100922411B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2002-00190555 2002-06-28
JP2002190555A JP3934493B2 (ja) 2002-06-28 2002-06-28 集積回路及びシステム開発方法

Publications (2)

Publication Number Publication Date
KR20040025541A true KR20040025541A (ko) 2004-03-24
KR100922411B1 KR100922411B1 (ko) 2009-10-16

Family

ID=29774330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030041417A KR100922411B1 (ko) 2002-06-28 2003-06-25 집적 회로 및 시스템 개발 방법

Country Status (4)

Country Link
US (1) US7716458B2 (ko)
JP (1) JP3934493B2 (ko)
KR (1) KR100922411B1 (ko)
CN (1) CN100437975C (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007526539A (ja) 2003-06-18 2007-09-13 アンブリック, インコーポレイテッド 集積回路開発システム
US20070186076A1 (en) * 2003-06-18 2007-08-09 Jones Anthony M Data pipeline transport system
JP4208919B2 (ja) * 2004-03-19 2009-01-14 アイピーフレックス株式会社 活性化コードの生成方法
JP4553614B2 (ja) * 2004-03-22 2010-09-29 三洋電機株式会社 処理装置
JP4553615B2 (ja) * 2004-03-22 2010-09-29 三洋電機株式会社 処理装置
JP4451733B2 (ja) 2004-06-30 2010-04-14 富士通マイクロエレクトロニクス株式会社 半導体装置
JP2006053687A (ja) * 2004-08-10 2006-02-23 Sony Corp 演算装置
US7765250B2 (en) 2004-11-15 2010-07-27 Renesas Technology Corp. Data processor with internal memory structure for processing stream data
EP1868293A1 (en) * 2005-04-05 2007-12-19 Matsushita Electric Industrial Co., Ltd. Computer system, data structure showing configuration information, and mapping device and method
US7415595B2 (en) 2005-05-24 2008-08-19 Coresonic Ab Data processing without processor core intervention by chain of accelerators selectively coupled by programmable interconnect network and to memory
JP4580879B2 (ja) * 2006-03-02 2010-11-17 富士通セミコンダクター株式会社 リコンフィグラブル回路
US8412862B2 (en) * 2008-12-18 2013-04-02 International Business Machines Corporation Direct memory access transfer efficiency
JP5745165B2 (ja) * 2011-05-17 2015-07-08 アルテラ コーポレイションAltera Corporation ハイブリッド統合型デバイスにおいてハードロジックとソフトロジックとの間をインターフェース接続するシステムおよび方法
US9647668B2 (en) 2012-01-13 2017-05-09 Altera Corporation Apparatus for flexible electronic interfaces and associated methods
US11200192B2 (en) 2015-02-13 2021-12-14 Amazon Technologies. lac. Multi-mode system on a chip
JP2022040721A (ja) * 2020-08-31 2022-03-11 富士フイルムビジネスイノベーション株式会社 情報処理装置、及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US41889A (en) * 1864-03-08 Improved tool-rest for turning-lathes
JPS647231A (en) * 1987-06-30 1989-01-11 Toshiba Corp Parallel processing device for object directional system
US5541849A (en) * 1990-04-06 1996-07-30 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters
US5457644A (en) * 1993-08-20 1995-10-10 Actel Corporation Field programmable digital signal processing array integrated circuit
JP3170599B2 (ja) 1996-03-01 2001-05-28 経済産業省産業技術総合研究所長 プログラマブルlsiおよびその演算方法
US6567837B1 (en) * 1997-01-29 2003-05-20 Iq Systems Object oriented processor arrays
US7085670B2 (en) * 1998-02-17 2006-08-01 National Instruments Corporation Reconfigurable measurement system utilizing a programmable hardware element and fixed hardware resources
WO2000049496A1 (en) 1999-02-15 2000-08-24 Koninklijke Philips Electronics N.V. Data processor with a configurable functional unit and method using such a data processor
US6542844B1 (en) * 2000-08-02 2003-04-01 International Business Machines Corporation Method and apparatus for tracing hardware states using dynamically reconfigurable test circuits

Also Published As

Publication number Publication date
KR100922411B1 (ko) 2009-10-16
US20040001296A1 (en) 2004-01-01
JP2004040188A (ja) 2004-02-05
CN1471153A (zh) 2004-01-28
US7716458B2 (en) 2010-05-11
JP3934493B2 (ja) 2007-06-20
CN100437975C (zh) 2008-11-26

Similar Documents

Publication Publication Date Title
KR100922411B1 (ko) 집적 회로 및 시스템 개발 방법
Shao et al. Simba: Scaling deep-learning inference with multi-chip-module-based architecture
US7657861B2 (en) Method and device for processing data
Baumgarte et al. PACT XPP—A self-reconfigurable data processing architecture
EP3710948B1 (en) Virtual fpga management and optimization system
Koch Partial reconfiguration on FPGAs: architectures, tools and applications
JP4104538B2 (ja) リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
US8346530B2 (en) Logic design modeling and interconnection
US7263602B2 (en) Programmable pipeline fabric utilizing partially global configuration buses
US20180101633A1 (en) Methods and apparatus for dynamically configuring soft processors on an integrated circuit
US20200142857A1 (en) High throughput processors
US10817309B2 (en) Runtime optimization of configurable hardware
Xiao et al. Fast linking of separately-compiled FPGA blocks without a NoC
EP3356966A1 (en) Interactive multi-step physical synthesis
WO2018114957A1 (en) Parallel processing on demand using partially dynamically reconfigurable fpga
WO2001073618A2 (en) Designer configurable multi-processor system
Wolinski et al. A polymorphous computing fabric
Rettkowski et al. Application-specific processing using high-level synthesis for networks-on-chip
Skliarova et al. Hardware/software co-design
WO2008061162A1 (en) Hybrid computing platform having fpga components with embedded processors
Alam et al. Role assignment in IoT through accelerated hardware
Ouni et al. Time partitioning framework for fully reconfigurable systems
Turčaník Computer architecture design with dynamic partial reconfiguration
Schwiegelshohn et al. Reconfigurable Processors and Multicore Architectures
Vallina et al. Multiprocessor and operating system design for signal processing on an FPGA

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120924

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130924

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee