這一篇文章是得到瑞麗科技的彭先生（JohnsonPeng）幫助，才得以完成。彭先生寄給我的信中，大略的敘述了 TDMA、DDMA、PC/PCI 的作用。而大家也可以看出，這似乎是一封與某家廠商技術詢問的信件，所以文末的說法大家就不用覺得奇怪了。 我將原文刊出，且野人獻曝自己來翻譯，如有翻譯錯誤，還請不吝給予指正，謝謝。 TDMA is the term ESS use for their own DMA scheme.
TDMA 是 ESS 公司自己的 DMA 專業術語。 All these terms you are asking are related to DMA "Emulation" on PCI bus. As you know, Sound Blaster use DMA bus transfer on ISA bus and the programs(DOS Games) has to program the ISA DMA Controller to play the sound. Therefore, to make SB work on PCI bus for the sake of ISA DMA, FM801 has to handle DMA emulation.
你所問的這些專業術語，都與 DMA 在 PCI 匯流排上的模擬有關。相信大家都知道，Sound Blaster 在 ISA 匯流排上傳輸，而 DOS 下的遊戲會對 ISA 匯流排上的 DMA 控制器做設定，使得遊戲能夠出現聲音。因此，為了要使 Sound Blaster 能夠在 PCI 匯流排上以 ISA DMA 的方式工作，FM801 必須處理 DMA 模擬。 For SB on PCI, we do provide different kinds of scheme to resolve this DMA on PCI issues. We provide Legacy 1, Legacy 2, DDMA and PC/PCI 4 different schemes. The reason to have 4 different kinds of scheme is that the system chipset(north-bridge and south bridge) has different natures, we have one mode running well for all different kinds of chipsets, and the other 3 modes are set to run on specific chipset. For example, Intel Tx chipsets support DDMA, but not PC/PCI. And Intel Lx chipsets support PC/PCI but not DDMA.
我們使用不同種類的技術來解決 Sound Blaster 的 DMA 在 PCI 上的關鍵問題。我們提供了 Legacy 1，Legacy 2，DDMA，以及 PC/PCI 四種不同的方法。為什麼要四種方法呢？原因出在系統晶片組（北橋與南橋）有不同的特性，而我們只有一種模式可以在所有的晶片組中工作正常，另外三種模式則是給特定對象的晶片組使用。例如，Intel 的 TX 晶片組支援 DDMA，但是不支援 PC/PCI；而 Intel LX 晶片組支援 PC/PCI，但是卻不支援 DDMA。 In conclusion, all these different modes are just a way to handle DMA on PCI bus. DDMA(Distributed DMA) and PC/PCI are 2 methods proposed by Compaq & Intel, respectively.
總之，這些不同的方法都是為了處理 PCI 匯流排上的 DMA。DDMA（分散式 DMA）以及 PC/PCI 是由 Compaq 與 Intel 各別提出的兩種辦法。 Legacy 1 and Legacy 2 are our own proprietary schemes to make PCI DMA work. Since DDMA and PC/PCI are not supported on all the chipsets, our Legacy 2 mode is the default mode to handle all the PCI DMA emulation.
Legacy 1 與 Legacy 2 是我們讓 PCI DMA 能夠工作的專利方式。既然 DDMA 與 PC/PCI 不能支援所有的晶片組，我們的 Legacy 1 與 Legacy 2 就是處理 PCI DMA 模擬的預設模式。 For detailed information about DDMA and PC/PCI, please go to Intel's Web site to find out. Thanks.
如果想要取得 DDMA 與 PC/PCI 更詳細的資料，請到 Intel 的網站去找囉，謝謝。
文中所提到的 PC/PCI，其實就是大家比較常見到的 SB-Link。使用 YMF724 的朋友，注意到了嗎？如果你主機的晶片組是 LX，則 DOS 相容性會出問題，只有用 SB-Link 接起來才能解決 DOS 相容性的問題。 而我也到 Intel 的網頁找到 PC/PCI 與 DDMA 的詳細說明了。轉載如下： 2.1.PC/PCI
PC/PCI is a mechanism that was defined and developed by Intel's Mobile/Handheld Products Group (MHPG) as a mobile docking solution which allows ISA slots to exist in docking stations connected to the notebook's PCI bus. This scheme is now being applied to the desktop PC as well.
By providing a new arbitration construct, consisting of a serialization protocol for encoding and decoding DMA requests/grants, a request/grant pair, distinct from the PCI bus pair, is used to bundle requests for any combination of 8237 supported DMA channel(s) for each device needing DMA support. This encoded mapping on the PC/PCI agent's request/grant pair provides the pathway that enables a PCI resident agent to deliver 8237 style DMA requests to the system without requiring separate and distinct DREQ/DACK# pins for each DMA channel that is used by the PC/PCI agent.
Some future Intel products are currently expected to support PC/PCI functionality.
There are a couple of reasons why PC/PCI legacy agents be deployed as motherboard devices. One reason is that the PC/PCI DMA request serialization decoder is not a function of the standard PCI bus arbiter, and therefore there is no guaranteed connection between the PCI expansion slots and the serialization logic. Also AT* compatible interrupt requests (IRQs) are still provided directly to an 8259 compatible interrupt controller via sideband connection from the PCI device. These sideband signals are not supported in the PCI slot definition.
PC/PCI features include:
2.2.Distributed DMA (DDMA)
- Software transparent; no TSRs, VXDs, etc..
- Does not require the PCI agent which implements it to be a PCI master, thus lowering the cost and complexity of an implementation on the part of peripheral vendors.
- Technical support can be provided by a single source.
DDMA is an alternative legacy DMA solution. This technique effectively "distributes" the 8237 DMA controller into physically separate PCI resident components on a per DMA channel basis.
A "master DMA agent" central resource is located somewhere in the system which orchestrates the legacy I/O traffic to and from the distributed DMA elements of the system. The DMA master intercepts all 8237 I/O register references and redirects, via a software configured lookup table, these accesses to distributed agents throughout the system. Since the 8237 DMAC programming model, for control/status registers, combines data for all of its DMA channels within single I/O registers, the DMA master typically scatters and gathers several bus transactions to complete a single legacy I/O register read or write.
DDMA, as for PC/PCI, is also suggested to be a motherboard device solution. While the bus mastership interface could well be handled by a standard PCI slot, there is no guaranteed means for connection via the standard PCI slot of the legacy interrupt request signal lines. DDMA devices most likely will appear with a new serialized interrupt request scheme which calls for serially encoding IRQ information onto PCI bus standard PIRQ(A:D) signal lines (similar to encoding for PC/PCI DMA requests). However, PCI slot add-in DDMA agents could exhibit interoperability issues, since the connection of its PCI slot interrupt request signal to a serialization protocol capable receiver on the motherboard is not guaranteed.
Additionally, when considering DDMA PCI slot add-ins and their associated drivers, the determination and management of DMA channels that have been assigned to specific DDMA agents vs. standard ISA DMA assignments vs. unassigned DMA channels becomes more complex.
DDMA features include:
- "Flyby" DMA transfers
- Extended, non-legacy DMA support