KR20030004327A - Improved apparatus and method for multi-threaded signal processing - Google Patents

Improved apparatus and method for multi-threaded signal processing Download PDF

Info

Publication number
KR20030004327A
KR20030004327A KR1020027009711A KR20027009711A KR20030004327A KR 20030004327 A KR20030004327 A KR 20030004327A KR 1020027009711 A KR1020027009711 A KR 1020027009711A KR 20027009711 A KR20027009711 A KR 20027009711A KR 20030004327 A KR20030004327 A KR 20030004327A
Authority
KR
South Korea
Prior art keywords
thread
operations
kernel element
kernel
functional
Prior art date
Application number
KR1020027009711A
Other languages
Korean (ko)
Other versions
KR100784412B1 (en
Inventor
라비 서브라마니안
케이스 리켄
Original Assignee
모픽스 테크놀로지, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 모픽스 테크놀로지, 인크. filed Critical 모픽스 테크놀로지, 인크.
Publication of KR20030004327A publication Critical patent/KR20030004327A/en
Application granted granted Critical
Publication of KR100784412B1 publication Critical patent/KR100784412B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit 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).The system and circuit design methods and apparatus implement a general functional definition 10 using multi-threaded representations. The multi-threaded representation is then profiled for parallel processing using one or more corresponding kernel logic elements 18. Preferably, the communication 26, theteworking, or media processing functionality or algorithm 12 is functionally analyzed and symbolically represented to authenticate one or more thread segments. The thread segments are each profiled 14 using temporal and / or non-temporal functions according to one or more specific fixed, parameterizable, programmable or reconfigurable logical kernels.

Description

개선된 멀티-스레드 신호처리 방법 및 장치{Improved apparatus and method for multi-threaded signal processing}Improved apparatus and method for multi-threaded signal processing

디지탈 정보처리를 위한 연산장치에 있어서 고성능(high-performance)을 달성하기 위한 전통적인 방식들은 우수한 수준의 평행도(parallelism)를 제공하는 아키텍처(architectures)의 설계에 집중되고 있다. 이것은 하드웨어의 평행도와 소프트웨어의 동시성을 개발할 수 있는 프로세서와 인스트럭션-세트 아키텍처(instruction-set architectures)의 설계를 통해서 통상적으로 달성된다.Traditional approaches to achieving high-performance in computing devices for digital information processing are focused on the design of architectures that provide good levels of parallelism. This is typically accomplished through the design of processors and instruction-set architectures that can develop hardware parallelism and software concurrency.

고성능은 통상적으로 초당 상당한 횟수의 동작을 실행할 수 있는 능력으로서 정의된다. 이러한 고성능의 가치는 동작의 형식에 강하게 의존하며, 통상적으로는 적용 대상의 형식에 의존한다.High performance is typically defined as the ability to perform a significant number of operations per second. This high performance value is strongly dependent on the type of operation and typically depends on the type of application.

고성능 정보처리장치의 전통적인 설계는 다음에서 열거하는 것과 같은 처리장치의 다수 키 속성을 한정하도록 컴퓨터 아키텍처의 원리들에 의존한다.The traditional design of a high performance information processing device relies on the principles of computer architecture to define the multiple key attributes of the processing device as listed below.

·인스트럭션-세트 아키텍처; 인스트럭션의 실제적 프로그래머-가시적 세트(actual programmer-visible sets)를 의미하며, 하드웨어와 소프트웨어 사이의 경계로서 기능함.Instruction-set architecture; Refers to the actual programmer-visible sets of instructions, which serve as the boundary between hardware and software.

·조직; 메모리 시스템, 버스 구조(bus structure) 및 내부 CPU 설계와 같은 컴퓨터 설계의 높은 수준의 관점을 의미함.·group; Refers to a high level view of computer design such as memory system, bus structure and internal CPU design.

·하드웨어; 특정하게 세부화된 논리 설계, 회로실장(circuit implementation) 및 패캐징(packaging)을 의미함.·hardware; Refers to specific detailed logic designs, circuit implementations, and packaging.

특정 목적의 프로세서(즉, 특정 용도로 만들어진 프로세서)에서 통상적으로 요구되는 속성인 고성능을 달성하기 위해서는, 다음의 세가지 방법이 있다.There are three ways to achieve high performance, which is a commonly required attribute in a particular purpose processor (ie, a processor made for a specific purpose).

(1) 인스트럭션-레벨 평행도: 하드웨어에서 평행도를 개발하는 이러한 방식은 동시 처리 스레드로 분석될 수 있는 필드를 갖는 매우 길거나 벡터화한 명령어의 사용을 통해서 평행 스레드를 처리하는 것이다. 이러한 평행도를 개발하기 위한 메카니즘은 스케쥴러(scheduler)를 통해서 실현되는데, 이 스케쥴러는 다수의 데이터패스(datapath) 처리 유니트들중 하나로 동작을 계획한다. 이러한 계획은 스케쥴러의 제조가 어렵고 원하는 처리량을 달성하는데 충분한 평행도를 인증하기가 어려운 결점들을 가지고 있다.(1) Instruction-level parallelism: This way of developing parallelism in hardware is to handle parallel threads through the use of very long or vectorized instructions with fields that can be analyzed as concurrent processing threads. The mechanism for developing this parallelism is realized through a scheduler, which schedules operation with one of a number of datapath processing units. This scheme has drawbacks that make the scheduler difficult to manufacture and to verify sufficient parallelism to achieve the desired throughput.

(2) 슈퍼스칼라 기법(superscalar technique): 이러한 방식은 고성능을 달성하기 위하여 미세 구조의 고도로 파이프라인된(fine-grain highly-pipelined) 싱글-스레드 프로세서 아키텍처를 개발하였다. 이러한 계획은 매우 높은 성능을 달성할 수 있지만, 단지 작은 등급의 동작만을 위한 것이다. 특정한 데이터패스 아키텍처에 잘 어울리지 않는 동작들에 대하여 슈퍼스칼라 설계의 성능은 상당히 줄어들게 된다. 그러므로, 슈퍼스탈라 기법은 높은 신호처리 콘텐츠를 갖는 광범위한 어플리케이션(applications)에는 적합하지 않다.(2) superscalar technique: This approach developed a fine-grain highly-pipelined single-threaded processor architecture to achieve high performance. This scheme can achieve very high performance, but only for small classes of operation. The performance of superscalar designs is significantly reduced for operations that do not fit well into a particular datapath architecture. Therefore, the superstar technique is not suitable for a wide range of applications with high signal processing content.

(3) 메모리 계위 기법(memory hierarchy techniques): 느린 메모리들에 대한 메모리 접근의 대기시간을 감추는 것으로, 느린 메모리의 대기시간을 효과적으로 감추기 위하여 프로세서 유니트들과 느린 메노리 사이에서 빠른 메모리들, 즉 캐쉬(cache)들을 현명하게 사용하여 전체 장치의 성능을 증가시키도록 마이크로프로세서 설계 등의 분야에서 광범위하게 사용되어 왔다.(3) memory hierarchy techniques: conceal the latency of memory accesses to slow memories, fast memories, or caches, between processor units and slow memory to effectively hide the latency of slow memories. It has been widely used in fields such as microprocessor design to use caches wisely to increase the performance of the entire device.

통상적으로, 다중 프로세서 장치는 연산선능을 개선시키기 위해서 멀티-스레드 프로세싱(multi-threaded processing)을 채용한다. 멀티-스레드 프로세싱은 연산 자원의 유용성, 즉 전체 처리성능을 향상시키기 위한 방식으로 잘 알려져 있다. 그러나, 통상의 멀티-스레드 프로세싱은 복잡하게 분배되거나 네트워크화된 컴퓨터 노드들을 사용하여 실행된다. 그런데, 이것들은 저급의 논리나 회로 수준에서는 용이하게 재구성이 이루어지지 않으며, 다중모드 상호통신 알고리즘이나 네트워킹 프로토콜과 같은 진보된 함수적 문제를 해결하는데 만족스럽지 못하다. 따라서, 멀티-스레드 프로세싱의 개선이 요구되고 있다.Typically, multiprocessor devices employ multi-threaded processing to improve computing power. Multi-threaded processing is well known as a way to improve the usefulness of computational resources, ie overall throughput. However, conventional multi-threaded processing is performed using complex distributed or networked computer nodes. However, they are not easily reconfigured at lower logic or circuit levels and are not satisfactory in solving advanced functional problems such as multimode intercommunication algorithms or networking protocols. Thus, there is a need for improvements in multi-threaded processing.

