Leon3FT fault tolerance » History » Version 9
paul leroy, 25/01/2016 02:00 PM
1 | 5 | paul leroy | h1. Leon3/FT fault tolerance |
---|---|---|---|
2 | 3 | paul leroy | |
3 | The explanations hereafter are extracted from the Gaisler IP cores user's manual (grip.pdf). |
||
4 | 5 | paul leroy | There are two aspects in the fault tolerance: register file protection and cache protection. Each aspect is managed using a specific register: |
5 | 3 | paul leroy | * Cache protection is managed with the CCR (Cache Control Register) located in ASI 2, offet 0x00 |
6 | * Register file protection is managed with the ASR16, Register protection control register |
||
7 | 4 | paul leroy | |
8 | 1 | paul leroy | h2. Cache Control Register (ASI 2, offset 0x00) |
9 | |||
10 | 9 | paul leroy | The cache control register located at ASI 0x2, offset 0, and contains control and status registers for the I and D cache. |
11 | |||
12 | 8 | paul leroy | * 31:30 Reserved for future implementations |
13 | * 29 Register file test select (RFT). If set, will allow the read-out of IU register file checkbits via ASI 0x0F. Only available if fault-tolerance is enabled (FT field in this register is non-zero). |
||
14 | * 28 Parity Select (PS) - if set diagnostic read will return 4 check bits in the lsb bits, otherwise tag or data word is returned. Only available if fault-tolerance is enabled (FT field in this register is non-zero). |
||
15 | * 27:24 Test Bits (TB) - if set, check bits will be xored with test bits TB during diagnostic write. Only available if fault-tolerance is enabled (FT field in this register is non-zero). |
||
16 | * 23 Data cache snoop enable (DS) - if set, will enable data cache snooping. |
||
17 | * 22 Flush data cache (FD). If set, will flush the instruction cache. Always reads as zero. |
||
18 | * 21 Flush Instruction cache (FI). If set, will flush the instruction cache. Always reads as zero. |
||
19 | * 20:19 FT scheme (FT) - “00” = no FT, “01” = 4-bit checking implemented |
||
20 | * 18 Reserved for future implementations |
||
21 | * 17 Separate snoop tags (ST). This read-only bit is set if separate snoop tags are implemented. |
||
22 | * 16 Instruction burst fetch (IB). This bit enables burst fill during instruction fetch. |
||
23 | * 15 Instruction cache flush pending (IP). This bit is set when an instruction cache flush operation is in progress |
||
24 | * 14 Data cache flush pending (DP). This bit is set when an data cache flush operation is in progress. |
||
25 | * 13:12 Instruction Tag Errors (ITE) - Number of detected parity errors in the instruction tag cache. Only available if fault-tolerance is enabled (FT field in this register is non-zero). |
||
26 | * 11:10 Instruction Data Errors (IDE) - Number of detected parity errors in the instruction data cache. Only available if fault-tolerance is enabled (FT field in this register is non-zero). |
||
27 | * 9:8 Data Tag Errors (DTE) - Number of detected parity errors in the data tag cache. Only available if fault-tolerance is enabled (FT field in this register is non-zero). |
||
28 | * 7:6 Data Data Errors (DDE) - Number of detected parity errors in the data data cache. Only available iffault-tolerance is enabled (FT field in this register is non-zero). |
||
29 | * 5 Data Cache Freeze on Interrupt (DF) - If set, the data cache will automatically be frozen when an asynchronous interrupt is taken. |
||
30 | * 4 Instruction Cache Freeze on Interrupt (IF) - If set, the instruction cache will automatically be frozen when an asynchronous interrupt is taken. |
||
31 | * 3:2 Data Cache state (DCS) - Indicates the current data cache state according to the following: X0 = disabled, 01 = frozen, 11 = enabled. |
||
32 | * 1:0 Instruction Cache state (ICS) - Indicates the current data cache state according to the following: X0 = disabled, 01 = frozen, 11 = enabled. |
||
33 | 7 | paul leroy | |
34 | 1 | paul leroy | h2. Register protection control register (ASR16) |
35 | |||
36 | ASR register 16 (%asr16) is used to control the IU/FPU register file SEU protection. It is possible to disable the SEU protection by setting the IDI/FDI bits, and to inject errors using the ITE/FTE bits. |
||
37 | Corrected errors in the register file are counted, and available in ICNT and FCNT fields. The counters saturate at their maximum value (7), and should be reset by software after read-out. |
||
38 | 7 | paul leroy | |
39 | * 31:30 FP FT ID - Defines which SEU protection is implemented in the FPU (see table 1123) |
||
40 | * 29:27 FP RF error counter - Number of detected parity errors in the FP register file. |
||
41 | * 26:18 Reserved for future implementations |
||
42 | * 17 FPU RF Test Enable - Enables FPU register file test mode. Parity bits are xored with TB before written to the FPU register file. |
||
43 | * 16 FP RF protection disable (FDI) - Disables FP RF parity protection when set. |
||
44 | * 15:14 IU FT ID - Defines which SEU protection is implemented in the IU (see table 1123) |
||
45 | * 13:11 IU RF error counter - Number of detected parity errors in the IU register file. |
||
46 | * 10:3 RF Test bits (RFTB) - In test mode, these bits are xored with correct parity bits before written to the register file. |
||
47 | * 2 DP ram select (DP) - Only applicable if the IU or FPU register files consists of two dual-port rams. |
||
48 | * 1 IU RF Test Enable - Enables register file test mode. Parity bits are xored with TB before written to the register file. |
||
49 | * 0 IU RF protection disable (IDI) - Disables IU RF parity protection when set. |
||
50 | 4 | paul leroy | |
51 | 3 | paul leroy | *ASI = Address Space Identifier |
52 | *ASR = Ancillary State Register |