ljw100 发表于 2009-2-20 11:23:10

请教骑墙待红杏

见你在MVW近期关于抓轨的帖子中谈到了声卡的一些工作原理,而我自己从未关心过PC机的硬件及体系结构,故想向你询问一些关于PC、声卡工作原理和结构方面的情况。

1、现在PC机硬盘的寻道时间和旋转等待时间的指标如何?
2、PC机硬盘读数据的传输率(码率如何)?
3、能确定声卡上是使用DMA方式从硬盘上向声卡缓冲区提供数据否?
4、确定声卡工作频率的振荡信号是来自于声卡的外部时钟信号还是自身带有晶振?如带有,晶振的类型一般是什么?
5、声卡上缓冲区的大小一般是多大(以字节计)?
6、声卡上解码芯片是否已含有用于D/A转换的低通滤波器?

随便扯扯,不需要太严谨,先谢过!:)

pieryu 发表于 2009-2-20 11:59:43

这些都不重要, 因为你无法改变它. :P

ljw100 发表于 2009-2-20 12:36:15

就HIFI这个“玩”来说,没什么值得看重的东西。

多知道点常识,一来可以让自己的脑壳不那么糊,二来可以约束自己“说”的“勇气”和“胆量”。仅仅为自己。:)

mvw 发表于 2009-2-20 12:39:35

1.硬盘旋转时间只存在于启动的那一阵 到7200的时候就恒速了 寻道时间机械硬盘大多是10ms上下
2.硬盘平均速率大概是80*8 mbps(兆比特每秒,bit,非bytes) cd格式是1141 kbps
3.应该是
4.一般是自带晶振
5.缓冲区不同 但印象里很少有声卡明确标出 大多都比较小
6.芯片上一般不包括lpf但声卡上一般都包括

略有了解 有误勿怪~

mifeng 发表于 2009-2-20 12:51:30

ssd固态硬盘跟传统的应该很不一样
我觉得听音用固态硬盘或许会很棒
坐等高手讲课

yasker 发表于 2009-2-20 14:27:35

3、能确定声卡上是使用DMA方式从硬盘上向声卡缓冲区提供数据否?

应该不是。DMA是direct memory access,是设备发起的内存请求。数据肯定是从硬盘读到内存中,然后由设备从内存直接读取。

mayao11 发表于 2009-2-20 14:43:38

原帖由 mifeng 于 2009-2-20 12:51 发表 http://bbs.headphoneclub.com/images/common/back.gif
ssd固态硬盘跟传统的应该很不一样
我觉得听音用固态硬盘或许会很棒
坐等高手讲课

同意~
固态硬盘机械干扰应该会小很多,寻道也比传统硬盘直接。:D

hdde 发表于 2009-2-20 14:50:36

今年SSD应该就降价了吧
可以弄一块来试试听音乐
不过估计是AB不出什么的

[ 本帖最后由 hdde 于 2009-2-21 00:03 编辑 ]

ljw100 发表于 2009-2-20 16:28:29

之所以提及DMA写声卡缓冲区,是因为在看MVW那个帖子时有人提及,这与我以前所了解的常识有出入。或许现在的技术已进步到可以由DMA来完成相应工作的程度。

声卡从内存输入数据,必然要受到CPU忙闲状态的影响,且这影响是无法预料的,也难以说清楚。所以,合理的办法是,加大声卡缓冲区的容量,在放音前一次性缓冲完相当于一张CD碟或更多的信息,在放音过程中完全摆脱对CPU的依赖。

上诉观点仍然是原理性的,原理提供了工程实现的可能性,但工程实现未必就达到了技术合理的程度。

深入了解PCHI整个数据通路上的各个环节,有助于从一种系统构架的角度来考虑问题,而站在系统构架的角度来看问题,能对局部环节的问题看得更清楚、更准确。

谢上面各位的解答。

yasker 发表于 2009-2-20 16:34:53

原帖由 ljw100 于 2009-2-20 16:28 发表 http://bbs.headphoneclub.com/images/common/back.gif
之所以提及DMA写声卡缓冲区,是因为在看MVW那个帖子时有人提及,这与我以前所了解的常识有出入。或许现在的技术已进步到可以由DMA来完成相应工作的程度。

声卡从内存输入数据,必然要受到CPU忙闲状态的影响,且这 ...

和同事聊来一下,就Linux下的Intel HDA而言,数据填充过程是这样的:

开辟内存里的一块空间作为ring buffer,一个read pointer(hardware pointer), 一个writepointer(software pointer). software在writepointer写入数据(实际是由alsa控制的,速率随便,只要不被write pointer赶上导致无东西可读,以至跳音),声卡controller以固定为48khz的频率(应该由声卡本身的晶振决定)从readpointer读出数据,直接DMA给声卡。按照同事的说法,在ringbuffer不发生断流的情况下,声卡的fifo不可能发生断流。

由此,我认为,声卡的晶振成为PC系统的第一个jitter源。声卡之前,没有jitter的存在,因为时间无关。

yasker 发表于 2009-2-20 16:48:27

另外,声卡做DMA需要的是内存的地址,一般这个是由CPU指定。但就HDA声卡而言:
CPU写HDA Controller,通知声卡ring buffer的位置(以及大小),声卡自己保存hardware pointer即是DMA的地址,所以之后的操作也无须CPU加入了。
有兴趣的可以看下Intel HDA的spec: http://download.intel.com/standards/hdaudio/pdf/HDAudio_03.pdf

ljw100 发表于 2009-2-20 17:09:45

谢YESKER提供的信息。

从你提供的信息看,对声卡而言,这是一种两级缓冲机制。由于现在的操作系统都是多任务的,从原理上看,不能确保声卡缓冲区不断流。

以我的技术观点,就要确保放音质量来看,以内存为声卡放音数据的第一级缓冲区,就不是一个合理的工程实现方案。以现在存储器的价格,为何不加大声卡上缓冲区的容量?或许有我还没考虑到的因素吧。

站在一种系统构架的角度来看问题,弄清楚相关数据通路上各个环节的实现情况,有助于我们更清楚地分析、评估问题之所在。否则,极容易把问题弄得一团糟,甚至还会得出推翻基本原理的荒唐结论,这一现象在HIFI圈内并非不常见。

你可继续询问你的同事,声卡上的本地晶振是否与声卡外部时钟信号构成锁相环,如是,则声卡本地晶振将会随外部时钟信号“抖动”。

pig2man 发表于 2009-2-20 17:11:09

说实话,Intel的白皮书很不错,俺第一次看这么详细的声卡说明,别的厂商可不会给你这么好的东西呀,比如创新,多谢ls的资料。

骑墙待红杏 发表于 2009-2-20 17:16:13

来了,刚下班:D :D,看标题先回一下再看帖子

骑墙待红杏 发表于 2009-2-20 17:17:07

还在公司,先转发篇, 回家再仔细说,你先看看
http://www.eeworld.com.cn/designarticles/eda/200703/9217.html
页: [1] 2 3 4
查看完整版本: 请教骑墙待红杏

耳机俱乐部微信
耳机俱乐部微信