1,128 research outputs found

    Investigation on AUTOSAR-Compliant Solutions for Many-Core Architectures

    Get PDF
    As of today, AUTOSAR is the de facto standard in the automotive industry, providing a common software architec- ture and development process for automotive applications. While this standard is originally written for singlecore operated Elec- tronic Control Units (ECU), new guidelines and recommendations have been added recently to provide support for multicore archi- tectures. This update came as a response to the steady increase of the number and complexity of the software functions embedded in modern vehicles, which call for the computing power of multicore execution environments. In this paper, we enumerate and analyze the design options and the challenges of porting AUTOSAR-based automotive applications onto multicore platforms. In particular, we investigate those options when considering the emerging many- core architectures that provide a more scalable environment than the traditional multicore systems. Such platforms are suitable to enable massive parallel execution, and their design is more suitable for partitioning and isolating the software components.Euromicro Conference on Digital System Design (DSD 2015), Funchal, Portugal

    Accelerating sequential programs using FastFlow and self-offloading

    Full text link
    FastFlow is a programming environment specifically targeting cache-coherent shared-memory multi-cores. FastFlow is implemented as a stack of C++ template libraries built on top of lock-free (fence-free) synchronization mechanisms. In this paper we present a further evolution of FastFlow enabling programmers to offload part of their workload on a dynamically created software accelerator running on unused CPUs. The offloaded function can be easily derived from pre-existing sequential code. We emphasize in particular the effective trade-off between human productivity and execution efficiency of the approach.Comment: 17 pages + cove

    Reliable scalable symbolic computation: The design of SymGridPar2

    Get PDF
    Symbolic computation is an important area of both Mathematics and Computer Science, with many large computations that would benefit from parallel execution. Symbolic computations are, however, challenging to parallelise as they have complex data and control structures, and both dynamic and highly irregular parallelism. The SymGridPar framework (SGP) has been developed to address these challenges on small-scale parallel architectures. However the multicore revolution means that the number of cores and the number of failures are growing exponentially, and that the communication topology is becoming increasingly complex. Hence an improved parallel symbolic computation framework is required. This paper presents the design and initial evaluation of SymGridPar2 (SGP2), a successor to SymGridPar that is designed to provide scalability onto 10^5 cores, and hence also provide fault tolerance. We present the SGP2 design goals, principles and architecture. We describe how scalability is achieved using layering and by allowing the programmer to control task placement. We outline how fault tolerance is provided by supervising remote computations, and outline higher-level fault tolerance abstractions. We describe the SGP2 implementation status and development plans. We report the scalability and efficiency, including weak scaling to about 32,000 cores, and investigate the overheads of tolerating faults for simple symbolic computations

    Thermal-Aware Networked Many-Core Systems

    Get PDF
    Advancements in IC processing technology has led to the innovation and growth happening in the consumer electronics sector and the evolution of the IT infrastructure supporting this exponential growth. One of the most difficult obstacles to this growth is the removal of large amount of heatgenerated by the processing and communicating nodes on the system. The scaling down of technology and the increase in power density is posing a direct and consequential effect on the rise in temperature. This has resulted in the increase in cooling budgets, and affects both the life-time reliability and performance of the system. Hence, reducing on-chip temperatures has become a major design concern for modern microprocessors. This dissertation addresses the thermal challenges at different levels for both 2D planer and 3D stacked systems. It proposes a self-timed thermal monitoring strategy based on the liberal use of on-chip thermal sensors. This makes use of noise variation tolerant and leakage current based thermal sensing for monitoring purposes. In order to study thermal management issues from early design stages, accurate thermal modeling and analysis at design time is essential. In this regard, spatial temperature profile of the global Cu nanowire for on-chip interconnects has been analyzed. It presents a 3D thermal model of a multicore system in order to investigate the effects of hotspots and the placement of silicon die layers, on the thermal performance of a modern ip-chip package. For a 3D stacked system, the primary design goal is to maximise the performance within the given power and thermal envelopes. Hence, a thermally efficient routing strategy for 3D NoC-Bus hybrid architectures has been proposed to mitigate on-chip temperatures by herding most of the switching activity to the die which is closer to heat sink. Finally, an exploration of various thermal-aware placement approaches for both the 2D and 3D stacked systems has been presented. Various thermal models have been developed and thermal control metrics have been extracted. An efficient thermal-aware application mapping algorithm for a 2D NoC has been presented. It has been shown that the proposed mapping algorithm reduces the effective area reeling under high temperatures when compared to the state of the art.Siirretty Doriast

    Reliable scalable symbolic computation: The design of SymGridPar2

    Get PDF
    Symbolic computation is an important area of both Mathematics and Computer Science, with many large computations that would benefit from parallel execution. Symbolic computations are, however, challenging to parallelise as they have complex data and control structures, and both dynamic and highly irregular parallelism. The SymGridPar framework (SGP) has been developed to address these challenges on small-scale parallel architectures. However the multicore revolution means that the number of cores and the number of failures are growing exponentially, and that the communication topology is becoming increasingly complex. Hence an improved parallel symbolic computation framework is required. This paper presents the design and initial evaluation of SymGridPar2 (SGP2), a successor to SymGridPar that is designed to provide scalability onto 10^5 cores, and hence also provide fault tolerance. We present the SGP2 design goals, principles and architecture. We describe how scalability is achieved using layering and by allowing the programmer to control task placement. We outline how fault tolerance is provided by supervising remote computations, and outline higher-level fault tolerance abstractions. We describe the SGP2 implementation status and development plans. We report the scalability and efficiency, including weak scaling to about 32,000 cores, and investigate the overheads of tolerating faults for simple symbolic computations

    A survey of techniques for reducing interference in real-time applications on multicore platforms

    Get PDF
    This survey reviews the scientific literature on techniques for reducing interference in real-time multicore systems, focusing on the approaches proposed between 2015 and 2020. It also presents proposals that use interference reduction techniques without considering the predictability issue. The survey highlights interference sources and categorizes proposals from the perspective of the shared resource. It covers techniques for reducing contentions in main memory, cache memory, a memory bus, and the integration of interference effects into schedulability analysis. Every section contains an overview of each proposal and an assessment of its advantages and disadvantages.This work was supported in part by the Comunidad de Madrid Government "Nuevas Tรฉcnicas de Desarrollo de Software de Tiempo Real Embarcado Para Plataformas. MPSoC de Prรณxima Generaciรณn" under Grant IND2019/TIC-17261

    Performance Aspects of Synthesizable Computing Systems

    Get PDF

    Autonomous Machine์„ ์œ„ํ•œ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์™€ ์„ผ์„œ ํ“จ์ „์„ ์ง€์›ํ•˜๋Š” Splash ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์„ค๊ณ„

    Get PDF
    ํ•™์œ„๋…ผ๋ฌธ(๋ฐ•์‚ฌ)--์„œ์šธ๋Œ€ํ•™๊ต ๋Œ€ํ•™์› :๊ณต๊ณผ๋Œ€ํ•™ ์ „๊ธฐยท์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€,2020. 2. ํ™์„ฑ์ˆ˜.Autonomous machines have begun to be widely used in various application domains due to recent remarkable advances in machine intelligence. As these autonomous machines are equipped with diverse sensors, multicore processors and distributed computing nodes, the complexity of the underlying software platform is increasing at a rapid pace, overwhelming the developers with implementation details. This leads to a demand for a new programming framework that has an easy-to-use programming abstraction. In this thesis, we present a graphical programming framework named Splash that explicitly addresses the programming challenges that arise during the development of an autonomous machine. We set four design goals to solve the challenges. First, Splash should provide an easy-to-use, effective programming abstraction. Second, it must support real-time stream processing for deep-learning based machine learning intelligence. Third, it must provide programming support for real-time control system of autonomous machines such as sensor fusion and mode change. Finally, it should support performance optimization of software system running on a heterogeneous multicore distributed computing platform. Splash allows programmers to specify genuine, end-to-end timing constraints. Also, it provides a best-effort runtime system that tries to meet the annotated timing constraints and exception handling mechanisms to monitor the violation of such constraints. To implement these runtime mechanisms, Splash provides underlying timing semantics: (1) it provides an abstract global clock that is shared by machines in the distributed system and (2) it supports programmers to write birthmark on every stream data item. Splash offers a multithreaded process model to support concurrent programming. In the multithreaded process model, a programmer can write a multithreaded program using Splash threads we call sthreads. An sthread is a logical entity of independent execution. In addition, Splash provides a language construct named build unit that allows programmers to allocate sthreads to processes and threads of an underlying operating system. Splash provides three additional language semantics to support real-time stream processing and real-time control systems. First, it provides rate control semantics to solve uncontrolled jitter and an unbounded FIFO queue problem due to the variability in communication delay and execution time. Second, it supports fusion semantics to handle timing issues caused by asynchronous sensors in the system. Finally, it provides mode change semantics to meet varying requirements in the real-time control systems. In this paper, we describe each language semantics and runtime mechanism that realizes such semantics in detail. To show the utility of our framework, we have written a lane keeping assist system (LKAS) in Splash as an example. We evaluated rate control, sensor fusion, mode change and build unit-based allocation. First, using rate controller, the jitter was reduced from 30.61 milliseconds to 1.66 milliseconds. Also, average lateral deviation and heading angle is reduced from 0.180 meters to 0.016 meters and 0.043 rad to 0.008 rad, respectively. Second, we showed that the fusion operator works normally as intended, with a run-time overhead of only 7 microseconds on average. Third, the mode change mechanism operated correctly and incurred a run-time overhead of only 0.53 milliseconds. Finally, as we increased the number of build units from 1 to 8, the average end-to-end latency was increased from 75.79 microseconds to 2022.96 microseconds. These results show that the language semantics and runtime mechanisms proposed in this thesis are designed and implemented correctly, and Splash can be used to effectively develop applications for an autonomous machine.๋”ฅ ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜ machine intelligence์˜ ๋น„์•ฝ์ ์ธ ๋ฐœ์ „์œผ๋กœ ์ธํ•ด autonomous machine๋“ค์ด ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ํ™œ์šฉ๋˜๊ณ  ์žˆ๋‹ค. ์ด๋Ÿฐ ๊ธฐ๊ธฐ๋“ค์€ ๋‹ค์–‘ํ•œ ์„ผ์„œ, ๋ฉ€ํ‹ฐ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ, ๋ถ„์‚ฐ ์ปดํ“จํŒ… ๋…ธ๋“œ๋ฅผ ์žฅ์ฐฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋“ค์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฐ˜ ์†Œํ”„ํŠธ์›จ์–ด ํ”Œ๋žซํผ์˜ ๋ณต์žก๋„๋Š” ๋น ๋ฅธ ์†๋„๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ถ”์„ธ์ด๋‹ค. ์ด์— ๋”ฐ๋ผ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ณต์žกํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์กฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•„์š”์„ฑ์ด ๋Œ€๋‘๋˜๊ณ  ์žˆ๋‹ค. ๋ณธ ํ•™์œ„๋…ผ๋ฌธ์€ autonomous machine์˜ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ทธ๋ž˜ํ”ฝ ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ์ธ Splash๋ฅผ ์ œ์•ˆํ•œ๋‹ค. Splash๋ผ๋Š” ์ด๋ฆ„์€ stream processing language for autonomous machine์—์„œ ์•ž์˜ ์„ธ ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๋“ค์„ ๋”ฐ์„œ ์ง€์–ด์กŒ๋‹ค. ์ด ์ด๋ฆ„์€ ๋ฌผ๊ณผ ๊ฐ™์ด ํ๋ฅด๋Š” ์ŠคํŠธ๋ฆผ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๋Ÿฐํƒ€์ž„ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•˜๊ฒ ๋‹ค๋Š” ์˜๋„๋ฅผ ๊ฐ€์ง„๋‹ค. ๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” ๋ณต์žกํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์กฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ๋„ค ๊ฐ€์ง€ ๋””์ž์ธ ๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ•œ๋‹ค. ์ฒซ์งธ, Splash๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์„ธ๋ถ€์ ์ธ ๊ตฌํ˜„ ์ด์Šˆ๋ฅผ ์ˆจ๊ธฐ๊ณ , ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณตํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ๋‘˜์งธ, Splash๋Š” machine intelligence๋ฅผ ์œ„ํ•œ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์…‹์งธ, Splash๋Š” ์‹ค์‹œ๊ฐ„ ์ œ์–ด ์‹œ์Šคํ…œ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์„ผ์„œ ํ“จ์ „, ๋ชจ๋“œ ๋ณ€๊ฒฝ, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ๋“ค์„ ์œ„ํ•œ ์ง€์›์„ ์ œ๊ณตํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ๋„ท์งธ, Splash๋Š” ์ด๊ธฐ์ข… ๋ฉ€ํ‹ฐ์ฝ”์–ด ๋ถ„์‚ฐ ์ปดํ“จํŒ… ํ”Œ๋žซํผ์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์ง€์›ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. Splash๋Š” ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์ƒ์— ๋ณธ์งˆ์ ์ธ end-to-end timing constraints๋ฅผ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ช…์‹œํ•œ timing constraints๋ฅผ ์ธ์ง€ํ•˜๊ณ  ์ด๋ฅผ ์ตœ๋Œ€ํ•œ ์ง€์ผœ์ฃผ๋Š” best-effort ๋Ÿฐํƒ€์ž„ ์‹œ์Šคํ…œ๊ณผ timing constraints์˜ ์œ„๋ฐ˜์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ•จ๊ป˜ ์ œ๊ณตํ•œ๋‹ค. ์ด๋Ÿฐ ๋Ÿฐํƒ€์ž„ ๋ฉ”์ปค๋‹ˆ์ฆ˜๋“ค์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด Splash๋Š” ๋‘ ๊ฐ€์ง€ ๊ธฐ๋ณธ์ ์ธ timing semantics๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ฒซ์งธ, ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ์ƒ์—์„œ ๋ชจ๋“  ๋จธ์‹ ๋“ค์ด ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” global time base๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๋‘˜์งธ, Splash ์ƒ์— ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ์ŠคํŠธ๋ฆผ ๋ฐ์ดํ„ฐ ์•„์ดํ…œ์— ์ž์‹ ์˜ birthmark๋ฅผ ๊ธฐ๋กํ•˜๋„๋ก ํ•œ๋‹ค. Splash๋Š” ๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋””๋“œ ์ฒ˜๋ฆฌ ๋ชจ๋ธ์„ ์ œ๊ณตํ•œ๋‹ค. Splash ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” sthread๋ผ๋Š” ๋…ผ๋ฆฌ์ ์ธ ์ˆ˜ํ–‰ ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Splash๋Š” sthread๋“ค์„ ์‹ค์ œ ์šด์˜์ฒด์ œ์˜ ์ˆ˜ํ–‰ ๋‹จ์œ„์ธ ํ”„๋กœ์„ธ์Šค์™€ ์“ฐ๋ ˆ๋“œ์—๊ฒŒ ํ• ๋‹นํ•˜๋Š” ๊ณผ์ •์„ ๋•๊ธฐ ์œ„ํ•œ ๋นŒ๋“œ ์œ ๋‹›์ด๋ผ๋Š” language construct๋ฅผ ์ œ๊ณตํ•œ๋‹ค. Splash๋Š” timing semantics์™€ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋””๋“œ ์ฒ˜๋ฆฌ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์™€ ์‹ค์‹œ๊ฐ„ ์ œ์–ด ์‹œ์Šคํ…œ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ์„ธ ๊ฐ€์ง€ language semantics๋ฅผ ์ถ”๊ฐ€๋กœ ์ง€์›ํ•œ๋‹ค. ์ฒซ์งธ๋Š” ์ŠคํŠธ๋ฆผ ๋ฐ์ดํ„ฐ์˜ ํ†ต์‹ ์ด๋‚˜ ์ฒ˜๋ฆฌ ์ง€์—ฐ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ์ง€ํ„ฐ๋‚˜ ๋ฐ”์šด๋“œ ๋˜์ง€ ์•Š๋Š” ํ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ rate ์ œ์–ด semantics์ด๋‹ค. ๋‘˜์งธ๋Š” ์„ผ์„œ ํ“จ์ „ ๊ณผ์ •์—์„œ ์‹œ๊ฐ„์ ์œผ๋กœ ๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ์„ผ์„œ ์ž…๋ ฅ๋“ค๋กœ ์ธํ•œ ํƒ€์ด๋ฐ ์ด์Šˆ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํ“จ์ „ semantics์ด๋‹ค. ๋งˆ์ง€๋ง‰์€ ๊ฐ€๋ณ€์ ์ธ ์ œ์–ด ์‹œ์Šคํ…œ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ ๋กœ์ง์˜ ๋ณ€๊ฒฝ์„ ์ง€์›ํ•˜๋Š” ๋ชจ๋“œ ๋ณ€๊ฒฝ semantics์ด๋‹ค. ๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” ๊ฐ๊ฐ์˜ language semantics๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค๋ช…ํ•˜๊ณ , ์ด๋ฅผ ์‹คํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋Ÿฐํƒ€์ž„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ•œ๋‹ค. Splash์˜ ํšจ์šฉ์„ฑ์„ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด์„œ, ๋ณธ ๋…ผ๋ฌธ์€ Splash๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LKAS ์‘์šฉ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์ด๋ฅผ Splash ๋Ÿฐํƒ€์ž„ ์‹œ์Šคํ…œ ์ƒ์—์„œ ์ˆ˜ํ–‰์‹œํ‚ค๋ฉฐ ์‹คํ—˜์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” rate ์ œ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜, ์„ผ์„œ ํ“จ์ „ ๋ฉ”์ปค๋‹ˆ์ฆ˜, ๋ชจ๋“œ ๋ณ€๊ฒฝ ๋ฉ”์ปค๋‹ˆ์ฆ˜, ๋นŒ๋“œ ์œ ๋‹› ๊ธฐ๋ฐ˜ allocation์„ ๊ฐ๊ฐ ์„ ์ •๋œ ์„ฑ๋Šฅ ์ง€ํ‘œ๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ฆํ•˜์˜€๋‹ค. ์ฒซ์งธ, Splash์˜ rate ์ œ์–ด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ง€ํ„ฐ๊ฐ€ 30.61ms์—์„œ 1.66ms๋กœ ๊ฐ์†Œ๋˜์—ˆ๊ณ , ์ด๋กœ ์ธํ•ด ์ฃผํ–‰ ์ฐจ๋Ÿ‰์˜ ์ธก๋ฉด ํŽธ์ฐจ์™€ ๋ฐฉํ–ฅ๊ฐ์ด ๊ฐ๊ฐ 0.180m์—์„œ 0.016m, 0.043rad์—์„œ 0.008rad์œผ๋กœ ๊ฐœ์„ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค. ๋‘˜์งธ, ์„ผ์„œ ํ“จ์ „์„ ์œ„ํ•ด ์ œ์•ˆ๋œ ํ“จ์ „ ์—ฐ์‚ฐ์ž๊ฐ€ ์„ค๊ณ„๋œ ์˜๋„๋Œ€๋กœ ์ •์ƒ ๋™์ž‘ํ•˜๊ณ , ํ‰๊ท  7us์˜ ๋‚ฎ์€ ์˜ค๋ฒ„ํ—ค๋“œ๋งŒ์„ ์œ ๋ฐœํ•œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค. ์…‹์งธ, ๋ชจ๋“œ ๋ณ€๊ฒฝ ๊ธฐ๋Šฅ์˜ ์ •์ƒ ๋™์ž‘์„ ๊ฒ€์ฆํ•˜์˜€๊ณ  ๊ทธ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์‹œ๊ฐ„์  ์˜ค๋ฒ„ํ—ค๋“œ๋Š” ํ‰๊ท  0.53ms์— ๋ถˆ๊ณผํ•˜์˜€๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, synthetic workload์— ๋Œ€ํ•ด ์ปดํฌ๋„ŒํŠธ๋“ค์— ๋งคํ•‘๋œ ๋นŒ๋“œ ์œ ๋‹› ๊ฐœ์ˆ˜๋ฅผ 1๊ฐœ, 2๊ฐœ, 4๊ฐœ, 8๊ฐœ๋กœ ์ฆ๊ฐ€์‹œํ‚ด์— ๋”ฐ๋ผ ํ‰๊ท  end-to-end ์ง€์—ฐ ์‹œ๊ฐ„์€ 75.79us, 330.80us, 591.87us, 2022.96us๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๋“ค์€ ๋ณธ ๋…ผ๋ฌธ์—์„œ ์ œ์•ˆํ•˜๋Š” language semantics์™€ ๋Ÿฐํƒ€์ž„ ๋ฉ”์ปค๋‹ˆ์ฆ˜๋“ค์ด ์˜๋„๋Œ€๋กœ ์„ค๊ณ„, ๊ตฌํ˜„๋˜์—ˆ๊ณ , ์ด๋ฅผ ํ†ตํ•ด autonomous machine์˜ ์‘์šฉ๋“ค์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค€๋‹ค.Chapter 1 Introduction p.1 1.1 Motivation p.2 1.2 Splash Overview p.5 1.3 Organization of This Dissertation p.9 Chapter 2 Related Work p.10 2.1 Kahn Process Network p.10 2.2 Firing Rule Applied to a Process p.13 2.3 Programming Framework for an Autonomous Machine p.14 2.4 Runtime Software for an Autonomous Machine p.16 2.5 Rate Control p.18 2.5.1 Traffic Shaping p.20 2.5.2 Traffic Policing p.22 2.6 Sensor Fusion p.23 2.6.1 Measurement Fusion p.24 2.6.2 Situation Fusion p.27 2.7 Mode Change p.30 2.7.1 Synchronous Mode Change p.32 2.7.2 Asynchronous Mode Change p.32 Chapter 3 Motivation and Contributions p.34 3.1 Problem Description p.34 3.2 Limitations of Kahn Process Network p.36 3.3 Contributions of this Dissertation p.38 Chapter 4 Underlying Timing Semantics of Splash p.41 4.1 End-to-End Timing Constraints p.41 4.2 Global Time Base and In-order Delivery p.42 4.3 Integrating Three Distinct Computing Models p.43 Chapter 5 Splash Language Constructs p.45 5.1 Processing Component p.46 5.2 Port p.49 5.3 Channel and Clink p.52 5.4 Fusion Operator p.54 5.5 Factory and Mode Change p.60 5.6 Build Unit p.65 5.7 Exception Handling p.67 Chapter 6 Splash Runtime Mechanisms p.69 6.1 Rate Control Mechanism p.69 6.2 Sensor Fusion Mechanism p.70 6.3 Mode Change Mechanism p.77 Chapter 7 Code Generation and Runtime System p.80 7.1 Build Unit-based Allocation p.80 7.2 Code Generation Template p.82 7.3 Splash Runtime System p.84 Chapter 8 Experimental Evaluation p.86 8.1 LKAS Program p.86 8.2 Experimental Environment p.91 8.3 Evaluating Rate Control p.92 8.4 Evaluating Sensor Fusion p.96 8.5 Evaluating Mode Change p.97 8.6 Evaluating Build Unit-based Allocation p.99 Chapter 9 Conclusion p.102 Bibliography p.104 Abstract in Korean p.113Docto
    • โ€ฆ
    corecore