原创 ATA协议的新发展——ATA体系结构模型和一些想法

2009-6-16 14:41 6536 8 8 分类: 通信

    “穿新鞋,走老路”似乎是含有贬义的,但是ATA协议在发展过程中,因为脱掉了“旧鞋”,不但“老路”越走越宽了,甚至可能走上新路。 riple 
    在ATA-7协议之前,ATA协议等同于PATA协议;从ATA-7开始,到去年年底发布的ATA-8协议,ATA协议中加入了SATA这一新的协议实现形式。现在的ATA协议是由PATA协议和SATA协议共同构成的:ATA-8协议的第一卷给出了ATA协议的基本内容,第二卷给出了PATA协议的实现规范,第三卷给出了SATA协议的实现规范。在ATA-7之前的ATA协议中,第一卷和第二卷的内容是合并在一起的,第三卷的内容是没有的。 riple 
    随着ATA-8协议的正式发布,经过了两年的反复修订,作为ATA-8协议一部分的《ATA体系结构模型》也浮出了水面。在这一文档中,明确区分了“ATA体系结构模型”、“ATA实现标准”和“ATA具体实现”的概念。这一文档给出了现有ATA协议实现方式中共同遵循的抽象结构,并指明,各种实现方式只要兼容这一标准,可以采用各种形式。由此一来,只要提出新的实现标准,ATA协议就可以实现新的兼容形式。ATA的路越走越宽了。 riple


点击看大图



    在这一体系结构模型中,提出了ATA协议的分层结构,提出了ATA协议的“客户端-服务器”模型。设备作为“服务器”,具有了和主机同等的地位和层次结构。ATA协议在主机端和设备端都获得了巨大的发展空间。 riple


点击看大图点击看大图


    纵观ATA协议的发展历史,通过从ATA协议中抽象出“ATA体系结构模型”(AAM),PATA和ATA终于分清了形式和内容的关系——PATA和SATA一样,都是ATA协议的特例,是ATA协议具体的实现方式,各自遵循特定的实现标准。这就好比一个人穿着一双旧鞋(PATA)走了很久的路,却一直没有意识到脚上穿着鞋,直到有人建议他换双新鞋(SATA)试试,他才意识到脚(ATA)是可以和鞋(PATA)分开的,自己是可以脱掉旧鞋,换双新鞋的。换上新鞋,老路越走越轻快。可以设想,从此以后这个人还会尝试不同形式的鞋(XATA),甚至走上完全不同的路。 riple


    横观SCSI协议的发展历史,通过抽象出“SCSI体系结构模型”(SAM),出现了SCSI协议的各种实现形式:并行SCSI、串行SCSI、iSCSI、光纤通道、IEEE1394。可以预见,ATA协议也必将经历这样一个百花齐放的发展历程。 riple


点击看大图


    在学习计算机接口技术时,我读到过各种协议演进和消亡的历程,有的轰轰烈烈,有的悄无声息。作为一个年轻的工程师,我常常以为这些都是“故事”,是我不可能亲身经历的历史。但是现在,看到ATA协议在几个月之前刚刚完成了脱胎换骨的发展阶段,走上一条崭新的宽广大路,我的心情不能平静:历史正在我的身边发生。世界不再是一幅静止的、可以任我从不同角度和高度徐徐观察的画卷,我正置身于不断演进和发展的世界之中,仅需一瞥,就会看到新的可能,新的发展——我感到了一种真实的存在感。 riple


 

题外话:


    在代码开发中,也存在着这种先设计后认识的过程。我们详细阅读设计规范,提出概要设计、详细设计,在自以为无法不着手编码的阶段开始了编码,历经几周甚至几个月的编码和调试终于得到了可以工作的代码,这时再审视我们的设计,我们往往会有新的认识,会提出对现有代码结构和实现方式的改进。如果加以时日,我们的设计经过实用的考验,通过修改各种bug,我们又会提出新的看法。这一过程常常令我惊奇:我设计的代码为何连自己都没有认识清楚? riple


     实践—〉 认识—〉再实践—〉再认识,这是辩证唯物主义的认识观。 riple


    问题域和解决域之间的映射关系是客观的,需要我们去认识和发现,认识的唯一途径就是实践。这就解释了我上面的疑问:我们在开始编码以前对于映射关系的认识往往是不全面的,随着不断地实践,我们的认识也逐渐地深入起来,这时就会对先前的映射实现产生新的见解。换句话说,在编码之前,我们要假定已经存在着这样一种映射关系和实现这种映射关系较好的方式;我们必须把编码的过程看作是“发现”,而不是“发明”的过程;代码不光是我们对映射关系认识的成果,更是我们认识映射关系的工具。 riple


    为了提高“实践—〉认识”这一螺旋上升过程的效率,我们必须注重每一个阶段的质量:制定尽可能详细的设计,开发风格尽可能良好、结构尽可能清晰的代码,执行尽可能全面和深入的测试。目标只有一个:以最少的迭代,逼近最佳的映射实现。 riple

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

ash_riple_768180695 2011-8-9 21:23

My friend, THX for commenting. Hope to see some of your studying blogs.

用户352053 2011-8-7 10:36

riple, THX for sharing. Every time reading ur blog I really really learn a lot not only the specific knowledge you sharing but also the method of studying. Looking forward to ur next blog! You have a nice day!

用户1530259 2009-11-28 07:00

看了博主的文章,受益匪浅。我现在刚着手为一款SSD做IDE接口,感觉协议太复杂,无从下手,如果有幸能得到博主的指点就好了!

用户131284 2008-10-16 15:37

这一过程常常令我惊奇:我设计的代码为何连自己都没有认识清楚? 原来不止我一个人经常觉得不认识自己写的东西,呵呵。riple举的例子都很贴切,很容易看明白,适合授业解惑~~

ash_riple_768180695 2008-1-1 20:43

你说的很对,理想和现实之间总是有差距的,需要折中。但是我们终归不会放弃理想。

在上面的文字里,我只是在表达我的一种哲学观点:人类对世界的认识和改造都是客观的,都是有规律可循的。在项目进行的各个阶段,我们都应该把项目的最终目标时刻放在心中;尤其在时间规划和设计阶段,只有目标越明确,规划和设计才会越准确。

用户128735 2007-12-30 20:46

关于这段:

    “为了提高“实践—〉认识”这一螺旋上升过程的效率,我们必须注重每一个阶段的质量:制定尽可能详细的设计,开发风格尽可能良好、结构尽可能清晰的代码,执行尽可能全面和深入的测试。目标只有一个:以最少的迭代,逼近最佳的映射实现。”

想知道你们现在的项目是怎么做的?个人认为,实际开发中时间都是比较紧的,这种理想状态在实际开发中不可能存在,一般都要取舍一番,比如设计计划做的详细了必然导致调试的时间就所剩不多了。

另外,做项目并不是搞学术,要求“最佳”,如果能够通过“打补丁”而让整个设计符合验收的最低标准,我觉得没有必要将已做的工作推到了重来。倒是可以考虑把新的想法在下一个项目中验证一下,这样也不失为及时总结,不断进步。

因为开始做项目不久,所以想法可能有些鼠目寸光,希望兄台能指教一二。

相关推荐阅读
ash_riple_768180695 2015-12-18 11:06
学习示例程序:FPGA快速系统原型设计--敏捷实践
        学习与开发板配套的示例程序,是敏捷实践的起点。示例程序是厂商针对开发板上提供的硬件资源和接口量身定做的工程,可以展示其FPGA芯片的功能和性能特点。从示例程序入手最大的好处就是:示...
ash_riple_768180695 2015-11-03 16:46
开发板选取:FPGA快速系统原型设计--敏捷实践
    既然是“实践”,就不能只谈编码和仿真,必须要上板运行、调试。这个虚拟项目的目标是实现一块兼容Intel82574L以太网控制器的千兆网卡,需要运行在一块具备PCIe接口和10/100/10...
ash_riple_768180695 2015-10-22 12:41
开篇:FPGA快速系统原型设计--敏捷实践
    虽然借用了 “系统原型开发”的标题,本系列文章将围绕FPGA IP级别的开发这个主题展开,如果可能的话,将扩展至FPGA System级别的开发。     先上一篇PPT:RSPwFP...
ash_riple_768180695 2013-08-26 10:21
学习SystemVerilog(二)——学习它的理由
    学习SystemVerilog的理由也很多,我在阅读SystemVerilog for Design 和 SystemVerilog for Verification两本书前言的过程中,总...
ash_riple_768180695 2013-08-26 10:19
学习SystemVerilog(一)——不学习它的理由
    想要学习SystemVerilog已经很久了。曾经尝试通过Accellera网站上给出的LRM学习,怎奈内容众多,找不出入手点和重点,只能望而却步。虽然手头有三本SystemVerilog...
ash_riple_768180695 2011-06-26 23:20
Hardware-Assisted IEEE1588 Implementation Analysis
06/18/11 11:00:05 PM         最近一段时间在研究IEEE1588-2008精确时间同步协议(PTP)。该协议可以在软件中实现,如果需要提高时间同步...
EE直播间
更多
我要评论
4
8
关闭 站长推荐上一条 /3 下一条