1
0
rocket-chip/uncore
Howard Mao 82bbbf908d Fix L2 Writeback deadlock issue
The deadlock condition occurs when the acquire tracker attempts to
request a writeback while the writeback unit is still busy and a
voluntary release for the block to be written back is coming in.

The voluntary release cannot be accepted because it conflicts with the
acquire tracker. The acquire tracker can't merge the voluntary release
because it is waiting to send the writeback. The writeback can't
progress because the release it is waiting on is behind the voluntary
release.

The solution to this is to break the atomicity guarantee between the
acquire tracker and the writeback unit. This allows the voluntary
release tracker to take the voluntary release before the writeback unit
accepts the conflicting request. This causes a potential race condition
for the metadata array. The solution to this is to have the writeback
unit re-read the metadata after accepting a request.
2016-07-26 12:31:08 -07:00
..
project add plugins to make scala doc site and publish to ghpages 2015-04-29 15:34:56 -07:00
src/main/scala Fix L2 Writeback deadlock issue 2016-07-26 12:31:08 -07:00
.gitignore First pages commit 2015-04-29 13:18:26 -07:00
build.sbt Add ability to generate libraryDependency on cde. 2015-10-22 09:57:02 -07:00
LICENSE First pages commit 2015-04-29 13:18:26 -07:00
README.md update README.md 2015-07-29 11:49:21 -07:00

Uncore Library

This is the repository for uncore components assosciated with Rocket chip project. To uses these modules, include this repo as a git submodule within the your chip repository and add it as a project in your chip's build.scala. These components are only dependent on the ucb-bar/chisel repo, i.e.

lazy val uncore = project.dependsOn(chisel)

ScalaDoc for the uncore library is available here and an overview of the TileLink Protocol is available here, with associated CoherencePolicy documentation here.