免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 8331 | 回复: 29
打印 上一主题 下一主题

汇编指令和时序电路的关系? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-29 10:31 |只看该作者 |倒序浏览
一旦硬件电路设计好,时序电路就是固定好的了. 每条汇编指令在特定长度的机器周期内完成
有这么样的一个疑问,在一些设计中,会看到这样的描述,等到数据传输完了,会给发送方发送一个信号(通
过实实在在的物理线通知发送方), 但是由于在传输过程中由于传输的数据长度是不固定的,如果判断数据
传输完了呢,有软件判断还是有硬件判断传输完了?
个人感觉是硬件判断的,如果真是所猜测,个人能否给详细的解释下?

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2009-12-29 10:39 |只看该作者
这跟你的标题完全不搭界。
数据传输,有很多方式,只因双方遵守同一个协议。
各种各样的协议都可以满足这一要求。
是硬件判定还是软件判定这不是本质,遵守协议才是本质。
不知道你玩过GPIO没有,那就是用软件的方法模拟硬接口。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
3 [报告]
发表于 2009-12-29 11:00 |只看该作者
打个比方,我来设计一个全双工的串行协议:
三根线,两根IO+一根地
平时不串数据的时候,数据线被拉到低电压。
当要开始传数据的时候,我先传一个宽度为10us的高电压脉冲。
以后按bit传,1用宽度为5us的高电压脉冲表示,0用宽度为3us的高电压表示。
每两个bit之间间距3us的低电压。
于是这个串行协议就可以传数据了。
因为我规定了每两个bit之间间距3us的低电压
所以一旦发现连续比3us宽的多的低电压(比如10us),我就认为这一段数据已经传完。

论坛徽章:
0
4 [报告]
发表于 2009-12-29 11:18 |只看该作者
标题改成"协议的实现是用硬件还是软件",可能更贴近我问题的描述. 可是这样问的话, 答案很明了,既可以用硬件也可以用软件.
标题暂时不换了,随着问题的深入理解,我在 换.
2楼的"协议"应该是正解. 实现同一"协议"接可以用软件,也可用硬件.
但是还有一个疑问,如果按照2楼的理解,我怎么觉得软件和硬件相互独立了. 除了硬件帮忙执行了汇编指令,没有体现出硬件逻辑还做了什么? 因为汇编指令只会帮我们读,存数据,并没有通知说数据已经传完了. 还是硬件在执行汇编指令的同时,所有的硬件逻辑也做完了.

所谓的硬件逻辑就是能够判断数据传完了吗,收到了特殊的数据等.(个人暂时这样理解的)
疑问应该描述清楚了吧?

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
5 [报告]
发表于 2009-12-29 11:22 |只看该作者
原帖由 怪怪虎 于 2009-12-29 11:18 发表
标题改成"协议的实现是用硬件还是软件",可能更贴近我问题的描述. 可是这样问的话, 答案很明了,既可以用硬件也可以用软件.
标题暂时不换了,随着问题的深入理解,我在 换.
2楼的"协议"应该是正解. 实现同一"协议 ...

这些都是协议规定的,不同的东西实现的前提是要“遵守!!”协议,至于用什么方式去遵守协议,那是如何实现的问题。
软件怎么可能和硬件脱离,软件从来都不是独立存在的,没有硬件,哪来软件?软件只是使硬件更灵活的一种方式而已。最终去实现者其实永远都是硬件,即使用了软件,软件也只是一个指挥者而已,并非一个实施者。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
6 [报告]
发表于 2009-12-29 11:26 |只看该作者
原帖由 怪怪虎 于 2009-12-29 11:18 发表
标题改成"协议的实现是用硬件还是软件",可能更贴近我问题的描述. 可是这样问的话, 答案很明了,既可以用硬件也可以用软件.
标题暂时不换了,随着问题的深入理解,我在 换.
2楼的"协议"应该是正解. 实现同一"协议 ...

至于“硬件逻辑做什么了”,那种不用软件的硬件接发器(我习惯称之为傻瓜式),它的所有实现都由自己的硬件逻辑来唯一决定。
而基于可编程的话,那么就可以被控制,可以引入软件的思维,使之更灵活。

论坛徽章:
0
7 [报告]
发表于 2009-12-29 11:30 |只看该作者

回复 #3 cjaizss 的帖子

这个比方很清楚, 我应该理解了协议的概念,已经在硬件上如何实现的.
不过还有些疑问,忘赐教.(在这个问题上有些呆)
汇编指令在整个过程(包括传输前的准备,传输中,传输结束)中有作用吗?

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
8 [报告]
发表于 2009-12-29 12:09 |只看该作者
原帖由 怪怪虎 于 2009-12-29 11:30 发表
这个比方很清楚, 我应该理解了协议的概念,已经在硬件上如何实现的.
不过还有些疑问,忘赐教.(在这个问题上有些呆)
汇编指令在整个过程(包括传输前的准备,传输中,传输结束)中有作用吗?

基于指令集的指令(处理器中概念)只是软件操纵的一种手段,这只是狭义的软件而已。
其实说白了,它只是提供了一种手段,仅此而已,控制的方法很多,不只有处理器的指令。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
9 [报告]
发表于 2009-12-29 12:16 |只看该作者
原帖由 cjaizss 于 2009-12-29 12:09 发表

基于指令集的指令(处理器中概念)只是软件操纵的一种手段,这只是狭义的软件而已。
其实说白了,它只是提供了一种手段,仅此而已,控制的方法很多,不只有处理器的指令。

其实,如果你真的想了解,有机会写写硬件驱动就明白了,对于相同处理器来说,相同的一条操作会因为你硬件的设计不同而完全不同。
其实每到接口处(甚至IC内部模块间接口),起作用的只是接口的双方遵照同样的协议。整个计算系统其实全都是用协议搭起来的。

论坛徽章:
0
10 [报告]
发表于 2009-12-29 13:30 |只看该作者
原帖由 cjaizss 于 2009-12-29 12:16 发表

其实,如果你真的想了解,有机会写写硬件驱动就明白了,对于相同处理器来说,相同的一条操作会因为你硬件的设计不同而完全不同。
其实每到接口处(甚至IC内部模块间接口),起作用的只是接口的双方遵照同样的 ...


都给讲到这个份上了,看来自己不明白只能看驱动的code了. 哈哈
可是现在基于linux操作系统的驱动,在书写方式上,个人感觉他把底层的实现都给隐藏了. 在c语言code里看到的只是一些设备逻辑,根本看不出"协议"的设计了. 让人有点不知所措....
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP