概述
刻錄機出現以來一直有一個問題,就是Buffer Under Run(快取欠載),因為這個情況出現以後,就會導致刻錄碟片報廢,浪費我們的金錢和時間。不過好在目前已經有很多技術可以很好的克服這鐘錯誤了,今天我們就一起來看看這些技術。
快取欠載問題的產生原因
CD-RW驅動器一般以恆定線速度不停地進行刻錄。一旦開始刻錄,主計算機就必須不斷地以比CD-RW驅動器刻錄速度更快的速度傳送刻錄請求。由於系統工作負載不斷變化而使數據傳輸率不可能是一個恆定的速度,因此,CD-RW驅動器先將系統傳來的數據存儲在快取中,從而高速調節了數據刻錄與系統不穩定的數據傳輸速度間的差異。在理想情況下,緩衝區中應始終保持有刻錄所需要的數據,這就要求驅動器最好有650MB容量的緩衝區,而這是不可能的,一般情況下緩衝存儲器是2M~4MB。當驅動器刻錄所需數據小於緩衝區大小時就不會發生刻錄緩衝錯誤,而當驅動器刻錄所需數據大於緩衝區大小時,驅動器開始刻錄後就需要不斷從系統獲得數據。因此,當數據的傳輸由於某些原因發生延遲時,驅動器沒有了足夠的數據,將無法繼續維持正常的刻錄過程,因此這種錯誤就是“快取欠載”。
解決方法
當然解決這個問題有兩種方法:第一種:就是擴大快取容量,但提高快取容量勢必要增加刻錄機的成本,並且大容量的快取控制起來也並不是很方便。第二種方法就是在刻錄進行前就避免快取欠載的出現。
而目前一般採用的就是當快取欠載的時候停止刻錄機工作,等到數據充分則繼續開始刻錄,這種功能主要通過集成在驅動控制電路中的硬體和代碼實現的。其保護功能主要表現為當刻錄開始後,驅動器內的控制晶片一直監視緩衝的狀態,當驅動器判斷可能發生刻錄緩衝錯誤時,驅動器會暫停刻錄,並根據光碟的桔皮書規範把光頭停泊到適當的位置,並處於暫停狀態時,不過這個時候驅動器仍不斷從主系統接收數據,一旦接收到足夠的數據,便通過訪問原來刻錄的數據準備重新開始刻錄。驅動器首先比較盤片上已刻錄的數據和緩衝區中的數據,以便進行數據同步。當探測到最後一次刻錄位置時,驅動器就重新開始刻錄。由於驅動器中的控制晶片中存儲了刻錄暫停時的數據,所以,它可以控制緩衝區的狀態以及電機的運轉,使驅動器從原來暫停的地方重新開始,而不會丟失數據。