KR100723831B1 - Method and storage media for scheduling hardwares and softwares in system-on-chip design - Google Patents
Method and storage media for scheduling hardwares and softwares in system-on-chip design Download PDFInfo
- Publication number
- KR100723831B1 KR100723831B1 KR1020050029950A KR20050029950A KR100723831B1 KR 100723831 B1 KR100723831 B1 KR 100723831B1 KR 1020050029950 A KR1020050029950 A KR 1020050029950A KR 20050029950 A KR20050029950 A KR 20050029950A KR 100723831 B1 KR100723831 B1 KR 100723831B1
- Authority
- KR
- South Korea
- Prior art keywords
- module
- clock cycle
- hardware
- pipelines
- scheduling
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000013461 design Methods 0.000 title abstract description 3
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A01—AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
- A01K—ANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
- A01K49/00—Rearing-boxes; Queen transporting or introducing cages
-
- A—HUMAN NECESSITIES
- A01—AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
- A01K—ANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
- A01K51/00—Appliances for treating beehives or parts thereof, e.g. for cleaning or disinfecting
Landscapes
- Life Sciences & Earth Sciences (AREA)
- Environmental Sciences (AREA)
- Animal Husbandry (AREA)
- Biodiversity & Conservation Biology (AREA)
- Stored Programmes (AREA)
- Advance Control (AREA)
Abstract
시스템 온 칩 설계를 위한 하드웨어/소프트웨어 스케쥴링 방법 및 이 기능을 실현하는 기록 매체가 개시된다. 상기 SOC 스케쥴링 방법에서는, 하드웨어/소프트웨어 모듈들의 동작 클럭 싸이클, 각 모듈간의 동작 우선순위 및 시스템 구조 정보로부터, 우선 순위 그래프 및 제약 조건 그래프를 만들고, 주어진 시스템 구조상에서 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수를 만족하는 각 모듈의 동작 시간에 대한 스케쥴 결과를 생성한다. 또한, 시스템 전체의 동작 클럭 싸이클이 만족되지 않으면, 이를 만족시킬 수 있는 최적의 파이프라인 수와 그에 해당하는 스케쥴 결과를 생성한다.A hardware / software scheduling method for system on chip design and a recording medium for realizing this function are disclosed. In the SOC scheduling method, a priority graph and a constraint graph are generated from operating clock cycles of hardware / software modules, operating priorities and system structure information between modules, and a system-wide operating clock cycle and pipeline on a given system structure. Generates a schedule result for the operating time of each module satisfying the number. In addition, if the operating clock cycle of the entire system is not satisfied, the optimum number of pipelines and corresponding schedule results are generated.
Description
도 1은 본 발명의 일실시예에 따른 하드웨어/소프트웨어 스케쥴러의 개념도를 나타낸다.1 is a conceptual diagram of a hardware / software scheduler according to an embodiment of the present invention.
도 2는 본 발명의 일실시예에 따른 하드웨어/소프트웨어 스케쥴러의 동작 흐름도를 나타낸다.2 is a flowchart illustrating an operation of a hardware / software scheduler according to an embodiment of the present invention.
도 3은 SOC로 설계되는 한 시스템의 일례를 나타내는 블록도이다. 3 is a block diagram showing an example of one system designed with SOC.
도 4는 도 3의 시스템에 대한 시스템 구조 정보를 표현하는 일례이다. 4 is an example of representing system structure information for the system of FIG. 3.
<도면의 주요 부호에 대한 설명><Description of Major Symbols in Drawing>
110:하드웨어/소프트웨어 동작 클럭 싸이클110: hardware / software operation clock cycle
120:전체 동작 싸이클 및 파이프라인 수120: total number of operating cycles and pipelines
130:하드웨어/소프트웨어 동작 우선 순위130: Hardware / Software Action Priority
140:시스템 구조 정보140: system structure information
160:스케쥴러 160: Scheduler
170:하드웨어/소프트웨어 스케쥴170: Hardware / Software Schedule
본 발명은 SOC(System-On-Chip)에 관한 것으로, 특히, 설계될 SOC 시스템의 성능을 미리 추정할 수 있도록 하고, 그 시스템을 제어하는 프로그램의 작성이 용이하도록 참조될 스케쥴링(scheduling) 방법 및 이 기능을 실현하는 기록 매체에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a system-on-chip (SOC), and more particularly, to a scheduling method to be referred to in order to be able to estimate the performance of a SOC system to be designed in advance, and to easily write a program to control the system. A recording medium for realizing this function.
일반적으로 SOC로 설계되는 시스템은 주어진 입력 데이터에 대하여 반복적인 일련의 과정을 수행하는 다수의 회로 모듈들을 구비한다. 즉, 시스템에 포함된 각 하드웨어 모듈과 소프트웨어 모듈은 주어진 입력 데이터를 처리하여 다른 하드웨어나 소프트웨어 모듈에 입력으로 전달하고, 이러한 일련의 동작들이 각 하드웨어 모듈과 소프트웨어 모듈에서 완료되면, 원하는 시스템 출력을 얻게 된다. In general, a system designed with an SOC has a number of circuit modules that perform a series of iterative processes on a given input data. That is, each hardware module and software module included in the system processes the given input data and passes it as input to other hardware or software modules. When these series of operations are completed on each hardware module and software module, the desired system output is obtained. do.
이러한 SOC 시스템이 원하는 성능을 발휘하기 위해서는, 시스템에 포함된 프로세서가 수행하는 핵심적인 제어 프로그램이 하드웨어 및 소프트웨어 모듈들의 동작 시간을 고려하여 적절히 작성되어야한다. 이를 지원하기 위하여, 종래에 일정 태스크(task)에 관하여 스케쥴링이 이루어져 왔다. 예를 들어, 컴퓨터의 프로세서가 처리하는 소프트웨어 태스크들, 프로세서 주변의 하드와이어드(hardwired) 태스크들, 또는 네트워크에서의 데이터 처리에 관한 태스크들 등이 있다.In order to achieve the desired performance of such an SOC system, a core control program executed by a processor included in the system must be appropriately written in consideration of operating time of hardware and software modules. In order to support this, scheduling has conventionally been made regarding a schedule task. For example, there are software tasks handled by a computer's processor, hardwired tasks around the processor, or tasks relating to data processing in a network.
그러나, 오늘날 대부분의 시스템이 SOC의 형태를 기반으로 개발되고 있으므로, 설계될 전체 시스템 내의 하드웨어 및 소프트웨어 모듈들의 동작 시간과 관련된 스케쥴링을 바탕으로, 설계될 SOC 시스템의 성능을 미리 추정하고, 이에 따라 그 시스템을 제어하는 프로그램이 용이하게 작성되도록 할 것이 요구되고 있다. However, since most systems are being developed based on the type of SOC today, the performance of the SOC system to be designed is estimated in advance based on the scheduling related to the operating time of the hardware and software modules in the overall system to be designed. There is a demand for a program to easily control a system.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해 창안된 것으로서, 본 발명이 이루고자 하는 기술적 과제는, 설계될 SOC 시스템 구조에서 주어진 성능을 만족시키도록, 해당 시스템에 포함된 다양한 하드웨어 모듈들과 소프트웨어 모듈들의 동작 시간의 제어와 관련된 스케쥴 결과를 생성하는 스케쥴링 방법 및 이 기능을 실현하는 기록 매체를 제공하는데 있다.Accordingly, the present invention has been made to solve the above problems, and the technical problem to be achieved by the present invention is to satisfy the performance given in the SOC system structure to be designed, various hardware modules and software included in the system The present invention provides a scheduling method for generating a schedule result related to control of operating time of modules and a recording medium for realizing this function.
상기 기술적 과제를 달성하기 위한 본 발명에 따른 SOC 스케쥴링 방법은, SOC 시스템에 포함되는 하드웨어/소프트웨어 모듈들의 동작 클럭 싸이클, 각 모듈의 동작 우선순위, 시스템 구조, 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수에 관한 정보를 입력받는 단계; 상기 각 모듈의 동작 우선순위로부터 상기 하드웨어/소프트웨어 모듈들 각각을 노드로 하고 각 모듈의 의존 관계를 에지로 하는 우선 순위 그래프를 생성하는 단계; 상기 각 모듈의 동작 클럭 싸이클을 상기 에지에 반영하여 상기 우선 순위 그래프로부터 제약 조건 그래프를 생성하는 단계; 상기 제약 조건 그래프에 상기 시스템 구조 정보를 반영하는 단계; 및 상기 주어진 시스템 구조 정보에 대하여 상기 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수를 만족하는 각 모듈의 동작 시간에 대한 스케쥴 결과를 생성하는 단계를 구비하는 것을 특징으로 한다. SOC scheduling method according to the present invention for achieving the above technical problem, the operating clock cycle of hardware / software modules included in the SOC system, the operation priority of each module, the system structure, the operating clock cycle and the number of pipelines of the entire system Receiving information related to; Generating a priority graph of each of the hardware / software modules as a node and an edge of each module as an edge from the operational priority of each module; Generating a constraint graph from the priority graph by reflecting an operation clock cycle of each module to the edge; Reflecting the system structure information in the constraint graph; And generating a schedule result for the operation time of each module satisfying the operation clock cycle and the pipeline number of the entire system with respect to the given system structure information.
상기 SOC 스케쥴링 방법은, 상기 파이프라인 수에 대하여 상기 시스템 전체 의 동작 클럭 싸이클이 만족되지 않으면, 만족시킬 수 있는 최적의 파이프라인 수와 그에 해당하는 스케쥴 결과를 생성하는 단계를 더 포함하는 것을 특징으로 한다. The SOC scheduling method may further include generating an optimal number of pipelines that can be satisfied and a corresponding schedule result when the operating clock cycle of the entire system is not satisfied with respect to the number of pipelines. do.
상기 시스템 구조 정보는, 상기 각 모듈에서 실행될 태스크들 및 해당 동작 클럭 싸이클을 포함하는 것을 특징으로 한다. The system structure information may include tasks to be executed in each module and a corresponding operation clock cycle.
상기 스케쥴 결과는, 상기 주어진 파이프라인 수에 대응되는 시스템 전체의 데이터 처리율을 포함하고, 또는 상기 주어진 파이프라인 수 이상의 적어도 2 이상의 파이프라인들 각각에 대하여도 그에 대응되는 결과들을 포함하는 것을 특징으로 한다.The schedule result may include data throughput of the entire system corresponding to the given pipeline number, or include corresponding results for each of at least two or more pipelines over the given pipeline number. .
상기 다른 기술적 과제를 달성하기 위한 본 발명에 따른 컴퓨터에서 판독할 수 있고 실행 가능한 코드가 기록된 SOC 시스템의 스케쥴러 기능을 위한 기록 매체는, SOC 시스템에 포함되는 하드웨어/소프트웨어 모듈들의 동작 클럭 싸이클, 각 모듈의 동작 우선순위, 시스템 구조, 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수에 관한 정보를 입력받는 기능; 상기 각 모듈의 동작 우선순위로부터 상기 하드웨어/소프트웨어 모듈들 각각을 노드로 하고 각 모듈의 의존 관계를 에지로 하는 우선 순위 그래프를 생성하는 기능; 상기 각 모듈의 동작 클럭 싸이클을 상기 에지에 반영하여 상기 우선 순위 그래프로부터 제약 조건 그래프를 생성하는 기능; 상기 제약 조건 그래프에 상기 시스템 구조 정보를 반영하는 기능; 및 상기 주어진 시스템 구조 정보에 대하여 상기 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수를 만족하는 각 모듈의 동작 시간에 대한 스케쥴 결과를 생성하는 기능을 수행하 는 것을 특징으로 한다. The recording medium for the scheduler function of the SOC system in which the computer-readable and executable code is recorded according to the present invention for achieving the above another technical problem, the operation clock cycle of the hardware / software modules included in the SOC system, each Receiving information on an operation priority of a module, a system structure, an operation clock cycle and a pipeline number of the entire system; Generating a priority graph of each of the hardware / software modules as a node and an edge of each module as an edge from the operational priority of each module; Generating a constraint graph from the priority graph by reflecting an operation clock cycle of each module to the edge; Reflecting the system structure information in the constraint graph; And generating a schedule result for an operation time of each module satisfying the operation clock cycle and the number of pipelines of the entire system with respect to the given system structure information.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.
일반적으로 SOC로 설계되는 시스템은 다양한 하드웨어 모듈과 소프트웨어 모듈을 구비하고, 각 모듈은 주어진 입력 데이터에 대하여 반복적인 일련의 과정을 수행하여 필요한 동작을 완료함으로써, 시스템 출력이 얻어진다. In general, a system designed as an SOC includes various hardware modules and software modules, and each module performs an iterative series of operations on a given input data to complete a required operation, thereby obtaining a system output.
이때 하드웨어 모듈들은 독립적으로 동시에 동작할 수 있거나, 시스템 구현에 따라서는 각 하드웨어 모듈이 파이프라인 구조로 동작될 수 있지만, 소프트웨어 모듈을 처리하여 하드웨어 모듈들을 제어하는 프로세서는 일반적으로 하나이기 때문에 프로세서는 시스템이 필요한 성능을 낼 수 있도록 최적의 순서로 각 하드웨어 모듈과 소프트웨어 모듈의 동작 시간을 제어하여야 한다. 이를 위해서는 프로세서를 동작시키는 제어 프로그램이 각 하드웨어 및 소프트웨어 모듈의 동작 사이클과 각 모듈의 동작 우선 순위를 고려하여 적절한 순서로 동작을 제어하여야 한다. In this case, the hardware modules may operate independently and simultaneously, or each hardware module may operate in a pipelined structure depending on the system implementation. However, since there is generally one processor that processes software modules and controls the hardware modules, the processor is a system. In order to achieve this required performance, the operating time of each hardware module and software module should be controlled. For this purpose, the control program for operating the processor should control the operation in the proper order in consideration of the operation cycle of each hardware and software module and the operation priority of each module.
SOC 시스템에 포함되는 각각의 하드웨어 모듈과 소프트웨어 모듈은 주어진 시스템 구조상에서 상호 의존적인 데이터 처리 순서를 만족하도록 설계된다. 본 발명에서는, 이와 같은 SOC 시스템의 설계에 있어서, 설계될 SOC 시스템의 성능을 미 리 추정하고, 이에 따라 그 시스템을 제어하는 프로그램이 용이하게 작성되도록 참조될 수 있는 스케쥴링 방법을 제안한다. 상기 SOC 시스템 스케쥴링에서는 데이터 의존적이지 않은 하드웨어 모듈은 독립적으로 동시에 실행될 수도 있도록 하고, 파이프라인 구조로 동작하는 하드웨어 모듈은 주어진 파이프라인 수 내에서 해당 파이프라인 동작이 이루어지도록 스케쥴되도록 한다. 또한, 주어진 파이프라인 수 내에서 주어진 전체 동작을 완료할 수 없을 경우에는 이를 만족시킬 수 있는 파이프라인 수와 이에 해당하는 스케쥴을 생성한다. 이때 파이프라인 수가 1인 경우는 실질적으로 파이프라인 구조에 해당하지 않고 각 모듈이 순차 동작으로 처리하는 것을 의미한다. Each hardware module and software module included in an SOC system is designed to satisfy an interdependent data processing order in a given system structure. In the present invention, in the design of such an SOC system, a scheduling method that can be referred to in order to estimate the performance of the SOC system to be designed in advance and to easily prepare a program for controlling the system accordingly. In the SOC system scheduling, hardware modules that are not data dependent may be executed independently and simultaneously, and hardware modules operating in a pipelined structure may be scheduled to perform corresponding pipeline operations within a given number of pipelines. In addition, when a given total operation cannot be completed within a given number of pipelines, the number of pipelines and a schedule corresponding thereto are generated. In this case, when the number of pipelines is 1, it means that the modules do not substantially correspond to the pipeline structure and each module processes them in a sequential operation.
이를 위하여, 본 발명의 일실시예에 따른 하드웨어/소프트웨어 스케쥴러(160)의 개념도(100)가 도 1에 도시되어 있다. 도 1을 참조하면, 상기 스케쥴러(160)는 SOC 시스템에 포함되는 하드웨어/소프트웨어 모듈들의 동작 클럭 싸이클 정보(110), 각 모듈의 동작 우선순위 정보(130), 시스템 구조 정보(140), 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수 정보(120)를 입력받아 각 모듈의 동작 시간에 대한 스케쥴 결과(170)를 생성한다. 상기 스케쥴러(160)의 동작 설명을 위하여 도 2의 흐름도가 참조된다. To this end, a conceptual diagram 100 of the hardware /
먼저, 상기 스케쥴러(160)는 상기 입력받은 각 모듈의 동작 우선순위로부터 상기 하드웨어/소프트웨어 모듈들 각각을 노드(node)로 하고 각 모듈의 의존(dependency) 관계를 에지(edge)로 하는 우선 순위 그래프를 생성한다(도 2의 S210). 도 3과 같은 SOC 시스템(300)이 설계된다고 가정할 때, 이에 대한 스케쥴링 을 위하여 프로세서(310), 프로그램 메모리(320), 하드웨어 데이터 메모리(330), DMAC(Direct Memory Access Controller)(340), 제1 하드웨어 모듈(350) 및 제2 하드웨어 모듈(360) 각각을 노드 V로 하고, 이들의 에지 E를 원소로 하는 우선 순위 그래프 G(V,E)를 만들 수 있다. First, the
다음에, 상기 스케쥴러(160)는 상기 입력받은 각 모듈의 동작 클럭 싸이클을 상기 에지에 반영하여 상기 우선 순위 그래프로부터 제약 조건 그래프를 생성한다(도 2의 S220). 도 3의 예에서, 프로세서(310), 프로그램 메모리(320), 하드웨어 데이터 메모리(330), DMAC(340), 제1 하드웨어 모듈(350) 및 제2 하드웨어 모듈(360) 각각의 동작 클럭 싸이클이 상기 모듈간 의존 관계를 나타내는 에지에 반영되면, 그 동작 클럭 싸이클을 만족하도록 하는 각 모듈간의 동작 시간이 대략적으로 예측될 수 있다. Next, the
다음에, 상기 스케쥴러(160)는 상기 제약 조건 그래프에 상기 입력받은 시스템 구조 정보를 반영한다(도 2의 S230). 상기 입력되는 시스템 구조 정보에는 각 모듈에서 실행될 세부 태스크들(tasks)을 포함한다. 또한, 각 태스크의 동작 클럭 싸이클도 포함될 수 있다. Next, the
도 3의 시스템에 대한 시스템 구조 정보를 반영한 제약 조건 그래프(400)가 도 4에 도시되어 있다. 상기 제약 조건 그래프(400)를 참조하면, 도 3의 시스템이 수행하는 태스크들은 소프트웨어 모듈(프로세서)의 제어(410), DMAC 셋업(set-up)(420), 하드웨어 셋업(430), DMA 전송(440), 및 하드웨어 모듈의 동작(450)으로 구성될 수 있다. 예를 들어, 도 4의 그래프와 같은 태스크들을 나타내는 정점 (vertice) T와 제약 조건이 반영된 에지 R을 원소로 하는 제약 조건 그래프 C(V,E)가 만들어질 수 있다. 도 4에서, 에지로 연결된 동작은 동시에 이루어질 수 없음을 의미한다. 소프트웨어 모듈의 제어(410)는 프로세서(310)가 프로그램 메모리(320)에 있는 프로그램을 수행하는 동작이다. 프로세서(310)는 DMAC(340) 동작을 지시하는 DMAC 셋업(420)을 할 수 있고, 제1 하드웨어 모듈(350) 및 제2 하드웨어 모듈(360)의 동작을 지시하는 하드웨어 셋업(430)을 할 수 있다. 상기 DMAC(340)는 프로세서(310)의 명령을 받아서 하드웨어 데이터 메모리(330)와 상기 제1 하드웨어 모듈(350) 및 제2 하드웨어 모듈(360) 사이의 데이터 전송을 수행하는 DMA 전송(440) 태스크를 담당한다. 상기 제1 하드웨어 모듈(350) 및 제2 하드웨어 모듈(360)은 하드웨어 데이터 메모리(330)로부터 받은 데이터를 이용하여 주어진 동작을 수행하는 하드웨어 모듈의 동작(450) 태스크를 담당한다.A
이와 같이, 시스템 구조 정보가 상기 제약 조건 그래프에 반영되면, 상기 스케쥴러(160)는 상기 입력된 파이프라인 수나 전체 시스템의 동작 클럭 싸이클을 고려하지 않고 제약조건 그래프를 만족시키도록 초기 스케쥴링을 수행한다(도 2의 S240). 예를 들어, 이와 같은 초기 스케쥴링에서는, 가장 먼저 실행할 수 있는 시점을 기반으로 하드웨어 및 소프트웨어 모듈을 스케쥴링하는 방법, 가장 늦게 실행해도 되는 시점을 기반으로 하드웨어 및 소프트웨어 모듈을 스케쥴링하는 방법, 또는 이들의 조합으로 가능하다.As such, when system structure information is reflected in the constraint graph, the
마지막으로, 상기 스케쥴러(160)는 상기 초기 스케쥴링 결과를 바탕으로, 상기 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수를 고려하여 그것을 만족하도 록 수정하는 최종 스케쥴링을 수행한다(도 2의 S250). 이에 따라, 상기 스케쥴러(160)는 각 모듈의 동작 시간에 대한 스케쥴 결과를 생성한다. 예를 들어, 이와 같은 최종 스케쥴링에서는, 먼저 실행되어야 할 하드웨어 및 소프트웨어 모듈들이 모두 스케쥴된 후 각 모듈의 여러 가지 조건들을 비교하여 가장 유리한 하드웨어나 소프트웨어 모듈을 먼저 스케쥴링하는 과정을 반복한다는 리스트 스케쥴링(list scheduling) 방법 등이 이용될 수 있다.Lastly, the
이때, 상기 스케쥴러(160)는 상기 파이프라인 수에 대하여 상기 시스템 전체의 동작 클럭 싸이클이 만족되지 않으면, 만족시킬 수 있는 최적의 파이프라인 수와 그에 해당하는 스케쥴 결과를 생성한다. 이와 같은 최종 스케쥴링 단계에서 최적의 파이프라인 수 결정은, 현재의 스케쥴링 결과에서 시스템 동작 클럭 싸이클보다 큰 동작 클럭 싸이클을 가지는 하드웨어 모듈을 찾고, 이러한 하드웨어 모듈의 동작 클럭 싸이클(절대 싸이클)을 전체 시스템 동작 클럭 싸이클로 나누어서 몫은 파이프라인 수 값으로 하며, 나머지 값을 취하여 파이프라인에서의 시작 위치(파이프라인 싸이클)로 결정한 후, 제약조건 그래프를 만족시키도록 하는 방법으로 수행된다. 이와 같은 과정은 모든 하드웨어 모듈이 제약조건 그래프를 만족하면서 파이프라인 싸이클 값이 주어진 전체 시스템의 동작 클럭 싸이클 내에서 만족될 때까지 반복한다. At this time, the
이와 같이, 상기 스케쥴러(160)는 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수에 대응되는 각 모듈의 동작 시간에 대한 스케쥴 결과를 출력함에 있어서, 상기 입력된 파이프라인 수에 대응되는 시스템 전체의 데이터 처리율을 포함할 수 있다. 예를 들어, 데이터 압축 시스템에서, 소정 매크로 블록(macroblock)을 처리하는 인코더의 프레임 레이트(frame rate) 등이 그것이다. 또한, 상기 스케쥴러(160)는 입력된 파이프라인 수를 최소 파이프라인으로 하고, 그 보다 큰 파이프라인 수를 가지는 스케쥴링을 추정하여, 해당 파이프라인들 각각에 대하여도 그에 대응되는 스케쥴 결과를 생성할 수 있다. 예를 들어, 위의 인코더 예에서, 파이프라인 수가 4로 입력된 경우에, 파이프라인 수가 4, 5, 6 등인 모든 경우에 대하여 각 모듈의 동작 시간 및 프레임 레이트 등에 관한 스케쥴 결과를 생성하도록 할 수 있다.As such, the
본 명세서에서 개시된 방법에서 사용되는 기능은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. The functions used in the methods disclosed herein can be embodied as computer readable codes on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
위에서 기술한 바와 같이 본 발명의 일실시예에 따른 SOC 스케쥴링 방법에서는, 하드웨어/소프트웨어 모듈들의 동작 클럭 싸이클, 각 모듈간의 동작 우선순위 및 시스템 구조 정보로부터, 우선 순위 그래프 및 제약 조건 그래프를 만들고, 주 어진 시스템 구조상에서 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수를 만족하는 각 모듈의 동작 시간에 대한 스케쥴 결과를 생성한다. 또한, 시스템 전체의 동작 클럭 싸이클이 만족되지 않으면, 이를 만족시킬 수 있는 최적의 파이프라인 수와 그에 해당하는 스케쥴 결과를 생성한다.As described above, in the SOC scheduling method according to an embodiment of the present invention, a priority graph and a constraint graph are generated from an operation clock cycle of hardware / software modules, operation priority and system structure information between modules, Based on the system structure, a schedule result for the operation time of each module that satisfies the system operating clock cycle and the number of pipelines is generated. In addition, if the operating clock cycle of the entire system is not satisfied, the optimum number of pipelines and corresponding schedule results are generated.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, optimal embodiments have been disclosed in the drawings and the specification. Although specific terms have been used herein, they are used only for the purpose of describing the present invention and are not intended to limit the scope of the invention as defined in the claims or the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.
본 발명에 따른 SOC 스케쥴링 방법에서는, 설계될 SOC 시스템 구조에 주어진 성능을 만족시키도록 스케쥴 결과를 생성하므로, 시스템 성능을 미리 추정할 수 있도록 하고, 이에 따라 그 시스템을 제어하는 프로그램이 용이하게 작성되도록 할 수 있다. 또한, 파이프라인 구조의 SOC 시스템에 대하여, 성능 요구 조건으로부터 최적의 파이프라인 수와 해당 스케쥴 결과를 제공하는 것이 가능하다. In the SOC scheduling method according to the present invention, since the scheduling result is generated to satisfy the performance given to the SOC system structure to be designed, the system performance can be estimated in advance, and accordingly, a program for controlling the system can be easily written. can do. In addition, for pipelined SOC systems, it is possible to provide an optimal number of pipelines and corresponding schedule results from performance requirements.
Claims (5)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20040103677 | 2004-12-09 | ||
KR1020040103677 | 2004-12-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060065420A KR20060065420A (en) | 2006-06-14 |
KR100723831B1 true KR100723831B1 (en) | 2007-05-31 |
Family
ID=37160690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050029950A KR100723831B1 (en) | 2004-12-09 | 2005-04-11 | Method and storage media for scheduling hardwares and softwares in system-on-chip design |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100723831B1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0934511A (en) * | 1995-06-07 | 1997-02-07 | Xerox Corp | Scheduling system for operation of apparatus |
KR20010028892A (en) * | 1999-09-27 | 2001-04-06 | 서평원 | Method for upgrading software of mobile station |
WO2001057650A1 (en) * | 2000-02-02 | 2001-08-09 | Sony Electronics Inc. | System and method for efficiently performing scheduling operations in an electronic device |
JP2001345813A (en) * | 2000-05-31 | 2001-12-14 | Nec Corp | Device and method for pipeline processing type shaping |
JP2002268898A (en) * | 2001-03-14 | 2002-09-20 | Mitsubishi Electric Corp | Vehicle controller |
KR20050051295A (en) * | 2003-11-27 | 2005-06-01 | 한국전자통신연구원 | Hardware scheduling apparatus and method for firmware |
-
2005
- 2005-04-11 KR KR1020050029950A patent/KR100723831B1/en not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0934511A (en) * | 1995-06-07 | 1997-02-07 | Xerox Corp | Scheduling system for operation of apparatus |
KR20010028892A (en) * | 1999-09-27 | 2001-04-06 | 서평원 | Method for upgrading software of mobile station |
WO2001057650A1 (en) * | 2000-02-02 | 2001-08-09 | Sony Electronics Inc. | System and method for efficiently performing scheduling operations in an electronic device |
JP2001345813A (en) * | 2000-05-31 | 2001-12-14 | Nec Corp | Device and method for pipeline processing type shaping |
JP2002268898A (en) * | 2001-03-14 | 2002-09-20 | Mitsubishi Electric Corp | Vehicle controller |
KR20050051295A (en) * | 2003-11-27 | 2005-06-01 | 한국전자통신연구원 | Hardware scheduling apparatus and method for firmware |
Also Published As
Publication number | Publication date |
---|---|
KR20060065420A (en) | 2006-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070038987A1 (en) | Preprocessor to improve the performance of message-passing-based parallel programs on virtualized multi-core processors | |
JP4965995B2 (en) | Program processing method, processing program, and information processing apparatus | |
US9164769B2 (en) | Analyzing data flow graph to detect data for copying from central register file to local register file used in different execution modes in reconfigurable processing array | |
JP2022500768A (en) | Thermal load prediction methods, equipment, readable media and electronic devices | |
CN114217966A (en) | Deep learning model dynamic batch processing scheduling method and system based on resource adjustment | |
Pazzaglia et al. | Optimizing the functional deployment on multicore platforms with logical execution time | |
CA2433379A1 (en) | Modulo scheduling of multiple instruction chains | |
US7539992B2 (en) | Scheduling method, program product for use in such method, and task scheduling apparatus | |
US20020052726A1 (en) | Performance simulation apparatus, performance simulation method, and recording medium containing performance simulation program | |
US7624252B2 (en) | Processing device, method of determining internal configuration of processing device, and processing system | |
CN112540854A (en) | Deep learning model scheduling deployment method and system under condition of limited hardware resources | |
KR100723831B1 (en) | Method and storage media for scheduling hardwares and softwares in system-on-chip design | |
JP2007034887A (en) | Method and apparatus for automatically creating shift register file for high-level synthesis compiler | |
JP2005092780A (en) | Real time processor system and control method | |
JP5632651B2 (en) | Semiconductor circuit and design apparatus | |
Falk et al. | A rule-based static dataflow clustering algorithm for efficient embedded software synthesis | |
US7093254B2 (en) | Scheduling tasks quickly in a sequential order | |
Schneidewind | An integrated failure detection and fault correction model | |
CN113778640A (en) | Task execution method and device, electronic equipment and storage medium | |
US20110225557A1 (en) | High-level synthesis apparatus, high-level synthesis method, and computer readable medium | |
KR100626669B1 (en) | Hardware scheduling apparatus for firmware and method thereof | |
US20180088954A1 (en) | Electronic apparatus, processor and control method thereof | |
JP4556629B2 (en) | Data processing system verification apparatus and method and program | |
KR20190118521A (en) | Method and device for error handling in a communication between distributed software components | |
KR101711388B1 (en) | Device and method to compile for scheduling block at pipeline |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20050411 |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20060926 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20070413 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20070525 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20070528 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20100430 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20110511 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20120509 Start annual number: 6 End annual number: 6 |
|
FPAY | Annual fee payment |
Payment date: 20130424 Year of fee payment: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20130424 Start annual number: 7 End annual number: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140430 Year of fee payment: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20140430 Start annual number: 8 End annual number: 8 |
|
FPAY | Annual fee payment |
Payment date: 20150427 Year of fee payment: 9 |
|
PR1001 | Payment of annual fee |
Payment date: 20150427 Start annual number: 9 End annual number: 9 |
|
LAPS | Lapse due to unpaid annual fee | ||
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20170409 |