以下内容摘自《步步惊芯——软核处理器内部设计分析》一书
1、OpenRISC 1000架构
OpenRISC项目包括OpenRISC 1000、OpenRISC 2000两个子项目,OpenRISC 1000项目产生了OpenRISC 1000架构,OR1200就是符合OpenRISC1000架构的处理器,本小节将简单介绍OpenRISC 1000架构。
图1.1 OpenRISC项目
OpenRISC 1000架构是一个开放的架构,其目标是使用在中、高性能的网络和嵌入式计算环境,因此强调通过多种措施改善性能,同时力求简单、低功耗。OpenRISC 1000架构的特点如下:
- 免费、开源的架构
- 32位或64位线性地址空间
- 简单、长度统一的指令,有基本指令集及扩展指令
- 基本指令集(ORBIS32/64:OpenRISC Basic Instruction Set):指令长32位,数据宽度为32或64位
- 向量/DSP扩展指令(ORVDX64:OpenRISC Vector/DSP eXtension):指令长32位,数据宽度为8、16、32、64位
- 浮点扩展指令(ORFPX32/64:OpenRISC Floating-Point eXtension):指令长32位,数据宽度为32或64位
- 简单的内存寻址方式
- 大多数指令中有两个源寄存器(或者一个寄存器、一个常数),一个目的寄存器
- 32个通用寄存器,也可以有多组影子寄存器
- 支持分支延迟
- 可以采用Harvard结构,即分开的指令、数据缓存,分开的指令、数据MMU,也可以不分开,即采用Stanford结构
- 部分功能既可以硬件实现也可以使用软件辅助实现
- 对异常(Exception)发生情况进行了简单区分
- 支持快速上下文切换
OR1200处理器中实现了OpenRISC 1000架构的部分,而不是全部,作为一本剖析OR1200的书,笔者本着够用就行的原则不对OpenRISC 1000着过多的笔墨&#x