OR1200处理器的Store Buffer分析

本文详细介绍了OR1200处理器中Store Buffer(SB)的设计和作用,旨在加快存储操作。SB通过缓冲存储指令,提高CPU效率,避免因外部Memory操作引起的暂停。文中还讨论了SB在数据一致性与错误处理方面的问题,并提供了模块结构和接口信息,以及示例程序以验证SB模块的效果。通过对SB和内部FIFO的分析,展示了SB如何减少存储操作的时钟周期。
摘要由CSDN通过智能技术生成

以下内容摘自《步步惊芯——软核处理器内部设计分析》一书

 

14.1 SB模块的作用与工作过程

      ICache是直接与Wishbone总线接口单元WB_BIU相连的,但是在DCacheWishbone总线接口单元WB_BIU之间插入了一个Store BufferSB)模块,如图1.6所示。

      SB的作用是通过缓冲存储操作,从而加快存储操作。其原理是这样的:当执行存储操作时,可能需要通过WB_BIU将要写的数据写入外部Memory,尤其是在通写法模式下,每次执行存储操作都要将数据写入外部Memory,这样会等待外部Memory完成存储操作,在此期间,CPU处于暂停状态,降低了CPU的效率,引入SB后,如果是存储操作,那么SB模块将本次操作保存起来,同时立即向DCache返回一个存储完成信号(dcsb_ack_o1),使得CPU可以继续执行,然后SB模块会接着完成被其保存起来的存储操作。在SB内部有一个FIFO(先入先出队列)作为缓冲,如果是连续的多个存储操作,那么会将每个存储操作都存放在FIFO中,并向DCache返回存储完成信号,然后SBFIFO中取出要保存的数据,完成存储操作。图14.1是存储操作时SB的工作过程。

      上述设计会带来两个问题:

      (1SB直接向DCache返回存储完成信号,但如果在SB通过WB_BIU模块向外部Memory存储的过程中发生错误如何处理?

      (

开源处理器源代码,学习优秀的代码编写 ////////////////////////////////////////////////////////////////////// //// //// //// OR1200's ALU //// //// //// //// This file is part of the OpenRISC 1200 project //// //// http://www.opencores.org/cores/or1k/ //// //// //// //// Description //// //// ALU //// //// //// //// To Do: //// //// - make it smaller and faster //// //// //// //// Author(s): //// //// - Damjan Lampret, lampret@opencores.org //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2000 Authors and OPENCORES.ORG //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// //////////////////////////////////////////////////////////////////////
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值