Abstract
傳統的雷達系統為了符合 Hard Real-Time 的需求,需要昂貴的硬體設備與長時間人力去做硬體設計與測試的工作。隨著硬體速度的一日千里,由中山科學研究院提出了物件導向數位訊號處理 (Object-OrientedDigital SignalProcessor; OODSP) 計畫,並委託國立清華大學研究利用一般用途數位訊號處理器 (General Purpose Digital SignalProcessor) 來建構出物件導向環境之雷達系統,以降低研發各式雷達之成本與人力時間。 在 OODSP 計畫中,我們所使用的多處理器系統乃是由美國 Mercury Computer Systems, Inc. 所生產之 RACE 系統,雖然使用 RACE 的成本已比傳統雷達系統來得低廉,但仍屬於高價位雷達系統。在所有系統都朝向小型化(downsizing) 、分散式環境 (distributedenvironment) 邁進之下,於是我們開始著手研究如何利用多部 PC 所組成之叢集來解決雷達系統之計算問題。 在本論文中,我們利用修改Java 直譯器(Interpreter)的執行方式,來將 Java 上的 ThreadObject 分散的不同的 PC 上面執行,並利用資料分割(DataPartitioning)的方式,來將雷達系統上可能用到的計算方式分散執行,以達到加速雷達運算的目的。 在修改 Java 直譯器的過程中,我們參考了 CORBA (Common Object Request Broker Architecture)的架構,並在系統中加入了類似 Object Repository 的功能,讓在 PC 叢集中每一部 PC 都能夠知道並參考(Reference)到每一個物件的正確位置(Location)。 我們採取 Java 做為我們所使用的程式語言,其原因在於 Java 純粹的物件導向環境。這使的每一個物件(Object)可以獨立運作,加上 Java 去除了C/C++ 中一些複雜、模糊、與不安全的特徵。例如:指標運算(Pointer Arithmetic)與記憶體配置(Memory Allocation/De-Allocation)問題,這讓我們在做物件遷移(Object Migrating)時更方便於實作。更重要的是發表Java 程式語言的 Sun 公司所承諾之"Write once, execute anywhere"。 最後我們所完成的 JavaInterpreter 能夠適用於所有的 Java 程式,所有開發與單一機器上的多執行緒(Multi-Threaded)程式,皆可以在我們的PC 叢集上執行。未來,我們要增進 PC 叢集的 Scalability,降低因為交互參考(CrossReference)所產生多餘的 Communication Latency。進一步將容錯(Fault Tolerance)功能加入,也就是即使在 PC 叢集上的某一部機器當機,原來存在上面的的物件也能順利地遷移(Migrate)到其他機器上,使整個程式不受影響,繼續執行。我們希望修改過的 Java 直譯器在未來將能運用到 Java 的作業系統 (Java OS) 上,取代目前多樣化的作業系統環境,使的所有的執行環境能夠簡單化、快速化,達到 Java 程式執行環境無障礙、速度無阻礙的境界。