Marleson Graf
c31bc284a8
mem-ruby,sim-se: Fix functional reads for MESI protocols
...
This commit fixes three issues in MESI_Three_Level and MESI_Two_Level
implementations (MEI_Three_Level_HTM might still have issues).
1) Define functional read priorities for the cache controllers which
have states with Maybe_Stale access permission (L1 > L2 > Directory).
2) Fix incorrect access permissions in MESI_Three_Level-L1cache:
* S_IL0 is Read_Only, it is waiting for L0 to acknowledge the
invalidation request before moving to SS, also a Read_Only state.
* E_IL0 is Maybe_Stale, its contents might be valid, since there is a
transition (E_IL0, L0_Ack, EE) with no writeback data.
* M_IL0 is Maybe_Stale, its contents might be valid, since there is a
transition (M_IL0, L0_Ack, MM) with no writeback data.
3) Add missing message types carrying valid data in functional reads:
* INV_DATA is a writeback from L0 to L1.
* DATA is a response to GET_S, but there are scenarios where it might
be the only place with valid data (e.g. during L2 replacement).
Change-Id: Ie44fa317027f9ede272967e7461d337e14355eec
2024-11-18 00:22:45 -08:00
..
2024-11-11 13:51:39 -08:00
2024-06-20 09:45:13 -07:00
2022-11-22 04:56:14 +00:00
2024-02-22 21:57:08 +00:00
2024-11-18 00:22:45 -08:00
2024-10-29 08:53:14 -07:00
2023-12-07 10:21:28 +08:00
2023-12-06 13:41:37 +08:00
2023-12-07 10:21:28 +08:00
2023-06-29 15:11:19 +00:00
2023-06-29 15:11:19 +00:00
2023-10-10 14:01:58 -07:00
2023-06-29 15:11:19 +00:00
2023-06-29 15:11:19 +00:00
2023-06-29 15:11:19 +00:00
2022-11-22 04:55:58 +00:00
2023-02-03 06:11:45 +00:00
2023-01-12 06:41:54 +00:00
2023-11-29 22:06:41 -08:00
2023-02-03 06:11:45 +00:00
2022-11-22 04:56:29 +00:00
2024-09-05 18:00:41 -07:00
2023-08-15 00:41:42 -07:00
2023-02-03 06:11:45 +00:00
2021-07-06 09:59:11 +00:00
2023-02-03 06:11:45 +00:00
2023-11-29 22:06:41 -08:00
2023-12-21 10:21:40 -08:00
2024-08-03 22:49:59 +01:00
2024-08-23 18:02:42 -07:00
2021-07-01 19:08:24 +00:00
2021-07-01 19:08:24 +00:00
2023-03-21 06:53:55 +00:00
2021-07-09 11:24:10 +00:00
2023-02-03 06:11:45 +00:00
2021-07-09 11:24:10 +00:00
2023-03-21 06:53:55 +00:00
2021-07-09 11:24:10 +00:00
2023-02-03 06:11:45 +00:00
2021-07-09 11:24:10 +00:00
2023-11-29 22:06:41 -08:00
2023-11-29 22:06:41 -08:00
2023-11-14 08:05:11 -08:00
2023-11-14 08:05:11 -08:00
2023-11-14 08:05:11 -08:00
2023-11-14 08:05:11 -08:00
2023-11-29 22:06:41 -08:00
2021-07-01 19:08:24 +00:00
2023-02-03 06:11:45 +00:00
2021-07-29 10:17:51 +00:00
2023-02-03 06:11:45 +00:00
2022-08-03 09:10:41 +00:00
2022-11-29 23:44:38 +00:00
2023-05-26 20:08:00 +00:00
2023-05-26 20:08:00 +00:00
2023-11-29 22:06:41 -08:00
2022-06-06 18:31:06 +00:00
2022-06-06 18:31:06 +00:00
2023-11-29 22:06:41 -08:00
2021-07-01 19:08:24 +00:00
2021-07-01 19:08:24 +00:00
2023-11-29 22:06:41 -08:00
2021-07-01 19:08:24 +00:00
2021-07-01 19:08:24 +00:00
2021-07-01 19:08:24 +00:00
2023-02-03 06:11:45 +00:00
2021-08-21 00:54:54 +00:00
2021-07-06 09:59:11 +00:00
2023-07-26 17:34:24 +02:00
2023-05-26 20:08:00 +00:00
2023-02-03 06:11:45 +00:00
2021-07-01 19:08:24 +00:00
2022-06-06 18:31:06 +00:00
2023-05-26 20:08:00 +00:00
2021-07-01 19:08:24 +00:00
2023-11-29 22:06:41 -08:00
2023-11-29 22:06:41 -08:00
2023-11-29 22:06:41 -08:00
2023-11-29 22:06:41 -08:00
2021-09-21 02:05:32 +00:00
2023-08-15 00:41:42 -07:00
2023-02-03 06:11:45 +00:00
2023-12-21 10:21:40 -08:00
2023-12-21 10:21:40 -08:00
2023-11-29 22:06:41 -08:00
2021-07-01 19:08:24 +00:00
2024-02-29 08:12:59 -08:00
2021-07-01 19:08:24 +00:00
2022-11-01 05:51:20 +00:00
2023-08-19 22:50:53 +00:00
2021-10-22 21:43:02 +00:00
2021-10-22 21:43:02 +00:00
2024-07-18 10:12:24 -07:00
2022-03-30 05:18:52 +00:00
2023-09-20 14:00:45 -07:00
2023-09-20 14:00:45 -07:00
2023-02-03 06:11:45 +00:00
2023-02-03 06:11:45 +00:00
2024-03-18 08:21:43 -07:00
2023-02-03 06:11:45 +00:00
2023-08-15 00:38:29 -07:00
2023-08-15 00:40:29 -07:00
2022-11-29 23:44:38 +00:00
2023-02-03 06:11:45 +00:00
2024-11-05 10:45:46 -08:00
2023-11-14 08:05:11 -08:00
2021-07-07 21:37:15 +00:00
2021-10-22 21:43:02 +00:00
2021-10-22 21:43:02 +00:00
2023-02-03 06:11:45 +00:00
2021-07-01 19:08:24 +00:00
2023-11-29 22:06:41 -08:00
2023-04-24 23:30:01 +00:00
2023-04-11 07:34:32 +00:00
2023-11-29 22:06:41 -08:00
2023-02-03 06:11:45 +00:00
2022-11-22 04:56:29 +00:00
2023-11-29 22:06:41 -08:00
2022-10-10 17:24:03 +00:00
2023-09-20 14:16:46 -07:00
2021-07-01 19:08:24 +00:00
2021-07-01 19:08:24 +00:00
2023-02-03 06:11:45 +00:00
2023-02-03 06:11:45 +00:00
2022-08-24 21:47:07 +00:00
2023-02-08 00:27:54 +00:00
2023-02-08 00:27:54 +00:00
2023-11-29 22:06:41 -08:00
2021-12-11 04:00:56 +00:00
2023-02-03 06:11:45 +00:00
2023-02-03 06:11:45 +00:00
2021-07-01 19:08:24 +00:00
2024-06-09 14:08:54 -07:00
2023-08-15 12:40:45 -07:00
2024-06-09 14:08:54 -07:00
2024-06-09 14:08:54 -07:00
2023-08-15 00:41:42 -07:00
2023-08-15 00:41:42 -07:00
2023-11-29 22:06:41 -08:00