簡易檢索 / 詳目顯示

研究生: 顏廣愷
Yen, Guang-Kai
論文名稱: Real-Time Embedded Debug and Trace Platform for System-on-Chip
應用於系統晶片之即時內嵌式偵錯追蹤平台
指導教授: 黃稚存
Huang, Chih-Tsun
口試委員:
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 資訊工程學系
Computer Science
論文出版年: 2009
畢業學年度: 97
語文別: 英文
論文頁數: 115
中文關鍵詞: 除錯壓縮
外文關鍵詞: Debug, Trace compression
相關次數: 點閱:3下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 隨著系統晶片的製程進步,系統晶片的驗證及除錯也越來越困難,尤其當系統晶片裡有多個需要驗證及除錯的目標,或是系統晶片有者不同形式的匯流排,都會增加在系統晶片上驗證及除錯的困難。此外,要如何在系統晶片運行時,能即時的除錯及追蹤,並將追蹤資料記錄下來,也是所要面對的難題之一。

    在這篇論文裡,我們提出一個應用於系統晶片的及時內嵌式偵錯追蹤平台。此平台包含了核心監視器(Core Monitor)和匯流排監視器(Bus Monitor),用來蒐集和壓縮我們所追蹤的核心及匯流排的資料。這個平台使用的四階層的平行硬體架構,來壓縮資料,並用獨立的匯流排來傳送資料,不影響到系統晶片的行為。此平台也包含了Cross Trigger,讓不同的監視器可以去觸發其他的監視器,讓使用者可以去設定比較複雜的追蹤條件,來達到更好的除錯效果。

    另外,為了達到減少追蹤資料的效果,我們針對不同的追蹤資料設計了不同的壓縮演算法。在Starfish這是多媒體平台上,我們總共減少了90%的核心追蹤資料及80%的匯流排追蹤資料。我們也提出了將此除錯追蹤平台的硬體面積最佳化的方法。以實作在Starfish為例,我們的除錯偵錯平台只佔了8%的硬體面積。


    As the improvement of the SoC technology, it is getting more and more difficult to validate
    the functionality of SoC, especially for the debugging of multi-core SoC. There are more
    challenges of SoC pre-silicon or post-silicon debugging when SoC becomes more complex,
    such as how to trace multiple cores and various types of bus with different clock domains
    real-time, and how to handle huge amount of trace data from complex SoC cycle by cycle.
    In the thesis, we propose a real-time embedded debug and trace platform (Trace Debug
    System) for platform-based or core-based SoC. It consists of Core Monitors and Bus Monitors
    which can trace the data from target cores and system bus of SoC. Our Trace Debug System
    also contains 4-stage real-time architecture to compress and store trace data cycle by cycle.
    And there is an independent Debug Bus to transfer all trace data from Monitors to trace
    buffer. In that way, our Trace Debug System would not impact the performance of the target
    SoC. Our Trace Debug System also can trace the SoC with various types of system bus with
    different clock domains. Moreover, we implement the bottleneck-aware Cross Trigger on our
    Trace Debug System so that we can trigger Monitors to trace targets when the user-defined
    trace event occurs or the target system hangs because of system bottleneck.
    In addition, in order to reduce the huge amount of trace data, we classify trace data to
    5 types, and select an individual compression methodology for each types of trace data by
    analyzing the trace data from Starfish multimedia platform. As a result, we reduce 90% of
    trace data from Starfish DSP core, and reduce 80% of trace data from system bus (AHB).
    Moreover, we propose a methodology to optimize area cost of our Trace Debug System
    in terms of compression ratio (that affects trace depth) and trace capability. For Starfish
    platform, the area cost of our Trace Debug System (with one Core Monitor and one Bus
    Monitor) costs only 8%. Besides, under the multi-core environment, the comparison shows
    that our approach requires 20.82k gates, which is 36% as compared with previous work.

    1 Introduction 1 1.1 Introduction of SoC Debugging and Tracing . . . . . . . . . . . . . . . . . . 1 1.2 The Challenge of SoC Debugging and Tracing . . . . . . . . . . . . . . . . . 2 1.3 Motivation and Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Organization of the Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Previous Work 6 2.1 Overview of Debug Standardization Activities . . . . . . . . . . . . . . . . . 6 2.2 Prior-Art Debug Support Implementation . . . . . . . . . . . . . . . . . . . 10 2.3 Starfish System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4 Eidetic Platform – Debug and Trace Interface on Starfish . . . . . . . . . . . 15 2.5 Trace Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.5.1 Computational-Based Compression . . . . . . . . . . . . . . . . . . . 17 2.5.2 Dictionary-Based Compression . . . . . . . . . . . . . . . . . . . . . . 18 2.5.3 Run-Length-Based Compression . . . . . . . . . . . . . . . . . . . . . 19 3 Overview of Trace Debug System 22 3.1 Overview of Trace Debug System . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2 Component of Trace Debug System . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.1 Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.2 Debug Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2.3 Cross Trigger and Trigger Bus . . . . . . . . . . . . . . . . . . . . . . 25 3.2.4 Global Clock – Time Stamp . . . . . . . . . . . . . . . . . . . . . . . 25 3.3 Trace Debug Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4 the Trace Debug System set on the Starfish Platform . . . . . . . . . . . . . 28 4 Features of Trace Debug System and Hardware Implementation 29 4.1 Individual Compression for Each Type of Trace Data . . . . . . . . . . . . . 29 4.1.1 Classification of Trace Data . . . . . . . . . . . . . . . . . . . . . . . 29 4.1.2 Compression Methodologies for Each Type of Trace Data . . . . . . . 30 4.1.3 Packaging After Compression . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Compression Ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ii 4.2 4-stage Real-time Architecture of Monitors . . . . . . . . . . . . . . . . . . . 37 4.2.1 Compression and Packaging Stages . . . . . . . . . . . . . . . . . . . 39 4.2.2 Aligning and FIFO Stages . . . . . . . . . . . . . . . . . . . . . . . . 39 4.3 Different Clock Domains Support . . . . . . . . . . . . . . . . . . . . . . . . 41 4.4 Light Compression Overhead from Multiple-Target Tracing . . . . . . . . . . 44 4.4.1 Monitor ID Packet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.4.2 Time Stamp Packet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.4.3 Compression Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.5 OCP-IP supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.6 Independent Debug Bus and Trigger Bus . . . . . . . . . . . . . . . . . . . . 48 4.6.1 Architecture and Signal List . . . . . . . . . . . . . . . . . . . . . . . 51 4.6.2 FSM of the Components on Debug Bus and Trigger Bus . . . . . . . 52 4.7 Bottleneck-Aware Cross Trigger . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.7.1 Trace Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.7.2 Bottleneck Aware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5 Analysis of Compression Algorithm on the Monitors 69 5.1 Simulation Model for Compression Analysis and Benchmark . . . . . . . . . 69 5.2 Compression Algorithm on the Core Monitors . . . . . . . . . . . . . . . . . 70 5.2.1 Program Counter – XOR-Zero-Run-Length-Compression . . . . . . . 71 5.2.2 Data of Registers – Flag Compression . . . . . . . . . . . . . . . . . . 76 5.3 Compression Algorithm on the Bus Monitors . . . . . . . . . . . . . . . . . . 81 5.3.1 HADDR – Multi-Source Differential-Run-Length Compression . . . . 81 5.3.2 HCTRL – Dictionary-Based Compression . . . . . . . . . . . . . . . . 89 5.3.3 HDATA – XOR-Run-Length Compression . . . . . . . . . . . . . . . 92 6 Experiment and Results 94 6.1 Experiment Environment and Parameters . . . . . . . . . . . . . . . . . . . 94 6.2 The Methodology of Optimizing Area Cost of Trace Debug System . . . . . 95 6.2.1 Constrain Setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6.2.2 Compression Selection . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.2.3 FIFO Parameter Selection . . . . . . . . . . . . . . . . . . . . . . . . 98 6.2.4 Area Cost Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6.3 Results of Trace Debug System set on Starfish Platform . . . . . . . . . . . . 101 6.4 Exploration of Trace Debug System . . . . . . . . . . . . . . . . . . . . . . . 104 6.5 Comparison of other Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 7 Conclusion and Future Work 110 7.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 7.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

    [1] DAFCA Corp. ”On-chip, At-speed, Debug and DFT Support for OCP-based SoC’s”,
    in In Proc. Design, Automation, and Test in Europe (DATE), 2005
    [2] Brat Vermeulen, Neal Stollon, Rolf Kぴuhnis, Gary Swoboda, and Jeff Rearick. ”Overview
    of Debug Standardization Activities”, in Design & Test of Computers, IEEE, Volume
    25, Issue 3, pages 258 - 267, May - June 2008
    [3] Andrew B.T. Hopkins and Klaus D. McDonald-Maier. ”Debug Support Strategy for
    Systems-on-Chips with Multiple Processor Cores” Proc. IEEE Transactions on Computer,
    Volume. 55, No.2, pages 174 - 184, Feburary 2006
    [4] Yi-Ting Lin, Wen-Chi Shiue, and Ing-Jer Huang. ”An Embedded Infrastructure of Debug
    and Trace Interface for the DSP Platform”, in Proc. IEEE/ACM Design Automation
    Conf. (DAC), pages 866 - 871, San Diego, California, USA, June 2007
    [5] Yi-Ting Lin, Wen-Chi Shiue, and Ing-Jer Huang. ”A Multi-resolution AHB Bus Tracer
    for Real-time Compression of Forward/Backward Traces in a Circular Buffer”, in Proc.
    IEEE/ACM Design Automation Conf. (DAC), pages 862 - 865, SAnaheim, California,
    June 2008
    [6] ARM Components, Inc. Embedded Trace Macrocell Architecture Specification, 2004
    [7] ARM Components, Inc. AMBA AHB Trace Macrocell (HTM), 2004
    [8] ARM Components, Inc.CoreSightTM Technology, System Design Guide, 2007

    [9] A. Mayer, H. Siebert, and K. McDonald-Maier. ”Debug support, calibration and emulation
    for multiple processor and powertrain control SoCs.” In Proc. Design, Automation,
    and Test in Europe (DATE), pages 148-152, Munich, Oct. 2005
    [10] IEEE-ISTO Nexus 5001 std.-1999, Standard for a Global Embedded Processor Debug
    Interface, IEEE-ISTO, 1999.
    [11] Neal Stollon, Rick Leatherman, ”Multi-Core Embedded Debug for Structured ASIC
    Systems”, DesignCon 2004
    [12] Shan Tang and Qiang Xu, ”A Multi-Core Debug Platform for NoC-Based Systems.”
    In Proc. Design, Automation, and Test in Europe (DATE), 2005
    [13] Altera Inc. Quartus II-Design Debugging Using the SignalTap II Embedded Logic Analyzer,
    Dec. 2004.
    [14] Xilinx Inc. ChipScope Pro Software and Cores UserGuide, Oct. 2004
    [15] Ming-Chang Hsieh and Chih-Tsun Huang. ”An Embedded Infrastructure of Debug and
    Trace Interface for the DSP Platform”, in Proc. IEEE/ACM Design Automation Conf.
    (DAC), pages 866V871, SAnaheim, California, June 2008
    [16] Aachen University of Technology Integrated Systems for Signal Processing. ”DSPstone:
    A DSP Oriented Benchmarking Methodology, Final Report”, August, 1994
    [17] Yen-Ju Ho and Chih-Tsun Huang. ”Debug and Trace Technology for the Embedded
    DSP Core”, NTHU, November 2008
    [18] AMBA Specification (Rev 2.0) ARM IHI0011A, ARM, May 1999.
    [19] Clifford E. Cummings. ”Synthesis and Scripting Techniques for Designing Multi- Asynchronous
    Clock Designs” Sunburst Design, Inc. 2001.
    [20] Clifford E. Cummings. ”Simulation and Synthesis Techniques for Asynchronous FIFO
    Design,” Sunburst Design, Inc. 2001.
    [21] ”Open Core Protocol Specification version 2.2.1” 2008

    無法下載圖示 全文公開日期 本全文未授權公開 (校內網路)
    全文公開日期 本全文未授權公開 (校外網路)

    QR CODE