KR100358631B1 - 애플리케이션특정프로세서및그설계방법 - Google Patents

애플리케이션특정프로세서및그설계방법 Download PDF

Info

Publication number
KR100358631B1
KR100358631B1 KR1019960706511A KR19960706511A KR100358631B1 KR 100358631 B1 KR100358631 B1 KR 100358631B1 KR 1019960706511 A KR1019960706511 A KR 1019960706511A KR 19960706511 A KR19960706511 A KR 19960706511A KR 100358631 B1 KR100358631 B1 KR 100358631B1
Authority
KR
South Korea
Prior art keywords
application
logic block
data
command
elements
Prior art date
Application number
KR1019960706511A
Other languages
English (en)
Other versions
KR970703560A (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 KR970703560A publication Critical patent/KR970703560A/ko
Application granted granted Critical
Publication of KR100358631B1 publication Critical patent/KR100358631B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Communication Control (AREA)
  • Stored Programmes (AREA)

Abstract

어떤 특정된 애플리케이션의 요구 사항에 부합하는 명령어 세트를 가진 애플리케이션 특정 프로세서의 아키텍처 및 그 설계 방법이 제공된다. 애플리케이션 특정 프로세서의 설계 방법은 미리 설계된 기능 블록(111-113)의 라이브러리를 이용하는 것에 기초를 둔다. 이러한 미리 설계된 기능 블록은 특정된 애플리케이션에 의하여 공통적으로 이용되는 복잡한 처리기능을 캡슐화한다. 각각의 미리 지정된 애플리케이션 특정 기능 블록은 캡슐화된 처리 알고리즘의 어떤 파라미터의 값이 어떤 소기의 값이라도 프로그래밍될 수 있는 레지스터를 이용하여 구현되도록 설계된다. 각각의 미리 지정된 애플리케이션 특정 기능 블록은 기능 블록이 호출, 재구성 및 데이터 입/출력 경로배정 명령을 수행할 수 있게 하는 다목적 버스(110)와 인터페이스할 수 있도록 설계된다.

Description

애플리케이션 특정 프로세서 및 그 설계 방법{APPLICATION SPECIFIC PROCESSOR AND DESIGN METHOD FOR SAME}
본 발명은 일반적으로 복잡한 애플리케이션 특정 집적 회로에 관한 것으로서, 보다 구체적으로는 복잡한 집접 회로가 용이하게 설계될 수 있도록 하는 설계 방법 및 분산 병렬 프로세서 아키텍처에 관한 것이다.
집적 회로 기술은 소수(백 개 이하의 트랜지스터)의 게이트 집적으로부터 아주 많은 수(수백만 개의 트랜지스터)의 게이트 집적으로 발전되어 왔다. 그 결과, 더욱 복잡한 기능을 수행하는 집전 회로의 제조가 가능하게 되어, 분산 구성 요소를 크기, 비용 및 신뢰성에 있어서 골고루 이득이 있도록 치환하는 것이 가능하다. 그러나, 회로가 복잡하고 이용 가능한 트랜지스터의 수가 많기 때문에, IC의 설계가 더욱 어려워지고 있다. 따라서, IC 설계자가 더욱 효율적으로 IC를 설계할 수 있도록 하는 툴이 개발되어 왔다. 이러한 툴의 목적은, 설계자가 트랜지스터나 게이트를 조작할 필요 없이 목적 논리(target logic)를 용이하게 합성할 수 있게 하는 것이다.
범용 프로세서 아키텍처에서는, 복잡한 함수를 실행하기 위해, 프로그램된 명령어 세트 내로 순차 처리될 수 있는 기본적인 저수준 명령어(primitive low-level instructions)(가산, 승산, 비교 등)가 하드웨어에서 실행된다. 이러한 아키텍처는, 일련의 동작을 위하여 피크 처리 능력 요구를 만족시켜야 하는 중앙 처리 장치(CPU)가 성취할 수 있는 처리 능력(throughput)에 의하여 제한된다. 이러한 제한 때문에 종종 하드웨어의 부하가 크게 되며, 결국 설계된 하드웨어의 이용면에서 비효율성이 나타나게 된다. 또한, 그러한 중앙 제어 방식의 아키텍처의 전력 관리는 통상적으로 어렵다.
효율적인 하드웨어 구현으로 설계 처리 능력 목표를 달성하기 위하여, 설계자들은 종종, 합성 후의 프로그래밍 가능성(post-synthesis programmability)에 의해 제공되는 시스템 설계의 유용성을 희생하여 애플리케이션 특정 집적 회로 설계 기술을 이용한다.
일반적으로, IC 설계자를 위하여 두 가지 기술이 개발되어 있는데, "표준 셀(standard cell)" 기술 및 "게이트 어레이(gate array)" 기술이 그것이다. 이러한 기술은 US 특허[제 5,119,314 호(호타 등), 제 5,173,864 호(와다나베 등), 제 5,197,016 호(수지모토 등) 및 제 5,283,753 호(슈커 등)]에 일반적으로 기재되어 있다. 표준 셀 기술에서는 통상 이용되는 논리 블록이 주의 깊게 설계되어 셀 라이브러리에 저장된다. 설계자는 소기의 기능을 제공하기 위하여 적절한 논리 블록을 검색하고 상호접속할 수 있다. 전형적으로, 이러한 블록은 NAND 또는 NOR 게이트와 같은 기본 논리 구조이거나 가산기 또는 승산기와 같은 다른 단순 논리 블록이다. 논리 블록은 블록의 적절한 입력/출력 단자들 사이의 경로 배정 도선(routing conductors)에 의하여 상호접속될 수 있다.
게이트 어레이 기술은 제 1 도전성 상호 접속 레벨(제 1 도전성 상호 접속레벨은 포함하지 않음)까지의 동등한 집적 회로 요소(게이트)를 포함하는 다수의 베이스 웨이퍼의 제조와 관련된다. IC 설계자는 미리 제조된 게이트를 상호접속하기 위하여 사용되는 도전성 패턴만을 특정함으로써 게이트 어레이를 "커스텀화(customize)"한다.
이들 두 기술에서의 문제중의 하나는 복잡한 기능을 수행하는 IC를 설계하는데 이용하기는 어렵다는 것이다. 그것은 표준 셀 및 게이트 어레이가 모든 타입의 애플리케이션에 대하여 기본적이기나 단순한 논리 블록이기 때문이다. 결국, 이러한 기본적인 구성 블록(basic building block)을 유용한 애플리케이션 특정 집적 회로 내에 집적시키기 위해서는 많은 시간, 기술 및 노력이 들게 된다. 또한, 이들 논리 블록을 상호접속하기 위하여 요구되는 레이아웃 및 타이밍의 제약 및 설계 노력은 설계자의 설계 자유도를 제한하고 설계 시간을 증가시킨다.
예를 들면, 통신 애플리케이션에 이용되는 회로는 통상 복잡한 신호 처리 동작을 수행한다. 그러한 회로의 예에는 유한 임펄스 응답 필터(finite impulse response filter), 무한 임펄스 응답 필터(infinite impulse response filter), 복조기 및 상관기(correlator) 등이 있다. 이러한 회로는 고도의 전문가들에 의해서만 이해되고 설계되는 복잡한 수학적 알고리즘과 연관된다. 결국, 표준 셀 및 게이트 어레이 기술에 이용 가능한 기본 구성 블록을 이용하여 이러한 회로를 구현하는 것은 매우 지루한 작업이 된다.
표준 셀 및 게이트 어레이 설계 방법을 이용하여 복잡한 집적 회로를 설계하는 것과 관련된 일부 레이아웃 조건이 슈커의 발명에서 다루어진다. 여기에 설명되는 블록 아키텍처식 집적 회로 설계 기술은 일찍이 개발된 논리 블록을 재사용하도록 하고 있지만, 다양한 논리 블록을 상호접속하는 데 있어서의 복잡성을 해결하지는 못한다. 또한, 상기 집적 회로 설계 기술은 수많은 게이트를 가진 복잡한 IC에서 중요한 요소인 전력 관리를 제공하지 않는다.
어떤 전자 시스템 제조업자는 완전히 다른 기법으로 상기의 문제를 해결한다. 커스텀 설계 IC(custom designed IC)에 의존하는 대신에, 그들은 마이크로제어기 및 디지털 신호 프로세서와 같은 범용 IC를 이용한다. 이러한 IC는 초당 다수의 명령어를 수행할 수 있다. 전형적으로, 이러한 IC의 기능을 커스텀화하는 데에는 소프트웨어가 이용된다.
이러한 범용 IC를 이용하는데 있어서의 문제중의 하나는 그들이 애플리케이션 특정 IC와 비교할 때 그 만큼의 처리 능력을 얻을 수 없다는 것이다. 처리 속도가 결정적 요소가 되는 고속 통신 시스템과 같은 많은 애플리케이션에 있어서, 범용 IC의 성능은 적합하지 않다. 더욱이, 소프트웨어를 이용하는 것으로는 고도의 전문가가 복잡한 처리 알고리즘을 구현하는데 있어서 필요로 하는 요건을 변경할 수 없다.
수지모토 등의 발명에는 범용 프로세서 및 복수의 데이터, 어드레스 및 제어 버스 상에서 함께 접속된 복수의 논리 블록을 채용하는 애플리케이션 특정 집적 회로를 설계하는 방법 및 컴퓨터 지원 시스템이 개시되어 있다. 이러한 설계 기술도 여러 가지 단점이 있다. 우선, 그것은 통합된 실리콘-소프트웨어 컴파일러에 의해 하드웨어 블록으로 합성된 논리 블록(즉, 시스템 처리 능력을 항상시키기 위하여채용되는 비교기, 가산기, 승산기 및 계수기 등과 같은 기본 지원 기능)을 위하여 합성 후 프로그래밍(post-synthesis programming)을 수행하는 능력이 부족하다. 또한, 복잡한 알고리즘의 처리 요구 사항들은 여전히 소프트웨어 상에서 구현되며, 따라서 복잡한 시스템에 대해서는 전문적 설계자가 요구된다. 또한, 수지모토 등의 발명에서 설명된 집적 회로 설계 기술은 전력 관리에 대해 개시하고 있지 않다.
그래서, 하나의 설계로부터 다른 설계로 재사용될 수 있지만, 전력 효율적인 접적 회로를 갖는 특정 애플리케이션에서의 기술 진보 및 갱신 필요성을 만족시키도록 합성 후에 프로그래밍될 수 있는 기능 블록으로, 복잡한 애플리케이션 특정 처리를 효과적으로 캡슐화하도록 하는 블록 아키텍처식 애플리케이션 특정 집적 회로 및 그 설계 방법에 대한 요구가 있어 왔다.
발명의 요약
본 발명은 각 명령어가 특정 클래스의 애플리케이션에 유용한 상위 동작 및 처리 기능을 지정하는 애플리케이션 특정 명령어 세트를 이용하는 설계 방법 및(단일 칩 상에서 구현될 수 있는)애플리케이션 특정 프로세서(APS) 아키텍처를 포함한다. 특정 클래스의 애플리케이션(예, 통신 제품)의 처리 요구가 우선 분석되고 매우 복잡하지만 자주 이용되는 타입의 데이터 변환을 단일 기능 블록으로 수집되도록 하기 위하여 애플리케이션에 의하여 기능 블록내로 통상적으로 이용되는 동작 및 처리 알고리즘으로 그룹지워진다. 각각의 기능 블록은 상기 세트와 하나의 애플리케이션 특정 명령어에 대응한다. 이러한 애플리케이션 특정 명령어는 다목적 버스에 의하여 상호접속되도록 설계된 하드웨어 기능 블록으로서 구현된다. 그 이용에 있어서, 상호접속된 하드웨어 기능 블록은 특정된 애플리케이션을 구현하기 위하여 설계자에 의하여 특정된 명령어 프로그램에 따라서 순차화된다. 많은 기능 블록내에서, 그 블록에 의하여 구현되는 처리 알고리즘의 어떤 파라미터의 값은 복수의 가능한 값중의 하나로 프로그래밍될 수 있는 레지스터를 이용하여 특정된다. 그래서, 각각의 기능 블록은 사용자에게 파라미터적으로 프로그래밍 가능한 애플리케이션 특정 상위 동작 또는 명령어로서 보여질 수도 있다.
각각의 기능 블록은 애플리케이션 특정 상위 동작을 함께 형성하기 위하여 배열되고 그룹지워진 복수의 하위 처리 기본 요소를 포함한다. 각각의 기능 블록은 어떤 특정된 애플리케이션에 있어서 상위 동작이기 때문에, 이러한 기능 블록은 애플리케이션 특정 언어의 "신택스(syntax)"를 형성하는 것으로서 보여질 수 있다. 즉, 기능 블록은 ASP 동작의 프로그래밍을 위한 애플리케이션 특정 언어에서 사용되는 코드들을 포함한다. 이후, 본 발명의 시스템 및 방법에 의해서 이용되는 기능 블록은 '애플리케이션 신택스(application syntax)' 또는 '애플리케이션 요소(application element)'라고 지칭한다. 또한, 라이브러리내의 각각의 애플리케이션 신택스는 기능 블록이 다목적 버스와 인터페이싱하기 위한 인티페이싱 블록을 포함한다.
애플리케이션 신택스는 집적 회로의 구성 블록으로서 보여질 수 있으며, 목적 기술(예, CMOS와 같은 특정된 마이크로일렉트로닉스 집적 기술)을 위하여 미리 설계되고, 구현되고 그리고 최적화될 수 있다.
사전에 설계된 애플리케이션 특정 기능 블록(애플리케이션 신택스)은 다음과같이 본 발명의 ASP의 설계 프로세스를 용이하게 하기 위하여 설계 라이브러리내에서 그룹지워진다. 설계자는 우선 특정된 애플리케이션의 설계 요구 사항을 분석하고, 그것들을 라이브러리로부터 선택된 서브세트의 애플리케이션 특정기능 블록으로 기술한다. 이것은 마치 애플리케이션 특정 명령어를 이용하여 프로그램을 기록하는 것과 유사하다. 다음, 그 선택된 기능 블록은 각각의 기록 블록내에 내장된 표준 다목적 버스 인터페이스에 의하여 상호접속된다. 다음, 집적된 설계는 프로그래밍 가능 ASP 집적 회로로 합성된다. 합성된 ASP 집적 회로의 합성 후 접합은 각각의 애플리케이션 특정 기능 블록을 순차적으로 호출하고 각각의 기능 블록에게 재구성 및 데이터 입/출력 경로배정 명령을 제공하는 명령어 프로그램을 이용하여 완성된다. 전력 관리 설계 제공은 주요 기능 블록 논리가 수신된 호출 명령을 수행하도록 요구된 시간 동안에만 턴온 상태로 되는 것을 허용하는 각각의 애플리케이션 특정 기능 블록의 설계에서 채용된다.
본 발명에 따르는 ASP의 설계는 상위 프로그래밍 언어에 의해서 단순화되고, 그래서 설계자는 시스템 수준의 요구 사항을 각각의 애플리케이션 신택스에 대응하는 복잡한 알고리즘에 대한 깊은 지식이 없이도 직접 ASP의 구현체로 변환시킬 수 있다. 이러한 언어를 사용하면, 본 발명에 따르는 ASP는 다른 애플리케이션 신택스 사이의 관계, 입력/출력 위치 지정을 포함하는 각 애플리케이션 신택스의 파라미터, 구성 및 각각의 애플리케이션 신택스가 다목적 버스 출력과 관련하여 호출되는 시간을 특정하는 단순한 프로그램에 의하여 설계될 수도 있다. 지정되지 않은 파라미터는 미리 정의된 디폴트 값으로 세트된다.
본 발명의 ASP 아키텍처 및 그 설계 방법은 다양한 제품의 설계에 이용될 수 있다. 예를 들면, 만약 라이브러리가 애플리케이션 신택스에 관련된 통신 시스템을 포함하면, 그것은 무선 전화, 무선 근거리 통신망, 사설 통신망 및 디지털 유선 통신망 등을 위한 제품을 설계 하는데 이용될 수 있다. 결국, 애플리케이션 신택스의 설계 비용은 라이브러리의 많은 사용자들에게 분담될 수 있다.
본 발명의 방법은 또한 ASP를 위하여 단순화된 고수준의 설계 기술을 제공한다. 각각의 애플리케이션 신택스는 소정의 입력 및 출력 특성을 지닌 "블랙 박스(black box)"로 간주될 수도 있다. 그래서, 라이브러리 설계자는 복잡한 애플리케이션 특정 기능을 구현하는 방법에 대한 깊은 이해를 가질 필요는 없다. 설계자는 단지 시스템 수준의 구성 블록 내지 애플리케이션 특정 기능을 가지고 작업할 뿐이다. 이러한 애플리케이션 신택스를 이용하여 시스템을 설계하는 것은 표준 셀을 선택하고 배열하고 접속하거나 수천개의 게이트를 상호접속하여 동일한 기능을 구현하는 것보다 용이하고 신속하다. 결국, 제품 설계의 비용 및 시장에 대응하는 시간이 매우 줄어든다.
또한, 제품 향상 및 개량의 비용도 본 발명의 ASP 및 그 설계 방법에 의하여 절약된다. 개시된 ASP 아키텍처, 애플리케이션 신택스 라이브러리 및 그 설계 방법을 이용하면, 애플리케이션 신택스를 삭제 및 삽입하고 그 다음에 새로운 버전의 애플리케이션 특정 집적 회로를 재합성함으로써 제품의 특성을 변경 내지 부가하는 것이 매우 용이하다. 전체 시스템을 재설계할 필요가 없다. 또한, 각각의 애플리케이션 신택스의 설계내에 고유한 합성 후 프로그래밍 가능성으로 인하여, 제품 향상은 재합성할 필요없이 그 구현된 ASP를 재-프로그래밍함으로써 성취될 수 있다. 그래서, 제품 향상 및 개량의 비용이 매우 절약된다.
본 발명의 애플리케이션 신택스 사이의 상호접속은 일 세트의 애플리케이션 신택스가 비동기적으로 동작할 수 있도록 단일 다목적 버스를 이용하여 느슨하게 결합되도록 한다. 다목적 버스상의 각각의 애플리케이션 신택스는 동시적으로 (병렬 처리) 호출되거나 시간적으로 스태거(stagger)된다 (파이프라인 처리). 또한, 애플리케이션 신택스는 그 처리 기능이 필요할 때에만 인에이블링된다. 애플리케이션 신택스의 전력 사용량은 그것이 인에이블링되었는지 여부에 달려 있기 때문에, 이러한 특성은 고유한 효율적 전력 관리를 허용한다.
다목적 버스는 명령 및 데이터 모두를 전송하는데 이용된다. 명령 및 데이터는 한 쌍으로 되어, 다목적 버스내의 단일 액세스에 의하여 동시적으로 전송된다. 명령 및 데이터에 할당된 버스내의 단어 수는 각각의 액세스에 따라 다를 수 있다. 이러한 "가변 경계(moving boundary)" 특성은 다목적 버스의 효율을 최대화 한다.
본 발명의 아키텍처는 또한 각각의 애플리케이션 신택스가 다른 애플리케이션 신택스에 명령 및 데이터를 발생시키고 송신하는 능력을 갖도록 하는 분산 제어를 히용한다. 그래서 어떠한 중앙 제어기도 요구되지 않는다. 이러한 분산 제어 기술은 고도의 타임 오더렁 다중 모드 애플리케이션 특정 처리의 효율적 구현을 허용한다. 하지만, 본 발명의 아키텍처는 또한 ASP내의 다수의 다른 애플리케이션 신택스의 동작을 제어하기 위하여 어떤 애플리케이션 신택스를 이용하는 것을 허용한다. 하나의 애플리케이션 신택스가 일 그룹의 다른 애플리케이션 신택스에 대한 중앙 제어기가 될 경우에, 제어되는 애플리케이션 신택스는 애플리케이션 신택스 "클러스터"로 지정된다. 이러한 방식으로, 광역의 인터페이스 대역폭의 요구를 가지는 애플리케이션 신택스는 상기 다목적 버스로부터 분리되는 단일의 물리적 인터페이스에 의하여 일 그룹으로서 상호접속될 수도 있다. 이러한 애플리케이션 신택스 클러스터화는 상호접속 인터페이스 대역폭이 집적 회로내에서 데이터 흐름의 대역폭과 매칭하도록 접합될 수 있게 한다. 이러한 특성은 데이터 흐름의 정체 현상을 회피할 수 있게 한다.
애플리케이션 신택스의 응용 분야의 하나는 디지털 통신 분야이다. 그 애플리케이션 신택스는 디지털 필터, 상관기, 복조기, 오류 수정 등의 복잡한 알고리즘을 포함한다. 본 발명의 아키텍처에서, 통신 시스템 설계자는 이들 알고리즘에 대한 세부사항을 이해할 필요가 없다. 설계자는 단지 적절한 애플리케이션 신택스를 집적시키고, 광역 스펙트럼, 주파수 호평(frequency hopping) 및 시분할 다중 액세스 모뎀 등과 같은 다양한 제품을 위한 복잡한 통신 애플리케이션 특정 집적 회로를 용이하게 설계할 수 있다.
도 1은 본 발명의 애플리케이션 특정 아키텍처를 나타내는 도면,
도 2는 본 발명의 애플리케이션 신택스내의 인터페이스 액세스 논리 블록을 나타내는 도면,
도 3은 본 발명의 애플리케이션 신택스내의 클럭 인에이블 논리 블록을 나타내는 도면,
도 4는 본 발명의 애플리케이션 신택스내의 애플리케이션 신택스 논리 블록을 나타내는 도면,
도 5는 ASP를 위한 설계 방법을 나타내는 도면,
도 6은 본 발명의 통신 애플리케이션 특정 아키텍처를 이용하여 구현된 모뎀을 나타내는 블록 다이어그램,
도 7은 도 6의 모뎀을 나타내는 데이터 흐름 다이어그램,
도 8은 도 6의 모뎀의 파이프라인 처리의 특성을 나타내는 타이밍 다이어그램.
애플리케이션 특정 프로세서 아키텍처의 본 실시예에서, 다목적 버스의 속성(버스폭, 클럭킹 속도 등)은 그 특징된 애플리케이션의 요구 사항에 부합하도록 합성 전에 프로그래밍될 수 있다. 이것은 집적 회로 설계자가 다목적 버스를 최적화시키는 것을 허용하고, 그래서 효율적인 게이트 카운트의 구현을 가능케 한다.
각각의 기능 블록의 설계에서 고유한, 처리 알고리즘의 어떤 파라미터의 값은 어떠한 소기의 값이라도 프로그래밍될 수 있는 레지스터를 이용하여 구현된다. 이들 레지스터의 크기 및 결국 각각의 레지스터의 프로그래밍 가능한 값의 범위는 그 특정된 애플리케이션의 요구 사항에 부합하도록 합성 전에 프로그래밍될 수 있다. 사실상, 이러한 합성 전 프로그래밍 가능성의 특성은 집적 회로 설계자가 다음에 설명하는 것과 같이 그 특정된 애플리케이션의 요구 사항에 대하여 설계의 합성 후 프로그래밍 가능성을 최적화하는 것을 허용하고, 저-게이트 카운트의 구현을 이룩하는데 있어서 추가적인 효율성을 얻도록 허용한다.
또한, 다목적 버스내에서 채용되는 타이밍 신호의 속도는 그 특정된 애플리케이션의 요구 사항에 부합하도록 합성 전에 프로그래밍될 수 있다. 그리고, 이것은 또한 설계자가 그 특정된 애플리케이션의 요구 사항에 대하여 게이트 카운트를 최적화하는 것을 허용한다.
합성 후에 있어서, 본 발명의 애플리케이션 특정 프로세서 아키텍처는 또한 어떠한 두 기능 블록 사이에서도 데이터 전송의 프로그래밍 가능성을 허용한다. 그래서, 각각의 기능 블록은 각 기능 블록에서 명령하는 중요 부분으로서 입 · 출력 데이터의 메모리 어드레스와 함께 프로그래밍될 수 있다.
상기 설명한 것처럼, 처리 알고리즘의 어떤 파라미터의 값은 어떠한 소기의 값이라도 프로그램밍될 수 있는 레지스터를 이용하여 구현된다. 그래서, 각각의 기능 블록은 어떤 파라미터를 이용·하여(parametrically) 프로그래밍 가능한 애플리케이션 특정 상위 동작 또는 명령어로서 보여질 수 있다. 이것은 애플리케이션 특정 프로세서가 그 특정된 애플리케이션의 순간적 요구 사항에 대하여 각각의 기능 블록의 처리 능력을 조절하도록 합성 후 프로그래밍되는 것을 허용한다.
더욱이, 각각의 기능 블록은 다목적 버스상에서 기능 블록에 제공되는 타이밍 신호에 관련된 그 호출 시간을 제어하도록 합성 후 프로그래밍될 수 있다.
연속 호출 사이에서 클럭 신호를 게이팅-오프할 수 있는 능력은 또한 각각의 기능 블록의 설계에서 고유한 것이다. 사실상, 애플리케이션 특정 프로세서 아키텍처는 각각의 기능 블록에 대한 클럭 신호의 프로그래밍 가능성을 에포크 뿐만 아니라 ON/OFF 주기 모두로써 허용한다.
다목적 버스의 가변 경계 속성의 결과로서, 이러한 버스는 상호접속된 기능 블록 사이에서 데이터 및 명령을 전달하기 위하여 필요한 처리 능력을 조절하도록 합성 후 프로그래밍됨으로써 보여질 수 있다. 애플리케이션 특정 프로세서내의 기능 블록은 다른 데이터 및 명령 구조 크기를 가질 수 있기 때문에, 그 프로그래밍된 명령어 시퀀스에 대응하는 기능 블록의 호출은 사실상 그 집적된 기능 블록의 데이터 및 명령의 요구를 수용하도록 실시간으로 다목적 버스를 프로그래밍한다.
그래서, 이 실시예에서 합성 후 프로그래밍 가능성의 예로서, 어떤 "FILTER" 명령어가 데이터 처리를 위하여 구성될 수 있다. 그래서:
FILTER 명령어의 인수 중 제 1 및 제 2 인수는 그 필터의 접속을 셋업한다.제 1 인수는 필터 입력을 수신 신호 버스에 접속하고, 제 2 인수는 필터 출력을 필터링 신호 버스에 접속한다. 필터 기능은 그것의 입력 데이터를 수신 신호 버스로부터 수신하고 결과 출력 데이터를 필터링 신호 버스에 기록할 것이다 (도 6 참조). 다음 3개의 인수는 FILTER 기능 블록이 필터 계수(Num_Coef)를 가진 유한 임펄스 응답(FIR; Finite Inpalse Response) 타입의 필터를 실행하도록 명령한다. Num_Coef는 일종의 프로젝트 특정 상수, 즉 아퀘이트(eguate)로써 프로젝트 데이터 베이스내에서 셋업된다. 프로젝트 데이터베이스는 상수 ROM (판독전용 메모리)내의 어떤 특정 어드레스내에 저장되거나 RAM (임의 액세스 메모리)내의 사용자-구성가능 데이터와 같은 이퀘이트를 특정할 수도 있다. FILTER 명령어의 마지막 인수는 필터 기능 블록이 명령/데이터/타이밍 버스에 의하여 제공되는 버스트 클럭의 에포크에 호출되도록 명령한다.
명령어 선언내에 명시적으로 정의되어 있지 않은 파라미터는 디폴트 값으로 세트된다. 각각의 애플리케이션 신택스의 디폴트 파라미터에는 내부 버스폭, 동작속도, 아키텍처 구성 및 다양한 구성/제어 선택 사항 등이 포함될 수도 있다. 예를 들면, FILTER 명령어는 명시적으로 정의되지 않은 파라미터를 가진 디폴트를 이용하여 완전히 구성될 수 있다. 이러한 선택 사항에 있어서, 프로그램내의 FILTER 명령어는 FILTER( )이다.
어떤 실시예에서, 명령어는 다음에 설명하는 바와 같이 RAM 메모리를 포함할 수도 있는 공유 메모리 신택스내에서 전원을 넣었을 때 ASP에 다운로드되는 프로그램과 함께 컴파일되고 저장되기도 한다. 대안적인 실시예에서는 공유 메모리 신택스는 RAM을 대신하거나 보충하는 ROM, 프로그램을 저장하는 ROM 및 사용자 액세스 가능 및 변경 가능 레지스터를 위한 RAM을 포함하기도 한다. 또 다른 실시예에서는 단지 하나의 기능 블록에만 의존하는 명령어 또는 구성 파라미터가 각각의 블록내에 저장될 수도 있다.
본 발명의 ASP 아키텍처는 보드 수준의 기술 뿐만 아니라 마이크로일렉트로닉스 집적 회로 기술도 결합시킨 구현체를 목적으로 한다. 왜냐하면, 구성하는 처리 및 호출 메카니즘은 어떤 특정된 애플리케이션에 부합하기 때문에, ASP 아키텍처는 공통의 처리 요구 사항을 가진 다양한 제품 시장의 생산량을 집중시킴으로써 얻는 비용 절약의 이점을 실현하기 위하여 충분한 프로그래밍 유연성을 가진 목적기술에 의해서 성취될 수 있는 최대 처리 능력을 제공한다. 예를 들면, 무선 전화 근거리 무선 통신망, 개인 통신망 및 디지털 유선 통신망 등의 다양한 제품의 혼합된 시장을 위한 디지털 통신 신호 처리 요구가 수용되도록 하는 라이브러리를 구축하는 것이 가능하다. 또한, 이 아키텍처는 제품 설계 비용을 낮추고 시장에 대한 응답 시간을 빠르게 하는 이점을 실현할 수 있도록 애플리케이션 전문가의 기술을 증진시키고 시스템 수준의 객체 지향형 프로그래밍 가능성을 허용한다. 그것은 어떤 특정된 애플리케이션 처리의 복잡한 면을 깊게 이해할 필요가 없도록 한다. 고유한 전력 관리 능력을 가진 효율적인 애플리케이션 특정 회로의 신속한 개발 사이클 및 개발비를 상당히 감소시키면서 제품의 향상과 개량을 위한 프로그래밍 유연성이 이 아키텍처의 주요한 이점이다.
본 발명의 ASP 아키텍처의 하나의 애플리케이션은 통신 ASP (CASP)이다. 표2는 다양한 CASP를 설계하는데 이용되는 어떤 라이브러리내의 어떤 애플리케이션 신택스의 명칭과 설명을 나타낸다.
본 발명의 ASP 아키텍처를 이용하는 예시적인 통신 시스템은 광역 스펙트럼,주파수 호칭(SS/FH), 시분할 다중 액세스(TDMA) 신호 기법을 구현하는 변조기/보조기(모뎀)이다. SS/FH 측은 각각의 버스트의 반송 주파수의 랜덤화에 의하여 제공된다. TDMA 측은 일종의 프레임으로 정의된 다중 액세스 듀티 사이클을 가지고 채널상의 시간을 TDMA 버스트로 분할함으로써 제공된다. 어떤 프레임내에서 어떤 할당된 버스트의 시간 부분은 랜덤화된다. 다중 액세스 기법은 사용자 데이터를 지원하기 위하여 각각의 버스트에 데이터 스트림을 요구에 따라서 동적으로 할당한다. 각각의 버스트는 표 3에 도시된 일 세트의 파라미터에 의하여 정의된다.
도 6은 CASP를 이용하여 구현된 SS/FH TDMA 모뎀(400)의 상위 레벨의 블록 다이어그램을 묘사한다. 특히, 이 예에서 이용되는 애플리케이션 신택스는 표 4에 도시되어 있다. 이러한 애플리케이션 신택스는 명령/데이터/타이밍 버스(499)를 통하여 통신하고, 여기서 각각의 애플리케이션 신택스는 다른 속도로 호출(즉, 활성화)될 수 있다. 버스(499)는 도 1의 명령/데이터/타이밍 버스(110)의 하나의 실현체이다.
모뎀(400)내에 정의된 각각의 애플리케이션 신택스는 데이터 변환을 지배하는 입력 구성 명령 및 호출 시간을 지배하는 입력 타이밍 명령을 수용한다. 이러한 명령 구조는 도 1의 ASP 아키텍처내에서 Syntax(C, T)로 정의된다. 호출중에, 어떤 애플리케이션 신택스는 다음 호출이 있을 때까지 그것의 파라미터를 적절한 값으로 세트하고, 입력 데이터를 처리하고, 그것의 입력 클럭을 게이트-오프시킨다. 그래서, 전력의 절약은 본질적으로 그 클럭을 게이트-오프시킴으로써 제공된다. 모뎀(400)내에서 정의된 애플리케이션 신택스는 다른 신호 처리 기능을 수행하기 위하여, 다른 애플리케이션 신택스 논리(즉, 도 1의 블록(125))를 가진다. 하지만, 이들 애플리케이션 신택스 모두는 명령/데이터/타이밍 버스(499)에 접속하기 위하여 동일한 인터페이스 구조를 이용한다.
도 6의 모뎀(400)내에서, 분산 제어 뿐만 아니라 집중 제어 방식의 ASP 아키텍처는 한 버스트 씩을 기초로 한 동적 모뎀 재구성 및 한 프레임 씩을 기초로 한 데이터 처리를 지원하는데 이용된다. 집중 제어는 다운링크 디랜덤화기(404) 및 업링크 랜덤화기(406)에 의하여 제공되고, 그것들은 각각 다운링크와 업링크의 디지털 신호 처리를 한 버스트 씩을 기초로하여 조정한다. 분산 제어는 데이터 처리에 대하여 한 프레임 씩을 기초로하여 자체 애플리케이션 신택스에 의하여 제공된다. 특히, 이들 자체 애플리케이션 신택스에는 인코더(408), 인터리버(425), CRC검사기(424), 디코더(423) 및 디인터리버(409)가 있다.
모뎀(400)은 모든 애플리케이션 신택스 사이에서의 느슨한 결합을 제공하는 공유 메모리 신택스(416)을 포함한다. 이것은 분리된 메모리 뿐만 아니라 복수의 분리된 데이터선 및 어드레스선의 하드웨어 오버헤드를 제거한다. 각각의 애플리케이션 신택스는 그 입력 데이터에 대하여 특별한 작업을 수행하고 그 출력을 공유 메모리 신택스(416)을 통하여 다음 애플리케이션 신택스에게 인도한다.
도 7에 나타낸 것처럼, 데이터와 제어는 공유 메모리 신택스(416)내의 선-할당(preassigned) 세그먼트를 통하여 애플리케이션 신택스 사이에서 전송된다. 도 6 및 도 7내에서의 동일한 구성요소는 동일한 인용부호를 갖는다. 각각의 선-할당 메모리 세그먼트(즉, 세그먼트 460, 462, 464, 472)에는 '기록' 포인터(포인터(482) 등), '판독' 포인터(포인터(483) 등), '세그먼트 길이' 값(값(484) 등) 및 처리될 데이터(디인터리빙되는 데이터(485) 등)가 대응된다. '기록' 포인터는 데이터를 기록하는 애플리케이션 신택스에 의하여 유지되고, 한편 '판독' 포인터는 데이터를판독하는 애플리케이션 신택스에 의하여 유지된다. 각각의 애플리케이션 신택스는 충분한 데이터가 처리 가능인지 여부를 판단하기 위하여 '기록' 및 '판독' 포인터를 조사하고 데이터가 가용하지 않을 때는 다음 프레임 클럭 에포크까지 차단할 것이다. 고유한 전력 절략을 제공하면서, 이러한 특성은 데이터가 가용하고 소기의 처리 능력이 있을 때에만 데이터를 처리하도록 허용한다.
모뎀(400)에 의해 수행되는 다운링크 처리의 동작을 지금부터 설명한다. 다운링크의 신호 구조는 가변 버스트 데이터 속도를 가지고 통신 데이터, 액세스 제어 데이터 및 동기화 정보를 멀티플렉싱하는 시분할 다중화 주파수 호핑 파형을 포함한다. 동기화 정보는 수신 신호를 획득하고 추적하기 위한 동기화 상관기(428)에 의하여 복조된다. 통신 데이티 및 액세스 제어 데이터는 PSK 복조기(429)에 의하여 복조된다. 애플리케이션 신택스(428 및 429)은 다른 자체 애플리케이션 신택스에 의한 더 한층의 데이터 처리를 위하여 데이터를 공유 메모리 신택스(416)으로 출력시킨다.
모뎀에 있어서, 정합 필터(427), 동기화 상관기(428) 및 PSK 복조기(429)는 복조 클러스터(430)로 그룹지워진다. 이것은 수신 신호를 버스트 속도에서 실시간으로 복조하고 복조된 데이터는 공유 메모리 신택스(416)내에 위치시킨다. 정합필터(427)는 입력 디지털 신호의 통신 특성을 매칭시키고, 그리하여 필터링된 샘플을 동기화 상관기(428) 및 PSK 복조기(429)에 제공한다. 필터링된 신호의 고대역 폭을 조절하기 위하여, 복조 클러스터(430)는 고대역폭 버스에 접속된다. 이것은 필터링 신호 버스(431)라고 불리운다.
모뎀(400)에서, 클러스터(430)의 집중 제어는 다운링크 디랜덤화기(404)에 의하여 수행된다. 특히, 다운링크 랜덤화기(404)는 다음의 기능을 수행한다.
(1) PN-Code 워드의 발생 및 동기화
(2) 호핑된 반송 주파수 계산
(3) 모뎀(400) 외부의 다운링크 합성기에 대한 대응하는 주파수 명령 및 스트로브(strobe)의 발생
(4) 버스트 클럭 및 프레임 클럭을 포함하는 모든 필요한 클럭의 발생
(5) 한 버스트 씩을 기초로 한 클러스터(430)의 구성
복조 클러스터(430)의 구성은 정합 필터를 버스트 데이터에 셋업하는 단계 및 동기화 상관기(428)나 PSK 복조기(429)를 선택하는 단계로 구성된다. 발생된 PN-Code에 기초하여, 다운링크 디랜덤화기(404)는 입력 버스트 색인을 식별한다. 이 식별된 버스트 색인을 이용하여, 다운링크 디랜덤화기(404)는 다운링크 "명령템플릿"내에 포함된 버스트 구성 파라미터를 판단하기 위하여 공유 메모리(416)에 액세스한다. 명령 템플릿은 이 모뎀을 위하여 특별히 기록된 CASP 명령어 프로그램의 컴파일의 결과로서 기계어 코드이다. 명령 템플릿(프로그램)내의 정보는 모뎀 동작을 정의하고, 변화하는 다운링크 파라미터에 대응하여 변화될 수 있다. 명령 템플릿(프로그램)내의 정보는 데이터 처리 명령 뿐만 아니라 신호 처리 명령도 정의한다. 신호 처리 명령은 복조 클러스터(430)를 구성하기 위하여 이용되고, 한편 데이터 처리 명령은 자체 데이터 처리 신택스를 구성하기 위하여 이용된다.
다운링크 디랜덤화기(404)는 버스트 클럭 에포크에 활성화되는 디램덤화기클러스터(430)를 구성하는 그 디랜덤화기 클러스터(430)의 각각의 구성요소에 대하여 타이밍 명령(T)을 기록한다. 버스트 클럭 에포크 이전에, 다운링크 디랜덤화기(404)는 디렌덤화기 클러스터(430)의 각각의 구성요소에 대하여 구성 명령(C)을 기록한다. 복조 클러스터(430)는 버스트 클럭 에포크 중에 활성화되고 다운링크 랜덤화기(404)에 의하여 제공된 구성 명령에 정의된 대로 데이터를 처리한다. 이것은 버스트 클럭 에포크에서의 동적 재구성의 일례이다.
복조된 데이터는 자체 애플리케이션 신택스에 의하여 처리된다. 이러한 애플리케이션 신택스는 다운링크 프레임 클럭 에포크에서 활성화되고 그 데이터를 처리하고 다음의 다운링크 프레임 클럭 에포크까지 차단한다. 그 결과 상당한 전력이 동작중에도 절약된다. 모뎀(400)에서, 각각의 자체 애플리케이션 신택스는 그것의 입력 및 출력을 공유 메모리 신택스(416)내에 유지한다. 도 7은 집중 제어 복조 클러스터(430) 및 분산 제어 데이터 처리 신택스를 따라가는 데이터 흐름을 도시한다. 모뎀(400)에 의하여 선(432)으로 수신된 신호는 복조 클러스터(430)에 의하여 복조된다. 복조된 데이터는 명령/데이터/타이밍 버스(499)의 일부를 구성하는 명령/데이터 버스(498)을 통하여 공유 메모리 신택스(416)의 복조 데이터 세그먼트내에 위치된다. 이러한 복조된 데이터는 계속하여 디인터리버(409)에 의하여 처리된다. 그 결과는 공유 메모리 신택스(416)내의 디인터리버 데이터 세그먼트(462)내에 저장된다. 디인터리빙된 데이터는 계속하여 디코더(423)에 의하여 처리된다. 디코딩된 데이터는 공유 메모리 신택스(416)내의 디코딩된 데이터 세그먼트(464)내에 저장된다. 디코딩된 데이터는 CRC 검사기(424)에 의하여 오류 검사되고, 수신된 사용자 데이터 세그먼트(472)내에 위치된다. 그 수신된 사용자 데이터 세그먼트(472)는 외부버스(490)상에서 데이터/제어 인터페이스 신택스(426)을 통하여 어떤 외부 엔티티에 의하여 추출된다.
자체 애플리케이션 신택스의 구성 명령은 공유 메모리 신택스(416)내의 다운링크 명령 템플릿(프로그램)의 일부로서 제공된다. 앞에서 설명한 것처럼, 이러한 각각의 애플리케이션 신택스의 명령어는 두 가지 인수를 포함한다. 즉, 명령 인수(이 경우, 구성 명령)와 시간 인수(이 경우, 호출 시간)가 그것이다. 호출중에, 애플리케이션 신택스는 명령 인수(C)를 디코딩하고 그것의 대응하는 파라미터를 구성한다. 각각의 애플리케이션 신택스는 호출 에포크를 판단하기 위하여 시간 인수(T)를 디코딩한다. 시간 인수는 명령/데이터/타이밍 버스(499)의 일부인 타이밍 버스(497)의 버스트 클럭(495) 또는 프레임 클럭(496)중의 하나를 선택하는 일종의 명령으로서 구현될 수 있고, 그것을 이용하여 주기적 호출 에포크를 구축한다.
ASP 아키텍처의 파이프라이닝 능력은 처리 파이프라인 내에서의 앞에서 설명된 동작을 수행하도록 CASP 명령 템플릿(프로그램)의 시간 인수가 선택되었던 모뎀(400)에서 이용된다. 도 8은 모뎀(400)내에서 구현된 어떤 프로그래밍된 다운링크 처리 파이프라인을 도시한다. 선(432)상의 입력 신호는 버스트 속도로 실시간 복조되고, 한편 디인터리빙, 디코딩 및 CRC 검사는 후속 프레임내에서 프레임 속도로 처리된다.
이제 모뎀(40)에 구현된 다운링크 처리 파이프라인을 상세히 설명한다. 모뎀(400)을 형성하는 애플리케이션 신택스를 프로그래밍함으로써, 수신 신호(432)는 프레임으로 정의된 다중 액세스 듀티 사이클과 함께 TDMA 버스트로 분할된 채널상의 시간에 대응하여 처리된다. 도 8에서, 시간의 진행은 계속적으로 증가하는 프레임 수를 가진 일 시퀀스의 프레임으로 나타난다. 특히, 도 8에 도시된 시퀀스는 프레임(N)(500), 프레임(N+1)(501), 프레임(N+2)(502) 그리고 프레임(N+3)(503)으로 연속되어 있는 것이다. 여기서 N은 프레임 수를 계수하는 임의 정수이다. 어떤 주어진 프레임내에서도, 시간 진행은 계속적으로 증가하는 버스트 수를 가진 일 시퀀스의 버스트(560)로 나타난다. 특히, 도 8에 도시된 시퀀스는 버스트(M)(570), 버스트(M+1)(571) 그리고 버스트(M+2)(572)로 연속되어 있는 것이다. 여기서 M은 프레임내의 버스트 수를 계수하는 임의 정수이다.
모뎀(400)에 구현된 다운링크 처리 파이프라인은 프레임(N)(500)의 수신 데이터(432)에 대하여 수행되는 정합 필터/복조(N)(510)로부터 시작한다. 특히, 다음의 프로그래밍된 동작 시퀀스가 수행된다.
(a) 정합 필터(M)(580)는 프레임(N)(500)의 버스트(M)(570)에 대하여 수행된다.
(b) 복조(M)(590)는 정합 필터(M)(580)의 출력 데이터에 대하여 수행된다.
(c) 정합 필터(M+1)(581)는 프레임(N)(500)의 버스트(M+1)(571)에 대하여 수행된다.
(d) 복조(M+1)(591)는 정합 필터(M+1)(581)의 출력 데이터에 대하여 수행된다.
(e) 정합 필터(M+2)(582)는 프레임(N)(500)의 버스트(M+2)(572)에 대하여 수행된다.
(f) 복조(M+2)(592)는 정합 필터(M+2)(582)의 출력 데이터에 대하여 수행된다.
(g) 프레임(N)(500)내의 지정된 모든 버스트가 정합 필터링되고 복조될 때까지 계속된다.
(h) 다음 프레임에서, 디인터리브(N)(520)는 복조(M)(590), 복조(M+1)(591), 복조(M+2)(592) 등의 출력 데이터에 대하여 수행된다.
(i) 다음 프레임에서, 디코드(N)(530)는 디인터리브(N)(520)의 출력 데이터에 대하여 수행된다.
(j) 다음 프레임에서, CRC 검사(N)(540)는 디코드(N)(530)의 출력 데이터에 대하여 수행된다.
(k) 다음 프레임에서, 수신 데이터(550)는 CRC 검사(N)(540) 출력 데이터로 부터 추출되고 외부 엔티티로 인도된다.
마찬가지로, 프레임(N+1)도 다음과 같이 처리된다.
(a) 정합 필터(M)(580)는 프레임(N+1)(501)의 버스트(M)(570)에 대하여 수행된다.
(b) 복조(M)(590)는 정합 필터(M)(580)의 출력 데이터에 대하여 수행된다.
(c) 정합 필터(M+1)(581)는 프레임(N+1)(501)의 버스트(M+1)(571)에 대하여 수행된다.
(d) 복조(M+1)(591)는 정합 필터(M+1)(581)의 출력 데이터에 대하여 수행된다.
(e) 정합 필터(M+2)(582)는 프레임(N+1)(501)의 버스트(M+2)(572)에 대하여 수행된다.
(f) 복조(M+2)(592)는 정합 필터(M+2)(582)의 출력 데이터에 대하여 수행된다.
(g) 프레임(N+1)(501)내의 지정된 모든 버스트가 정합 필터링되고 복조될 때까지 계속된다.
(h) 다음 프레임에서, 디인터리브(N+1)(521)는 복조(M)(590), 복조(M+1)(591), 복조(M+2)(592) 등의 출력 데이터에 대하여 수행된다.
(i) 다음 프레임에서, 디코드(N+1)(531)는 디인터리브(N+1)(521)의 출력 데이터에 대하여 수행된다.
(j) 다음 프레임에서, CRC 검사(N+1)(541)는 디코드(N+1)(531)의 출력 데이터에 대하여 수행된다.
(k) 다음 프레임에서, 수신 데이터(550)는 CRC 검사(N+1)(541) 출력 데이터로부터 주출되고 외부 엔티티로 인도된다.
모뎀(400)이 다른 모드로 재구성되거나 턴오프될 때까지, 이 다운링크 처리 파이프라인은 무기한으로 계속된다.
CASP 모뎀(400)의 프로그래밍 능력은 어떠한 애플리케이션 신택스라도 시간 인수에 의해 명령되는 것을 허용한다. 그럼으로써, 명령/데이터/타이밍 버스(499)상에 제공된 클럭중의 하나를 선택하고, 그 선택된 클럭을 이용하여 그 선택된 에포그의 모듈로(N)를 계수함으로써 호출 에포크를 발생시키거나 그 선택된 클럭이 어떤 특정된 값에 도달할 때 호출되도록 한다. 예를 들면, CASP 명령 템플릿(프로그램)은 복수의 프레임으로 구성된 특정된 인코더 호출을 정의한다. 이 예에서, 인코더 입력 데이터는 호출중의 인코더에 의해 처리될 때까지 그의 지정된 공유 메모리 세그먼트내에 축적될 것이다.
입력 데이터를 처리하도록 도 6의 CASP 모뎀에 명령하기 위한 명령어 프로그램은 다음과 같을 수 있다.
FILTER 명령어는 앞에서 설명하였다. FILTER 명령어를 뒤따르는 IF 명령문은 두 개의 다른 타입의 수신 TDMA 버스트에 대하여 적절한 처리를 수행하는 것을 허용하고, ELSEIF 명령문은 적절한 동기화 정보 처리를 수행하고, 한편 ENDIF는 기대한 것처럼 이들 두 개의 가지 및 종단을 나타낸다. 컴파일러는 이 IF 명령어를 프로그래머가 특정할 수 있는 일종의 명령 템플릿으로 맵핑시킬 것이다. 프로그래머는 이 명령 템플릿을 데이터 및 동기화 버스트를 포함하는 TDMA 프레임의 특정된 구조로 채운다. 이 템플릿은 컴파일된 프로그램의 일부분으로서 저장되고, 수신버스트의 타입을 식별하기 위하여 이용된다.
상기 PSK_DEMOD 명령어는 다음과 같이 설명된다. 프로그램과 함께 컴파일된 프레임 구조 명령 템플릿의 내용을 기초로하여, 각각의 수신 버스트는 동기화(SYNC) 버스트 또는 데이터 버스트로 식별된다. 수신 버스트가 데이터 버스트로 식별된 경우, PSK_DEMOD 명령어는 PSK 복조기 기능 블록이 필터링된 수신 신호 샘플을 처리하도록 명령한다. PSK_DEMOD 명령은 PSK 복조기가 필터링된 신호 버스(도 6)로부터 그것의 입력을 추출하고, 공유 메모리 블록내의 특정 메모리 위치에 그 결과 출력을 경로배정하도록 명령한다. 공유 메모리 기능 블록의 구조는 또한 프로젝트 데이터베이스를 통하여 그 컴파일된 프로그램의 일부분으로서 포함된다. 그 명령어의 다음 2개의 인수는 PSK 복조기의 특정된 구성을 복조된 PSK 심볼 타입(예, BPSK 또는 QPSK) 및 수신 심볼 속도로써 특정한다. TIME 인수는 PSK 복조기가 버스트 클럭 속도로 호출되도록 명령한다.
SYNC 명령어는 동기화를 위하여 중요한 파라미터가 동기화 계수, 계수의 수, 정확한 동기화 타입을 포함한다는 것을 제외하고는 PSK 복조기 명령어와 유사하다.
컨볼루션널 디인터리버(CONV_DEINT), 컨볼루션널 디코더(CONV_DECODE), CRC검사기(CRC) 및 데이터 인터페이스(DATA_IF)는 모두 프레임 프로세스이다. 이러한 각각의 프로세스는 프레임 클럭에서 호출되고, 공유 메모리로부터 데이터를 추출하고, 요구 데이터 변환을 수행하고, 그 데이터를 다시 공유 메모리로 출력하고, 유휴 상태로 돌아간다. CDT 버스 구조, 공유 메모리 버퍼 구조 및 내부 비트폭과 같은 파라미터는 프로젝트 수준의 데이터베이스내에서 정의된다. 간단히 하기 위하여, 여기서는 컨볼루션널 디인터리버만 설명한다. 다른 프레임 프로세스는 매우 유사한 인수를 갖고 있고, 이 컨볼루션널 디인터리버만 이해되면 그들도 쉽게 이해 될 것이다.
CONV_DEINT 명령어의 처음의 두 인수는 그 모듈의 접속을 정의한다. 즉, 처음의 두 인수는 CONV_DEINT에게 그것의 입력이 공유 메모리내의 어디에 위치되어 있는지 및 그것의 출력이 공유 메모리내의 어디에 위치될 것인지를 알려준다. 이 경우 CONV_DEINT는 공유 메모리내의 Demod_Data 버퍼로부터 입력을 얻고, 데이터를 공유 메모리의 Deint_Data로 출력시킨다. 구조, 길이, 위치지정 등의 버퍼 파라미티는 프로젝트 수준의 데이터베이스내에 위치된다. 그 다음 인수는 CONV_DEINT에게 얼마나 많은 소프트 결정 비트(soft decision bit)가 매 호출당 디인터리빙하는 지를 알려준다. 그 다음의 3개의 인수는 CONV_DEINT에게 호출될 정확한 구성을 알려준다. 이 경우의 컨볼루션널 디인터리버는 n형 x m열이 될 것이다. 마지막 인수는 컨볼루션널 디인터리버 기능이 프레임 속도로 호출되도록 명령한다.
다운링크 부분만을 이해하여도 당해 기술 분야의 전문가가 모뎀(400)의 업링크 부분을 구축할 수 있다는 것은 분명하므로, 여기서는 다운링크 부분만을 설명한다. 따라서, 업링크 부분의 구조와 동작은 설명하지 않았다.
지금까지 설명된 것은 본 발명의 ASP 아키텍처이다. 당업자라면 본 발명을 다양한 형태의 애플리케이션으로 적용시킬 수 있다는 것은 명백하다. 여기에는 단지 몇가지의 본 발명의 바람직한 실시예만을 설명하였지만, 많은 대체와 변형이 본 발명의 사상과 범위를 벗어나지 않고도 용이하게 구성될 수 있을 것이다. 따라서, 본 발명의 범위를 다음에 첨부하는 청구의 범위로 제한할 것을 의도한다.
본 발명은 각각 특정 기능을 수행하도록 설계된 복수의 기능 요소(functional elements)가 작업을 협동적으로 수행하도록 함께 접속되는 프로세서 아키텍처 및 그 설계 방법에 관한 것이다. 이러한 기능 요소들이 집적되어 있는 아키텍처식 컨텍스트(architectural context) 및 애플리케이션 의존 처리(application dependent processing)를 수행하기 위한 기능 요소의 집합을 애플리케이션 특정 프로세서(ASP; application specific processor)라고 한다.
도 1은 본 발명의 ASP 아키텍처(100)의 개략도이다. 여기에는 명령/데이터/타이밍 버스(110)와 복수의 애플리케이션 신택스(111, 112, 113)가 도시되어 있다. 이들 애플리케이션 신택스는 서로 다른 것도 있고 동일한 것도 있다. 애플리케이션 신택스 사이의 통신은 명령/데이터/타이밍 버스(110)를 통하여 수행된다.
각 애플리케이션 신택스는 명령/데이터/타이밍 버스(110)와 인터페이싱하기 위하여 본질적으로 동일한 회로를 포함한다. 그러므로, 그 애플리케이션 신택스 중 하나의 애플리케이션 신택스(111)만의 인터페이스 회로를 상세히 설명하는 것으로 충분하다. 애플리케이션 신택스(111)는 클럭 인에이블 논리 블록(121), 인터페이스 액세스 논리 블록(123) 및 "애플리케이션 신택스 논리 블록(125)을 포함한다. 애플리케이션 신택스 논리 블록(125)은 소정의 기능을 수행한다. 예를 들면, 도 1에서 나타낸 바와 같이, 애플리케이션 신택스 논리 블록(125)은 외부 인터페이스(131)선으로서 지정된 양방향 경로를 통하여 애플리케이션 신택스(111)에 제공되는 사용자 데이터에 작용한다. 클럭 인에이블 논리 블록(121) 및 인터페이스 액세스 논리 블록(123)은 애플리케이션 신택스 논리 블록(125)을 명령/데이터/타이밍 버스(110)와 인터페이스시킨다. 클럭 인에이블 논리 블록(121)은 애플리케이션 신택스 논리 블록(125)에게 타이밍 신호를 제공하고 애플리케이션 신택스 논리 블록(125)의 기능이 필요한 때에만 그것을 인에이블시킨다. 인터페이스 액세스 논리 블록(123)은 애플리케이션 신택스 논리 블록(125)이 명령/데이터/타이밍 버스(110)를 통하여 다른 애플리케이션 신택스로부터 또는 그것에게 명령 및 데이터를 송신하거나 수신하도록 한다.
ASP 아키텍처(100)에서, 각 애플리케이션 신택스내의 클럭 인에이블 논리 블록(121) 및 인터페이스 액세스 논리 블록(123)은 예를 들면, 애플리케이션 신택스의 어드레스와 같은 일부 독자적인 구성요소는 다를지라도 거의 동일하다. 또한, 애플리케이션 신택스 논리 블록(125)내의 일부 구성요소는 다른 모든 애플리케이션 신택스에서도 공통된다 (예를 들면, 클럭 인에이블 블록(121) 및 인터페이스 액세스 논리 블록(123)과 인터페이싱하는 구성요소들). 하지만, 애플리케이션 신택스 내에서 특정된 데이터 및 신호 처리 기능을 수행하는 회로는 다를 수도 있다 (예를 들면, 어떤 애플리케이션 신택스는 복조기의 기능을 하고 다른 애플리케이션 신택스는 상관기의 기능을 하는 등). 간단히 말하면, 애플리케이션 신택스는 다른 기능을 할 수도 있지만 명령/데이터/타이밍 버스(110)와 인터페이싱하기 위한 애플리케이션 신택스의 일부분은 실질적으로 동일하다는 것이다. 결국, 애플리케이션 신택스는 명령/데이터/타이밍 버스(110)를 이용하여 서로 인터페이스할 수 있다.
도 2는 도 1에 도시된 인터페이스 액세스 논리 블록(123)의 상세한 블록 다이어그램이다. 도 1과 도 2에서 동일한 인용부호는 동일한 구성요소를 나타낸다. 인터페이스 액세스 논리 블록(123)은 클럭 인에이블 블록(121)에 접속된 어드레스 디코더(140) 및 명령/데이터 입력 블록(142)을 포함한다. 어드레스 디코더(140)는 명령/데이터 버스(150)로부터 어드레스 신호를 수신하고, 명령/데이터 입력 블록(142) 및 클럭 인에이블 논리 블록(121)이 애플리케이션 신택스(111)을 위한 의도된 명령 및 데이터를 수용하도록 한다. 명령/데이터 버스(150)는 도 1에 도시된 명령/데이터/타이밍 버스(110)의 일부분이다. 명령/데이터 입력 블록(140)에 의하여 처리된 명령 및 데이터는 애플리케이션 신택스 논리 블록(125)으로 송신된다. 인터페이스 액세스 논리 블록(123)은 명령/데이터 출력 블록(144) 및 어드레스 출력 블록(148)을 포함한다. 이들 두 블록은 애플리케이션 신택스 논리 블록(125)에 의해 발생된 명령, 데이터 및 어드레스 정보를 명령/데이터 버스(150)로 전송한다. 또한, 인터페이스 액세스 논리 블록(123)은 명령/데이터 출력 블록(144) 및 어드레스 출력 블록(148)에 접속된 버스 액세스 회로(146)를 포함한다.
이들 두 명령/데이터 블록(142, 144)은 각각 가변 크기의 명령 및 데이터의 쌍으로 구성된 입력/출력 포맷에 작용한다. 명령 및 데이터의 전체적인 크기는 특정 애플리케이션 신택스 논리 블록의 동작의 요구에 기초한다. 상기 명령 및 데이터 쌍은 이동 경계(moving boundaries)를 가지며, 이 이동 경계에 의해 물리적 인터페이스(즉, 명령/데이터/타이밍 버스(110))의 효율을 극대화할 수 있다.
인터페이스 액세스 논리 블록(123)의 구조는 모든 애플리케이션 신택스에 대하여 실질적으로 동일하기 때문에, 어떤 애플리케이션 신택스가 다른 애플리케이션 신택스에게 명령/데이터/타이밍 버스(110)를 통하여 명령 및 데이터를 송신하는 것이 가능하다. 이러한, "데이터 구동형" 분산 제어 방식("data driven" distributed control approach)은 고도로 시간 순서화된 멀티 모드의 애플리케이션 특정 처리(highly time-ordered, multi-mode application specific processing)를 실시하는데 효율적이다. 따라서, 이러한 아키텍처에서는 제어 방식은 완전 집중형 제어 방식(fully centrally controlled approach)에만 제한될 필요가 없고, 오히려 분산형 제어, 집중형 제어 또는 혼합형 제어 방식이 사용되어, 소기의 애플리케이션의 요구에 가장 잘 부합할 수 있다. 어떤 애플리케이션 신택스가 다른 애플리케이션 신택스에게 명령을 발생시킬 수 있는 능력에 의하여, 어떤 애플리케이션 신택스는 애플리케이션 신택스 클러스터로 지정된 일 그룹의 다른 애플리케이션 신택스에 대하여 일종의 중앙 제어기로 될 수 있다.
이러한 아키텍처의 다른 이점은 명령/데이터/타이밍 버스(110)가 애플리케이션 신택스 논리로부터 '은닉된다(hidden)'(즉, 애플리케이션 신택스 논리가 버스 동작의 상세를 알 필요가 없다). 따라서, 애플리케이션 신택스에 대한 특정 기능을 설계하는 설계자는 버스 동작을 알아야 할 필요가 없고, 결국 경제적 이득을 얻게 된다.
도 3은 도 1에 도시된 클럭 인에이블 논리 블록(121)의 상세한 블록 다이어그램이다. 도 1, 도 2 및 도 3에서 동일한 인용부호는 동일한 구성요소를 나타낸다. 클럭 인에이블 논리 블록(121)은 타이밍 버스(153), 명령/데이터 버스(150) 및 인터페이스 액세스 논리 블록(123)의 어드레스 디코더(140)로부터 입력을 받아 들이는 명령 상태 레지스터(211)를 포함한다. 타이밍 버스(153)는 명령/데이터/타이밍 버스(110)의 일부분이고, 전형적으로 다른 선들에서 전송되는 복수의 클럭 신호를 포함한다.
명령 상태 레지스터(211)는 애플리케이션 신택스(111)에 어드레싱되는 시간에 관계하는 명령 및 데이터를 수신한다. 명령 상태 레지스터(211)는 이들 명령 및 데이터를 먹스(mux) 선택값 및 에포크 모듈로 값(epoch modulo value)을 판단하기위하여 이용한다. 먹스 선택값은 일 세트의 먹스 선택선(214)을 통하여 멀티플렉서(213)로 송신됨으로써, 멀티플렉서(213)가 타이밍 버스(153)로부터 소기의 클록(또는, 에포크)을 선택할 수 있게 한다. 에포크 모듈로 값은 명령 논리 블록(217)으로 송신되고, 이하 설명하는 것과 같이, 그곳에서 모듈로(즉, 게이팅된 클럭(gated clock)을 인에이블링하기 전에 계수한 에포크의 수)를 정의한다.
멀티플렉서(213)의 출력은 활성 타이머(215)에 접속된다. 활성 타이머(215)는 또한 명령 논리 블록(217)으로부터 선(227)을 통하여 "카운트"신호를 수신한다. 이 카운트 신호는 상기의 명령 논리 블록(217)에서의 에포크 모듈로 값에 대응한다. 활성 타이머(215)는 이 카운트 신호를 이용하여, (명령 상태 레지스터에 의해 선택된) 에포크를 계수하고 "완료(complete)" 신호를 선(225)을 통하여 명령 논리 블록(217)으로 송신한다. 다음, 명령 논리 블록(217)은 게이팅된 클럭을 인에이블링시키고 (게이팅된 클럭에 동기화된) 시작 신호를 발생시킨다. 시작 신호와 게이팅된 클럭은 각각 선(219, 221)을 경유하여 논리 블록(125)에 결합된다. 명령 논리 블록(217)은 애플리케이션 신택스 블록(125)으로부터 선(220)을 통하여 "종료(done)" 신호를 수신한다. 명령 논리 블록(217)은 또한 그것이 명령 상태 레지스터로부터의 명령에 의하여 그 게이팅된 클럭을 인에이블링하거나 디스인에이블링 하도록 하는 회로를 포함한다.
클럭 인에이블 논리 블록(121)은 애플리케이션 신택스 논리 블록(125)이 지정된 타이밍 에포크의 특정 발생 시기에 활성화되도록 한다. 예를 들면, 클럭 인에이블 논리 블록(121)은 사전에 정의된 에포크시에 애플리케이션 신택스 논리블록(125)을 활성화시키고, 유휴 시간 동안에는 그 게이팅된 클럭을 디스에이블링시키도록 구성될 수 있으며, 따라서 애플리케이션 신택스(111)의 전력 소모를 제한할 수 있다. 더욱이, 클럭 인에이블 논리 블록(121)은 시스템 전체에 걸쳐 분산된 타이밍 에포크에 기초하여 자율 동작을 가능하게 한다. 따라서, 각 애플리케이션 신택스을, 그 기능이 호출될 필요가 있을 때에만 인에이블링되도록 허용함으로써, 데이터 처리의 시간-순서화(time-ordering) 및 효율적인 전력 관리는 모두 본 아키텍처의 고유의 특징이 된다.
도 4는 도 1에 도시된 애플리케이션 신택스 논리 블록(125)의 상세한 블록 다이어그램을 나타낸다. 도 1, 도 2, 도 3 및 도 4에서 동일한 인용부호는 동일한 구성요소를 나타낸다. 애플리케이션 신택스 논리 블록(125)은 애플리케이션 기능 논리 블록(256)을 포함하며, 이것은 외부 인터페이스(131) 선을 통하여 제공되는 사용자 데이터의 변환 등과 같은, 애플리케이션 신택스에 특유의 사전 정의된 기능을 수행한다. 즉, 애플리케이션 기능 블록(256)은 모든 애플리케이션 신택스에 공통인 인터페이스 구조의 일부분이 아닌 회로를 포함한다. 애플리케이션 논리 블록(125)은 또한, 인터페이스 액세스 논리 블록(123)으로부터는 명령 및 데이터를 그리고 클럭 인에이블 논리 블록(121)으로부터는 게이팅된 클럭 신호를 수신하는 명령/데이터 먹스/디먹스 블록(252)을 포함한다. 명령/데이터 먹스/디먹스 블록(252)은 인터페이스 액세스 논리 블록(123)으로부터 수신된 (명령/디코드 논리 블록(254)으로 인도되기 위한) 명령 및 (기능 논리 블록(256)으로 양방향 전송되기위한) 데이터를 추출한다.
명령/디코드 논리 블록(254)은 애플리케이션 논리 블록(125)의 제어기로 고려될 수도 있다. 이것은 선(262)을 통하여 애플리케이션 기능 논리 블록(256)의 동작을 제어한다. 즉, 명령/디코드 논리 블록(254)은 명령/데이터 믹스/디먹스 블록(252)을 통하여 인터페이스 액세스 논리 블록(123)으로부터 명령을 수신하고, 그 명령을 번역하여 애플리케이션 기능 논리 블록(256) 동작을 제어한다. 예로서 그 동작에는, (i) 애플리케이션 기능 논리 블록(256)의 구성, (ii) 외부 인터페이스(131) 선에 의해 제공된 사용자 데이터의 특정의 사전 정의된 변환을 호출하는 것 등이 있다. 명령을 완료하면, 애플리케이션 기능 논리 블록(256)은 선(264)을 통하여 명령/디코드 논리 블록(254)에게 "완료(complete)" 신호를 송신한다.
상술한 것처럼, 명령/디코드 논리 블록(254)에 의하여 수신된 선(219)상의 시작 신호는 애플리케이션 기능 논리 블록(256)의 호출을 동기화시키는 데에 이용된다. 명령/디코드 논리 블록(254)은 또한 "종료(done)" 신호를 발생시키고 그것을 (선(220)을 통하여) 클럭 인에이블 논리 블록(121)에게 전달하며, 클럭 인에이블 논리 블록(121)은 차례로 명령/디코드 논리 블록(254), 애플리케이션 기능 논리 블록(256) 및 명령/데이터 먹스/디먹스 블록(252)으로의 게이팅된 클럭을 디스에이블링시킨다. 이들 블록으로의 게이팅된-클럭을 디스에이블링시킴으로써 본질적으로 이들을 턴오프시킨다. 역으로, 게이팅된-클럭을 인에이블링시킴으로써 이들을 턴온시킨다.
앞에서 지적한 것처럼, 애플리케이션 신택스내에서 애플리케이션 기능 논리 블록(256)은 사전에 정의된 기능을 수행하도록 특정적으로 설계된다. 각각의 애플리케이션 신택스는 어떤 목적 기술(target technology)(예를 들면, 특정 마이크로 일렉트로닉스 집적 기술)을 위하여 사전에 설계되고, 구현되며 최적화된 애플리케이션 특정 기능을 정의한다. 상이한 데이터 및 신호 변환 기능을수행하는 일 세트의 애플리케이션 신택스가 라이브러리에 위치될 수 있다. 어떤 애플리케이션을 위한 시스템(예를 들면, 무선 통신용 모뎀)을 설계하는 경우에, 적절한 애플리케이션 신택스는 라이브러리로부터 선택되며 명령/데이터/타이밍 버스상에 위치되어, 소정의 기능을 수행을 할 수 있게 된다.
도 1 내지 도 4에 나타낸 실시예에 있어서, 명령 인수(command arguments)는 명령/데이터 버스(150)상에서 전송되고, 인터페이스 액세스 논리 블록(123) 및 클럭 인에이블 논리 블록(121)에 의하여 처리된다. 시간 인수는 타이밍 버스(153)상에서 전달되고 주로 클럭 인에이블 논리 블록(121)에 의하여 처리된다.
ASP 아키텍처는 일 세트의 애플리케이션 신택스가 동시에 호출되거나 (병렬처리), 시간적으로 스태거 호출되거나 (파이프라이닝 처리)또는 시간에 있어서 순차적으로 호출된다 (비-중첩 처리(non-overlapping)). 이러한 능력에 의하여 시스템 설계 선택 사항에서 상당한 융통성이 허용된다. 시간적 동시 호출(병렬 처리)은 고도의 처리 능력(processing throughput)이 실현될 수 있도록 한다. 시간적 스태거 호출(파이프라인 처리) 또는 시간적 순차 호출(invocations staggered in time)(비-중첩 처리)은 하나의 애플리케이션 신택스가 다른 애플리케이션 신택스에 대하여 일종의 프로세서의 역할을 하도록 허용한다. 각각의 애플리케이션 신택스의 시간(T) 인수는 호출 에포크의 배열을 결정하여, 다른 애플리케이션 신택스에 대한가장 효율적인 처리를 실현한다.
적절한 애플리케이션 신택스는 완전한 한 세트의 사용가능한 애플리케이션 신택스를 포함하는 라이브러리로부터 선택된다. 아키텍처 설계에서는 임의의 한 세트의 애플리케이션 신택스를 완전 접속된 토폴로지(topology)로서 상호접속되도록 할 수 있어, 임의의 두 애플리케이션 신택스간에 데이터 흐름이 가능하게 된다. 이러한 상호접속은 느슨한 결합(loose coupling)에 기초하고 있으며, 이 때문에 일 세트의 애플리케이션 신택스는 비동기적으로 동작할 수 있다.
본 발명의 ASP 집적 회로를 위한 설계 방법은 도 5에 도시된 플로우 다이어그램을 참조하며 상세히 설명될 것이다. 우선, 목적 제품(target product)에 대한 처리 사항이 분석되고 기본적인 애플리케이션 특정 프로세스들(예, 통신 제품의 경우 필터링, 복조, 디인터리빙(deinterleaving) 등)로 분해된다(프로세스 10). 다음, 식별된 처리 요구 사항을 민족시킬 수 있는 서브세트의 애플리케이션 신택스를 식별하기 위하여, 애플리케이션 특정 기능 블록(12)의 라이브러리가 탐색된다. 만약, 신규의 또는 특유의 애플리케이션 특정 처리 기능이 라이브러리에 포함되어 있지 않다고 식별되면, 그 신규의 또는 특유의 애플리케이션 처리의 요구 사항이, ASP 다목적 버스에 대한 전술한 인터페이스를 포함하는 애플리케이션 신택스에서 하드웨어 기술 언어(HDL; harware description language)를 이용하여 구현된다(프로세스 16). 신규 설계된 애플리케이션 신택스의 HDL은, 라이브러리에 존재하는 것으로 식별된 사전에 설계된 애플리케이션 신택스의 HDL파 함께 통합되어, 목적 ASP 집적 회로의 HDL을 형성한다(프로세스 18).
프로세스(20)에서 동작 레벨 시뮬레이션(behavioral level simulation)이 실행되어 내부 및 외부 인터페이스가 설계 사양을 만족시키는지의 여부가 확인된다. 동작 레벨 시뮬레이션이 프로세스(20)에서 실행되는 동시에 애플리케이션 특정 명령어 프로그램이 설계되어, 목적 애플리케이션 특정 ASIC의 처리 요구를 구현하도록 선택된 애플리케이션 신택스의 동작을 순서화하는 데에 이용될 수 있다 (프로세스 24). 다음, 집적 HDL은 ASP의 구현을 위하여 선택된 기술을 대상으로 하는 적절한 컴퓨터 지원 설계(computer-aided design ; CAD) 합성 도구에 의하여 합성된다 (프로세스 22). 프로세스(26)에서, 결과적 논리 구조는 프로세스(24)에서 설계된 애플리케이션 특정 명령어 프로그램과 결합되고, 그 목적 애플리케이션 특정 요구 사항과의 부합성을 확인하기 위하여, 게이트 레벨에서 시뮬레이션된다. 적절한 게이트 레벨의 논리 시뮬레이션이 완료되면, 그 설계는 ASIC 레이아웃 및 제조를 위하여 릴리스된다 (프로세스 28).
애플리케이션 신택스 라이브러리는 어떤 프로그래밍 언어에서의 명령어의 집합이라고 간주될 수도 있다. 사용자는 소기의 애플리케이션에 부합하는 프로그램 가능한 ASP를 구현하기 위하여 그 라이브러리로부터 적절한 명령어 서브세트를 선택할 수 있다. 명령어 세트는 목적 애플리케이션의 특정된 처리 요구 사항(예를 들면, 디지털 통신)과 부합하도록 접합될 수 있다. ASP 아키텍처는 명령어 세트내의 명령이 어떤 애플리케이션을 수행하기 위하여 협동적으로 작업하도록 결합될 수 있는 아키텍처이다. 이들 애플리케이션 특정 명령어 세트중 개별 원소들은 매우 복잡하지만 자주 사용되는 데이터 변환 타입을 애플리케이션 수준에서 기초 명령어로서어드레싱될 수 있는 단일 "신택스"로 변환하는 방식으로 설계된다. 이러한 타입의 신택스는 앞에서 논의한 "애플리케이션 신택스" 내지 "애플리케이션 요소"로 지칭된다. 이들 신택스의 물리적인 구현예가 도 1 내지 도 4와 관련하여 앞에서 언급한 애플리케이션 신택스(111, 112, 113)이다.
ASP 아키텍처내에서, 애플리케이션 신택스는 두 세트의 기본 인수 즉, 명령(C) 및 시간(T) 인수와 함께 호출된다. 소프트웨어 프로그래밍에서의 용어와 유사하게, 이 신택스의 구조는 "Syntax (C, T)"로 나타낸다. 호출된 경우에 각 신택스는 지정된 입력 배열, 데이터 구조 및/또는 명령을 애플리케이션 특정 변형 내지 맵핑을 적용함으로써 출력으로 변형시킨다. 신택스의 명령(C) 인수는 애플리케이션 신택스내에 삽입된 특정 제어 파라미터가 소기의 값으로 설정되도록 하여 애플리케이션 신택스에 의해 수행된 변형이 하나의 호출로부터 다른 호출로, 그 수행된 기능 변형 타입의 변경이 없이, 변할 수 있도록 허용한다. 예를 들면, 통신 애플리케이션 특정 프로세서(CASP)내에서, 어떤 애플리케이션은 필터의 대역폭이 변할 수 있도록 허용하는 명령 인수를 가지는 필터 기능이 되도록 정의될 수 있다. 신택스의 시간(T) 인수는 애플리케이션 신택스가 특정 시간 에포크에서 호출되도록 허용하고, 여기서 그 시간 인수(T)의 값은 애플리케이션 신택스가 호출되도록 예정된 시간 또는 연속 호출 사이의 시간 간격을 특정한다. 하드웨어에 구현된 각각의 신택스가 호출된 때에, 각각의 신택스는 지정된 입력 배열, 데이터 구조 및/또는 명령을 애플리케이션 특정 변형 내지 맵핑을 적용함으로써 출력으로 변형시킨다. 신택스의 명령(C) 인수는 애플리케이션 신택스내에 삽입된 특정된 제어 파라미터가소기의 값으로 세트되는 것을 허용하고 그리하여 애플리케이션 신택스에 의해 수행된 변형이 하나의 호출로부터 다른 호출로, 그 수행된 기능 변형 타입의 변경이 없이, 변할 수 있도록 허용한다. 예를 들면, 통신 애플리케이션 특정된 프로세서(CASP)내에서, 어떤 애플리케이션은 필터의 대역폭이 변할 수 있도록 허용하는 명령 인수를 가지는 필터 기능이 되도록 정의될 수 있다. 신택스의 시간(T) 인수는 애플리케이션 신택스가 특정 시간 에포크에서 호출되도록 허용하고, 여기서 그 시간 인수(T)의 값은 애플리케이션 신택스가 호출되도록 예정된 시간 또는 연속 호출 사이의 시간 간격을 특정한다.
본 발명의 원리를 따라서, ASP들은 설계의 합성 전 및 합성 후 단계 모두에서 프로그램될 수도 있다. 요구 분석, 기능 분해, 애플리케이션 라이브러리 탐색, 애플리케이션 신택스 집적 등을 포함하는 전체적인 설계 프로세스는 앞의 도 5의 내용에서 상세히 설명되었다. 합성 전 프로그래밍 가능성은 특히 집적 회로 설계자가 기능 블록의 HDL 모뎀의 적용을 통하여 각각의 기능 블록의 설계를 더욱 커스텀화시키는 것을 허용하는 프로그래밍 가능성의 준비와 관련된다. 합성 전 내지 합성 후 프로그래밍 가능성에 대한 예시적 특성의 요약이 PSK 복조기의 내용으로서 표 1에 나타나 있다. 당업자라면 어떤 특성이 합성 전 또는 합성 후에 프로그래밍 가능하도록 구현될 수 있다는 것을 쉽게 인식할 수 있을 것이고, 반면에 다른 특성은 다른 어떤 단계에서 구현되는 것이 바람직하다 (예, 모뎀에서 4진 대 이진 위상 시프트 키 입력은 합성 전에 호출되는 것이 바람직하고, 반면에 모뎀의 보 속도(baud rate)는 후합성에서 프로그래밍되는 것이 바람직함)는 것도 쉽게 인식할 수 있을것이다. 합성 전 프로그래밍 가능성의 구현은 HDL 모뎀을 바라지 않는 기능은 배제하도록 조언되고 사용자 요구 기능은 추가될 수 있도록 하기 위하여 고도의 모듈러(modular) 및 조언 방식으로 배열하는 것만큼이나 간단할 수 있다. 또는, 매우 정교한 방식으로, 프리컴파일러 플래그(flag) 또는 매크로(macro)가 특별한 파라미터의 세팅을 통하여 특별한 기능의 호출을 제어하기 위하여 사용될 수 있다.

Claims (19)

  1. 상위 명령어들의 세트(a set of high-order instructions)를 실행하기 위한 프로그램가능 애플리케이션 특정 프로세서 아키텍처(programmable application specific processor architecture)에 있어서,
    지정된 애플리케이션을 협력하여 수행하도록 상호접속된 선택된 세트의 프로그램 가능한 애플리케이션 요소들을 포함하고, 상기 애플리케이션 요소들 각각은 상기 상위 명령어들의 세트 내의 대응하는 상위 명령어에 의해 호출되며,
    상기 애플리케이션 요소들중 적어도 한 요소는
    인터페이스 액세스 로직을 제공하며, 시간 인수(a time argument)를 포함하는 대응하는 상위 명령어를 수신하는 인터페이스 블록과,
    상기 인터페이스 블록에 결합되어 상기 대응하는 상위 명령어를 수신하며, 상기 대응하는 상위 명령어에 의해 지시된 상위 함수(a high-order function)를 실행하는 애플리케이션 논리 블록과,
    상기 인터페이스 블록 및 상기 애플리케이션 논리 블록에 결합되어 타이밍 제어를 제공하며, 상기 시간 인수에 의해 결정되는 호출 시간에 상기 애플리케이션 논리 블록을 활성화하는 클록 논리 블록을 포함하는
    프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  2. 제 1 항에 있어서,
    상기 애플리케이션 요소들 간에 신호를 통신하기 위해 상기 애플리케이션 요소들 모두를 접속하는 버스를 더 포함하는 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  3. 제 1 항에 있어서,
    상기 애플리케이션 논리 블록은 파라미터를 이용하여(parametrically) 프로그램 가능한 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  4. 제 1 항에 있어서,
    상기 애플리케이션 명령어들 중 일부는 상기 대응하는 애플리케이션 요소들이 병렬 처리 모드에서 동작하도록 상기 대응하는 애플리케이션 요소들을 동시에 호출하도록 프로그램되는 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  5. 제 1 항에 있어서,
    상기 애플리케이션 명령어들 중 일부는 상기 대응하는 애플리케이션 요소들이 파이프라인 처리 모드에서 동작하도록 시간 교대 방식(a staggered in time manner)으로 상기 대응하는 애플리케이션 요소들을 호출함으로써 프로그램되는 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  6. 제 2 항에 있어서,
    상기 각각의 애플리케이션 요소는 상기 애플리케이션 요소들 간의 신호의 통신을 위해 상기 대응하는 애플리케이션 요소를 상기 버스와 인터페이스시키는 인터페이스 블록을 포함하는 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  7. 제 1 항에 있어서,
    상기 애플리케이션 논리 블록은 활성 상태(an active state) 및 전렬 다운 상태(a power-down state)를 가지며,
    상기 클록 논리 블록은 상기 애플리케이션 논리 블록을 상기 활성 상태 및 상기 전력 다운 상태중 한 상태로 스위칭하는
    프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  8. 제 7 항에 있어서,
    상기 클록 논리 블록은 시작 신호를 상기 애플리케이션 논리 블록으로 전송하여 상기 애플리케이션 논리 블록을 상기 활성 상태로 스위칭하고,
    상기 클록 논리 블록은 종료 신호(a done signal)를 상기 애플리케이션 논리 블록으로 전송하여 상기 애플리캐이션 논리 블록을 상기 전력 다운 상태로 스위칭하는 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  9. 제 1 항에 있어서,
    상기 애플리케이션 요소들 중 적어도 하나는 상기 지정된 애플리케이션을 구현하기 위한 프로그램을 포함하고, 상기 애플리케이션 요소들 중 한 요소는 구성(configuration) 명령어 및 호출 시간 명령어 중 적어도 하나를 다른 애플리케이션 요소에 전송함으로써 적어도 하나의 상기 다른 애플리케이션 요소를 호출하는 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  10. 제 1 항에 있어서,
    상기 애플리케이션 요소들 중 적어도 하나는 또 다른 애플리케이션 요소로부터 구성 명령어 및 호출 시간 명령어 중 적어도 하나를 수신하는 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  11. 제 2 항에 있어서,
    상기 애플리케이션 요소들 중 적어도 두 개는 클러스터(cluster)를 형성하고, 상기 클러스터내에 포함된 상기 애플리케이션 요소들은 클러스터 버스를 통해 서로 통신하고, 상기 클러스터 버스는 상기 버스와 상이한 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  12. 제 1 항에 있어서,
    상기 애플리케이션 요소들 중 적어도 하나는 공유 메모리 요소인 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  13. 제 12 항에 있어서,
    상기 애플리케이션 요소들 중 적어도 하나는 상기 공유 메모리 요소로부터 입력 데이터를 수신하고, 상기 공유 메모리 요소의 메모리에 출력 데이터를 저장하는 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  14. 제 13 항에 있어서,
    상기 애플리케이션 요소들 중 적어도 하나는 적어도 하나의 다른 애플리케이선 요소에 제어 신호를 전송함으로써 상기 적어도 하나의 다른 애플리케이션 요소의 동작을 제어하는 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  15. 제 14 항에 있어서,
    상기 제어를 하는 애플리캐이션 요소는 상기 제어된 애플리케이션 요소로 클럭 신호를 더 전송하며, 상기 제어된 애플리케이션 요소의 동작은 상기 클럭 신호에 의해 스케줄되는 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  16. 제 1 항에 있어서,
    상기 애플리케이션 요소들 중 적어도 하나는 마이크로코드(microcode)를 포함하는 일반 상태 머신(generic state machine)을 포함하며, 상기 상태 머신은 상기 마이크로코드와 함께 동작하여 그 대응하는 상위 명령어를 구현하는 프로그램가능 애플리케이션 특정 프로세서 아키텍처.
  17. 통신 시스템에서 명령어들의 실행을 위한 프로그램가능 프로세서 아키텍처에 있어서,
    통신 시스템에서 유용한 다수의 통신 기능을 협동적으로 수행하기 위해, 명령/데이터/타이밍 버스에 상호접속된 복수의 물리적 애플리케이션 요소를 갖는 집적 회로를 포함하며,
    상기 애플리케이션 요소들 중 일부는,
    사전정의된 통신 기능을 수행하는 애플리케이션 요소 논리 블록과,
    상기 각각의 애플리케이션 요소에 타이밍 신호를 제공하고, 그 기능이 필요한 때에 상기 애플리케이션 요소 논리 블록을 인에이블시키는 클럭 인에이블 논리 블록과,
    상기 애플리케이션 요소 논리 블록이 상기 명령/데이터/타이밍 버스를 통해 다른 애플리케이션 요소와 명령 및 데이터를 송수신할 수 있도록 하는 인터페이스 논리 액세스 블록을 구비하며,
    상기 대응하는 애플리케이션 요소와 관련된 명령어에 응답하고,
    상기 각각의 명령어는,
    상기 애플리케이션 요소의 제어 파라미터를 설정하는 명령 인수(a command argument)와,
    상기 애플리케이션 요소가 호출되는 시간을 결정하는 시간 인수(a time argument)를 갖는
    프로그램가능 프로세서 아기텍처.
  18. 한 세트의 상위 명령어들을 실행하기 위한 프로그램 가능 프로세서 아키텍처에 있어서,
    지정된 애플리케이션을 협력하여 수행하기 위해 명령/데이터/타이밍 버스에 상호접속된 선택된 세트의 프로그램 가능한 애플리케이션 요소들을 포함하는 집적 회로를 포함하고,
    대응하는 애플리케이션 요소와 관련된 상위 명령어에 응답하며,
    상기 애플리케이션 요소들 중 일부는 각각,
    사전정의된 기능을 수행하는 애플리케이션 논리 블록과,
    상기 각각의 애플리케이션 요소에 타이밍 신호를 제공하고, 그 기능이 필요한 때에 상기 애플리케이션 논리 블록을 인에이블시키는 클럭 논리 블록과,
    상기 명령/데이터/타이밍 버스를 통해 다른 애플리케이션 요소들과 명령 및 데이터를 송수신하는 인터페이스 블록을 구비하며,
    상기 각각의 명령어는,
    상기 대응하는 애플리케이션 요소의 제어 파라미터들을 설정하는 명령 인수(a command argument)와,
    상기 대응하는 애플리케이션 요소가 호출되는 시간을 결정하는 시간 인수(a time argument)를 갖는
    프로그램가능 프로세서 아키텍처.
  19. 애플리케이션 특정 프로세서 설계 방법에 있어서,
    (a) 애플리케이션 요소들의 라이브러리로부터 한 세트의 애플리케이션 요소를 선택하는 단계 -상기 선택된 애플리케이션 요소들은 각각 한 세트의 상위 명령어에 대응하고, 상기 상위 명령어들은 각각 시간 인수를 포함함- 와,
    (b) 상기 대응하는 상위 명령어에 포함된 인수들을 지정함으로써 상기 선택된 애플리케이션 요소들을 각각 프로그래밍하는 단계와,
    (c) 상기 대응하는 상위 명령어에 포함된 시간 인수에 의해 결정된 호출 시간에 상기 선택된 애플리케이션 요소들을 각각 활성화시켜, 상기 선택된 애플리케이션 요소들이 협력하여 지정된 애플리케이션을 수행하도록 하는 단계를 포함하는
    애플리케이션 특정 프로세서 설계 방법.
KR1019960706511A 1994-05-17 1995-05-17 애플리케이션특정프로세서및그설계방법 KR100358631B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/243,963 US5623684A (en) 1994-05-17 1994-05-17 Application specific processor architecture comprising pre-designed reconfigurable application elements interconnected via a bus with high-level statements controlling configuration and data routing
US08/243,963 1994-05-17

Publications (2)

Publication Number Publication Date
KR970703560A KR970703560A (ko) 1997-07-03
KR100358631B1 true KR100358631B1 (ko) 2003-01-24

Family

ID=22920817

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960706511A KR100358631B1 (ko) 1994-05-17 1995-05-17 애플리케이션특정프로세서및그설계방법

Country Status (8)

Country Link
US (1) US5623684A (ko)
EP (1) EP0760128A4 (ko)
JP (1) JP3202750B2 (ko)
KR (1) KR100358631B1 (ko)
CN (1) CN1099636C (ko)
AU (1) AU2636895A (ko)
RU (1) RU2147378C1 (ko)
WO (1) WO1995031778A1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799091A (en) * 1996-05-24 1998-08-25 Lsi Logic Corporation Single chip solution for multimedia GSM mobile station systems
US6195593B1 (en) 1997-09-03 2001-02-27 Seiko Epson Corporation Reusable modules for complex integrated circuit devices
US6138229A (en) * 1998-05-29 2000-10-24 Motorola, Inc. Customizable instruction set processor with non-configurable/configurable decoding units and non-configurable/configurable execution units
BR9914200A (pt) 1998-09-30 2002-01-22 Cadence Design Systems Inc Métodos para projetar um sistema de circuito, para expandir uma metodologia existente para avaliar a viabilidade de um projeto de circuito, para realizar uma avaliação de viabilidade para um projeto de circuito, para refinar uma primeira regra de decisão para um projeto de circuito, para formar uma segunda regra de decisão para um projeto de circuito, para organizar os dados de experiência de um projetista relativos a uma pluralidade de blocos de circuito pré-projetados, para aumentar a eficiência de distribuição de lógica de cola e para distribuir uma pluralidade de elementos lógicos de cola entre os blocos de projeto e distribuir lógica de cola para execução em um esquema de projeto de dispositivo de circuito integrado, para converter uma interface especìfica de um bloco de circuito, para selecionar um coletor de circuito, para projetar um dispositivo que incorpora o projeto e habilitar um teste do dispositivo, para verificar o correto funcionamento de um projeto de circuito e para desenvolver uma bancada de teste de nìvel comportamental, interface de colar e sistema de interface
US6968514B2 (en) 1998-09-30 2005-11-22 Cadence Design Systems, Inc. Block based design methodology with programmable components
JP4077578B2 (ja) 1999-04-30 2008-04-16 松下電器産業株式会社 集積回路装置の設計方法
JP2000315222A (ja) 1999-04-30 2000-11-14 Matsushita Electric Ind Co Ltd 集積回路装置の設計用データベース及び集積回路装置の設計方法
US7062769B1 (en) 1999-07-07 2006-06-13 National Semiconductor Corporation Object-oriented processor design and design methodologies
JP3974300B2 (ja) 1999-11-18 2007-09-12 松下電器産業株式会社 Ipベースlsi設計システムおよび設計方法
US7080183B1 (en) * 2000-08-16 2006-07-18 Koninklijke Philips Electronics N.V. Reprogrammable apparatus supporting the processing of a digital signal stream and method
US6630964B2 (en) * 2000-12-28 2003-10-07 Koninklijke Philips Electronics N.V. Multi-standard channel decoder for real-time digital broadcast reception
US20020112219A1 (en) * 2001-01-19 2002-08-15 El-Ghoroury Hussein S. Matched instruction set processor systems and efficient design and implementation methods thereof
US20020116166A1 (en) * 2001-02-13 2002-08-22 El-Ghoroury Hussein S. Matched instruction set processor systems and method, system, and apparatus to efficiently design and implement matched instruction set process systems using interconnected design components
US7055019B2 (en) 2001-02-13 2006-05-30 Ellipsis Digital Systems, Inc. Matched instruction set processor systems and method, system, and apparatus to efficiently design and implement matched instruction set processor systems by mapping system designs to re-configurable hardware platforms
US6938237B1 (en) 2001-06-29 2005-08-30 Ellipsis Digital Systems, Inc. Method, apparatus, and system for hardware design and synthesis
EP1286279A1 (de) * 2001-08-21 2003-02-26 Alcatel Konfigurations tool
US7266487B1 (en) 2001-08-29 2007-09-04 Ellipsis Digital Systems, Inc. Matched instruction set processor systems and method, system, and apparatus to efficiently compile hardware and software designs
JP2003316838A (ja) * 2002-04-19 2003-11-07 Nec Electronics Corp システムlsiの設計方法及びこれを記憶した記録媒体
JP4202673B2 (ja) * 2002-04-26 2008-12-24 株式会社東芝 システムlsi開発環境生成方法及びそのプログラム
US7131097B1 (en) * 2002-09-24 2006-10-31 Altera Corporation Logic generation for multiple memory functions
AU2002363920A1 (en) * 2002-10-29 2004-05-25 Freescale Semiconductor, Inc. Method and apparatus for selectively optimizing interpreted language code
US7016695B1 (en) 2002-12-11 2006-03-21 National Semiconductor Corporation Apparatus and method for processing a deterministic data flow associated with a wireless communication signal
US7380151B1 (en) 2002-12-11 2008-05-27 National Semiconductor Corporation Apparatus and method for asynchronously clocking the processing of a wireless communication signal by multiple processors
CN1315037C (zh) * 2002-12-27 2007-05-09 联想(北京)有限公司 虚拟信息流总线接口单元及其数据处理方法
US7017127B1 (en) 2003-06-02 2006-03-21 National Semiconductor Corporation Method and system for enabling energy efficient wireless connectivity
US7193553B1 (en) 2004-12-07 2007-03-20 National Semiconductor Corporation Analog to digital converter with power-saving adjustable resolution
US6980148B1 (en) 2004-12-07 2005-12-27 National Semiconductor Corporation Pipelined analog to digital converter that is configurable based on wireless communication protocol
US7205923B1 (en) 2004-12-07 2007-04-17 National Semiconductor Corporation Pipelined analog to digital converter that is configurable based on mode and strength of received signal
US9075623B2 (en) * 2012-01-18 2015-07-07 International Business Machines Corporation External auxiliary execution unit interface for format conversion of instruction from issue unit to off-chip auxiliary execution unit
US9536535B2 (en) * 2012-03-30 2017-01-03 Intel IP Corporation Decoding wireless in-band on-channel signals
EP3143603B1 (en) * 2014-05-16 2024-02-21 Analog Devices International Unlimited Company Configuring signal-processing systems
US10353681B2 (en) 2014-05-20 2019-07-16 Honeywell International Inc. Systems and methods for using error correction and pipelining techniques for an access triggered computer architecture
US9747197B2 (en) 2014-05-20 2017-08-29 Honeywell International Inc. Methods and apparatus to use an access triggered computer architecture
CN105435455A (zh) * 2016-01-26 2016-03-30 青岛大学 一种可调式计数跷跷板
CN111988417B (zh) * 2020-08-28 2022-07-19 电子科技大学 物联网终端的通信控制方法
CN112463723A (zh) * 2020-12-17 2021-03-09 王志平 一种微内核阵列的实现方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62189739A (ja) * 1986-02-17 1987-08-19 Hitachi Ltd 半導体集積回路装置
JPS63308343A (ja) * 1987-06-10 1988-12-15 Matsushita Electric Ind Co Ltd 半導体集積回路
US5197016A (en) * 1988-01-13 1993-03-23 International Chip Corporation Integrated silicon-software compiler
US4951221A (en) * 1988-04-18 1990-08-21 General Electric Company Cell stack for variable digit width serial architecture
CN1016815B (zh) * 1988-05-20 1992-05-27 武汉市半导体器件厂 通用测试,控制模块
US5173864A (en) * 1988-08-20 1992-12-22 Kabushiki Kaisha Toshiba Standard cell and standard-cell-type integrated circuit
US5283753A (en) * 1991-07-25 1994-02-01 Motorola, Inc. Firm function block for a programmable block architected heterogeneous integrated circuit
JP2791243B2 (ja) * 1992-03-13 1998-08-27 株式会社東芝 階層間同期化システムおよびこれを用いた大規模集積回路

Also Published As

Publication number Publication date
WO1995031778A1 (en) 1995-11-23
EP0760128A1 (en) 1997-03-05
JP3202750B2 (ja) 2001-08-27
RU2147378C1 (ru) 2000-04-10
US5623684A (en) 1997-04-22
JPH10507013A (ja) 1998-07-07
AU2636895A (en) 1995-12-05
CN1157662A (zh) 1997-08-20
EP0760128A4 (en) 2005-02-09
KR970703560A (ko) 1997-07-03
CN1099636C (zh) 2003-01-22

Similar Documents

Publication Publication Date Title
KR100358631B1 (ko) 애플리케이션특정프로세서및그설계방법
US5867400A (en) Application specific processor and design method for same
US9396161B2 (en) Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US7895416B2 (en) Reconfigurable integrated circuit
CN1653446B (zh) 具有可配置执行单元的高性能混合处理器
Hartenstein et al. KressArray Xplorer: a new CAD environment to optimize Reconfigurable Datapath Array
KR100910777B1 (ko) 적응성 연산 집적 회로 및 적응성 연산 방법
US20090037692A1 (en) Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US20060003757A1 (en) Wireless spread spectrum communication platform using dynamically reconfigurable logic
US7478031B2 (en) Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information
Duller et al. Parallel Processing-the picoChip way
Becker et al. Design and implementation of a coarse-grained dynamically reconfigurable hardware architecture
WO2001073618A2 (en) Designer configurable multi-processor system
Pillement et al. DART: a functional-level reconfigurable architecture for high energy efficiency
WO2001055917A1 (en) Improved apparatus and method for multi-threaded signal processing
WO2003050705A2 (en) Method and system for managing hardware resources to implement system acquisition using an adaptive computing architecture
Hartenstein et al. A dynamically reconfigurable wavefront array architecture for evaluation of expressions
Verbauwhede et al. The happy marriage of architecture and application in next-generation reconfigurable systems
Becker et al. Fast Communication Mechanisms in Coarse-grained Dynamically Reconfigurable Array Architectures.
Pulley et al. Software defined baseband processing for 3G base stations
JP2006510129A (ja) システム・オン・チップへのアレイ・プロセッサのモジュラ統合
ébastien Pillement et al. DART: A Functional-Level Reconfigurable Architecture for High Energy Efficiency
Chou et al. Adaptive Computing as the
Tan et al. Dynamically programmable parallel processor (DPPP): A novel reconfigurable architecture with simple program interface
Chou et al. Adaptive Computing as the Enabling Technology for SDR

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20091005

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee