481 research outputs found

    μ‹€μ‹œκ°„ μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ„ μœ„ν•œ 동적 ν–‰μœ„ λͺ…μ„Έ 및 섀계 곡간 탐색 기법

    Get PDF
    ν•™μœ„λ…Όλ¬Έ (박사)-- μ„œμšΈλŒ€ν•™κ΅ λŒ€ν•™μ› : 전기·컴퓨터곡학뢀, 2016. 8. ν•˜μˆœνšŒ.ν•˜λ‚˜μ˜ 칩에 μ§‘μ λ˜λŠ” ν”„λ‘œμ„Έμ„œμ˜ κ°œμˆ˜κ°€ λ§Žμ•„μ§€κ³ , λ§Žμ€ κΈ°λŠ₯듀이 톡합됨에 따라, μ—°μ‚°μ–‘μ˜ λ³€ν™”, μ„œλΉ„μŠ€μ˜ ν’ˆμ§ˆ, μ˜ˆμƒμΉ˜ λͺ»ν•œ μ‹œμŠ€ν…œ μš”μ†Œμ˜ κ³ μž₯ λ“±κ³Ό 같은 λ‹€μ–‘ν•œ μš”μ†Œλ“€μ— μ˜ν•΄ μ‹œμŠ€ν…œμ˜ μƒνƒœκ°€ λ™μ μœΌλ‘œ λ³€ν™”ν•˜κ²Œ λœλ‹€. λ°˜λ©΄μ—, λ³Έ λ…Όλ¬Έμ—μ„œ 주된 관심사λ₯Ό κ°€μ§€λŠ” 슀마트 폰 μž₯μΉ˜μ—μ„œ 주둜 μ‚¬μš©λ˜λŠ” λΉ„λ””μ˜€, κ·Έλž˜ν”½ μ‘μš©λ“€μ˜ 경우, 계산 λ³΅μž‘λ„κ°€ μ§€μ†μ μœΌλ‘œ μ¦κ°€ν•˜κ³  μžˆλ‹€. λ”°λΌμ„œ, μ΄λ ‡κ²Œ λ™μ μœΌλ‘œ λ³€ν•˜λŠ” ν–‰μœ„λ₯Ό κ°€μ§€λ©΄μ„œλ„ 병렬성을 λ‚΄μ œν•œ 계산 집약적인 연산을 ν¬ν•¨ν•˜λŠ” λ³΅μž‘ν•œ μ‹œμŠ€ν…œμ„ κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄μ„œλŠ” 체계적인 섀계 방법둠이 κ³ λ„λ‘œ μš”κ΅¬λœλ‹€. λͺ¨λΈ 기반 방법둠은 병렬 μž„λ² λ””λ“œ μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ„ μœ„ν•œ λŒ€ν‘œμ μΈ 방법 쀑 ν•˜λ‚˜μ΄λ‹€. 특히, μ‹œμŠ€ν…œ λͺ…μ„Έ, 정적 μ„±λŠ₯ 뢄석, 섀계 곡간 탐색, 그리고 μžλ™ μ½”λ“œ μƒμ„±κΉŒμ§€μ˜ λͺ¨λ“  섀계 단계λ₯Ό μ§€μ›ν•˜λŠ” 병렬 μž„λ² λ””λ“œ μ†Œν”„νŠΈμ›¨μ–΄ 섀계 ν™˜κ²½μœΌλ‘œμ„œ, HOPES ν”„λ ˆμž„μ›Œν¬κ°€ μ œμ‹œλ˜μ—ˆλ‹€. λ‹€λ₯Έ 섀계 ν™˜κ²½λ“€κ³ΌλŠ” λ‹€λ₯΄κ²Œ, 이기쒅 λ©€ν‹°ν”„λ‘œμ„Έμ„œ μ•„ν‚€ν…μ²˜μ—μ„œμ˜ 일반적인 μˆ˜ν–‰ λͺ¨λΈλ‘œμ„œ, 곡톡 쀑간 μ½”λ“œ (CIC) 라고 λΆ€λ₯΄λŠ” ν”„λ‘œκ·Έλž˜λ° ν”Œλž«νΌμ΄λΌλŠ” μƒˆλ‘œμš΄ κ°œλ…μ„ μ†Œκ°œν•˜μ˜€λ‹€. CIC νƒœμŠ€ν¬ λͺ¨λΈμ€ ν”„λ‘œμ„ΈμŠ€ λ„€νŠΈμ›Œν¬ λͺ¨λΈμ— κΈ°λ°˜ν•˜κ³  μžˆμ§€λ§Œ, SDF λͺ¨λΈλ‘œ ꡬ체화될 수 있기 λ•Œλ¬Έμ—, 병렬 처리뿐만 μ•„λ‹ˆλΌ 정적 뢄석이 μš©μ΄ν•˜λ‹€λŠ” μž₯점을 가진닀. ν•˜μ§€λ§Œ, SDF λͺ¨λΈμ€ μ‘μš©μ˜ 동적인 ν–‰μœ„λ₯Ό λͺ…μ„Έν•  수 μ—†λ‹€λŠ” ν‘œν˜„μƒμ˜ μ œμ•½μ„ 가진닀. μ΄λŸ¬ν•œ μ œμ•½μ„ κ·Ήλ³΅ν•˜κ³ , μ‹œμŠ€ν…œμ˜ 동적 ν–‰μœ„λ₯Ό μ‘μš© 외뢀와 λ‚΄λΆ€λ‘œ κ΅¬λΆ„ν•˜μ—¬ λͺ…μ„Έν•˜κΈ° μœ„ν•΄, λ³Έ λ…Όλ¬Έμ—μ„œλŠ” 데이터 ν”Œλ‘œμš°μ™€ μœ ν•œμƒνƒœκΈ° (FSM) λͺ¨λΈμ— κΈ°λ°˜ν•˜μ—¬ ν™•μž₯된 CIC νƒœμŠ€ν¬ λͺ¨λΈμ„ μ œμ•ˆν•œλ‹€. μƒμœ„ μˆ˜μ€€μ—μ„œλŠ”, 각 μ‘μš©μ€ 데이터 ν”Œλ‘œμš° νƒœμŠ€ν¬λ‘œ λͺ…μ„Έ 되며, 동적 ν–‰μœ„λŠ” μ‘μš©λ“€μ˜ μˆ˜ν–‰μ„ κ°λ…ν•˜λŠ” μ œμ–΄ νƒœμŠ€ν¬λ‘œ λͺ¨λΈ λœλ‹€. 데이터 ν”Œλ‘œμš° νƒœμŠ€ν¬ λ‚΄λΆ€λŠ”, μœ ν•œμƒνƒœκΈ° 기반의 SADF λͺ¨λΈκ³Ό μœ μ‚¬ν•œ ν˜•νƒœλ‘œ 동적 ν–‰μœ„κ°€ λͺ…μ„Έ λœλ‹€SDF νƒœμŠ€ν¬λŠ” 볡수개의 ν–‰μœ„λ₯Ό κ°€μ§ˆ 수 있으며, λͺ¨λ“œ μ „ν™˜κΈ° (MTM)이라고 λΆˆλ¦¬λŠ” μœ ν•œ μƒνƒœκΈ°μ˜ ν…Œμ΄λΈ” ν˜•νƒœμ˜ λͺ…μ„Έλ₯Ό 톡해 SDF κ·Έλž˜ν”„μ˜ λͺ¨λ“œ μ „ν™˜ κ·œμΉ™μ„ λͺ…μ„Έ ν•œλ‹€. 이λ₯Ό MTM-SDF κ·Έλž˜ν”„λΌκ³  λΆ€λ₯΄λ©°, 볡수 λͺ¨λ“œ 데이터 ν”Œλ‘œμš° λͺ¨λΈ 쀑 ν•˜λ‚˜λΌ κ΅¬λΆ„λœλ‹€. μ‘μš©μ€ μœ ν•œν•œ ν–‰μœ„ (λ˜λŠ” λͺ¨λ“œ)λ₯Ό 가지며, 각 ν–‰μœ„ (λͺ¨λ“œ)λŠ” SDF κ·Έλž˜ν”„λ‘œ ν‘œν˜„λ˜λŠ” 것을 κ°€μ •ν•œλ‹€. 이λ₯Ό 톡해 λ‹€μ–‘ν•œ ν”„λ‘œμ„Έμ„œ κ°œμˆ˜μ— λŒ€ν•΄ λ‹¨μœ„μ‹œκ°„λ‹Ή μ²˜λ¦¬λŸ‰μ„ μ΅œλŒ€ν™”ν•˜λŠ” 컴파일-μ‹œκ°„ μŠ€μΌ€μ€„λ§μ„ μˆ˜ν–‰ν•˜κ³ , μŠ€μΌ€μ€„ κ²°κ³Όλ₯Ό μ €μž₯ν•  수 μžˆλ„λ‘ ν•œλ‹€. λ˜ν•œ, 볡수 λͺ¨λ“œ 데이터 ν”Œλ‘œμš° κ·Έλž˜ν”„λ₯Ό μœ„ν•œ λ©€ν‹°ν”„λ‘œμ„Έμ„œ μŠ€μΌ€μ€„λ§ 기법을 μ œμ‹œν•œλ‹€. 볡수 λͺ¨λ“œ 데이터 ν”Œλ‘œμš° κ·Έλž˜ν”„λ₯Ό μœ„ν•œ λͺ‡λͺ‡ μŠ€μΌ€μ€„λ§ 기법듀이 μ‘΄μž¬ν•˜μ§€λ§Œ, λͺ¨λ“œ 사이에 νƒœμŠ€ν¬ 이주λ₯Ό ν—ˆμš©ν•œ 기법듀은 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€. ν•˜μ§€λ§Œ νƒœμŠ€ν¬ 이주λ₯Ό ν—ˆμš©ν•˜κ²Œ 되면 μžμ› μš”κ΅¬λŸ‰μ„ 쀄일 수 μžˆλ‹€λŠ” λ°œκ²¬μ„ 톡해, λ³Έ λ…Όλ¬Έμ—μ„œλŠ” λͺ¨λ“œ μ‚¬μ΄μ˜ νƒœμŠ€ν¬ 이주λ₯Ό ν—ˆμš©ν•˜λŠ” 볡수 λͺ¨λ“œ 데이터 ν”Œλ‘œμš° κ·Έλž˜ν”„λ₯Ό μœ„ν•œ λ©€ν‹°ν”„λ‘œμ„Έμ„œ μŠ€μΌ€μ€„λ§ 기법을 μ œμ•ˆν•œλ‹€. μœ μ „ μ•Œκ³ λ¦¬μ¦˜μ— κΈ°λ°˜ν•˜μ—¬, μ œμ•ˆν•˜λŠ” 기법은 μžμ› μš”κ΅¬λŸ‰μ„ μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•΄ 각 λͺ¨λ“œμ— ν•΄λ‹Ήν•˜λŠ” λͺ¨λ“  SDF κ·Έλž˜ν”„λ₯Ό λ™μ‹œμ— μŠ€μΌ€μ€„ ν•œλ‹€. 주어진 λ‹¨μœ„ μ‹œκ°„λ‹Ή μ²˜λ¦¬λŸ‰ μ œμ•½μ„ λ§Œμ‘±μ‹œν‚€κΈ° μœ„ν•΄, μ œμ•ˆν•˜λŠ” 기법은 각 λͺ¨λ“œ λ³„λ‘œ μ‹€μ œ μ²˜λ¦¬λŸ‰ μš”κ΅¬λŸ‰μ„ κ³„μ‚°ν•˜λ©°, μ²˜λ¦¬λŸ‰μ˜ λΆˆκ·œμΉ™μ„±μ„ μ™„ν™”ν•˜κΈ° μœ„ν•œ 좜λ ₯ λ²„νΌμ˜ 크기λ₯Ό κ³„μ‚°ν•œλ‹€. λͺ…μ„Έλœ νƒœμŠ€ν¬ κ·Έλž˜ν”„μ™€ μŠ€μΌ€μ€„ κ²°κ³Όλ‘œλΆ€ν„°, HOPES ν”„λ ˆμž„μ›Œν¬λŠ” λŒ€μƒ μ•„ν‚€ν…μ²˜λ₯Ό μœ„ν•œ μžλ™ μ½”λ“œ 생성을 μ§€μ›ν•œλ‹€. 이λ₯Ό μœ„ν•΄ μžλ™ μ½”λ“œ μƒμ„±κΈ°λŠ” CIC νƒœμŠ€ν¬ λͺ¨λΈμ˜ ν™•μž₯된 νŠΉμ§•λ“€μ„ μ§€μ›ν•˜λ„λ‘ ν™•μž₯λ˜μ—ˆλ‹€. μ‘μš© μˆ˜μ€€μ—μ„œλŠ” MTM-SDF κ·Έλž˜ν”„λ₯Ό 주어진 정적 μŠ€μΌ€μ€„λ§ κ²°κ³Όλ₯Ό λ”°λ₯΄λŠ” λ©€ν‹°ν”„λ‘œμ„Έμ„œ μ½”λ“œλ₯Ό μƒμ„±ν•˜λ„λ‘ ν™•μž₯λ˜μ—ˆλ‹€. λ˜ν•œ, λ„€ 가지 μ„œλ‘œ λ‹€λ₯Έ μŠ€μΌ€μ€„λ§ μ •μ±… (fully-static, self-timed, static-assignment, fully-dynamic)에 λŒ€ν•œ λ©€ν‹°ν”„λ‘œμ„Έμ„œ μ½”λ“œ 생성을 μ§€μ›ν•œλ‹€. μ‹œμŠ€ν…œ μˆ˜μ€€μ—μ„œλŠ” μ§€μ›ν•˜λŠ” μ‹œμŠ€ν…œ μš”μ²­ API에 λŒ€ν•œ μ‹€μ œ κ΅¬ν˜„ μ½”λ“œλ₯Ό μƒμ„±ν•˜λ©°, 정적 μŠ€μΌ€μ€„ 결과와 νƒœμŠ€ν¬λ“€μ˜ μ œμ–΄ κ°€λŠ₯ν•œ 속성듀에 λŒ€ν•œ 자료 ꡬ쑰 μ½”λ“œλ₯Ό μƒμ„±ν•œλ‹€. 볡수 λͺ¨λ“œ λ©€ν‹°λ―Έλ””μ–΄ 터미널 예제λ₯Ό ν†΅ν•œ 기초적인 μ‹€ν—˜λ“€μ„ 톡해, μ œμ•ˆν•˜λŠ” λ°©λ²•λ‘ μ˜ 타당성을 보인닀.As the number of processors in a chip increases, and more functions are integrated, the system status will change dynamically due to various factors such as the workload variation, QoS requirement, and unexpected component failure. On the other hand, computation-complexity of user applications is also steadily increasingvideo and graphics applications are two major driving forces in smart mobile devices, which define the main application domain of interest in this dissertation. So, a systematic design methodology is highly required to implement such complex systems which contain dynamically changed behavior as well as computation-intensive workload that can be parallelized. A model-based approach is one of representative approaches for parallel embedded software development. Especially, HOPES framework is proposed which is a design environment for parallel embedded software supporting the overall design steps: system specification, performance estimation, design space exploration, and automatic code generation. Distinguished from other design environments, it introduces a novel concept of programming platform, called CIC (Common Intermediate Code) that can be understood as a generic execution model of heterogeneous multiprocessor architecture. The CIC task model is based on a process network model, but it can be refined to the SDF (Synchronous Data Flow) model, since it has a very desirable features for static analyzability as well as parallel processing. However, the SDF model has a typical weakness of expression capability, especially for the system-level specification and dynamically changed behavior of an application. To overcome this weakness, in this dissertation, we propose an extended CIC task model based on dataflow and FSM models to specify the dynamic behavior of the system distinguishing inter- and intra-application dynamism. At the top-level, each application is specified by a dataflow task and the dynamic behavior is modeled as a control task that supervises the execution of applications. Inside a dataflow task, it specifies the dynamic behavior using a similar way as FSM-based SADFan SDF task may have multiple behaviors and a tabular specification of an FSM, called MTM (Mode Transition Machine), describes the mode transition rules for the SDF graph. We call it to MTM-SDF model which is classified as multi-mode dataflow models in the dissertation. It assumes that an application has a finite number of behaviors (or modes) and each behavior (mode) is represented by an SDF graph. It enables us to perform compile-time scheduling of each graph to maximize the throughput varying the number of allocated processors, and store the scheduling information. Also, a multiprocessor scheduling technique is proposed for a multi-mode dataflow graph. While there exist several scheduling techniques for multi-mode dataflow models, no one allows task migration between modes. By observing that the resource requirement can be additionally reduced if task migration is allowed, we propose a multiprocessor scheduling technique of a multi-mode dataflow graph considering task migration between modes. Based on a genetic algorithm, the proposed technique schedules all SDF graphs in all modes simultaneously to minimize the resource requirement. To satisfy the throughput constraint, the proposed technique calculates the actual throughput requirement of each mode and the output buffer size for tolerating throughput jitter. For the specified task graph and scheduling results, the CIC translator generates parallelized code for the target architecture. Therefore the CIC translator is extended to support extended features of the CIC task model. In application-level, it is extended to support multiprocessor code generation for an MTM-SDF graph considering the given static scheduling results. Also, multiprocessor code generation of four different scheduling policies are supported for an MTM-SDF graph: fully-static, self-timed, static-assignment, and fully-dynamic. In system-level, the CIC translator is extended to support code generation for implementation of system request APIs and data structures for the static scheduling results and configurable task parameters. Through preliminary experiments with a multi-mode multimedia terminal example, the viability of the proposed methodology is verified.Chapter 1 Introduction 1 1.1 Motivation 1 1.2 Contribution 7 1.3 Dissertation organization 9 Chapter 2 Background 10 2.1 Related work 10 2.1.1 Compiler-based approach 10 2.1.2 Language-based approach 11 2.1.3 Model-based approach 15 2.2 HOPES framework 19 2.3 Common Intermediate Code (CIC) Model 21 Chapter 3 Dynamic Behavior Specification 26 3.1 Problem definition 26 3.1.1 System-level dynamic behavior 26 3.1.2 Application-level dynamic behavior 27 3.2 Related work 28 3.3 Motivational example 31 3.4 Control task specification for system-level dynamism 33 3.4.1 Internal specification 33 3.4.2 Action scripts 38 3.5 MTM-SDF specification for application-level dynamism 44 3.5.1 MTM specification 44 3.5.2 Task graph specification 45 3.5.3 Execution semantic of an MTM-SDF graph 46 Chapter 4 Multiprocessor Scheduling of an Multi-mode Dataflow Graph 50 4.1 Related work 51 4.2 Motivational example 56 4.2.1 Throughput requirement calculation considering mode transition delay 56 4.2.2 Task migration between mode transition 58 4.3 Problem definition 61 4.4 Throughput requirement analysis 65 4.4.1 Mode transition delay 66 4.4.2 Arrival curves of the output buffer 70 4.4.3 Buffer size determination 71 4.4.4 Throughput requirement analysis 73 4.5 Proposed MMDF scheduling framework 75 4.5.1 Optimization problem 75 4.5.2 GA configuration 76 4.5.3 Fitness function 78 4.5.4 Local optimization technique 79 4.6 Experimental results 81 4.6.1 MMDF scheduling technique 83 4.6.2 Scalability of the Proposed Framework 88 Chapter 5 Multiprocessor Code Generation for the Extended CIC Model 89 5.1 CIC translator 89 5.2 Code generation for application-level dynamism 91 5.2.1 Function call-style code generation (fully-static, self-timed) 94 5.2.2 Thread-style code generation (static-assignment, fully-dynamic) 98 5.3 Code generation for system-level dynamism 101 5.4 Experimental results 105 Chapter 6 Conclusion and Future Work 107 Bibliography 109 초둝 125Docto

    Modeling, Analysis, and Hard Real-time Scheduling of Adaptive Streaming Applications

    Get PDF
    In real-time systems, the application's behavior has to be predictable at compile-time to guarantee timing constraints. However, modern streaming applications which exhibit adaptive behavior due to mode switching at run-time, may degrade system predictability due to unknown behavior of the application during mode transitions. Therefore, proper temporal analysis during mode transitions is imperative to preserve system predictability. To this end, in this paper, we initially introduce Mode Aware Data Flow (MADF) which is our new predictable Model of Computation (MoC) to efficiently capture the behavior of adaptive streaming applications. Then, as an important part of the operational semantics of MADF, we propose the Maximum-Overlap Offset (MOO) which is our novel protocol for mode transitions. The main advantage of this transition protocol is that, in contrast to self-timed transition protocols, it avoids timing interference between modes upon mode transitions. As a result, any mode transition can be analyzed independently from the mode transitions that occurred in the past. Based on this transition protocol, we propose a hard real-time analysis as well to guarantee timing constraints by avoiding processor overloading during mode transitions. Therefore, using this protocol, we can derive a lower bound and an upper bound on the earliest starting time of the tasks in the new mode during mode transitions in such a way that hard real-time constraints are respected.Comment: Accepted for presentation at EMSOFT 2018 and for publication in IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (TCAD) as part of the ESWEEK-TCAD special issu

    An accurate analysis for guaranteed performance of multiprocessor streaming applications

    Get PDF
    Already for more than a decade, consumer electronic devices have been available for entertainment, educational, or telecommunication tasks based on multimedia streaming applications, i.e., applications that process streams of audio and video samples in digital form. Multimedia capabilities are expected to become more and more commonplace in portable devices. This leads to challenges with respect to cost efficiency and quality. This thesis contributes models and analysis techniques for improving the cost efficiency, and therefore also the quality, of multimedia devices. Portable consumer electronic devices should feature flexible functionality on the one hand and low power consumption on the other hand. Those two requirements are conflicting. Therefore, we focus on a class of hardware that represents a good trade-off between those two requirements, namely on domain-specific multiprocessor systems-on-chip (MP-SoC). Our research work contributes to dynamic (i.e., run-time) optimization of MP-SoC system metrics. The central question in this area is how to ensure that real-time constraints are satisfied and the metric of interest such as perceived multimedia quality or power consumption is optimized. In these cases, we speak of quality-of-service (QoS) and power management, respectively. In this thesis, we pursue real-time constraint satisfaction that is guaranteed by the system by construction and proven mainly based on analytical reasoning. That approach is often taken in real-time systems to ensure reliable performance. Therefore the performance analysis has to be conservative, i.e. it has to use pessimistic assumptions on the unknown conditions that can negatively influence the system performance. We adopt this hypothesis as the foundation of this work. Therefore, the subject of this thesis is the analysis of guaranteed performance for multimedia applications running on multiprocessors. It is very important to note that our conservative approach is essentially different from considering only the worst-case state of the system. Unlike the worst-case approach, our approach is dynamic, i.e. it makes use of run-time characteristics of the input data and the environment of the application. The main purpose of our performance analysis method is to guide the run-time optimization. Typically, a resource or quality manager predicts the execution time, i.e., the time it takes the system to process a certain number of input data samples. When the execution times get smaller, due to dependency of the execution time on the input data, the manager can switch the control parameter for the metric of interest such that the metric improves but the system gets slower. For power optimization, that means switching to a low-power mode. If execution times grow, the manager can set parameters so that the system gets faster. For QoS management, for example, the application can be switched to a different quality mode with some degradation in perceived quality. The real-time constraints are then never violated and the metrics of interest are kept as good as possible. Unfortunately, maintaining system metrics such as power and quality at the optimal level contradicts with our main requirement, i.e., providing performance guarantees, because for this one has to give up some quality or power consumption. Therefore, the performance analysis approach developed in this thesis is not only conservative, but also accurate, so that the optimization of the metric of interest does not suffer too much from conservativity. This is not trivial to realize when two factors are combined: parallel execution on multiple processors and dynamic variation of the data-dependent execution delays. We achieve the goal of conservative and accurate performance estimation for an important class of multiprocessor platforms and multimedia applications. Our performance analysis technique is realizable in practice in QoS or power management setups. We consider a generic MP-SoC platform that runs a dynamic set of applications, each application possibly using multiple processors. We assume that the applications are independent, although it is possible to relax this requirement in the future. To support real-time constraints, we require that the platform can provide guaranteed computation, communication and memory budgets for applications. Following important trends in system-on-chip communication, we support both global buses and networks-on-chip. We represent every application as a homogeneous synchronous dataflow (HSDF) graph, where the application tasks are modeled as graph nodes, called actors. We allow dynamic datadependent actor execution delays, which makes HSDF graphs very useful to express modern streaming applications. Our reason to consider HSDF graphs is that they provide a good basic foundation for analytical performance estimation. In this setup, this thesis provides three major contributions: 1. Given an application mapped to an MP-SoC platform, given the performance guarantees for the individual computation units (the processors) and the communication unit (the network-on-chip), and given constant actor execution delays, we derive the throughput and the execution time of the system as a whole. 2. Given a mapped application and platform performance guarantees as in the previous item, we extend our approach for constant actor execution delays to dynamic datadependent actor delays. 3. We propose a global implementation trajectory that starts from the application specification and goes through design-time and run-time phases. It uses an extension of the HSDF model of computation to reflect the design decisions made along the trajectory. We present our model and trajectory not only to put the first two contributions into the right context, but also to present our vision on different parts of the trajectory, to make a complete and consistent story. Our first contribution uses the idea of so-called IPC (inter-processor communication) graphs known from the literature, whereby a single model of computation (i.e., HSDF graphs) are used to model not only the computation units, but also the communication unit (the global bus or the network-on-chip) and the FIFO (first-in-first-out) buffers that form a β€˜glue’ between the computation and communication units. We were the first to propose HSDF graph structures for modeling bounded FIFO buffers and guaranteed throughput network connections for the network-on-chip communication in MP-SoCs. As a result, our HSDF models enable the formalization of the on-chip FIFO buffer capacity minimization problem under a throughput constraint as a graph-theoretic problem. Using HSDF graphs to formalize that problem helps to find the performance bottlenecks in a given solution to this problem and to improve this solution. To demonstrate this, we use the JPEG decoder application case study. Also, we show that, assuming constant – worst-case for the given JPEG image – actor delays, we can predict execution times of JPEG decoding on two processors with an accuracy of 21%. Our second contribution is based on an extension of the scenario approach. This approach is based on the observation that the dynamic behavior of an application is typically composed of a limited number of sub-behaviors, i.e., scenarios, that have similar resource requirements, i.e., similar actor execution delays in the context of this thesis. The previous work on scenarios treats only single-processor applications or multiprocessor applications that do not exploit all the flexibility of the HSDF model of computation. We develop new scenario-based techniques in the context of HSDF graphs, to derive the timing overlap between different scenarios, which is very important to achieve good accuracy for general HSDF graphs executing on multiprocessors. We exploit this idea in an application case study – the MPEG-4 arbitrarily-shaped video decoder, and demonstrate execution time prediction with an average accuracy of 11%. To the best of our knowledge, for the given setup, no other existing performance technique can provide a comparable accuracy and at the same time performance guarantees

    병렬 및 λΆ„μ‚° μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ„ μœ„ν•œ λͺ¨λΈ 기반 μ½”λ“œ 생성 ν”„λ ˆμž„μ›Œν¬

    Get PDF
    ν•™μœ„λ…Όλ¬Έ(박사)--μ„œμšΈλŒ€ν•™κ΅ λŒ€ν•™μ› :κ³΅κ³ΌλŒ€ν•™ 컴퓨터곡학뢀,2020. 2. ν•˜μˆœνšŒ.μ†Œν”„νŠΈμ›¨μ–΄ 섀계 생산성 및 μœ μ§€λ³΄μˆ˜μ„±μ„ ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ μ†Œν”„νŠΈμ›¨μ–΄ 개발 방법둠이 μ œμ•ˆλ˜μ—ˆμ§€λ§Œ, λŒ€λΆ€λΆ„μ˜ μ—°κ΅¬λŠ” μ‘μš© μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό ν•˜λ‚˜μ˜ ν”„λ‘œμ„Έμ„œμ—μ„œ λ™μž‘μ‹œν‚€λŠ” 데에 μ΄ˆμ μ„ λ§žμΆ”κ³  μžˆλ‹€. λ˜ν•œ, μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ„ κ°œλ°œν•˜λŠ” 데에 ν•„μš”ν•œ μ§€μ—°μ΄λ‚˜ μžμ› μš”κ΅¬ 사항에 λŒ€ν•œ λΉ„κΈ°λŠ₯적 μš”κ΅¬ 사항을 κ³ λ €ν•˜μ§€ μ•Šκ³  있기 λ•Œλ¬Έμ— 일반적인 μ†Œν”„νŠΈμ›¨μ–΄ 개발 방법둠을 μž„λ² λ””λ“œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜λŠ” 데에 μ μš©ν•˜λŠ” 것은 μ ν•©ν•˜μ§€ μ•Šλ‹€. 이 λ…Όλ¬Έμ—μ„œλŠ” 병렬 및 λΆ„μ‚° μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ„ λŒ€μƒμœΌλ‘œ ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λͺ¨λΈλ‘œ ν‘œν˜„ν•˜κ³ , 이λ₯Ό μ†Œν”„νŠΈμ›¨μ–΄ λΆ„μ„μ΄λ‚˜ κ°œλ°œμ— ν™œμš©ν•˜λŠ” 개발 방법둠을 μ†Œκ°œν•œλ‹€. 우리의 λͺ¨λΈμ—μ„œ μ‘μš© μ†Œν”„νŠΈμ›¨μ–΄λŠ” κ³„μΈ΅μ μœΌλ‘œ ν‘œν˜„ν•  수 μžˆλŠ” μ—¬λŸ¬ 개의 νƒœμŠ€ν¬λ‘œ 이루어져 있으며, ν•˜λ“œμ›¨μ–΄ ν”Œλž«νΌκ³Ό λ…λ¦½μ μœΌλ‘œ λͺ…μ„Έν•œλ‹€. νƒœμŠ€ν¬ κ°„μ˜ 톡신 및 λ™κΈ°ν™”λŠ” λͺ¨λΈμ΄ μ •μ˜ν•œ κ·œμ•½μ΄ μ •ν•΄μ Έ 있고, μ΄λŸ¬ν•œ κ·œμ•½μ„ 톡해 μ‹€μ œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜κΈ° 전에 μ†Œν”„νŠΈμ›¨μ–΄ μ—λŸ¬λ₯Ό 정적 뢄석을 톡해 확인할 수 있고, μ΄λŠ” μ‘μš©μ˜ 검증 λ³΅μž‘λ„λ₯Ό μ€„μ΄λŠ” 데에 κΈ°μ—¬ν•œλ‹€. μ§€μ •ν•œ ν•˜λ“œμ›¨μ–΄ ν”Œλž«νΌμ—μ„œ λ™μž‘ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ€ νƒœμŠ€ν¬λ“€μ„ ν”„λ‘œμ„Έμ„œμ— λ§€ν•‘ν•œ 이후에 μžλ™μ μœΌλ‘œ ν•©μ„±ν•  수 μžˆλ‹€. μœ„μ˜ λͺ¨λΈ 기반 μ†Œν”„νŠΈμ›¨μ–΄ 개발 λ°©λ²•λ‘ μ—μ„œ μ‚¬μš©ν•˜λŠ” ν”„λ‘œκ·Έλž¨ ν•©μ„±κΈ°λ₯Ό λ³Έ λ…Όλ¬Έμ—μ„œ μ œμ•ˆν•˜μ˜€λŠ”λ°, λͺ…μ„Έν•œ ν”Œλž«νΌ μš”κ΅¬ 사항을 λ°”νƒ•μœΌλ‘œ 병렬 및 λΆ„μ‚° μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ„μ—μ„œ λ™μž‘ν•˜λŠ” μ½”λ“œλ₯Ό μƒμ„±ν•œλ‹€. μ—¬λŸ¬ 개의 μ •ν˜•μ  λͺ¨λΈλ“€μ„ κ³„μΈ΅μ μœΌλ‘œ ν‘œν˜„ν•˜μ—¬ μ‘μš©μ˜ 동적 ν–‰νƒœλ₯Ό λ‚˜νƒ€κ³ , ν•©μ„±κΈ°λŠ” μ—¬λŸ¬ λͺ¨λΈλ‘œ κ΅¬μ„±λœ 계측적인 λͺ¨λΈλ‘œλΆ€ν„° 병렬성을 κ³ λ €ν•˜μ—¬ νƒœμŠ€ν¬λ₯Ό μ‹€ν–‰ν•  수 μžˆλ‹€. λ˜ν•œ, ν”„λ‘œκ·Έλž¨ ν•©μ„±κΈ°μ—μ„œ λ‹€μ–‘ν•œ ν”Œλž«νΌμ΄λ‚˜ λ„€νŠΈμ›Œν¬λ₯Ό 지원할 수 μžˆλ„λ‘ μ½”λ“œλ₯Ό κ΄€λ¦¬ν•˜λŠ” 방법도 보여주고 μžˆλ‹€. λ³Έ λ…Όλ¬Έμ—μ„œ μ œμ‹œν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ 개발 방법둠은 6개의 ν•˜λ“œμ›¨μ–΄ ν”Œλž«νΌκ³Ό 3 μ’…λ₯˜μ˜ λ„€νŠΈμ›Œν¬λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλŠ” μ‹€μ œ κ°μ‹œ μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œ μ‘μš© μ˜ˆμ œμ™€ 이쒅 λ©€ν‹° ν”„λ‘œμ„Έμ„œλ₯Ό ν™œμš©ν•˜λŠ” 원격 λ”₯ λŸ¬λ‹ 예제λ₯Ό μˆ˜ν–‰ν•˜μ—¬ 개발 λ°©λ²•λ‘ μ˜ 적용 κ°€λŠ₯성을 μ‹œν—˜ν•˜μ˜€λ‹€. λ˜ν•œ, ν”„λ‘œκ·Έλž¨ ν•©μ„±κΈ°κ°€ μƒˆλ‘œμš΄ ν”Œλž«νΌμ΄λ‚˜ λ„€νŠΈμ›Œν¬λ₯Ό μ§€μ›ν•˜κΈ° μœ„ν•΄ ν•„μš”λ‘œ ν•˜λŠ” 개발 λΉ„μš©λ„ μ‹€μ œ μΈ‘μ • 및 μ˜ˆμΈ‘ν•˜μ—¬ μƒλŒ€μ μœΌλ‘œ 적은 λ…Έλ ₯으둜 μƒˆλ‘œμš΄ ν”Œλž«νΌμ„ 지원할 수 μžˆμŒμ„ ν™•μΈν•˜μ˜€λ‹€. λ§Žμ€ μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ—μ„œ μ˜ˆμƒμΉ˜ λͺ»ν•œ ν•˜λ“œμ›¨μ–΄ μ—λŸ¬μ— λŒ€ν•΄ 결함을 κ°λ‚΄ν•˜λŠ” 것을 ν•„μš”λ‘œ ν•˜κΈ° λ•Œλ¬Έμ— 결함 감내에 λŒ€ν•œ μ½”λ“œλ₯Ό μžλ™μœΌλ‘œ μƒμ„±ν•˜λŠ” 연ꡬ도 μ§„ν–‰ν•˜μ˜€λ‹€. λ³Έ κΈ°λ²•μ—μ„œ 결함 감내 섀정에 따라 νƒœμŠ€ν¬ κ·Έλž˜ν”„λ₯Ό μˆ˜μ •ν•˜λŠ” 방식을 ν™œμš©ν•˜μ˜€μœΌλ©°, 결함 κ°λ‚΄μ˜ λΉ„κΈ°λŠ₯적 μš”κ΅¬ 사항을 μ‘μš© κ°œλ°œμžκ°€ μ‰½κ²Œ μ μš©ν•  수 μžˆλ„λ‘ ν•˜μ˜€λ‹€. λ˜ν•œ, 결함 감내 μ§€μ›ν•˜λŠ” 것과 κ΄€λ ¨ν•˜μ—¬ μ‹€μ œ μˆ˜λ™μœΌλ‘œ κ΅¬ν˜„ν–ˆμ„ κ²½μš°μ™€ λΉ„κ΅ν•˜μ˜€κ³ , 결함 μ£Όμž… 도ꡬλ₯Ό μ΄μš©ν•˜μ—¬ 결함 λ°œμƒ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μž¬ν˜„ν•˜κ±°λ‚˜, μž„μ˜λ‘œ 결함을 μ£Όμž…ν•˜λŠ” μ‹€ν—˜μ„ μˆ˜ν–‰ν•˜μ˜€λ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ 결함 감내λ₯Ό μ‹€ν—˜ν•  λ•Œμ— ν™œμš©ν•œ 결함 μ£Όμž… λ„κ΅¬λŠ” λ³Έ λ…Όλ¬Έμ˜ 또 λ‹€λ₯Έ κΈ°μ—¬ 사항 쀑 ν•˜λ‚˜λ‘œ λ¦¬λˆ…μŠ€ ν™˜κ²½μœΌλ‘œ λŒ€μƒμœΌλ‘œ μ‘μš© μ˜μ—­ 및 컀널 μ˜μ—­μ— 결함을 μ£Όμž…ν•˜λŠ” 도ꡬλ₯Ό κ°œλ°œν•˜μ˜€λ‹€. μ‹œμŠ€ν…œμ˜ 견고성을 κ²€μ¦ν•˜κΈ° μœ„ν•΄ 결함을 μ£Όμž…ν•˜μ—¬ 결함 μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μž¬ν˜„ν•˜λŠ” 것은 널리 μ‚¬μš©λ˜λŠ” λ°©λ²•μœΌλ‘œ, λ³Έ λ…Όλ¬Έμ—μ„œ 개발된 결함 μ£Όμž… λ„κ΅¬λŠ” μ‹œμŠ€ν…œμ΄ λ™μž‘ν•˜λŠ” 도쀑에 μž¬ν˜„ κ°€λŠ₯ν•œ 결함을 μ£Όμž…ν•  수 μžˆλŠ” 도ꡬ이닀. 컀널 μ˜μ—­μ—μ„œμ˜ 결함 μ£Όμž…μ„ μœ„ν•΄ 두 μ’…λ₯˜μ˜ 결함 μ£Όμž… 방법을 μ œκ³΅ν•˜λ©°, ν•˜λ‚˜λŠ” 컀널 GNU 디버거λ₯Ό μ΄μš©ν•œ 방법이고, λ‹€λ₯Έ ν•˜λ‚˜λŠ” ARM ν•˜λ“œμ›¨μ–΄ 브레이크포인트λ₯Ό ν™œμš©ν•œ 방법이닀. μ‘μš© μ˜μ—­μ—μ„œ 결함을 μ£Όμž…ν•˜κΈ° μœ„ν•΄ GDB 기반 결함 μ£Όμž… 방법을 μ΄μš©ν•˜μ—¬ 동일 μ‹œμŠ€ν…œ ν˜Ήμ€ 원격 μ‹œμŠ€ν…œμ˜ μ‘μš©μ— 결함을 μ£Όμž…ν•  수 μžˆλ‹€. 결함 μ£Όμž… 도ꡬ에 λŒ€ν•œ μ‹€ν—˜μ€ ODROID-XU4 λ³΄λ“œμ—μ„œ μ§„ν–‰ν•˜μ˜€λ‹€.While various software development methodologies have been proposed to increase the design productivity and maintainability of software, they usually focus on the development of application software running on a single processing element, without concern about the non-functional requirements of an embedded system such as latency and resource requirements. In this thesis, we present a model-based software development method for parallel and distributed embedded systems. An application is specified as a set of tasks that follow a set of given rules for communication and synchronization in a hierarchical fashion, independently of the hardware platform. Having such rules enables us to perform static analysis to check some software errors at compile time to reduce the verification difficulty. Platform-specific program is synthesized automatically after mapping of tasks onto processing elements is determined. The program synthesizer is also proposed to generate codes which satisfies platform requirements for parallel and distributed embedded systems. As multiple models which can express dynamic behaviors can be depicted hierarchically, the synthesizer supports to manage multiple task graphs with a different hierarchy to run tasks with parallelism. Also, the synthesizer shows methods of managing codes for heterogeneous platforms and generating various communication methods. The viability of the proposed software development method is verified with a real-life surveillance application that runs on six processing elements with three remote communication methods, and remote deep learning example is conducted to use heterogeneous multiprocessing components on distributed systems. Also, supporting a new platform and network requires a small effort by measuring and estimating development costs. Since tolerance to unexpected errors is a required feature of many embedded systems, we also support an automatic fault-tolerant code generation. Fault tolerance can be applied by modifying the task graph based on the selected fault tolerance configurations, so the non-functional requirement of fault tolerance can be easily adopted by an application developer. To compare the effort of supporting fault tolerance, manual implementation of fault tolerance is performed. Also, the fault tolerance method is tested with the fault injection tool to emulate fault scenarios and inject faults randomly. Our fault injection tool, which has used for testing our fault-tolerance method, is another work of this thesis. Emulating fault scenarios by intentionally injecting faults is commonly used to test and verify the robustness of a system. To emulate faults on an embedded system, we present a run-time fault injection framework that can inject a fault on both a kernel and application layer of Linux-based systems. For injecting faults on a kernel layer, two complementary fault injection techniques are used. One is based on Kernel GNU Debugger, and the other is using a hardware breakpoint supported by the ARM architecture. For application-level fault injection, the GDB-based fault injection method is used to inject a fault on a remote application. The viability of the proposed fault injection tool is proved by real-life experiments with an ODROID-XU4 system.Chapter 1 Introduction 1 1.1 Motivation 1 1.2 Contribution 6 1.3 Dissertation Organization 8 Chapter 2 Background 9 2.1 HOPES: Hope of Parallel Embedded Software 9 2.1.1 Software Development Procedure 9 2.1.2 Components of HOPES 12 2.2 Universal Execution Model 13 2.2.1 Task Graph Specification 13 2.2.2 Dataflow specification of an Application 15 2.2.3 Task Code Specification and Generic APIs 21 2.2.4 Meta-data Specification 23 Chapter 3 Program Synthesis for Parallel and Distributed Embedded Systems 24 3.1 Motivational Example 24 3.2 Program Synthesis Overview 26 3.3 Program Synthesis from Hierarchically-mixed Models 30 3.4 Platform Code Synthesis 33 3.5 Communication Code Synthesis 36 3.6 Experiments 40 3.6.1 Development Cost of Supporting New Platforms and Networks 40 3.6.2 Program Synthesis for the Surveillance System Example 44 3.6.3 Remote GPU-accelerated Deep Learning Example 46 3.7 Document Generation 48 3.8 Related Works 49 Chapter 4 Model Transformation for Fault-tolerant Code Synthesis 56 4.1 Fault-tolerant Code Synthesis Techniques 56 4.2 Applying Fault Tolerance Techniques in HOPES 61 4.3 Experiments 62 4.3.1 Development Cost of Applying Fault Tolerance 62 4.3.2 Fault Tolerance Experiments 62 4.4 Random Fault Injection Experiments 65 4.5 Related Works 68 Chapter 5 Fault Injection Framework for Linux-based Embedded Systems 70 5.1 Background 70 5.1.1 Fault Injection Techniques 70 5.1.2 Kernel GNU Debugger 71 5.1.3 ARM Hardware Breakpoint 72 5.2 Fault Injection Framework 74 5.2.1 Overview 74 5.2.2 Architecture 75 5.2.3 Fault Injection Techniques 79 5.2.4 Implementation 83 5.3 Experiments 90 5.3.1 Experiment Setup 90 5.3.2 Performance Comparison of Two Fault Injection Methods 90 5.3.3 Bit-flip Fault Experiments 92 5.3.4 eMMC Controller Fault Experiments 94 Chapter 6 Conclusion 97 Bibliography 99 μš” μ•½ 108Docto

    Temporal analysis and scheduling of hard real-time radios running on a multi-processor

    Get PDF
    On a multi-radio baseband system, multiple independent transceivers must share the resources of a multi-processor, while meeting each its own hard real-time requirements. Not all possible combinations of transceivers are known at compile time, so a solution must be found that either allows for independent timing analysis or relies on runtime timing analysis. This thesis proposes a design flow and software architecture that meets these challenges, while enabling features such as independent transceiver compilation and dynamic loading, and taking into account other challenges such as ease of programming, efficiency, and ease of validation. We take data flow as the basic model of computation, as it fits the application domain, and several static variants (such as Single-Rate, Multi-Rate and Cyclo-Static) have been shown to possess strong analytical properties. Traditional temporal analysis of data flow can provide minimum throughput guarantees for a self-timed implementation of data flow. Since transceivers may need to guarantee strictly periodic execution and meet latency requirements, we extend the analysis techniques to show that we can enforce strict periodicity for an actor in the graph; we also provide maximum latency analysis techniques for periodic, sporadic and bursty sources. We propose a scheduling strategy and an automatic scheduling flow that enable the simultaneous execution of multiple transceivers with hard-realtime requirements, described as Single-Rate Data Flow (SRDF) graphs. Each transceiver has its own execution rate and starts and stops independently from other transceivers, at times unknown at compile time, on a multiprocessor. We show how to combine scheduling and mapping decisions with the input application data flow graph to generate a worst-case temporal analysis graph. We propose algorithms to find a mapping per transceiver in the form of clusters of statically-ordered actors, and a budget for either a Time Division Multiplex (TDM) or Non-Preemptive Non-Blocking Round Robin (NPNBRR) scheduler per cluster per transceiver. The budget is computed such that if the platform can provide it, then the desired minimum throughput and maximum latency of the transceiver are guaranteed, while minimizing the required processing resources. We illustrate the use of these techniques to map a combination of WLAN and TDS-CDMA receivers onto a prototype Software-Defined Radio platform. The functionality of transceivers for standards with very dynamic behavior – such as WLAN – cannot be conveniently modeled as an SRDF graph, since SRDF is not capable of expressing variations of actor firing rules depending on the values of input data. Because of this, we propose a restricted, customized data flow model of computation, Mode-Controlled Data Flow (MCDF), that can capture the data-value dependent behavior of a transceiver, while allowing rigorous temporal analysis, and tight resource budgeting. We develop a number of analysis techniques to characterize the temporal behavior of MCDF graphs, in terms of maximum latencies and throughput. We also provide an extension to MCDF of our scheduling strategy for SRDF. The capabilities of MCDF are then illustrated with a WLAN 802.11a receiver model. Having computed budgets for each transceiver, we propose a way to use these budgets for run-time resource mapping and admissibility analysis. During run-time, at transceiver start time, the budget for each cluster of statically-ordered actors is allocated by a resource manager to platform resources. The resource manager enforces strict admission control, to restrict transceivers from interfering with each other’s worst-case temporal behaviors. We propose algorithms adapted from Vector Bin-Packing to enable the mapping at start time of transceivers to the multi-processor architecture, considering also the case where the processors are connected by a network on chip with resource reservation guarantees, in which case we also find routing and resource allocation on the network-on-chip. In our experiments, our resource allocation algorithms can keep 95% of the system resources occupied, while suffering from an allocation failure rate of less than 5%. An implementation of the framework was carried out on a prototype board. We present performance and memory utilization figures for this implementation, as they provide insights into the costs of adopting our approach. It turns out that the scheduling and synchronization overhead for an unoptimized implementation with no hardware support for synchronization of the framework is 16.3% of the cycle budget for a WLAN receiver on an EVP processor at 320 MHz. However, this overhead is less than 1% for mobile standards such as TDS-CDMA or LTE, which have lower rates, and thus larger cycle budgets. Considering that clock speeds will increase and that the synchronization primitives can be optimized to exploit the addressing modes available in the EVP, these results are very promising

    Worst-case temporal analysis of real-time dynamic streaming applications

    Get PDF

    Energy-aware scheduling for modal radio graphs

    Get PDF
    • …
    corecore