atomctl.txt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. We Have Atomic Operation Control (ATOMCTL) Register.
  2. This register determines the effect of using a S32C1I instruction
  3. with various combinations of:
  4. 1. With and without an Coherent Cache Controller which
  5. can do Atomic Transactions to the memory internally.
  6. 2. With and without An Intelligent Memory Controller which
  7. can do Atomic Transactions itself.
  8. The Core comes up with a default value of for the three types of cache ops:
  9. 0x28: (WB: Internal, WT: Internal, BY:Exception)
  10. On the FPGA Cards we typically simulate an Intelligent Memory controller
  11. which can implement RCW transactions. For FPGA cards with an External
  12. Memory controller we let it to the atomic operations internally while
  13. doing a Cached (WB) transaction and use the Memory RCW for un-cached
  14. operations.
  15. For systems without an coherent cache controller, non-MX, we always
  16. use the memory controllers RCW, thought non-MX controlers likely
  17. support the Internal Operation.
  18. CUSTOMER-WARNING:
  19. Virtually all customers buy their memory controllers from vendors that
  20. don't support atomic RCW memory transactions and will likely want to
  21. configure this register to not use RCW.
  22. Developers might find using RCW in Bypass mode convenient when testing
  23. with the cache being bypassed; for example studying cache alias problems.
  24. See Section 4.3.12.4 of ISA; Bits:
  25. WB WT BY
  26. 5 4 | 3 2 | 1 0
  27. 2 Bit
  28. Field
  29. Values WB - Write Back WT - Write Thru BY - Bypass
  30. --------- --------------- ----------------- ----------------
  31. 0 Exception Exception Exception
  32. 1 RCW Transaction RCW Transaction RCW Transaction
  33. 2 Internal Operation Internal Operation Reserved
  34. 3 Reserved Reserved Reserved