본 발명은 전자 데이터와 신호의 처리에 관한 것으로, 더욱 상세하게는 고성능 멀티-스레드(multi-threaded) 정보처리기법에 관한 것이다.TECHNICAL FIELD The present invention relates to the processing of electronic data and signals, and more particularly, to a high performance multi-threaded information processing technique.

도 1은 본 발명의 바람직한 실시예에 따른 소프트웨어 및/또는 하드웨어에서의 실행을 위한 방법론과 도구 아키텍처의 다이아그램이다.1 is a diagram of a methodology and tool architecture for execution in software and / or hardware in accordance with a preferred embodiment of the present invention.

도 2A 및 2B는 본 발명의 일 실시양태를 실행하기 위한 함수적인 블록 다이아그램이다.2A and 2B are functional block diagrams for practicing one embodiment of the present invention.

도 3은 본 발명의 다른 실시양태를 보여주는 함수적인 다이아그램이다.3 is a functional diagram showing another embodiment of the present invention.

도 4는 본 발명의 재구성 가능한 실시양태를 보여주는 함수적인 다이아그램이다.4 is a functional diagram showing a reconfigurable embodiment of the present invention.

도 5는 본 발명의 커널 실시양태를 보여주는 함수적인 다이아그램이다.5 is a functional diagram showing the kernel embodiment of the present invention.

도 6은 본 발명의 인터페이스 실시양태를 보여주는 함수적인 다이아그램이다.6 is a functional diagram showing an interface embodiment of the present invention.

도 7은 본 발명의 하나 또는 그 이상의 실시양태를 실행하기 위한 함수적 동작들을 보여주는 장치 방법론 흐름도이다.7 is an apparatus methodology flow diagram illustrating the functional operations for implementing one or more embodiments of the present invention.

도 8은 본 발명의 하나 또는 그 이상의 실시양태를 실행하기 위한 소프트웨어 코드 스터브를 나타낸 도면이다.8 illustrates a software code stub for implementing one or more embodiments of the present invention.

도 9A 및 9B는 본 발명의 하나 또는 그 이상의 응용을 보여주는 함수적 다이아그램이다.9A and 9B are functional diagrams illustrating one or more applications of the present invention.

본 발명은 기능상의 성능을 개선하기 위해서 멀티-스레드 디지탈 정보(신호 또는 데이타 표현)를 처리하기 위한 설계와 실행방법, 프로세서 아키텍처 및 장치에 관한 것이다. 바람직하게는, 하나 또는 그이상의 멀티-스레드 표현을 포함하도록 일반 장치설계 또는 함수적인 정의, 알고리즘, 전자신호, 또는 데이타 파일이 초기에 제공된다. 그와같은 초기의 프로토타입 설계나 기능은 프로파일되거나 그렇지 않으면 평행도나 효과적인 유사처리를 위해서 특정화된다. 특히, 함수적으로 사용하거나 그렇지 않으면 시간적 및/또는 비시간적 기능상의 고려사항들을 이용하여 하나 또는 그 이상의 대응 고정되고 매개변수화되고 프로그래밍이 가능하거나 구성가능한 논리 유니트들 또는 동등한 다른 기능상의 신호 처리 커널 또는 요소에서 실행된다.The present invention relates to a design and execution method, a processor architecture, and an apparatus for processing multi-threaded digital information (signal or data representation) to improve functional performance. Preferably, general device design or functional definitions, algorithms, electronic signals, or data files are initially provided to include one or more multi-threaded representations. Such early prototype designs or functions are profiled or otherwise specified for parallelism or effective similarity processing. In particular, one or more corresponding fixed, parameterized, programmable or configurable logic units or equivalent other functional signal processing kernels, using functionally or otherwise using temporal and / or non-temporal functional considerations, or Run on element

바람직하게는, 디지탈 통신 및/또는 네트워킹 및/또는 미디어 처리장치 설계에 대한 응용과 같이 비교적 복잡한 장치 기능성은 미리 측정화된 시스템 설계 규칙, 수학적인 동작, 동작의 시퀀스나 매개변수에 의해서 분석되어지고, 다음에는 하나 또는 그이상의 알고리즘, 동작의 특정 시퀀스들, 메모리 접근의 패턴들, 또는 세크멘트들(즉, 단일 또는 다중 스레드)을 인증하도록 기호적으로 표현되거나 또는 도식적으로 표현된다. 이때, 위에서 열거한 것들은 하나 또는 그 이상의 특정하게 고정되고 매개변수화가 가능하고 프로그래밍이 가능하거나 또는 구성가능한 논리 유니트 또는 커널 요소들을 사용하여, 프로파일되거나 구성되거나 또는 최적화한 동작 또는 실행을 위해서 특정화된다.Preferably, relatively complex device functionality, such as applications in digital communications and / or networking and / or media processing design, is analyzed by pre-measured system design rules, mathematical operations, sequences of operations or parameters. Then, it is represented symbolically or graphically to authenticate one or more algorithms, specific sequences of operations, patterns of memory access, or segments (ie, single or multiple threads). In this case, the ones listed above are specified for profiled, configured, or optimized operation or execution using one or more specifically fixed, parameterizable, programmable or configurable logical units or kernel elements.

그러한 요소는 구조와 구성가능성이 프로파일링을 통해서 결정되는 데이터패스, 구조와 구성가능성이 프로파일링을 통해서 결정되는 시퀀서/유한 상태 머신(finite-state-machine), 및 로컬 메모리 특성을 이끌어내도록지역성(locality)를 사용하고 프로파일링 메모리 접근을 통해서 구조가 결정되는 로컬 메모리에 의해서 제공된다. 임의적으로, 하나 또는 그이상의 커널 요소는 소프트웨어나 프로그래밍이 가능한 논리 또는 이들의 조합에 의해서 전적으로 실행된다. 또한, 위에서 언급하고 있는 “프로파일링”은 각각의 모듈과 연관된 하나 또는 그 이상의 구성가능한 구조들을 한정하도록 하나 또는 그 이상의 시스템이나 기능모듈의 자동화 처리 및/또는 수동처리를 의미한다.Such elements can be used to derive datapaths whose structure and configurability are determined through profiling, sequencers / finite-state-machines where structure and configurability are determined through profiling, and local memory characteristics. locality is provided by local memory, whose structure is determined through profiling memory access. Optionally, one or more kernel elements are executed entirely by software, programmable logic, or a combination thereof. In addition, “profiling” as mentioned above refers to the automated and / or manual processing of one or more systems or functional modules to define one or more configurable structures associated with each module.

본 발명은 처리성능을 개선시키기 위해서 단일 또는 다중의 스레드, 또는 디지털 데이터, 신호들의 동등하게 분할된 프로세싱, 또는 함수적 표현들을 자동화 설계 및 실행을 이용하여 처리할 수 있게 한다. 먼저, 장치설계나 함수적인 정의, 알고리즘, 전자신호, 또는 데이타 파일은, 하나 또는 그 이상의 장치 설계나 기능 모듈들이 프로파일되고 구성되거나 또는 평행 또는 동시성 처리를 위해 특정돠되는 경우, 일정한 단일 또는 다중의 스레드 표현을 제공한다.The present invention makes it possible to process single or multiple threads, or evenly divided processing of digital data, signals, or functional representations using automated design and execution to improve processing performance. First, a device design or functional definition, algorithm, electronic signal, or data file is a single or multiple that is consistent when one or more device designs or functional modules are profiled and configured or specified for parallel or concurrent processing. Provide a thread representation.

