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 PDF

Info

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
Application number
KR1020050029950A
Other languages
Korean (ko)
Other versions
KR20060065420A (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 KR20060065420A publication Critical patent/KR20060065420A/en
Application granted granted Critical
Publication of KR100723831B1 publication Critical patent/KR100723831B1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01KANIMAL HUSBANDRY; CARE OF BIRDS, FISHES, INSECTS; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
    • A01K49/00Rearing-boxes; Queen transporting or introducing cages
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01KANIMAL HUSBANDRY; CARE OF BIRDS, FISHES, INSECTS; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
    • A01K51/00Appliances for treating beehives or parts thereof, e.g. for cleaning or disinfecting

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

시스템 온 칩 설계를 위한 하드웨어/소프트웨어 스케쥴링 방법 및 이 기능을 실현하는 기록 매체{Method and storage media for scheduling hardwares and softwares in system-on-chip design} Hardware and Software Scheduling Method for System-on-Chip Design and Recording Media Implementing This Function {Method and storage media for scheduling hardwares and softwares in system-on-chip design}

도 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 / software scheduler 160 in accordance with one embodiment of the present invention is shown in FIG. 1. Referring to FIG. 1, the scheduler 160 includes operation clock cycle information 110 of hardware / software modules included in an SOC system, operation priority information 130 of each module, system structure information 140, and the entire system. The operation clock cycle and pipeline number information 120 is inputted to generate a schedule result 170 for the operation time of each module. Reference is made to the flowchart of FIG. 2 to describe the operation of the scheduler 160.

먼저, 상기 스케쥴러(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 scheduler 160 is a priority graph in which each hardware / software module is a node and an dependency relationship of each module is an edge from an operation priority of each input module. To generate (S210 of FIG. 2). Assuming that the SOC system 300 as shown in FIG. 3 is designed, the processor 310, the program memory 320, the hardware data memory 330, the direct memory access controller (DMAC) 340, Each of the first hardware module 350 and the second hardware module 360 may be a node V, and a priority graph G (V, E) having edge E as an element may be generated.

다음에, 상기 스케쥴러(160)는 상기 입력받은 각 모듈의 동작 클럭 싸이클을 상기 에지에 반영하여 상기 우선 순위 그래프로부터 제약 조건 그래프를 생성한다(도 2의 S220). 도 3의 예에서, 프로세서(310), 프로그램 메모리(320), 하드웨어 데이터 메모리(330), DMAC(340), 제1 하드웨어 모듈(350) 및 제2 하드웨어 모듈(360) 각각의 동작 클럭 싸이클이 상기 모듈간 의존 관계를 나타내는 에지에 반영되면, 그 동작 클럭 싸이클을 만족하도록 하는 각 모듈간의 동작 시간이 대략적으로 예측될 수 있다. Next, the scheduler 160 generates the constraint graph from the priority graph by reflecting the input operation clock cycle of each module to the edge (S220 of FIG. 2). In the example of FIG. 3, the operating clock cycle of each of the processor 310, the program memory 320, the hardware data memory 330, the DMAC 340, the first hardware module 350 and the second hardware module 360 is When reflected at the edge indicating the inter-module dependency, the operating time between each module to satisfy the operating clock cycle can be estimated approximately.

다음에, 상기 스케쥴러(160)는 상기 제약 조건 그래프에 상기 입력받은 시스템 구조 정보를 반영한다(도 2의 S230). 상기 입력되는 시스템 구조 정보에는 각 모듈에서 실행될 세부 태스크들(tasks)을 포함한다. 또한, 각 태스크의 동작 클럭 싸이클도 포함될 수 있다. Next, the scheduler 160 reflects the received system structure information in the constraint graph (S230 of FIG. 2). The input system structure information includes detailed tasks to be executed in each module. In addition, an operation clock cycle of each task may be included.

도 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 constraint graph 400 reflecting system structure information for the system of FIG. 3 is shown in FIG. 4. Referring to the constraint graph 400, the tasks performed by the system of FIG. 3 are controlled by the software module (processor) 410, DMAC set-up 420, hardware setup 430, and DMA transfer. 440, and operation 450 of the hardware module. For example, a constraint graph C (V, E) may be made of a vertex T representing tasks such as the graph of FIG. 4 and an edge R reflecting the constraint. In Figure 4, it means that the operation connected to the edge can not be performed at the same time. The control 410 of the software module is an operation in which the processor 310 executes a program in the program memory 320. The processor 310 may perform a DMAC setup 420 instructing the operation of the DMAC 340, and may perform a hardware setup 430 instructing the operation of the first hardware module 350 and the second hardware module 360. Can be. The DMAC 340 receives a command from the processor 310 and performs a data transfer between the hardware data memory 330 and the first hardware module 350 and the second hardware module 360. In charge of. The first hardware module 350 and the second hardware module 360 are responsible for an operation 450 of a hardware module that performs a given operation by using data received from the hardware data memory 330.

이와 같이, 시스템 구조 정보가 상기 제약 조건 그래프에 반영되면, 상기 스케쥴러(160)는 상기 입력된 파이프라인 수나 전체 시스템의 동작 클럭 싸이클을 고려하지 않고 제약조건 그래프를 만족시키도록 초기 스케쥴링을 수행한다(도 2의 S240). 예를 들어, 이와 같은 초기 스케쥴링에서는, 가장 먼저 실행할 수 있는 시점을 기반으로 하드웨어 및 소프트웨어 모듈을 스케쥴링하는 방법, 가장 늦게 실행해도 되는 시점을 기반으로 하드웨어 및 소프트웨어 모듈을 스케쥴링하는 방법, 또는 이들의 조합으로 가능하다.As such, when system structure information is reflected in the constraint graph, the scheduler 160 performs an initial scheduling to satisfy the constraint graph without considering the input pipeline number or the operating clock cycle of the entire system ( S240 of FIG. 2). For example, in this initial scheduling, a method of scheduling hardware and software modules based on the earliest possible execution time, a method of scheduling hardware and software modules based on the latest possible execution time, or a combination thereof Is possible.

마지막으로, 상기 스케쥴러(160)는 상기 초기 스케쥴링 결과를 바탕으로, 상기 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수를 고려하여 그것을 만족하도 록 수정하는 최종 스케쥴링을 수행한다(도 2의 S250). 이에 따라, 상기 스케쥴러(160)는 각 모듈의 동작 시간에 대한 스케쥴 결과를 생성한다. 예를 들어, 이와 같은 최종 스케쥴링에서는, 먼저 실행되어야 할 하드웨어 및 소프트웨어 모듈들이 모두 스케쥴된 후 각 모듈의 여러 가지 조건들을 비교하여 가장 유리한 하드웨어나 소프트웨어 모듈을 먼저 스케쥴링하는 과정을 반복한다는 리스트 스케쥴링(list scheduling) 방법 등이 이용될 수 있다.Lastly, the scheduler 160 performs a final scheduling based on the initial scheduling result and modifies the system to satisfy it by considering the number of operating clock cycles and pipelines of the entire system (S250 of FIG. 2). Accordingly, the scheduler 160 generates a schedule result for the operation time of each module. For example, in this final scheduling, the list of hardware and software modules to be executed first is scheduled, and then the schedule of repeating the scheduling of the most advantageous hardware or software module first is compared by comparing various conditions of each module. scheduling) may be used.

이때, 상기 스케쥴러(160)는 상기 파이프라인 수에 대하여 상기 시스템 전체의 동작 클럭 싸이클이 만족되지 않으면, 만족시킬 수 있는 최적의 파이프라인 수와 그에 해당하는 스케쥴 결과를 생성한다. 이와 같은 최종 스케쥴링 단계에서 최적의 파이프라인 수 결정은, 현재의 스케쥴링 결과에서 시스템 동작 클럭 싸이클보다 큰 동작 클럭 싸이클을 가지는 하드웨어 모듈을 찾고, 이러한 하드웨어 모듈의 동작 클럭 싸이클(절대 싸이클)을 전체 시스템 동작 클럭 싸이클로 나누어서 몫은 파이프라인 수 값으로 하며, 나머지 값을 취하여 파이프라인에서의 시작 위치(파이프라인 싸이클)로 결정한 후, 제약조건 그래프를 만족시키도록 하는 방법으로 수행된다. 이와 같은 과정은 모든 하드웨어 모듈이 제약조건 그래프를 만족하면서 파이프라인 싸이클 값이 주어진 전체 시스템의 동작 클럭 싸이클 내에서 만족될 때까지 반복한다. At this time, the scheduler 160 generates an optimal number of pipelines and corresponding schedule results when the operating clock cycle of the entire system is not satisfied with respect to the number of pipelines. Determining the optimal number of pipelines in this final scheduling step finds a hardware module with an operating clock cycle greater than the system operating clock cycle in the current scheduling results, and then converts the operating clock cycle (absolute cycle) of this hardware module into an overall system operation. The quotient divided by the clock cycle is the number of pipelines. The quotient is taken as the starting position (pipeline cycle) in the pipeline by taking the remaining values and then satisfying the constraint graph. This process repeats until all hardware modules satisfy the constraint graph and the pipeline cycle values are satisfied within the given operating system clock cycle.

이와 같이, 상기 스케쥴러(160)는 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수에 대응되는 각 모듈의 동작 시간에 대한 스케쥴 결과를 출력함에 있어서, 상기 입력된 파이프라인 수에 대응되는 시스템 전체의 데이터 처리율을 포함할 수 있다. 예를 들어, 데이터 압축 시스템에서, 소정 매크로 블록(macroblock)을 처리하는 인코더의 프레임 레이트(frame rate) 등이 그것이다. 또한, 상기 스케쥴러(160)는 입력된 파이프라인 수를 최소 파이프라인으로 하고, 그 보다 큰 파이프라인 수를 가지는 스케쥴링을 추정하여, 해당 파이프라인들 각각에 대하여도 그에 대응되는 스케쥴 결과를 생성할 수 있다. 예를 들어, 위의 인코더 예에서, 파이프라인 수가 4로 입력된 경우에, 파이프라인 수가 4, 5, 6 등인 모든 경우에 대하여 각 모듈의 동작 시간 및 프레임 레이트 등에 관한 스케쥴 결과를 생성하도록 할 수 있다.As such, the scheduler 160 outputs a schedule result for the operation time of each module corresponding to the operating clock cycle and the number of pipelines of the entire system, and thus the data throughput of the entire system corresponding to the input pipeline number. It may include. For example, in a data compression system, such is the frame rate of an encoder that processes a given macroblock. In addition, the scheduler 160 sets the input pipeline number as the minimum pipeline, estimates the scheduling having a larger pipeline number, and generates a corresponding schedule result for each of the corresponding pipelines. have. For example, in the above encoder example, when the pipeline number is input as 4, it is possible to generate a schedule result regarding the operation time and frame rate of each module for all cases where the pipeline number is 4, 5, 6, and so on. have.

본 명세서에서 개시된 방법에서 사용되는 기능은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 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)

(a) SOC 시스템에 포함되는 하드웨어/소프트웨어 모듈들의 동작 클럭 싸이클, 각 모듈의 동작 우선순위, 시스템 구조, 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수에 관한 정보를 입력받는 단계;(a) receiving information on an operating clock cycle of hardware / software modules included in an SOC system, an operating priority of each module, a system structure, an operating clock cycle of the entire system, and a number of pipelines; (b) 상기 각 모듈의 동작 우선순위로부터 상기 하드웨어/소프트웨어 모듈들 각각을 노드로 하고 각 모듈의 의존 관계를 에지로 하는 우선 순위 그래프를 생성하는 단계;(b) 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; (c) 상기 우선 순위 그래프로부터 상기 각 모듈의 동작 클럭 싸이클이 만족되도록 하는 예측된 각 모듈간의 동작시간이 나타나는 제1 제약조건 그래프를 생성하는 단계;(c) generating from the priority graph a first constraint graph representing the operating time between each predicted module such that an operating clock cycle of each module is satisfied; (d) 상기 제약 조건 그래프에 상기 시스템 구조 정보를 반영하여 상기 시스템 구조 정보에 따라 에지로 연결된 동작은 동시에 이루어질 수 없도록 정점과 에지가 나타내는 제2 제약조건 그래프를 생성하는 단계; 및(d) generating a second constraint graph represented by a vertex and an edge by reflecting the system structure information on the constraint graph so that an operation connected to an edge according to the system structure information cannot be performed at the same time; And (e) 상기 제2 제약조건 그래프를 만족하도록 초기 스케쥴링을 수행하고 상기 초기 스케쥴링 결과를 기초로 상기 시스템 전체의 동작 클럭 싸이클 및 파이프라인 수가 만족되도록 최종 스케쥴링을 수행하여 각 모듈의 동작시간에 대한 스케쥴결과를 생성하는 단계;를 구비하는 것을 특징으로 하는 SOC 스케쥴링 방법.(e) Performing initial scheduling to satisfy the second constraint graph and performing final scheduling to satisfy the number of operating clock cycles and pipelines of the entire system based on the initial scheduling result to schedule the operation time of each module. Generating a result; SOC scheduling method comprising the. 제 1항에 있어서, 상기 (e)단계는,The method of claim 1, wherein step (e) 상기 초기 스케쥴링 결과에서 상기 파이프라인 수에 대하여 상기 시스템 전체의 동작 클럭 싸이클이 만족되지 않으면, 상기 초기 스케쥴링 결과에서 시스템 동작 클럭 싸이클보다 큰 동작 클럭 싸이클을 가지는 모듈을 찾아 상기 모듈의 동작 클럭 싸이클과 상기 시스템 전체의 동작 클럭 싸이클을 기초로 상기 파이프라인 수를 결정하는 것을 특징으로 하는 SOC 스케쥴링 방법.If the operating clock cycle of the entire system is not satisfied with respect to the number of pipelines in the initial scheduling result, a module having an operating clock cycle larger than the system operating clock cycle is found in the initial scheduling result and the operating clock cycle of the module and the And determining the number of pipelines based on an operating clock cycle of the entire system. 제 1항에 있어서, 상기 시스템 구조 정보는,The method of claim 1, wherein the system structure information, 상기 각 모듈에서 실행될 태스크들 및 해당 동작 클럭 싸이클을 포함하는 것을 특징으로 하는 SOC 스케쥴링 방법.SOC scheduling method comprising a task to be executed in each module and a corresponding operation clock cycle. 제 3항에 있어서, 상기 스케쥴 결과는,The method of claim 3, wherein the schedule result, 상기 주어진 파이프라인 수에 대응되는 시스템 전체의 데이터 처리율을 포함하는 것을 특징으로 하는 SOC 스케쥴링 방법.SOC scheduling method comprising the data throughput of the entire system corresponding to the given number of pipelines. 제 4항에 있어서, 상기 스케쥴 결과는,The method of claim 4, wherein the schedule result, 상기 주어진 파이프라인 수 이상의 적어도 2 이상의 파이프라인들 각각에 대응되는 결과들을 포함하는 것을 특징으로 하는 SOC 스케쥴링 방법.SOC scheduling method comprising the results corresponding to each of at least two or more pipelines of the given number of pipelines.
KR1020050029950A 2004-12-09 2005-04-11 Method and storage media for scheduling hardwares and softwares in system-on-chip design KR100723831B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020040103677 2004-12-09
KR20040103677 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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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
US7840677B2 (en) Systems, methods and computer program products for improving placement performance of message transforms by exploiting guided replication
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
JP2007034887A (en) Method and apparatus for automatically creating shift register file for high-level synthesis compiler
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
US7539992B2 (en) Scheduling method, program product for use in such method, and task scheduling apparatus
Pazzaglia et al. Optimizing the functional deployment on multicore platforms with logical execution time
US7624252B2 (en) Processing device, method of determining internal configuration of processing device, and processing system
CN112540854B (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
JP5632651B2 (en) Semiconductor circuit and design apparatus
JP2005092780A (en) Real time processor system and control method
US7093254B2 (en) Scheduling tasks quickly in a sequential order
Falk et al. A rule-based static dataflow clustering algorithm for efficient embedded software synthesis
GB2366414A (en) A method of identifying false paths in circuit synthesis
WO2002099704A1 (en) System development supporting apparatus, system development supporting method, and computer-readable recorded medium
US8056030B2 (en) Behavioral synthesis system, behavioral synthesis method, and behavioral synthesis program
US20110225557A1 (en) High-level synthesis apparatus, high-level synthesis method, and computer readable medium
KR100626669B1 (en) Hardware Scheduling Apparatus and Method for Firmware
JP4556629B2 (en) Data processing system verification apparatus and method and program
KR101711388B1 (en) Device and method to compile for scheduling block at pipeline
US10481867B2 (en) Data input/output unit, electronic apparatus, and control methods thereof
US10606602B2 (en) Electronic apparatus, processor and control method including a compiler scheduling instructions to reduce unused input ports

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: 20130424

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150427

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee