驅動程式堆疊的初始化
週邊設備的堆疊拓樸是造成驅動程式初始化變得很複雜的主要原因之一,
說著說著我們再度先來懷念一下IBM XT PC 電腦的匯流排吧!
在那個時候,
週邊設備的拓樸排列不是堆疊拓樸,
而是以CPU為中心的環狀排列,
每個裝置都是直接接到CPU,
而無所謂中介機構,
所以各個裝置的驅動程式,
彼此互相之間可以說是護互不相干,
也就是說,
沒有彼此相互呼叫的情形。
因此,
當電腦系統在開機的那一瞬間,
CPU要對所有的週邊設備作初始化工作的時候,
並沒有所謂順序的問題存在,
也就是說,
如果電腦系統如果有五個設備A、B、C、D、E,
則這五個設備在初始化的先後順序上,
並不會有特別的順序規定,
CPU可以以ABCDE的順序分別初始化各個設備,
或者是以EDCBA的順序分別初始化各個設備,
或者是其它任意隨機的順序。
因此,
初始化的工作在IBM XT PC電腦上,
可說是一個架構非常簡單的模式。
但是週邊設備的排列方式改為堆疊拓樸後,
情況就變得不一樣了,
CPU開機首先面臨的狀況是,
開機之初CPU只看得到直接連結的裝置,
其它非直接連結的裝置一律不知道有其存在,
一直要到直接連結的裝置初始化完成,
開始啟動工作之後,
直接連結的裝置 (橋接器) 才會去偵測接連在其下游匯流排的裝置,
然後告知系統,
作業系統才會知道有這些裝置的存在,
然後才能對這些裝置作進一步的初始化設定工作。
因此,
我們可以發現,
對於堆疊拓樸方式的週邊設備作初始化工作,
必需依照順序,
從最接近CPU的裝置開始,
逐步一次又一次的偵測、初始化、
偵測、初始化循環,
直到最末端的設備都初始化完成為止,
與以前IBM XT PC 電腦的方式大不相同。
會搞得如此的複雜,
這又是一件因橋接器和匯流排控制器導入系統帶來的麻煩,
又是一件不得不要的東西。
==未完,待續==
--
Ξ Origin: 中興大學天樞資訊網 <bbs.nchu.edu.tw>
Ξ From : 220-139-18-180.dynamic.hinet.net