我想回顾并更多地了解编译器、处理器和内存如何在我的程序上运行。我也对所有这一切所依赖的物理学感兴趣。任何好的参考资料或书籍将不胜感激......
这些计算器是否有某种类型的处理器,如计算机?是否可以为他们编程?最后,是否有可能在其上运行.NET Micro Framework?
谢谢.
alt text http://image.made-in-china.com/2f0j00aCAEjhmggQkT/Scientific-Calculator-with-Natural-Textbook-Display-FX-82ES.jpg alt text http://www.ecarepackage.org/ecareshop/images /calculator.jpg
似乎两者都是出于各种原因使用,ARM用于功耗,x86用于扩展功能.
我仍然很好奇,因为我的计算机科学文化有点空洞,像x86(或其前辈)这样的CISC芯片的真正目的是什么.
如果他们使用RISC,我们的计算机会更好吗(例如,如果微软将其内核和工具链移植到RISC,如MIPS或ARM)?或者作为一项任务完成任务是不可能的?
我正在阅读CISC的目的是能够接近更高级别的语言,我觉得这很奇怪.英特尔和微软之间是否有交易专注于x86?
我在其中一台生产服务器机器上运行 perfmon。我的目标是监控处理器负载。
这是结果:http : //img443.imageshack.us/img443/3765/lf6.gif
您能否告诉我为什么进程 W3WP 的“% Processor Time”高于单个处理器的所有其他“% Processor Time”和“% Processor Time”总数?
有什么建议吗?
我一直在寻找第3代和第4代处理器之间的区别.任何人都能告诉我第四代处理器的优点是什么.
1.6GHz的第四代处理器是否优于第三代2.4GHz?
谢谢
我们可以使用C程序显示页表地址吗?页表和扩展页表有什么区别?
我最近对理解低级计算很感兴趣.据我所知,今天广泛使用的计算机遵循x86/x86-64架构.
据我所知,架构,更具体地说,指令集架构(ISA)是程序员能够向CPU发出的指令集.
第一个问题,ISA是不断发展还是保持不变?
我认为它不断发展(意味着新指令不断被添加/先前的指令被修改?)但是旧的处理器如何能够执行用新指令编写的代码?(它不知道新的指令,但应该能够执行代码,因为它具有x86架构).编译器是处理这个东西还是处理器?基本上,相同的指令集如何能够在所有处理器上运行,无论是旧的还是新的?
最后,除了微体系结构,这不是程序员的关注(如果我错了,请纠正我),程序员在处理新处理器时会看到哪些变化?由于微体系结构的变化,旧的指令可能因为有效的实现而快速运行.但是,是否引入了新的指令以允许以前无法完成的操作?或者之前可以用一堆指令做什么,但现在可以通过硬件的变化来完成一个?新的寄存器?还要别的吗?
它是否完成了 - 如果处理器支持这个新的强大指令以加快执行速度,那么使用新指令,否则回退到较慢的旧指令.如果是,谁实现了这个if - else子句?编译器?如果不是,那会发生什么?
我的任务是使用 verilog 实现带有数据存储器的处理器。指令是硬编码的(32 位指令)。我已完成数据存储器的插入。对于加载和存储指令,但是当编译时我得到 - “警告:instruction_reg 的端口 8(目标)需要 8 位,得到 1。”
这是指令集架构的 verilog 代码
<pre><code>
//ALU created
module ALU(out,DATA1,DATA2,Select); //module for ALU
input [7:0]DATA1,DATA2;//8 bit data inputs
input [2:0] Select;//three bit selection
output [7:0]out;//8 bit data output
reg out;//outputt register
always@(DATA1,DATA2,Select)
begin
case(Select)
3'b000: out=DATA1;//forward
3'b001: out=DATA1+DATA2;//add
3'b010: out=DATA1 & DATA2;//and
3'b011: out=DATA1| DATA2; //or
endcase
end
endmodule
//here no need of its test bench
//registerFile created in part2
module Register(clk,busy_wait,INaddr,IN,OUT1addr,OUT1,OUT2addr,OUT2);
input clk;
input [2:0] INaddr;
input [7:0] IN;
input …Run Code Online (Sandbox Code Playgroud) 我试图围绕 Java 虚拟机以及它为什么使用字节码。我知道它被问了很多次,但不知何故我最终无法做出正确的假设,所以我研究了很多东西并决定解释我认为它是如何工作的以及它是否正确。
我知道在 C++ 中,编译器在特定(架构 + 操作系统)上编译源代码。因此,(x86 + Windows)的 C++ 编译版本不会在任何其他架构或操作系统上运行。
Java 编译器在将源代码编译为字节码时,并不根据体系结构或操作系统进行编译。如果在 Windows 或 Mac 上编译,源代码将始终编译为相同的字节码。假设我们编译了,现在将字节码发送到另一台计算机(x86 + windows)。为了让那台计算机运行这个字节码,它需要 JVM。现在,JVM 知道它在什么架构 + 操作系统上运行。(x86 + 窗户)。因此,JVM 会将字节码编译为 x86 + Windows,并生成现在可以由实际计算机运行的机器码。
因此,即使我们使用 Java 虚拟机,我们仍然在我们的操作系统上而不是在虚拟机上运行实际的机器代码。虚拟机只是帮助我们将字节码转换为机器码。
这意味着在使用 Java 时,我们唯一需要担心的是安装 JVM,仅此而已。
我一直认为虚拟机只是一台计算机本身,它可以在自己的隔离位置运行代码,但是对于 JVM,我认为这是不正确的,因为我认为 JVM 生成的机器代码仍然必须是在我们拥有的实际操作系统上运行。
你认为我的假设正确吗?