Board logo

标题: XDMA 1.3 [打印本页]

作者: johnsonlam     时间: 2005-8-10 21:31    标题: XDMA 1.3

對 不 起 , 不 太 懂 打 簡 體 ...

體 積 超 小 的 XDMA v1.3 版 已 經 有 了 !

Source code 及 binary 已 經 在 ZIP 檔 內 , 請 在 小 弟 網 頁 下 載:

http://johnson.tmfc.net/freedos

加 入 了 對 ALI 晶 片 的 偵 測 , 由 David Muller 兄 提 供 , 感 謝 !

如 果 有 甚 麼 問 題 , 請 電 郵 我:

johnson_tmfc.net ( 換 掉 底 線 )

作者: JonePeng     时间: 2005-8-11 01:03    标题: XDMA.SYS在我的机器上比UDMA.SYS稍慢

呵呵,繁体字没问题,此论坛是繁体字界面的。欢迎香港的DOS迷朋友!

XDMA 确实可以加快硬盘读写速度,但其实一些朋友在制作启动盘时就应用到了,像GrubDisk里面就用了XDMA.SYS。而Wengier的MSDOS 7.1超级启动盘则坚持用UDMA.SYS,也是一个DOS下的UltraDMA驱动。我刚才通过简单的测试,结果发现在config.sys和autoexec.bat配置基本相同的情况下,装载了XDMA.SYS后的读写速度比UDMA.SYS稍慢。

测试环境:MSDOS 7.1
基本配置:620K左右的常规内存,加载Smartdrv,内存总容量是256M,硬盘是Maxtor 80G,Intel 815EP主板。

测试目标:在DN(DOS Navigator)下分别复制175M的单个文件和一批共约64M的图片

测试结果(以秒表计时):

〔XDMA.SYS〕
175M 单个文件:15.5 秒
64M 一批图片:7.8 秒

------------

〔UDMA.SYS〕
175M 单个文件:13.3 秒
64M 一批图片:6.8 秒

结果表明两者在复制文件时耗时比较接近,但 UDMA.SYS 更胜一筹,尤其是在复制单个大文件时。

造成测试结果中的差距的原因可能是两个驱动的差别。我的硬盘支持ATA-133,但主板由于是i815EP芯片组,最多只支持ATA-100,UDMA.SYS 在加载时屏幕显示“Ultra Mode 6 ATA 133”,而XDMA.SYS则提示“ATA 100”,两种测试结果之间的差距正是ATA 133和ATA 100的差别。那么即使主板不支持ATA 133,UDMA.SYS也能充分发挥硬盘的读写性能。

另外,XDMA 1.3版是2546字节,而UDMA是2038字节,UDMA显得更小巧精致。也许这就是为什么Wengier的MSDOS 7.1启动盘一直采用UDMA.SYS的原因吧?

[ Last edited by JonePeng on 2005-8-11 at 01:20 ]
作者: Wengier     时间: 2005-8-11 01:38
本論壇采用UTF-8編碼,就是為了能更好得讓繁體中文、簡體中文同時顯示,使得大家能更好的交流。確實,本論壇,包括最上方的字樣等,均是Traditional Chinese。
作者: johnsonlam     时间: 2005-8-11 14:55


  Quote:
Originally posted by JonePeng at 2005-8-11 01:03 AM:
呵呵,繁体字没问题,此论坛是繁体字界面的。欢迎香港的DOS迷朋友!

感 謝 !
真 希 望 國 內 多 些 朋 友 開 發 DOS 的 軟 體 ﹐ 現 在 稍 嫌 不 足

  Quote:
XDMA 确实可以加快硬盘读写速度,但其实一些朋友在制作启动盘时就应用到了,像GrubDisk里面就用了XDMA.SYS。而Wengier的MSDOS 7.1超级启动盘则坚持用UDMA.SYS,也是一个DOS下的UltraDMA驱动。

都 是 來 自 同 一 位 作 者: Jack R. Ellis ﹐ 是 我 的 朋 友

  Quote:
我刚才通过简单的测试,结果发现在config.sys和 autoexec.bat配置基本相同的情况下,装载了XDMA.SYS后的读写速度比UDMA.SYS稍慢。

這 就 有 點 奇 怪 ﹐ XDMA.SYS 是 不 含 80386 CPU 測 試 的 "輕 便 裝" ﹐ 應 該 再 快 點 才 是 ... 你 可 有 用 參 數 "/o" (overlay)? 速 度 應 該 更 快 !

我 已 經 寫 了 電 郵 給 他 ﹐ 還 有 ... UDMA 是 過 時 的 東 西 ﹐ 因 為 設 計 得 不 太 好 ﹐ 再 改 良 時 有 點 阻 礙 ﹐ Jack 才 放 棄 重 寫 的 ﹐ 為 了 穩 定 係 都 是 轉 用 XDMA 好 一 點

[ Last edited by johnsonlam on 2005-8-11 at 15:02 ]
作者: johnsonlam     时间: 2005-8-11 14:59


  Quote:
Originally posted by Wengier at 2005-8-11 01:38 AM:
本論壇采用UTF-8編碼,就是為了能更好得讓繁體中文、簡體中文同時顯示,使得大家能更好的交流。確實,本論壇,包括最上方的字樣等,均是Tradition ...

謝 謝 !

為 了 繁 簡 問 題 ﹐ 看 見 這 裡 也 吵 過 一 陣 ﹐這 不 是 "我 們" 的 錯 ﹐ 位 甚 麼 要 "我 們" 吃 這 苦 果 呢 !

我 現 在 用 FireFox ﹐ 找 到 了 插 件 "同 文 堂 (Tong Wen Tong)" ﹐ 繁 簡 互 換 很 方 便 ! 也 應 該 大 力 推 薦 給 各 位 !
作者: johnsonlam     时间: 2005-8-12 16:02


  Quote:
Originally posted by JonePeng at 2005-8-11 01:03 AM:
结果表明两者在复制文件时耗时比较接近,但 UDMA.SYS 更胜一筹,尤其是在复制单个大文件时。

XDMA/UDMA 作 者 Jack Ellis 給 我 的 電 郵 ... 有 點 難 譯 ﹐ 因 為 這 技 術 不 簡 單 啊 ...

>>Johnson -- Re: your friend from the China DOS union, if his chipset
is "limited to ATA-100" but works at ATA-133, this is a BIOS issue!

ATA-100 的 晶 片 組 若 測 出 ATA-133 的 話 ﹐ 是 BIOS 的 問 題 !

>>The UltraDMA drivers "read" what speed is set for each disk.   Such
settings are made by the BIOS before any drivers are loaded and are
SUPPOSED to be the BEST setting that the chipset and disks can run.

UltraDMA 驅 動 (泛 指 udma/xdma) 會 測 出 硬 盤 的 速 度 ﹐ 這 速 度 是 由 BIOS 所 測 出 的 ( 在 任 何 驅 動 載 入 前 ) ﹐ 這 "應 該" 是 硬 盤 和 晶 片 組 兩 者 的 "最 佳" 設 定

>>If your friend runs O.K. at ATA-133, tell him to thank Quon Yin and
the writer of his BIOS, since his i815EP chips must run BETTER than
he is told!

如 果 JonePeng 兄 在 顯 示 ATA-133 仍 然 沒 問 題 ﹐ 那 就 要 感 謝 觀 音 和 BIOS 的 作 者 了 ﹐ 因 為 那 i815EP 晶 片 已 超 出 本 來 的 效 能

>>Also, XDMA uses virtually the SAME I-O logic as UDMA2
but XDMA's run-time logic is 64 bytes LESS, due to changes in "CHS"
code, etc.   This can ALTER where input buffers are in memory.

XDMA 的 I-O 邏 輯 和 UDMA2 大 致 相 同 ﹐ 但 XDMA 因 轉 變 了 "CHS" 的 [執 行 邏 輯 ﹐ 因 此 少 用 了 64 bytes ﹐ 這 會 影 響 記 憶 體 內 的 輸 入 緩 充 區

>>An UltraDMA RULE is that I-O may not cross 64K boundaries, as chips
do NOT increment address bits 16-31 during DMA; the 1994 UltraDMA spec
IS an "El Cheapo" from Intel!   So, DOS I-O buffers must be ALIGNED
for UltraDMA, in ways the program developers did NOT expect!

UltraDMA 的 規 則 是 I-O 不 能 越 過 64K 邊 界 ﹐ 因 晶 片 在 DMA 工 作 時 不 會 對 16-31 地 址 位 進 行 "增 加" 動 作 ﹐ 那 個 1994 年 的 UltraDMA 規 格 是  Intel "馬 虎 作" ﹐ 所 以 DOS I-O 緩 充 一 定 要 和 UltraDMA 一 致 ﹐ 這 令 到 很 多 編 程 人 員 都 感 到 "意 料 之 外" !

>> Have your friend re-arrange how he loads his system with XDMA
(load more drivers into upper-memory, etc.), so input buffers
HOPEFULLY are in one 64K memory area, and direct-DMA input
can occur.

JonePeng 兄 應 該 重 新 調 整 一 下 XDMA 下 驅 動 的 載 入 ( 盡 量 多 載 入 驅 動 程 序 到 UMB ) ﹐ 希 望 輸 入 緩 充 區 正 好 落 在 一 個 64K 之 內 ﹐ 這 樣 direct-DMA 才 有 效

>>Otherwise, a "misaligned" input buffer forces XDMA to use its XMS "local buffer" for input, followed by an XMS move (up to 30% slower on some CPUs).
Output-overlap is always "buffered" and is unaffected by alignment.

若 果  輸 入 緩 充 區 不 一 致 的 話 ﹐ XDMA 將 會 被 逼 用 "local 緩 充" 再 加 一 個 XMS 搬 移 ( 某 些 CPU 會 慢 上 30% ) ﹐ 輸 出 則 會 慣 常 地 儲 存 到 緩 充 區 ﹐ 不 受 影 響

>>Note also that XDMA resides in 1280 bytes, UDMA2 in 1344 bytes, and
UDMA in 640 bytes (V7.0 UDMA or below were 608), so performance may
change as each driver may give DIFFERENT buffer "alignment"!   Also

由 於 3 個 驅 動 的 大 小 不 一 ﹐ 那 個 緩 充 區 亦 未 必 一 樣 (對 正)

even on my 400-MHz system, I get speed-test results from 109 to 122
MB/sec.   Small CPU/controller/disk clock variations DO cause speed
changes from run to run.   Tell your friend not-to-worry about such
things; the UltraDMA drivers ARE doing the BEST they can!   Even on
buffered input, they are at LEAST 5 times quicker than a BIOS doing
"PIO mode"!    Best wishes!      Jack R. Ellis

Jack 的 400MHz 機 器 測 出 109 至 122 MB/秒 ﹐ 一 些 CPU/硬 盤 控 制/硬 盤 時 鐘 的 差 異 亦 會 影 響 速 度 ﹐ Jonepeng 兄 請 勿 擔 心 ﹐ UltraDMA 驅 動 已 經 做 到 最 好 ﹐ 就 算 是 輸 入 緩 充 ﹐ 也 比 BIOS 的 PIO 快 5 倍 以 上 了 。
作者: cr6521     时间: 2010-11-26 10:08
谢谢