总线技术我是CPU一号车间的阿Q,最近被一件事烦死了。我们CPU厂刚来做主板厂的时候,那个时候主板上的单元不多,跟我们打交道最多的就是内存那家伙。后来,键盘、鼠标、硬盘、网卡、声卡、显卡等设备陆续安装在主板上,这片土地变得越来越热闹。不过,他们的到来并没有影响我们的地位。毕竟我们是中央处理器,所有人都得服从我们的命令。为了在主板上和这些家伙交流,我们花了很多钱来铺线。主板上的每个家庭都连接到这条线。我们称之为公共汽车。虽然说是一条线,但实际上里面包含了传输数据的数据。总线,地址总线用于传输地址,控制总线用于控制管理。这样,所有单元就可以一起聊天了。但是,这条线是共享的。如果大家不能一起传输数据,那就乱了。为了统一管理,我们设立了一个新的单元,叫做总线控制器。本单元对总线进行统一管理。如果你想交流,你必须申请。这称为总线仲裁。但是,主板上各单元的速度仍然有很大差异。比如内存,比硬盘、网卡等单元要快很多(当然还是比不上我们CPU车间的工作速度)。不仅如此,单位的速度也不同。接口还是很不一样,用一套总线的矛盾越来越明显了。后来变成了多级总线,让慢的跟慢的玩,快的跟快的玩。最后大家用一个东西连接不同的公交车。这东西是一座桥!主板上出现了两个著名的桥。一个叫北桥,离我们的CPU很近。记忆中的那个人通过它与我们交流。一些I/O设备通过南桥连接。后来随着我们CPU厂的壮大,直接收购了北桥,现在已经成为我们厂的一个部门。PIO模式现在我们可以与这些I/O设备进行通信了。我们以硬盘为例。它有I/O端口。我们提供了in和out两个命令来读取和写入数据。这种通信方式称为ProgrammableInput/OutputModel、ProgrammingInput/OutputModel,简称PIO。我们是整个主板的核心。俗话说,能力大责任大,但有时候真的觉得有点累。随着主板上连接的设备越来越多,需要等待我们执行的程序也越来越多,繁重的工作量让我们喘不过气来。尤其是随着科技的进步,我们CPU厂的速度越来越快,硬盘读写速度的差距也越来越大。我们这样沟通是浪费时间。DMA技术这几天我们几个车间的领导聚在一起私下讨论这件事。“阿Q,你不觉得我们现在读写硬盘的时间太长了吗?这家伙慢不是他的错,是他拖我们的后腿,我们要做很多工作一次传输数据,I/O口读写,我们宝贵的时间都浪费在这上面了!”二车间虎子一脸怨恨的说道。“哎,我最近也在为这个烦恼,程序越来越多,读写硬盘的时间也越来越多,尤其是那个叫MySQL的,老是让我访问硬盘,但它让我筋疲力尽。”不想着我们俩都忍着苦水。这时,平日里喜欢拍老板马屁的八车间老板说了一句话:“你说的问题确实存在,这份工作太没技术含量了,就是体力活,要不跟老板说说?”?让他外包吧。当我们听到时,如果我们能将这种体力劳动外包出去就好了,这样我们就可以专注于我们的全职工作。“你和老大平时关系亲密,可以好好谈谈。”我给虎子使了个眼色,一起催促老八说说。“好,我这就去,我这就去。”还别说,领导马上就同意了这个想法。毕竟可以提高我们的工作效率,他自然是举手表示欢迎。不久后成立了外包小组,我们厂独立出来负责这件事。和我们的CPU一样,他们也提供了几个寄存器。传输数据时,只需要设置这些寄存器的内容,告诉它们数据要传输到哪里,从哪里传输到哪里,长度是多少。接下来我们要做的是不要担心,让他们去做。我们可以腾出时间做其他事情。数据传输完成后,他们会以中断的方式告诉我们,我们可以直接处理。省去了我们自己背的过程,真是爽~后来我们也给这个技术起了个名字,叫DirectMemoryAccess,直接内存访问,简称DMA,而这个外包团队就是DMAC,DMAcontroller。在DMA全面开花前几天的月度总结会上,领导表扬了老八,说多亏了他的建议,工厂的生产效率有了很大的提高。要是早知道,我也不会催着老八给老大出谋划策,自己一个人去了。正当我想着分心的时候,突然想到了一个问题。这次我打算抓住机会赚取业绩。“老大,这DMA技术不错,不过现在只能用于硬盘了。最近网卡小哥数据包很多,我花了很多时间把数据包从网卡读到内存,效率很低,没有技术含量,能不能把这个技术扩展到网卡上”,我老板起身说道。老板若有所思地点点头。见状,二车间的胡子也起身说道:“老板,除了硬盘和网卡,显示器也需要这个.经常要跑来跑去把内存中的数据传输到显示器上,也是一件很费力的事情。我建议将DMA技术也扩展到显示器上。”老大闻言,皱眉道:“不同设备之间的区别还是挺大的,不能通用。是不是每个设备都需要成立一个外包团队?成本有点高……”老大还是老大,成本依然是第一位的。这时,阿谀奉承的老八又开口了,“老大不愧是老大。我有个建议,这个DMA也可以扩展到网卡、显示器等单元,但是让他们自己花钱增加DMAC,根据他们不同的需求来做。我们不能利用这一点。”老板大喜,大声鼓掌!就这样,我们很快就推广了这项技术,主板上的那些单元,包括网卡、显示器、摄像头,都开始一个接一个地工作,为了不落后于别人。拥抱变化,融入DMAC。我们彻底解放了,再也不用做无聊的搬运工了~彩蛋“阿Q,听说最近Linux帝国成立了一个新公司,可以绕过我们的CPU吗?把数据从网卡到硬盘”“不可能,至少我们得拷贝”“完全没有必要,他们号称是零拷贝技术”预示着接下来会发生什么,敬请关注后续花絮。..
