Thêm vào hai phương pháp định vị sector (CHS hay LBA), có hai mức độ giao diện định vị sector xảy ra. Một giao diện là nơi hệ điều hành gọi ra BIOS (dùng các lệnh trình điều khiển); giao diện kia là nơi BIOS gọi ra ổ đĩa (dùng các lệnh ATA). Các lệnh cụ thể tại những mức độ này thì khác nhau, nhưng cả hai hỗ trợ các chế độ CHS và LBA. Hình 7.12 minh họa hai mức độ giao diện.
Khi hệ điều hành gọi ra BIOS để đọc và ghi các sector, nó đưa ra các lệnh qua ngắt phần mềm (không giống như một IRQ) INT13h, là cách các thủ tục con BIOS cho truy cập ổ đĩa được gọi như thế nào. Nhưng chức năng phụ INT13h khác nhau cho phép các sector được đọc hay ghi dùng phương pháp định vị CHS hay LBA. Các thủ tục BIOS kế tiếp chuyển đổi các lệnh BIOS ra các lệnh mức phần cứng ATA, được gửi qua các cổng I/O bus đến bộ điều khiển ổ đĩa. Các lệnh tại mức phần cứng ATA cũng có thể dùng định vị CHS hay LBA, mặc dù có giới hạn khác nhau. BIOS và ổ đĩa dùng phương pháp định vị CHS và LBA tùy thuộc vào dung lượng ổ đĩa, tuổi của BIOS và ổ đĩa, các thiết lập BIOS và hệ điều hành được sử dụng.
Các giới hạn CHS (ranh giới 528MB)
Trình điều khiển trên cơ sở BIOS chính cho các ổ cứng được truy cập qua ngắt phần mềm 13h (13 hẽ) và cho những chức năng đọc và ghi các ổ đĩa tại mức sector. Các chức năng INTI13h tiêu chuẩn yêu cầu một sector riêng biệt được định vị bởi vị trí cylinder, đầu đọc và sector của nó nếu không thì được biết như định vị CHS. Giao diện này được dùng bởi hệ điều hành và những tiện ích đĩa mức thấp để truy cập ổ đĩa. IBM đầu tiên viết giao diện INT13h cho BIOS bo mạch AT. Giao diện này dùng các số để xác định cylinder, đầu đọc và sector riêng biệt được định vị. Bảng 7.18 thể hiện những giới hạn tham số CHS BIOS INT13h tiêu chuẩn, bao gồm những giá trị tối đa cho những số này.
Khái niệm của một giá trị tối đa định sẵn một lượng con số thì đơn giản: Nếu bạn có, cho ví dụ, một khách sạn với các số phòng hai số thập phân, bạn có thể chỉ có 100 (102) phòng, được đánh số 0->99. Các số CHS được dùng bởi giao diện INTI13h BIOS tiêu chuẩn là nhị phân và với một số 10-bit được dùng để đếm các cylinder, bạn có thể chỉ có tối đa 1.024 (210), được đánh số 0->1.023. Bởi vì đầu đọc được nhận dạng bởi một số 8-bit, số tối đa đầu đọc là 256 (28) được đánh số 0->255. Cuối cùng, với các sector cho mỗi rãnh ghi có một sự khác biệt nhỏ. Sector trên một rãnh ghi được nhận dạng bởi một số 6-bit, thông thường cho phép tối đa 64 (26) sector, tuy nhiên, do các sector được đánh số bắt đầu với 1 (thay vì 0), dãy được giới hạn đến 1->63, nghĩa là một tổng số 63 sector cho mỗi rãnh ghi là tối đa mà BIOS có thể điều khiển.
Những giới hạn BIOS này là thực cho tất cả phiên bản BIOS hay các chương trình dựa trên định vị CHS. Dùng các số tối đa cho CHS tại mức BIOS, bạn có thể định vị một ổ đĩa với 1.024 cylinder, 256 đầu đọc và 63 sector cho mỗi rãnh ghi. Do mỗi sector là 512 byte, bài toán giải ra như sau:
Từ những tính toán này, bạn có thể thấy ổ đĩa dung lượng tối đa có thể định vị qua giao diện BIOS INT13h tiêu chuẩn vào khoảng 8.4GB (GB tương đương khoảng 1 tỷ byte), hay 7.8GiB (GiB có nghĩa một tỷ nhị phân byte).
Không may, những giới hạn BIOS INTI13h không chỉ là những giới hạn ứng dụng. Những giới hạn cũng tồn tại trong bản thân giao diện ATA. Những giới hạn ATA CHS được thể hiện trong Bảng 7.19.
Như bạn thấy, giao diện ATA dùng những trường kích cỡ khác nhau để lưu trữ những giá trị CHS. Nhận xét rằng những giới hạn ATA thì cao hơn những giới hạn BIOS cho các cylinder và sector nhưng thấp hơn giới hạn BIOS cho các đầu đọc. Những giới hạn CHS cho dung lượng theo đặc điểm kỹ thuật ATA-1 đến ATA-5 như sau:
Khi kết hợp những giới hạn của những tham số BIOS và CHS ATA, bạn kết thúc với tình huống thể hiện trong bảng 7.20.
Như bạn thấy, đặc điểm chung phổ biến thấp nhát của những giới hạn CHS được kết hợp dẫn đến những tham số có thể dùng tối đa 1,024 cylinder, 16 đầu đọc và 63 sector, kết quả là một dung lượng ổ đĩa tối đa 528MB. Điều này được biết như là giói hạn 528MB (cũng được gọi là mức giới hạn 504Mib) và nó ảnh hưởng thực sự đến tất cả PC sản xuất năm 1993 hay cũ hơn.
Biên dịch CHS (phá vỡ giới hạn 528MB)
Có một dung lượng ổ đĩa hạn chế mức giới hạn đến 528MB hay ít hơn không là vấn đề khi có ổ đĩa lớn nhất có khả năng nhỏ hơn mức giới hạn này. Nhưng vào năm 1994, công nghệ ổ đĩa phát triển làm các ổ đĩa lơn hơn BIOS và ATA được kết hợp có thể định vị là có thể.
Bắt đầu năm 1993, nhà phát triển BIOS Phoenix Technologies bắt đầu làm việc trên những mở rông BIOS để xử lý quanh những giới hạn của CHS. Tháng 1 năm 1994, họ phát hành đặc điểm kỹ thuật BIOS Enhanced Disk Drive (EDD), sau đó được tái bản bởi ủy ban T13 (cũng chịu trách nhiệm cho ATA) như “BIOS Enhanced Disk Drive Service (EDD). “các tài liệu EDD nêu chi tiết vài phương pháp cho phá vỡ những giới hạn của những BIOS cũ mà không gây ra sự cố tương thích với phần mềm hiện hữu những cái này bao gồm:
Những mở rộng BIOS INT13h hỗ trợ 64-bit LBA
Biên dịch CHS hình học chuyển dời bit (Bit-shift geometric CHS translation)
Biên dịch CHS hình học trợ giúp LBA (LBA-assist geometric CHS translation)
Phương pháp cho xử lý vấn đề CHS được gọi là biên dịch (translation) bởi vì nó cho phép các thủ tục con thêm vào trong BIOS để biên dịch các tham số CHS từ các lượng tối đa ATA đến các lượng tối đa BIOS (và ngược lại). Trong một nỗ lực để làm những phương pháp của nó trở thành tiêu chuẩn trong toàn bộ công nghiệp PC. Phoenix phát hành tài liệu EDD công khai và cho phép công nghệ được sử dụng miễn phí, thậm chí đối với những đối thủ cạnh tranh của họ như là AMI và Award. Ủy ban T13 phụ trách ATA sau đó chấp thuận tiêu chuẩn EDD và đưa nó vào những tài liệu ATA chính thức.
Bắt đầu năm 1994, phần lớn BIOS bắt đầu thực thi các phương pháp biên dịch CHS do Phoenix thiết kế, cho phép các ổ đĩa lên tới giới hạn BIOS 8.4G được hỗ trợ. Sửa lỗi liên quan đến những tham số ở mức BIOS như cylinder, head, sector để phù hợp với các thông số mà BIOS cho phép. Có hai loại biên dịch: một hoạt động qua một kỹ thuật được gọi là CHS bit-shift (thường được gọi là “large” hay “extended CHS” trong BIOS Setup), cái kia dùng một kỹ thuật được gọi là LBA-assist (thường được gọi là “LBA” trong BIOS Setup). Những loại này nói đến những phương pháp toán học khác nhau của việc thực hiện cơ bản cùng một việc: chuyển đổi một bộ các số CHS thành bộ kia.
Biên dịch CHS bit-shift thực hiện các số cylinder và đầu đọc nhưng không thay đổi số sector. Nó bắt đầu với các cylinder và đầu đọc vật lý (ổ đĩa được báo cáo), dùng một số phép chia và phép nhân, theo kịp với các số được thay đổi cho các cylinder và đầu đọc. Các sector cho mỗi giá trị rãnh ghi không được biên dịch và được chuyển mà không được thay đổi. Thuật ngữ bit-shift được dùng bởi vì phép chia và nhân thực hiện trong phần mềm BIOS bằng cách dịch chuyển các bit trong địa chỉ CHS.
Với biên dịch CHS bit, các tham số báo cáo ổ đĩa (vật lý) được nói đến như P-CHS và những tham số logic BIOS được sửa đổi được nhắc đến như L-CHS. Sau khi các thiết lập được thực hiện trong BIOS Setup, các địa chỉ L-CHS được tự động biên dịch ra P-CHS tại mức BIOS. Điều này cho phép hệ điều hành gửi những lệnh đến BIOS dùng các tham số L-CHS, mà BIOS tự động chuyển đổi thành P-CHS khi nó gọi ra ổ đĩa dùng các lệnh ATA. Bảng 7.21 thể hiện các quy luật cho tính toán biên dịch CHS bit-shift.
Biên dịch CHS bit – shift thì trên cơ sở chia sự đếm cylinder vật lý cho số lượng 2 để làm nó dưới giới hạn BIOS INT13h cylinder 1.024 rồi nhân đầu đọc với số lượng 2, để lại sự đếm sector không thay đổi. Số lượng 2 được sử dụng tùy thuộc việc đếm cylinder, như được chỉ ra trong Bảng 7.21.
Đây là một ví dụ của biên dịch CHS bit-shift:
Thí dụ này thể hiện một ổ đĩa với 8.000 cylinder và 16 đầu đọc. Sự đếm cylinder vật lý là cách trên giới hạn BIOS 1.024, vì vậy nếu biên dịch CHS bit – shift được lựa chọn trong BIOS Setup, kế tiếp BIOS chia sự đếm cylinder logic mới 1.000 dưới số tối đa 1.024. Do đếm cylinder được chia bởi 8, rối sự đếm đầu đọc được nhân cùng số, kết quả 128 đầu đọc, cũng dưới giới hạn BIOS có thể xử lý.
Vì vậy, mặc dù ổ đĩa báo cáo có 8.000 cylinder và 16 đầu đọc, BIOS và toàn bộ phần mềm (bao gồm cả hệ điều hành) thay vì thấy ổ đĩa như có 1.000 cylinder và 128 đầu đọc. Nhận xét rằng con số 63 sector/rãnh ghi thì đơn thuần không mang sự thay đổi. Kết quả là bằng cách dùng các tham số logic, BIOS có thể thấy ổ đĩa toàn bộ 4.13GB và sẽ không bị giới hạn chỉ 528MB đầu tiên.
Khi cài đặt một ổ đĩa, bạn không phải thực hiện phép toán biên dịch để chuyển đổi các cylinder và đầu đọc: BIOS làm một cách tự động. Tất cả bạn phải làm là cho phép BIOS tự động phát hiện các tham số P-CHS và kế tiếp cho phép biên dịch trong BIOS Setup. Chọn lựa biên dịch. Large hay ECHS trong BIOS Setup cho phép CHS bit-shift. BIOS thực hiện phần còn lại.
CHS bit – shift là sự sắp xếp nhanh và đơn giản (code-wise) có thể hoạt động với tất cả ổ đĩa, nhưng không may nó không thể biên dịch chính xác tất cả hình học ổ đĩa về mặt lý thuyết cho các ổ đĩa dưới 8.4GB. Để giải quyết điều này, một phần được thêm vào đặc điểm kỹ thuật ATA-2 yêu cầu một cách cụ thể các ổ đĩa báo cáo các dãy hình học chắc chắn cho phép biên dịch bit-shift hoạt động. Do vậy, tất cả ổ đĩa thích ứng với đặc điểm kỹ thuật ATA-2 (hoặc cao hơn) có thể được biên dịch dùng phương pháp này.
Theo "Nâng cấp và sửa chữa máy tính" Scott Mueller