跳轉至內容

嵌入式系統/微處理器架構

來自華夏公益教科書,開放的書籍,開放的世界

本節的章節將討論微處理器架構的一些基本知識。它們將討論微處理器的許多功能是如何實現的,並將嘗試指出每個功能對系統帶來的某些缺陷(特別是速度下降和瓶頸)。

記憶體匯流排

[編輯 | 編輯原始碼]

在計算機中,處理器透過資料匯流排連線到RAM。資料匯流排是一系列並行執行的線,它們可以將資料傳送到記憶體,並從記憶體讀取資料。此外,處理器必須將要訪問的記憶體地址傳送到RAM模組,以便能夠對正確的資訊進行操作。

複用地址/資料匯流排

[編輯 | 編輯原始碼]

在舊的微處理器中,以及在今天的一些低端版本中,記憶體匯流排是一個單一的匯流排,它將承載要訪問的資料的地址,然後將承載資料的數值。將兩種訊號在不同的時間放到同一總線上,是一種稱為“時分複用”的技術,簡稱為複用。複用記憶體匯流排的效果是,讀寫記憶體實際上需要兩倍的時間:一半時間用於將地址傳送到RAM模組,一半時間用於訪問該地址處的資料。這意味著,在複用總線上,將資料移入和移出記憶體是一個非常昂貴的(在時間方面)過程,因此應儘量減少記憶體讀/寫操作。這也使得確保處理大型資料集的演算法具有快取效率變得很重要。

解複用匯流排

[編輯 | 編輯原始碼]

複用匯流排的反義詞是解複用匯流排。解複用匯流排在一組線上具有地址,而在另一組線上具有資料。這種方案比複用系統快兩倍,因此記憶體讀/寫操作可以更快地發生。

匯流排速度

[編輯 | 編輯原始碼]

在現代高速微處理器中,內部CPU時鐘的速度可能比同步微處理器系統其餘部分的時鐘速度快得多。這意味著需要訪問處理器外部資源(例如RAM)的操作受到匯流排速度的限制,而不能達到最快的速度。在這種情況下,微處理器有兩種選擇:它們可以等待記憶體訪問完成(慢),或者在等待記憶體訪問完成時執行其他任務(快)。舊的微處理器和低端微處理器總是選擇第一個選項(因此再次限制記憶體訪問操作的數量),而更新的和高階的微處理器通常會選擇第二個選項。

I/O匯流排

[編輯 | 編輯原始碼]

任何計算機,無論是大型PC還是小型嵌入式計算機,如果沒有與外部世界互動的方式都是無用的。嵌入式計算機的I/O通訊通常透過稱為I/O匯流排的匯流排進行。與記憶體匯流排一樣,I/O匯流排經常在同一總線上複用輸入和輸出訊號。此外,I/O匯流排的執行速度比處理器慢,因此大量的I/O操作會導致嚴重的效能瓶頸。

不同的IO方法通常使用不同的匯流排。不幸的是,硬體設計人員也常常會作弊,用一個匯流排執行多個目的。這樣做可以節省佈局中額外的電晶體,並降低成本。例如,一個專案可以使用USB匯流排與附近的一些LED進行通訊。這些不同的裝置可能具有非常不同的通訊速度。在編寫IO匯流排控制時,請務必考慮到這一點。

在一些系統中,使用記憶體對映IO。在這種方案中,硬體從預定義的記憶體地址讀取其IO,而不是透過特殊匯流排。這意味著您將擁有更簡單的軟體,但也意味著主記憶體將收到更多訪問請求。

在本手冊的後面部分,IO程式設計,我們將討論IO匯流排的程式設計。

華夏公益教科書