예를 들면, 다중 스레드 프로토타입은 고정되고 매개변수화가 가능하고 프로그래밍이 가능하거나 구성가능한 논리유니트 또는 다른 신호처리 커널이나 요소에서 실행되거나 사용된다. 그러므로, 디지탈 커뮤니케이션, 네트워킹 또는 멀티미디어 응용과 같은 복잡한 장치 기능성은 장치 설계 규칙, 수학적 동작, 동작의 시퀀스, 또는 매개변수들에 따라 분석된다. 그런후에는, 일정한 단일 또는 다중 알고리즘, 동작의 특정한 시퀀스, 메모리 접근의 패턴들, 또는 세그멘트들을 인증하도록 기호화되거나 도식적으로 표현된다. 이때, 각각의 스레드는 고정되고 매개변수화가 가능하고 프로그래밍이 가능하거나 구성가능한 논리유니트 또는 다른 신호처리 커널이나 요소를 이용하여 동작이나 실행을 최적화하도록 프로파일되거나 특정화된다.For example, multithreaded prototypes can be executed or used in fixed, parameterizable, programmable or configurable logic units or other signal processing kernels or elements. Therefore, complex device functionality, such as digital communication, networking or multimedia applications, is analyzed according to device design rules, mathematical operations, sequences of operations, or parameters. It is then symbolized or graphically represented to authenticate certain single or multiple algorithms, specific sequences of operations, patterns of memory access, or segments. Each thread is then profiled or specified to optimize its operation or execution using fixed, parameterizable, programmable or configurable logic units or other signal processing kernels or elements.

임의적으로, 데이타패스 구조는 프로파일링에 의해서 결정됨에 따라서, 단일 또는 다중 스레드 요소, 프로파일링을 통해서 결정된 구조와 구성가능성을 갖는 시퀀서 및/또는 동등한 유한 상태 머신(finite-state-machine), 및 로컬 메모리 특성을 이끌어내도록 메모리 접근성과 지역성(locality)을 프로파일링함에 의해서 결정된 구조를 갖는 로컬 메모리로 구성된다.Optionally, as the datapath structure is determined by profiling, single or multithreaded elements, sequencers and / or equivalent finite-state-machines having structure and configurability determined through profiling, and local It consists of local memory with a structure determined by profiling memory accessibility and locality to derive memory characteristics.

여기에서 사용된 바와 같이, 프로파일링 용어는 상호연결, 신호, 논리, 회로 등과 같은 하나 또는 그 이상의 함수적인 요소들이나 설계 목적물을 선택하거나 할당함에 의해서, 각각의 모듈과 연관된 하나 또는 그 이상의 구성가능한 구조물들을 한정하거나 카테고리화 하기 위하여, 하나 또는 그 이상의 시스템이나 기능 모듈의 분류, 해석, 컴퓨터 자동화처리 및/또는 수동 처리를 의미하는 것으로 이해된다. 바람직하게는, 프로파일링은 하나 또는 그 이상의 사전에 및/또는 동적으로 한정된 표준들 또는 함수적 규칙 조합에 따라서 달성된다.As used herein, profiling terms refer to one or more configurable structures associated with each module by selecting or assigning one or more functional elements or design objects, such as interconnects, signals, logic, circuits, and the like. In order to define or categorize them, it is understood to mean classification, interpretation, computer automated processing and / or manual processing of one or more systems or functional modules. Preferably, profiling is accomplished according to one or more pre- and / or dynamically defined standards or functional rule combinations.

일반적으로, 컴퓨터 자동화 및/또는 수동 개발기법에 있어서, 다일 또는 다중의 스레드 설계는 프로토타입 시스템을 나타내는 제 1 레벨의 함수적 정의를 초기에 제공함으로써 처리된다. 이때, 동등한 기능성을 나타내는 기호화된 다른 레벨의 함수적 정의는 그것으로부터 발생되거나 효과적으로 프로파일된다. 이러한 계층적 설계 계획에 있어서, 발생된 기호화 표현은 바람직하게는 하나 또는 그 이상의 함수적 레벨로 시스템 설계와 연관된 일정 스레드들을 인증한다.In general, in computer automation and / or manual development techniques, one or multiple thread designs are handled by initially providing a first level of functional definition that represents a prototype system. At this time, different levels of symbolic functional definitions representing equivalent functionality are generated or effectively profiled from it. In such a hierarchical design scheme, the generated symbolic representation preferably authenticates certain threads associated with the system design at one or more functional levels.

각각의 스레드는 상응하는 커널 요소들에 의해서 처리되도록 프로파일되며, 하나 또는 그 이상의 동작 공통 세트는 주어진 스레들(즉, 1 대 1, 다중 대 1, 또는 1 대 다중 스레드 대 커널 관계)에 대하여 인증된다. 각각의 스레드는 연산동작, 제어 조작의 시퀀스, 및/또는 메모리 접근 동장 또는 관련된 메모리 위치와 함수적인 모듈들이나 시스템을 실행하도록 유용화된 각각의 연산자 세트에 대하여 시퀀스 또는 스케쥴링 정보를 인증하도록 계획된다.Each thread is profiled to be processed by corresponding kernel elements, and one or more common sets of operations are authenticated for a given thread (ie, one-to-one, multiple-to-one, or one-to-multithreaded-to-kernel relationship). do. Each thread is designed to authenticate sequence or scheduling information for each set of operators that are useful for executing functional operations, sequences of control operations, and / or memory access dynamics or related memory locations and functional modules or systems.

그러므로, 본 발명의 개발 방법론을 사용하는 다중 스레드 처리 아키텍처는 대응 스레드에 의해서 표현된 일정 기능을 처리하는 커널 요소세트, 및 다른 대응 스레드에 의해서 표현된 다른 기능을 처리하는 동일 프로토타입 설계의 다른 커널 요소세트를 포함한다. 이렇게 분할되거나 분배된 처리방법에 있어서, 각각의 스레드는 적절한 다중 레벨 또는 함수적인 그룹 처리를 위해서 분리하여 또는 계층적으로 프로파일된다. 예를 들면, 제 1 레벨 또는 그룹 커널 요소와 제 2 레벨 또는 그룹 커널 요소는 주어진 기능 또는 시스템 설계에서 그에 대응하는 제 1 스레드 및 제 2 스레드와 각각 연관된다.Therefore, a multi-threaded processing architecture using the development methodology of the present invention has a different kernel of the same prototype design that handles a set of kernel elements that handle certain functions represented by corresponding threads, and other functions represented by other corresponding threads. Contains a set of elements. In this partitioned or distributed process, each thread is profiled separately or hierarchically for proper multi-level or functional group processing. For example, the first level or group kernel element and the second level or group kernel element are associated with a first thread and a second thread, respectively, corresponding thereto in a given function or system design.

무선코드분할다중접속(CDMA) 통신 응용을 위한 대표적인 시스템 설계에 있어서, 다양한 커널들은 각기다른 함수적인 그룹들로 기능하도록 제공될 것으로 판단된다. 예를 들면, 프론트-엔드 프로세싱(즉, 데이타 스위치 선택기, 샘플 내삽처리 등); 칩-비율 프로세싱(즉, 샘플 에포크(epoch) 선택, 매칭된 필터, 일반 디스프레더, 일반 디채널라이저, 코드 발생 유니트, 인터그레이트 및 덤프, 일반 검색기 제어 등); 심볼 시퀀스 프로세싱(즉, 이송 포맷 디코더, 동적 확산 요소 컴퓨터, 고속 하다마드(hadamard) 변환 등); 채널 요소 프로세싱(즉, 얼라인먼트/디스큐잉(deskewing), 결합기, 소프트 디시젼 컴퓨터, 인터패스 인터피어런스 이퀄라이저, 리시스 안테나 다이버시티(diversity) 결합기 등); 인터리빙(interleaving)(즉, 디인터리버(deinterleaver) 컨트롤러); 및 채널 디코딩(즉, 터보 디코더, 컨벌류셔널(convolutional) 디코더 등)으로 기능하도록 제공된다.In representative system designs for wireless code division multiple access (CDMA) communication applications, it is believed that various kernels will be provided to function in different functional groups. For example, front-end processing (ie data switch selector, sample interpolation, etc.); Chip-ratio processing (ie, sample epoch selection, matched filter, general spreader, general dechannelizer, code generation unit, aggregate and dump, general finder control, etc.); Symbol sequence processing (ie, transport format decoder, dynamic spreading element computer, fast Hadamard transform, etc.); Channel element processing (ie, alignment / deskewing, combiner, soft decision computer, interpass interference equalizer, lysis antenna diversity combiner, etc.); Interleaving (ie, deinterleaver controller); And channel decoding (ie, turbo decoder, convolutional decoder, etc.).

일반적으로, 본 발명은, 결합된 대응 스레드들로부터 커널 요소들을 재 매개변수화, 재프로그래밍화 또는 재구성을 수행하거나(즉, 여기에서 설명하고 있는 프로파일링 기법에 의해서 결정됨에 따라) 및/또는 동작들의 시퀀스를 변화시킴(즉, 매핑 및/또는 스케쥴링에 의해서 결정됨에 따라)에 의해서, 단일 프로세서 아키텍처에서 동시 다중 스레딩 계획을 통해서 하나 또는 그 이상의 함수적 또는 시스템 설계를 효과적으로 실행할 수 있게 한다.In general, the present invention performs reparameterization, reprogramming or reconstruction of kernel elements from the associated corresponding threads (ie, as determined by the profiling technique described herein) and / or of the operations. By varying the sequence (ie, as determined by mapping and / or scheduling), one or more functional or system designs can be effectively implemented through concurrent multithreading schemes in a single processor architecture.

바람직한 실시예는 하나 또는 그 이상의 다른 재구성가능한 논리 또는 커널 요소들에서의 함수적 또는 시스템 설계(즉, 하기에서 설명할 소위 "DRL" 처리에 따라)를 실행한다.Preferred embodiments implement functional or system design (ie, according to the so-called "DRL" processing described below) in one or more other reconfigurable logic or kernel elements.

도 1은 하나 또는 그이상의 전자 설계 자동화 플랫폼에서의 본 발명의 설계 방법론, 함수적인 모듈들, 그리고 소프트웨어 및/또는 하드웨어 도구 아키텍처를 평면으로 보여주는 일반적 아키텍처 또는 시스템 블록 다이아그램이다. 이때, 상기 전자 설계 자동화 플랫폼은, 하나 또는 그 이상의 단독 컴퓨터 또는 네트워크된 컴퓨터, 프로세서들, 엔지니어링 워크스테이션들, 또는 적절한 동작 시스템을 갖는연산 기능설비, 사용자 인터페이스, 저장 매니지먼트, 통신 인터페이스 및 다른 컴퓨터 지원설계 및 엔지니어링 툴을 포함한다.1 is a general architecture or system block diagram showing in plan view the design methodology, functional modules, and software and / or hardware tool architecture of the present invention in one or more electronic design automation platforms. The electronic design automation platform can then support one or more single or networked computers, processors, engineering workstations, or computing facilities with appropriate operating systems, user interfaces, storage management, communication interfaces, and other computer support. Includes design and engineering tools.

바람직하게는, 본 발명의 설계 방법론은 네트워크 실행과 같은 시스템 아키텍처를 가능하게 하기 위하여 툴 아키텍처와 프로세서 실행 및 아키텍처, 또는 그것의 데이타 파일 표현을 제공하도록 기능한다.Preferably, the design methodology of the present invention functions to provide a tool architecture and processor implementation and architecture, or a data file representation thereof, to enable a system architecture such as network execution.

도시된 바와 같이, 하나 또는 그 이상의 함수적인 모듈들이나 알고리즘(12)을 한정하는 높은 수준의 설명 언어(C 또는 HDL)나 설계 네트리스트(netlist)와 같은 하나 또는 그이상의 함수적인 정의 파일(10)은 수동으로 제공되거나 자동으로 연산된다. 본 발명의 일 실시 양태에 따르면, 함수적으로 선택가능한 프로파일링 및 매핑 설계(14)는 다중-스레드 베이스, 하나 또는 그 이상의 제어 통신 신호(26) 및 커널(18)을 제공하거나 발생시키도록 프리미티브(primitives)(16)와 함수적인 정의(10)로 처리되거나 적용된다. 또한, 프로파일링과 매핑(14)은 스케쥴 동작 테이블(20)에 스케쥴링 데이타를 제공한다. 제어 및 통신 신호는 하나 또는 그 이상의 미리정의되거나 선택된 함수적인 룰 또는 신호 플래그, 즉 통신 세마포르(semaphores)(24)에 따라서 처리된다. 다양한 커널(18)이 예를 들면 다중 스레드 신호처리를 위한 재구성 가능한 형태로서 실행(22)을 위해서 처리되고 상호 연결된다.As shown, one or more functional definition files 10, such as a high level description language (C or HDL) or design netlist, that define one or more functional modules or algorithms 12. Is provided manually or computed automatically. According to one embodiment of the present invention, the functionally selectable profiling and mapping design 14 primitives to provide or generate a multi-threaded base, one or more control communication signals 26 and the kernel 18. (primitives) 16 and functional definitions 10 are applied or applied. Profiling and mapping 14 also provides scheduling data to the schedule action table 20. Control and communication signals are processed in accordance with one or more predefined or selected functional rules or signal flags, namely communication semaphores 24. Various kernels 18 are processed and interconnected for execution 22, for example in a reconfigurable form for multithreaded signal processing.

도 2A 및 2B는 커널(18,28) 및 스케쥴 및 할당 기능(30)을 포함하는 그것들의 물리적인 실행을 나타내는 함수적 블록 다이어그램이다. 바람직하게는, 하나 또는 그 이상의 커널(18)은 프로파일되거나 매핑된 스레드에 연관되거나 대응하며,시퀀서(32), 데이타패스(34) 및 메모리(36)를 사용하여 재구성가능하게 실행된다.2A and 2B are functional block diagrams illustrating kernels 18 and 28 and their physical execution including scheduling and allocation functions 30. Preferably, one or more kernels 18 are associated with or correspond to threads that are profiled or mapped, and are reconfigurably executed using sequencer 32, datapath 34, and memory 36.

그러므로, 회로 설계 방법론 및/또는 연산장치와 본 장치에 따르면, 일반적인 함수적 정의는 단일 또는 다중 스레드 재표현을 이용하여 실행이 가능하며, 이 표현은 하나 또는 그 이상의 대응하는 커널 연산요소들(즉, 1 대 다중, 1 대 1, 다중 대 1, 다중 대 다중의 커널 대 스레드 관계)을 사용하여 평행 처리에 효과적으로 프로파일된다. 예를 들면, 커뮤니케이션, 네트워킹, 또는 미디어 처리 함수성이나 알고리즘은 하나 또는 그 이상의 스레드 세그멘트를 인증하도록 분석되거나 기호화된다. 이때, 스레드 세그멘트들은 하나 또는 그 이상의 특별히 지정 및 고정되고 매개변수화될 수 있고 프로그래밍이 가능하거나 또는 재구성이 가능한 논리 커널을 이용하여 최적화한 동작 또는 실행을 위해서 각각 프로파일되거나 또는 특정화된다.Thus, in accordance with the circuit design methodology and / or computing device and the present device, a general functional definition may be implemented using single or multi-threaded re-expression, which expression may comprise one or more corresponding kernel computing elements (ie, 1-to-multiple, 1-to-1, multi-to-1, multi-to-multiple kernel-to-thread relationships) to effectively profile parallelism. For example, communication, networking, or media processing functionality or algorithms may be analyzed or encoded to authenticate one or more thread segments. The thread segments are then profiled or specified for optimized operation or execution using one or more specially specified, fixed, parameterized, programmable or reconfigurable logic kernels, respectively.

