PDA

View Full Version : DMA mode to PIO mode



haule_nth
08-02-2005, 10:17
có pác nào biết cái PIO mode là cái gì không
em update cái firmware cho ổ dvd nó nói fải chuyễn từ DMA sang PIO chẳng biết chuyển thế nào

huyphuc1981_nb
11-02-2005, 18:18
Mình là ma mới, bị các đại gia gõ đầu quá trời. Nhưng thay vì cãi nhau, mình nghĩ là làm việc gì đó hay hơn, nên gõ mấy dòng này.
DMA là thâm nhập trực tiếp bộ nhớ.
PIO là vào ra lập trình được.
Với các thiết bị cắm vào ATA IDE, chọn chế độ trong CMOS, yêu cầu, main board và thiết bị (như ổ cứng chẳng hạn), đều phải hỗ trợ và hiểu nhau. Hai chế độ đều có mục đích là tăng tốc truyền dữ liệu giữa 2 hay nhiều CPU. Các thiết bị chức năng đều có CPU riêng, như ổ cứng chẳng hạn, các bác xem trên bảng mạch, sẽ thấy CPU, ROM BIOS và RAM của nó, cùng là IO (trên các thiết bị chức năng, còn được gọi là gate).
Để hiểu kỹ hơn về vấn đề này, chẳng còn cách nào khác là tìm hiểu kỹ hơn về assembly. DMA có từ CPU 286. Trước khi có DMA để trao đổi dữ liệu giữa 2 CPU, CPU chính (master, như là CPU máy tính), có hai hệ lệnh để trao đổi thông tin. Một là các lệnh in-out đơn, 2 là các lệnh chuyển chuỗi. DMA thêm khả năng xen kẽ giữa các chu kỳ CPU chính, CPU phụ có thể chiếm bus và chuyển dữ liệu, làm nhàn CPU chính.
Khi đọc đĩa, có nhiều phương pháp làm tăng tốc, trong đó quan trọng nhất là phương pháp thang máy, cache (ở đây mình nói cache phần cứng, không phải smarrtdrv).
Như thế này, có hai điều làm tăng tốc:
Một là các lệnh ghi được tích lũy, khi nào nhiều nhiều lệnh ghi thì ghi một thể. Các lệnh đọc cũng vậy, khi đọc một điểm, người ta đọc luôn các điểm xung quanh, nếu cần đọc tiếp thì đã có sẵn. (cache)
Hai là, nếu có nhiều lệnh đọc ghi, người ta băm nhỏ chúng ra rồi sắp lại trọng một chuỗi lệnh mới, sao cho các điểm gần nhau trên đĩa được đọc ghi gần nhau về thời gian. (programing IO)
Hai phương pháp trên thích hợp tăng tốc đọc đĩa cơ, có 2 đặc điểm là rất chậm so với truyền dữ liệu điện tử và tốc độ tìm trống từ rất chậm so với tìm cung từ. Chúng đòi hỏi lập trình lại các lệnh đọc ghi. Do đó, chúng cần khả năng lập trình được của cổng (cụ thể ở đây là ATA IDE) và một protocol để hai thiết bị hai đầu cổng (main board và ổ) truyền lệnh cho nhau, protocol đó là các kiểu PIO. PIO còn mở ra một khả năng nữa là ánh xạ lại địa chỉ vật lý trên ổ, từ đó có RAID và một "phụ phẩm": mã hõa dữ liệu trên ổ. Máy IBM chẳng hạn, với thông tin mã hóa (mật khẩu) lưu trên chip bảo mật (24CNR02), người sử dụng mất ổ cũng không mất dữ liệu. Do cần thích hợp với nhau cái protocol (ngôn ngữ thiết bị), nên cần update firmware khi lắp ổ vào máy. HDD thì cấu tạo chung, nên main tự làm lấy, DVD thì chưa chuẩn, nên dùng đĩa.

PMT
11-02-2005, 21:57
Ghê gớm thật, đọc xong mà PMT cứ rối tinh rối mù chả hiểu gì cả.
@haule_nth:
PIO(Programmed Input/Output) là phương thức truyền dữ liệu qua lại giữa ổ đĩa và bộ nhớ RAM. Nó chuyển từng khối dữ liệu từ nguồn (có thể là ổ đĩa hay RAM) sang thanh ghi của CPU rồi sau đó CPU chuyển dữ liệu tới đích (rất hao tài nguyên CPU khi chuyển dữ liệu).
DMA(direct memory access) chuyển dữ liệu trực tiếp giữa ổ đĩa và RAM. CPU chả làm quái gì cả.
Để chuyển từ DMA sang PIO, bạn vào Device Manager->IDE ATA/ATAPI Controllers->Chọn kênh Primary hay Secondary tùy theo ổ DVD của bạn cắm ở kênh nào->Advance Settings->Tùy theo ổ DVD của bạn là Master hay Slave mà chọn thiết bị tương ứng, chỉnh lại thành PIO. Đây là dành cho WinXP, win khác cũng na ná vậy.

