Skip to main content

Lint > Tests > Publish codecov Documentation

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.

Metadata

Release files for cache-performance-model 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cache-performance-model 0.1.6
File Size Uploaded
cache_performance_model-0.1.6.tar.gz 11.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cache-performance-model 0.1.6
File Interpreter ABI Platform
cache_performance_model-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 21.3 kB

Release files / cache_performance_model-0.1.6.tar.gz

Download URL cache_performance_model-0.1.6.tar.gz
Size 11.3 kB
Tags Source
SHA-256 checksum
How to use checksums
306e84026ab9f376b867e7873e2d8e214108425f1bb7fdea33ff1ccbd4b1c95f
BLAKE2b-256 checksum
How to use checksums
4a3316b1b7c64b5b601fe020aad055800cede92061d436d820af202ecece6530
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.9

Release files / cache_performance_model-0.1.6-py3-none-any.whl

Download URL cache_performance_model-0.1.6-py3-none-any.whl
Size 10.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ec91abb5d386c275a91e0bd4fed505b961c20cb139796c7163737f543485c539
BLAKE2b-256 checksum
How to use checksums
c43316270419997579b45ba6d3d2d5417d5df4ea3e588300c74dab86f85cd431
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.3

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page