도 3은 다른 재구성가능한 다중 처리 배치를 보여주는 함수 다이어그램이다.3 is a function diagram showing another reconfigurable multi-process batch.

도시된 바와 같이 커널(8)은 "작은(small)" 세분성(granularity) 스레드 기능을 실행하고 커널(6)은 "큰(large)" 세분성 스레드 기능을 나타낸다. 이러한 재구성가능한 배치에서, 설계 함수와 그에 대응하는 커널인 속성인 함수적 세분성의 다양한 레벨들은 설계 요구나 프로파일 매핑 우선순위에 따라서 실행되거나 또는 동적으로 재구성된다.As shown, the kernel 8 executes a "small" granularity thread function and the kernel 6 represents a "large" granular thread function. In this reconfigurable deployment, the various levels of functional granularity, which are design functions and their corresponding kernel attributes, are executed or dynamically reconfigured according to design requirements or profile mapping priorities.

도 4는 하나 또는 그 이상의 대표적이거나 유용한 구성가능한 논리와 기능들을 보여주는 함수적 다이어그램이다. 상기 논리와 기능들은, 단일 또는 다중의 스레드를 지정된 커널들로 실행하기 위하여 본 발명에 따라서 채용된다. 이때, 상기커널들은 프로그래밍이 가능한 논리 요소와 스위치 매트릭스(즉, 비트-레벨(bit-level) 동작들을 인코딩 하기 위한 것)를 갖는 재구성 가능한 논리 또는 프로그래밍 가능한 기능 유니트(PFU)(40), 멀티플렉서, 레지스터들, 에더들(adders), 버퍼들 등과 이러한 요소들(즉, 전용된 데이터패스 필터들)을 통해서 재구성 가능한 신호흐름을 갖는 재구성 가능한 데이터패스(42), 어드레스 제네레이터들, 메모리, 메모리 어드레스 컨트롤 등(즉, 산술 컨벌루션 커널)을 갖는 재배열 가능한 산술요소(arithmetic)(44), 및 데이타 메모리, 데이터패스, 프로그램 메모리, 인스트럭션 디코더 및 컨트롤러 등(즉, 실시간 동작 시스템 처리 배치)을 갖는 재구성 가능한 제어(control)(46)이 해당된다.4 is a functional diagram showing one or more representative or useful configurable logic and functions. The above logic and functions are employed in accordance with the present invention to execute a single or multiple threads into designated kernels. The kernels may then be reconfigurable logic or programmable functional units (PFUs) 40, multiplexers, having programmable logic elements and switch matrices (ie, for encoding bit-level operations). Reconfigurable datapath 42, address generators, memory, memory address control with reconfigurable signal flow through registers, adders, buffers and the like (i.e. dedicated datapath filters) Reconfigurable arithmetic 44 with back (i.e., arithmetic convolution kernel), and reconfigurable with data memory, datapath, program memory, instruction decoder and controller, etc. (i.e., real-time operating system processing arrangement) Control 46 corresponds.

도 5는 데이타 시퀀서(32), 데이타 메모리(36) 및 매개변수화가 가능하고 구성가능한 수치논리 유니트(ALU)(34)를 포함하는 커널(18)을 실행하기 위한 함수적 요소들을 보여주는 함수적 다이어그램이다.5 is a functional diagram showing functional elements for executing a kernel 18 including a data sequencer 32, a data memory 36, and a parameterizable and configurable numerical logic unit (ALU) 34. FIG. to be.

도 6은 메인 프로세서 하드웨어 모델(50)에 대한 외부적인 기능들을 처리하기 위하여 동적으로 재구성가능한 논리(DRL) 프로세스(64) 및 이와 연관된 구성 데이타 베이스 사이에서의 임의적인 인터페이스를 나타낸 함수적인 다이어그램이다.6 is a functional diagram illustrating an arbitrary interface between a dynamically reconfigurable logic (DRL) process 64 and its associated configuration database to handle external functions for the main processor hardware model 50.

바람직하게는, DRL 프로세스는 다르고 재구성이 가능하며 전류 혁신(current innovation)을 이용하여 실행된다. 도시된 바와 같이, 하드웨어 인터페이스(54)는 라이브러리(62)와 특정한 함수 모듈(60)에 연관되고 C-프로그램 모델(56)과 입력/출력 장치 드라이버(58)를 구비한 프로세서 요소(52)를 외부 DRL 프로세스(64)에 연결시킨다.Preferably, the DRL process is different, reconfigurable and implemented using current innovation. As shown, the hardware interface 54 is associated with the library 62 and the specific function module 60 and includes a processor element 52 having a C-program model 56 and an input / output device driver 58. To an external DRL process 64.

이러한 실시 예에서, 일반적인 시스템 설계나 함수적인 정의, 알고리즘, 전자신호 또는 데이타 파일과 같은 하나 또는 그 이상의 단일 또는 멀티 스레드 디지털 정보(즉, 단일 또는 데이타 표현)는 하나 또는 그이상의 멀티 스레드 표현을 포함하도록 초기에 제공된다. 그와같은 초기의 프로토타입 설계 또는 기능은 프로파일되거나, 그렇지 않으면 평행 또는 효과적으로 유사한 프로세싱을 위해서 특정화된다. 특히, 외부 DRL 프로세스(64)와의 함수적 협동 또는 에뮬레이트된 실시간 신호 상호작용을 위한 프로세서 모델(50,57)에 있어서, 하나 또는 그이상의 대응 고정되고 매개변수화가 가능하고 프로그래밍이 가능하거나 또는 구성가능한 논리 유니트 또는 다른 동등한 함수적 신호처리 커널 또는 요소에서 함수적으로 사용하거나 또는 실행된다.In such embodiments, one or more single or multithreaded digital information (ie, single or data representations), such as general system design or functional definitions, algorithms, electronic signals or data files, includes one or more multithreaded representations. Initially provided. Such early prototype designs or functions are profiled or otherwise specified for parallel or effectively similar processing. In particular, in processor models 50 and 57 for functional collaboration or emulated real-time signal interaction with external DRL processes 64, one or more corresponding fixed, parameterizable, programmable or configurable It is used or executed functionally in a logical unit or other equivalent functional signal processing kernel or element.

도 7은 본 발명의 다른 실시양태의 작동단계를 보여주는 흐름도이다. 먼저, 사용자에 의해서 발생되거나 또는 컴퓨터에 의해서 발생된 함수들은 프로토타입이나 다른 시스템 설계를 위해서 정의된다(70). 그러면, 하나 또는 그 이상의 수학적인 분석이나 디자인 성능 최적설계가 초기 설계정의에 적용된다(72). 다음으로, 설계정의를 위해서 하나 또는 그 이상의 구성 알고리즘이 제공되고(74), 그와 같은 알고리즘의 표현이 바람직하게는 높은 수준의 레지스터 이송 또는 거동 함수적 포맷으로 부호화된다(76).7 is a flow chart showing the operating steps of another embodiment of the present invention. First, functions generated by the user or generated by the computer are defined for prototype or other system design (70). Then, one or more mathematical analysis or design performance optimization design is applied to the initial design definition (72). Next, one or more configuration algorithms are provided 74 for design definition, and the representation of such algorithms is preferably encoded 76 in a high level register transfer or behavioral functional format.

