KR100557518B1 - 시스템 대규모 집적 회로, 그 설계 방법, 및 그에 대한프로그램 - Google Patents

시스템 대규모 집적 회로, 그 설계 방법, 및 그에 대한프로그램 Download PDF

Info

Publication number
KR100557518B1
KR100557518B1 KR1020030034370A KR20030034370A KR100557518B1 KR 100557518 B1 KR100557518 B1 KR 100557518B1 KR 1020030034370 A KR1020030034370 A KR 1020030034370A KR 20030034370 A KR20030034370 A KR 20030034370A KR 100557518 B1 KR100557518 B1 KR 100557518B1
Authority
KR
South Korea
Prior art keywords
processor
dedicated
command
instruction
basic
Prior art date
Application number
KR1020030034370A
Other languages
English (en)
Other versions
KR20030094019A (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 KR20030094019A publication Critical patent/KR20030094019A/ko
Application granted granted Critical
Publication of KR100557518B1 publication Critical patent/KR100557518B1/ko

Links

Images

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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Executing Machine-Instructions (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)
  • Microcomputers (AREA)

Abstract

실시예에 따른 시스템 LSI(large scale integrated circuit)에서, 전용 명령 프로세서의 전원 관리 등은 기본 명령 프로세서에서 발행된 명령에 따라 고속으로 수행될 수 있다. 또한, 전용 명령 프로세서의 동작 상태는 기본 명령 프로세서에 의해 쉽게 얻을 수 있다. 이러한 시스템 LSI에서, 시스템 제어기(14)는 기본 명령 프로세서(11)에 의해 패치된 명령을 디코드 하고 디코더 출력을 생성하는 명령 디코더(16)를 포함한다. 이러한 디코더 출력은 전용 명령 프로세서(12)용 제 2의 전원 제어 유닛(51), 제 2의 클록 신호 생성 유닛(52), 제 2의 프로그램 카운터(53), 및 제 2의 조건 플래그(54)를 제어한다.
LSI, 시스템 제어기, 명령 프로세서

Description

시스템 대규모 집적 회로, 그 설계 방법, 및 그에 대한 프로그램 {SYSTEM LARGE SCALE INTEGRATED CIRCUIT(LSI), METHOD OF DESIGNING THE SAME, AND PROGRAM THEREFOR}
도 1은 다른 실시예에 따른 시스템 LSI 설계 방법을 수행할 수 있는 하나의 실시예에 따른 시스템 LSI용 시스템을 도시하는 블록도.
도 2는 실시예에 따른 시스템 LSI의 설계 방법을 나타내는 흐름도.
도 3은 도 2에 설명된 방법에 의해 얻어지는 프로세서의 구성을 도시하는 블록도.
도 4는 도 3에 도시된 것과 같은 프로세서의 동작의 일 예를 나타내는 타이밍도.
도 5는 도 3에 도시된 것과 같은 동작의 다른 예를 나타내는 타이밍도.
도 6은 시스템 LSI의 종래의 설계 방법의 순서를 나타내는 흐름도.
도 7은 도 6의 방법으로 설계된 종래의 프로세서의 구성을 나타내는 블록도.
♠도면의 주요 부호에 대한 부호의 설명♠
11 : 기본 명령 프로세서
12 : 전용 명령 프로세서
13 : 프로세서간 통신 버스
14 : 시스템 제어기
15 : 시스템 제어 유닛
40 : 기본 명령 프로세서 제어 유닛
50 : 전용 명령 프로세서 제어 유닛
41, 51 : 전원 제어 유닛
42, 52 : 클록 생성 유닛
43, 53 : 프로그램 카운터
44, 54 : 조건 플래그
45, 55 : 명령 패치 레지스터
46, 56 : 명령 디코더
발명의 배경
발명의 분야
본 발명은 시스템 대규모 집적 회로(LSI), 그 제조 방법 및 그에 대한 프로그램에 관한 것으로서, 특히, 동작 합성을 사용하는 소프트웨어/하드웨어 협조 설계 시스템으로 설계된 시스템 LSI, 그 제조 방법 및 그에 대한 프로그램에 관한 것이다.
종래의 기술
최근, 집적 회로는 하나의 칩 상에 소망의 시스템의 모든 필수 회로 기능을 구비할 수 있도록 구현된다. 이러한 집적 회로는 "SOC(System On a Chip)" 또는 "시스템 대규모 집적 회로(시스템 LSI)"로 일컬어진다. 반도체 제조 프로세스의 규모가 작아질수록, 시스템 LSI의 처리량(예를 들어, 프로세스 처리능력/속도)가 증가할 뿐만 아니라, 시스템 LIS상에 집적된 게이트의 수도 비약적으로 증가한다.
시스템 LSI는 화상 처리, 암호화/복호화 처리, 필터링 및/또는 인코딩/디코딩 프로세스를 포함하는 다양한 어플리케이션에 사용될 수 있다. 물론, 이러한 어플리케이션은 다양한 입출력 신호, 프로세스 알고리즘, 및 타이밍 요구 등을 포함할 수 있다. 또한, 시스템 LSI는 더욱 복잡한 프로세스를 더 고속의 처리 시간으로 처리할 수 있다. 이러한 이유로 인해, 최근의 시스템 LSI는 신호 처리 어플리케이션을 위해 사용되고 있다.
도 6은 종래의 소프트웨어/하드웨어 협조 설계 시스템을 나타내는 흐름도이다. 도 6의 흐름도는 알고리즘 기술(1; algorithm description)을 포함하는 협조 시스템을 나타낸다. 알고리즘 기술(1)은 예를 들어, C와 같은 범용 프로그램 언어와 같은 고급 언어의 형태로 설계된다. 알고리즘 기술(1)은 RTL 기술(7; register transfer level description)과 같은 하위 레벨 기술로 변환될 수 있는 전용 동작 레벨 기술 언어의 형태일 수도 있다. RTL 기술(7)은 레지스터와 같은 메모리 유닛 및 가산기와 같은 실행 처리부를 갖는 하드웨어 리소스를 구비하는 하드웨어로 구현될 수 있다.
시스템 LSI의 모든 기능은 알고리즘 기술(1)에서 동작 기술의 형태로 기술된 다. 시스템 LSI에 대한 처리 속도는 하드웨어에 구현된 설계 규모 대 소프트웨어에 구현된 설계 규모의 비율에 관련될 수 있다. 즉, 시스템 LSI의 대부분이 하드웨어로서 구현된다면, 처리 속도가 빨라질 수 있다. 그러나, 이러한 방법은 장치가 제조된 후 기능을 변경하기 어려워지는 등, 장치에 대한 융통성을 제한한다. 또한, 시스템 LSI의 대부분을 하드웨어로 구현하는 것은 장치의 규모를 크게 하고, 따라서 제조 비용이 높아지게 된다. 한편, 시스템 LSI의 대부분을 소프트웨어로서 구현하면, 장치의 기능적인 변경이 용이해지고 장치 규모가 소형화될 수 있다. 그러나, 소프트웨어는 본래 하드웨어보다 속도가 느리고, 그 결과, 시스템 LSI의 대부분이 하드웨어로 구현되는 것에 비해 처리 속도가 떨어지게 된다.
도 6에 도시된 바와 같이, 상기 제약조건으로 인해, 종래의 소프트웨어/하드웨어 협조 설계 시스템은 시스템 LSI 기능을 하드웨어적인 것과 소프트웨어적인 것으로 분할하였다(스텝 S201). 이러한 기능 분할은 회로 규모(예를 들어, 사이즈), 처리 시간 및 비용과 같은 것을 고려하여 이루어진다.
하드웨어 리소스가 처음부터 설계된다면, 개발 비용이 매우 높아지게 되고, 개발 시간이 매우 길어지게 된다. 이 때문에, 하드웨어적 요소는 하드웨어 IP(intellectual property)으로 구성된 하드웨어 "매크로"의 형태일 수 있다. 이러한 하드웨어 IP는 재사용 가능한 설계 요소로서 축적될 수 있고, 매우 뛰어난 품질의 IP로 표현될 수 있으며, 시스템 LSI 구조로 쉽게 편입될 수 있다.
도 6의 배치에서, 하드웨어는 일반적인 연산 동작을 수행하는 마이크로프로세서와 같은 기본 명령 프로세서(11), 및 입출력 신호의 처리와 같이 주어진 어플 리케이션에 따라 특정한 처리를 수행하는 전용 명령 프로세서(12)에 의해 설계될 수 있다. 일반적으로, 하드웨어 IP에서의 설계 프로세서는 기본 명령 프로세서(11)로서 사용될 수 있다. 따라서, 기본 명령 프로세서(11)는 시스템 LSI를 설계하는 그룹과는 상이한, 프로세서 설계를 전문으로 하는 그룹에 의해 생성된 RTL 형태로 설계될 수 있다. 이러한 기본 명령 프로세서(11)는 시뮬레이션용 기술(8a)과 함께 제공될 수도 있다.
기본 명령 프로세서(11)가 정해지면, 전용 명령 프로세서(12)의 설계가 이행된다. 전용 명령 프로세서(12)는, 기본 명령 프로세서(11)와 같이, RTL 설계에 의거하여 설계될 수 있다. 또한, 전용 명령 프로세서(12)는 동작 합성을 사용하여 설계될 수 있다. 동작 합성 설계에서, 전용 명령 프로세서(12)의 기능은 고급 언어의 형태로 기술될 수 있다(스텝 S202). 이러한 고급 표현으로부터, 동작 합성은 전용 명령 프로세서 RTL 기술(7b) 및 시뮬레이션용 프로세서의 기술(8b)을 얻을 수 있다(스텝 S203).
전용 명령 프로세서 RTL 기술(7b)이 일단 얻어지면, 이러한 기술은 전용 명령 프로세서(12)가 소정의 회로 규모(예를 들어, 사이즈) 제약 내에서 형성될 수 있는지 여부를 판단한다(스텝 S204). 소정의 회로 규모가 한도를 초과하면(NG), 프로세스는 스텝 S201로 돌아갈 수 있고, 시스템 LSI 설계 스텝을 반복한다. 한편, 회로 규모가 체크 결과가 만족(OK)일 때는, 시스템 LSI의 RTL 기술은 버스부 RTL 기술(7c)에 의해 서로 접속된 전용 명령 프로세서 RTL 기술(7b)과 기본 명령 프로세서 RTL 기술(7a)을 포함하도록 형성될 수 있다(스텝 S205). 기본 명령 프로세서 RTL 기술(7a)과 전용 명령 프로세서 RTL 기술(7b)은 아이템 11 및 12에 의해 도시된 바와 같이, 소정의 버스 인터페이스를 통해 서로 접속되도록 설계될 수 있다.
그리고, 소프트웨어 설계에서, 어플리케이션 프로그램(9) 및 장치 드라이버(17)가 고급 언어로 기술된다(스텝 S206). 장치 드라이버(17)는 전용 명령 프로세서(12)와 기본 명령 프로세서(11)를 구동할 수 있다. 어플리케이션 프로그램(9)과 장치 드라이버(17)는 어셈블러에 의해 기계어 명령 세트(10)로 변환되고 컴퍼일러에 의해 컴파일된다(스텝 S207).
시스템 LSI 설계 동작은 시뮬레이션된다. 특히, 기본 명령 프로세서, 전용 명령 프로세서 및 버스부(8a, 8b, 및 8c)의 시뮬레이션용 기술은 시뮬레이션용 기술(8)에 함께 결합될 수 있다. 기계어 명령 세트(10) 및 시뮬레이션용 결합 기술(8)은 명령 시뮬레이션될 수 있다. 이러한 방식으로, 소프트웨어 설계용 시뮬레이션은 시스템 LSI 구조와 동일한 환경하에서 수행될 수 있다(스텝 S208).
명령 세트 시뮬레이터에서, 하드웨어 및 소프트웨어를 시뮬레이션하여 소프트웨어와 하드웨어의 설계에 에러가 없는 것을 확인한다. 스텝 S208은 실제 사용되는 동안 시스템 LSI의 전력 소모 특성과 시간(속도) 성능을 측정하는 것을 포함한다. 이러한 성능 결과는 그들이 소정의 기준을 충족하는지를 체크할 수 있다(스텝 s209). 이러한 체크 결과가 기준에 충족하지 못하다는 것을 나타낸다면(NG), 프로세스는 스텝 S201로 돌아가서 기능 분할을 다시 수행한다. 한편, 이러한 체크 결과가 기준에 충족한다면(OK), 시스템 LSI의 설계가 완료된다. 그 후, 기본 명령 프로세서 RTL 기술(7a), 전용 명령 프로세서 RTL 기술(7b), 및 버스부 RTL 기술(7c)이 논리적으로 구성되어 시스템 LSI용 실제 게이트 구조를 형성한다.
도 7은 상기 종래의 설계법에 따라 얻어질 수 있는 시스템 LSI의 프로세서부의 구조를 도시한다. 종래의 프로세서부는 블록도로 도시되며, 기본 명령 프로세서(11), 전용 명령 프로세서(12), 프로세서간 통신 버스(13), 및 시스템 제어 유닛(15)을 포함한다. 기본 명령 프로세서(11)는 전원 제어 유닛(41), 클록 생성 유닛(42), 프로그램 카운터(43), 조건 플래그(44), 명령 패치 레지스터(45), 및 명령 디코더(46)를 포함할 수 있다. 유사하게, 전용 명령 프로세서(12)는 전원 제어 유닛(51), 클록 생성 유닛(52), 프로그램 카운터(53), 조건 플래그(54), 명령 패치 레지스터(55), 및 명령 디코더(56)를 포함할 수 있다.
기본 명령 프로세서(11) 및 전용 명령 프로세서(12)는 프로세서간 통신 버스(13)를 통해 서로 데이터를 송수신한다. 시스템 제어 유닛(15)은 전원 및 기본 클록 신호를 기본 명령 프로세서(11)와 전용 명령 프로세서(12)에 공급한다.
기본 명령 프로세서(11)에서, 전원 제어 유닛(41)은 시스템 제어 유닛(15)으로부터 입력된 전원을 수신할 수 있다. 전원 제어 유닛(41)은 ON-OFF 제어에 따라 기본 명령 프로세서(11)의 내부 회로에 전원을 공급하거나 공급하지 않을 수 있다. 클록 생성 유닛(42)은 시스템 제어 유닛(15)으로부터 입력된 기본 클록 신호에 따라 소정의 주파수의 클록 신호를 생성할 수 있다. 클록 생성 유닛(42)의 클록 신호는 기본 명령 프로세서(11)의 내부 회로에 공급된다. 프로그램 카운터(43)는 명령 패치 레지스터(45)가 명령을 판독할 때의 어드레스를 지정한다. 명령 패치 레지스터(45)는 프로그램 메모리(도시되지 않음)와 같은 기억 장치로부터 명령을 판독하 고, 디코딩을 위해 이러한 명령을 해독하고 실행한다. 명령 디코더(46)는 명령 패치 레지스터(45)를 참조하고, 패치된 명령을 디코드하여 명령을 수행한다.
상술한 바와 같이, 전용 명령 프로세서(12) 각 부분은 기본 명령 프로세서와 동일한 구성을 갖는다.
전용 명령 프로세서(12)는 필요에 따라 처리를 수행한다. 따라서, 전용 명령 프로세서(12) 기능이 필요하지 않으면, 전용 명령 프로세서(12)는 전력 소모가 낮은 스탠바이 모드로 들어갈 수 있다. 스탠바이 모드가 되면, 기본 명령 프로세서(11)의 명령 디코더(46)는 명령 패치 레지스터(45)를 참조하고, 패치된 명령을 디코드하여 명령을 수행한다. 이것은 전용 명령 프로세서(12)용 클록 신호와 전원이 정지된다는 것을 나타낸다. 기본 명령 프로세서(11)는 프로세서간 통신 버스(13)를 통해 전용 명령 프로세서(12)에 커맨드를 전송한다. 이러한 커맨드에 응하여, 전용 명령 프로세서(12)의 명령 디코더(56)는 명령 패치 레지스터(55)를 참조하고, 패치된 명령을 디코드하여 커맨드에 따라 명령을 수행한다. 전용 명령 프로세서(12)는 전원 제어 유닛(51)으로부터 전용 명령 프로세서(12)의 내부 회로로의 전원 공급을 중단하고, 클록 생성 유닛(52)으로부터 전용 명령 프로세서(12)의 내부 회로로의 클록 신호의 공급을 중단한다. 이러한 방식으로, 전용 명령 프로세서(12)가 스탠바이 모드가 될 수 있다.
전용 명령 프로세서(12)는 스탠바이 모드에서 데이터 처리를 수행할 수 있는 활성 모드로 전환할 수 있다. 활성 모드를 이행하면, 기본 명령 프로세서(11)는 활성 모드로의 변화를 나타내는 커맨드를 프로세서간 통신 버스(13)를 통해 전용 명 령 프로세서로 전송할 수 있다. 전용 명령 프로세서(12)는 동작 모드의 중지와 같은 부트스트랩에서 제 2의 전원 제어 유닛(51)과 제 2의 클록 생성 유닛(52)을 제어하여 활성 모드를 이행한다.
종래의 시스템 LSI에서, 상기 기본 명령 프로세서(11)로부터의 커맨드가 입력되면, 전용 명령 프로세서(12)는 전원 제어 유닛(51) 및 클록 생성 유닛(52)을 동작 모드에서 활성 모드 또는 스탠바이 모드로 이행시킬 수 있다. 따라서, 이러한 배치에서, 기본 명령 프로세서(11)는 전용 명령 프로세서(12)가 하나의 모드를 유지하는지(예를 들어, 스탠바이 또는 활성) 다른 모드로 변환되는지(예를 들어, 스탠바이 또는 활성)를 판정하기 위해 전용 명령 프로세서(12)의 동작 상태를 모니터한다. 이러한 정보에 응하여, 기본 명령 프로세서(11)가 커맨드를 발생한다.
이러한 종래 배치는 스탠바이 모드로 들어가기 위한 커맨드를 수신하여 스탠바이 모드가 실제로 실행되기 까지 시간이 많이 필요하다는 결함이 있다. 특히, 이러한 커맨드에 대응하는 명령을 디코드하고 대응 회로를 스탠바이 모드로 이행하도록 제어하기 위해 기본 명령 프로세서(11)와 전용 명령 프로세서(12)에 소정의 시간이 필요하며, 기본 명령 프로세서(11)가 프로세서간 통신 버스(13)를 통해 전용 명령 프로세서(12)로 커맨드를 전송하는데에 시간이 필요하게 되고, 이러한 시간 기간 동안, 전력이 소모된다.
이러한 결함과 관련된 특정 어플리케이션으로 휴대형 단말이 있다. 최근 휴대형 단말에서, 배터리 수명을 보전하는 것이 중요한 문제가 되어 전원 제어에 대한 요구가 빈번해졌다. 전원 제어를 실행한 횟수가 많다면( 모드가 스탠바이 모드 로 자주 전환된다면), 모드 전완 시간 동안의 전력 모소를 무시할 수 없게 된다. 따라서, 전원을 제어하는데 필요한 시간을 더 짧게 하기 위한 방법이 필요하다.
또한, 전원을 제어하기 위해 시간이 더 필요하다면, 전원의 정확한 제어가 곤란해지고, 시스템 LSI의 고속 동작에 장애가 된다.
또한, 시스템 LSI는, 기본 명령 프로세서(11)와 전용 명령 프로세서(12)가 상위 레벨 기술로 설계되도록 설계해야한다. 종래의 설계 방법은 이러한 것을 고려하지 않고 있어, 상위 레벨 기술로 설계된 양쪽의 프로세서를 사용하는 것이 곤란하다.
상술한 바와 같이, 종래보다 빠른 속도로 전용 명령 프로세서의 전원 관리가 수행될 수 있는 시스템 LSI를 제공할 필요가 있다. 특히, 기본 명령 프로세서가 전용 명령 프로세서의 상태를 쉽게 파악할 수 있고, 전원 관리용 커맨드를 발생하는 시스템 LSI를 제공하는 것이 바람직하다. 또한, 이러한 시스템 LSI를 설계하기 위한 방법 및 기록 매체상에 이에 대한 프로그램을 제공하는 것이 바람직하다.
본 발명의 목적은 더욱 향상된 시스템 LSI(large scale integrated circuit)를 제공하는 것이다.
본 발명의 다른 목적은 기본 명령 프로세서와 전용 명령 프로세서 사이에 향상된 시스템 제어기를 갖는 시스템 LSI를 제공하는 것이다.
본 발명의 또 다른 목적은 기본 명령 프로세서, 적어도 하나의 전용 명령 프로세서, 기본 명령 프로세서와 전용 명령 프로세서를 접속하는 버스, 및 기본 명령 프로세서와 적어도 하나의 전용 명령 프로세서를 제어하는 시스템 제어기를 포함하는 시스템 LSI를 제공하는 것이다. 시스템 제어기는 기본 명령 프로세서에 의해 패치된 명령을 디코드하여 적어도 하나의 전용 명령 프로세서의 동작을 제어하는 디코더를 포함할 수 있다. 이러한 제어는 전용 명령 프로세서에 결합된 각 유닛의 동작에 의해 수행된다. 예를 들어, 각 유닛은 적어도 하나의 전용 명령 프로세서에 결합된 전원 제어 유닛, 클록 신호 생성 유닛, 또는 프로그램 카운터를 의미한다.
상술한 시스템 LSI에서, 시스템 제어기는 기본 명령 프로세서에 주어지는 명령을 디코드하여 전용 명령 프로세서를 제어한다. 그 결과, 이러한 명령에 대응하여 전용 명령 프로세서의 클록 신호 및/또는 전원의 제어가 즉시 수행된다. 이로 인해, 시스템 LSI의 정확한 전원 관리가 가능하다.
실시예의 한 양상에 따르면, 시스템 제어기는 동작 조건 플래그에 따라 적어도 하나의 전용 명령 프로세서의 동작을 제어할 수 있다. 이러한 동작 조건 플래그는 적어도 하나의 전용 명령 프로세서의 동작 상태를 나타낼 수 있다. 이러한 배치에서, 전용 명령 프로세서의 상태는 시스템 제어기를 통해 확인될 수 있고, 기본 명령 프로세서로부터 전용 명령 프로세서의 동작을 쉽게 제어할 수 있다.
실시예의 다른 양상에 따르면, 시스템 제어기는 적어도 하나의 전용 명령 프로세서의 동작 상태를 나타내는 동작 조건 플래그에 따른 기본 명령 프로세서의 동작을 제어할 수 있다. 이러한 배치는 전용 명령 프로세서 동작이 완료된 직후 기본 명령 프로세서가 시작되고, 전용 명령 프로세서의 상태가 동작 조건 플래그로부터 쉽게 얻어지기 때문에 처리에 지연이 감소되거나 발생하지 않게 된다.
실시예의 다른 양상에 따르면, 시스템 제어기는 적어도 하나의 전용 명령 프로세서에 결합된 전원 제어 유닛, 클록 신호 생성 유닛, 프로그램 카운터, 및 동작 조건 플래그를 포함할 수 있다. 이러한 배치는 종래와는 달리 전용 명령 프로세서 내에 이러한 유닛들을 포함한다는 차이점을 갖는다. 또한, 이러한 배치는 유닛들이 기본 명령 프로세서로부터 나온 명령을 참조하거나 명령에 따라 직접 제어되도록 한다.
실시예의 다른 양상에 따르면, 시스템 제어기는 시스템 LSI의 전원을 제어할 수 있다. 특히, 시스템 제어기는 전용 명령 프로세서에 전원이 제공되는 시간, 전용 명령 프로세서에 대해 클록이 생성되는 시간, 및 전용 명령 프로세서에 결합된 프로그램 카운터가 카운트를 시작하는 시간을 제어할 수 있다. 이러한 배치에서, 시스템 LSI가 최초로 활성된 동안, 전원 및 클록 신호를 전용 명령 프로세서에 공급할 필요가 없다. 또한, 전용 명령 프로세서의 전원 관리는 시스템 제어기로부터의 커맨드에 의해 제어된다. 상기는 불필요한 전력 소모를 감소시킬 수 있다.
실시예의 다른 양상에 따르면, 시스템 제어기는 처리가 수행되는 활성 모드와 활성 모드보다 전력이 덜 소모되는 스탠바이 모드 사이의 전용 명령 프로세서 모드의 전환을 제어할 수 있다. 이러한 배치에서, 전용 명령 프로세서는 외부 소스로부터의 커맨드에 의존하는 종래의 배치에 비해 더 빠른 속도로 제어될 수 있다. 또한, 본 발명에 따르면, 저전력 스탠바이 모드를 제공할 수 있다. 예를 들어, 스탠바이 모드는 전원과 클록 신호가 OFF인 상태와, 다른 스탠바이 모드는 전원이 ON이고 클록 신호가 OFF인 상태를 포함할 수 있다. 물론 다른 변동도 가능하다.
실시예의 다른 양상에 따르면, 시스템 LSI는 복수의 전용 명령 프로세서를 포함한다. 또한, 시스템 제어기는 처리를 수행하는 활성 모드와 활성 모드보다 낮은 전력을 소모하는 스탠바이 모드 사이에서 각 전용 명령 프로세서 모드의 전환을 개별적으로 제어할 수 있다. 이러한 다중 전용 명령 프로세서의 개별적 제어는 종래보다 뛰어난 전원 관리의 제어가 가능하다.
본 발명은 시스템 LSI 설계 방법을 포함한다. 이러한 설계 방법은 알고리즘 레벨로 기본 명령 프로세서를 기술하고, 알고리즘 레벨로 적어도 하나의 전용 명령 프로세서를 기술하고, 알고리즘 레벨로 기본 명령 프로세서와 전용 명령 프로세서를 접속하는 버스를 기술하고, 기본 명령 프로세서와 적어도 하나의 전용 명령 프로세서를 제어하는 시스템 제어기를 알고리즘 레벨로 기술하는 것을 포함한다. 시스템 제어기의 기술은 기본 명령 프로세서에 의해 패치된 명령을 디코딩하여 적어도 하나의 전용 명령 프로세서의 동작을 제어하는 디코더의 기술을 포함한다. 이러한 제어는 적어도 하나의 전용 명령 프로세서에 결합된 전원 제어 유닛, 클록 신호 생성 유닛, 및 프로그램 카운터를 통해 수행된다. 또한, 상기 방법은 기본 명령 프로세서의 기술, 적어도 하나의 전용 명령 프로세서의 기술, 전체 기술을 형성하기 위한 시스템 제어기의 기술의 동작 조합을 포함한다.
기본 명령 프로세서, 전용 명령 프로세서, 버스, 및 시스템 제어기를 알고리즘 레벨로 기술함으로써, 시스템 제어기가 기본 명령 프로세서와 전용 명령 프로세서의 요구에 따라 유연하게 설계될 수 있다.
본 발명의 하나의 양상에 따르면, 기본 명령 프로세서의 기술을 제공하는 것 은 데이터베이스에 저장된 선행 프로세서 설계를 액세스하는 것을 포함한다. 또한, 시스템 제어기의 기술을 제공하는 것은 데이터베이스에 저장된 선행 시스템 제어기 설계의 적어도 일부를 액세스함으로써 상기 시스템 제어기의 기술의 적어도 제 1의 부분을 제공하는 것을 포함한다. 또한, 적어도 하나의 전용 명령 프로세서의 기술을 제공하는 것은 원하는 시스템 LSI 기능에 따라 적어도 하나의 전용 명령 프로세서의 상기 기술을 설계하는 것을 포함한다.
상기와 같은 배치에서, 기본 명령 프로세서와 시스템 제어기의 일부는 현재 IP(intellectual property)로부터 형성될 수 있지만, 시스템 제어기의 다른 부분 및 전용 명령 프로세서는 시스템 LSI 어플리케이션에 따라 설계될 수 있다. 이러한 배치는 설계 시간이 짧아질 수 있고, 시스템 LSI를 더욱 유연하게 설계할 수 있다.
실시예의 다른 양상에 따르면, 시스템 LSI 설계 방법은 소망의 시스템 LSI 기능에 따라 전용 명령 프로세서의 상기 기술을 설계함으로써 다수의 전용 명령 프로세서용 기술을 제공하는 것을 포함할 수 있다. 또한, 시스템 제어기의 기술을 제공하는 것은 각 전용 명령 프로세서의 기술에 따른 기술의 상기 일부를 설계함으로써 시스템 제어기의 기술의 적어도 제 2의 부분을 제공하는 것을 포함한다.
상기 배치에서, 선행 기본 명령 프로세서 및 하나 이상의 선행 전용 명령 프로세서를 포함하는 현재 시스템 LSI설계에 새로 설계된 전용 명령 프로세서가 더해질 수 있다.
실시예의 다른 양상에 따르면, 시스템 LSI 설계 방법은 기본 명령 프로세서, 적어도 하나의 전용 명령 프로세서, 버스 및 시스템 제어기에 대해 클록 레벨에서 시뮬레이션용 단일 기술을 형성하는 동작을 조합하는 것과 시뮬레이션용 기술과 시뮬레이션용 기술의 기본 명령 프로세서 및 전용 명령 프로세서에 의해 판독 가능한 기계어에 따라 시스템 LSI의 동작을 확인하는 것을 포함한다.
이러한 확인 단계는 시스템 LSI 하드웨어에 의해 소프트웨어가 수행되는 시스템 LSI의 검증을 가능하게 할 수 있다. 상기는 처리 시간 및 전력 소모 특성을 검증할 수 있게 하고, 시스템 LSI의 전체 검증을 용이하게 해준다.
실시예의 다른 양상에 따르면, 시스템 LSI 설계 방법은 기본 명령 프로세서, 전용 명령 프로세서, 및 시스템 제어기의 기술이 C 언어, C언어의 확장 언어, 및 객체 지향 언어에 의해 이루어지는 것이 바람직하다.
실시예의 또 다른 양상에 따르면, 시스템 LSI 설계 방법의 단계는 컴퓨팅 시스템에서 실행 가능한 컴퓨터-가독 매체에 구현된 컴퓨터 프로그램을 포함할 수 있다.
본 발명은 범용의 연산 동작을 수행하는 기본 명령 프로세서와 시스템 LSI의 어플리케이션에 의거하여 소정의 동작을 수행하는 적어도 하나의 전용 명령 프로세서 및 시스템 제어기를 포함하는 시스템 LSI를 포함할 수 있다. 시스템 제어기는 기본 명령 프로세서의 외부의 제어기 디코더를 구비하는 기본 명령 프로세서에 저장된 명령을 디코딩함으로써 전용 명령 프로세서의 동작 상태를 제어할 수 있다.
실시예의 하나의 양상에 따르면, 기본 명령 프로세서, 적어도 하나의 전용 명령 프로세서, 및 시스템 제어기는 RTL(register transfer language) 기술, 게이트 레벨 기술 또는 알고리즘 기술에 의해 이루어질 수 있다.
실시예의 또 다른 양상에 따르면, 시스템 제어기는 제어기 디코더를 포함할 수 있고, 기본 명령 프로세서는 제어기 디코더와 상이한 제 1의 명령 디코더를 포함한다. 또한, 전용 명령 프로세서는 제 1의 명령 디코더와 제어기 디코더와 상이한 제 2의 명령 디코더를 포함할 수 있다.
실시예의 또 다른 양상에 따르면, 시스템 LSI는 전용 명령 프로세서에 전원을 공급하는 전원 제어 유닛을 더 포함할 수 있다. 또한, 제어기 디코더는 전원 제어 유닛을 제어하는 디코더 출력을 제공한다.
실시예의 또 다른 양상에 따르면, 시스템 LSI는 전용 명령 프로세서용 클록 신호를 제공하는 클록 생성 유닛을 더 포함할 수 있다. 또한, 제어기 디코더는 클록 생성 유닛 제어를 제어하는 디코더 출력을 제공한다.
실시예의 또 다른 양상에 따르면, 시스템 LSI는 명령에 액세스하기 위한 전용 명령 프로세서용 프로그램 카운트값을 제공하는 프로그램 카운터를 더 포함할 수 있다. 또한, 제어기 디코더는 프로그램 카운터를 제어하는 디코더 출력을 제공한다.
실시예의 또 다른 양상에 따르면, 시스템 LSI는 전용 명령 프로세서의 동작 상태를 나타내는 조건 플래그를 더 포함할 수 있다. 이러한 동작 상태는 전용 명령 프로세서용 전원과 클록 신호가 둘 다 OFF, 전용 명령 프로세서용 전원이 ON이고 전용 명령 프로세서용 클록 신호가 OFF, 전용 명령 프로세서의 전원과 클록 신호 둘 다 ON, 제 1의 동작이 전용 명령 프로세서에 의해 수행, 제 2의 동작이 전용 명령 프로세서에 의해 수행, 및 전용 명령 프로세서의 동작이 일시 중단되는 것 중 하나일 수 있다.
본 발명을 첨부된 도면을 참조하고, 다양하고 특정한 실시예에 의거하여 이하에 상세히 설명한다.
도 1은 하나의 실시예에 따른 시스템 LSI의 설계 방법을 구현하기 위한 시스템의 일 예를 나타내는 블록도이다. 도 2는 실시예에 따른 시스템 LSI의 설계 방법을 나타내는 흐름도이다. 시스템 LSI의 설계 방법을 도 1 및 2를 참조하여 기재한다. 상기 방법은 종래의 방법과 같이, 동작 합성을 사용하는 소프트웨어/하드웨어 협조 설계 시스템이다.
도 1의 배치에서, 알고리즘 기술(1)은 C와 같은 범용 프로그램 언어 또는 전용 동작 레벨 기술 언어와 같은 고급 언어를 사용하여 시스템 LSI의 전 기능을 기술할 수 있다. 알고리즘 기술(1)에 의해 기술된 기능은 하드웨어부와 소프트웨어부로 나뉠 수 있다. 이러한 분할은 기능 명세의 변경 용이, 회로 규모(사이즈), 처리 속도 및/또는 전력 소모등을 고려하여 이루어질 수 있다(도 2의 스텝S1).
시스템 LSI의 하드웨어부의 설계에서, 프로세서의 기능은 고급 언어를 사용하여 설계될 수 있다. 시스템 LSI의 소프트웨어부의 설계에서, 어플리케이션 프로그램(9)은 시스템 LSI의 하드웨어부의 프로세서를 실행하기에 적합하도록 설계된다.
좀더 상세히, 하나의 실시예에 따라, 시스템 LSI의 하드웨어부 설계는 시스템 LSI의 명세에 따라 특정 처리를 수행하기 위해, 전용 명령 프로세서의 기능을 설계하는 것을 포함한다. 또한, 기본 명령 프로세서의 기능은 범용 프로세서를 수행하기 위해 시스템 LSI의 입출력부와 함께 설계될 수 있다(도 2의 스텝 S2).
기본 명령 프로세서 기술(2)은 조합의 형태로 라이브러리(도시되지 않음)로부터 원하는 기본 명령 기능만을 포함할 수 있다. 전용 명령 프로세서 기술(3)은 원하는 전용 명령 기능을 기술할 수 있다.
그리고, 종래의 방법과 대조하여, 시스템 제어기는 전원 관리 및 클록 신호 생성과 같은 기본 명령 프로세서와 전용 명령 프로세서의 기능을 제어하기 위해 정의될 수 있다(도 2의 스텝 S3). 시스템 제어기는 시스템 제어 유닛, 명령 디코더, 기본 명령 프로세서 제어 유닛, 및 전용 명령 프로세서 제어 유닛을 포함할 수 있다. 이러한 시스템 제어기 배치는 이후에 더욱 자세히 설명되고, 시스템 제어기 기술(5)에 의해 정의될 수 있다.
또한, 프로세서간 통신 인터페이스 기술(4)은 기본 명령 프로세서와 전용 명령 프로세서가 서로 정보를 전할 수 있는 버스를 정의할 수 있다.
기본 명령 프로세서 기술(2)과 전용 명령 프로세서 기술(3)은 프로세서간 통신 인터페이스 기술(4)을 통해 서로 접속될 수 있고, 시스템 제어기 기술(5)과 조합하여, 프로세서 기술(6)을 형성할 수 있다(도 2의 스텝 S4).
프로세서 기술(6)의 동작은 하드웨어화를 위해 채택된 RTL 기술(7)뿐만 아니라, 클록 사이클 레벨로 프로세서 기술(6)의 동작을 검증하기 위해 시뮬레이션용 기술(8)을 얻기 위해 서로 조합될 수 있다. 한편, 동작 합성이 기본 명령 프로세서 기술과 전용 명령 프로세서 기술과 함께 사용되어 이들 프로세서를 합성하고 하위 레벨 언어 기술을 형성한다.
이러한 동작 합성으로 인해 회로 규모(사이즈)가 리소스 규모 제한(NG)을 충족하지 못하면(스텝 S6), 프로세서는 스텝(S1)으로 돌아가 하드웨어부와 소프트웨어부로 기능이 분할된 곳에서부터 시스템 LSI를 다시 설계한다. 한편, 리소스 체크가 제한을 충족한다면(OK), 하드웨어 사이즈에 대해 시스템 LSI의 하드웨어부(예를 들어, 프로세서)의 구성이 정해진다.
하나의 실시예에 따른 시스템 LSI의 소프트웨어부의 설계에서, 어플리케이션 프로그램(9)은 시스템 LSI의 프로세서부에서 수행되기 위해 고급언어로 기술될 수 있다(스텝 S7). 어플리케이션 프로그램(9)의 컨텐츠가 정해지면, 어플리케이션 프로그램(9)은 어셈블러에 의해 어셈블링 및 컴파일러에 의해 컴파일링됨으로써 기계어 명령 세트(10)로 변환될 수 있다(스텝 S8). 기계어 명령 세트(10)는 프로세서에 의해 직접적으로 이해될 수 있다.
기계어 명령 세트(10)와 시뮬레이션용 기술(8)은 명령 세트 시뮬레이터에 적용되어(스텝 S9), 이 단계에서 설계에 에러가 존재하는지 여부가 확인된다.
명령 세트 시뮬레이터에서, 필요하다면, 프로세서 기술(6)과 어플리케이션 프로그램(9)이 디버깅된다. 또한, 시간(속도) 성능과 전력 소모 특성이 측정될 수 있다(도 2의 스텝 S10). 이러한 시간 성능과 전력 소모 특성은 소정의 제약에 대해 체크된다(도 2의 스텝 S11). 이러한 체크가 소정의 제한에 충족되지 않으면(NG), 처리는 스텝 S1로 돌아가 하드웨어부와 소프트웨어부로 기능이 나위어진 부분에서 시스템 LSI를 다시 설계한다. 한편, 이러한 체크가 소정의 제한에 충족되면(OK), 시스템 LSI의 프로세스를 계속하기 위해 어플리케이션 프로그램 및 프로세서의 구성이 결정된다. 본 발명의 설계 방법은 동작 합성이 기본 명령 프로세서 기술과 전용 명령 프로세서 기술과 함께 사용되어 프로세서를 합성한다는 특징을 갖는다.
당업자는 RTL 기술(7), 시뮬레이션용 기술(8)이 기계 판독가능 매체에서 데이터로서 구현될 수 있는지를 인지한다. 또한, 어플리케이션 프로그램(9), 기계어 명령 세트(10) 또는 도 2에 도시된 방법 중 어떤 것은 기계 판독가능 매체에서 컴퓨터 프로그램으로서 수행될 수 있다.
도 3을 참조하면, 도 2의 방법에 따라 얻어지는 프로세서 구성의 일 예를 블록도로 설명한다. 이러한 프로세서는 기본 명령 프로세서(11), 전용 명령 프로세서(12), 프로세서간 통신 버스(13), 및 시스템 제어기를 포함할 수 있다. 시스템 제어기(14)는 시스템 제어 유닛(15), 명령 디코더(16), 기본 명령 프로세서 제어 유닛(40), 및 전용 명령 프로세서 제어 유닛(50)을 포함할 수 있다.
당업자는 도 3과 같은 프로세서 구성이 시스템 LSI의 일부를 형성하더라도, 이러한 프로세서 구성이 기계 판독가능 매체에서도 데이터로서 구현될 수 있도록 한다.
기본 명령 프로세서(11)는 제 1의 패치 레지스터(45)와 제 1의 명령 디코더(46)를 포함할 수 있다. 전용 명령 프로세서(12)는 제 2의 명령 패치 레지스터(55)와 제 2의 명령 디코더(56)를 포함할 수 있다. 기본 명령 프로세서(11)와 전용 명령 프로세서(12)는 프로세서간 통신 버스(13)를 통해 서로간에 데이터를 전송할 수 있다. 통신 대역과 동시에 액세스 가능한 데이터의 수와 같은 프로세서간 통 신 버스(13)의 특징은 기본 명령 프로세서 기술(2)과 전용 명령 프로세서 기술(3)에 의거하여 프로세서간 통신 인터페이스 기술(4)에 의해 결정될 수 있다.
시스템 제어기(14) 내에, 시스템 제어 유닛(15)은 입력으로서 전원과 기본 클록 신호를 수신한다. 또한, 명령 디코더(16)는 전용 명령 프로세서 제어 유닛(50)을 제어할 수 있다. 특히, 명령 디코더(16)는 제 1의 명령 패치 레지스터(45) 내의 명령을 참조한다. 이러한 명령이 전용 명령 프로세서(12)의 제어를 나타내는 것이면, 명령 디코더(16)는 이러한 명령을 디코드한다.
기본 명령 프로세서 제어 유닛(40)은 제 1의 전원 제어 유닛(41), 제 1의 클록 생성 유닛(42), 제 1의 프로그램 카운터(43), 및 제 1의 조건 플래그(44)를 포함할 수 있다. 마찬가지로, 전용 명령 프로세서 제어 유닛(50)은 제 2의 전원 제어 유닛(51), 제 2의 클록 생성 유닛(52), 제 2의 프로그램 카운터(53), 및 제 2의 조건 플래그(54)를 포함할 수 있다.
전원 제어 유닛(41 및 51)은 기본 명령 프로세서(11)와 전용 명령 프로세서(12)에 적합한 전원 전압을 제공한다. 유사하게, 제 1 및 제 2의 클록 생성 유닛(42 및 52)은 기본 명령 프로세서(11)과 전용 명령 프로세서(12) 각각에 적합한 클록 신호를 공급한다.
제 1 및 제 2의 프로그램 카운터(43 및 53)는 명령 패치 레지스터가 명령을 판독하는 어드레스를 지정할 수 있고, 카운트에 의해 프로세서가 명령을 수행한다. 제 1의 프로그램 카운터(43)는 기본 명령 프로세서(11)에 대한 기능을 제공하고, 제 2의 프로그램 카운터(53)는 전용 명령 프로세서(12)에 대한 기능을 제공한다. 제 1 및 제 2의 조건 플래그(44 및 54)는 기본 명령 프로세서(11)과 전용 명령 프로세서(12)의 내부 상태를 각각 설정할 수 있다. 프로그램 카운터(43 및 53)의 비트폭과 조건 플래그(44 및 54)에 설정된 상태의 수는 기본 명령 프로세서 기술(2)과 전용 명령 프로세서의 기술(3)에 의거하여 시스템 제어기 기술(5)에 따라 결정될 수 있다.
도 4 및 5를 참조하면, 도 3에 도시된 것과 같은 프로세서의 동작을 나타내는 타이밍도가 설명된다. 하나의 실시예에 따른 시스템 LSI의 동작은 도 3 내지 5를 참조하여 설명된다. 이하의 기재에 따르면, 조건 플래그(44 및 54)는 다음 프로세서 상태로 표현된다.
Figure 112003019278127-pat00001
도 4의 예는 하나의 실시예에 따라 활성된 시스템 LSI를 나타낸다. 시스템 LSI가 활성화된 후, 전용 명령 프로세서(12)가 명령에 따라 스탠바이 모드에서 활성모드로 전환된다. 그러나, 종래와는 달리, 이러한 명령은 시스템 제어기(14)의 명령 디코더(16)에 의해 디코드된다.
도 4의 특정 예에서, 제 1의 프로그램 카운터(43)의 컨텐츠가 "4"이면, 명령 디코더(16)는 전용 명령 프로세서(12)의 전원이 OFF상태인 것을 확인하는 명령을 발생하고, 제 1의 프로그램 카운터(43)가 "6"이면, 명령 디코더(16)는 전용 명령 프로세서(12)의 전원이 ON되는 명령을 발생한다. 또한, 제 1의 프로그램 카운터(43)가 "7"이면, 명령 디코더(16)는 전용 명령 프로세서(12)에 대한 클록이 이 ON되는 명령을 발생한다. 또한, 제 1의 프로그램 카운터(43)가 "8"이면, 명령 디코더(16)는 전용 명령 프로세서(12)가 처리 동작을 시작하도록 지시한다.
도 4를 참조하면, 시간(t1)에서 시스템 LSI를 활성화하고, 시스템 제어 유닛(51)에 전원을 공급한다. 시스템 제어 유닛(15)에 공급된 전력은 즉시 기본 명령 프로세서 제어 유닛(40)의 제 1의 전원 제어 유닛(41)을 통해 기본 명령 프로세서(11)로 공급될 수 있다.
시간(t2)에서, 시스템 제어 유닛(15)에 공급된 기본 클록은 안정 상태가 될 수 있다. 이러한 기본 클록으로부터, 제 1의 클록 생성 유닛(42)은 기본 명령 프로세서(11)에 클록을 공급할 수 있다. 이러한 클록은 기본 클록과 동일한 주파수 및/또는 듀티 사이클을 가질 수 있다.
시간(t1 및 t2)동안, 전용 명령 프로세서(12)는 명령 디코더(16)에 의해 활성화될 때까지 전용 명령 프로세서(12)에 클록신호와 전원이 공급되지 않는 스탠바이 모드를 유지할 수 있다.
기본 명령 프로세서(11)가 안정적인 전원과 클록 신호를 수신하면, 시스템 제어기(14)내에서, 제 1의 조건 플래그(44)가 "2"로 설정될 수 있다(표 1). 그 결과, 제 1의 프로그램 카운터(43)가 진행을 시작한다. 제 1의 명령 패치 레지스터(45)는 제 1의 프로그램 카운터(43)에 의거하여 프로그램 메모리로부터 명령을 판독할 수 있고, 제 1의 명령 패치 레지스터(45)에 이러한 명령을 저장한다. 프로그램 메모리로부터 패치된 명령이 기본 명령 프로세서(11)에 대한 것이면, 명령은 기본 명령 프로세서(11)의 제 1의 명령 디코더(46)에 의해 디코드된다. 그러나, 프로그램 메모리로부터 패치된 명령이 전용 명령 프로세서 제어 유닛(50)을 제어하는 것이면, 명령은 시스템 제어기(14)의 명령 디코더(16)에 의해 디코드된다.
도 3 및 5와 함께 도 4의 예를 참조하면, 제 1의 프로그램 카운터(43)의 컨텐츠가 "4"이면, 명령 디코더(16)는 전용 명령 프로세서(12)에 공급되지 않는 클록 신호와 전원을 확인(제 2의 조건 플래그(54)가 "0"인지 확인-표 1)하기 위해 제 2의 조건 플래그(54)를 검증하는 명령을 발생한다.
제 1의 프로그램 카운터(43)의 컨텐츠가 "6"이면, 명령 디코더(16)는 제 2의 전원 제어 유닛(51)에 명령을 내려 전용 명령 프로세서(12)에 전원을 ON시킨다. 제 2의 조건 플래그(54)의 컨텐츠가 "1"이 될 때까지(전원이 ON 상태 및 안정된 상태인 것을 나타냄- 표 1), 제 1의 프로그램 카운터(43)는 카운트-업 동작을 중단할 수 있고, 따라서, 전용 명령 프로세서의 전원이 확립되는 것을 기다린다.
시간(t3)에서, 제 2의 전원 제어 유닛(51)으로부터 전원이 안정되고, 따라서, 제 2의 조건 플래그(54)가 "1"이 되고, 제 1의 프로그램 카운터(43)에 의해 카운트업이 재-시작될 수 있다. 제 1의 프로그램 카운터(43)의 컨텐츠가 "7"이 되면, 명령 디코더(16)는 제 2의 클록 생성 유닛(52)에 전용 명령 프로세서(12)로 클록 신호를 공급하도록 명령한다. 제 2의 조건 플래그(54)의 컨텐츠가 "2"가 될 때까지(전원과 클록신호가 ON이고 안정된 것을 나타냄-표 1), 제 1의 프로그램 카운터(43)는 카운트-업 동작을 한 번 더 중단하고, 전용 명령 프로세서(12)의 전원과 클록 신호가 확립되는 것을 기다린다.
도 4의 예에서, 전용 명령 프로세서(12)에 공급된 클록 신호는 시스템 제어 유닛(15)에 입력되는 기본 클록 신호를 2분주(分周)하는 주파수에 의해 얻어질 수 있다.
시간(t4)에서, 전용 명령 프로세서(12)용 클록 신호가 안정되면, 제 2의 조건 플래그(54)의 컨텐츠가 "2"가 된다. 그 결과, 제 1의 프로그램 카운터(43)가 카운트-업 동작을 재개한다. 제 1의 프로그램 카운터(43)의 컨텐츠가 "8"이면, 명령 디코더(16)는 제 2의 프로그램 카운터(53)가 카운트-업 동작을 시작할 수 있는 특정 초기 어드레스를 지정한다. 전용 명령 프로세서(12)는 제 2의 프로그램 카운터(53)의 진행에 맞추어서 제 2의 명령 패치 레지스터(55)로부터 명령을 판독할 수 있다. 이러한 명령은 제 2의 명령 디코더(56)에 의해 디코딩되어 명령을 실행한다. 도 4의 예에서, 기본 명령 프로세서(11)는 제 1의 프로그램 카운터(43)의 카운트-업 동작을 지속하여 전용 명령 프로세서(12)와 독립적으로 처리를 수행한다.
도 3 내지 5의 실시예에서, 시스템 제어기(14)의 명령 디코더(16)는 기본 명령 프로세서(11)의 제 1의 명령 패치 레지스터(45)의 컨텐츠를 참조하여 명령을 디코드한다. 한편, 전용 명령 프로세서(12)는 기본 명령 프로세서(11)에 내려진 명령에 따라 제어될 수 있다. 이 때문에, 실시예의 시스템 LSI에서, 기본 명령 프로세 서(11)가, 클록 사이클 레벨로 전용 명령 프로세서(12)를 직접적으로 제어하는 것과 동등하게 되고, 그 결과, 전용 명령 프로세서(12)의 동작 모드를 전환하는 데 필요한 클록 사이클의 수가 감소될 수 있고, 시스템 LSI가 종래에 비해 전력 소비가 낮아지게 된다. 또한, 종래에 비해 프로세서의 전원 관리를 행하는 소프트웨어의 개발이 용이하게 된다.
도 5를 참조하면, 기본 명령 프로세서(11)는 전용 명령 프로세서(12)에 동작 "A"의 시작 및 전용 명령 프로세서(12)의 동작의 정지를 지시한다.
도 3과 함께 도 5를 참조하면, 제 1의 프로그램 카운터(43)의 컨텐츠가 "3"이면, 기본 명령 프로세서(11)는(명령 디코더(16)의 동작에 의해) 전용 명령 프로세서(12)에 동작 "A"의 시작을 지시한다. 제 1의 프로그램 카운터(43)의 컨텐츠가 "5"이면, 동작 "A"의 완료를 확인한다.
제 1의 프로그램 카운터(43)의 컨텐츠가 "9"이면, 기본 명령 프로세서(11)는 전용 명령 프로세서(12)가 동작을 보류하도록 지시한다. 또한, 제 1의 프로그램 카운터(43)의 컨텐츠가 "13"이면, 기본 명령 프로세서(11)는 전용 명령 프로세서(12)가 동작을 정지(동작 초기화)하도록 지시한다.
도 5를 참조하면, 시간(t5)에서, 명령 디코더(16)는 전용 명령 프로세서(12)가 동작 "A"를 시작하도록 지시하고 제 2의 프로그램 카운터(53)의 카운트-업 동작을 시작하도록 지시한다. 또한, 제 2의 조건 플래그(54)가 "3"으로 설정될 수 있다. 기본 명령 프로세서(11)내에서, 제 1의 프로그램 카운터(43)는
전용 명령 프로세서(12)가 동작"A"를 완료할 때까지 카운트 "4" 내지 "6"의 루프를 반복한다. 이러한 방식으로, 기본 명령 프로세서(11)는 동작"A"를 완료를 기다린다.
제 2의 프로그램 카운터(53)의 컨텐츠가 "3"이면, 전용 명령 프로세서(12)는 동작"A"를 완료하고, 다른 동작"B"의 실행을 시작한다. 또한, 제 2의 조건 플래그(54)는 "4"로 설정된다(표 1).
시간(t6)에서, 기본 명령 프로세서(11)는 동작"A"의 완료를 확인하고 "4"에서 "6"의 루프에서 벗어나, 제 1의 프로그램 카운터(43)를 "7"로 진행한다. 그 결과, 새로운 명령에 대응하여, 명령 디코더(16)는 시간(t7)에서 제 2의 프로그램 카운터(53)의 카운트-업을 정지하고, 전용 명령 프로세서(12)에 동작"B"를 보류하도록 지시하며, 제 2의 조건 플래그(54)를 "5"로 설정한다.
시간(t8)에서, 명령 디코더(16)에 의해 디코드된 명령은 제 2의 프로그램 카운터(53)의 컨텐츠를 "0"으로 하고, 전용 명령 프로세서의 동작을 리셋(초기화)한다. 또한, 제 2의 조건 플래그(54)는 "2"로 설정된다.
도 5의 예에서, 시스템 제어기(14)는 전용 명령 프로세서(12)의 상태를 직접 파악하고, 기본 명령 프로세서(11)는 전용 명령 프로세서(12)의 상태를 직접 파악한다. 또한, 실시예에 따른 시스템 LSI에서, 기본 명령 프로세서(12)는 제 2의 조건 플래그(54)의 상태를 적절히 설정하고 파악한다. 또한, 시스템 제어기(14)는 제 2의 프로그램 카운터(53)의 진행을 정지시켜 전용 명령 프로세서(12)가 보류 상태가 되도록 한다.
본 발명에 따른 시스템 LSI의 시스템 제어기(14)는 설계하는 시스템 LSI 마 다에, 전용 명령 프로세서(12)를 제어하는 명령 구성이나, 제 2의 조건 플래그(54)의 설정 등을 결정하고, 유연한 구성으로 할 수 있다.
도1을 참조하면, 본 발명의 실시예에 따른 시스템 LSI가 설계될 때, 기본 명령 프로세서 기술(2), 프로세서간 통신 인터페이스 기술(4), 및 시스템 제어기 기술(5)을 미리 모델로 형성한다. 전용 명령 프로세서 기술(3)을 이 모델에 추가하여 프로세서 기술(6)을 얻을 수 있다. 예를 들어, 모델이 다양하면, 하나의 모델을 선택하여 전용 명령 프로세서 기술(3)과 조합함으로써, 프로세서 기술(6)에 도달하고, 이러한 방법으로 시스템 LSI의 프로세서 설계에 필요한 시간이 단축될 수 있다.
또한, 전용 명령 프로세서 기술(3)이 선택되면, 전용 명령 프로세서 기술(3)에 대한 리소스, 제어 방법 등을 고려하여야 한다. 이러한 고려에서, 프로세서간 통신 인터페이스 기술(4) 및/또는 시스템 제어기 기술(5)이 변경된다. 이러한 변경은 정정 및/또는 부가적인 기술 정보를 포함한다.
또한 상기 실시예가 하나의 기본 명령 프로세서(11)와 하나의 전용 명령 프로세서(12)를 포함하는 것을 나타내지만, 본 발명은 하나의 기본 명령 프로세서와 다수의 전용 명령 프로세서를 조합시킬 수도 있다. 이러한 경우에, 시스템 제어기(14)는 서로 상이한 전용 명령 프로세서에 대응하는 전용 명령 프로세서 제어 유닛(50)을 포함할 수 있다. 각 전용 명령 프로세서 제어 유닛은 전용 명령 프로세서에 대응하는 다양한 제어 동작을 수행할 수 있다.
이러한 제어 동작은 전원, 클록 및/또는 주파수를 제어하는 것, 및/또는 조 건 플래그를 확립하는 것을 포함한다.
본 발명에 따른 다중 전용 명령 프로세서를 갖는 시스템 LSI에서, 기본 명령 프로세서는 명령 디코더(16)의 동작에 의해 각 전용 명령 프로세서를 개별적으로 제어할 수 있다. 예를 들어, 기본 명령 프로세서는 어떤(하나 이상) 전용 명령 프로세서에는 스탠바이(보류) 모드를 지시하고, 다른(하나이상) 전용 명령 프로세서에는 활성 모드를 지시할 수 있다. 또한, 기본 명령 프로세서는 어느 전용 명령 프로세서(11)에는, 전원 및 클록 신호가 공급되지 않는 대기 모드를 지시하고, 다른 전용 명령 프로세서에는, 전원을 공급하고, 클록 신호를 공급하지 않는 대기 모드를 지시할 수도 있다(표 1, 조건 플래그 "0" 및 "1").
상술한 바와 같이, 본 발명에 따른 시스템 LSI, 시스템 LSI의 설계 방법 및 기록 매체에서, 시스템 제어기는 전용 명령 프로세서를 직접 제어할 수 있다. 따라서, LSI에 대한 처리는 기본 명령 프로세서가, 클록 사이클 레벨로 전용 명령 프로세서를 직접 제어하는 것과 동등하게 된다. 이 때문에, 전용 명령 프로세서의 동작 상태 확인에 요하는 시간을 단축할 수 있고, 종래에 비해 시스템 LSI가 저소비 전력으로 실현된다.
이상, 본 발명을 그 알맞은 실시 형태 예에 의거하여 설명했지만, 본 발명의 시스템 LSI, 시스템 LSI의 설계 방법 및 기록 매체는, 상기 실시예에만 한정되는 것이 아니고, 상기 실시 형태 예의 구성으로부터 여러 가지 수정 및 변경을 가한 시스템 LSI, 시스템 LSI의 설계 방법 및 기록 매체도, 본 발명의 범위에 포함된다. 예를 들면, 상기 실시 형태 예에서 설계한 프로세서에, 종래의 설계 방법으로 설계한 특정 처리를 행하는 전용 하드웨어를 추가할 수도 있다.

Claims (33)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 시스템 LSI에 있어서,
    제1의 명령 패치 레지스터 및 상기 제1의 명령 패치 레지스터에서 패치된 명령을 디코딩하는 제1의 명령 디코더를 구비하는 기본 명령 프로세서와,
    제2의 명령 패치 레지스터 및 상기 제2의 명령 패치 레지스터에서 패치된 명령을 디코딩하는 제2의 명령 디코더를 구비하고, 상기 기본 명령 프로세서의 상기 제1의 명령 패치 레지스터에 패치된 동작 제어 명령에 응답하여 스탠바이 모드와 활성 모드 중의 하나로 들어가는 전용 명령 프로세서와,
    정보를 전송하기 위해, 상기 기본 명령 프로세서와 상기 전용 명령 프로세서 사이에 결합된 버스와,
    상기 제1의 명령 패치 레지스터에서 패치된 상기 동작 제어 명령을 디코딩하기 위해 상기 기본 명령 프로세서의 상기 제1의 명령 패치 레지스터에 결합된 제3의 명령 디코더와, 상기 제3의 명령 디코더로부터 디코딩된 출력에 응답하여 상기 전용 명령 프로세서를 상기 스탠바이 모드와 상기 활성 모드 중의 하나로 들어가게 하기 위해 상기 전용 명령 프로세서에 결합된 제어 유닛을 구비하는 시스템 제어기를 포함하는 것을 특징으로 하는 시스템 LSI.
  22. 제 21항에 있어서,
    상기 시스템 제어기의 상기 제어 유닛은 상기 디코딩된 출력에 응답하여 상기 전용 명령 프로세서에 대한 전원 공급을 제어하는 전원 제어 유닛을 포함하는 것을 특징으로 하는 시스템 LSI.
  23. 제 21항에 있어서,
    상기 시스템 제어기의 상기 제어 유닛은 상기 디코딩된 출력에 응답하여 상기 전용 명령 프로세서에 대한 클록 공급을 제어하는 클록 생성 유닛을 포함하는 것을 특징으로 하는 시스템 LSI.
  24. 제 21항에 있어서,
    상기 시스템 제어기의 상기 제어 유닛은 상기 디코딩된 출력에 응답하여 상기 전용 명령 프로세서에 대한 전원 공급을 제어하는 전원 제어 유닛과, 상기 디코딩된 출력에 응답하여 상기 전용 명령 프로세서에 대한 클록 공급을 제어하는 클록 생성 유닛을 포함하는 것을 특징으로 하는 시스템 LSI.
  25. 제 21항에 있어서,
    상기 시스템 제어기의 상기 제어 유닛은 상기 전용 명령 프로세서의 동작 상태를 나타내는 조건 플래그를 더 포함하는 것을 특징으로 하는 시스템 LSI.
  26. 제 21항 내지 제 25항 중 어느 한 항에 있어서,
    상기 시스템 제어기의 상기 제어 유닛은 상기 제2의 명령 패치 레지스터에서 패치된 명령을 지정하기 위해 상기 디코딩된 출력에 응답하는 프로그램 카운터를 더 포함하는 것을 특징으로 하는 시스템 LSI.
  27. 제 24항에 있어서,
    상기 제어 유닛은 상기 기본 명령 프로세서에 대해 전용되는 추가 전원 제어 유닛 및 추가 클록 생성 유닛을 더 포함하는 것을 특징으로 하는 시스템 LSI.
  28. 제 27항에 있어서,
    상기 제어 유닛은 상기 기본 명령 프로세서에 대해 전용되는 추가 프로그램 카운터를 더 포함하는 것을 특징으로 하는 시스템 LSI.
  29. 제 26항에 있어서,
    상기 제어 유닛은 상기 기본 명령 프로세서의 동작 상태를 나타내는 조건 플래그를 더 포함하는 것을 특징으로 하는 시스템 LSI.
  30. 기본 명령 프로세서에 버스를 경유하여 결합된 전용 명령 프로세서를 스탠바이 모드와 활성 모드 중의 하나로 들어가게 하는 제어 방법에 있어서,
    상기 전용 명령 프로세서의 동작 모드를 제어하는 동작 제어 명령을 상기 기본 명령 프로세서에서 패치하는 스텝과,
    상기 기본 명령 프로세서와 상기 전용 명령 프로세서의 명령 디코더와는 독립적으로 제공된 제3의 명령 디코더에 의해 상기 동작 제어 명령을 디코딩하는 스텝과,
    상기 제3의 명령 디코더로부터의 디코딩된 출력에 응답하여, 상기 스탠바이 모드와 상기 활성 모드 중의 하나로 상기 전용 명령 프로세서를 들어가게 하는 스텝을 포함하는 것을 특징으로 하는 전용 명령 프로세서 제어 방법.
  31. 제 30항에 있어서,
    상기 전용 명령 프로세서는 상기 전용 명령 프로세서에 대한 전원 공급을 제어함에 의해 상기 스탠바이 모드와 상기 활성 모드 중의 하나로 들어가는 것을 특징으로 하는 전용 명령 프로세서 제어 방법.
  32. 제 30항에 있어서,
    상기 전용 명령 프로세서는 상기 전용 명령 프로세서에 대한 클록 공급을 제어함에 의해 상기 스탠바이 모드와 상기 활성 모드 중의 하나로 들어가는 것을 특징으로 하는 전용 명령 프로세서 제어 방법.
  33. 제 30항에 있어서,
    상기 전용 명령 프로세서는 상기 전용 명령 프로세서에 대한 전원 공급 및 클록 공급을 제어함에 의해 상기 스탠바이 모드와 상기 활성 모드 중의 하나로 들어가는 것을 특징으로 하는 전용 명령 프로세서 제어 방법.
KR1020030034370A 2002-05-30 2003-05-29 시스템 대규모 집적 회로, 그 설계 방법, 및 그에 대한프로그램 KR100557518B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2002-00157469 2002-05-30
JP2002157469A JP3776058B2 (ja) 2002-05-30 2002-05-30 システムlsi、システムlsiの設計方法、及び、記録媒体

Publications (2)

Publication Number Publication Date
KR20030094019A KR20030094019A (ko) 2003-12-11
KR100557518B1 true KR100557518B1 (ko) 2006-03-03

Family

ID=29561517

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030034370A KR100557518B1 (ko) 2002-05-30 2003-05-29 시스템 대규모 집적 회로, 그 설계 방법, 및 그에 대한프로그램

Country Status (5)

Country Link
US (1) US7124311B2 (ko)
EP (2) EP1507222A1 (ko)
JP (1) JP3776058B2 (ko)
KR (1) KR100557518B1 (ko)
DE (1) DE60311186T8 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005157849A (ja) * 2003-11-27 2005-06-16 Toshiba Corp システムlsi設計装置、システムlsi設計用処理プログラム、及び整合性検証方法
JP2005242569A (ja) * 2004-02-25 2005-09-08 Fujitsu Ltd データ処理装置設計方法、データ処理装置設計装置及びプログラム
FR3026869B1 (fr) * 2014-10-07 2016-10-28 Sagem Defense Securite Systeme embarque sur puce a haute surete de fonctionnement
WO2017119123A1 (ja) * 2016-01-08 2017-07-13 三菱電機株式会社 プロセッサ合成装置、プロセッサ合成方法及びプロセッサ合成プログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6145354A (ja) * 1984-08-10 1986-03-05 Nec Corp マイクロプロセツサ
JPS63247861A (ja) 1987-04-02 1988-10-14 Hitachi Ltd コプロセツサ制御方法
US5204957A (en) * 1988-08-19 1993-04-20 Motorola Integrated circuit timer with multiple channels and dedicated service processor
JPH04175974A (ja) 1990-11-09 1992-06-23 Hitachi Ltd コプロセッサ論理回路自動生成方法
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5392437A (en) * 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US5493683A (en) * 1992-12-29 1996-02-20 Intel Corporation Register for identifying processor characteristics
US5724599A (en) * 1994-03-08 1998-03-03 Texas Instrument Incorporated Message passing and blast interrupt from processor
US5666537A (en) * 1994-08-12 1997-09-09 Intel Corporation Power down scheme for idle processor components
JPH09138716A (ja) 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
GB2323188B (en) * 1997-03-14 2002-02-06 Nokia Mobile Phones Ltd Enabling and disabling clocking signals to elements
JP2000235489A (ja) 1999-02-15 2000-08-29 Hitachi Ltd プロセッサ
US6438700B1 (en) * 1999-05-18 2002-08-20 Koninklijke Philips Electronics N.V. System and method to reduce power consumption in advanced RISC machine (ARM) based systems
US20020010848A1 (en) * 2000-05-29 2002-01-24 Shoichi Kamano Data processing system
JP2001344287A (ja) * 2000-06-02 2001-12-14 Nec Microsystems Ltd アルゴリズム記述におけるバスの性能評価方法
JP3904861B2 (ja) * 2000-08-21 2007-04-11 株式会社ソニー・コンピュータエンタテインメント 画像処理方法及び装置、コンピュータプログラム
WO2003083690A1 (en) * 2002-03-25 2003-10-09 Data Quality Solutions, Inc. Method and system for enterprise business process management
JP4789425B2 (ja) * 2004-03-31 2011-10-12 富士通株式会社 経路テーブル同期方法、ネットワーク機器および経路テーブル同期プログラム

Also Published As

Publication number Publication date
EP1372065A2 (en) 2003-12-17
US7124311B2 (en) 2006-10-17
JP3776058B2 (ja) 2006-05-17
DE60311186T8 (de) 2008-02-21
EP1372065A3 (en) 2004-02-25
DE60311186D1 (de) 2007-03-08
EP1372065B1 (en) 2007-01-17
EP1507222A1 (en) 2005-02-16
US20030226051A1 (en) 2003-12-04
KR20030094019A (ko) 2003-12-11
JP2003345775A (ja) 2003-12-05
DE60311186T2 (de) 2007-10-18

Similar Documents

Publication Publication Date Title
US10901490B2 (en) Operating point controller for circuit regions
KR20130082152A (ko) 지능형 전력 제어기
JP2002182807A (ja) プロセッサの電力制御装置
CN106980597B (zh) 片上系统验证方法及验证系统
US11231769B2 (en) Sequencer-based protocol adapter
US10936005B2 (en) Event controlled clock switching
Glökler et al. Design of energy-efficient application-specific instruction set processors
US20040172519A1 (en) Processor, system LSI circuit, method of designing same, and recording medium having said method recorded thereon
Bezati et al. Coarse grain clock gating of streaming applications in programmable logic implementations
US9805152B1 (en) Compilation of system designs
KR100557518B1 (ko) 시스템 대규모 집적 회로, 그 설계 방법, 및 그에 대한프로그램
KR100410557B1 (ko) 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법
Kalb et al. Enabling dynamic and partial reconfiguration in Xilinx SDSoC
Rykunov Design of asynchronous microprocessor for power proportionality
JP2002007156A (ja) マイクロプロセッサ
CN112925728A (zh) 具有序列处理单元的存储器控制系统
Mokhov et al. Automated synthesis of instruction codes in the context of micro-architecture design
Cvek et al. GNU/Linux and reconfigurable multiprocessor FPGA platform
Kredo et al. Toward Automated Simulink Model Implementation and Optimization using High-Level Synthesis for FPGA
Dutta et al. A comprehensive review of embedded system design aspects for rural application platform
JP2004199630A (ja) データ処理装置
Thiele et al. Performance Analysis of
US8751210B1 (en) Suspending procedures in simulation of a circuit design
Sun et al. A framework for extensible processor based MPSoC design
KR100658485B1 (ko) 마이크로프로세서 개발시스템

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: 20130201

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140204

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170202

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee