Talk:SPARC T4

http://www.oracle.com/technetwork/server-storage/sun-sparc-enterprise/documentation/o11-090-sparc-t4-arch-496245.pdf?ssSourceSiteId=ocomen

Image
diff

Is this image correct? - it looks like a 2mm sheet of steel with some printing on it, on top of a PCB board. Is it a mock up ? Imgaril (talk) 21:18, 22 October 2011 (UTC)

Modified "excuted simultaneously" description
The top of the article originally described how the SPARC T4 has "8 threads per core of which 2 can be executed simultaneously..." While the white-paper linked at the top of the talk section ("Oracle's SPARC T4-1, SPARC T4-2, SPARC T4-4, and SPARC T4-1B Server Architecture") uses the phrase in the caption for a figure, it is poorly defined and, I believe, leads to confusion.

The white-paper uses this phrase to describe the fact that the S3 cores are superscalar in nature -- they can issue two instructions into the integer execution units every cycle. See, for example, Figure 9 in the whitepaper. This is in contrast to the cores used in the SPARC T3, UltraSPARC T2, and UltraSPARC T1. These, as Table 2 of the paper shows, could not issue >1 instruction into the pipeline's execution units per cycle. (As an aside, while the T2 and T3 had multiple integer execution units per pipeline, these were divided between thread groups within the pipeline, and an instruction was issued into either one or the other of the execution units. See page two of the paper "UltraSPARC T2: A Highly-Threaded, Power-Efficient, SPARC SOC" from the 2007 IEEE ASSCC).

My contention is that saying "2 [threads] can be executed simultaneously" can incorrectly be taken to mean that only two threads are in any way active on the core at a time. This is, of course, untrue. Examples of quotes from the paper "SPARC T4: A Dynamically Threaded Server-on-a-Chip" from the March/April, 2012, issue of IEEE Micro: "Up to 128 instructions can be in flight within the processor core, in any combination across the active threads.", "The SPARC S3 core is dynamically threaded. The shared resources are dynamically and seamlessly allocated between all active threads within the core.", and "Dynamic resource allocation on a SPARC S3 core is done each cycle, based on the number of active threads currently executing."

The last quote, in particular, demonstrates why the text in this Wikipedia article can be confusing -- even the architects from Oracle have used the term "executing" to refer to any work done in the pipeline, rather than to refer to operations entering the integer execution units. Note also that more than even for extremely strict definitions of "execution," two threads can likely be "in execution" simultaneously within an S3 core. An instruction being in the floating point pipeline or cryptography unit is unlikely to block issuing into the integer execution pipeline that shares that issue slot, even if it's from a different thread.

This is a bit of a long description for a small change, but in summary: I've changed the text in the article to more precisely state that more than one instruction can be simultaneously issued into the integer execution units, and I have removed the text stating that only two threads can be executing simultaneously. --Menacer (talk) 06:57, 27 January 2015 (UTC)