aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2025-12-15add initial simt rv64 coreKimplul
2025-08-29bump contsKimplul
2025-08-29remove torus3dKimplul
+ Might try to fix it at some point in the future but for now I don't want to carry around broken code
2025-08-10make tests actually usefulKimplul
+ Apparently quite a few components are currently broken, didn't even remember
2025-08-09formatKimplul
2025-08-09refactor mesh3d to match 2d,1dKimplul
2025-08-09add 1d mesh node and refactor 2d mesh nodeKimplul
+ Seems to decrease performance a little bit, presumably due to extra register copy, but simplifies code a lot and opens up more genericism so I'll consider it an upgrade for now. Copying packets around is rather slow though, might in the future move to some kind of pointer based packet handling
2025-08-09use newer contsKimplul
2025-03-04add fat butterflyKimplul
2025-03-02add ideal allocation trackerKimplul
+ Kind of like CHERI, but uses out-of-line pointer information. The idea is that a core that is compatible with ALLOC_IF queries the allocation tracker if an address is legal and gets a response. This ideal tracker effectively has infinite memory and doesn't talk to any other components, but a real implementation might want to limit the allocations per process or chat with some reserved memory region somewhere else in the system to maintain a binary tree or something.
2025-03-02add an idealized NoCKimplul
+ Purely virtual, doesn't exist, but would be 'theoretically' ideal.
2025-02-24overhaul meshesKimplul
+ Previous name was grid
2025-02-233d meshKimplul
2025-02-23initial torus stuffKimplul
+ Not quite deadlock free for 2D/3D for whatever reason
2024-09-26starvation seems to workKimplul
+ With the limitation that a grid node can only attempt one move per clock, which *seems* to be the easiest strategy to implement in hardware, but I should try experimenting with more complex routing/priority assignment schemes to speed up the system overall
2024-09-25somewhat working gridKimplul
+ Starvation is still an issue, but adding a slight bit of randomness seems to help a bit. Also, simulating massive systems like 64x64 is a bit too slow, so scale grid example down to 16x16. 256 cores is still a fair bit, but I might try to think of some optimization methods. I wonder at what point threading becomes faster than just running on a single core? + Test now also sets processor nodes to sleep to avoid starvation issue, seems like an opportunity for a DoS attack if someone can get enough cores to bombard a single node with enough traffic. The riscv64 processor has an initial control interface, very messy code, should probably come up with a more elegant way to deal with sleep/wakeups
2024-09-25technically speaking deadlock free, but starvesKimplul
2024-09-24initial work towards message passing interfaceKimplul
+ As they are currently implemented, grid *may* get stuck if two nodes try to send to eachother at the same time, I should probably add in some kind of input buffer as well
2024-09-22start experimenting with processor gridsKimplul
2023-05-29silence some trivial warningsKimplul
2023-05-29add correct return type to destroy_snoopKimplul
2023-05-29speed up packet allocation by switching to mallocKimplul
+ Also allow reusing packets, though only with external buffers.
2023-05-15formatKimplul
2023-05-05add async packetsKimplul
2023-05-01update license stuffKimplul
2023-04-30refactor component treeKimplul
2023-04-30initialKimplul