Xbox One (Durango) Technical hardware investigation

Status
Not open for further replies.
Now they can unlock the special special sauce!

Cool, it sounds more like "thanks for being our OS updates beta tester for free so we save in QA" to me, but... who knows?
(aka how a game that runs in R3 and under an hypervisor can break a console?)
 
Cool, it sounds more like "thanks for being our OS updates beta tester for free so we save in QA" to me, but... who knows?

Swings and roundabouts. It's an optional programme and part of the goal of the program is for users to help test new OS build. While I think it's unlikely that anything hardware-destroying would slip through Microsoft's Q/A, it's a little reassurance for those in the programme that should something bad happen, Microsoft have your back.
 
Swings and roundabouts. It's an optional programme and part of the goal of the program is for users to help test new OS build.
Then, I'd say it is needed. It may happen (not that the hardware breaks, software bricks are way more problable than that).
 
I found some patents that may be related to XB1:

INSTRUCTION SET SPECIFIC EXECUTION ISOLATION

A system on a chip (SoC) or other integrated system can include a first processor and at least one additional processor sharing a page table. The shared page table can include permission bits including a first permission indicator supporting the processor and a second permission indicator supporting at least one of the at least one additional processor. In one implementation, that page table can include at least one additional bit to accommodate encodings that support the at least one additional processor. When one of the processors accesses memory, a method is performed in which a shared page table is accessed and a value of the permission indicator(s) is read from the page table to determine permissions for performing certain actions including executing a page; read/write of the page; or kernel mode with respect to the page.

Read more: http://www.faqs.org/patents/app/20140331019#ixzz3JzD49S2t


GPU SELF THROTTLING

Techniques for GPU self throttling are described. In one or more embodiments, timing information for GPU frame processing is obtained using a timeline for the GPU. This may occur by inserting callbacks into the GPU processing timeline. An elapsed time for unpredictable work that is inserted into the GPU workload is determined based on the obtained timing information. A decision is then made regarding whether to "throttle" designated optional/non-critical portions of the work for a frame based on the amount of elapsed time. In one approach the elapsed time is compared to a configurable timing threshold. If the elapsed time exceeds the threshold, work is throttled by performing light or no processing for one or more optional portions of a frame. If the elapsed time is less than the threshold, heavy processing (e.g., "normal" work) is performed for the frame.

Read more: http://www.faqs.org/patents/app/20130083042#ixzz3JzDQiCDU

CPU-GPU PARALLELIZATION

Embodiments described herein relate to improving throughput of a CPU and a GPU working in conjunction to render graphics. Time frames for executing CPU and GPU work units are synchronized with a refresh rate of a display. Pending CPU work is performed when a time frame starts (a vsync occurs). When a prior GPU work unit is still executing on the GPU, then a parallel mode is entered. In the parallel mode, some GPU work and some CPU work is performed concurrently. When the parallel mode is exited, for example when there is no CPU work to perform, the parallel mode may be exited.

Read more: http://www.faqs.org/patents/app/20140168229#ixzz3JzDvnmJ8
 
vh26w9eddxy3brz9kfkc.jpg


http://www.computer.org/csdl/mags/mi/preprint/06756701.pdf
 
What's the significance of these details? I find these sentences most interesting.

"The graphics corecontains two graphics command and two compute command processors. Each command processor supports 16 work streams.The two geometryprimitive engines, 12 compute units, and four render backend depth and color engines in the graphics core support twoindependent graphics contexts."

Does this mean the GPU can do two graphics/compute at the same time? How does this differ from the current AMD GCN APU?
 
It's the same as current AMD GCN APU. There's nothing different about XB1's core architecture. There are a few anciliary additions/tweaks, but the basic operation, the job scheduling and execution, is 100% vanilla GCN as per PC components. For comparison, PS4 is exactly the same save for more queues to stack jobs for selection and maybe a couple other little variations, of no importance to this thread).
 
A summary of the article :