알고리즘은 프로파일되고 매핑되고(78), 그렇지 않으면 대응하도록 정의된 커널들(80), 바람직하게는 하나 또는 그 이상의 특정화된 설계 조성 블록들, 즉 프리미티브(primitives)(86)를 사용하여, 최적화되거나 유도된 동작 또는 시스템 설계 모듈, 함수들, 신호들, 성분들 또는 다른 요소의 실행을 위해서 함수적으로 정의되거나 수동 및/또는 자동적으로 카테고리화된다. 프로파일링되고 매핑된 데이타는 통신 세마포르(semaphores)(84), 스케쥴링 및 유한상태 머신 제어 및 매개변수(88)에 제공된다. 그러면, 커널 정의(80) 및 FSM 제어 매개변수화 및 스케줄링(88) 뿐만아니라 통신 세마포르(84)는 본 설계의 단일 또는 다중 스레드 요소를 재구성 가능한 커널 요소(82)로서 프로세서 아키텍처에 실행하도록 적용된다. 도 8은 멀티-스레드 커널들(90)의 용법을 나타내는 단순 설계의 소프트웨어 코드를 나타낸다.The algorithm is profiled and mapped 78, or otherwise optimized, using correspondingly defined kernels 80, preferably one or more specified design composition blocks, ie primitives 86. Functionally defined or manually and / or automatically categorized for execution of the derived operation or system design module, functions, signals, components or other elements. Profiled and mapped data is provided to communication semaphores 84, scheduling and finite state machine control and parameters 88. The communication semaphores 84, as well as the kernel definition 80 and FSM control parameterization and scheduling 88, are then applied to execute the single or multithreaded elements of the design as reconfigurable kernel elements 82 to the processor architecture. . 8 shows a simple design software code that illustrates the use of multi-threaded kernels 90.

본 발명의 일 실시 양태에 따르면, 프로파일링 처리나 그것의 재구성 가능한 알고리즘 표현은 시간적이므로, 일정한 시간이나 초과시간의 변화정도를 결정하는 것을 포함한다. 시간적 응용의 예로서는 셀룰러 무선 시스템에서 요구되는 리시버 알고리즘 및 이러한 알고리즘에 연관된 신호처리계획에서의 변화를 포함한다(본 프로파일링 방법론의 장점을 이용할 수 있다). 이러한 실시 예에서, 한가지 경로(즉, 수용 방향)에서의 프로세싱 산출 요구조건은 프로세싱이 진행함에 따라 증가하거나 또는 감소하는데, 이때 본 프로파일링 계획은 전체 설계 실행의 하드웨어-소프트웨어나 다른 함수적인 분할을 결정하도록 기능한다.According to one embodiment of the present invention, the profiling process or its reconfigurable algorithmic representation is temporal and thus includes determining the degree of change of a constant time or over time. Examples of temporal applications include receiver algorithms required in cellular wireless systems and changes in the signal processing plans associated with such algorithms (you can take advantage of this profiling methodology). In this embodiment, processing computation requirements in one path (i.e., acceptance direction) increase or decrease as processing proceeds, wherein the profiling scheme is intended to avoid hardware-software or other functional partitioning of the overall design execution. Function to decide

또한, 그와같은 셀룰러 무선 실시예에서는, 다중의 방법이 유사하거나 동등한 신호처리를 수행하지만, 각기다른 에어-인터페이스 요구조건 또는 효과적 함수성을 초래할 것으로 판단된다. 특히, 주어진 시스템의 하드웨어 분할에 있어서, 다양한 처리형태나 함수적 요소들이 다양한 비율로 발생하거나 작동할 것이다. 가변적인 프로세싱 비율이 요구되고 다양한 모드의 동작 제어가 다중의 처리 흐름을 지지하도록 요구됨함으로써, 유용한 동작성능이나 하드웨어 아키텍처(즉, 실시간과 비 실시간 프로파일링)의 용량성의 견지에서 볼 때 몇몇의 추가적인 비시간적 및 시간적 프로파일링 기법이 적절한 함수적 융통성을 제공하도록 적용될 것이다. 본 발명의 다른 실시 예들은 고정된 무선, 비인가된 무선 LAN, 무코드 전화통신(telephony), 텔레메트리(telemetry) 등을 포함한 추가적인 셀룰러 무선에 적용가능하다.Further, in such cellular radio embodiments, multiple methods perform similar or equivalent signal processing, but are believed to result in different air-interface requirements or effective functionality. In particular, for hardware partitioning of a given system, various processing forms or functional elements will occur or operate at various rates. By requiring variable processing rates and varying modes of operation control to support multiple processing flows, several additional ratios can be seen in terms of useful operating performance or the capacities of the hardware architecture (ie, real-time and non-real-time profiling). Temporal and temporal profiling techniques will be applied to provide adequate functional flexibility. Other embodiments of the present invention are applicable to additional cellular wireless, including fixed wireless, unlicensed wireless LANs, cordless telephony, telemetry, and the like.

동작의 형식과 수를 결정하고 요구된 저장요소들을 결정하기 위해서 다중모드의 동작을 포괄하는 하드웨어 기초 알고리즘에 하나의 프로파일링 기법이 적용되며, 이에 의해 공통적으로 사용된 리소스의 분류가 쉬어지는 형태로 연산자로 하여금 각각의 시간적으로 독특한 함수를 분류할 수 잇게 한다.In order to determine the type and number of operations and to determine the required storage elements, a profiling technique is applied to a hardware-based algorithm that encompasses multimode operations, thereby facilitating the classification of commonly used resources. It allows operators to classify each temporally unique function.

다른 프로파일링 기법은 요구되는 주파수 변화에 따라서 하드웨어 정의의 다중 레벨을 제어하기 위하여 적용된다. 예를 들면, 무선 리시버의 리시브 경로에서의 모드 의존 변화는 트랜잭션(transaction) 구성(즉, 트랜잭션들이 멀티-세컨드 트랜잭션임)과 데이터 블록들을 포괄하는 서브-세컨드 트랜잭션(즉, "온 더 플라이(on the fly)") 사이에서의 포괄적인 재구성을 위한 시작에서 변하는 것이 필요하다.Another profiling technique is applied to control multiple levels of hardware definition in accordance with the required frequency change. For example, a mode dependent change in the receive path of a wireless receiver may result in a transaction configuration (ie, transactions are multi-second transactions) and sub-second transactions encompassing data blocks (ie, "on the fly"). It is necessary to change at the beginning for a comprehensive reconstruction between the fly.

구성가능한 실행의 적절한 레벨은 사이클 베이스에 기초한 높은 데이타 비율을 처리하는 것과 같은 프로파일링 결과에 따라서 선택된다. 그러나, 제어에 있어서 융통성이 요구되고, 프로그래밍 가능한 스테이트 머신은 필요한 성능조건을 만족시키는 적절한 융통성을 제공한다. 데이타패스는 구성시간에 따라 선택될 필요가 없지만 자주 변하지는 않으며, 프로그래밍이 가능한 상호연결이 적절하게 적용된다.Appropriate levels of configurable execution are selected according to profiling results, such as handling high data rates based on cycle base. However, flexibility is required for control, and the programmable state machine provides adequate flexibility to meet the required performance requirements. Datapaths do not need to be selected over configuration time, but do not change often, and programmable interconnects are appropriate.

만일 데이터패스 선택이 실시간으로 일어나면, 데이타패스-셀-기초 멀티플렉싱 구조가 적용된다. 또한, 동작 오더링이 필요한 함수들을 제어하기 위해서는, 프로세싱 동작을 위한 매개변수화된 커널들이 적용된다. 추가적으로, 고성능 요구조건 및 낮은 융통성 조건이 요구되는 경우에 있어서는, 지정된 데이터패스가 적절한 실리콘 실행에 적용될 수 있다. 성능지점에 대한 적절한 융통성을 부여하는 다중 표준 무선 리시버 설계의 경우에는, 하나 또는 그 이상의 프로파일링 기법이 적용될 수 있다.If datapath selection occurs in real time, the datapath-cell-based multiplexing scheme is applied. In addition, in order to control functions that require operation ordering, parameterized kernels for processing operations are applied. Additionally, where high performance requirements and low flexibility requirements are required, a designated datapath can be applied to the appropriate silicon implementation. In the case of a multi-standard radio receiver design that gives adequate flexibility to the point of performance, one or more profiling techniques may be applied.

