嵌入式系統/可程式設計控制器
原始的 8086 處理器附帶了一些外設晶片,它們各自執行不同的任務。這些晶片中包括可程式設計中斷控制器、可程式設計定時器和可程式設計 I/O 晶片,它們可以處理原始計算機的許多工,從而減輕 8086 的計算負擔。在英特爾晶片的新版本(486、奔騰等)中,許多外設晶片已被整合到處理器中,以試圖加快整個計算機的速度。但是,即使在當今的高階計算機系統中,許多功能仍然存在。
定時器在執行許多不同的操作時非常有用。例如,許多多執行緒作業系統透過設定定時器來執行,然後在每次定時器觸發時切換到另一個執行緒。可程式設計定時器晶片通常可以程式設計為提供各種不同的定時功能,以減輕微處理器的負擔。
定時器的另一種常見應用是跟蹤以小時和分鐘為單位的人類時間,通常還有年、月和日。通常這種即時時鐘(RTC)有一個電池,即使在通常連線到電源的系統中也能使其保持執行。這種定時器可以透過兩種方式節省功耗
- 當我們想知道現在是什麼時間時——例如,當數碼相機對剛拍的照片進行時間戳時——系統可以從即時時鐘讀取它。其他確定時間的方法需要更多的能量。
- 當系統需要定期執行某項操作時——例如,每 10 秒測量一次室外溫度,並將其無線傳輸到室內顯示屏——系統可以關閉除即時時鐘以外的所有電源,然後等待時鐘喚醒它。
您可以看到一些 8086 相容定時器晶片,如 8253/54,它們內部有三個獨立的定時器,但 8254 可以使用更高的頻率,用於生成中斷,如記憶體重新整理中斷、時間中斷和最後一個用於生成揚聲器頻率。
如今出售的幾乎所有微控制器都在同一晶片上包含整合的定時器“外設”。大多數嵌入式系統要麼 (a) 完全沒有外部定時器晶片,只使用內部定時器,(b) 使用外部即時時鐘,要麼 (c) 嘗試與模擬 8253 相容定時器和即時時鐘的“南橋”晶片相容。
原始的 8086 處理器只有一個用於發出中斷訊號的引腳,因此可程式設計中斷控制器將處理大部分中斷呼叫的複雜細節。此外,可程式設計中斷控制器可以用於監控輸入埠,例如在收到輸入時觸發中斷例程。
由於記憶體讀/寫操作比微處理器的其他操作需要更長的時間,因此應避免移動大塊記憶體。幸運的是,原始的 8086 配備了可程式設計直接記憶體訪問控制器 (DMA),用於自動複製和移動記憶體段。DMA 還可以用於實現記憶體對映 I/O,方法是將其程式設計為自動將記憶體資料移動到輸出埠或從輸出埠移動。
DMA 記憶體複製還可以透過允許 CPU 與 DMA 控制器並行執行程式碼來顯著提高系統性能,DMA 控制器自動執行記憶體複製。
外設介面控制器採用多種形式。每種型別的埠都有一個不同的控制器,微處理器將與其互動以傳送該埠上的輸出。例如,有用於並行埠和更現代的 USB 埠的控制器。這些控制器用於控制輸出上的設定,例如定時和設定輸出/輸入埠上的不同模式。