By: Adrian (a.delete@this.acm.org), February 21, 2019 1:42 pm
Room: Moderated Discussions
Brendan (btrotter.delete@this.gmail.com) on February 21, 2019 9:07 am wrote:
>
> My definition of RISC is that there's a reduced number of instructions (not a buttload
> of instructions with a different instruction for each occasion, like 80x86, or ARMv8).
>
> I've seen others define it as "no micro-code". I've seen more people define it as "load/store architecture
> that may be extremely complex". I've seen people define it as "designers were too lazy to bother
> doing anything complex/good". I've seen people suggest it's "fixed instruction size".
>
> To be honest, I'm thinking the only true definition of RISC might be "meaningless marketing hype for fools".
>
> - Brendan
>
Today almost everyone who posts on such forums uses the word RISC with a slightly different meaning than everybody else. This is mostly OK, because everyone should organize information in his head using whatever labels work for him, but it also has the undesirable consequence that it leads to many unproductive discussions when people argue only because they did not define the words they are using.
In the beginning, RISC had a quite precise meaning, but few use the word RISC with that sense.
The acronym is not the most appropriate, because the goal of the set of RISC rules was not to have a reduced instruction set.
The set of RISC rules was a recipe to design a CPU which had 2 performance goals:
1. To reach a rate of execution of 1 instruction per clock cycle
2. To have a clock frequency equal to the maximum value achievable in the available technology for the execution in 1 clock cycle of simple operations, i.e. register-to-register word-sized integer additions
To the 2 performance goals there was an additional constraint, to achieve those goals in a die area small enough for the LSI circuits of that time.
All the RISC rules were derived from these goals and they were indeed a good recipe, as proven by many successful designs that followed them.
The small set of instructions resulted from the following rules derived from the goals:
1. No instruction should be included in the ISA if its implementation would require an increase in the complexity of the processor that would determine a decrease of the clock frequency.
2. If the first rule is verified and the instruction can be executed in 1 clock cycle, it may be included in the ISA.
3. If the instruction needs multiple clock cycles for execution, it should not be included in the ISA, because the same result can be obtained with a sequence of simple instructions.
However, the third rule was proven to be wrong very soon, so most RISC designs have replaced it with a modified rule.
The rule about multicycle instruction was justified when the RISC processors were compared with low performance microprogrammed processors, because there the complex instructions were indeed implemented as a sequence of microinstructions. Because the RISC simple instructions were equivalent with the microinstructions of the earlier computers, implementing the complex instructions as a sequence of simple instructions could easily achieve a competitive performance.
Nevertheless, when attempting to introduce real products based on RISC designs, it became clear immediately that for competitive performance with the other mid-eighties computers it was necessary to also implement in hardware more complex operations, the most obvious example being the floating-point operations.
So the third rule had to be modified like this:
3. If the instruction needs multiple clock cycles for execution, then it must be executed in a separate functional unit, so that after a multicycle instruction is issues, simple instructions can continue to be issued and executed in every clock cycle.
With the modified RISC ISA rules, the 2 RISC performance goals can still be reached.
Nevertheless, in this case there is an obvious problem, the 1 IPC goal can be reached only for certain instruction sequences, when you are lucky to have enough independent simple instructions to be executed in parallel with the multicycle instructions.
For many other instruction sequences, there will be stalls, e.g. when an instruction needs a multicycle functional unit that is not free because a previous instruction is in progress, or when an instruction depends on the result of a unfinished multicycle instruction or when the output register of an instruction is read or written by a previous still unfinished instruction.
During the eighties, many research papers were published, discussing various methods of improving the performance of RISC processors, then all those methods were used in real products during the nineties.
Almost all processors that are now called "RISC", with the exception of some low-end microcontrollers, are not RISC in the original sense, but can be seen as derived from a basic RISC processor by adding many post-RISC performance-enhancement features.
Examples of now well-known methods that were proposed during the eighties for increasing the performance of the RISC processors:
- elimination of the stalls due to a busy multicycle unit by making it "superpipelined", i.e. able to initiate in every cycle the execution of independent multicycle instructions
- using either more registers or register renaming to eliminate the stalls due to a shared output register
- out-of-order initiation of instructions, to eliminate all stalls, including those due to dependencies
- going beyond 1 IPC with either VLIW (1983) or superscalar (1987) instruction decoders
- eliminating the stalls due to shared functional units by replicating them
and so on.
The only performance-enhancement method for which I am not aware of an origin before 1990 is SMT. The earliest reference known by me was in 1992 (cited in the 1997 paper that introduced the name "SMT").
While most post-RISC features are at the microarchitecture level, so that they are not visible at the ISA level, a few are architectural, e.g. vector instructions and SMT.
Already in 1988, the research paper from DEC that introduced the word "superpipelined" discussed various methods to enhance the performance of a basic RISC processor and identified 3 orthogonal methods: vector, superscalar and superpipelined.
At that time, because the implementation costs were still large, there was a debate about which is the best method, even if it was already clear that one can use all methods simultaneously. In modern processors, all methods are used, e.g. simple operations are superscalar, complex operations are superpipelined and important complex operations, e.g. FMA are vector and superscalar and superpipelined.
So the conclusion of this historical comments about the original meaning of "RISC", is that dmcq was partially right and partially wrong.
He was right that vector instructions cannot be considered RISC instructions.
Nevertheless, vector instructions can be added to a base RISC instruction set without contradicting in any way the RISC rules, as already noticed in several papers during the eighties.
Adding vector instructions to a RISC processor does not make it less RISCy.
It just becomes both a RISC processor and a vector processor.
>
> My definition of RISC is that there's a reduced number of instructions (not a buttload
> of instructions with a different instruction for each occasion, like 80x86, or ARMv8).
>
> I've seen others define it as "no micro-code". I've seen more people define it as "load/store architecture
> that may be extremely complex". I've seen people define it as "designers were too lazy to bother
> doing anything complex/good". I've seen people suggest it's "fixed instruction size".
>
> To be honest, I'm thinking the only true definition of RISC might be "meaningless marketing hype for fools".
>
> - Brendan
>
Today almost everyone who posts on such forums uses the word RISC with a slightly different meaning than everybody else. This is mostly OK, because everyone should organize information in his head using whatever labels work for him, but it also has the undesirable consequence that it leads to many unproductive discussions when people argue only because they did not define the words they are using.
In the beginning, RISC had a quite precise meaning, but few use the word RISC with that sense.
The acronym is not the most appropriate, because the goal of the set of RISC rules was not to have a reduced instruction set.
The set of RISC rules was a recipe to design a CPU which had 2 performance goals:
1. To reach a rate of execution of 1 instruction per clock cycle
2. To have a clock frequency equal to the maximum value achievable in the available technology for the execution in 1 clock cycle of simple operations, i.e. register-to-register word-sized integer additions
To the 2 performance goals there was an additional constraint, to achieve those goals in a die area small enough for the LSI circuits of that time.
All the RISC rules were derived from these goals and they were indeed a good recipe, as proven by many successful designs that followed them.
The small set of instructions resulted from the following rules derived from the goals:
1. No instruction should be included in the ISA if its implementation would require an increase in the complexity of the processor that would determine a decrease of the clock frequency.
2. If the first rule is verified and the instruction can be executed in 1 clock cycle, it may be included in the ISA.
3. If the instruction needs multiple clock cycles for execution, it should not be included in the ISA, because the same result can be obtained with a sequence of simple instructions.
However, the third rule was proven to be wrong very soon, so most RISC designs have replaced it with a modified rule.
The rule about multicycle instruction was justified when the RISC processors were compared with low performance microprogrammed processors, because there the complex instructions were indeed implemented as a sequence of microinstructions. Because the RISC simple instructions were equivalent with the microinstructions of the earlier computers, implementing the complex instructions as a sequence of simple instructions could easily achieve a competitive performance.
Nevertheless, when attempting to introduce real products based on RISC designs, it became clear immediately that for competitive performance with the other mid-eighties computers it was necessary to also implement in hardware more complex operations, the most obvious example being the floating-point operations.
So the third rule had to be modified like this:
3. If the instruction needs multiple clock cycles for execution, then it must be executed in a separate functional unit, so that after a multicycle instruction is issues, simple instructions can continue to be issued and executed in every clock cycle.
With the modified RISC ISA rules, the 2 RISC performance goals can still be reached.
Nevertheless, in this case there is an obvious problem, the 1 IPC goal can be reached only for certain instruction sequences, when you are lucky to have enough independent simple instructions to be executed in parallel with the multicycle instructions.
For many other instruction sequences, there will be stalls, e.g. when an instruction needs a multicycle functional unit that is not free because a previous instruction is in progress, or when an instruction depends on the result of a unfinished multicycle instruction or when the output register of an instruction is read or written by a previous still unfinished instruction.
During the eighties, many research papers were published, discussing various methods of improving the performance of RISC processors, then all those methods were used in real products during the nineties.
Almost all processors that are now called "RISC", with the exception of some low-end microcontrollers, are not RISC in the original sense, but can be seen as derived from a basic RISC processor by adding many post-RISC performance-enhancement features.
Examples of now well-known methods that were proposed during the eighties for increasing the performance of the RISC processors:
- elimination of the stalls due to a busy multicycle unit by making it "superpipelined", i.e. able to initiate in every cycle the execution of independent multicycle instructions
- using either more registers or register renaming to eliminate the stalls due to a shared output register
- out-of-order initiation of instructions, to eliminate all stalls, including those due to dependencies
- going beyond 1 IPC with either VLIW (1983) or superscalar (1987) instruction decoders
- eliminating the stalls due to shared functional units by replicating them
and so on.
The only performance-enhancement method for which I am not aware of an origin before 1990 is SMT. The earliest reference known by me was in 1992 (cited in the 1997 paper that introduced the name "SMT").
While most post-RISC features are at the microarchitecture level, so that they are not visible at the ISA level, a few are architectural, e.g. vector instructions and SMT.
Already in 1988, the research paper from DEC that introduced the word "superpipelined" discussed various methods to enhance the performance of a basic RISC processor and identified 3 orthogonal methods: vector, superscalar and superpipelined.
At that time, because the implementation costs were still large, there was a debate about which is the best method, even if it was already clear that one can use all methods simultaneously. In modern processors, all methods are used, e.g. simple operations are superscalar, complex operations are superpipelined and important complex operations, e.g. FMA are vector and superscalar and superpipelined.
So the conclusion of this historical comments about the original meaning of "RISC", is that dmcq was partially right and partially wrong.
He was right that vector instructions cannot be considered RISC instructions.
Nevertheless, vector instructions can be added to a base RISC instruction set without contradicting in any way the RISC rules, as already noticed in several papers during the eighties.
Adding vector instructions to a RISC processor does not make it less RISCy.
It just becomes both a RISC processor and a vector processor.
Topic | Posted By | Date |
---|---|---|
ARM announces Ares | nobody in particular | 2019/02/20 07:35 AM |
ARM announces Ares | Adrian | 2019/02/20 07:39 AM |
ARM announces Ares | dmcq | 2019/02/20 09:03 AM |
ARM announces Ares | Michael S | 2019/02/20 09:41 AM |
ARM announces Ares | dmcq | 2019/02/20 11:49 AM |
ARM announces Ares | Michael S | 2019/02/20 12:21 PM |
ARM announces Ares | dmcq | 2019/02/20 01:01 PM |
ARM announces Ares | Wilco | 2019/02/20 01:31 PM |
ARM announces Ares | dmcq | 2019/02/20 02:16 PM |
ARM announces Ares | Wilco | 2019/02/20 02:49 PM |
ARM announces Ares | dmcq | 2019/02/20 03:09 PM |
ARM announces Ares | Wilco | 2019/02/20 03:45 PM |
ARM announces Ares | nobody in particular | 2019/02/20 03:55 PM |
ARM announces Ares | Dan Fay | 2019/02/20 04:44 PM |
ARM announces Ares | Wilco | 2019/02/20 06:06 PM |
ARM announces Ares | Dan Fay | 2019/02/21 07:27 AM |
ARM announces Ares | dmcq | 2019/02/20 04:49 PM |
ARM announces Ares | Wilco | 2019/02/20 05:40 PM |
ARM announces Ares | Charles | 2019/02/21 01:16 AM |
ARM announces Ares | Michael S | 2019/02/21 01:26 AM |
ARM announces Ares | anon | 2019/02/20 07:55 PM |
ARM announces Ares | JS | 2019/02/20 11:59 PM |
*has not hasn't (NT) | JS | 2019/02/21 12:01 AM |
ARM announces Ares | Salvatore De Dominicis | 2019/02/21 06:05 AM |
Definitions of RISC | Brendan | 2019/02/21 09:07 AM |
Definitions of RISC | Michael S | 2019/02/21 09:16 AM |
PDP-8 Not Usually Considered RISC | Mark Roulo | 2019/02/21 01:10 PM |
PDP-8 Not Usually Considered RISC | rwessel | 2019/02/21 06:13 PM |
Definitions of RISC | Adrian | 2019/02/21 01:42 PM |
Definitions of RISC (nod to John Mashey and comp.arch) | wumpus | 2019/02/21 05:29 PM |
Definitions of RISC (nod to John Mashey and comp.arch) | none | 2019/02/21 11:32 PM |
Definitions of RISC (nod to John Mashey and comp.arch) | Michael S | 2019/02/22 03:28 AM |
Definitions of RISC (nod to John Mashey and comp.arch) | none | 2019/02/22 07:01 AM |
ARM announces Ares | lockederboss | 2019/02/20 08:56 AM |
stability? (NT) | anonymous2 | 2019/02/20 09:01 AM |
ARM announces Ares | dmcq | 2019/02/20 09:05 AM |
ARM announces Ares | Groo | 2019/02/20 09:11 AM |
ARM announces Ares | Andrei Frumusanu | 2019/02/20 10:49 AM |
ARM announces Ares | Linus Torvalds | 2019/02/20 09:36 AM |
ARM announces Ares | Michael S | 2019/02/20 09:54 AM |
ARM announces Ares | Geoff Langdale | 2019/02/20 02:07 PM |
ARM announces Ares | dmcq | 2019/02/20 02:32 PM |
ARM announces Ares | none | 2019/02/20 11:03 PM |
That last line should have been removed :-) (NT) | none | 2019/02/20 11:04 PM |
ARM announces Ares | Michael S | 2019/02/21 12:47 AM |
ARM announces Ares | none | 2019/02/21 02:59 AM |
ARM announces Ares | Michael S | 2019/02/21 03:45 AM |
ARM announces Ares | dmcq | 2019/02/21 04:18 AM |
ARM announces Ares | Simon Farnsworth | 2019/02/22 08:43 AM |
ARM announces Ares | anon | 2019/02/20 08:27 PM |
ARM announces Ares | Michael S | 2019/02/21 12:53 AM |
ARM announces Ares | Linus Torvalds | 2019/02/21 08:03 AM |
ARM announces Ares | Michael S | 2019/02/21 08:35 AM |
ARM announces Ares | Michael S | 2019/02/21 08:51 AM |
ARM announces Ares | Foo_ | 2019/02/21 01:40 PM |
ARM announces Ares | aaron spink | 2019/02/21 02:56 PM |
ARM announces Ares | Linus Torvalds | 2019/02/21 03:27 PM |
ARM announces Ares | Stoffels | 2019/02/21 11:21 PM |
ARM announces Ares | Michael S | 2019/02/22 03:15 AM |
ARM announces Ares | Simon Farnsworth | 2019/02/22 08:41 AM |
ARM announces Ares | none | 2019/02/22 09:30 AM |
In other words: nobody will ever get fired for choosing x86 (NT) | Gabriele Svelto | 2019/02/24 12:32 PM |
In other words: nobody will ever get fired for choosing x86 | Simon Farnsworth | 2019/02/25 03:53 AM |
ARM announces Ares | Foo_ | 2019/02/22 01:52 AM |
ARM announces Ares | Gabriele Svelto | 2019/02/24 12:31 PM |
ARM announces Ares | Maynard Handley | 2019/02/25 02:57 AM |
ARM announces Ares | Gabriele Svelto | 2019/02/25 03:21 AM |
ARM announces Ares | Michael S | 2019/02/25 03:58 AM |
ARM announces Ares | nobody in particular | 2019/02/25 04:21 AM |
ARM announces Ares | Adrian | 2019/02/26 07:02 AM |
ARM announces Ares | Maynard Handley | 2019/02/25 11:32 PM |
ARM announces Ares | Gabriele Svelto | 2019/02/26 11:14 AM |
ARM announces Ares | David Hess | 2019/03/19 04:34 PM |
ARM announces Ares | none | 2019/02/26 12:34 AM |
ARM announces Ares | Gabriele Svelto | 2019/02/26 11:16 AM |
ARM announces Ares | none | 2019/02/26 11:19 PM |
ARM announces Ares | end of an era | 2019/02/24 02:18 PM |
Word salad bot strikes again (NT) | nanon | 2019/02/24 11:26 PM |
ARM announces Ares | hobel | 2019/02/25 01:10 AM |
ARM announces Ares | Michael S | 2019/02/25 01:52 AM |
ARM announces Ares | hobel | 2019/02/25 09:48 AM |
ARM announces Ares | Andrew Clough | 2019/02/25 01:07 PM |
ARM announces Ares | Maynard Handley | 2019/02/25 11:38 PM |
ARM announces Ares | John Yates | 2019/02/26 02:43 PM |
ARM announces Ares | Howard Chu | 2019/02/27 05:55 AM |
ARM announces Ares | David Hess | 2019/03/19 04:22 PM |
ARM announces Ares | David Hess | 2019/03/19 03:54 PM |
ARMY announces Ares | dmcq | 2019/03/20 02:12 AM |
ARMY announces Ares | David Hess | 2019/03/20 04:47 AM |
ARMY announces Ares | dmcq | 2019/03/20 05:05 AM |
ARM announces Ares | Groo | 2019/02/21 09:23 AM |
ARM announces Ares | Michael S | 2019/02/21 09:29 AM |
ARM announces Ares | David Hess | 2019/03/19 04:44 PM |
ARM announces Ares | juanrga | 2019/02/21 10:52 AM |
ARM announces Ares | anon | 2019/02/21 07:19 PM |
ARM announces Ares | hobel | 2019/02/22 02:40 AM |
software ecosystems | RichardC | 2019/02/21 03:31 PM |
software ecosystems | Foo_ | 2019/02/22 02:15 AM |
ARM announces Ares | dmcq | 2019/02/21 04:31 PM |
+ on hyperscaling | dmcq | 2019/02/22 07:23 AM |
+ on hyperscaling | Maynard Handley | 2019/02/22 07:38 AM |
+ on hyperscaling | juanrga | 2019/02/22 10:57 AM |
+ on hyperscaling | dmcq | 2019/02/22 07:23 AM |
sorry duplicate | dmcq | 2019/02/22 07:26 AM |
ARM announces Ares | anon | 2019/02/21 07:34 PM |
ARM announces Ares | Brett | 2019/02/21 09:20 PM |
ARM announces Ares | A. Wilcox | 2019/02/22 02:52 PM |
ARM announces Ares | Doug S | 2019/02/20 02:30 PM |
ARM announces Ares | dmcq | 2019/02/20 03:14 PM |
ARM announces Ares | Doug S | 2019/02/21 07:40 AM |
ARM announces Ares | aaron spink | 2019/02/21 03:05 PM |
ARM announces Ares | Maynard Handley | 2019/02/22 07:48 AM |
ARM announces Ares | juanrga | 2019/02/21 01:28 AM |
ARM announces Ares | Michael S | 2019/02/21 02:25 AM |
ARM announces Ares | juanrga | 2019/02/22 03:09 AM |
ARM announces Ares | Maynard Handley | 2019/02/22 07:51 AM |
ARM announces Ares | David Soul | 2019/02/22 10:47 AM |
ARM announces Ares | juanrga | 2019/02/22 11:23 AM |
Chicken or egg, both. | Brett | 2019/02/22 01:21 PM |
Chicken or egg, both. | David Soul | 2019/02/22 05:05 PM |
Chicken or egg, both. | Brett | 2019/02/22 08:55 PM |
ARM sales | juanrga | 2019/02/23 02:55 AM |
ARM sales | aaron spink | 2019/02/23 07:47 AM |
Chicken or egg, both. | Ronald Maas | 2019/02/23 05:33 PM |
Chicken or egg, both. | Magagop | 2019/02/24 10:18 PM |
why not? (NT) | Michael S | 2019/02/25 01:03 AM |
why not? | Not the parent | 2019/02/25 09:36 AM |
why not? | Michael S | 2019/02/25 09:43 AM |
why not? | dmcq | 2019/02/25 10:35 AM |
why not? | Michael S | 2019/02/25 11:03 AM |
why not? | dmcq | 2019/02/25 11:29 AM |
why not? | Not the parent | 2019/02/26 09:08 AM |
why not? | Doug S | 2019/02/26 11:05 AM |
why not? | Not the parent | 2019/02/27 03:51 AM |
why not? | Doug S | 2019/02/27 11:15 AM |
why not? | Not the parent | 2019/02/28 12:43 AM |
why not? | anon | 2019/02/26 10:22 PM |
why not? | Not the parent | 2019/02/27 03:59 AM |
why not? | anon | 2019/02/27 05:42 AM |
why not? | Magagop | 2019/02/27 02:31 PM |
why not? | anon | 2019/02/27 04:02 PM |
why not? | dmcq | 2019/02/27 04:25 PM |
why not? | anon | 2019/02/27 04:56 PM |
why not? | dmcq | 2019/02/27 05:19 PM |
why not? | anon | 2019/02/27 05:46 PM |
why not? | Wilco | 2019/02/28 04:49 AM |
why not? | Jukka Larja | 2019/02/28 06:02 AM |
why not? | Michael S | 2019/02/28 07:32 AM |
why not? | Wilco | 2019/02/28 08:40 AM |
why not? | Doug S | 2019/02/28 09:13 AM |
why not? | Foo_ | 2019/03/01 06:35 AM |
why not? | Doug S | 2019/03/01 10:05 AM |
why not? | anon | 2019/03/01 01:32 PM |
why not? | dmcq | 2019/03/01 02:13 PM |
why not? | anon | 2019/03/01 03:13 PM |
why not? | dmcq | 2019/03/02 02:56 AM |
why not? | anon | 2019/03/02 09:09 AM |
why not? | dmcq | 2019/03/02 09:41 AM |
why not? | anon | 2019/03/02 11:19 AM |
why not? | dmcq | 2019/03/03 02:48 AM |
why not? | Doug S | 2019/03/02 03:53 PM |
why not? | Michael S | 2019/03/02 04:06 PM |
why not? | Doug S | 2019/03/02 11:54 PM |
why not? | Michael S | 2019/03/03 01:58 AM |
why not? | anon | 2019/03/03 04:35 AM |
why not? | dmcq | 2019/03/03 05:33 AM |
I considired dry humor a Brittish specialty. It seems, I was wrong about it. (NT) | Michael S | 2019/03/03 05:39 AM |
why not? | anon | 2019/03/03 09:13 AM |
why not? | Michael S | 2019/03/03 11:41 AM |
why not? | dmcq | 2019/03/03 12:21 PM |
why not? | anon | 2019/03/03 03:15 PM |
why not? | anon | 2019/02/28 07:38 PM |
why not? | Not the parent | 2019/02/28 12:48 AM |
strawman (NT) | anon | 2019/02/28 07:31 PM |
why not? | Michael S | 2019/02/27 02:53 AM |
why not? | Not the parent | 2019/02/27 04:26 AM |
why not? | Michael S | 2019/02/27 04:42 AM |
why not? | dmcq | 2019/02/27 04:49 AM |
why not? | Michael S | 2019/02/27 05:21 AM |
why not? | dmcq | 2019/02/27 06:15 AM |
Selling at multiple layers | Paul A. Clayton | 2019/02/27 10:25 AM |
Selling at multiple layers | Doug S | 2019/02/27 11:45 AM |
Selling at multiple layers | Paul A. Clayton | 2019/02/27 01:32 PM |
Selling at multiple layers | Doug S | 2019/02/27 03:04 PM |
Paul A. Clayton | 2019/02/27 06:06 PM | |
Arm reference board? | Simon Farnsworth | 2019/02/28 11:34 AM |
why not? | Doug S | 2019/02/27 11:46 AM |
why not? (NT) | la mama de murgay | 2019/02/25 09:22 PM |
Chicken or egg, both. | Ronald Maas | 2019/02/25 12:23 PM |
ARM announces Ares | Gabriele Svelto | 2019/02/24 02:07 PM |
ARM announces Ares | juanrga | 2019/03/02 04:40 AM |
ARM announces Ares | Gabriele Svelto | 2019/03/02 07:08 AM |
ARM announces Ares | dmcq | 2019/03/02 09:10 AM |
ARM announces Ares | hobel | 2019/02/22 03:33 PM |
ARM announces Ares | David Soul | 2019/02/22 05:20 PM |
Troll | Doug S | 2019/02/23 12:37 AM |
Troll | David Soul | 2019/02/23 07:59 AM |
ARM announces Ares | Ennis | 2019/02/23 01:18 AM |
ARM announces Ares | Foo_ | 2019/02/23 01:38 AM |
ARM announces Ares | anon | 2019/02/23 02:46 AM |
ARM announces Ares | dmcq | 2019/02/23 04:41 AM |
ARM announces Ares | nobody in particular | 2019/02/26 02:58 AM |
expensive | anonymous2 | 2019/02/26 11:46 PM |
ARM announces Ares | Howard Chu | 2019/02/27 06:19 AM |
ARM announces Ares | Howard Chu | 2019/02/27 06:21 AM |
ARM announces Ares | dmcq | 2019/02/27 06:57 AM |
ARM announces Ares | Jukka Larja | 2019/02/27 07:11 AM |
ARM announces Ares | Michael S | 2019/02/27 07:16 AM |
ARM announces Ares | Doug S | 2019/02/27 11:49 AM |
ARM announces Ares | Michael S | 2019/02/27 12:43 PM |
ARM announces Ares | Doug S | 2019/02/27 03:06 PM |
ARM announces Ares | Gian-Carlo Pascutto | 2019/02/28 04:00 AM |
ARM announces Ares | Gian-Carlo Pascutto | 2019/02/28 04:02 AM |
ARM announces Ares | Michael S | 2019/03/01 02:47 AM |
death by a thousand cuts | Michael S | 2019/03/01 06:27 AM |
death by a thousand cuts | Foo_ | 2019/03/01 06:37 AM |
death by a thousand cuts | dmcq | 2019/03/01 11:10 AM |
ARM announces Ares | Jukka Larja | 2019/02/28 05:31 AM |
ARM announces Ares | Howard Chu | 2019/02/28 08:17 AM |
ARM announces Ares | Gabriele Svelto | 2019/02/28 02:02 PM |
ARM announces Ares | aaron spink | 2019/03/01 12:19 AM |
ARM announces Ares | Andrew Clough | 2019/02/28 10:32 AM |
ARM announces Ares | Andrew Clough | 2019/02/28 10:33 AM |
ARM announces Ares | Foo_ | 2019/03/01 12:55 AM |
ARM announces Ares | Jukka Larja | 2019/03/01 04:40 AM |
ARM announces Ares | Howard Chu | 2019/02/27 07:45 AM |
ARM announces Ares | dmcq | 2019/02/27 08:17 AM |
ARM announces Ares | dmcq | 2019/02/27 08:21 AM |
ARM announces Ares | Howard Chu | 2019/02/27 03:03 PM |
ARM announces Ares | Jukka Larja | 2019/02/28 05:03 AM |
ARM announces Ares | none | 2019/02/27 10:49 PM |
ARM announces Ares | Howard Chu | 2019/02/28 03:26 AM |
ARM announces Ares | Peter E. Fry | 2019/02/28 06:31 PM |
ARM announces Ares | Adrian | 2019/02/28 09:09 PM |
ARM announces Ares | Gabriele Svelto | 2019/03/01 11:56 PM |
ARM announces Ares | Howard Chu | 2019/03/02 09:05 AM |
ARM announces Ares | Gabriele Svelto | 2019/03/02 01:31 PM |