https://github.com/caleb531/cache-simulator
A processor cache simulator for the MIPS architecture
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (8.4%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
A processor cache simulator for the MIPS architecture
Basic Info
- Host: GitHub
- Owner: caleb531
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://pypi.org/project/cache-simulator/
- Size: 188 KB
Statistics
- Stars: 39
- Watchers: 2
- Forks: 18
- Open Issues: 0
- Releases: 7
Topics
Metadata Files
README.md
Cache Simulator
Copyright 2015-2024 Caleb Evans
Released under the MIT license
This program simulates a processor cache for the MIPS instruction set architecture. It can simulate all three fundamental caching schemes: direct-mapped, n-way set associative, and fully associative.
The program must be run from the command line and requires Python 3.4+ to run. Executing the program will run the simulation and print an ASCII table containing the details for each supplied word address, as well as the final contents of the cache.
For example, the following command simulates a 3-way set associative LRU cache, with 2 words per block. To see all examples and their respective outputs, see examples.txt.
```sh
3-way set associative (LRU; 2 words per block)
cache-simulator --cache-size 24 --num-blocks-per-set 3 --num-words-per-block 2 --word-addrs 3 180 43 2 191 88 190 14 181 44 186 253 ```
This produces the following output:
```
WordAddr BinAddr Tag Index Offset Hit/Miss
3 0000 0011 00000 01 1 miss
180 1011 0100 10110 10 0 miss
43 0010 1011 00101 01 1 miss
2 0000 0010 00000 01 0 HIT
191 1011 1111 10111 11 1 miss
88 0101 1000 01011 00 0 miss
190 1011 1110 10111 11 0 HIT
14 0000 1110 00001 11 0 miss
181 1011 0101 10110 10 1 HIT
44 0010 1100 00101 10 0 miss
186 1011 1010 10111 01 0 miss
253 1111 1101 11111 10 1 miss
Cache
00 01 10 11
88,89 2,3 42,43 186,187 180,181 44,45 252,253 190,191 14,15
```
Installing
You can install Cache Simulator via pip (ideally globally):
pip install cache-simulator
Command-line parameters
Required parameters
--cache-size
The size of the cache in words (recall that one word is four bytes in MIPS).
--word-addrs
One or more word addresses (separated by spaces), where each word address is a base-10 positive integer.
Optional parameters
--num-blocks-per-set
The program internally represents all cache schemes using a set associative
cache. A value of 1 for this parameter (the default) implies a direct-mapped
cache. A value other than 1 implies either a set associative or fully
associative cache.
--num-words-per-block
The number of words to store for each block in the cache; the default value is 1.
--num-addr-bits
The number of bits used to represent each given word address; this value is reflected in the BinAddr column in the reference table. If omitted, the default value is the number of bits needed to represent the largest of the given word addresses.
--replacement-policy
The replacement policy to use for the cache. Accepted values are lru (Least
Recently Used; the default) and mru (Most Recently Used).
Owner
- Name: Caleb Evans
- Login: caleb531
- Kind: user
- Location: Carlsbad, CA
- Website: https://calebevans.me/
- Twitter: caleb531
- Repositories: 76
- Profile: https://github.com/caleb531
Hi, I'm Caleb, a web developer who lives for Christ by building enjoyable apps and useful tools. I hope you are blessed by what I've made!
GitHub Events
Total
- Release event: 1
- Watch event: 2
- Delete event: 3
- Push event: 27
- Fork event: 2
- Create event: 5
Last Year
- Release event: 1
- Watch event: 2
- Delete event: 3
- Push event: 27
- Fork event: 2
- Create event: 5
Committers
Last synced: about 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| Caleb Evans | c****b@c****e | 131 |
| dependabot[bot] | 4****] | 3 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 8 months ago
All Time
- Total issues: 0
- Total pull requests: 7
- Average time to close issues: N/A
- Average time to close pull requests: 2 months
- Total issue authors: 0
- Total pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 1.43
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 6
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- dependabot[bot] (6)
- ckswls56 (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 212 last-month
- Total dependent packages: 0
- Total dependent repositories: 2
- Total versions: 10
- Total maintainers: 1
pypi.org: cache-simulator
A processor cache simulator for the MIPS ISA
- Documentation: https://cache-simulator.readthedocs.io/
- License: mit
-
Latest release: 2.0.2
published 8 months ago
Rankings
Maintainers (1)
Dependencies
- Pygments ==2.10.0
- bleach ==4.1.0
- certifi ==2018.11.29
- chardet ==3.0.4
- charset-normalizer ==2.0.4
- colorama ==0.3.9
- coverage ==5.3
- docutils ==0.14
- flake8 ==3.6.0
- flake8-isort ==2.4
- flake8-polyfill ==1.0.2
- idna ==2.8
- isort ==4.3.4
- mando ==0.6.4
- mccabe ==0.6.1
- nose ==1.3.7
- packaging ==21.0
- pkginfo ==1.5.0.1
- pycodestyle ==2.4.0
- pyflakes ==2.0.0
- pyparsing ==2.4.7
- radon ==2.2.0
- readme-renderer ==24.0
- rednose ==1.3.0
- requests ==2.26.0
- requests-toolbelt ==0.9.1
- six ==1.10.0
- termstyle ==0.1.11
- testfixtures ==5.4.0
- tqdm ==4.31.1
- twine ==1.13.0
- urllib3 ==1.26.6
- webencodings ==0.5.1
- actions/checkout v3 composite
- actions/setup-python v3 composite
- coverallsapp/github-action master composite