免费注册 查看新帖 |

Chinaunix

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

CPU COMPILER AND OPERATING SYSTEM [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-25 22:17 |只看该作者 |倒序浏览
CPU如何认识操作系统的指令的.CPU有自己的COMPILER.

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2008-04-25 23:15 |只看该作者
这些都是机器指令。机器不认识自己的指令还能叫可编程机器吗?

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
3 [报告]
发表于 2008-04-26 11:58 |只看该作者
打个比方,有如下软件程序:
while(1) {
if(输入="1")
do1();
if(输入="0")
do0();
}
那么0,1就是指令了

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
4 [报告]
发表于 2008-04-26 17:58 |只看该作者
硬件的演示可能更真确一些:

  1. module test(i,o,clk);
  2. input i;
  3. output o;
  4. reg [2:0] o;
  5. input clk;
  6. initial
  7. begin
  8.    o<=0;
  9. end
  10. always @(posedge clk)
  11. begin
  12. if(i==1)
  13.    o<=o+1;
  14. else
  15.    o<=0;
  16. end
  17. endmodule


  18. module testbench1(O);
  19. output [2:0]O;
  20. wire clk;
  21. wire I2;
  22. test test_o(I2,O,clk);
  23. testbench2 t2(I2,clk);
  24. endmodule

  25. module testbench2(I,clk);
  26. output I;
  27. reg I;
  28. reg [2:0] count;
  29. output clk;
  30. initial
  31. begin
  32.    count <= 0;
  33.    I<=0;
  34. end
  35. always @(posedge clk)
  36.     count <= count+1;
  37. always @(posedge clk)
  38. begin
  39.    if(count==2)
  40.       I <= 1;
  41.    else if(count==7)
  42.       I <= 0;
  43. end
  44. endmodule
复制代码

对于test模块来说,o就是输出(3bit),每到时钟上沿,如果输入信号i为1,输出的3bit就加1,如果输入信号为0,则o就清0
那么对于它来说,这里的1和0可以说就是指令,只是简单一点而已。
一个CPU指令比这个要复杂的多
波形

未命名.JPG (11.61 KB, 下载次数: 19)

未命名.JPG

论坛徽章:
0
5 [报告]
发表于 2008-04-26 23:43 |只看该作者
原帖由 cjaizss 于 2008-4-26 17:58 发表
硬件的演示可能更真确一些:

module test(i,o,clk);
input i;
output o;
reg [2:0] o;
input clk;
initial
begin
   o


CPU 执行一条指令,最终是由硬件执行。而硬件执行单元最终是由几个基本元素组成的电路结构:与门、或门、非门。
CPU 的指令集架构已经决定了与或非门的设计。门电路的开关速度直接影响CPU执行速度。

cjaizss 能不能详细说说你这个演义的原理,让我学习学习
还有一个时钟周期的问题,感觉时序有点模糊,能不能解释一下 CPU 的时钟周期及其它设备的时钟周期的产生情况等

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

回复 #5 mik 的帖子

一般来说,与非门、或非门、非门是三个基本的门,因为与非门比与门使用的晶体管(场效应管)更少,所以就用这三个门来替代原来的三个门,这三个门是用来实现组合电路,而CPU的主体是时序电路,需要一个时钟源不停的在那里触发,局部当然是组合的。CPU的速度主要在于来源于时序中对沿的响应以及其体系结构,当然组合(包括三个基本的门级,当然组合不只这三个门,还有些别的)的速度必须是考虑在沿的响应其中的。
术语:
上升沿:信号从0跳变(其实不是跳变)为1
下降沿:信号从1跳变为0
所谓时钟周期,就是时钟从下(上)沿到下一个下(上)沿的时间。
我的那一段verilog硬件描述中,有3个模块,test,testbench1,testbench2.其中test是主要功能模块,而另外两个是所谓的testbench,用来验证test模块功能的。
test模块有两个输入信号,clk是时钟,i就是所谓的“指令信号”了,输出为o,3bit.
初始的时候,o清0,以后每到clk上沿,如果指令信号为1,则o加1,否则o清0.其实一般那句always @(posedge clk)触发条件都应该接一个reset信号的,always @(posedge clk or posedge reset),但是我只是为了说明问题就免了。
testbench2模块是为了产生指令信号的脉冲(高电平宽5个时钟周期,低电平宽3个时钟周期),自己随便构造的
现在功能模块有了,用来测试的指令信号也产生了,那么再用testbench1把这两个合一起就可以仿真了。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
7 [报告]
发表于 2008-04-27 00:43 |只看该作者
时钟是由时钟源给定,比如晶振,可经过PLL(锁相环)调整频率

论坛徽章:
0
8 [报告]
发表于 2008-04-28 14:30 |只看该作者
原帖由 cjaizss 于 2008-4-27 00:34 发表
一般来说,与非门、或非门、非门是三个基本的门,因为与非门比与门使用的晶体管(场效应管)更少,所以就用这三个门来替代原来的三个门,这三个门是用来实现组合电路,而CPU的主体是时序电路,需要一个时钟源不 ...

这些资料一般在那儿找的啊,属于那一类,我有点感兴趣

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

回复 #8 dgfsdgs 的帖子

这些属于电子行业的东西,但体系结构却是用数学工具提出的,电子只是实施。数字设计你可以去学学

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
10 [报告]
发表于 2008-04-28 14:53 |只看该作者

回复 #8 dgfsdgs 的帖子

这些属于电子行业的东西,但体系结构却是用数学工具提出的,电子只是实施。数字设计你可以去学学
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP