tag 标签: openrisc

相关博文
  • 热度 22
    2014-3-27 09:44
    1679 次阅读|
    1 个评论
        OpenRisc 1200 设计分析 一:   OpenRSIC1200 架构 OpenRisc1200 由核心部分与外围部分组成,包括核心部分 CPU/DSP ,外围部分指令和数据高速缓存( Icache , Dcache ),数据和指令 MMU ( MMU : virtual memory support , DMMU,IMMU ),电源管理单元( PowerM ),调试单元( Debug ),定时器( Tick timer ), PIC ( Programmable Interrupt Controller )中断控制器,及它们分别对应的接口。 指令单元( instruction unit ):指令单元应用基本指令流水线从内存子系统取指令,把指令分发到各可用的执行单元,并保存状态历史记录确保可实现精确的异常模型和指令按次序执行。它还执行条件分支和非条件跳转指令。如果合适的执行单元可用,序列发生器能在每个时钟上分发一个有序的指令。执行单元必须辨别源数据是否可用,并确保没有其它指令公用一个目的寄存器。指令单元仅处理 ORBIS32 指令类,当前 OR1200 不支持 ORFPX32/64 和 ORVDX64 指令类。 通用寄存器 (GPRs) : OR1200 使用了 32 个通用 32 位寄存器。 OR1000 架构提供了寄存器文件的映像拷贝,用来在工作上下文之间快速切换,但目前 OR1200 没有提供。 OR1200 把通用寄存器文件作为两个带有 32 个 32 位字能力同步双端口内存使用。 Load/Store 单元( LSU ): load/store 单元在 GPRs 和 cpu 内部总线之间传输所有的数据,它被应用为一个独立的执行单元,安装在内存子系统中。如果有数据依赖性时,仅影响主流水线。 下面是 LSU 的主要特点: 所有的存取指令都采用硬件实现(也包括原子指令) 地址入口缓存( address entry buffer ) 流水线操作 快速存储访问时采用对其访问方式 当存取指令发送时, LSU 会确定是否所有的操作都是可执行的,包括: 地址寄存操作( address register operand ) 源数据寄存操作( source data register operand for store instructions ) 目的数据寄存操作( destination data register operand for load instructions ) 整数执行流水线( Integer Execution Pipeline ) 核采用 32 位整数指令实现下面的指令: 算术指令 比较指令 逻辑指令 翻转和移位指令 大部分的整数指令可以在一个周期内执行完毕,更多详细的关于时序的内容请参考表 TBD 。 MAC 单元( MAC unit ) MAC 单元执行 DSP MAC 指令, MAC 操作是 32*32 with 48-bit 的累加器, MAC 单元全部采用流水线,在任意一个时钟都可以接受新的 MAC 操作。 系统单元( system unit ) 系统单元连接其它没有连接到指令和数据接口的 CPU/DSP 信号,它也实现了所有的系统目标寄存器(如管理员寄存器)。 异常( exception ) 在异常条件发生时会产生核异常,在 OR1200 核中的异常来源有以下: 外部中断请求 某些存储器访问情况 内部错误,如尝试执行不能执行的指令 系统调用 内部异常,如断点异常 异常操作对于软件用户而言是透明的,其它异常也采用同样的机制。当一个异常发生时,控制信号会发送到异常处理程序中,异常在管理模式中进行处理。     RTL 级视图:
  • 热度 20
    2014-1-5 16:50
    3101 次阅读|
    10 个评论
    吐槽在前,每次写完博客,提交总说有敏感词汇,然后几天以后才公布我的博客。。。。吐血了。。。。哪来那么多敏感神经???? 毕业设计做完了,毕业论文写完了,最近闲来无事,跑到opencores下载了一些开源项目,很是惊讶于国外的那些大牛和无私贡献者,他们的能力和他们的态度。 我下载了openrisc 1200源代码进行研究,想对cpu的工作原理有更为深刻的理解(《步步惊芯--软核处理器内部设计分析》《CPU源代码分析与芯片设计及Linux移植》这两本书可以参考),在研究的过程中,体验opencores组织的规范性,他们在官网提供了源代码,说明书,设计规范,编译系统,集成的soc系统demo,觉得他们真的是太厉害了。他们的设计文档和说明写的特别详细,特别到位,而且opencores上很多的工程好像都是一个人设计的。 然后,我就不禁纳闷,国内很多图书,都感觉是东拼一章,西凑一节,逻辑性就不说了,问题是东拼西凑也没弄出来什么东西,一本书读完,根本没什么收获,不知所云。 然后,我就不禁纳闷,为什么国外可以公开openrisc,国内却设计不出来,是设计出来我不知道,还是设计出来性能不行(据说openrisc 性能介于A7和A9之间),还是设计出来没有配套的软硬件服务,没人理会,还是国人压根就不会?为什么“龙芯”的消息好像不是很多,难道是有军方背景,不便公布。 然后,我就不禁纳闷,为啥国外可以公开openrisc,国内连个小的技术都揶揶藏藏,是国外在用战术,故意公开,开拓市场,以后收费,还是啥? 然后,我就不禁发现,原来国内很多论文和图书都是翻译国外的手册,图都是一样的。。。 然后,我就很好奇。清华紫光收购展讯和锐迪科的结果和未来是什么? 也许屌丝不该有如此多好奇。