Main SoC


  • Unified, but not uniform, main memory
  • Universal host-guest virtual memory management
  • High bandwidth CPU cache coherency
  • Power islands matching features and performance to active tasks


Main Memory

  • MMU hardware maps guest virtual addresses to guest physical addresses to physical addresses for virtualization and security.
  • The implementation sizes caching of fully translated page addresses and uses large pages where appropriate to avoid significant performance impact from the two-dimensional translation.
  • System software manages physical memory allocation.
  • System software and hardware keep page tables synchronized so that CPU, GPU, and other processors can share memory, pass pointers rather than copying data, and a linear data structure in a GPU or CPU virtual space can have physical pages scattered in DRAM and SRAM.
  • The GPU graphics core and several specialized processors share the GPU MMU, which supports 16 virtual spaces.
  • PCIe input and output and audio processors share the IO MMU, which supports virtual spaces for each PCI bus/device/function.
  • Each CPU core has its own MMU (CPU access to SRAM maps through a CPU MMU and the GPU MMU).
  • The design provides 32 GB/second peak DRAM access with hardware-maintained CPU cache coherencyfor data shared by the CPU, GPU, and other processors.
  • Hardware-maintained coherency improves performance and software reliability.


CPU

  • The CPU contains minor modifications from earlier Jaguar implementations to support two clusters and increased CPU cache coherent bandwidth.


GPU

  • The GPU contains AMD graphics technology supporting a customized version of Microsoft DirectX graphics features.
  • Hardware and software customizations provide more direct access to hardware resources than standard DirectX.
  • They reduce CPU overhead to manage graphics activity and combined CPU and GPU processing. Kinect makes extensive use of combined CPU-GPU computation.
  • The graphics core contains two graphics command and two compute command processors. Each command processor supports 16 work streams.
  • The two geometry primitive engines, 12 compute units, and four render backend depth and color engines in the graphics core support two independent graphics contexts.


Independent GPU Processors and Functions


  • Eight independent processors and functions share the GPU MMU. These engines support applications and system services. They augment GPU and CPU processing, and are more power- performance efficient at their task




Audio Processors

  • The processors support applications and system services with multiple work queues.Collectively they would require two CPU cores to match their audio processing capability.
  • The four DSP cores are Tensilica-based designs incorporating standard and specialized instructions. Two include single precision vector floating point totaling 15.4 billion operations per second.
 
It's the same as current AMD GCN APU. There's nothing different about XB1's core architecture. There are a few anciliary additions/tweaks, but the basic operation, the job scheduling and execution, is 100% vanilla GCN as per PC components. For comparison, PS4 is exactly the same save for more queues to stack jobs for selection and maybe a couple other little variations, of no importance to this thread).

Are you sure? I thought at least supporting "two independent graphics contexts" is new. Or it's not?
 
What's the significance of these details? I find these sentences most interesting.

"The graphics corecontains two graphics command and two compute command processors. Each command processor supports 16 work streams.The two geometryprimitive engines, 12 compute units, and four render backend depth and color engines in the graphics core support twoindependent graphics contexts."

Does this mean the GPU can do two graphics/compute at the same time? How does this differ from the current AMD GCN APU?

IMO The next generation of AMD APU Taking advantages of this feature.

ypihixabt3qy50rajvpu.jpg


http://en.wikipedia.org/wiki/AMD_Accelerated_Processing_Unit#AMD_Heterogeneous_System_Architecture
 
Are you sure? I thought at least supporting "two independent graphics contexts" is new. Or it's not?
IIRC earlier, much earlier in this thread we did consider it new. But the second context IIRC was deemed for use as the GUI/3rd pane; I thought this was in reference to you hit the home button and it' pops out you see the xbox home, but you see your game running a different resolution from your game gui, which is running separately from the xbox home?
 
IIRC earlier, much earlier in this thread we did consider it new. But the second context IIRC was deemed for use as the GUI/3rd pane; I thought this was in reference to you hit the home button and it' pops out you see the xbox home, but you see your game running a different resolution from your game gui, which is running separately from the xbox home?

