Cache performance model
Project description
Cache Performance Model
This project provides a model for simulating cache performance, including different cache configurations and replacement policies.
pip install cache-performance-model
Classes
Cache
Cache is an abstract base class for different cache models. It provides common functionality and properties for cache simulation.
DirectMappedCache
DirectMappedCache is a class for simulating a direct-mapped cache. It inherits from Cache and implements the read and write methods.
SetAssociativeCache
SetAssociativeCache is a class for simulating a set-associative cache. It inherits from Cache and implements the read and write methods. It supports different replacement policies such as RANDOM, FIFO, LRU, NMRU, and PLRU.
FullyAssociativeCache
FullyAssociativeCache is a class for simulating a fully associative cache. It inherits from Cache and implements the read and write methods. It supports different replacement policies such as RANDOM, FIFO, LRU, NMRU, and PLRU.
Examples
Direct Mapped Cache
from cache_performance_model.cache_model import DirectMappedCache
# Create a direct-mapped cache instance
cache = DirectMappedCache(cache_line_bytes=64, cache_size_kib=4)
# Perform read and write operations
cache.read(0x1A2B3C4D)
cache.write(0x1A2B3C4D)
# Print cache statistics
cache.stats()
Set Associative Cache
from cache_performance_model.cache_model import SetAssociativeCache
from cache_performance_model.types import ReplacementPolicy
# Create a set-associative cache instance with LRU replacement policy
cache = SetAssociativeCache(cache_line_bytes=64, cache_size_kib=4, n_way=4, replacement_policy=ReplacementPolicy.LRU)
# Perform read and write operations
cache.read(0x1A2B3C4D)
cache.write(0x1A2B3C4D)
# Print cache statistics
cache.stats()
Fully Associative Cache
from cache_performance_model.cache_model import FullyAssociativeCache
from cache_performance_model.types import ReplacementPolicy
# Create a fully associative cache instance with RANDOM replacement policy
cache = FullyAssociativeCache(cache_line_bytes=64, cache_size_kib=4, replacement_policy=ReplacementPolicy.RANDOM)
# Perform read and write operations
cache.read(0x1A2B3C4D)
cache.write(0x1A2B3C4D)
# Print cache statistics
cache.stats()
Installation
To install the required dependencies, run:
pip install -r requirements.txt
Documentation
To build the documentation, run:
nox -s docs
The HTML pages will be in docs/_build/html.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cache_performance_model-0.1.6.tar.gz.
File metadata
- Download URL: cache_performance_model-0.1.6.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
306e84026ab9f376b867e7873e2d8e214108425f1bb7fdea33ff1ccbd4b1c95f
|
|
| MD5 |
cbbddc441de5e2058f9b80c5f15f1270
|
|
| BLAKE2b-256 |
4a3316b1b7c64b5b601fe020aad055800cede92061d436d820af202ecece6530
|
File details
Details for the file cache_performance_model-0.1.6-py3-none-any.whl.
File metadata
- Download URL: cache_performance_model-0.1.6-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec91abb5d386c275a91e0bd4fed505b961c20cb139796c7163737f543485c539
|
|
| MD5 |
5ed2338bdd492accb62b2fbf3829d84e
|
|
| BLAKE2b-256 |
c43316270419997579b45ba6d3d2d5417d5df4ea3e588300c74dab86f85cd431
|