도 9A는 본 발명의 일반적인 실시양태를 나타낸 것이다. 도시된 바와 같이 유선 및/또는 무선 네트워크 다운로드 또는 다른 송/수신을 이용하여 본 발명의 기법에 따른 단일 또는 멀티-스레드 재구성가능한 시스템 실행을 위하여 하나 또는 그 이상의 구성 매개변수들을 제공하도록 응용 프로그래밍 인터페이스(API)(94)를 통해서 하나 또는 그 이상의 산업 또는 재산권 표준을 따른 용량성(capability), 매개변수들 및 수치들을 구성 테이블(92)로 전달하는 흐름이 나타나 있다.9A illustrates a general embodiment of the present invention. As shown, an application programming interface may be provided to provide one or more configuration parameters for implementing single or multi-threaded reconfigurable systems in accordance with the techniques of the present invention using wired and / or wireless network downloads or other transmit / receive. An API 94 is depicted for passing capacities, parameters, and values to configuration table 92 in accordance with one or more industry or property standards.

마이크로프로세서, 디지탈 신호 처리기(DSP), 응용 특정집적회로(ASIC), 필드 프로그램가능한 게이트 어레이(FPGA), DRL 또는 다른 함수적인 블록 모듈들을 나타내는 하나 또는 그 이상의 상호연결된 블록모듈들(96)을 한정하거나 실행하도록 API(94)를 통해서 구성매개변수를 수용한다. 본 발명의 다른 실시 양태에 따르면, 하나 또는 그 이상의 구성가능한 매개변수들(100)은 하나 또는 그 이상의 특정한 커널 요소들에 대한 스레드 패션에 대응하도록 정의되거나 실행된다. 그러므로, 이러한 구성가능한 매개변수 경우에 있어서, 설계와 실행방법 또는 시스템은 함수적 성능을 개선시키기 위하여 다중-스레드 신호 또는 데이타를 처리하도록 기능한다.Define one or more interconnected block modules 96 representing a microprocessor, digital signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate array (FPGA), DRL or other functional block modules. Or accept configuration parameters via API 94 to execute. According to another embodiment of the present invention, one or more configurable parameters 100 are defined or executed to correspond to a thread fashion for one or more specific kernel elements. Therefore, in this configurable parameter case, the design and implementation method or system functions to process multi-threaded signals or data to improve functional performance.

일반적으로, 시스템 설계나 함수적인 정의, 알고리즘, 전자 신호 또는 데이타 파일은 그와같은 다중-스레드 표현을 포함하도록 제공되고, 초기의 프로토파입 함수는 하나 또는 그 이상의 스레드에 의해서 평행 처리를 위해 프로파일된다. 예를 들면, 일시적으로 한정되는 일정한 매개변수화된 커널 요소들을 실행한다.Generally, system design or functional definitions, algorithms, electronic signals or data files are provided to include such multi-threaded representations, and the initial prototype function is profiled for parallel processing by one or more threads. . For example, it executes certain parameterized kernel elements that are temporarily defined.

특히, 도 9B에 도시된 바와 같이, 디지탈 무선 커뮤니케이션 응용에 있어서, 이동식 라디오 핸드셋(102)은 기지국(104)과 무선으로 신호를 송수신하며, 디지털 네트워크(105)를 통해서 다른 핸드셋(102)이나 다른 기지국(104)에 연결될 수 있다. 이러한 네트워크 응용에 있어서, 특정화된 설계 룰, 동작, 또는 매개변수들 뿐만아니라 이것을 기호화하거나 도식화시킨 표현들은 프로그래밍 가능한 커널들 또는 소프트웨어 모듈에서 프로파일링하고 실행하기 위하여 다중 스레드에 대응하거나 이를 이증하게 된다.In particular, as shown in FIG. 9B, in a digital wireless communication application, the mobile radio handset 102 transmits and receives signals wirelessly with the base station 104, and other handsets 102 or other via the digital network 105. May be connected to the base station 104. In such network applications, specific design rules, operations, or parameters, as well as representations that symbolize or diagram it, correspond to or multiply multiple threads for profiling and execution in programmable kernels or software modules.

임의적으로, 커널 요소들은 기지국(104) 및/또는 핸드셋 유니트(102)에서 동작을 위하여 구성된다. 특히, 커널들은 프로파일링된 데이터패스, 시퀀서/유한-상태-머신, 메모리 또는 다른 논리구조에 대하여 시간적 또는 비 시간적 설계 제한에 따라 구성된다.Optionally, kernel elements are configured for operation at base station 104 and / or handset unit 102. In particular, kernels are configured according to temporal or non-temporal design constraints for profiled datapaths, sequencer / finite-state-machines, memory, or other logical structures.

본 발명은 상기의 실시예들을 통해서 설명되었지만, 상기의 예로서 제한되지 않는다.The present invention has been described through the above embodiments, but is not limited to the above examples.

특히, 본 출원인은 여기에서 설명한 본 발명이 하드웨어, 소프트웨어, 및/또는 다른 유용한 함수적 성분들이나 빌딩 블록들에서 동등하게 실행될 수 있을 것으로 판단한다.In particular, the Applicant believes that the invention described herein may be equally implemented in hardware, software, and / or other useful functional components or building blocks.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art will be able to variously modify and change the present invention without departing from the spirit and scope of the invention as set forth in the claims below. It will be appreciated.

Claims (15)

