|
龙芯设计理念图解芯片物理设计 龙芯中科依托中科院计算所微处理器开云全站官方下载 ,源源不断得到坚实的技术支持和充足的人才储备。芯片物理设计团队先后完成龙芯1号、龙芯2C、龙芯2E和龙芯2F等高性能通用微处理器芯片的设计,采用工艺从0.18um至90nm,最高主频已经达到GHz范围。为了实现更高性能的设计目标,结合通用设计流程先后开发了一系列高性能设计流程及点工具,诸如基于规则H树的高性能时钟树生成(High Performance Clock Tree Generation based on Formal H Tree)、规则化设计方法学(Regular Design Methodology)等等。目前主要设计方向为高性能SOC设计,面向90nm以下工艺(65nm、45num等),产品成果处于国内尖端水平。近十年积累的独创性经验能帮助客户顺利完成物理设计阶段的工作。 IP与SOC定制 龙芯中科的ASIC设计团队采用最先进的计算机辅助大规模集成电路分析设计系统(EDA),该团队具有8年的复杂IC产品设计应验。能够面向0.18um, 0.13um 和90nm设计工艺,为客户提供专业的IP核开发与SOC定制设计服务。公司公司在网络应用、计算机系统方面拥有丰富的开发经验,能够面向相关领域为客户提供IP核与SOC开发的咨询服务,满足客户对IP核及SOC定制的特殊需求。 在商业模式上,公司能够提供从IP/SOC规格定义到最终硅片量产的整个流程提供设计支持,亦可以面向IP核和SOC开发的各个阶段为客户提供设计服务和支持。主要服务范围有:
公司除了能在快速建模、层次化/半层次化设计、物理综合、时钟树综合、静态时序分析、形式验证、功耗和压降分析等IC设计基本环节上提供芯片成功的技术保障外,在深亚微米工艺的信号完整性分析和修复、片上工艺误差(OCV)分析与防范、低功耗设计方面亦拥有成功的设计经验,能够使设计达到时序、功耗和信号完整性的快速收敛。服务中心所拥有大量的通常用IP核、成熟的SOC设计架构以及完整的芯片开发体系和方法,能够满足快速搭建复杂的SOC系统和IP核的要求,加速客户定制IP核与SOC芯片的面市时间。 软件开发 龙芯系统目前采用了一个兼有BIOS和boot loader部分功能的软件--PMON来实现系统的上电自检POST和操作系统内核的加载引导。其有如下主要特点: * 支持ext2 、fat32 、ram 文件系统 * 支持网络引导(tftp),磁盘引导,flash 引导 * 内建调试功能 * USB 2.0 Mass Storage 支持 * 支持MIPS、ARM、PowerPC平台 * BSD Licensed * 具有良好的可扩展性,方便根据客户需求添加新的功能模块
Debian系统当然涵盖了上述几大部份,与一般商业发行的 Linux 发行版作法不同的是Debian习惯从最基本的系统开始,需要什么软件再添加上去。 原则上Debian 就如同其它商业公司发行的 Linux Distribution一样,由Linux 核心再加上一堆软件组合而成的Linux Distribution。但很特别的是Debian是非营利组织,而它的组织架构严谨,有一套完善的软件管理方式,贡献者来自全世界各地,这样的组织比较不会有像公司的营运压力,另外也较能广纳各方意见。 在 Debian 组织内部有发布等级制度,分为 stable 、 testing 及unstable三类。从字面上就可以看出,stable 是最稳定的版本,unstable 则为开发中的版本。目前 Debian 已经有超过 3950 个软件包,而且还会陆续增加,因为 Debian并非商业公司,所以人员并不会受到公司盛衰影响。 系统内核 系统软件 目前龙芯平台上采用的是GNU的GCC工具链。由于MIPS的自身的一些原因,MIPS的ABI分为o32、n32和n64三种约定。不同版本的工具链也做了不同程度的优化。 2、调试器 主要包括gdb和Ejtag工具。 其中gdb可以在启动操作系统后,对程序进行跟踪调试。而Ejtag则是针对新的平台开发出来后,在串口不能正常显示的时刻进行BIOS级的调试,可以设置一些指令断点和数据断点进行跟踪调试。 应用软件 X Window 系统也是一个基于客户/服务器(Client/Server)结构的窗口系统,在诞生之初是UNIX系统上使用的图形用户界面,没有PC版,它允许在任一台UNIX主机(客户端)上运行程序,而在基于X的终端(服务器)上显示出来。X Window 系统系统是目前最常用的免费图形系统,配置在大多数的UNIX系统、DEC的VAX/VMS操作系统以及Linux系统中,在后期又有了XFree86开发计划,其主要目的就是提供一个PC版的X窗口,主要移植到Intel的x86体系架构的处理器上,所以也称作是XFree86计划,它虽然不是以GPL授权,但是也可以自由拷贝以及传播,也可以使用在商业用途上。 X Window 系统版本11,也就是X11图形系统,产生与1987年,X11图形系统是X Window 系统发展的一个重要里程碑.X11是一个对网络透明的客户/服务器架构的图形显示系统,它支持应用程序在你的屏幕上绘制象素,线条,文字,图象等等。X11还包括一些其它的辅助的函数库,使得它可以容易地绘制用户界面,例如:按钮,文本输入区等等,其组成主要有三部分:客户端、服务器和X协议。 严格地说,X Window 系统并不是一个软件,而是一个协议(protocal),这个协议定义一个系统成品所必需具备的功能(就如同 TCP/IP协议,定义软件所应具备的功能)。任何系统能满足此协议及符合X协会其他的规范,便可称为X。 X11是Unix的图形系统标准(X Window System)。Linux、各种 BSD版本和多数的商用Unix都采用它。Linux下的桌面图形系统已经发展的相当完善了,其GUI由窗口系统,窗口管理器,工具包和风格等几个部分组成,目前的桌面环境主要有两种: 1.KDE(K Desktop Environment); 2.Gnome(GNU Network Object Model Environment)。 二者的界面非常相似。KDE以Qt作为其底层库,而Gnome采用的是GTK库,Qt最初并不遵从GPL协议,而GTK是完全遵守GPL宣言的,这也使得Gnome现在已经成为大多数Linux发行版本的首选,有关GTK和Qt会在后面的部分有详细的介绍。 2>、Mplayer 龙芯2号平台上运行的Mplayer可以流畅地播放mpeg2、mpeg4、rm及avi等多种视频格式。在解码过程中,是采用CPU进行的软解码,需要根据程序行为手动进行改写SIMD指令,来提高显示性能。 其他 1>、gprof gprof是Linux平台下应用比较广泛的一个程序分析工具,它借助编译选项在程序中插入性能数据收集代码,可以支持C/C++,Fortran等编程语言。当程序运行时,插桩代码首先设置一个定时器,定时器超时后,操作系统给程序发送一个信号,进行数据收集。利用gprof可以了解程序中每个函数的执行次数和执行时间等信息[27]。使用gprof进行性能分析,需要对被分析程序进行重新编译。然而很多时候,人们不可能得到程序源码,这是使用gprof 最大的局限性。 2>、模拟器 目前龙芯系列模拟器主要包括ICT-GODSON、SIM-GODSON(1号和2号)及gxemul模拟器。 能够精确模拟处理器的模拟器对于性能分析和优化有着非常重要的作用,首先模拟器的灵活性非常好,它几乎可以收集所有需要的数据。在程序运行过程中,处理器内部会发生许多事件,例如cache缺失、TLB缺失、转移猜测失效,以及处理器各个功能部件的使用情况、流水线是否遇到阻塞以及发生阻塞的位置。这些事件是程序的执行性能的微观反映。在真实的处理器中,由于硬件开销等因素,很难全面、精确的获取这些数据。而对于一个设计合理的模拟器来说,这些事件可以用很小的开销就能获得。因此模拟器不仅在处理器设计,起着功能验证的作用,对于程序性能分析、处理器结构优化也有着重要作用。 在龙芯系列处理器研发过程中,模拟器是一个重要的辅助工具。ICT-godson是一个cycle-by-cycle的信号级模拟器,它与处理器的结构直接对应。它的特点是非常精确,对于验证处理器设计非常有效;同时它也支持详细的性能数据收集。通过ICT-godson几乎可以收集性能分析的所有信息,如cache失效、转移猜测错误、处理器中各个队列占用情况等等。这对早期的龙芯结构确立,程序性能分析发挥了重要作用。由于ICT-godson实现的是信号级模拟,模拟非常详细,因此模拟速度不是很快,虽然经过算法优化,还是不能适应大规模程序分析的要求。为了提高模拟速度同时又不至于较大的损失模拟精度,后来设计了sim-godson。sim-godson是基于simplescalar工具集开发出的执行驱动的性能模拟器。它具有执行速度快、灵活性高,支持大程序性能评估等众多优点。 基于模拟的性能分析主要用于处理器设计阶段,它在运行速度上有许多局限性,同时它与真实的机器还存在很多差异。 3>、oprofile工具 Oprofile是一个基于统计的分析工具,它的工作基础是处理器的性能计数器。通过软件可以设置计数初值以及计数的条件如控制用户态计数、核心态计数。当计数溢出时,将触发一个中断。根据统计规律,程序运行过程中发生的事件越多,则触发的中断也越多。当性能计数器产生中断时,操作系统会保存中断触发时刻的处理器状态,如程序寄存器、程序指针PC等。这样,在性能计数器的中断例程中就可以知道中断时刻是在核心态还是用户态,以及被中断的进程。根据进程信息可以知道进程执行的是哪个文件,再根据被中断时刻的PC值就可以定位该时刻所执行指令在文件(包括可执行文件和库文件)中的位置。如果程序文件中包含了符号信息,则还可以很方便地定位中断时刻执行的函数。 龙芯2E零号性能计数器,每个计数器可以用于统计处理器的周期事件,它在每个处理器周期进行加1,当发生溢出后,就产生一个中断。在中断处理函数中,oprofile记录被中断的是内核代码还是用户进程以及中断时刻程序的PC值。这些信息被简单地记录到内核缓冲区里面,因此中断开销非常小。当缓冲区的剩余空间小于一个阀值后,在后台等待的daemon进程被唤醒,它读取内核缓冲区数据,进行处理之后写入磁盘文件。 Oprofile包括内核支持与用户程序两大部分。内核支持包括一个与处理器平台相关的部分,和一个与用户程序交互的虚拟文件系统接口。平台相关部分直接与处理器的性能计数器进行交互,它负责事件中断处理,寄存器初始化等工作。平台相关部分与用户程序的通信则通过与平台无关的虚拟的文件系统接口oprofilefs来完成。用户程序方面包括用于收集数据并进行分析处理的daemon程序,分析报告生成工具opreport,opannotate以及其他一些辅助工具。 龙芯2E的性能计数器相对比较简单,每个事件只能由固定的计数器进行计数。龙芯2E性能计数器一共可以对32个事件进行计数,这32个事件被分成两组,分别由一个计数器进行计数。将内核支持划分为平台相关以及平台无关两个部分屏蔽了不同平台间性能计数器的差别,使得用户程序能够通过相同的虚拟文件系统接口对计数器进行控制。平台相关部分需要实现3个功能:提供一个统一的初始化入口,实现用户对性能计数器的控制与中断处理。在初始化部分,需要填充一个函数表,如开启与停止计数、设置寄存器等函数;在中断处理函数中,主要是调用通用驱动接口,将发生中断时刻的程序PC等信息记录到内核缓冲区,此外它还要对性能计数器进行重新设置以产生周期性中断采样[26]。 用户分析工具包括数据收集daemon程序、性能报告生成程序以及一些其它的辅助工具。性能数据收集程序通过内核中提供的虚拟文件系统接口,将event_buffer中的数据写入到采样文件(sample files)。而报告生成工具则以采样文件为输入,输出便于程序员分析的报告。 不论是数据收集程序,还是报告生成工具都支持过滤规则:仅收集用户所关心的数据,对其他的数据则丢弃不处理。此外,为了便于比较修改优化后的程序,oprofile提供的辅助工具可以将采样文件等数据以会话的形式保存。不同的会话可以进行比较分析,这对程序的分析优化是非常有用的。 责编: 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:kaiyun体育官方人口
文章著作权分属kaiyun体育官方人口
、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
最新专题 推荐圈子 |
|