huyphuc1981_nb
11-02-2005, 22:22
Bạn PMT quan niệm máy chỉ có một CPU nên không thấy vai trò của DMA. Thực tế, CPU chính giao lện DMA cho DMA controler, và chính cái này giao tiếp với các CPU phụ, hay là các chip CPU của thiết bị: CPU ổ cứng, CPU card. DMA bi giờ chỉ là tương thích đời cũ, chạy over các bridge controler.
PIO có thể hiểu rõ hơn thế này, không assembly nữa vậy, bạn PMT là nhân viên bưu điện. Bạn phải phân phối báo cho 3 hãng Nhân Dân, Quân Đội và An Ninh. Báo được đưa đến cho 3 nhà trong ngõ: 1,2 và 3. Thế thì theo lệnh tòa báo (các phần mềm trong máy), bạn lấy Nhân Dân, đem đến nhà 1, 2 rồi 3 (các sector trên đĩa). Xong rồi bạn lại về lấy báo Quân Đội, thực hiện xong về lấu báo An Ninh. Điều đó mô tả chương trình Nhân Dân đọc 1 tập tin, chương trình Quân Đội đọc một tập tin và chương trình An Ninh đọc tập tin cuối, các tập tin phân mảnh ở 3 trống từ 1,2 và 3. Nếu có PIO, sau khi qua PIO, bạn lấy cả 3 lệnh, băm nhỏ ra, đi qua nhà 1 đưa cả 3 tờ, qua nhà 2 cả 3 tờ và nhà 3 như vậy.
Đó là nhập nhiều lệnh vào, băm nhỏ, nhập thành các lệnh mới để tăng tốc.

PIO cần tương thích cả main và đĩa, nên gặp DVD lạ, cần update firmwave DVD, đó là protocol (ngôn ngữ thiết bị) cho DVD mà hợp với mother main board. Khi đã update rồi, thì vào CMOS mà làm như trên. Đĩa cứng thì thông dụng và cũ như quả đất, nên bỏ qua khâu update (main tự làm).

kimnguyen
12-02-2005, 00:35
Theo tui biết thì DMA mode nhanh hơn PIO mode nhiều, các bạn cài mấy cái driver,soft quản lý các kênh IDE cho chipset SB sẽ thấy

huyphuc1981_nb
12-02-2005, 01:12
Một số trường hợp, các chuẩn giao tiếp phát triển cạnh tranh nhau mà, lúc thằng này thắng, lúc thằng kia.
Bây giờ không còn DMA nữa, DMA chỉ là giả lập tương thích đời cũ của các bridge, bọn này lại là chuẩn giao tiếp phần mềm của các bus: RAM bus, host bus. Host bus nay lại tách ra front bus của CPU và tiến bộ nhanh khủng khiếp: RAM PC3200 đạt 533, CPU đạt 800. Card PCI express đạt 64bit x 133 MHz.
Trong khi đó, thay vì PIO bằng main, bây giờ, các CPU trên bảng mạch đĩa cứng rất mạnh, chúng tự PIO lấy với phần cơ, thậm chí dùng giao tiếp tiên tiến ****** : chip tiên tiến làm thay nhiệm vụ của cable hay hỏng.
Thế nên với ổ cứng, mọi việc điều khiển cơ giao hết cho bảng mạch có RAM và CPU lớn, main chỉ còn nhiệm vụ giao tiếp với bảng mạch thôi, đĩa cứng khác gì một cái card nữa, thì dùng bridge cho tiện. Nhưng với DVD thì khác, với dung lượng lớn, tốc độ đọc cơ vẫn rất chậm và chuẩn giao tiếp chưa thống nhất thì PIO là một phương tiện để thống nhất main và ổ đĩa. Việc này giống như RAID, khi chạy đĩa cài RAID trên bus mới, nó update card và main.
các máy server đit 6 của IBM (206 thay cho 205, 226 thay 225, 236 thay 235 và 336 thay 335) bây giờ lưỡng giữa hai đường. Server là máy có bus tốt nhất trong số các máy ít CPU. Mà chúng còn lưỡng:
PIO khủng khiếp là SCSI 320 được giữ như cũ bên cạnh SATA mới hoàn toàn bridge. (SATA không thay nóng được nhưng giới hạn đến TB 1.3 cho 236)
RAID card cắm vào bus RAM (RAID 7 hỗ trợ bridge) song song với dùng bus PCI express (RAID 6, SCSI, một thứ siêu PIO)
Đó là hậu quả của việc không bus nào hơn hẳn, IBM bắt cá hai tay cho tương lai gần.
----
Thêm chút, phụ phẩm của cải tiến bus 64: RAM mirror thay nóng bằng kill chip.

U.F.O
04-03-2010, 04:03
Túm lại nên xài DMA hay PIO