MMIX Bug Report ring_size

Table of Content


MMIXware Version


Bug Reported

Initial: 17/11/2014


Laurent Desnogues


In mmix-config, section 36, ring_size is computed to be greater than the maximum waiting time. The time to read a cache line from memory is mem_addr_time+n*j where j is the maximum of mem_read_time and mem_write_time; and n is the number of bus_words per cache line. The number of bytes of a cache line is in the bb field of the cache; and this number is used to initialize n before dividing by bus_words. This can result in a ring_size that is too large by a factor of 8. It will not result in an incorrect execution of the simulator, but allocates more memory than necessary.

Proposed Patch

Scale bus_words by 8 in the line that rounds n up and determines the maximum number of bus_words per cache line.


Laurent Desnogues: That looks OK, though you could have used mem_bus_bytes. Martin Ruckert: That's right, I will use mem_bus_bytes instead. instead of bus_words*8.


Fixed in the repository, Rev. 84, on 2014-11-18.

Please help to keep this site up to date! If you want to point out important material or projects that are not listed here, if you find errors or want to suggest improvements, please send email to email