差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
yinghe_day25_ziyu [2019/05/09 15:26] ziyu |
yinghe_day25_ziyu [2019/05/09 17:00] (当前版本) ziyu |
||
---|---|---|---|
行 3: | 行 3: | ||
指令集(Instruction Set)是计算机硬件和软件的接口。在设计一款CPU时,逻辑上说应该是先有指令集再有硬件实现,因此指令集的选择非常重要。在CPU内部,控制器会根据指令集中的指令,调度ALU、寄存器组、Cache、总线等硬件模块实现指令功能。各种复杂的应用程序在CPU内部运行的时候,都变成了取址、运算、读写等等基本指令,这些基本指令具有指令集规定的位域和位宽,是CPU控制器可以“识别”的二进制码。直接利用指令集中的指令(二进制码)来写代码非常麻烦,因此大多数程序员使用高级语言(例如java,c,c++,C#,pascal,python等等)进行编程,这些依据特定语法生成的代码通过编译器转换成机器指令在CPU中运行。 | 指令集(Instruction Set)是计算机硬件和软件的接口。在设计一款CPU时,逻辑上说应该是先有指令集再有硬件实现,因此指令集的选择非常重要。在CPU内部,控制器会根据指令集中的指令,调度ALU、寄存器组、Cache、总线等硬件模块实现指令功能。各种复杂的应用程序在CPU内部运行的时候,都变成了取址、运算、读写等等基本指令,这些基本指令具有指令集规定的位域和位宽,是CPU控制器可以“识别”的二进制码。直接利用指令集中的指令(二进制码)来写代码非常麻烦,因此大多数程序员使用高级语言(例如java,c,c++,C#,pascal,python等等)进行编程,这些依据特定语法生成的代码通过编译器转换成机器指令在CPU中运行。 | ||
- | 目前商用比较多的指令集有x86指令集、ARM指令集、MIPS指令集等等。不同的CPU生产厂商有可能使用相同的指令集,但实现时设计了不同的硬件电路。例如Intel和AMD都使用了x86指令集,但是它们的CPU芯片性能仍然存在差别。 | + | 目前商用比较多的指令集有x86指令集、ARM指令集、MIPS指令集等等。不同的CPU生产厂商有可能使用相同的指令集,但实现时设计了不同的硬件电路。例如Intel和AMD都使用了x86指令集,但是它们的CPU芯片性能仍然存在差别。x86和ARM指令集是不开源的,未经授权不能基于这些指令集进行CPU设计。 |
+ | |||
+ | RISC-V是一个开源的指令集,不需要授权就可以进行基于RISC-V指令集的CPU设计。加州伯克利大学开发了Chisel硬件构建语言,可以将代码编译成Verilog,是RISC-V CPU理想的开发工具。 |