PHƯƠNG PHÁP TRUY XUấT Dữ LIệU
thông tin về controller, thế nào là chuẩn giao
tiếp, nói về ATAPI,SCSI,IDE,Serial ATA , so
sánh hiệu năng...
Tổ chức luận lý của PC: Hệ điều hành luôn luôn phải làm một công việc quan trọng đó
chính là tổ chức và tìm kiếm dữ liệu trên đĩa cứng. Đối việc việc tổ chức và tìm kiếm
trên đĩa từ thì độ tương tác giữa hệ điều hành và đĩa cứng lại càng phải thật mật thiết !
Khác với việc đọc đĩa CD (chỉ cho phép đọc) , hệ điều hành chẳng phải quan tâm gì
đến việc xem lại tổ chức dữ liệu của CD bị thay đổi hay không.
Để tăng tốc và tính hiệu quả cho việc truy xuất những byte dữ liệu đặc thù trên đĩa từ,
hệ điều hành phải xây dựng cấu trúc thư mục và những chỉ mục diễn giải những gì mà
nó chiếm dụng, những phần free và những phần không nên được sử dụng nhằm tránh
lỗi vật lý cho đĩa từ. Kiểu thông tin của ổ đĩa thì được gọi là “định dạng luận lý” (ở đây
tôi sử dụng từ “ổ đĩa” để minh họa sự khác biệt giữa “nguyên cái ổ cứng” và 1 partition
trên ổ cứng đó nhằm tránh lầm lẫn giữa 2 khái niệm rất dễ lẫn lộn)
Để lấy vị trí một vùng nào đó trên đĩa cứng, bộ điều khiển ổ cứng sẽ sử dụng các đầu
đọc ở những mặt đĩa khác nhau , vị trí track, và vị trí sector như thế PC cũng phải chỉ
định vị trí của “ổ đĩa” theo cách tương tự. Tuy nhiện đó cũng chính là một điều rất bất
tiện cho hệ điều hành giao tiếp với đĩa cứng bằng ngôn ngữ mà bộ điều khiển có thể
hiểu được. Ví dụ đơn giản đó là số sector, số track và số mặt từ của mỗi đĩa cứng đề
khác nhau (khác loại)
Chính vì lẽ đó mà hệ điều hành phải xác định dữ liệu dựa trên một dãy số liên tục có hệ
thống cho phép nó có thể lưu trữ thông tin các phần của ổ cứng. Để giảm tải cho đầu
đọc hệ điều hành phải giám sát ổ cứng ở cấp độ sector, lớp cao nhất mà hệ điều hành
phải làm việc khi cần chính là một chuỗi nhiều sector gọi là clusters. Số lượng sector
trong một cluster phục thuộc vào dung lượng của ổ cứng và được xác định khi ổ đĩa
được định dạng.
Hệ điều hành tổ chức thành “ổ đĩa luận lý” thành 2 vùng chính: vùng hệ thống và vùng
dữ liệu. Vùng hệ thống bao gồm các sector để boot (boot sector), bảng hệ thống thông
tin file (FAT) và thư mục gốc. Vùng dữ liệu thì dùng để chứa file và folder.
Boot-sector: nơi lưu trữ boot record. Nó chính là sector vật lý đầu tiên trên đĩa mềm
(sector 0) hoặc sector khởi đầu của một ổ đĩa luận lý (một phân vùng trên đĩa cứng đã
được định dạng). Boot sector xác định cấu trúc của ổ đĩa (sector size , cluster size…).
Nếu là ổ đĩa boot được , nó sẽ cũng chứa theo chương trình khởi động hệ điều hành.
C.Disk controller , phương pháp truy xuất dữ liệu và chuẩn giao tiếp đĩa cứng:
Bộ điều khiển ổ cứng (disk-controller) nắm giữ toàn quyền điều khiển ổ cứng. Nó cho
phép CPU và ổ cứng có thể làm việc tốt với nhau. Có rất nhiều chuẩn giao tiếp đã ra
đời và phát triển để xác định nguyên tắc làm việc giữa ổ cứng và CPU. Những chuẩn
dưới đây đại diện cho những chuẩn thông dụng nhất thường được sử dụng giữa bộ
điều khiển và ổ cứng:
-ST-506/412 : tiêu chuẩn giao tiếp được phát triển bởi hãng Seagate và được sử dụng
vào thời kì những máy IBM sơ khai. Chuẩn này ngày nay đã hoàn toàn được thay thế
bởi các chuẩn nhanh hơn như IDE,EIDE và SCSI
-Enhanced Small Device Interface (ESDI): giao diện bộ điều khiển ổ cứng phải cần một
thiết bị trợ giúp riêng biệt. Là một chuẩn thay thế cho ST-506/412 tuy nhiên nó cũng đã
lỗi thời và đã bị các đàn em IDE,EIDE và SCSI thay thế.
-Small Computer System Interface (SCSI): vẫn thường được gọi vui là “skuzzy” (từ chữ
SCSI mà ra). Là một loại chuẩn giao tiếp thường được dùng để kết nối PC đến thiết bị
khác như là ổ cứng, máy in, scanner và CD-ROM. Hầu hết các card SCSI đều không
cần phải biết về kiểu thiết bị mà nó liên kết mà chỉ cần biết duy nhất một điều “thiết bị
đó làm việc được với SCSI”. Ta có thể kết nối lên đến 7 thiết bị SCSI chung với nhau và
rồi kết nối chúng đế một cổng (port) SCSI trên máy vi tính, cứ như là một cấu hình
thường được gọi là “dây chuyền bậc nhất” (daisy chain).
-Intergrated Drive Electronics (IDE): giao diện bộ điều khiển ổ cứng kết hợp với bộ điều
khiển điện tử trên board của ổ cứng. Giao tiếp EIDE là một phát triển gần nhất của IDE.
IDE kết hợp chặt chẽ những hoạt động trước kia thuộc quyền của của card điều khiển
riêng bây giờ đã được tích hợp trực tiếp vào bên trong ổ cứng (nằm trên board). Kết
quả là một ổ cứng IDE có thể sử dụng bộ kết nối IDE trên bo mạch chủ mà không cần
đến bus slot. Máy vi tính chỉ cần IDE card khi và chỉ khi trên bo mạch chủ không được
tích hợp bộ kết nối IDE. Card IDE cung cấp một kết nối vật lý thông qua một bus slot và
có thể cung cấp thêm các chức năng điều khiển. Một ổ cứng IDE chỉ có thể chứa được
cao nhất là 528 MB dữ liệu. Với chuẩn giao tiếp mới hơn, Enhanced IDE (EIDE), ổ
cứng có thể chứa đến 8.4 GB.
Những ổ cứng IDE có dung lượng vượt quá 504MB đôi lúc phải cần đến những phần
mềm chuyên biệt như là Ontrack’s Disk Manager hoặc là Micro House’s EZ-Drive, bởi
vì có rất nhiều máy vi tính không có BIOS hoặc controller hỗ trợ những ổ cứng IDE
dung lượng lớn.
-Extended Intergrated Drive Electronics (EIDE): chuẩn này còn được gọi là “Enhance
IDE”, là một chuẩn giao tiếp gíup cho bộ điều khiển ổ cứng có thể kết nối khá nhiều
thiết bị lưu trữ ( ổ cứng dung lượng lớn, CD-ROM và băng từ) với máy tính. EIDE là
một bước phát triển của chuẩn IDE.
Trong các chuẩn trên thì chỉ có ST-506/412 và ESDI là rất khó chịu với ổ cứng và phải
cần bộ điều khiển riêng biệt.
Những chuẩn trên không chỉ đơn thuần khác biệt ở chỗ dung lượng mà nó có thể truy
xuất được mà còn là tốc độ của chúng. Ví dụ ST-506/412 có thể truyền đi khoảng 5-7.5
megabit/giây trong khi đó EIDE có thể truyền đi đến 16.6 megabit/giây.
Ổ cứng SCSI là ổ cứng có tốc độ nhanh nhất trong các chuẩn ổ cứng bởi vì bộ điều
khiển SCSI (hoặc host adapter) có CPU riêng để quản lý việc truyền nhận dữ liệu và
công việc của các thiết bị liên quan mà không cần sự giúp đỡ của CPU chính của hệ
thống. Hệ thống của bạn sẽ chạy nhanh hơn rất nhiều do CPU chính không cần phải
quan tâm đến việc truyền tải mà dành sức cho các công việc khác (đây lý do chính
khíên cho các thiết bị chuẩn SCSI luôn luôn mắc tiền hơn các chuẩn khác)
Thêm nữa là ổ cứng SCSI không cần phần bảo vệ và không mắc phải lỗi dịch sector
(điều cho đến bây giờ vẫn mắc phải trên ổ cứng EIDE)
Ổ mềm sử dụng giao tiếp điều khiển rất chậm từ lúc mà chúng xuất hiện cho đến giờ. Ổ
mềm chỉ có thể truyển nhận đựơc cao nhất là 500 kbit/giây nhưng thông thường là
350kbit/giây.
Ổ CD-ROM có thể sử dụng chuẩn EIDE,SCSI và một số chuẩn khác. Những card
adapter (tiếp hợp - điều phối) dành cho nhiều ổ CD-ROM sử dụng một tập hợp chuẩn
SCSI sao cho chỉ thuộc một thiết bị duy nhất.
Đâu là chỗ khác biệt giữa SCSI và EIDE ? Ngoài một điểm khác biệt khá rõ đã được
trình bày ở phần trên còn điểm sau:
-SCSI thể hiện sức mạnh qua việc cho phép một loạt thiết bị có thể khai thác một
đường bus trong cùng một thời điểm và không cần sử dụng bus nếu thiết bị không yêu
cầu. Đây là một điểm rất lợi thế của SCSI ! Trái lại so với SCSI thì EIDE chia thành 2
kênh bao gồm Primary và Secondary và hai kênh này sử dụng hai đường bus khác
nhau. Tuy nhiên trong mỗi kênh EIDE lại chia thành 2 cấp Master và Slaver cho 2 thiết
bị được gắn cùng một cáp trên một kênh. Vì cả 2 thiết bị chỉ được phép sử dụng 1
đường bus mà EIDE lại không có khả năng cho phép nhiều thiết bị cùng sử dụng 1
đường bus trong cùng một lúc nên các thiết bị này sẽ tuần tự lần lượt được cấp phép
sử dụng bus. Đây là một điểm rất hạn chế của EIDE đặc biệt nếu bạn gắn ổ cứng
chung với CD-ROM trên cùng 1 kênh thì tốc độ sẽ giảm đi rất nhiều lý do như sau : ổ
CD-ROM có tốc độ rất chậm như vậy thời gian mà CD_ROM sử dụng đường bus sẽ rất
lâu từ đó việc cấp quyền sử dụng cho ổ cứng sẽ bị hạn chế dẫn đến tốc độ của máy
châm hẳn đi. Đây cũng là lý do giải thích việc người ta vẫn khuyên bạn nên gắn ổ cứng
của mình và kênh Primary ổ CD-ROM vào kênh Secondary và nếu có từ 2 cổ cứng trở
lên thì tốt nhất là nên gắn các ổ cứng có tốc độ tương đương với nhau trên cùng 1
kênh.
Ngoài ra chuẩn SCSI còn có nhiều kiểu khác nhau: loại 8bit thì cần cáp 50 sợi, loại 16
bit thì cần cáp 68 sợi (SCSI mở rộng). Nhịp (clock) có thể là 5 MHz (SCSI 1) , 10MHz
(FAST SCSI) , 20 MHz (Fast20 – ultra SCSI) , 40 MHz (Ultra 2-SCSI) hoặc 80Mhz
(Ultra 3-SCSI).
Sau đây là bảng thống kê khả năng truyền dẫn dữ liệu của chuẩn SCSI:
---SCSI Bus Clock----|----8 bit 50 sợi-------|-----16 bit 68 sợi-(mở rộng)—
5 MHz (SCSI 1) 5 Mgbyte/s Không hỗ trợ
10MHz (Fast SCSI) 10 Mgbyte/s 20 Mgbyte/s
20MHz(Ultra SCSI) 20 Mgbyte/s 40 Mgbtye/s
40Mhz (ultra2 SCSI) 40 Mgbyte/s 80 Mgbyte/s
80MHz(ultrả SCSI) 80 Mgbyte/s 160 Mgbyte/s
Trong bộ tutorial này tôi sẽ đề cập vắn tắt các công nghệ Ultra DMA/ATA/ATAPI/PIO
đồng thời so sánh hiệu năng giữa chúng chứ không phân tích sâu. Riêng với chuẩn
giao tiếp Serial ATA , tôi sẽ đi sâu hơn vào các khía cạnh kỹ thuật vì chuẩn Serial ATA
được đánh giá là “chuẩn của tương lai”.
Bản thân ATA/Ultra DMA/PIO không được gọi là “chuẩn” mà là công nghệ giao diện
truy xuất dữ liệu. Khi ổ cứng được làm bởi các công nghệ này (tuỳ theo từng thế hệ) thì
khả năng truy xuất của chúng sẽ khác nhau (tương tự như chuẩn SCSI cũng chia thành
nhiều loại). Công nghệ ATA chính là tiền thân của công nghệ Ultra ATA / Ultra DMA
ngày nay. ATA ra đời từ lúc chuẩn IDE bắt đầu lộ diện chinh phục thị trường sản phẩm
lưu trữ. ATA là từ viết tắt của Address Transfer Area - Định vị vùng truyền dẫn và Ultra
DMA – Ultra Direct Memory Access – Định hướng truy xuất bộ nhớ cao cấp. ATA chậm
hơn rất nhiều so với Ultra ATA. Ultra ATA được phát triển dựa trên nền tảng công nghệ
Ultra DMA/33 ra đời bởi sự nỗ lực kết hợp thiết kế giữa Intel , Quantum , Seagate nhằm
cung cấp một thế hệ giao tiếp mới cho các hệ thống máy tính để bàn (desktop PCs).
Direct Memory Access (DMA): cho phép định hướng truyền nhận dữ liệu trực tiếp đến
bộ nhớ hệ thống mà không cần thông qua CPU hệ thống. DMA gia tăng tốc độ truyền
tải bằng cách sử dụng bộ điều khiển DMA để quản lý dữ liệu truyền nhận nhanh hơn
nhiều so với việc điều khiển thông qua CPU. Hệ điều hành cần phải cài đặt các driver
tương thích DMA trước khi sử dụng chức năng DMA.
Bus Mastering DMA: cho phép card giao diện ,hoặc bộ điều khiển ổ cứng, quản lý sự
truyền nhận dữ liệu từ ổ cứng trực tiếp đến bộ nhớ chính của hệ thống. Những nhà sản
xuất bo mạch chủ cung cấp các driver của bus mastering hỗ trợ điều khiển DMA bởi
các card giao diện (bộ điêu khiển) tương thích với bus mastering.
Ultra DMA (UDMA): là phiên bản cuối cùng của giao thức ATA Bus Mastering DMA. Nó
nâng tốc độ truyền tải của ATA bus từ 16.6 Mgbyte/s lên 33 Mgbyte/s. Công nghệ
ATA/ATAPI 4 có khả năng kiểm tra lỗi nhằm đảm bảo tính toàn vẹn cho dữ liệu ở tốc độ
cao. Cần phải lưu ý là chuẩn giao thức SCSI Ultra 2 cũng sử dụng một giao thức bus
Mastering DMA mới cho nên đôi khi người ta cũng quy nó vào là Ultra DMA.
Điểm khác biệt giữa Ultra DMA/ATA và ATA không hẳn chỉ ở tốc độ và việc Ultra DMA
phải có driver tương thích mà còn thể hiện ở sợi cáp của 2 loại này cũng khác nhau. Về
mặt kích thước và hình dáng thì cáp ATA và Ultra ATA giống y hệt như nhau (tuy nhiên
cũng có một số mainboard - nhất là các thế hệ sau này - thường làm đầu connector của
cáp Ultra ATA là màu xanh da trời) nhưng về cấu trúc lại rất khác nhau. Từ ATA cho
đến Ultra ATA 2 sử dụng cáp 40 sợi , mỗi sợi có 1 lõi và nối với 1 pin; cáp Ultra DMA
cũng có 40 sợi (vì tương thích chuẩn EIDE/IDE) nhưng khác ở chỗ mỗi sợi lại có đến 2
lõi và được bện chặt vào nhau nối vào 1 pin. Nếu cáp ATA->Ultra ATA 2 gồm 40 lõi và
mỗi lõi có nhiệm vụ truyền dẫn dữ liệu riêng thì với cable Ultra DMA có đến 80 lõi trong
đó 40 lõi làm chức năng truyền dữ liệu 40 lõi còn lại nằm tuần tự giữa các lõi truyền dữ
liệu làm nhiệm vụ “dây đất” và tránh lỗi toàn vẹn dữ liệu do tín hiệu nhiễu gây ra khi tần
số quá cao.
Trong quá trình truyền nhận không phải lúc nào ổ cứng cũng đạt được hết công suất
truyền nhận vì những tín hiệu nhiễu luôn là trở ngại rất lớn ảnh hưởng đến quá trình
truyền dữ liệu trên cáp chuẩn. Những điểm sau đây khiến ổ cứng không thể phát huy
hết sức mạnh của nó:
-Cáp quá cũ , là dạng cáp chất lượng kém hoặc tháo ráp quá nhìêu dẫn đến cáp bị rách
ngầm.
-Công suất của máy quá thừa (công suất của nguồn) sẽ tạo ra từ trường gây nhiễu tín
hiệu. Những hệ thống có quá nhiều ổ cứng gắn chồng lên nhau, có từ 2 nguồn cấp điện
trở lên hoặc là điện trường từ màn hình CRT.
-Hệ thống bị over-clock vượt quá mức độ cho phép của nhà sản xuất gây ra lỗi truyền