KR100784412B1 - 개선된 멀티-스레드 신호처리 방법 및 장치 - Google Patents
개선된 멀티-스레드 신호처리 방법 및 장치 Download PDFInfo
- Publication number
- KR100784412B1 KR100784412B1 KR1020027009711A KR20027009711A KR100784412B1 KR 100784412 B1 KR100784412 B1 KR 100784412B1 KR 1020027009711 A KR1020027009711 A KR 1020027009711A KR 20027009711 A KR20027009711 A KR 20027009711A KR 100784412 B1 KR100784412 B1 KR 100784412B1
- Authority
- KR
- South Korea
- Prior art keywords
- thread
- kernel
- kernel element
- functional
- operations
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Logic Circuits (AREA)
- Mobile Radio Communication Systems (AREA)
- Advance Control (AREA)
Abstract
시스템 및 회로 설계방법 및 장치는 멀티-스레드 표현을 이용하여 일반적 함수적인 정의(10)를 실행한다. 이때, 상기 멀티-스레드 표현은 하나 또는 그 이상의 대응하는 커널 논리 요소들(18)을 이용하여 평행 프로세싱을 위해 프로파일된다. 바람직하게는, 통신(26), 테트워킹, 또는 미디어 프로세싱 기능성 또는 알고리즘(12)은 하나 또는 그 이상의 스레드 세그멘트를 인증하도록 함수적으로 분석되고 기호적으로 표현된다. 이때, 상기 스레드 세그멘트들은 하나 또는 그 이상의 특정한 고정되고 매개변수화가 가능하고 프로그래밍이 가능하거나 또는 재구성이 가능한 논리 커널에 따라서 시간적 및/또는 비시간적 함수들을 사용하여 각각 프로파일된다(14).
멀티-스레드, 커널, 프로파일링, 동작, 시퀀스, 연산자
Description
본 발명은 전자 데이터와 신호의 처리에 관한 것으로, 더욱 상세하게는 고성능 멀티-스레드(multi-threaded) 정보처리기법에 관한 것이다.
디지탈 정보처리를 위한 연산장치에 있어서 고성능(high-performance)을 달성하기 위한 전통적인 방식들은 우수한 수준의 평행도(parallelism)를 제공하는 아키텍처(architectures)의 설계에 집중되고 있다. 이것은 하드웨어의 평행도와 소프트웨어의 동시성을 개발할 수 있는 프로세서와 인스트럭션-세트 아키텍처(instruction-set architectures)의 설계를 통해서 통상적으로 달성된다.
고성능은 통상적으로 초당 상당한 횟수의 동작을 실행할 수 있는 능력으로서 정의된다. 이러한 고성능의 가치는 동작의 형식에 강하게 의존하며, 통상적으로는 적용 대상의 형식에 의존한다.
고성능 정보처리장치의 전통적인 설계는 다음에서 열거하는 것과 같은 처리장치의 다수 키 속성을 한정하도록 컴퓨터 아키텍처의 원리들에 의존한다.
·인스트럭션-세트 아키텍처; 인스트럭션의 실제적 프로그래머-가시적 세트(actual programmer-visible sets)를 의미하며, 하드웨어와 소프트웨어 사이의 경계로서 기능함.
·조직; 메모리 시스템, 버스 구조(bus structure) 및 내부 CPU 설계와 같은 컴퓨터 설계의 높은 수준의 관점을 의미함.
·하드웨어; 특정하게 세부화된 논리 설계, 회로실장(circuit implementation) 및 패캐징(packaging)을 의미함.
특정 목적의 프로세서(즉, 특정 용도로 만들어진 프로세서)에서 통상적으로 요구되는 속성인 고성능을 달성하기 위해서는, 다음의 세가지 방법이 있다.
(1) 인스트럭션-레벨 평행도: 하드웨어에서 평행도를 개발하는 이러한 방식은 동시 처리 스레드로 분석될 수 있는 필드를 갖는 매우 길거나 벡터화한 명령어의 사용을 통해서 평행 스레드를 처리하는 것이다. 이러한 평행도를 개발하기 위한 메카니즘은 스케쥴러(scheduler)를 통해서 실현되는데, 이 스케쥴러는 다수의 데이터패스(datapath) 처리 유니트들중 하나로 동작을 계획한다. 이러한 계획은 스케쥴러의 제조가 어렵고 원하는 처리량을 달성하는데 충분한 평행도를 인증하기가 어려운 결점들을 가지고 있다.
(2) 슈퍼스칼라 기법(superscalar technique): 이러한 방식은 고성능을 달성하기 위하여 미세 구조의 고도로 파이프라인된(fine-grain highly-pipelined) 싱글-스레드 프로세서 아키텍처를 개발하였다. 이러한 계획은 매우 높은 성능을 달성할 수 있지만, 단지 작은 등급의 동작만을 위한 것이다. 특정한 데이터패스 아키 텍처에 잘 어울리지 않는 동작들에 대하여 슈퍼스칼라 설계의 성능은 상당히 줄어들게 된다. 그러므로, 슈퍼스탈라 기법은 높은 신호처리 콘텐츠를 갖는 광범위한 어플리케이션(applications)에는 적합하지 않다.
(3) 메모리 계위 기법(memory hierarchy techniques): 느린 메모리들에 대한 메모리 접근의 대기시간을 감추는 것으로, 느린 메모리의 대기시간을 효과적으로 감추기 위하여 프로세서 유니트들과 느린 메노리 사이에서 빠른 메모리들, 즉 캐쉬(cache)들을 현명하게 사용하여 전체 장치의 성능을 증가시키도록 마이크로프로세서 설계 등의 분야에서 광범위하게 사용되어 왔다.
통상적으로, 다중 프로세서 장치는 연산선능을 개선시키기 위해서 멀티-스레드 프로세싱(multi-threaded processing)을 채용한다. 멀티-스레드 프로세싱은 연산 자원의 유용성, 즉 전체 처리성능을 향상시키기 위한 방식으로 잘 알려져 있다. 그러나, 통상의 멀티-스레드 프로세싱은 복잡하게 분배되거나 네트워크화된 컴퓨터 노드들을 사용하여 실행된다. 그런데, 이것들은 저급의 논리나 회로 수준에서는 용이하게 재구성이 이루어지지 않으며, 다중모드 상호통신 알고리즘이나 네트워킹 프로토콜과 같은 진보된 함수적 문제를 해결하는데 만족스럽지 못하다. 따라서, 멀티-스레드 프로세싱의 개선이 요구되고 있다.
본 발명은 기능상의 성능을 개선하기 위해서 멀티-스레드 디지탈 정보(신호 또는 데이타 표현)를 처리하기 위한 설계와 실행방법, 프로세서 아키텍처 및 장치 에 관한 것이다. 바람직하게는, 하나 또는 그이상의 멀티-스레드 표현을 포함하도록 일반 장치설계 또는 함수적인 정의, 알고리즘, 전자신호, 또는 데이타 파일이 초기에 제공된다. 그와같은 초기의 프로토타입 설계나 기능은 프로파일되거나 그렇지 않으면 평행도나 효과적인 유사처리를 위해서 특정화된다. 특히, 함수적으로 사용하거나 그렇지 않으면 시간적 및/또는 비시간적 기능상의 고려사항들을 이용하여 하나 또는 그 이상의 대응 고정되고 매개변수화되고 프로그래밍이 가능하거나 구성가능한 논리 유니트들 또는 동등한 다른 기능상의 신호 처리 커널 또는 요소에서 실행된다.
바람직하게는, 디지탈 통신 및/또는 네트워킹 및/또는 미디어 처리장치 설계에 대한 응용과 같이 비교적 복잡한 장치 기능성은 미리 측정화된 시스템 설계 규칙, 수학적인 동작, 동작의 시퀀스나 매개변수에 의해서 분석되어지고, 다음에는 하나 또는 그이상의 알고리즘, 동작의 특정 시퀀스들, 메모리 접근의 패턴들, 또는 세크멘트들(즉, 단일 또는 다중 스레드)을 인증하도록 기호적으로 표현되거나 또는 도식적으로 표현된다. 이때, 위에서 열거한 것들은 하나 또는 그 이상의 특정하게 고정되고 매개변수화가 가능하고 프로그래밍이 가능하거나 또는 구성가능한 논리 유니트 또는 커널 요소들을 사용하여, 프로파일되거나 구성되거나 또는 최적화한 동작 또는 실행을 위해서 특정화된다.
그러한 요소는 구조와 구성가능성이 프로파일링을 통해서 결정되는 데이터패스, 구조와 구성가능성이 프로파일링을 통해서 결정되는 시퀀서/유한 상태 머신(finite-state-machine), 및 로컬 메모리 특성을 이끌어내도록 지역성(locality)를 사용하고 프로파일링 메모리 접근을 통해서 구조가 결정되는 로컬 메모리에 의해서 제공된다. 임의적으로, 하나 또는 그이상의 커널 요소는 소프트웨어나 프로그래밍이 가능한 논리 또는 이들의 조합에 의해서 전적으로 실행된다. 또한, 위에서 언급하고 있는 “프로파일링”은 각각의 모듈과 연관된 하나 또는 그 이상의 구성가능한 구조들을 한정하도록 하나 또는 그 이상의 시스템이나 기능모듈의 자동화 처리 및/또는 수동처리를 의미한다.
도 1은 본 발명의 바람직한 실시예에 따른 소프트웨어 및/또는 하드웨어에서의 실행을 위한 방법론과 도구 아키텍처의 다이아그램이다.
도 2A 및 2B는 본 발명의 일 실시양태를 실행하기 위한 함수적인 블록 다이아그램이다.
도 3은 본 발명의 다른 실시양태를 보여주는 함수적인 다이아그램이다.
도 4는 본 발명의 재구성 가능한 실시양태를 보여주는 함수적인 다이아그램이다.
도 5는 본 발명의 커널 실시양태를 보여주는 함수적인 다이아그램이다.
도 6은 본 발명의 인터페이스 실시양태를 보여주는 함수적인 다이아그램이다.
도 7은 본 발명의 하나 또는 그 이상의 실시양태를 실행하기 위한 함수적 동작들을 보여주는 장치 방법론 흐름도이다.
도 8은 본 발명의 하나 또는 그 이상의 실시양태를 실행하기 위한 소프트웨어 코드 스터브를 나타낸 도면이다.
도 9A 및 9B는 본 발명의 하나 또는 그 이상의 응용을 보여주는 함수적 다이아그램이다.
본 발명은 처리성능을 개선시키기 위해서 단일 또는 다중의 스레드, 또는 디지털 데이터, 신호들의 동등하게 분할된 프로세싱, 또는 함수적 표현들을 자동화 설계 및 실행을 이용하여 처리할 수 있게 한다. 먼저, 장치설계나 함수적인 정의, 알고리즘, 전자신호, 또는 데이타 파일은, 하나 또는 그 이상의 장치 설계나 기능 모듈들이 프로파일되고 구성되거나 또는 평행 또는 동시성 처리를 위해 특정화되는 경우, 일정한 단일 또는 다중의 스레드 표현을 제공한다.
예를 들면, 다중 스레드 프로토타입은 고정되고 매개변수화가 가능하고 프로그래밍이 가능하거나 구성가능한 논리유니트 또는 다른 신호처리 커널이나 요소에서 실행되거나 사용된다. 그러므로, 디지탈 커뮤니케이션, 네트워킹 또는 멀티미디어 응용과 같은 복잡한 장치 기능성은 장치 설계 규칙, 수학적 동작, 동작의 시퀀스, 또는 매개변수들에 따라 분석된다. 그런후에는, 일정한 단일 또는 다중 알고리즘, 동작의 특정한 시퀀스, 메모리 접근의 패턴들, 또는 세그멘트들을 인증하도록 기호화되거나 도식적으로 표현된다. 이때, 각각의 스레드는 고정되고 매개변수화가 가능하고 프로그래밍이 가능하거나 구성가능한 논리유니트 또는 다른 신호처리 커 널이나 요소를 이용하여 동작이나 실행을 최적화하도록 프로파일되거나 특정화된다.
임의적으로, 데이타패스 구조는 프로파일링에 의해서 결정됨에 따라서, 단일 또는 다중 스레드 요소, 프로파일링을 통해서 결정된 구조와 구성가능성을 갖는 시퀀서 및/또는 동등한 유한 상태 머신(finite-state-machine), 및 로컬 메모리 특성을 이끌어내도록 메모리 접근성과 지역성(locality)을 프로파일링함에 의해서 결정된 구조를 갖는 로컬 메모리로 구성된다.
여기에서 사용된 바와 같이, 프로파일링 용어는 상호연결, 신호, 논리, 회로 등과 같은 하나 또는 그 이상의 함수적인 요소들이나 설계 목적물을 선택하거나 할당함에 의해서, 각각의 모듈과 연관된 하나 또는 그 이상의 구성가능한 구조물들을 한정하거나 카테고리화 하기 위하여, 하나 또는 그 이상의 시스템이나 기능 모듈의 분류, 해석, 컴퓨터 자동화처리 및/또는 수동 처리를 의미하는 것으로 이해된다. 바람직하게는, 프로파일링은 하나 또는 그 이상의 사전에 및/또는 동적으로 한정된 표준들 또는 함수적 규칙 조합에 따라서 달성된다.
일반적으로, 컴퓨터 자동화 및/또는 수동 개발기법에 있어서, 단일 또는 다중의 스레드 설계는 프로토타입 시스템을 나타내는 제 1 레벨의 기능적 정의를 초기에 제공함으로써 처리된다. 이때, 동등한 기능성을 나타내는 기호화된 다른 레벨의 기능적 정의는 그것으로부터 발생되거나 효과적으로 프로파일된다. 이러한 계층적 설계 계획에 있어서, 발생된 기호화 표현은 바람직하게는 하나 또는 그 이상의 기능적 레벨에서 시스템 설계와 연관된 특정 스레드들을 인증한다.
각각의 스레드는 상응하는 커널 요소들에 의해서 처리되도록 프로파일되며, 하나 또는 그 이상의 동작 공통 세트는 주어진 스레들(즉, 1 대 1, 다중 대 1, 또는 1 대 다중 스레드 대 커널 관계)에 대하여 인증된다. 각각의 스레드는 연산동작, 제어 조작의 시퀀스, 및/또는 메모리 접근 동장 또는 관련된 메모리 위치와 함수적인 모듈들이나 시스템을 실행하도록 유용화된 각각의 연산자 세트에 대하여 시퀀스 또는 스케쥴링 정보를 인증하도록 계획된다.
그러므로, 본 발명의 개발 방법론을 사용하는 다중 스레드 처리 아키텍처는 대응 스레드에 의해서 표현된 일정 기능을 처리하는 커널 요소세트, 및 다른 대응 스레드에 의해서 표현된 다른 기능을 처리하는 동일 프로토타입 설계의 다른 커널 요소세트를 포함한다. 이렇게 분할되거나 분배된 처리방법에 있어서, 각각의 스레드는 적절한 다중 레벨 또는 함수적인 그룹 처리를 위해서 분리하여 또는 계층적으로 프로파일된다. 예를 들면, 제 1 레벨 또는 그룹 커널 요소와 제 2 레벨 또는 그룹 커널 요소는 주어진 기능 또는 시스템 설계에서 그에 대응하는 제 1 스레드 및 제 2 스레드와 각각 연관된다.
무선코드분할다중접속(CDMA) 통신 응용을 위한 대표적인 시스템 설계에 있어서, 다양한 커널들은 각기다른 함수적인 그룹들로 기능하도록 제공될 것으로 판단된다. 예를 들면, 프론트-엔드 프로세싱(즉, 데이타 스위치 선택기, 샘플 내삽처리 등); 칩-비율 프로세싱(즉, 샘플 에포크(epoch) 선택, 매칭된 필터, 일반 디스프레더, 일반 디채널라이저, 코드 발생 유니트, 인터그레이트 및 덤프, 일반 검색기 제어 등); 심볼 시퀀스 프로세싱(즉, 이송 포맷 디코더, 동적 확산 요소 컴퓨터, 고 속 하다마드(hadamard) 변환 등); 채널 요소 프로세싱(즉, 얼라인먼트/디스큐잉(deskewing), 결합기, 소프트 디시젼 컴퓨터, 인터패스 인터피어런스 이퀄라이저, 리시스 안테나 다이버시티(diversity) 결합기 등); 인터리빙(interleaving)(즉, 디인터리버(deinterleaver) 컨트롤러); 및 채널 디코딩(즉, 터보 디코더, 컨벌류셔널(convolutional) 디코더 등)으로 기능하도록 제공된다.
일반적으로, 본 발명은, 결합된 대응 스레드들로부터 커널 요소들을 재 매개변수화, 재프로그래밍화 또는 재구성을 수행하거나(즉, 여기에서 설명하고 있는 프로파일링 기법에 의해서 결정됨에 따라) 및/또는 동작들의 시퀀스를 변화시킴(즉, 매핑 및/또는 스케쥴링에 의해서 결정됨에 따라)에 의해서, 단일 프로세서 아키텍처에서 동시 다중 스레딩 계획을 통해서 하나 또는 그 이상의 함수적 또는 시스템 설계를 효과적으로 실행할 수 있게 한다.
바람직한 실시예는 하나 또는 그 이상의 다른 재구성가능한 논리 또는 커널 요소들에서의 함수적 또는 시스템 설계(즉, 하기에서 설명할 소위 "DRL" 처리에 따라)를 실행한다.
도 1은 하나 또는 그이상의 전자 설계 자동화 플랫폼에서의 본 발명의 설계 방법론, 함수적인 모듈들, 그리고 소프트웨어 및/또는 하드웨어 도구 아키텍처를 평면으로 보여주는 일반적 아키텍처 또는 시스템 블록 다이아그램이다. 이때, 상기 전자 설계 자동화 플랫폼은, 하나 또는 그 이상의 단독 컴퓨터 또는 네트워크된 컴퓨터, 프로세서들, 엔지니어링 워크스테이션들, 또는 적절한 동작 시스템을 갖는 연산 기능설비, 사용자 인터페이스, 저장 매니지먼트, 통신 인터페이스 및 다른 컴퓨터 지원설계 및 엔지니어링 툴을 포함한다.
바람직하게는, 본 발명의 설계 방법론은 네트워크 실행과 같은 시스템 아키텍처를 가능하게 하기 위하여 툴 아키텍처와 프로세서 실행 및 아키텍처, 또는 그것의 데이타 파일 표현을 제공하도록 기능한다.
도시된 바와 같이, 하나 또는 그 이상의 함수적인 모듈들이나 알고리즘(12)을 한정하는 높은 수준의 설명 언어(C 또는 HDL)나 설계 네트리스트(netlist)와 같은 하나 또는 그이상의 함수적인 정의 파일(10)은 수동으로 제공되거나 자동으로 연산된다. 본 발명의 일 실시 양태에 따르면, 함수적으로 선택가능한 프로파일링 및 매핑 설계(14)는 다중-스레드 베이스, 하나 또는 그 이상의 제어 통신 신호(26) 및 커널(18)을 제공하거나 발생시키도록 프리미티브(primitives)(16)와 함수적인 정의(10)로 처리되거나 적용된다. 또한, 프로파일링과 매핑(14)은 스케쥴 동작 테이블(20)에 스케쥴링 데이타를 제공한다. 제어 및 통신 신호는 하나 또는 그 이상의 미리정의되거나 선택된 함수적인 룰 또는 신호 플래그, 즉 통신 세마포르(semaphores)(24)에 따라서 처리된다. 다양한 커널(18)이 예를 들면 다중 스레드 신호처리를 위한 재구성 가능한 형태로서 실행(22)을 위해서 처리되고 상호 연결된다.
도 2A 및 2B는 커널(18,28) 및 스케쥴 및 할당 기능(30)을 포함하는 그것들의 물리적인 실행을 나타내는 함수적 블록 다이어그램이다. 바람직하게는, 하나 또는 그 이상의 커널(18)은 프로파일되거나 매핑된 스레드에 연관되거나 대응하며, 시퀀서(32), 데이타패스(34) 및 메모리(36)를 사용하여 재구성가능하게 실행된다.
그러므로, 회로 설계 방법론 및/또는 연산장치와 본 장치에 따르면, 일반적인 함수적 정의는 단일 또는 다중 스레드 재표현을 이용하여 실행이 가능하며, 이 표현은 하나 또는 그 이상의 대응하는 커널 연산요소들(즉, 1 대 다중, 1 대 1, 다중 대 1, 다중 대 다중의 커널 대 스레드 관계)을 사용하여 평행 처리에 효과적으로 프로파일된다. 예를 들면, 커뮤니케이션, 네트워킹, 또는 미디어 처리 함수성이나 알고리즘은 하나 또는 그 이상의 스레드 세그멘트를 인증하도록 분석되거나 기호화된다. 이때, 스레드 세그멘트들은 하나 또는 그 이상의 특별히 지정 및 고정되고 매개변수화될 수 있고 프로그래밍이 가능하거나 또는 재구성이 가능한 논리 커널을 이용하여 최적화한 동작 또는 실행을 위해서 각각 프로파일되거나 또는 특정화된다.
도 3은 다른 재구성가능한 다중 처리 배치를 보여주는 함수 다이어그램이다.
도시된 바와 같이 커널(8)은 "작은(small)" 세분성(granularity) 스레드 기능을 실행하고 커널(6)은 "큰(large)" 세분성 스레드 기능을 나타낸다. 이러한 재구성가능한 배치에서, 설계 함수와 그에 대응하는 커널인 속성인 함수적 세분성의 다양한 레벨들은 설계 요구나 프로파일 매핑 우선순위에 따라서 실행되거나 또는 동적으로 재구성된다.
도 4는 하나 또는 그 이상의 대표적이거나 유용한 구성가능한 논리와 기능들을 보여주는 함수적 다이어그램이다. 상기 논리와 기능들은, 단일 또는 다중의 스레드를 지정된 커널들로 실행하기 위하여 본 발명에 따라서 채용된다. 이때, 상기 커널들은 프로그래밍이 가능한 논리 요소와 스위치 매트릭스(즉, 비트-레벨(bit-level) 동작들을 인코딩 하기 위한 것)를 갖는 재구성 가능한 논리 또는 프로그래밍 가능한 기능 유니트(PFU)(40), 멀티플렉서, 레지스터들, 에더들(adders), 버퍼들 등과 이러한 요소들(즉, 전용된 데이터패스 필터들)을 통해서 재구성 가능한 신호흐름을 갖는 재구성 가능한 데이터패스(42), 어드레스 제네레이터들, 메모리, 메모리 어드레스 컨트롤 등(즉, 산술 컨벌루션 커널)을 갖는 재배열 가능한 산술요소(arithmetic)(44), 및 데이타 메모리, 데이터패스, 프로그램 메모리, 인스트럭션 디코더 및 컨트롤러 등(즉, 실시간 동작 시스템 처리 배치)을 갖는 재구성 가능한 제어(control)(46)이 해당된다.
도 5는 데이타 시퀀서(32), 데이타 메모리(36) 및 매개변수화가 가능하고 구성가능한 수치논리 유니트(ALU)(34)를 포함하는 커널(18)을 실행하기 위한 함수적 요소들을 보여주는 함수적 다이어그램이다.
도 6은 메인 프로세서 하드웨어 모델(50)에 대한 외부적인 기능들을 처리하기 위하여 동적으로 재구성가능한 논리(DRL) 프로세스(64) 및 이와 연관된 구성 데이타 베이스 사이에서의 임의적인 인터페이스를 나타낸 함수적인 다이어그램이다.
바람직하게는, DRL 프로세스는 다르고 재구성이 가능하며 전류 혁신(current innovation)을 이용하여 실행된다. 도시된 바와 같이, 하드웨어 인터페이스(54)는 라이브러리(62)와 특정한 함수 모듈(60)에 연관되고 C-프로그램 모델(56)과 입력/출력 장치 드라이버(58)를 구비한 프로세서 요소(52)를 외부 DRL 프로세스(64)에 연결시킨다.
이러한 실시 예에서, 일반적인 시스템 설계나 함수적인 정의, 알고리즘, 전자신호 또는 데이타 파일과 같은 하나 또는 그 이상의 단일 또는 멀티 스레드 디지털 정보(즉, 단일 또는 데이타 표현)는 하나 또는 그이상의 멀티 스레드 표현을 포함하도록 초기에 제공된다. 그와같은 초기의 프로토타입 설계 또는 기능은 프로파일되거나, 그렇지 않으면 평행 또는 효과적으로 유사한 프로세싱을 위해서 특정화된다. 특히, 외부 DRL 프로세스(64)와의 함수적 협동 또는 에뮬레이트된 실시간 신호 상호작용을 위한 프로세서 모델(50,57)에 있어서, 하나 또는 그이상의 대응 고정되고 매개변수화가 가능하고 프로그래밍이 가능하거나 또는 구성가능한 논리 유니트 또는 다른 동등한 함수적 신호처리 커널 또는 요소에서 함수적으로 사용하거나 또는 실행된다.
도 7은 본 발명의 다른 실시양태의 작동단계를 보여주는 흐름도이다. 먼저, 사용자에 의해서 발생되거나 또는 컴퓨터에 의해서 발생된 함수들은 프로토타입이나 다른 시스템 설계를 위해서 정의된다(70). 그러면, 하나 또는 그 이상의 수학적인 분석이나 디자인 성능 최적설계가 초기 설계정의에 적용된다(72). 다음으로, 설계정의를 위해서 하나 또는 그 이상의 구성 알고리즘이 제공되고(74), 그와 같은 알고리즘의 표현이 바람직하게는 높은 수준의 레지스터 이송 또는 거동 함수적 포맷으로 부호화된다(76).
알고리즘은 프로파일되고 매핑되고(78), 그렇지 않으면 대응하도록 정의된 커널들(80), 바람직하게는 하나 또는 그 이상의 특정화된 설계 조성 블록들, 즉 프리미티브(primitives)(86)를 사용하여, 최적화되거나 유도된 동작 또는 시스템 설 계 모듈, 함수들, 신호들, 성분들 또는 다른 요소의 실행을 위해서 함수적으로 정의되거나 수동 및/또는 자동적으로 카테고리화된다. 프로파일링되고 매핑된 데이타는 통신 세마포르(semaphores)(84), 스케쥴링 및 유한상태 머신 제어 및 매개변수(88)에 제공된다. 그러면, 커널 정의(80) 및 FSM 제어 매개변수화 및 스케줄링(88) 뿐만아니라 통신 세마포르(84)는 본 설계의 단일 또는 다중 스레드 요소를 재구성 가능한 커널 요소(82)로서 프로세서 아키텍처에 실행하도록 적용된다. 도 8은 멀티-스레드 커널들(90)의 용법을 나타내는 단순 설계의 소프트웨어 코드를 나타낸다.
본 발명의 일 실시 양태에 따르면, 프로파일링 처리나 그것의 재구성 가능한 알고리즘 표현은 시간적이므로, 일정한 시간 값 또는 시간에 따른 변화 정도의 결정을 포함한다. 시간적 응용의 예로서는 셀룰러 무선 시스템에서 요구되는 리시버 알고리즘 및 이러한 알고리즘에 연관된 신호처리계획에서의 변화를 포함한다(본 프로파일링 방법론의 장점을 이용할 수 있다). 이러한 실시 예에서, 한가지 경로(즉, 수용 방향)에서의 프로세싱 산출 요구조건은 프로세싱이 진행함에 따라 증가하거나 또는 감소하는데, 이때 본 프로파일링 계획은 전체 설계 실행의 하드웨어-소프트웨어나 다른 함수적인 분할을 결정하도록 기능한다.
또한, 그와같은 셀룰러 무선 실시예에서는, 다중의 방법이 유사하거나 동등한 신호처리를 수행하지만, 각기다른 에어-인터페이스 요구조건 또는 효과적 함수성을 초래할 것으로 판단된다. 특히, 주어진 시스템의 하드웨어 분할에 있어서, 다양한 처리형태나 함수적 요소들이 다양한 비율로 발생하거나 작동할 것이다. 가변 적인 프로세싱 비율이 요구되고 다양한 모드의 동작 제어가 다중의 처리 흐름을 지지하도록 요구됨함으로써, 유용한 동작성능이나 하드웨어 아키텍처(즉, 실시간과 비 실시간 프로파일링)의 용량성의 견지에서 볼 때 몇몇의 추가적인 비시간적 및 시간적 프로파일링 기법이 적절한 함수적 융통성을 제공하도록 적용될 것이다. 본 발명의 다른 실시 예들은 고정된 무선, 비인가된 무선 LAN, 무코드 전화통신(telephony), 텔레메트리(telemetry) 등을 포함한 추가적인 셀룰러 무선에 적용가능하다.
동작의 형식과 수를 결정하고 요구된 저장요소들을 결정하기 위해서 다중모드의 동작을 포괄하는 하드웨어 기초 알고리즘에 하나의 프로파일링 기법이 적용되며, 이에 의해 공통적으로 사용된 리소스의 분류가 쉬어지는 형태로 연산자로 하여금 각각의 시간적으로 독특한 함수를 분류할 수 잇게 한다.
다른 프로파일링 기법은 요구되는 주파수 변화에 따라서 하드웨어 정의의 다중 레벨을 제어하기 위하여 적용된다. 예를 들면, 무선 리시버의 리시브 경로에서의 모드 의존 변화는 트랜잭션(transaction) 구성(즉, 트랜잭션들이 멀티-세컨드 트랜잭션임)과 데이터 블록들을 포괄하는 서브-세컨드 트랜잭션(즉, "온 더 플라이(on the fly)") 사이에서의 포괄적인 재구성을 위한 시작에서 변하는 것이 필요하다.
구성가능한 실행의 적절한 레벨은 사이클 베이스에 기초한 높은 데이타 비율을 처리하는 것과 같은 프로파일링 결과에 따라서 선택된다. 그러나, 제어에 있어서 융통성이 요구되고, 프로그래밍 가능한 스테이트 머신은 필요한 성능조건을 만 족시키는 적절한 융통성을 제공한다. 데이타패스는 구성시간에 따라 선택될 필요가 없지만 자주 변하지는 않으며, 프로그래밍이 가능한 상호연결이 적절하게 적용된다.
만일 데이터패스 선택이 실시간으로 일어나면, 데이타패스-셀-기초 멀티플렉싱 구조가 적용된다. 또한, 동작 오더링이 필요한 함수들을 제어하기 위해서는, 프로세싱 동작을 위한 매개변수화된 커널들이 적용된다. 추가적으로, 고성능 요구조건 및 낮은 융통성 조건이 요구되는 경우에 있어서는, 지정된 데이터패스가 적절한 실리콘 실행에 적용될 수 있다. 성능지점에 대한 적절한 융통성을 부여하는 다중 표준 무선 리시버 설계의 경우에는, 하나 또는 그 이상의 프로파일링 기법이 적용될 수 있다.
도 9A는 본 발명의 일반적인 실시양태를 나타낸 것이다. 도시된 바와 같이 유선 및/또는 무선 네트워크 다운로드 또는 다른 송/수신을 이용하여 본 발명의 기법에 따른 단일 또는 멀티-스레드 재구성가능한 시스템 실행을 위하여 하나 또는 그 이상의 구성 매개변수들을 제공하도록 응용 프로그래밍 인터페이스(API)(94)를 통해서 하나 또는 그 이상의 산업 또는 재산권 표준을 따른 용량성(capability), 매개변수들 및 수치들을 구성 테이블(92)로 전달하는 흐름이 나타나 있다.
마이크로프로세서, 디지탈 신호 처리기(DSP), 응용 특정집적회로(ASIC), 필드 프로그램가능한 게이트 어레이(FPGA), DRL 또는 다른 함수적인 블록 모듈들을 나타내는 하나 또는 그 이상의 상호연결된 블록모듈들(96)을 한정하거나 실행하도록 API(94)를 통해서 구성매개변수를 수용한다. 본 발명의 다른 실시 양태에 따르 면, 하나 또는 그 이상의 구성가능한 매개변수들(100)은 하나 또는 그 이상의 특정한 커널 요소들에 대한 스레드 패션에 대응하도록 정의되거나 실행된다. 그러므로, 이러한 구성가능한 매개변수 경우에 있어서, 설계와 실행방법 또는 시스템은 함수적 성능을 개선시키기 위하여 다중-스레드 신호 또는 데이타를 처리하도록 기능한다.
일반적으로, 시스템 설계나 함수적인 정의, 알고리즘, 전자 신호 또는 데이타 파일은 그와같은 다중-스레드 표현을 포함하도록 제공되고, 초기의 프로토파입 함수는 하나 또는 그 이상의 스레드에 의해서 평행 처리를 위해 프로파일된다. 예를 들면, 일시적으로 한정되는 일정한 매개변수화된 커널 요소들을 실행한다.
특히, 도 9B에 도시된 바와 같이, 디지탈 무선 커뮤니케이션 응용에 있어서, 휴대용 모바일 라디오 핸드셋(102)은 기지국(104)과 무선으로 신호를 송수신하며, 디지털 네트워크(105)를 통해서 다른 핸드셋(102)이나 다른 기지국(104)에 연결될 수 있다. 기지국은 시스템 구성을 나타내는 제 1 신호를 생성한다. 제 1 신호는 시스템 구성에서 하나 또는 그 이상의 스레드와 관계된 하나 또는 그 이상의 기능 정의들을 기호적으로 표현하며, 상기 각각의 스레드는 휴대용 유닛 내의 특정화된 커널 요소에 의해 처리되도록 프로파일 된다. 이러한 네트워크 응용에 있어서, 특정화된 설계 룰, 동작, 또는 매개변수들 뿐만아니라 이것을 기호화하거나 도식화시킨 표현들은 프로그래밍 가능한 커널들 또는 소프트웨어 모듈에서 프로파일링하고 실행하기 위하여 다중 스레드에 대응하거나 이를 인증하게 된다.
임의적으로, 커널 요소들은 기지국(104) 및/또는 핸드셋 유니트(102)에서 동작을 위하여 구성된다. 특히, 커널들은 프로파일링된 데이터패스, 시퀀서/유한-상 태-머신, 메모리 또는 다른 논리구조에 대하여 시간적 또는 비 시간적 설계 제한에 따라 구성된다.
본 발명은 상기의 실시예들을 통해서 설명되었지만, 상기의 예로서 제한되지 않는다.
특히, 본 출원인은 여기에서 설명한 본 발명이 하드웨어, 소프트웨어, 및/또는 다른 유용한 함수적 성분들이나 빌딩 블록들에서 동등하게 실행될 수 있을 것으로 판단한다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (15)
- 컴퓨터 지원 설계시스템에서 멀티-스레드 시스템 기능성(multi-threaded system functionality)을 처리하기 위한 자동화 방법으로서,시스템 설계를 나타내는 제 1 기능 정의를 제공하는 단계;상기 제 1 기능 정의를 기호적으로 나타내는 제 2 기능 정의를 상기 제 1 기능 정의로부터 발생시키는 단계로, 이때 기호적인 표현은 상기 시스템 설계와 연관된 하나 또는 그 이상의 스레드(thread)를 인증하는, 단계; 그리고특정화된 커널 요소 또는 그것의 세트에 의해서 처리하기 위하여 각각의 스레드를 프로파일하는 단계를 포함하는 것을 특징으로 하는 자동화 방법.
- 제 1 항에 있어서, 주어진 스레드에서 동작의 공통 시퀀스를 인증하는 단계; 및 동작의 공통 시퀀스를 연산자 세트와 연관시키는 단계를 더 포함하는 것을 특징으로 하는 자동화 방법.
- 제 2 항에 있어서, 상기 연산자 세트를 산술 연산의 시퀀스와 연관시키는 단계를 더 포함하는 것을 특징으로 하는 자동화 방법.
- 제 2 항에 있어서, 상기 연산자 세트를 제어 연산의 시퀀스와 연관시키는 단계를 더 포함하는 것을 특징으로 하는 자동화 방법.
- 제 2 항에 있어서, 상기 연산자 세트를 메모리 접근 동작이나 위치의 시퀀스와 연관시키는 단계를 더 포함하는 것을 특징으로 하는 자동화 방법.
- 제 1 항에 있어서, 하나 또는 그 이상의 스레드가 시간적 기능에 따라서 프로파일되는 것을 특징으로 하는 자동화 방법.
- 멀티-스레드 처리를 위한 장치로서,제 1 커널요소와 제 2 커널요소를 포함하며, 상기 제 1 커널 요소는 제 1 스레드에 의해서 표현되는 제 1 기능을 처리하고, 상기 제 2 커널 요소는 제 2 스레드에 의해서 표현되는 제 2 기능을 처리하며, 상기 제 1 스레드와 상기 제 2 스레드는 상기 제 1 커널 요소와 상기 제 2 커널 요소에 의해서 각각 처리되도록 프로파일되고, 상기 제 1 스레드와 상기 제 2 스레드는 공통 기능과 연관되는 것을 특징으로 하는 장치.
- 제 7 항에 있어서,주어진 스레드에 의해서 인증이 가능하고, 연산자 세트와 연관되는 동작들의 공통 시퀀스를 더 포함하는 것을 특징으로 하는 장치.
- 제 8 항에 있어서, 상기 연산자 세트는 산술, 제어 또는 메모리 접근 동작의 시퀀스와 연관되는 것을 특징으로 하는 장치.
- 제 7 항에 있어서, 상기 제 1 스레드 또는 상기 제 2 스레드는 시간적 제약에 따라서 프로파일되는 것을 특징으로 하는 장치.
- 제 7 항에 있어서, 상기 제 1 커널 요소와 상기 제 2 커널 요소는 하나 또는 그 이상의 실행가능한 소프트웨어 모듈로서 실행되는 것을 특징으로 하는 장치.
- 제 7 항에 있어서, 상기 제 1 커널 요소와 상기 제 2 커널 요소는 라디오 통신 시스템의 고정된 기지국나 이동 핸드세트에서 하나 또는 그 이상의 함수적 모듈 로서 실행되는 것을 특징으로 하는 장치.
- 기지국과 하나 또는 그 이상의 휴대용 유니트를 포함하며 각각의 상기 휴대용 유니트는 라디오 신호를 통해 상기 기지국과 무선으로 통신하는 통신장치에서의 신호처리방법으로서,장치 구성을 나타내는 제 1 신호를 상기 기지국에서 발생시키는 단계를 포함하며, 이때 상기 제 1 신호는 상기 장치 구성에 있어서 하나 또는 그 이상의 스레드와 연관된 하나 또는 그 이상의 기능 정의를 기호적으로 나타내고, 각각의 스레드는 휴대용 유니트에서 특정화된 커널 요소에 의해서 처리되도록 프로파일되는 것을 특징으로 하는 신호처리방법.
- 제 13 항에 있어서, 상기 휴대용 유니트에 의해서 상기 제 1 신호를 수용하는 단계를 더 포함하며, 상기 휴대용 유니트에서 하나 또는 그 이상의 커널 요소는 상기 제 1 신호를 따라 시스템 설계에서 하나 또는 그 이상의 스레드를 처리하도록 구성되는 것을 특징으로 하는 신호처리방법.
- 제 13 항에 있어서, 하나 또는 그 이상의 스레드는 시간적 기능상의 제약에 따라서 프로파일되는 것을 특징으로 하는 신호처리방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US49263400A | 2000-01-27 | 2000-01-27 | |
US90/492,634 | 2000-01-27 | ||
PCT/US2001/002982 WO2001055917A1 (en) | 2000-01-27 | 2001-01-29 | Improved apparatus and method for multi-threaded signal processing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030004327A KR20030004327A (ko) | 2003-01-14 |
KR100784412B1 true KR100784412B1 (ko) | 2007-12-11 |
Family
ID=23956997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027009711A KR100784412B1 (ko) | 2000-01-27 | 2001-01-29 | 개선된 멀티-스레드 신호처리 방법 및 장치 |
Country Status (6)
Country | Link |
---|---|
JP (1) | JP2003521072A (ko) |
KR (1) | KR100784412B1 (ko) |
AU (1) | AU2001233119A1 (ko) |
DE (1) | DE10195202T1 (ko) |
GB (1) | GB2374701B (ko) |
WO (1) | WO2001055917A1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US6839830B2 (en) | 2000-03-01 | 2005-01-04 | Realtek Semiconductor Corporation | Logical pipeline for data communications system |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US7657893B2 (en) * | 2003-04-23 | 2010-02-02 | International Business Machines Corporation | Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor |
US7693257B2 (en) | 2006-06-29 | 2010-04-06 | Accuray Incorporated | Treatment delivery optimization |
CN107193539B (zh) * | 2016-03-14 | 2020-11-24 | 北京京东尚科信息技术有限公司 | 多线程并发处理方法和多线程并发处理系统 |
US11288072B2 (en) * | 2019-09-11 | 2022-03-29 | Ceremorphic, Inc. | Multi-threaded processor with thread granularity |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870588A (en) * | 1995-10-23 | 1999-02-09 | Interuniversitair Micro-Elektronica Centrum(Imec Vzw) | Design environment and a design method for hardware/software co-design |
US5946487A (en) * | 1996-06-10 | 1999-08-31 | Lsi Logic Corporation | Object-oriented multi-media architecture |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4821220A (en) * | 1986-07-25 | 1989-04-11 | Tektronix, Inc. | System for animating program operation and displaying time-based relationships |
US5519867A (en) * | 1993-07-19 | 1996-05-21 | Taligent, Inc. | Object-oriented multitasking system |
US5537226A (en) * | 1994-11-22 | 1996-07-16 | Xerox Corporation | Method for restoring images scanned in the presence of vibration |
US6112020A (en) * | 1996-10-31 | 2000-08-29 | Altera Corporation | Apparatus and method for generating configuration and test files for programmable logic devices |
-
2001
- 2001-01-29 KR KR1020027009711A patent/KR100784412B1/ko not_active IP Right Cessation
- 2001-01-29 WO PCT/US2001/002982 patent/WO2001055917A1/en active Application Filing
- 2001-01-29 GB GB0217126A patent/GB2374701B/en not_active Expired - Fee Related
- 2001-01-29 JP JP2001555391A patent/JP2003521072A/ja active Pending
- 2001-01-29 AU AU2001233119A patent/AU2001233119A1/en not_active Abandoned
- 2001-01-29 DE DE10195202T patent/DE10195202T1/de not_active Ceased
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870588A (en) * | 1995-10-23 | 1999-02-09 | Interuniversitair Micro-Elektronica Centrum(Imec Vzw) | Design environment and a design method for hardware/software co-design |
US5946487A (en) * | 1996-06-10 | 1999-08-31 | Lsi Logic Corporation | Object-oriented multi-media architecture |
Also Published As
Publication number | Publication date |
---|---|
KR20030004327A (ko) | 2003-01-14 |
GB2374701B (en) | 2004-12-15 |
WO2001055917A1 (en) | 2001-08-02 |
DE10195202T1 (de) | 2003-04-30 |
GB0217126D0 (en) | 2002-09-04 |
AU2001233119A1 (en) | 2001-08-07 |
GB2374701A (en) | 2002-10-23 |
JP2003521072A (ja) | 2003-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060026578A1 (en) | Programmable processor architecture hirarchical compilation | |
KR100784412B1 (ko) | 개선된 멀티-스레드 신호처리 방법 및 장치 | |
Bondalapati et al. | Reconfigurable computing: Architectures, models and algorithms | |
Niu et al. | Automating elimination of idle functions by runtime reconfiguration | |
Karkowski et al. | Design space exploration algorithm for heterogeneous multi-processor embedded system design | |
Duhem et al. | FoRTReSS: a flow for design space exploration of partially reconfigurable systems | |
Ya. Steinberg et al. | Automatic high-level programs mapping onto programmable architectures | |
Sittel et al. | HatScheT: A contribution to agile HLS | |
Yousuf et al. | An automated hardware/software co-design flow for partially reconfigurable FPGAs | |
Paul et al. | Schedulers as model-based design elements in programmable heterogeneous multiprocessors | |
Duhem et al. | Design space exploration for partially reconfigurable architectures in real-time systems | |
Peng et al. | Automated synthesis for asynchronous FPGAs | |
Desnos et al. | Dataflow modeling for reconfigurable signal processing systems | |
Zhakatayev et al. | Efficient FPGA implementation of local binary convolutional neural network | |
Holzer et al. | Efficient design methods for embedded communication systems | |
Ost et al. | Exploring heterogeneous NoC-based MPSoCs: From FPGA to high-level modeling | |
Matai et al. | Trimmed VLIW: Moving application specific processors towards high level synthesis | |
Cui | A Novel Approach to Hardware/Software Partitioning for Reconfigurable Embedded Systems. | |
Tiensyrjä et al. | SystemC and OCAPI-xl based system-level design for reconfigurable systems-on-chip | |
Lavasani | Generating irregular data-stream accelerators: methodology and applications | |
Molina et al. | Frequent-pattern-guided multilevel decomposition of behavioral specifications | |
Hartenstein et al. | A Scalable, Parallel, and Reconfigurable Datapath Architecture | |
Weng et al. | Exploiting fine-grain ordered parallelism in dense matrix algorithms | |
Frijns et al. | Dataflow-based multi-asip platform approach for digital control applications | |
Guo et al. | Programmability and efficiency in reconfigurable computer systems |
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: 20121123 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20131122 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20141125 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20151127 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |