为何TLM中只有blocking和non-blocking transfer就可以了?

来源:互联网 发布:python 初级教程 入门 编辑:程序博客网 时间:2024/04/30 09:31

一直在想为何TLM中只有blocking和non-blocking transfer就可以了?

今天看了一篇文章突然有了灵感:一个软件系统就是由完成各个功能的类以及将一组类联系在一起构成一个整体的消息机制组成。与之类似,描述一个硬件系统,首先描述各个功能模块,然后通过总线将个模块联系起来形成系统.

总线的功能有点类似于软件的消息机制,但不同之处在于软件的消息机制在实际中既是函数调用,而函数调用的具体完成由于OS的存在,对软件开发者完全透明;而硬件系统则不同,模块之间的通信最终必须通过某种形式的总线,而总线必须由系统设计者自己设计。TLM最抽象的编码风格也用函数调用表示模块之间的通信,但随着抽象级别的降低,这些函数的最终实现仍是总线上transaction的收发。类比软件,相当于OS帮我们完成了以上所有与总线相关的工作。

总线上transaction的收发,无非就是抽象为阻塞和非阻塞两种方式,因此TLM有blocking和non-blocking transfer,就足够描述系统的事务级模型了。

以上文字纯粹自娱,不当之处欢迎讨论。