9456|6

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

初学者疑惑:程序如何执行 [复制链接]

电路都学过,知道信号电平达到门电路的阈值就能驱动门电路,但是当一个CPU写入程序以,系统上电后,程序是怎样被一步步执行的呢?一条语句怎样实现电平高低变换从而去控制其它电路的呢?这些细节一直困扰着我,望高手指导

最新回复

gdtyy的讲解确实从原理上回答了问题 我电脑里面还有2003年论坛的离线BBS资料,经常读到您的发言,相当精彩。 说得不那么专业一点,可以这样理解程序如何执行的。 程序代码按010101的机器码形式存储在ROM中,这是机器码,不同的组合对应不同的指令,比如MOV,ADD等。 CPU取得这些机器码,并根据机器码翻译成要执行的操作,然后通过控制逻辑电路来实现这些操作,比如将一个寄存器清零,那么通过逻辑电路对该寄存器各位对应的电路进行操作,比如放电,或者触发等操作。   详情 回复 发表于 2007-8-6 10:15
点赞 关注

回复
举报

84

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

回复:初学者疑惑:程序如何执行

买书看吧。 换种说法,难道你要到“黑砖窑”烧砖吗 盖楼去吧~:)
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

回复:初学者疑惑:程序如何执行

没有一砖一瓦,怎么能盖高楼大厦呢 一些基本的东西没搞清楚我很不甘心啊 市面上的书几乎没涉及这么详细的内容
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 

回复:初学者疑惑:程序如何执行

faint,《微机原理》里面没有吗? 取码,译码,执行。 下个cpu的ip,里面讲得贼清楚。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 

回复: 初学者疑惑:程序如何执行

关于FPGA设计的书里有一些介绍。 系统上电后发出reset信号,使CPU进入“空闲”状态,从这个状态开始,依次进入取指-->译码-->执行状态,周而复始,CPU就开始工作了。 ---------- ---------- ---------- ---------- | 空闲态 |------->| 取指态 |------->| 译码态 |------->| 执行态 |----- ---------- ---------- ---------- ---------- | ^ | | | ---------------------<------------------------- 硬件状态是如何顺次变迁的呢?以“一热态位”状态机实现为例: rst ---------------- rst | | | | ------------ | ------------ ----<-| 组合逻辑 |<-- | ----<-| 组合逻辑 |<-- | ------------ | | | ------------ | | ----------- | | | ----------- | | | D触发器 | | | | | D触发器 | | ---->-|D Q|--------->------- ---->-|D Q|----------->--------...... | | | | clk -->|clk Q~|--->“S0状态输出” clk -->|clk Q~|--->“S1状态输出” rst -->|clr | rst -->|clr | ----------- ----------- 系统上电后,rst有效,所有D触发器异步清零,也就是说所有状态输出都无效。 第一个时钟上升沿后,经过组合逻辑判断,只有第一个D触发器输出有效状态,Q~为0,使能第一个状态电路。 第二个时钟上升沿后,第一个D触发器就永远输出无效状态,除非rst重新激活,此时,第二个D触发器由于连接在其组合逻辑上的第一个D触发器上的Q~有效,所以它的输出状态S1有效,使能第二个状态电路。 依次类推,第三个时钟上升沿后,第二个D触发器输出失效,激活第三个,然后就这么顺次传递下去,硬件电路就实现了状态变迁。 硬件上实现了状态迁移逻辑后,就可以以此为最小逻辑设计按照状态变迁图设计CPU控制部件了。 下一状态取决于当前状态和输入条件。 ------------ 输入条件--->| 当前状态 |------->下一状态 ------------ 基于这个最小化的状态机硬件单元,再复杂的逻辑也可以实现,加上CPU时钟速度非常快,感觉就很神奇了。
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

6
 

回复:初学者疑惑:程序如何执行

非常感谢gdtyy的悉心指导
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

7
 

回复:初学者疑惑:程序如何执行

gdtyy的讲解确实从原理上回答了问题 我电脑里面还有2003年论坛的离线BBS资料,经常读到您的发言,相当精彩。 说得不那么专业一点,可以这样理解程序如何执行的。 程序代码按010101的机器码形式存储在ROM中,这是机器码,不同的组合对应不同的指令,比如MOV,ADD等。 CPU取得这些机器码,并根据机器码翻译成要执行的操作,然后通过控制逻辑电路来实现这些操作,比如将一个寄存器清零,那么通过逻辑电路对该寄存器各位对应的电路进行操作,比如放电,或者触发等操作。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表