爲了由CPU執行,程序必須加載到RAM中。程序只是處理器可以理解的一系列機器指令(如x86指令集)(因爲它通過邏輯門在物理上實現了它們的語義)。程序如何控制硬件?
我可以或多或少了解本地指令(在CPU的芯片組內執行的指令),諸如「ADD R1,R2,R3」作品。即使通過北橋芯片使用數據總線和地址總線的cpu與ram的接口對我來說也是足夠清晰的。
我正在努力的是大局。
例如文件如何保存到硬盤? 假設主板使用SATA接口與硬盤進行通信。 這是否意味着這個SATA接口有一個指令集可供cpu使用,通過準備以正確格式寫入的SATA指令?
是否也適用於PCI接口,AGP接口等?
(由創建硬件芯片的公司)與指令所有的硬件通信基本上都是通過確定界面參考標準對於某些任務,並執行它來完成設定任何其它硬件組件可以查詢?
我對硬件和軟件交互的正確理解是否正確?
我認爲你的理解是正確的,但我認爲它並不總是像處理器直接與每個設備進行通信一樣簡單。例如,處理器可以與UART設備或一些其他設備進行通信,該設備又與存儲器或網絡或監控器等進行通信。參見http://en.wikipedia.org/wiki/16550_UART作爲示例。更一般地說,現代計算硬件設置也涉及DMA:http://en.wikipedia.org/wiki/Direct_memory_access。 – Brian