It was in DX12 thread (thanks to Shifty) but at the time I was insisting that XB1 approach is different than PS4. On PS4 there are 2 graphics command processors (GCPs) but one of them is exclusively for System (HP) with reduced features, and the other one is for games with common features.

On XB1 there are two customized GCPs with similar features that allows hardware to render game at high priority and system at low priority. There is no HP GCP or LP GCP in XB1, it's only the render priority.
To facilitate this, in addition to asynchronous compute queues, the Xbox One hardware supports two concurrent render pipes. The two render pipes can allow the hardware to render title content at high priority while concurrently rendering system content at low priority. The GPU hardware scheduler is designed to maximise throughput and automatically fills "holes" in the high-priority processing. This can allow the system rendering to make use of the ROPs for fill, for example, while the title is simultaneously doing synchronous compute operations on the Compute Units.

http://www.eurogamer.net/articles/digitalfoundry-the-complete-xbox-one-interview

From the article:

The two geometry primitive engines, 12 compute units, and four render backend depth and color engines in the graphics core support two independent graphics contexts.

If it was like PS4 they only need to give some CUs or some HW allocations to the System (as this anonymous dev mentioned). But they changed many part of the GPU to support 2 graphics contexts, so it seems to me that even games (at some point) could use this feature. However I don't know what would be it's benefit. :|

Nope. ;)
As PS4 has two as well, I understand it's a standard GCN feature, although perhaps one that hasn't made it into the PC GPUs yet?

Before it was about the number of GCPs (regardless of how they differ in abilities/responsibilities), but now we know that "two geometry primitive engines, 12 compute units, and four render backend depth and color engines in the graphics core support two independent graphics contexts". So, I think that it should be more than standard GCN feature (I'm not sure, but it seems new to me). Also, MS insisted that they made some customizations to the graphics cores/GCN before (see this slide, they said DX11.1+ means that there are some features above DX11.1 in XB1 HW), and they did it again in this article. Maybe they are referring to some DX12 features? :D
 
Last edited:
It's the same as current AMD GCN APU. There's nothing different about XB1's core architecture. There are a few anciliary additions/tweaks, but the basic operation, the job scheduling and execution, is 100% vanilla GCN as per PC components. For comparison, PS4 is exactly the same save for more queues to stack jobs for selection and maybe a couple other little variations, of no importance to this thread).

When did 2 command processors become vanilla on GCN?
 
Before it was about the number of GCPs (regardless of how they differ in abilities/responsibilities), but now we know that "two geometry primitive engines, 12 compute units, and four render backend depth and color engines in the graphics core support two independent graphics contexts". So, I think that it should be more than standard GCN feature (I'm not sure, but it seems new to me). Also, MS insisted that they made some customizations to the graphics cores/GCN before (see this slide, they said DX11.1+ means that there are some features above DX11.1 in XB1 HW), and they did it again in this article. Maybe they are referring to some DX12 features? :D

My understanding was that GCN itself was DX11.1+ but there is no real point talking about that much in the PC space because the abstraction layers matter. On a console that is a different story though.
 
My understanding was that GCN itself was DX11.1+ but there is no real point talking about that much in the PC space because the abstraction layers matter. On a console that is a different story though.

GCN may have more features than what DX11/11.1/11.2 requires, but the "+" in "DX11.1+" refers to additional features in XB1 HW/SW compared to standard DX11/11.1/11.2 (according to John Sell at Hot Chips conference) and his recent article:

The GPU contains AMD graphics technology supporting a customized version of Microsoft DirectX graphics features. Hardware and software customizations provide more direct access to hardware resources than standard DirectX. They reduce CPU overhead to manage graphics activity and combined CPU and GPU processing. Kinect makes extensive use of combined CPU-GPU computation.

Also, it may not be related to technical hardware discussions in this thread (since it won't add any technical knowledge to our discussion), but I think Spencer once said that there are some DX12 features in XB1 (he didn't want to talk about them, but somehow confirmed their existence).

(listen from 28:00)
 
Status
Not open for further replies.
Back
Top