컴퓨터 지원 설계시스템에서 멀티-스레드 시스템 기능성(multi-threaded system functionality)을 처리하기 위한 자동화 방법으로서,As an automated method for handling multi-threaded system functionality in a computer-aided design system, 시스템 설계를 나타내는 제 1 기능 정의를 제공하는 단계;Providing a first functional definition representing a system design; 상기 제 1 기능 정의를 기호적으로 나타내는 제 2 기능 정의를 상기 제 1 기능 정의로부터 발생시키는 단계로, 이때 기호적인 표현은 상기 시스템 설계와 연관된 하나 또는 그 이상의 스레드(thread)를 인증하는, 단계; 그리고Generating a second function definition from the first function definition that symbolically represents the first function definition, wherein the symbolic representation authenticates one or more threads associated with the system design; And 특정화된 커널 요소 또는 그것의 세트에 의해서 처리하기 위하여 각각의 스레드를 프로파일하는 단계를 포함하는 것을 특징으로 하는 자동화 방법.Profiling each thread for processing by a specified kernel element or set thereof. 제 1 항에 있어서, 주어진 스레드에서 동작의 공통 시퀀스를 인증하는 단계; 및 동작의 공통 시퀀스를 연산자 세트와 연관시키는 단계를 더 포함하는 것을 특징으로 하는 자동화 방법.The method of claim 1, further comprising: authenticating a common sequence of operations in a given thread; And associating a common sequence of operations with a set of operators. 제 2 항에 있어서, 상기 연산자 세트를 산술 연산의 시퀀스와 연관시키는 단계를 더 포함하는 것을 특징으로 하는 자동화 방법.3. The method of claim 2 further comprising associating the set of operators with a sequence of arithmetic operations. 제 2 항에 있어서, 상기 연산자 세트를 제어 연산의 시퀀스와 연관시키는 단계를 더 포함하는 것을 특징으로 하는 자동화 방법.3. The method of claim 2 further comprising associating the set of operators with a sequence of control operations. 제 2 항에 있어서, 상기 연산자 세트를 메모리 접근 동작이나 위치의 시퀀스와 연관시키는 단계를 더 포함하는 것을 특징으로 하는 자동화 방법.3. The method of claim 2 further comprising associating the set of operators with a sequence of memory access operations or locations. 제 1 항에 있어서, 하나 또는 그 이상의 스레드가 시간적 기능에 따라서 프로파일되는 것을 특징으로 하는 자동화 방법.The method of claim 1, wherein one or more threads are profiled according to a temporal function. 멀티-스레드 처리를 위한 장치로서,A device for multi-threaded processing, 제 1 커널요소와 제 2 커널요소를 포함하며, 상기 제 1 커널 요소는 제 1 스레드에 의해서 표현되는 제 1 기능을 처리하고, 상기 제 2 커널 요소는 제 2 스레드에 의해서 표현되는 제 2 기능을 처리하며, 상기 제 1 스레드와 상기 제 2 스레드는 상기 제 1 커널 요소와 상기 제 2 커널 요소에 의해서 각각 처리되도록 프로파일되고, 상기 제 1 스레드와 상기 제 2 스레드는 공통 기능과 연관되는 것을 특징으로 하는 장치.A first kernel element and a second kernel element, wherein the first kernel element handles a first function represented by a first thread, and the second kernel element represents a second function represented by a second thread. Wherein the first thread and the second thread are profiled to be processed by the first kernel element and the second kernel element, respectively, and the first thread and the second thread are associated with a common function. Device. 제 7 항에 있어서, 동작의 공통 시퀀스는 주어진 스레드에 의해서 인증이 가능하고, 상기 동작의 공통 시퀀스는 연산자 세트와 연관되는 것을 특징으로 하는 장치.8. The apparatus of claim 7, wherein the common sequence of operations is capable of being authenticated by a given thread and the common sequence of operations is associated with a set of operators. 제 8 항에 있어서, 상기 연산자 세트는 산술, 제어 또는 메모리 접근 동작의 시퀀스와 연관되는 것을 특징으로 하는 장치.9. The apparatus of claim 8, wherein the set of operators is associated with a sequence of arithmetic, control, or memory access operations. 제 7 항에 있어서, 상기 제 1 스레드 또는 상기 제 2 스레드는 시간적 제약에 따라서 프로파일되는 것을 특징으로 하는 장치.8. The apparatus of claim 7, wherein the first thread or the second thread is profiled according to a time constraint. 제 7 항에 있어서, 상기 제 1 커널 요소와 상기 제 2 커널 요소는 하나 또는 그 이상의 실행가능한 소프트웨어 모듈로서 실행되는 것을 특징으로 하는 장치.8. The apparatus of claim 7, wherein the first kernel element and the second kernel element are executed as one or more executable software modules. 제 7 항에 있어서, 상기 제 1 커널 요소와 상기 제 2 커널 요소는 라디오 통신 시스템의 고정된 기지국나 이동 핸드세트에서 하나 또는 그 이상의 함수적 모듈로서 실행되는 것을 특징으로 하는 장치.8. The apparatus of claim 7, wherein the first kernel element and the second kernel element are implemented as one or more functional modules in a fixed base station or mobile handset of a radio communication system. 기지국과 하나 또는 그 이상의 이동 유니트를 포함하며 각각의 상기 이동 유니트는 라디오 신호를 통해 상기 기지국과 무선으로 통신하는 통신장치에서의 신호처리방법으로서,A signal processing method in a communication device including a base station and one or more mobile units, each mobile unit communicating wirelessly with the base station via a radio signal, 장치 구성을 나타내는 제 1 신호를 상기 기지국에서 발생시키는 단계를 포함하며, 이때 상기 제 1 신호는 상기 장치 구성에 있어서 하나 또는 그 이상의 스레드와 연관된 하나 또는 그 이상의 기능 정의를 기호적으로 나타내고, 각각의 스레드는 이동 유니트에서 특정화된 커널 요소에 의해서 처리되도록 프로파일되는 것을 특징으로 하는 신호처리방법.Generating at the base station a first signal indicative of device configuration, wherein the first signal symbolically represents one or more function definitions associated with one or more threads in the device configuration, The thread is profiled to be processed by a kernel element specified in the mobile unit. 제 13 항에 있어서, 상기 이동 유니트에 의해서 상기 제 1 신호를 수용하는 단계를 더 포함하며, 상기 휴대용 유니트에서 하나 또는 그 이상의 커널 요소는 상기 제 1 신호를 따라 상기 장치 설계에 있어서 하나 또는 그 이상의 스레드를 처리하도록 구성되는 것을 특징으로 하는 신호처리방법.14. The apparatus of claim 13, further comprising the step of accepting the first signal by the mobile unit, wherein one or more kernel elements in the portable unit are in accordance with the first signal in one or more of the device designs. And processing the thread. 제 13 항에 있어서, 하나 또는 그 이상의 스레드는 시간적 기능상의 제약에따라서 프로파일되는 것을 특징으로 하는 신호처리방법.14. The method according to claim 13, wherein one or more threads are profiled according to temporal functional constraints.
KR1020027009711A 2000-01-27 2001-01-29 Improved apparatus and method for multi-threaded signal processing KR100784412B1 (en)

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 true KR20030004327A (en) 2003-01-14
KR100784412B1 KR100784412B1 (en) 2007-12-11

Family

ID=23956997

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027009711A KR100784412B1 (en) 2000-01-27 2001-01-29 Improved apparatus and method for multi-threaded signal processing

Country Status (6)

Country Link
JP (1) JP2003521072A (en)
KR (1) KR100784412B1 (en)
AU (1) AU2001233119A1 (en)
DE (1) DE10195202T1 (en)
GB (1) GB2374701B (en)
WO (1) WO2001055917A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100754153B1 (en) * 2003-04-23 2007-09-03 인터내셔널 비지네스 머신즈 코포레이션 Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded smt processor
KR20220054687A (en) * 2019-09-11 2022-05-03 레드파인 시그널스 인코포레이티드 Multithreaded processors with thread granularity

Families Citing this family (9)

* Cited by examiner, † Cited by third party
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
US6988188B2 (en) 2000-03-01 2006-01-17 Realtek Semiconductor Corp. Data object architecture and method for xDSL ASIC processor
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
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
US7693257B2 (en) 2006-06-29 2010-04-06 Accuray Incorporated Treatment delivery optimization
CN107193539B (en) * 2016-03-14 2020-11-24 北京京东尚科信息技术有限公司 Multithreading concurrent processing method and multithreading concurrent processing system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
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
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
US6112020A (en) * 1996-10-31 2000-08-29 Altera Corporation Apparatus and method for generating configuration and test files for programmable logic devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100754153B1 (en) * 2003-04-23 2007-09-03 인터내셔널 비지네스 머신즈 코포레이션 Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded smt processor
KR20220054687A (en) * 2019-09-11 2022-05-03 레드파인 시그널스 인코포레이티드 Multithreaded processors with thread granularity

Also Published As

Publication number Publication date
GB0217126D0 (en) 2002-09-04
WO2001055917A1 (en) 2001-08-02
DE10195202T1 (en) 2003-04-30
JP2003521072A (en) 2003-07-08
GB2374701A (en) 2002-10-23
AU2001233119A1 (en) 2001-08-07
KR100784412B1 (en) 2007-12-11
GB2374701B (en) 2004-12-15

Similar Documents

Publication Publication Date Title
US20060026578A1 (en) Programmable processor architecture hirarchical compilation
CN1653446A (en) High-performance hybrid processor with configurable execution units
KR100784412B1 (en) Improved apparatus and method for multi-threaded signal processing
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
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
Auras et al. CMA: Chip multi-accelerator
Duhem et al. Design space exploration for partially reconfigurable architectures in real-time systems
Kosciuszkiewicz et al. Run-time management of reconfigurable hardware tasks using embedded linux
Nguyen et al. Design and implementation of a coarse-grained dynamically reconfigurable multimedia accelerator
Desnos et al. Dataflow modeling for reconfigurable signal processing systems
Holzer et al. Efficient design methods for embedded communication systems
Tiensyrjä et al. SystemC and OCAPI-xl based system-level design for reconfigurable systems-on-chip
Cui A Novel Approach to Hardware/Software Partitioning for Reconfigurable Embedded Systems.
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
Jóźwiak et al. Quality-driven model-based architecture synthesis for real-time embedded SoCs
Frijns et al. Dataflow-based multi-asip platform approach for digital control applications
Weng et al. Exploiting fine-grain ordered parallelism in dense matrix algorithms
Masselos et al. System level architecture exploration for reconfigurable systems on chip
Riggins et al. Implementation and usage of radio frequency identification (RFID)

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