Multicore might be the only solution when concerning about performance and power issues in future chip processor architecture. As the number of cores on a chip keeps on increasing, traditional bus-based architectures are incapable of offering the required communication bandwidth on the chip, so Network-on-chip (NoC) becomes the main paradigm for on-chip interconnection. NoCs not only offer significant bandwidth advantages but also provide outstanding flexibility. However, the performance of NoCs can be degraded significantly if the network flow is not controlled properly. Most previous solutions try to detect network congestion by monitoring the hardware status of the network switches or links. Change of hardware statuses at local end may indicate possible congestions in the network, and thus packet injection into the network should be controlled to react to the congestions. The problem with these solutions is that congestion detection is based only on local status without global information. Actual congestions may occur somewhere else and can only be detected through backpressure, which may be too passive and too slow for taking reactive measures in time. This work takes a proactive approach for congestion detection. The idea is to predict the changes in global, end-to-end network traffic patterns of the running application and take proactive flow control actions to avoid possible congestions. Traffic prediction is based on our recent paper [1], which uses a table-driven predictor for predicting application communication patterns. In this thesis, we discuss how to use the prediction results for effective scheduling of packet injection to avoid network congestions and improve the throughput. The proposed scheme is evaluated using simulation based on a SPLASH-2 benchmark as well as synthetic traffic. The results show its superior performance improvement and negligible execution overhead.
當考慮到在將來的晶片處理器架構的效能跟電的議題時,多核心可能是唯一的解決方法。當晶片上的核心數量一直不斷增加時,傳統的以匯流排為主的架構已經不能滿足晶片上需要的傳輸頻寬,而晶片網路(NoC)就成為晶片上互連傳輸的主流。晶片網路不只提供可觀的頻寬的優點,也展現出它很傑出的彈性。然而,假如網路的流量不能被適當的控管晶片,網路效能會大大的降低。大部份以前的解法是藉著偵測網路上的交換器跟連結的硬體狀態嘗試去偵測網路擁塞。這些局部端點的硬體狀態的改變可以指出網路上可能會發生的壅塞,再藉由壅塞的狀態去控制網路的封包注入。這些偵測網路壅塞的方法是只有看局部的硬體狀態,並沒有考慮整個網路的情況,實際上網路的壅塞不是只會發生在局部的地方,而是可能會發生在網路的其他地方。而且用硬體狀態偵測網路壅塞的方法,是一種回壓的機制,這是一個很被動也太慢的方法,並不能及時的反應真正的網路壅塞。 這篇論文就採用一個比較前瞻性的方法來偵測網路壅塞。概念就是去預測正在執行的應用程式的網路流量模型,這是一種看總體網路的點對點傳輸的方式,藉由這個預測方法做流量控制來避免網路壅塞。網路流量的預測是以一篇最近的論文當作基礎,它的手法是用表來紀錄應用程式傳輸模型而達到預測的目的。在這篇論文,我們討論到如何用這些預測出來的結果來做有效的封包注入的行程,以避免網路壅塞而且也能提高總體的處理能力。我們提出的這個系統是使用SPLASH-2來評估我們的模擬,另外也用了合成的網路流量來作實驗。這些實驗 結果可以看出我們大大的增進整體的效能,而且總體執行時間也有些微的減少。