AMBA协议(一)何为协议

做芯片验证多年,感受最深的一句话就是“业务为王”。我们学过的UVM验证方法学、systemverilog、VCS、Verdi等等都只不过是服务于业务的工具。语法学的再好,不懂业务,不深入业务,不能服务于业务,终究是纸上谈兵。思虑良久,还是先从最常用的总线协议开始。

首先,何为协议?记得写毕业论文时研究背景里提到了各种各样的通信协议,当时觉得协议这种东西高深莫测,晦涩难懂,虽然写了很多,但大都不求甚解,现在想来甚是惭愧。

其实协议,简单来说就是双方为了通信而制定的一些规则

比如古时没见过面的两人通过暗号来确认对方身份,这算是比较早的一种通信协议。A发送“天王盖地虎”,发送完成后等待响应,B接收到信息后,会返回响应信息“吾乃王老五”,这样A和B就完成了双方身份确认,即握手完成,接下来就可以畅快地互发信息了,这算是比较简单的一种通信协议。

再举个复杂点的。通信双方为保证信息不被敌方截取,会采用一些加密的手段,比如以纯数字进行通信。A给B发送一串数字6359589321345566,这一串数字没有什么关联,即使被敌人截获也得不到有用信息,但是B收到后会根据双方已经指定好的通信协议去解密。这一串数字,第一个数字代表10本书的编号,第二个数字代表页数,第三个数字代表行,第四个代表列,这样前4个数字代表第一个文字,这个字就被解密出来了,然后接下来4个数字代表第二个文字,依次类推,解密完成后发现四个字:立即撤退。

再复杂一点,假如这段信息A发送给B要经过两个人,A的下属C和B的下属D,那么就要约定,A将信息传给C后C要在规定时间内给A答复信息是否传输完成,同样C将信息传给D后,D要在规定时间内给C答复。而且C和D是不会知道也不需要知道这个协议的内容的,期间如果信息传到D时被敌人截取了,C就不会收到答复,到规定时间后,C给A回复信息未送达,A可以决定再次发送信息,当然这次是发给D以外的能给B传递信息的人。这样即使中间信息传递环节出现问题,也能保证信息不被截取,并及时再次发送出去。

这个过程其实很多通信协议里都有用到,比如数据的加解密,各个节点之间的握手,重传机制等等。这个例子中很多协议的规则需要讨论,比如哪十本书?书中页数包不包含正文前面的页码?前面定义的这些规则是否有不合适的地方?第二个数字代表页数,但是一本书不止十页啊,前十页没有要发送的字怎么办?这个就涉及到了协议版本的更新,在第二版里可能就是第二个和第三个数字合起来代表页数,第四个和第五个数字合起来代表行数,第六个和第七个数字合起来代表列数,这样一来前七个数字才能代表一个文字,同样的“立即撤退”四个字就需要28个数字才能表示。看到这里大家有没有想过一个问题,为什么AHB协议的信号比APB协议的信号数量多了一些?AXI协议的信号多了更多?

现在再来看,协议是不是也没那么高深莫测了?其实,看了这么多,你可能并没有学到协议的知识,但是如果今后学习AMBA协议时,你能更多地思考一些问题,多问自己几个为什么,学习其它协议时能感到似曾相识,那么这篇文章的目的也就达到了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值