So Opens

I was curious about how many open software/computer hardware/IT projects out there. So, I went to Wikipedia and searched for them.

Here is a list of Open projects I have heard about it.

  • OpenCL – Use GPU to aid computation
  • OpenCV – Digital Image Processing library
  • Open Compute – Dreamed data center
  • OpenDocument – LibreOffice file format
  • OpenFlow – Software Defined Network
  • OpenGL – Graphic library
  • OpenID – Online ID standard
  • OpenJDK – Open source version of Java Development Kit
  • OpenMP – Concurrent programming API
  • OpenSSH – Connect to remote computer securely with style
  • OpenSSL – Internet browsing with encryption
  • OpenStack – Cloud Computing
  • OpenVPN – Private LAN over Internet
  • OpenRISC – Open RISC CPU architecture
  • Oauth – Log in with SNS

There are so many Open projects that I havn’t known. Open source world is so HUGEEEE!!

What list has you got?

PlayStation Now – PS3 Games on the Cloud

psnow-normal-thin-banner-v2-us-18jun14

I’m going to graduate from master course and joining doctoral course in the next few months. I started to search what should be my theme. I like playing games (a casual player but plays for many hours). I like advancements in computer technologies and also services that they enables. Game streaming would be a good topic to do research for, and it does benefit to (sub)societies too!

As network connection bandwidth becomes more abundant, bigger and complex contents can be delivered in a meaningful time. From the past, contents in the Internet has evolved from texts, images, GIF animations, songs, videos, productivity suites or even games. I could not imagine watching YouTube videos at 1080p without pausing 3 years ago, but then I can.

Sony wants to make use of this connection has enabled. You can find there are many apps or internet services doing music or video streaming. Sony wants to stream games to your house. It’s not watching streamed Twitch gaming channels but actually playing games by yourself.

The name of this service is PlayStation Now. It is an add-on to PlayStation Plus subscription. It allows you to play selected PlayStation 3 games (and other PS generations in the future) right off the Internet. Sony has prepared PS3 servers (modified to be a server) for this. There is no download time. Everything is already on the servers. Eligible devices that can use this service are PS4, PS3, PS Vita, PS TV and Bravia TV.

The technology I speculate to work behind the curtain is AMD Rapid Fire. 

It provides an API for game streaming. A server does all computation both graphic and audio, and it compresses and sends them over RTSP to its client. Video is encoded in h.264 format. Audio codec is not disclosed in the slide. A client performs media decoding and collecting and sending user interaction events. Therefore, it is basically you are watching a YouTube video which allows you to control where you want to go or do.

On the client side, AMD is used in PS4 x86 64-bit CPU. For PS3 which supposes to be the server, it uses totally different CPU architecture. The name is Cell. I cannot remember where did I saw that Sony prepares modified PS3 for its servers. But which architecture underlying the Rapid Fire may not be important. All you need is to get the media and conform to the API rules.

The flaw in streaming games is the latency between an end device and a server. This is a serious concern in many multiplayer action games. They say the minimum bandwidth for this is 5 Mbps and prefer lower latency connection as much as possible. One split second lag will blast your head off in a match (FPS players know). But it should be a little problem to single player games and non-real time game genres.

They are going to open a beta for this service in USA/Canada on July 31st, 2014. I could not wait to see all those feedback from players. So, if you happen to have a chance to join this opportunity, please share your story and comments down below. I’d love to discuss about them.

Xbox One Logo Wallpaper

Finding about eSRAM in Xbox One

Xbox One Logo Wallpaper
Source: http://www.gameranx.com/img/13-May/xbox-one-logo-wallpaper-1.jpg

Xbox One uses a different memory architecture to deliver next-gen console graphic quality [3] (Comparison with PS4 is not the goal of this post). Its approach is like multilevel CPU cache (L1, L2, L3, …) or big.LITTLE in ARM CPU but for memory. It has one big slow DDR3 (8GB / 68.3 GBps [1]) and one small eSRAM (32MB / 109 GBps [2]).

Xbox One Memory System
Source: http://cdn.vgleaks.netdna-cdn.com/wp-content/uploads/2013/03/durango_memory.jpg

eSRAM stands for embedded Static RAM. SRAM is known for being used in on-die memory such as  CPU registers and caches. Its structure is faster and more energy efficient than DRAM. But, it requires a lot more silicon space to make one bit. This makes it more expensive.

This makes Xbox One energy efficient. Normal needs run at slower rate in DDR3. Slower means consuming lesser. While aggressive needs run at faster rate in eSRAM which has energy saving structure advantage.

Microsoft intends to use eSRAM exclusively for its GPU. It is not shared with CPU, Shared Resource Allocation (SRA) or video output. It is used for memory bandwidth hungry tasks like rendering target, texture, and geometry [2].

Its high speed and limited resource is used for rendering small groups of rapid changes and high post processing needs in graphic e.g. player models and close proximity items. On the other hand, static like things, such as, sky and buildings, are far from a user’s eyes and less changed. These things can be put on DDR with little or none render penalty.

Moreover, eSRAM can perform asynchronous data movement in/out while rendering. This makes its utilization high all the time if programmers optimize it well.

Bottom Lines

Microsoft sees the important of energy efficiency (which may come from many overheat issues in previous Xbox 360). eSRAM is there for bandwidth hungry graphic tasks. Serving quality with efficiency. eSRAM alone is fast. It adds another level of memory locality. This adds a learning curve to programmers to master this (kind of) new memory architecture. It is a matter of optimization between proper eSRAM size and programming approach to squeeze out this high bandwidth memory.

References

  1. AnandTech – The Xbox One: Hardware Analysis & Comparison to Playstation 4 (accessed July 28, 2014)
  2. SlideShare – Inside XBox One by Martin Fuller (accessed July 28, 2014)
  3. VGLeaks – Xbox One (Durango) Memory System Overview (accessed July 28, 2014)

3 Things I learnt from my professor

At the end of this month, my final thesis presentation is going to be held. And, my master student life will finally end.

There are 3 things I learnt from my professor along my 2 years struggling. 

  1. Libraries are more important architecture (I am studying in computer engineering). The reason why Intel has hard time trying to beat ARM and Windows Phone has hard time trying to beat Android and iOS is their environments are less nurtured. Even they have raw advantages over their competitors in previous works, their consumers (developers) are going to have hard time developing new products and services from it. It’s about providing a platform.
  2. Implement first, Peek later. My professor modeled and implemented his own CPU architecture without preliminary study. At the end, he found his work’s concept is same as one from another professor. Although, the concept is same, but in implementation at some point, they are going to get varied, and my professor’s CPU distinguishes from him.
  3. Be concise. I am working for science and engineering. To pinpoint problem, you have to cut out all other parameters to get a clear statement. I usually got CAPTALIZED email from my professor because I was not clear about what my problems were.