KR20040012878A - 적용 컴퓨팅 엔진에서 스케줄링하기 위한 방법 및 시스템 - Google Patents
적용 컴퓨팅 엔진에서 스케줄링하기 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR20040012878A KR20040012878A KR10-2003-7015689A KR20037015689A KR20040012878A KR 20040012878 A KR20040012878 A KR 20040012878A KR 20037015689 A KR20037015689 A KR 20037015689A KR 20040012878 A KR20040012878 A KR 20040012878A
- Authority
- KR
- South Korea
- Prior art keywords
- schedule
- value
- scheduling
- cost
- dataflow graph
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
적응가능한 컴퓨팅 엔진에 대한 스케줄러의 방법이 기술된다. 이 방법은 적응가능한 컴퓨팅 엔진상에서 어셈블링된 프로그램의 특정 세그먼트를 실행하기 위하여 이용가능한 하드웨어 자원으로서 다수의 계산 유닛을 제공하는 단계를 포함한다. 특정 세그먼트에 대한 스케줄은 실행가능한 스케줄이 달성될때까지 반복방식으로 특정 세그먼트를 나타내는 데이터흐름 그래프에 따라 다수의 계산유닛을 할당함으로서 변경된다.
Description
전자 산업은 다수의 내장형 시스템 마켓을 포함하는 고용량 소비자 애프리케이션의 요구를 충족시키기 위하여 확장되었다. 내장형 시스템은 최소 시간, 최소 전력소비 및 최소 비용으로 성능을 개선하고자하는 도전에 직면해 있다. 내장형 시스템이 사용되는 소비자 애플리케이션의 형태 및 수가 증가하기 때문에, 이들 도전은 훨씬 더 강조되고 있다. 내장형 시스템이 사용되는 소비자 애플리케이션의 예는 셀룰라폰, 개인휴대정보 단말기(PDA), 위성위치확인시스템(GPS) 수신기, 디지털 카메라 등과 같은 휴대용 장치를 포함한다. 이들 장치는 그들의 특성에 따라 소형, 저전력, 저중량 및 피처-리치(feature-rich)가 되도록 요구된다.
피처-리치 성능을 제공하기 위한 도전에 있어서, 장치에서 이용가능한 하드웨어 자원의 효율적인 이용을 제공하는 능력은 최고가 되가 되고 있다. 다중 처리엘리먼트를 사용하는 대부분의 모든 처리 환경에서 처럼, 상기 엘리먼트가 특정 관심 대상인 프로세서, 메모리, 레지스터 파일 등의 형태를 취하는지의 여부는 가까운 장래에 직무를 위하여 이용가능한 각 엘리먼트에 대한 유용한 작업을 알수 있다. 따라서, 스케줄링하여 자원을 할당하는 최적 방식을 식별하기 위한 적정 의사결정 프로세스는 효율적인 그리고 효과적인 시스템을 달성하는데 필요하다. 본 발명은 이러한 필요성을 제기한다.
본 발명은 제시간에 프로그램 명령을 스케줄링하여 처리소스에 할당하는 기술에 관한 것이다.
도 1은 적응 컴퓨팅 엔진을 설명하는 블록도.
도 2는 적응 컴퓨팅 엔진의 다수의 계산 엘리먼트, 다수의 계산유닛 및 재구성가능한 매트릭스를 설명하는 블록도.
도 3은 본 발명에 따른 스케줄링 프로세스를 설명하는 블록도.
도 4는 본 발명에 따른 데이터흐름 그래프 표현을 나타낸 도면.
적응가능 컴퓨팅 엔진에 대한 스케줄러의 특징이 기술된다. 이들 특징은 적응가능 컴퓨팅 엔진상에 어셈블리된 프로그램의 특정 세그먼트를 실행하기 위하여 이용가능한 하드웨어 자원으로서 다수의 계산유닛을 제공하는 단계를 포함한다. 특정 세그먼트에 대한 스케줄은 실행가능한 스케줄이 달성될때까지 반복방식으로 특정 세그먼트를 나타내는 데이터흐름 그래프에 따라 다수의 계산유닛을 할당함으로서 개량된다.
본 발명은 제시간에 프로그램 명령을 스케줄링하여 처리자원에 할당하는 기술에 관한 것이다. 다음의 설명은 당업자로 하여금 본 발명을 실시 및 이용할 수있도록 제공되며, 또한 특허출원 및 특허요건과 관련하여 제공된다. 여기에 기술된 바람직한 실시예 및 일반적인 원리와 특징에 대한 다양한 수정은 당업자에 의하여 용이하게 수행될 것이다. 따라서, 본 발명은 개시된 실시예에 제한되지 않으며 여기에 기술된 원리 및 특징에 맞는 가장 넓은 범위를 따른다.
바람직한 실시예에서, 본 발명의 양상은 "고정 애플리케이션 특정 계산 엘리먼트를 가진 적응 계산 유닛 및 다른 종류의 이종 및 재구성가능한 매트릭스를 가진 적응 집적회로"라는 명칭을 가지는 공동 계류중인 미국특허 출원번호 no._ 의 상세한 설명에 따라 적응가능한 컴퓨팅 엔진과 관련하여 제공된다. 상세한 설명의 일부는 본 발명의 특징을 좀더 명확하게 나타내기 위하여 복제된다.
도 1에는 집적회로 또는 다른 추가 소자를 가진 집적회로의 일부로서 바람직하게 구현되는 적응 컴퓨팅 엔진("ACE")(100)을 설명하는 블록도가 도시되어 있다. 바람직한 실시예에서, 이하에서 상세히 논의되는 바와같이, ACE(100)는 제어기(120), 매트릭스(150A 내지 150N)와 같은 하나 이상의 재구성가능 매트릭스(150), 및 매트릭스 상호접속 네트워크(110)를 포함하며, 바람직하게 메모리(140)를 포함한다.
종래기술과 다른 것은 ACE(100)가 재구성가능한 매트릭스(150), 제어기(120), 및 메모리(140)간에 신호전송 및 다른 전송을 수행하거나 또는 다른 입력/출력("I/O") 기능을 위한 통상적인(그리고 전형적으로 개별) 데이터 및 명령 버스를 이용하지 않는다는 점이다. 오히려, 데이터, 제어 및 구성 정보가 이하에서 더 상세히 기술되는 바와같이 재구성가능 매트릭스(150), 제어기(120),및 메모리(140)간에 임의의 소정 접속을 제공하기 위하여 실시간으로 구성 및 재구성될 수 있는 매트릭스 상호접속 네트워크(110)을 이용하는 상기 엘리먼트 사이에 전송된다.
메모리(140)는 공지된 임의의 바람직한 방식으로 실행될 수 있으며, ACE(100)내에 포함될 수 있거나 또는 다른 IC 또는 IC의 일부내에 통합될 수 있다. 바람직한 실시예에서, 메모리(140)는 ACE(100)내에 포함되며 바람직하게 저소비전력 랜덤 액세스 메모리(RAM)이나, 또한 플래시, DRAM, SRAM, MRAM, ROM, EPROM, 또는 E2PROM과 같은 다른 형태의 메모리일 수 있다. 바람직한 실시예에서, 메모리(140)는 바람직하게 직접 액세스 메모리(DMA) 엔진을 포함하나 개별적으로 기술되지 않는다.
제어기(120)는 바람직하게 감소된 명령세트("RISC") 프로세서, 제어기 또는 이하에 기술된 다른 형태의 기능을 수행할 수 있는 다른 장치 또는 IC로서 실행된다. "커널(kernal)" 제어로서 언급된 제 1 제어기능은 커널 제어기("KARC")(125)로서 기술되며, "매트릭스" 제어로서 언급된 다른 제어기능은 매트릭스 제어기("MARC")(130)로서 기술된다.
다양한 매트릭스(150)는 재구성가능하며 이질적인 성분으로 이루어지며 적정 구성을 따른다. 재구성가능한 매트릭스(150A)는 일반적으로 재구성 가능한 매트릭스(150B 내지 150N)과 다르며, 재구성가능한 매트릭스(150B)는 일반적으로 재구성가능한 매트릭스(150A, 150C 내지 150N)과 다르며, 재구성가능한 매트릭스(150C)는 일반적으로 재구성가능한 매트릭스(150A, 150B, 150D 내지 150N)과 다르다. 다양한 재구성가능한 매트릭스(150)는 일반적으로 각각 다른 또는 다양한 계산유닛(200, 도 2)을 포함하며, 이 계산유닛(200)은 또한 상호접속 네트워크를 통해 다양한 기능을 실행하기 위해 다양한 방식으로 접속, 구성 및 재구성될 수 있는 다른 또는 다양하게 결합된 고정 애플리케이션 특정 계산 엘리먼트(250, 도 2)을 포함한다. 다양한 내부 구성 및 재구성외에, 다양한 매트릭스(150)는 매트릭스 상호접속 네트워크(110)를 통해 각각의 다른 매트릭스(150)에 비하여 고레벨로 접속, 구성 및 재구성될 수 있다.
도 2에는 다수의 계산유닛(200)(계산유닛 200A 내지 200N으로 기술됨) 및 다수의 계산 엘리먼트(250)(계산 엘리먼트 250A 내지 250N으로 기술됨)를 가진 재구성가능 매트릭스(150)를 기술하며 바람직한 형태의 계산 엘리먼트(250)를 추가로 기술한 블록도가 도시되어 있다. 도 2에 기술된 바와같이, 임의의 매트릭스(150)는 일반적으로 매트릭스 제어기(230) 및 다수의 계산유닛(200)을 포함하며, 또한 매트릭스 상호접속 네트워크(110)의 논리적 또는 개념적 부세트 또는 부분으로서 데이터 상호접속 네트워크(240) 및 부울 상호접속 네트워크(210)를 포함한다. 전술한 부울 상호접속 네트워크는 다양한 계산 유닛(200)간의 부울 또는 논리적 입력 및 출력에 재구성가능한 상호접속 능력을 제공하는 반면에, 데이터 상호접속 네트워크(240)는 다양한 계산유닛(200)간의 데이터 입력 및 출력에 재구성가능한 상호접속 능력을 제공한다. 그러나, 부울 및 데이터 능력으로 개념적으로 분할되는 동안 매트릭스 상호접속 네트워크(110)의 임의의 주어진 물리부분이 부울 상호접속 네트워크(210), 데이터 상호접속 네트워크(240), 최저레벨 상호접속부(220)(다양한계산유닛(250)사이) 또는 다른 입력, 출력 또는 상호접속 기능부로서 임의의 주어진 시간에 동작할 수 있다는 것에 유의해야 한다.
도 2를 계속해서 참조하면, 계산 유닛(200)은 계산 엘리먼트(250A 내지 250Z)(통칭으로 계산유닛(250)이라 함)로 기술된 다수의 계산 엘리먼트(250) 및 추가 상호접속부(220)를 포함한다. 상호접속부(220)는 다양한 계산 엘리먼트(250)사이에 재구성가능한 상호접속 능력 및 입력/출력 경로를 제공한다. 앞서 지시된 바와같이, 각각의 다양한 계산 엘리먼트(250)는 주어진 작업 또는 작업의 범위를 수행하도록 설계된 전용 애플리케이션 특정 하드웨어로 이루어지며, 이에따라 다수의 다른 고정된 계산 엘리먼트(250)를 야기한다. 고정된 계산 엘리먼트(250)는 상호접속부(220), 부울 네트워크(210) 및 매트릭스 상호접속 네트워크(110)를 알고리즘 또는 다른 기능을 임의의 주어진 시간에 실행하기 위하여 함께 재구성가능하게 접속될 수 있다.
바람직한 실시예에 있어서, 다양한 계산 엘리먼트(250)는 다양한 재구성가능 계산 유닛(200)으로 설계되고 또한 다양한 재구성가능 계산유닛(200)으로 함께 그룹핑된다. 곱셈과 같은 특정 알고리즘 또는 기능을 실행하도록 설계된 계산 엘리먼트(250)외에, 다른 형태의 계산 엘리먼트(250)가 이용될 수 도 있다. 도 2에 기술된 바와같이, 계산 엘리먼트(250A, 250B)는 메모리를 실행하여 임의의 주어진 계산 또는 처리기능을 위한 로컬 메모리 엘리먼트(가장 멀리 있는 "원격" 메모리(140)와 비교하여)를 제공한다. 게다가, 계산 엘리먼트(250I, 250J, 250K, 250L)는 유한 상태 머신을 실행하여(예컨대, 다수의 플립플롭을 사용하여), 계산된제어 프로세싱에 특히 적합한 로컬 프로세싱 능력을 제공한다(가장 멀리 떨어진 "원격" MARC(130)와 비교하여).
바람직한 실시예에 있어서, 매트릭스 제어기(230)는 임의의 재구성 프로세스 및 임의의 대응하는 데이터 조작의 제어 및 큰 기준위치를 제공하기 위하여 임의의 주어진 매트릭스(150)내 포함된다. 예컨대, 일단 계산 엘리먼트(250)의 재구성이 임의의 주어진 계산 유닛(200)내에서 발생되면, 매트릭스 제어기(230)는 특정 인스턴스 생성(instantiation)(또는 구성)이 주어진 애플리케이션에 대한 반복 데이터 프로세싱을 계속하기 위하여 임의의 기간동안 그대로 유지되도록 할 수 있다.
ACE(100)의 적정 기능에 따라 이용할 수 있는 다른 형태의 다른 계산 엘리먼트(250)에서는 계산 유닛(200)이 개략적으로 분류될 수 있다. 계산 유닛(200)의 제 1 카테고리는 곱셈, 덧셈, 유한 임펄스 응답 필터링 등과 같은 선형 동작을 실행하는 계산 엘리먼트(250)를 포함한다. 계산 유닛(200)의 제 2 카테고리는 개별 코사인 변환, 삼각법 계산 및 복곱셈(complex multiplication)과 같은 비선형 연산을 실행하는 계산 엘리먼트(250)를 포함한다. 계산 유닛(200)의 제 3형태는 복잡한 제어 시퀀스, 동적 스케줄링 및 입력/출력 관리에 대하여 특히 유용한 계산 유닛(200C)과 같은 유한 상태 머신(도 2에 기술됨)을 실행하며, 계산 유닛(200)의 제 4형태는 계산 유닛(200A)과 같이 메모리 및 메모리 관리를 실행할 수 있다. 마지막으로, 계산 유닛(200)의 제 5형태는 채널 코딩과 같은 비트-레벨 조작을 실행하기 위하여 포함될 수 있다.
이들 계산 유닛으로부터 최적 성능을 달성하기 위해서는 많은 문제를 포함한다. 특정 고려사항은 유용한 작업을 실행하기 위하여 이용가능한 하드웨어 자원을 스케줄링 및 할당하는 방법에 관한 결정을 하는 것이다. 전체적으로, 본 발명은 계산 유닛의 이용가능한 하드웨어 자원에서 컴파일된 프로그램의 어셈블리된 형태를 스케줄링하는 것과 관련있다. 스케줄은 명령이 실행될 때를 지시하고 이용가능한 자원이 능력을 효율적으로 최반복하는 방식으로 사용되도록 하기 위하여 어느 자원이 사용되었는지를 지시하기 위하여 제어기(120)의 스케줄러 툴에 의하여 제공된다. 최적화를 실행할때, 스케줄러는 제어기의 분리기 부분으로부터의 정보를 이용한다. 분리기는 스케줄링될 수 있는 데이터흐름 그래프(이하에서 논의됨)를 나타내는 코드 "세그먼트"를 추출한다. 코드 세그먼트는 "for loops", 'if-then-else"에 의하여 생성된 배리어를 발생시키며, 서브루틴은 프로그램에서 배리어를 결정하는 종래의 시퀀스 모델에서 이해되는 바와같이 실행되는 프로그램에서 호출한다. 따라서, 세그먼트가 스케줄링되도록 하기 위하여, 분리기는 세그먼트를 분리하며, 어느 세그먼트가 레지스터를 공유하는지를 결정하며, 예컨대 프로그래머가 가장 높은 우선순위인 것으로 호출한 세그먼트 및 내부 루프에 우선순위를 제공하는 바와같이 어느 세그먼트가 우선순위를 가지는지를 결정한다. 분리기는 각 코드 세그먼트에 대한 스케줄러를 호출하며 어느 레지스터가 할당되는지를 지시한다.
도 3은 일단 스케줄러가 호출된 경우에 스케줄링 프로세스에서의 단계들에 대한 블록도를 기술한다. 도시된 바와같이, 프로세스는 하드웨어 구성 파일을 야기하는 하드웨어 구성 테이블의 초기화(단계 300)로부터 시작한다. 하드웨어 구성 파일은 그것의 계산 및 I/O 자원 및 네트워크 자원에 관한 단일 형태의 매트릭스에대한 구성을 한정한다. 따라서, 계산 및 I/O 자원은 각 계산 유닛(CU)의 형태 및 수에 의하여 각 매트릭스에 대하여 특정된다. 각각의 CU에서, CU상에서 실행될 수 있는 연산 리스트가 특정된다. 리스트의 각 연산에 대하여, 연산이 대칭(예컨대, 덧셈) 또는 비대칭(예컨대, 뺄셈)인지, 그리고 비대칭 연산인 경우 하드웨어가 스위칭 연산을 조절할 수 있는지에 관한 명세서가 하드웨어에 의하여 요구된 파이프라인 지연의 수에 제공된다. 각 매트릭스에 대한 네트워크 자원은 모든 CU 출력 포트 내지 CU 입력 포트 루틴에 대한 크로스포인트 테이블에 의하여 특정된다. 각각의 루트에 대하여, 루트 형태(예컨대, 레지스터 파일, 래치, 또는 와이어) 및 블로킹 리스트(즉, 상기 루틴이 사용될때 차단되는 다른 루트)가 특정된다. 각각의 레지스터 파일 루터 형태에 대하여 파일에서의 레지스터의 수 및 파이프라인 지연의 수가 특정된다.
스케줄러는 입력 데이터흐름 그래프(단계 305)를 초기화한다. 전술한 바와같이, 코드 세그먼트는 추출되어 데이터흐름 그래프로서 표현된다. 데이터흐름 그래프는 노드 및 에지 세트에 의하여 형성된다. 도 4에 도시된 바와같이, 소스 노드(400)는 하나 이상의 목적지 노드(405, 410)에 값을 전송할 수 있으며, 여기서 각각의 노드는 자동연산, 즉 단일 연산 예컨대 덧셈 또는 시프트로서 하부 하드웨어에 의하여 지원되는 연산을 실행한다. 오퍼랜드는 소스 노드(400) 및 출력 포트로부터 에지(420)으로서 표현된 경로를 따라 출력되며, 여기서 에지(420)는 소스 노드(400)의 출력 에지로서 동작하며 목적지 노드(405, 410)의 입력 에지를 입력 포트에 분기한다. 논리적인 관점에서 보면, 노드는 실행하는데 전혀 시간이 걸리지 않는다. 노드는 그것의 모든 입력에지가 값을 가질때 실행/시동한다. 입력 에지없는 노드는 클럭 사이클 0에서 실행하려한다.
게다가, 에지의 두 형태는 데이터흐름 그래프로 표현될 수 있다. 상태 에지는 레지스터로 실현되며, 1 클럭 사이클의 지연을 가지며, 일정한 피드백 경로를 위하여 사용될 수 있다. 와이어 에지는 0 클록 사이클의 지연을 가지며, 현재의 클록 사이클 동안만 유효한 값을 가지며, 이에 따라 목적지 노드는 동일한 논리적 클럭 사이클상에서 소스 노드로서 실행된다. 스케줄러는 논리적 클럭 사이클을 선택하여 계산 자원 및 네트워크 자원의 유효성에 기초하여 물리적 클럭 사이클 전반에 걸쳐 확산시킨다. 데이터흐름 그래프가 일반적으로 한번 실행되고 결코 다시 실행되지 않는 반면에, 데이터흐름 그래프는 "for loop"를 실행하기 위하여 많은 시간동안 유지될 수 있다. 상태 에지는 "for loop" 시작전에 초기화되어야 하며, 결과치는 "for loop"가 완료될때 상태 에지로부터 복사될 수 있다. 임의의 연산은 단일 데이터 스트림으로부터의 입력과 같이 번호순서대로 나열될 필요가 있다. 데이터흐름 그래프는 노드가 순차적으로 실행되도록 가상 부울 에지를 포함한다.
스케줄러 그 자체는 입력 데이트흐름 그래프에 의하여 특정된 노드 리스트에서의 노드가 단일 클럭 사이클동안 병렬로 실행될 수 있는지 그리고 노드가 다음 사이클까지 지연되어야 하는 것을 결정한다. 스케줄러는 중간값(노드의 지연된 실행에 의하여 요구됨)을 유지하며, 상태 변수를 유지하며, 상수를 유지하기 위하여 레지스터를 할당한다. 게다가, 스케줄러는 레지스터가 재사용될때를 결정하기 위하여 레지스터 수명을 분석하고, 노드를 CU에 할당하며, 특정 클럭 사이클동안 실행할 노드를 스케줄링한다. 따라서, 각 노드에 대하여, 따라서, 몇가지 설명은 동작 코드(Op 코드); 소스 코드의 포인터(예컨데 55줄의 fir필터, q); 임의의 경우에 사전설정된 CU; 입력 에지의 목록; 출력 에지의 목록; 및 각 에지에 대한 소스 노드, 지정 노드, 및 상태 플래그, 즉 에지가 초기값을 가지는지의 여부를 나타내는 플래그를 포함한다.
도 3을 다시 참조로하여, 초기 단계 이후에, 스케줄러는 '가능한 한 빠른'(ASAP) 스케줄(단계310)과 '세미-스마트' 스케줄(단계315)을 결정함으로써 초기 스케줄을 결정한다. ASAP 스케줄은 데이터 흐름 그래프를 스캐닝하여 명령사이의 데이터 의존상태를 제한하는데 사용가능한 초기 자원이 존재하는 경우에 상기 그래프가 실행되는 방법을 결정함으로써 결정된다. ASAP 스케줄은 가능한 클럭 사이클의 최소 횟수, 사용될 수 있는 CU의 최대 갯수, 및 최대 레지스터 수명을 포함하는 그래프를 인지한다. ASAP 스케줄과 실제 사용가능한 하드웨어 자원의 양에 기초하여 '세미-스마트' 스케줄이 함께 제공된다. 세미-스마트 스케줄과 자원 정보의 임의의 사용에 기초하여, 스케줄러를 위한 적당한 초기 스케줄이 생성된다.
상기 초기 스케줄을 사용하여, 스케줄에 대한 "비용"이 평가된다(단계 320). 본 명세서의 목적을 위해서, 비용은 스케줄의 장점을 반영하는 값을 참조로 한다. 바람직한 실시예에서, 만약 비용이 단계(325)를 통해 결정되는 것과 같이 수용가능한 조건내에서 제공된다면, 예컨데 0이면, 실행할 수 있는 스케줄이 제공된다(단계330). 비록 초기 스케줄이 원하는 비용을 발생시킬 수 있지만, 특정 스케줄을 위한 비용을 제로까지 감소시키기 위해 다른 해결방법이 필요할 것으로예상된다. 반복을 수행하기 위해서, 스케줄을 위한 소정의 최적화 파라미터가 사용된다.
최적화 파라미터는 스케줄러가 최적의 솔루션을 검색하는 것을 적절하게 제어한다. 최적화 파라미터는, 솔루션을 찾기 위해 최적화 루프를 실행하는 횟수를 나타내는 nLoops와 같은 파라미터; 매번 시도에 있어서, 시간 및 공간적으로 하나의 노드를 이동시키기 위한 시도가 이루어지는 각 루프에 대한 시도 횟수를 나타내는 파라미터(nTrials), '안좋은' 변경이 얼마나 자주 수용되는지를 제어하는 수용 변경 확률인 파라미터를 포함하는데, 상기 '안좋은' 변경은 비용을 증가시킬 수 있지만 궁극적으로는 수렴을 달성하는데 도움을 줄 수 있다. 그러한 파라미터는 스케줄의 최적화 동안에 사용되는 발견적 규칙의 일부를 형성한다. 발견적 규칙은 특정 알고리즘을 스케줄링하고, 특정 하드웨어 구성을 사용하며, 당업자가 잘 인지할 바와 같이 스케줄러가 솔루션을 위해 집중하는 동안 상기 스케줄러를 어떤 트랩에 들어가는지를 관찰하는 것을 포함하는 시행착오 경험에 기초하는 최적화를 위한 가이드라인을 나타낸다.
그러한 최적화 파라미터는 스케줄의 비용이 제로가 아닐때(즉, 단계 325의 결과가 긍정적일 때) 중요한 역할을 한다. 스케줄 비용이 제로가 아닐때, 작은 증가 변화가 하나의 노드를 재스케줄함으로써 이루어진다(단계 335). 작은 증가 단계를 수행하는데 있어서, 노드는 무작위로 선택된다. 게다가, 상기 단계는 노드의 스케줄 및 할당에 수행될 수 있는 후보 변화 모두에 기초하고, 그러한 후보 변화 중 하나가 무작위적으로 선택된다. 예컨대, 후보 변화는, 노드가 스케줄링되는 클록 사이클이나 그것이 할당되는 CU를 변경하는 것을 포함할 수 있다. 그런 후에, 비용이 다시 계산된다(단계 340). 단계(345)를 통해 결정되는 바와 같이, 만약 비용이 증가한다면, 스케줄러는 이전 스케줄로 되돌아가고(단계 350), 만약 비용이 증가하지 않는다면, 변경된 스케줄을 제공하기 위해서 변경이 용인된다(단계 355). 다음으로, 처리는 비용이 제로인지를 결정하기 위해 단계 325로 돌아가며, 단계 335, 340, 345, 350 및 355로 형성되는 최적화를 위한 루프가 실행가능한 스케줄이 발견될 때까지 적절하게 반복된다.
실행가능한 스케줄이 발견되면, 스케줄러는 스케줄링된 데이터흐름 그래프를 제공한다. 스케줄링된 데이터흐름 그래프는 할당된 CU, 스케줄링된 클록 사이클, 및 스위치 플래그를 포함하는 정보를 제공하는데, 상기 스위치 플래그는 각각의 노드에 대해서 입력 연산자가 스위칭되는지 여부를 나타낸다. 각각의 에지에 있어서, 스케줄링된 데이터흐름 그래프는 소스 및 목적 노드 사이에 사용되는 루트 및 레지스터 할당을 나타낸다. 그러한 방식으로, 프로그램 코드의 후속하는 실행이 이용가능한 자원의 최적의 활용을 통해 이루어진다.
앞선 설명으로부터, 여러 변형 및 변경이 본 발명의 사상과 범위를 벗어나지 않고 이루어질 수 있다는 것을 알 것이다. 여기서 설명된 특정 방법 및 장치로 인한 어떠한 제한도 의도되지 않거나 의미하지 않아야 한다는 것을 알아야 한다. 물론, 그러한 모든 변경은 첨부된 청구 범위에 의해서 본 청구범위 내에 있는 것으로서 커버되도록 의도된다.
Claims (26)
- 적응가능한 컴퓨팅 엔진에 어셈블링된 프로그램을 스케줄링하기 위한 방법으로서,어셈블링된 프로그램의 특정 세그먼트를 실행하기 위하여 이용가능한 하드웨워 자원으로서 다수의 계산 유닛을 제공하는 단계와;데이터흐름 그래프로서 상기 특정 세그먼트를 표현하는 단계와;실행가능한 스케줄이 달성될때까지 반복방식으로 상기 데이터흐름 그래프에 따라 상기 다수의 계산유닛을 할당하는 스케줄을 변경하는 단계를 포함하는 방법.
- 제 1항에 있어서, 상기 변경단계는 스케줄 비용을 나타내는 값을 할당하는 단계 및 상기 값이 허용조건을 만족하는지를 결정하는 단계를 포함하는 방법.
- 제 2항에 있어서, 상기 허용조건은 제로(zero) 비용을 포함하는 방법.
- 제 2항에 있어서, 상기 값은 상기 허용조건을 만족하지 않으며,상기 방법은, 변경된 스케줄을 제공하기 위하여 랜던방식으로 작은 증가 변화를 통해 스케줄을 변경시키는 단계를 더 포함하는 방법.
- 제 4항에 있어서, 랜덤 방식으로 변경하는 상기 단계는 상기 데이터흐름 그래프의 노드를 랜덤하게 선택하는 단계, 및 상기 선택된 노드에 대한 이용가능한 변화를 랜덤하게 선택하는 단계를 포함하는 방법.
- 제 4항에 있어서, 상기 변경된 스케줄에 대한 값을 계산하는 단계를 더 포함하는 방법.
- 제 6항에 있어서, 상기 변경된 스케줄은 상기 스케줄의 값보다 높은 계산된 값을 가지며, 상기 변경된 스케줄은 사용되지 않는 방법.
- 제 6항에 있어서, 상기 변경된 스케줄은 상기 스케줄의 값보다 낮은 계산된 값을 가지며,상기 방법은 상기 변경된 스케줄을 스케줄로서 선정하는 단계, 및 상기 값이 상기 허용조건을 만족하는지를 결정하는 단계를 반복하는 단계를 포함하는 방법.
- 제 8항에 있어서, 상기 값이 상기 허용조건을 만족할때 상기 방법은 실행가능한 스케줄로서 상기 스케줄을 선정하는 단계를 더 포함하는 방법.
- 제 9항에 있어서, 상기 실행가능한 스케줄이 달성되면 상기 특정 세그먼트를 스케줄링된 데이터흐름 그래프를 나타내는 단계를 더 포함하는 방법.
- 제 1항에 있어서, 다수의 계산유닛을 제공하는 상기 단계는 적응가능한 계산 머신에서 상기 다수의 계산 유닛을 매트릭스로서 제공하는 단계를 더 포함하는 방법.
- 적응가능한 컴퓨팅 엔진에서 어셈블링된 프로그램을 스케줄링하기 위한 시스템으로서,상기 어셈블링된 프로그램의 특정 세그먼트를 실행하기 위하여 이용가능한 하드웨어 자원을 제공하는 다수의 계산 유닛과;상기 다수의 계산유닛을 구성하는 호스트 제어기와;실행가능한 스케줄이 달성될때까지 반복방식으로 상기 특정 세그먼트를 나타내는 데이터흐름 그래프에 따라 상기 다수의 계산유닛을 할당하는 스케줄을 변경함으로서 상기 특정 세그먼트를 실행하기 위하여 상기 다수의 계산유닛을 스케줄링 및 할당하기 위한 수단을 포함하는 시스템.
- 제 12항에 있어서, 상기 다수의 계산 유닛은 적응가능한 컴퓨팅 엔진의 매트릭스를 더 포함하는 시스템.
- 제 12항에 있어서, 상기 스케줄링 및 할당수단은 스케줄비용을 나타내는 값을 할당하고 상기 값이 상기 허용조건을 만족하는지를 결정하는 시스템.
- 제 14항에 있어서, 상기 허용조건은 제로 비용을 포함하는 시스템.
- 제 14항에 있어서, 상기 값이 상기 허용조건을 만족하지 않을때, 상기 스케줄링 및 할당수단은 변경된 스케줄을 제공하기 위하여 랜덤방식으로 작은 증가 변화를 통해 상기 스케줄을 변경하는 시스템.
- 제 16항에 있어서, 상기 스케줄링 및 변경수단은 상기 데이터흐름 그래프의 노드를 랜덤하게 선택하고 상기 선택된 노드에 대한 이용가능한 변화를 랜덤하게 선택하여 랜던방식으로 변경하는 시스템.
- 제 16항에 있어서, 상기 스케줄링 및 변경수단은 상기 변경된 스케줄에 대한 값을 계산하는 시스템.
- 제 18항에 있어서, 상기 변경된 스케줄은 상기 스케줄의 값보다 높은 계산된 값을 가지며, 상기 변경된 스케줄은 사용되지 않는 시스템.
- 제 18항에 있어서, 상기 변경된 스케줄은 상기 스케줄의 값보다 ??은 계산된 값을 가지며, 상기 스케줄 및 변경 수단은 상기 변경된 스케줄을 스케줄로서 선정하며, 상기 값이 상기 허용조건을 만족하는지에 대한 결정을 반복하는 시스템.
- 제 20항에 있어서, 상기 값은 상기 허용조건을 충족시키며, 상기 스케줄 및 변경단계는 상기 스케줄을 실행가능한 스케줄로서 선정하는 시스템.
- 제 21항에 있어서, 상기 스케줄 및 변경수단은 상기 실행가능한 스케줄이 달성되면 상기 특정 세그먼트를 스케줄링된 데이터흐름 그래프로서 나타내는 시스템.
- 적응가능 컴퓨팅 엔진에서 계산 유닛의 매트릭스에 대한 최적 스케줄을 결정하는 방법으로서,코드 세그먼트를 실행하기 위하여 상기 매트릭스를 이용하는 선택된 스케줄에 대한 비용을 나타내는 값을 결정하는 단계와;상기 값이 허용가능한 비용값을 달성될까지 작은 증가 단계를 통해 상기 선택된 스케줄을 랜덤하게 조절하는 단계와;상기 허용가능한 비용이 달성되면 실행가능한 스케줄을 선정하는 단계를 포함하는 방법.
- 제 23항에 있어서, 상기 허용가능한 비용레벨은 제로비용을 더 포함하는 방법.
- 제 23항에 있어서, 노드 및 에지의 데이터흐름 그래프로서 상기 비용 세그먼트를 나타내는 단계를 더 포함하는 방법.
- 제 25항에 있어서, 상기 조절단계는 상기 데이터흐름 그래프의 노드를 랜덤하게 선택하고 상기 선택된 스케줄을 조절하기 위하여 상기 노드에 대한 이용가능한 변화를 랜덤하게 선택하는 단계를 더 포함하는 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/872,397 | 2001-05-31 | ||
US09/872,397 US20020184291A1 (en) | 2001-05-31 | 2001-05-31 | Method and system for scheduling in an adaptable computing engine |
PCT/US2002/015639 WO2002097562A2 (en) | 2001-05-31 | 2002-05-15 | Method and system for scheduling in an adaptable computing engine |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20040012878A true KR20040012878A (ko) | 2004-02-11 |
Family
ID=25359489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2003-7015689A KR20040012878A (ko) | 2001-05-31 | 2002-05-15 | 적용 컴퓨팅 엔진에서 스케줄링하기 위한 방법 및 시스템 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20020184291A1 (ko) |
EP (1) | EP1402348A2 (ko) |
JP (1) | JP2005510778A (ko) |
KR (1) | KR20040012878A (ko) |
AU (1) | AU2002308750A1 (ko) |
TW (1) | TW569135B (ko) |
WO (1) | WO2002097562A2 (ko) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249242B2 (en) | 2002-10-28 | 2007-07-24 | Nvidia Corporation | Input pipeline registers for a node in an adaptive computing engine |
US7653710B2 (en) | 2002-06-25 | 2010-01-26 | Qst Holdings, Llc. | Hardware task manager |
US6836839B2 (en) | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7962716B2 (en) | 2001-03-22 | 2011-06-14 | Qst Holdings, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7752419B1 (en) | 2001-03-22 | 2010-07-06 | Qst Holdings, Llc | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture |
US6577678B2 (en) | 2001-05-08 | 2003-06-10 | Quicksilver Technology | Method and system for reconfigurable channel coding |
US7046635B2 (en) | 2001-11-28 | 2006-05-16 | Quicksilver Technology, Inc. | System for authorizing functionality in adaptable hardware devices |
US8412915B2 (en) | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements |
US6986021B2 (en) | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
US7215701B2 (en) | 2001-12-12 | 2007-05-08 | Sharad Sambhwani | Low I/O bandwidth method and system for implementing detection and identification of scrambling codes |
US7403981B2 (en) * | 2002-01-04 | 2008-07-22 | Quicksilver Technology, Inc. | Apparatus and method for adaptive multimedia reception and transmission in communication environments |
US20040015970A1 (en) * | 2002-03-06 | 2004-01-22 | Scheuermann W. James | Method and system for data flow control of execution nodes of an adaptive computing engine (ACE) |
US7328414B1 (en) | 2003-05-13 | 2008-02-05 | Qst Holdings, Llc | Method and system for creating and programming an adaptive computing engine |
US7660984B1 (en) | 2003-05-13 | 2010-02-09 | Quicksilver Technology | Method and system for achieving individualized protected space in an operating system |
US8108656B2 (en) | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
US7937591B1 (en) | 2002-10-25 | 2011-05-03 | Qst Holdings, Llc | Method and system for providing a device which can be adapted on an ongoing basis |
US7478031B2 (en) * | 2002-11-07 | 2009-01-13 | Qst Holdings, Llc | Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information |
US8276135B2 (en) | 2002-11-07 | 2012-09-25 | Qst Holdings Llc | Profiling of software and circuit designs utilizing data operation analyses |
US7225301B2 (en) | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
US6895292B2 (en) * | 2003-04-28 | 2005-05-17 | Palo Alto Research Center Inc. | Predictive and preemptive planning and scheduling for different job priorities system and method |
JP4536618B2 (ja) * | 2005-08-02 | 2010-09-01 | 富士通セミコンダクター株式会社 | リコンフィグ可能な集積回路装置 |
JP4619252B2 (ja) * | 2005-09-29 | 2011-01-26 | 富士通セミコンダクター株式会社 | リコンフィグ可能な集積回路装置 |
EP2297637A1 (en) | 2008-07-02 | 2011-03-23 | Nxp B.V. | A multiprocessor circuit using run-time task scheduling |
US9507640B2 (en) | 2008-12-16 | 2016-11-29 | International Business Machines Corporation | Multicore processor and method of use that configures core functions based on executing instructions |
WO2011091323A1 (en) | 2010-01-21 | 2011-07-28 | Qst Holdings, Llc | A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations |
US8498957B2 (en) * | 2011-05-26 | 2013-07-30 | Alcetel Lucent | Optimal multi-factor evaluation in computing systems |
WO2013100783A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Method and system for control signalling in a data path module |
KR101929754B1 (ko) * | 2012-03-16 | 2018-12-17 | 삼성전자 주식회사 | 미니 코어 기반의 재구성가능 프로세서, 이를 위한 스케줄 장치 및 방법 |
US10331583B2 (en) | 2013-09-26 | 2019-06-25 | Intel Corporation | Executing distributed memory operations using processing elements connected by distributed channels |
US10402168B2 (en) | 2016-10-01 | 2019-09-03 | Intel Corporation | Low energy consumption mantissa multiplication for floating point multiply-add operations |
US10474375B2 (en) | 2016-12-30 | 2019-11-12 | Intel Corporation | Runtime address disambiguation in acceleration hardware |
US10558575B2 (en) | 2016-12-30 | 2020-02-11 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10416999B2 (en) | 2016-12-30 | 2019-09-17 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10572376B2 (en) | 2016-12-30 | 2020-02-25 | Intel Corporation | Memory ordering in acceleration hardware |
US10445451B2 (en) * | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features |
US10445234B2 (en) * | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features |
US10515049B1 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Memory circuits and methods for distributed memory hazard detection and error recovery |
US10469397B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods with configurable network-based dataflow operator circuits |
US10515046B2 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10387319B2 (en) * | 2017-07-01 | 2019-08-20 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features |
US10467183B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods for pipelined runtime services in a spatial array |
US10496574B2 (en) | 2017-09-28 | 2019-12-03 | Intel Corporation | Processors, methods, and systems for a memory fence in a configurable spatial accelerator |
US11086816B2 (en) | 2017-09-28 | 2021-08-10 | Intel Corporation | Processors, methods, and systems for debugging a configurable spatial accelerator |
US10380063B2 (en) | 2017-09-30 | 2019-08-13 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator |
US10445098B2 (en) | 2017-09-30 | 2019-10-15 | Intel Corporation | Processors and methods for privileged configuration in a spatial array |
US10445250B2 (en) | 2017-12-30 | 2019-10-15 | Intel Corporation | Apparatus, methods, and systems with a configurable spatial accelerator |
US10565134B2 (en) | 2017-12-30 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for multicast in a configurable spatial accelerator |
US10417175B2 (en) | 2017-12-30 | 2019-09-17 | Intel Corporation | Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator |
US10564980B2 (en) | 2018-04-03 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator |
US11307873B2 (en) | 2018-04-03 | 2022-04-19 | Intel Corporation | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging |
US10891240B2 (en) | 2018-06-30 | 2021-01-12 | Intel Corporation | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator |
US10459866B1 (en) | 2018-06-30 | 2019-10-29 | Intel Corporation | Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator |
US11200186B2 (en) | 2018-06-30 | 2021-12-14 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
US10853073B2 (en) | 2018-06-30 | 2020-12-01 | Intel Corporation | Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator |
US10678724B1 (en) | 2018-12-29 | 2020-06-09 | Intel Corporation | Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator |
US11029927B2 (en) | 2019-03-30 | 2021-06-08 | Intel Corporation | Methods and apparatus to detect and annotate backedges in a dataflow graph |
US10915471B2 (en) | 2019-03-30 | 2021-02-09 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator |
US10817291B2 (en) | 2019-03-30 | 2020-10-27 | Intel Corporation | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator |
US10965536B2 (en) | 2019-03-30 | 2021-03-30 | Intel Corporation | Methods and apparatus to insert buffers in a dataflow graph |
US11037050B2 (en) | 2019-06-29 | 2021-06-15 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator |
US11907713B2 (en) | 2019-12-28 | 2024-02-20 | Intel Corporation | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator |
Family Cites Families (102)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6556044B2 (en) * | 2001-09-18 | 2003-04-29 | Altera Corporation | Programmable logic device including multipliers and configurations thereof to reduce resource utilization |
EP0384635B1 (en) * | 1989-02-24 | 1997-08-13 | AT&T Corp. | Adaptive job scheduling for multiprocessing systems |
US5261099A (en) * | 1989-08-24 | 1993-11-09 | International Business Machines Corp. | Synchronous communications scheduler allowing transient computing overloads using a request buffer |
US5768561A (en) * | 1992-06-30 | 1998-06-16 | Discovision Associates | Tokens-based adaptive video processing arrangement |
US5802290A (en) * | 1992-07-29 | 1998-09-01 | Virtual Computer Corporation | Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed |
US6192255B1 (en) * | 1992-12-15 | 2001-02-20 | Texas Instruments Incorporated | Communication system and methods for enhanced information transfer |
US5712996A (en) * | 1993-03-15 | 1998-01-27 | Siemens Aktiengesellschaft | Process for dividing instructions of a computer program into instruction groups for parallel processing |
US5870427A (en) * | 1993-04-14 | 1999-02-09 | Qualcomm Incorporated | Method for multi-mode handoff using preliminary time alignment of a mobile station operating in analog mode |
US5517667A (en) * | 1993-06-14 | 1996-05-14 | Motorola, Inc. | Neural network that does not require repetitive training |
US5701482A (en) * | 1993-09-03 | 1997-12-23 | Hughes Aircraft Company | Modular array processor architecture having a plurality of interconnected load-balanced parallel processing nodes |
US5732563A (en) * | 1993-09-22 | 1998-03-31 | Imi Cornelius Inc. | Electronically controlled beverage dispenser |
GB2288677B (en) * | 1993-09-28 | 1998-05-13 | Namco Ltd | Pipeline processing device, clipping processing device, three-dimensional simulator device and pipeline processing method |
US5862961A (en) * | 1993-10-26 | 1999-01-26 | Imi Cornelius Inc. | Connection device for dispensing fluid from a bottle |
US5721854A (en) * | 1993-11-02 | 1998-02-24 | International Business Machines Corporation | Method and apparatus for dynamic conversion of computer instructions |
US5530435A (en) * | 1993-12-09 | 1996-06-25 | Steelcase Inc. | Utility distribution system for modular furniture and the like |
US5745366A (en) * | 1994-07-14 | 1998-04-28 | Omnicell Technologies, Inc. | Pharmaceutical dispensing device and methods |
US6056194A (en) * | 1995-08-28 | 2000-05-02 | Usa Technologies, Inc. | System and method for networking and controlling vending machines |
FR2724273B1 (fr) * | 1994-09-05 | 1997-01-03 | Sgs Thomson Microelectronics | Circuit de traitement de signal pour mettre en oeuvre un algorithme de viterbi |
JP3525353B2 (ja) * | 1994-09-28 | 2004-05-10 | 株式会社リコー | デジタル電子スチル・カメラ |
KR0146100B1 (ko) * | 1995-01-07 | 1998-09-15 | 이헌조 | 가전기기의 실사용상태 정보수집 및 분석장치 |
US5742180A (en) * | 1995-02-10 | 1998-04-21 | Massachusetts Institute Of Technology | Dynamically programmable gate array with multiple contexts |
US5892900A (en) * | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5892961A (en) * | 1995-02-17 | 1999-04-06 | Xilinx, Inc. | Field programmable gate array having programming instructions in the configuration bitstream |
US5696906A (en) * | 1995-03-09 | 1997-12-09 | Continental Cablevision, Inc. | Telecommunicaion user account management system and method |
US5737631A (en) * | 1995-04-05 | 1998-04-07 | Xilinx Inc | Reprogrammable instruction set accelerator |
US6021186A (en) * | 1995-04-17 | 2000-02-01 | Ricoh Company Ltd. | Automatic capture and processing of facsimile transmissions |
US5751295A (en) * | 1995-04-27 | 1998-05-12 | Control Systems, Inc. | Graphics accelerator chip and method |
US5634190A (en) * | 1995-06-06 | 1997-05-27 | Globalstar L.P. | Low earth orbit communication satellite gateway-to-gateway relay system |
US5842004A (en) * | 1995-08-04 | 1998-11-24 | Sun Microsystems, Inc. | Method and apparatus for decompression of compressed geometric three-dimensional graphics data |
US5742821A (en) * | 1995-11-08 | 1998-04-21 | Lucent Technologies Inc. | Multiprocessor scheduling and execution |
EP0778240A1 (en) * | 1995-12-08 | 1997-06-11 | IMI Cornelius Inc. | Electro-mechanical refrigeration system |
US5734582A (en) * | 1995-12-12 | 1998-03-31 | International Business Machines Corporation | Method and system for layout and schematic generation for heterogeneous arrays |
US5706976A (en) * | 1995-12-21 | 1998-01-13 | Purkey; Jay Floyd | Vending machine inventory control device |
US6510510B1 (en) * | 1996-01-25 | 2003-01-21 | Analog Devices, Inc. | Digital signal processor having distributed register file |
US5889816A (en) * | 1996-02-02 | 1999-03-30 | Lucent Technologies, Inc. | Wireless adapter architecture for mobile computing |
US6237029B1 (en) * | 1996-02-26 | 2001-05-22 | Argosystems, Inc. | Method and apparatus for adaptable digital protocol processing |
US5894473A (en) * | 1996-02-29 | 1999-04-13 | Ericsson Inc. | Multiple access communications system and method using code and time division |
US6055314A (en) * | 1996-03-22 | 2000-04-25 | Microsoft Corporation | System and method for secure purchase and delivery of video content programs |
US6346824B1 (en) * | 1996-04-09 | 2002-02-12 | Xilinx, Inc. | Dedicated function fabric for use in field programmable gate arrays |
US5903886A (en) * | 1996-04-30 | 1999-05-11 | Smartlynx, Inc. | Hierarchical adaptive state machine for emulating and augmenting software |
US6181981B1 (en) * | 1996-05-15 | 2001-01-30 | Marconi Communications Limited | Apparatus and method for improved vending machine inventory maintenance |
US5907580A (en) * | 1996-06-10 | 1999-05-25 | Morphics Technology, Inc | Method and apparatus for communicating information |
US6175854B1 (en) * | 1996-06-11 | 2001-01-16 | Ameritech Services, Inc. | Computer system architecture and method for multi-user, real-time applications |
US5887174A (en) * | 1996-06-18 | 1999-03-23 | International Business Machines Corporation | System, method, and program product for instruction scheduling in the presence of hardware lookahead accomplished by the rescheduling of idle slots |
US6192388B1 (en) * | 1996-06-20 | 2001-02-20 | Avid Technology, Inc. | Detecting available computers to participate in computationally complex distributed processing problem |
US6360256B1 (en) * | 1996-07-01 | 2002-03-19 | Sun Microsystems, Inc. | Name service for a redundant array of internet servers |
US6023742A (en) * | 1996-07-18 | 2000-02-08 | University Of Washington | Reconfigurable computing architecture for providing pipelined data paths |
US5890014A (en) * | 1996-08-05 | 1999-03-30 | Micronet Technology, Inc. | System for transparently identifying and matching an input/output profile to optimal input/output device parameters |
JP3123440B2 (ja) * | 1996-08-14 | 2001-01-09 | 日本電気株式会社 | 無線通信システムのチャネル選択方法 |
US6041970A (en) * | 1996-08-30 | 2000-03-28 | Imi Cornelius Inc. | Pre-mix beverage dispensing system and components thereof |
US6226387B1 (en) * | 1996-08-30 | 2001-05-01 | Regents Of The University Of Minnesota | Method and apparatus for scene-based video watermarking |
US6021492A (en) * | 1996-10-09 | 2000-02-01 | Hewlett-Packard Company | Software metering management of remote computing devices |
US6016395A (en) * | 1996-10-18 | 2000-01-18 | Samsung Electronics Co., Ltd. | Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor |
US5913172A (en) * | 1996-11-15 | 1999-06-15 | Glenayre Electronics, Inc. | Method and apparatus for reducing phase cancellation in a simulcast paging system |
US6246883B1 (en) * | 1996-12-24 | 2001-06-12 | Lucent Technologies, Inc. | Mobile base station |
US6061580A (en) * | 1997-02-28 | 2000-05-09 | Randice-Lisa Altschul | Disposable wireless telephone and method for call-out only |
US6059840A (en) * | 1997-03-17 | 2000-05-09 | Motorola, Inc. | Automatic scheduling of instructions to reduce code size |
US5912572A (en) * | 1997-03-28 | 1999-06-15 | Cypress Semiconductor Corp. | Synchronizing clock pulse generator for logic derived clock signals with synchronous clock suspension capability for a programmable device |
US6041322A (en) * | 1997-04-18 | 2000-03-21 | Industrial Technology Research Institute | Method and apparatus for processing data in a neural network |
US5860021A (en) * | 1997-04-24 | 1999-01-12 | Klingman; Edwin E. | Single chip microcontroller having down-loadable memory organization supporting "shadow" personality, optimized for bi-directional data transfers over a communication channel |
US6219697B1 (en) * | 1997-05-02 | 2001-04-17 | 3Com Corporation | Method and apparatus for operating the internet protocol over a high-speed serial bus |
US5886537A (en) * | 1997-05-05 | 1999-03-23 | Macias; Nicholas J. | Self-reconfigurable parallel processor made from regularly-connected self-dual code/data processing cells |
US6047115A (en) * | 1997-05-29 | 2000-04-04 | Xilinx, Inc. | Method for configuring FPGA memory planes for virtual hardware computation |
US5917852A (en) * | 1997-06-11 | 1999-06-29 | L-3 Communications Corporation | Data scrambling system and method and communications system incorporating same |
US6078736A (en) * | 1997-08-28 | 2000-06-20 | Xilinx, Inc. | Method of designing FPGAs for dynamically reconfigurable computing |
IL126149A (en) * | 1997-09-09 | 2003-07-31 | Sanctum Ltd | Method and system for protecting operations of trusted internal networks |
US6036166A (en) * | 1997-09-25 | 2000-03-14 | Imi Cornelius Inc. | Chamber valve |
US6363411B1 (en) * | 1998-08-05 | 2002-03-26 | Mci Worldcom, Inc. | Intelligent network |
US6195788B1 (en) * | 1997-10-17 | 2001-02-27 | Altera Corporation | Mapping heterogeneous logic elements in a programmable logic device |
US5873045A (en) * | 1997-10-29 | 1999-02-16 | International Business Machines Corporation | Mobile client computer with radio frequency transceiver |
FR2770659A1 (fr) * | 1997-10-31 | 1999-05-07 | Sgs Thomson Microelectronics | Processeur de traitement perfectionne |
US6185418B1 (en) * | 1997-11-07 | 2001-02-06 | Lucent Technologies Inc. | Adaptive digital radio communication system |
US6046603A (en) * | 1997-12-12 | 2000-04-04 | Xilinx, Inc. | Method and apparatus for controlling the partial reconfiguration of a field programmable gate array |
DE69827589T2 (de) * | 1997-12-17 | 2005-11-03 | Elixent Ltd. | Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen |
JPH11184674A (ja) * | 1997-12-24 | 1999-07-09 | Fujitsu Ltd | レジスタファイル |
US6192070B1 (en) * | 1998-01-02 | 2001-02-20 | Mitsubishi Electric Research Laboratories, Inc. | Universal modem for digital video, audio and data communications |
US6039219A (en) * | 1998-01-20 | 2000-03-21 | Bach; Lanae E. | Liquid dispensing system for a refrigerator |
US6230307B1 (en) * | 1998-01-26 | 2001-05-08 | Xilinx, Inc. | System and method for programming the hardware of field programmable gate arrays (FPGAs) and related reconfiguration resources as if they were software by creating hardware objects |
US6366999B1 (en) * | 1998-01-28 | 2002-04-02 | Bops, Inc. | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6076174A (en) * | 1998-02-19 | 2000-06-13 | United States Of America | Scheduling framework for a heterogeneous computer network |
US6360263B1 (en) * | 1998-02-25 | 2002-03-19 | International Business Machines Corporation | Dynamic resource allocation for user management in multi-processor time shared computer systems |
US6073132A (en) * | 1998-03-27 | 2000-06-06 | Lsi Logic Corporation | Priority arbiter with shifting sequential priority scheme |
US6202130B1 (en) * | 1998-04-17 | 2001-03-13 | Motorola, Inc. | Data processing system for processing vector data and method therefor |
US6223222B1 (en) * | 1998-05-14 | 2001-04-24 | 3Com Corporation | Method and system for providing quality-of-service in a data-over-cable system using configuration protocol messaging |
US6175892B1 (en) * | 1998-06-19 | 2001-01-16 | Hitachi America. Ltd. | Registers and methods for accessing registers for use in a single instruction multiple data system |
US6356994B1 (en) * | 1998-07-09 | 2002-03-12 | Bops, Incorporated | Methods and apparatus for instruction addressing in indirect VLIW processors |
US6377983B1 (en) * | 1998-08-31 | 2002-04-23 | International Business Machines Corporation | Method and system for converting expertise based on document usage |
US6381735B1 (en) * | 1998-10-02 | 2002-04-30 | Microsoft Corporation | Dynamic classification of sections of software |
US6360259B1 (en) * | 1998-10-09 | 2002-03-19 | United Technologies Corporation | Method for optimizing communication speed between processors |
US6219780B1 (en) * | 1998-10-27 | 2001-04-17 | International Business Machines Corporation | Circuit arrangement and method of dispatching instructions to multiple execution units |
US6052600A (en) * | 1998-11-23 | 2000-04-18 | Motorola, Inc. | Software programmable radio and method for configuring |
US6563891B1 (en) * | 1998-11-24 | 2003-05-13 | Telefonaktiebolaget L M Ericsson (Publ) | Automatic gain control for slotted mode operation |
US6385751B1 (en) * | 1998-12-30 | 2002-05-07 | Texas Instruments Incorporated | Programmable, reconfigurable DSP implementation of a Reed-Solomon encoder/decoder |
US6510138B1 (en) * | 1999-02-25 | 2003-01-21 | Fairchild Semiconductor Corporation | Network switch with head of line input buffer queue clearing |
US6349394B1 (en) * | 1999-03-31 | 2002-02-19 | International Business Machines Corporation | Performance monitoring in a NUMA computer |
US6347346B1 (en) * | 1999-06-30 | 2002-02-12 | Chameleon Systems, Inc. | Local memory unit system with global access for use on reconfigurable chips |
KR100358427B1 (ko) * | 1999-07-12 | 2002-10-25 | 한국전자통신연구원 | 씨디엠에이 적응배열안테나 시스템을 위한 효율적 구조의 복조기 |
US6359248B1 (en) * | 1999-08-02 | 2002-03-19 | Xilinx, Inc. | Method for marking packaged integrated circuits |
US6507947B1 (en) * | 1999-08-20 | 2003-01-14 | Hewlett-Packard Company | Programmatic synthesis of processor element arrays |
US6967999B2 (en) * | 1999-12-30 | 2005-11-22 | Infineon Technologies Ag | Method and apparatus to support multi standard, multi service base-stations for wireless voice and data networks |
US6538470B1 (en) * | 2000-09-18 | 2003-03-25 | Altera Corporation | Devices and methods with programmable logic and digital signal processing regions |
-
2001
- 2001-05-31 US US09/872,397 patent/US20020184291A1/en not_active Abandoned
-
2002
- 2002-05-15 WO PCT/US2002/015639 patent/WO2002097562A2/en not_active Application Discontinuation
- 2002-05-15 EP EP02774106A patent/EP1402348A2/en not_active Withdrawn
- 2002-05-15 AU AU2002308750A patent/AU2002308750A1/en not_active Abandoned
- 2002-05-15 KR KR10-2003-7015689A patent/KR20040012878A/ko not_active Application Discontinuation
- 2002-05-15 JP JP2003500679A patent/JP2005510778A/ja active Pending
- 2002-05-27 TW TW091111148A patent/TW569135B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2002097562A2 (en) | 2002-12-05 |
US20020184291A1 (en) | 2002-12-05 |
TW569135B (en) | 2004-01-01 |
JP2005510778A (ja) | 2005-04-21 |
EP1402348A2 (en) | 2004-03-31 |
WO2002097562A3 (en) | 2003-09-18 |
AU2002308750A1 (en) | 2002-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20040012878A (ko) | 적용 컴퓨팅 엔진에서 스케줄링하기 위한 방법 및 시스템 | |
Markovskiy et al. | Analysis of quasi-static scheduling techniques in a virtualized reconfigurable machine | |
US20030023830A1 (en) | Method and system for encoding instructions for a VLIW that reduces instruction memory requirements | |
KR20190044551A (ko) | 멀티-스레드 프로세서에서의 태스크 스케줄링 | |
EP0624842A2 (en) | Method for automated deployment of a software program onto a multi-processor architecture | |
US11620510B2 (en) | Platform for concurrent execution of GPU operations | |
Nollet et al. | Run-time management of a mpsoc containing fpga fabric tiles | |
Ghribi et al. | R-codesign: Codesign methodology for real-time reconfigurable embedded systems under energy constraints | |
Rakhmatov et al. | Hardware-software bipartitioning for dynamically reconfigurable systems | |
Kelter et al. | WCET-aware scheduling optimizations for multi-core real-time systems | |
CN115380272A (zh) | 在单个网格上并发处理多个图的粗粒度可重构阵列处理器 | |
JP2007172569A (ja) | 演算処理装置、演算処理装置の内部構成決定方法および演算処理システム | |
Deniziak et al. | Hardware/software co-synthesis of distributed embedded systems using genetic programming | |
Harkin et al. | Modeling and optimizing run-time reconfiguration using evolutionary computation | |
Chen et al. | An integrated system for rapid prototyping of high performance algorithm specific data paths | |
Mack et al. | GNU Radio and CEDR: Runtime Scheduling to Heterogeneous Accelerators | |
Pandey et al. | Combined temporal partitioning and scheduling for reconfigurable architectures | |
Lee et al. | Partitioning and scheduling for parallel image processing operations | |
Tavarageri et al. | Automatic Model Parallelism for Deep Neural Networks with Compiler and Hardware Support | |
Bauer et al. | Run-time adaptation for reconfigurable embedded processors | |
DB et al. | HDL Programming and Sequential Circuitry for Multi-Core RISC-V Processor | |
Majd et al. | Optimizing scheduling for heterogeneous computing systems using combinatorial meta-heuristic solution | |
André et al. | Dynamic adaptation of the master-worker paradigm | |
Bobda | High-Level Synthesis For Reconfigurable Devices | |
Santambrogio et al. | Task graph scheduling for reconfigurable architectures driven by reconfigurations hiding and resources reuse |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |