zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/-PlVHWPPTCG5mMz_jEAd6g

    简单介绍Core的实现。

    1. XLen

    XLen定义了总线宽度:

    其值在BaseSubsystemConfig中定义为64:

    2. CoreParams

    CoreParams定义了核心的一系列参数:

    这里不再逐个介绍。

    3. HasCoreParameters

    HasCoreParameters继承自HasTileParameters,从tileParams中取出核心参数,提供了一系列针对核心参数的转换方法以方便使用:

    这里不再逐个介绍。

    相较于core, tile是一个抽象层次更高的概念,core是一个tile。

    core除了包含tile的参数之外,还有core的具体参数。

    4. CoreModule

    CoreModule定义了一个包含了核心参数的模块,也就是核心模块:

    这是一个抽象模块,其抽象成员,也就是IO接口没有定义:

    5. CoreBundle

    CoreBundle是一个包含核心参数的Bundle:

    CoreBundle虽然是抽象类,却并没有抽象成员。标记为抽象的意义在于不能单独实例化进行使用,而只能对其继承扩展而后才可使用。

    6. CoreInterrupts

    定义核心的中断:

    其中:

    a. buserror是总线错误单元(BusErrorUnit)报告的中断;

    b. TileInterrupts基本上包含了核心的全部中断:

    7. HasCoreIO

    HasCoreIO定义了核心的IO接口:

    其中:

    a. 定义一个匿名类:继承自CoreBundle,引入了HasExternallyDrivenTileConstants;

    b. 就地实例化该匿名类new {...};

    c. 匿名类中定义了核心的基本接口,如中断、指令、数据、浮点运算单元、扩展指令、跟踪调试等等;

  • 相关阅读:
    js原型链原理看图说话
    this关键字
    ECMAScript 继承机制实现
    Javascript闭包模拟私有成员
    关于javascript中apply()和call()方法的区别
    arguments.callee
    有用的工具函数
    ECMAScript的世界
    JavaScript 技巧与高级特性
    自定义控件不让在界面拖放。
  • 原文地址:https://www.cnblogs.com/wjcdx/p/13276275.html
Copyright © 2011-2022 走看看