引言 中断(异常)系统,可以说是计算机体系结构重要的组成部分,也是最复杂的部分。 现在的很多外设,都提供中断处理机制,来减少CPU的一直占用时间。 本小节就通过一个简单的例子,来说明openrisc的中断机制的使用方法。 1,功能简介 本小节实现一个wishbone slave模块(mycore),此模块接收其对应的linux driver的指令,产生中断信号。 linux driver注册中断处理程序,记录中断发生的次数。 本实验中,在模块加载时(insmod ip_mkg.ko)时触发一次中断。在测试程序read时触发一次中断。 通过代码内部打印查看结果,通过cat /... Read More
转载
2013-05-07 19:31:00
131阅读
2评论
引言之前我们写过OR的裸机程序,写过基于OR的linux设备驱动程序,也反汇编过OR的机器码。本小节,我们将通过一个简单的实验,对OR的汇编(指令集)做一个简单的梳理和測试。1,基本思想要想了解OR的指令集,事实上仅仅要查查OpenRISC architecture manual就能够了,可是不是最...
转载
2014-06-15 14:35:00
79阅读
引言前面我们分析了ORPSoC的整体架构,并对其子系统进行了深入的分析和了解。但对于ORPSoC的核心模块or1200_top及其内部的core--or1200_cpu模块却鲜有涉及,算是ORPSoC分析的盲区,也是蒙在我心里的一片乌云。本小结就对这两个模块的整体架构进行分析,扫除这块所谓的‘盲区’和‘乌云’。 1,a general picture按照惯例,还是先对这两个模块有一个感性认识。下面就是or1200_top和or1200_cpu的模块连接图。CPU模块:or1200_top core模块:or1200_cpu 2,CPU整体架构1>模块接口下面就是CPU的实际模块接口图,从
转载
2013-07-20 18:35:00
170阅读
2评论
引言“喂饱饥饿的CPU”,是计算机体系结构设计者时刻要考虑的问题。要解决这个问题,方法大体可分为两部分,第一就是利用principle of locality而引进的cache技术,缩短取指时间,第二就是采用各种转移预测技术,提高取指正确的概率。只有cache,没有好
转载
2013-08-04 21:08:00
133阅读
2评论
引言ORPSoC目前支持好几种OS,除了前面一直介绍的linux,还支持eCos,eCos是RTOS,如果你的系统对时间的要求比较高,那eCos会是一个不错的选择。 本小节就简单介绍一下,在ORPSoC上如何运行eCos。 1,关于eCos eCos是针对于嵌入式系统而开发的开源、实时
转载
2013-07-09 16:06:00
195阅读
2评论
引言介绍了OpenRISC的GPRS(general purpose register set)。除了GPRS之外,大多数的CPU还有SPRS(special purpose register set)。在分析完or1200的数据通路之后,从本小节开始,我们将分析or1200的控制通路。or1200的控制通路包括sprs,except,freeze三个主要的模块。本小节,我们就着重分析一下sprs
转载
2013-08-27 19:28:00
69阅读
2评论
引言之前,我们分析or1200的控制通路中的sprs模块和except模块,本小节,我们就分析一下or1200控制通路的最后一个模块,就是freeze模块。1,整体分析freeze模块,顾名思义,就是根据各个流水阶段的反馈信号,负责产生控制整条流水线各个阶段的暂停信号,如取指阶段的genpc_freeze和if_freeze信号,解码阶段的id_freeze信号,执行阶段的ex_freeze信号,以及写回阶段的wb_freeze信号,共5个暂停信号。可以这么说,freeze就好像整条流水线的监工,如果发现某一阶段出现问题,就控制那个流水阶段暂停。2,暂停信号产生规则freeze模块产生的这5个
转载
2013-09-02 18:46:00
79阅读
2评论
引言“喂饱饥饿的CPU”,是计算机体系结构设计者时刻要考虑的问题。要解决这个问题,方法大体可分为两部分,第一就是利用principle of locality而引进的cache技术,缩短取指时间,第二就是采用各种转移预测技术,提高取指正确的概率。只有cache,没有好的转移预测,取指时间再短,每次提前取的指令都是错的,不行。只有转移预测,没有cache,即使每次取得指令都对,但是每次取指都需要很长时间,也不行。所以,只有两部分通力合作,才能喂饱饥饿的ALU。“吃的是草,挤出来的是奶”,赞颂的是牛的奉献精神,但是要想让牛奉献更多,没有足够的草也不行啊。之前我们分析了or1200的cache和MM
转载
2013-08-03 21:48:00
47阅读
2评论
引言我们在前面分析了ORPSoC,or1200_top,和or1200_cpu的整体架构,在最近,我们也分析了or1200的pipeline(流水线)中的两级,EX级和IF级。但是,我们还没有从宏观的角度,整体的了解一下or1200的流水线结构,本小节就做这件事情。 1,流水线1>概述关于流水线的概念,历史,划分等等这些内容,在很多文献里都提到过,而且我们之前也介绍过,这里不再展开阐述,如有疑问请参考:http://blog.csdn.net/rill_zhen/article/details/8038697 或者http://en.wikipedia.org/wiki/Pipeline
转载
2013-08-05 18:54:00
185阅读
引言“善妖善老,善始善终”,说的是无论什么事情要从有头有尾,别三分钟热度。对于or1200的流水线来说,MA阶段是最后一个阶段,也是整条流水线的收尾阶段,负责战场的清扫工作。比如,把运算指令的运算结果要写到寄存器里,把从内存读来的数据写到寄存器里,如果在前面的流水阶段出现了异常,WB阶段还要负责把异常指令的地址存到寄存器里。总之呢,就是写回寄存器。本小节,我们就分析一下or1200五级流水线最后一级,也就是WB(write back)。1,整体结构or1200的WB模块,主要包括的rtl文件是or1200_wbmux.v和or1200_rf.v。上面,我们介绍了WB阶段的功能和任务,那么这个模
转载
2013-08-23 18:49:00
131阅读
2评论
引言之前,我们分析了or1200流水线的整体结构,也分析了流水线中IF级,EX级,本小节我们来分析ID(insn decode)级的一些细节。 1,基础or1200的pipeline的ID阶段包含一个模块,就是ctrl模块,其对应的文件是or1200_ctrl.v。ID,就是instruction decode,顾名思义,其主要任务就是对从IF阶段取得的指令进行解析,产生各种控制信号。在分析本模块之前,我们有必要先了解几个相关的概念,这对后面的RTL的分析会有很大帮助。1>forwording & bypassingforwording(前递) 和 bypassing(旁路)技术
转载
2013-08-07 19:02:00
65阅读
2评论
转载
2013-07-30 19:15:00
140阅读
2评论
转载
2013-07-28 20:54:00
59阅读
引言正如前面所说,“如果把SOC比作一个人的话”,那么debug子系统就相当于医生,可以检测身体的健康状态。本小节就简单分析一下ORPSoC的debug子系统。debug系统担任两个主要任务,除了调试以外,还负责对flash的编程。1,子系统的结构 2,结构的说明整个debug系统可简单的分成两部分,上部分和下部分,上下两部分之间通过JTAG协议通信。1>上部分上部分包括PC部分和FTDI。FTDI是一个4in1的芯片,其中两路是jtag接口(FPGA本身一路,ORPSoC的jtag一路),另外两路是uart,如图: or32-debug_proxy是FTDI的驱动,可以用svn在ope
转载
2013-06-07 20:44:00
123阅读
节就试图解决这个问题,但是没有成功,就作为最终解决问题的参考吧。 1,系统的setup1>回顾根据前面的分析
转载
2013-06-24 20:51:00
342阅读
2评论
引言ORPSoC的硬件平台是包含SD card controller控制器的,但是对应的linux里面却没有对应的linux的驱动程序,这使ORPSoC的SD card的使用收到了很大的限制。没有驱动,硬件是不能工作的,SD卡控制器的驱动,linux提供了非常好的framework,在写驱动时只要开发者=关心最底层的部分,就是和硬件直接打交道的部分,即linuxMMC framework的HOST部分。本小节并不介绍linux的MMC的framework,而把注意力放在核心部分,即直接对硬件的操作,即写一个简单的linux driver来验证一下硬件的正确性。 1,linux的MMC/SD的f
转载
2013-06-17 21:48:00
47阅读
引言 之前写了一个wishbone接口的slave,work的很好。 但是要想实现一个功能完成的ipcore,必然要有master接口。 这次
转载
2013-04-11 10:46:00
52阅读
2评论
引言之前,曾经在orpsoc的平台上,测试验证过其sd card controller的linux的驱动,但是并不是很完美,经过努力,终于在eCos下完成了其全部功能的验证,包括驱动层验证,文件系统的挂载,应用层的创建文件,打开文件,复制文件,源文件与复制文件的比较等,此外,还有创建目录,切换目录等操作。
转载
2013-07-18 18:24:00
151阅读
2评论
引言图形,总是给人直观的感觉。想让ORPSoC能有image/video的输
转载
2013-05-11 20:22:00
63阅读
2评论
一:被远程端ubuntu配置參考windows远程ubuntu这篇文章里面的ubuntu配置二:远程端ubuntu配置1:打开Remmina Remote Desktop Client软件,例如以下图:watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTYy...
转载
2015-12-12 11:28:00
490阅读
2评论