I’ve seen this pop up recently as a discussion topic and I thought I’d try to shed some light on the answers being that this was a curiosity of my own a year or so back.

FLASH MEMORY DIES
It’s a fact of life that Flash memory has a relatively short life span in comparison to other read/write storage technologies.  There are only so many reads & writes that can be executed against a given flash memory cell before it becomes unreliable and unusable.  This failure or inability to read/write reliably is often referred to as "burnout".

The number of ‘writes’ that can be executed against a flash cell has historically been something like 50,000 to 100,000 changes, but what’s often disregarded is the fact that ‘reads’ also diminish a flash memory cells life span as well.  The bottom line is that flash memory goes bad over time.  It’s just a matter of ‘when’.

WEAR LEVELING
To compensate for this problem, algorithms have been written into Windows operating systems (XP, Vista, Windows Mobile, etc.) that recognize flash storage mediums and use a different method of I/O.  The basic concept is to distribute the usage of the flash storage across each and every cell so that ever part of the flash memory gets used equally over time, instead of one area getting "burned out" faster than others.

As a result of these wear distribution algorithms, flash manufacturers (especially the manufacturers of the recent new breed of solid state devices/SSD) claim that failure occurs only after many years of usage – assuming an even spread of I/O calls across all flash memory cells.

DIFFERENCES IN FLASH I/O ALGORITHMS:  FREE CELL WRITE DISTRIBUTION
With regard to the algorithms themselves, one basic technique I’ve heard of is to maximize the usage of free space by writing to non-sequential cells.  This has the benefit of scattering the "wear & tear" of the memory used without diminishing performance since unlike ferro-magnetic/mechanical drives, flash memory seek times are a constant no matter where the data resides meaning writting data sequentially is unnecessary.  (And in the case of flash memory, possibly even dangerous to the life of the storage medium)

The problem with this technique is while it maximizes I/O performance, it relies on the existence of free space on the flash storage medium.  If you have very little free space, the same areas of the storage may be written to over and over again.  Take for example the usage of flash storage for an Internet Browser cache or an RSS feed repository.  If the content of either of these caches are constantly deleted then rewritten with new data, because there is little free space you can see how the same memory cells might be written to over and over again.

This might not seem like a feasible scenario until you realize that most cellular phones use a lot of flash memory.  All of a sudden, reading/writing to flash memory for the use of a mobile browser or a mobile newsreader becomes very disconcerting.

DIFFERENCES IN FLASH I/O ALGORITHMS:  CELL SWAPPING
Another more complex technique is to literally swap data content between frequently used memory cells and less frequently used cells.  This technique essentially takes data that "hasn’t moved in a long time" and puts it in cells that have been used a lot recently.  This has the benefit of more evenly distributing wear & tear across all memory cells – not just free memory.

Of course the problem here is that the additional read/writes to accomplish this may affect performance but this could be compensated for using background I/O during periods in which the medium isn’t actively being used and proactively swapping data between cells.

THE CONSEQUENCE OF SIZE
So if you have a larger storage medium, you have more "flash surface" to write to and that means a longer life, correct?  After all, if you’re wear-leveling effectively and distributing I/O across the entire storage medium, making more space available equates to making more reads/writes available over the life of the flash, right?

For the most part, the answer is ‘yes’:  A simple solution is to use larger flash storage to distribute I/O across.  And better yet, if you are using an algorithm that distributes just across free space, then having more free space available in general should increase the life of your flash medium.

The problem is that people assume flash has an even quality across all manufacturers and rarely discriminate between flash brands.  Flash is flash is flash, in the minds of most consumers, but as any tech will tell you, that just isn’t the case.  Speed, life span, storage capacities, cost, all of these vary widely between manufacturers and even a single manufacturer can change across product lines.

The bottom line is that if you do get a larger capacity and expect greater life spans for your flash, be sure that the manufacturer is the same to at least have some semblance of comparing apples to apples and also check to see if their have differing life span ratings if they even give them.  Just because you have more capacity on your new flash drive doesn’t mean it’ll last longer if the flash itself is more prone to failure on your new storage.

[Once I get the time, I’ll enhance this post with what we’ve done in Windows to provide wear distribution for flash memory]

I should throw out the caveat that this is just what I read – I have little knowledge of any of these technologies except in the context of how it is used in Microsoft products.

VE_Bus3_s OMG!  Are you interested in three-dimensional modelling?

Caligari’s trueSpace, now part of the Microsoft Virtual Earth team, is now being made available completely FREE.  The whole thing:  FREE!

It includes export technology for usage with Virtual Earth (of course) as well as XNA gaming technology for Xbox Live & Xbox 360.

“…included is an export to Virtual Earth which will let you place your 3D creations straight into Virtual Earth from trueSpace. Now you can place whatever you make into real world locations in Virtual Earth and share them with others!

trueSpace also supports import from a wide variety of formats, letting you take existing objects and use them in Virtual Earth.”

http://www.caligari.com/Products/trueSpace/tS75/brochure/intro.asp?Cate=BIntro

DOWNLOAD: http://cart1.caligari.com/web/Truespacemainreg.aspx

Looking for a Windows Mobile alternative to the iPhone?

Look no further.  Check out these amazing models with stylish designs and all the Enterprise security, management, and an infrastructure integration (Exchange, Rights Management, Sharepoint, Office Communications Server, Systems Center Configuration Manager, Systems Center Mobile Device Manager, etc.) that you’d expect from a Windows Mobile device!

————————

clip_image002

Sony Xperia X1

  • Carrier TBD
  • Windows Mobile 6 Professional
  • UMTS/HSDPA/HSUPA (850/1700/1900/2100MHz)
  • VGA 800×480
  • 3.2MP Camera
  • Bluetooth & Stereo Bluetooth A2DP
  • Assisted GPS
  • WiFi
  • MicroSD
  • 400MB RAM

http://www.engadget.com/2008/02/10/sonyericsson-xperia-x1-qwerty-with-windows-mobile/

—————————

clip_image002[5]htc-touch-diamond-officialHTC Touch Pro Diamond

  • Carrier TBD
  • Windows Mobile 6.1 Professional
  • UMTS/HSDPA/HSUPA (850/1700/1900/2100MHz)
  • WiFi
  • 2.8” 640×480 VGA Display
  • 3.2Mp Camera
  • 288MB RAM/512MB ROM
  • http://www.engadget.com/2008/06/04/the-htc-touch-pro/

     

    —————————

    image Palm 800w

  • Verizon Wireless
  • 1xEvDO & Rev-A/GPRS
  • 256MB Flash/128MB RAM
  • Windows Mobile 6.1 Professional
  • WiFi – 802.11b/g
  • BBAC Bluetooth & cable support
  • External Memory/MicroSD
  • Bluetooth v2.0 & Stereo Bluetooth (A2DP)
  • 1.3MP Camera
  • http://www.engadgetmobile.com/photos/verizon-slide-deck-reveals-verizon-i770-palm-800w-fun-facts/835635/

    —————————

    image Samsung i770

    • Verizon Wireless
    • 1xEvDO & Rev-A/GPRS
    • 256MB Flash/128MB RAM
    • Windows Mobile 6.1 Professional
    • WiFi – 802.11b/g
    • BBAC Bluetooth & cable support
    • External Memory/MicroSD
    • Bluetooth v2.0 & Stereo Bluetooth (A2DP)
    • 2MP Camera
    • LBS/VZ Navigator (GPS-like functionality)

    http://www.engadgetmobile.com/photos/verizon-slide-deck-reveals-verizon-i770-palm-800w-fun-facts/835627/

    —————————

    clip_image001Samsung i900 Omnia

    • Carrier TBD
    • Windows Mobile 6.1 Professional
    • 3.2-inch WideQVGA display (240 x 400 pixels)
    • Optical Mouse (like on i780)
    • 5.0MP Camera with Face & Smile detection & auto-panarama shot
    • GPS with Geotagging integration with camera
    • Two memory models:  8GB & 16GB
    • MicroSD
    • Quad-band GSM/GPRS/EDGE support plus HSDPA 7.2Mbps
    • WiFi
    • Built-in accelerometer for automatic rotation of the UI based on handset orientation
    • FM Radio with RDS
    • Stereo Bluetooth (A2DP)

    http://www.gsmarena.com/samsung_i900_omnia_announced_live_pics_inside-news-519.php

    Posted by: kurtsh | July 23, 2008

    OFFER: Free PowerShell laptop/bumper sticker

    Powershell2 Ooh.  Nsoftware is giving away these cool PowerShell laptop stickers.  Talk about jumping on a niche and running with it.  Even I want one.

    Nsoftware is a company that manufactures a product called NetCmdlets for PowerShell which expands the power of PowerShell through a set of network management and messaging capabilities.

    Apparently they’ll even give you a free “hobbyist” copy/license if you order their bumper sticker/laptop sticker.

    LINK: http://www.nsoftware.com/PowerShell/promo/

    Posted by: kurtsh | July 23, 2008

    RELEASE: Windows Live for Windows Mobile

    image [taken from the Windows Live for Windows Mobile Team Blog]

    Wait no more! The latest bits for Windows Live Client for your Windows Mobile are available for download. To get yours now, point your mobile browser to http://wl.windowsmobile.com

    If you have Windows Live already installed on your device, you will need to uninstall it first. To do that, go to Settings->Remove Programs, select Windows Live entry from the list (if any) and click Remove. If you don’t find Windows Live on the list, then you are good to go.

    With Windows Live client you will be able to:

    • Synchronize Live contacts with your contacts on the device
    • Synchronize your Live email (msn, hotmail, live)
    • View graphics, web links and contact photos in emails
    • Respond to emails with voice recordings
    • Upload photos to your Windows Live Spaces

    Go ahead, give it a try and let us know what you think!

    Posted by: kurtsh | July 22, 2008

    HOWTO: Start building games for Xbox 360

    [this is a republish of MSDN UK’s newsletter article]

    image XNA Game Studio
    Platform games, shoot-em-ups, racing games, and adventure games. Peek this and poke that and the next generation of software developers were born. But why don’t people write games for fun anymore? Perhaps games and their programming languages went in different directions, we all grew up and wrote database applications. Writing simple games became hard and the immediacy and fun just got drowned out in the API calls and lines of C++.

    Move forward a couple of decades, and enter XNA Game Studio. The founding principle behind XNA Game Studio was to enable people who like coding for fun to create and share great games. Games can be written once and with minimal changes be deployed to run on Windows or the Xbox 360. Version 2 of XNA enabled the creation of networked games over Xbox Live and with version 3 (currently in CTP) games can now target the Zune!

    XNA comprises a collection of code frameworks that simplify the game creation process. Namespaces for handling player input, storage, sound, maths, networking, and of course, graphics are provided – the latter provides 2- and 3-D handling, including sprite management and collision detection. Key to the framework is two core infrastructure elements – the Game Class, and the Content Pipeline.
    The Game Class provides a convenient set of event handlers that constitute a typical game loop – get input, update the game state, update the screen. You insert your game code in the handler routines, and XNA does the heavy lifting.

    The Content Pipeline is key to how XNA can provide both independence between deployment devices and handle game resources from multiple sources. When a game initialises, the game resources (such as sounds, meshes, textures etc.) are loaded into the pipeline. During game play, you can access your resources from the pipeline as needed – and because XNA uses generics, you can ensure type-safe access as well.

    As well as the Framework, XNA provides a set of extensions to Visual Studio to allow remote deployment and debugging of your game to an Xbox 360, or Zune. Currently v2.0 supports Visual Studio 2005, and the 3.0 CTP supports Visual Studio 2008.

    image Finally, bringing the whole community together is the XNA Creator’s Club where you’ll find everything you need – from discussion forums to complete game source. More recently we launched the Creator’s Club Online where you can share your games with the community or peer-review and download games from other XNA fans.

    Getting started with XNA couldn’t be simpler – especially since everything you’ll need to write great games for Windows is FREE, and available for download. Everything you need to know about creating your first game can be seen in the Quick Start guide.

    C’mon – what are you waiting for? Me? I’m off to play snake…

    Andy Sithers
    Academic Evangelism Manager
    XNA Team Blog
    http://blogs.msdn.com/xna/archive/2008/05/07/announcing-xna-game-studio-3-0-community-technical-preview-ctp.aspx

    Posted by: kurtsh | July 21, 2008

    INFO: Famous Microsoft Employees

    There’s had been a lot of discussion about Jim Gray, one of Microsoft’s best and brightest minds in database development.  (Jim was the target of a massive search & rescue after failing to return from a sailing trip on time – I wish his family the best.)

    billgates Jim is recognized as the world’s thought leader in database development.  Formerly an IBM Researcher, Jim has been very important in the development and advancement of SQL Server technology at Microsoft.  The rearchitecture of SQL Server from 6.5 to 7.0 and beyond was driven by Jim Gray’s guidance.

    In fact, Microsoft has a lot of famous employees within it’s ranks.  I’ve even met a few folks that wrote the very software that I used back in the BBS days.  Here’s a short list of some of the folks that I’m aware of.  I hope you find this interesting:

    • Alexey Pajitnov – Famed Russian Puzzle Designer & Creator of Tetris
    • Jim Gray – Father of the Modern Database & Pioneer in Database Scalability
    • Rakesh Agrawal – Inventor of modern Data Mining (TechFellow – Search Labs)
    • Peter Molyneux – Video Game Luminary, founder of Lionhead Studios
    • Ray Ozzie – Co-creator of Lotus Notes & Groove Networks
    • Jean Paoli – Co-Creator of the industry XML 1.0 Standard
    • Richard Garfield – Creator of Magic the Gathering
    • Scott Isaacs – Co-creator of AJAX development & DHTML standards
    • Ryan Parsell – Creator of Spaces, the world’s largest scalable blogging system
    • Dave Cutler – Creator of Windows NT & VAX/VMS
    • Jim Allchin – Father of Enterprise Directory Services, former directory services lead at Banyan
    • Tim Patterson – Creator of DOS & minimum memory programming technology
    • Gordon Bell – Leading Scalable Systems & Telepresence Researcher
    • Anders Hejlsberg – Creator of Delphi & father of C#
    • Mark Russonovich – Industry-recognized Windows Kernel & Internals expert
    • Michael H. Freedman – Pioneer in Quantum Computing research
    • Jim T. Kajiya – Pioneer of Modern Parallel Computing
    • Yousef Khalidi – Chief Architect of Sun Solaris & UNIX Clustering
    • Roy Levin – Creator & Lead developer of first Object Oriented Programming environment & language, Principal Scientist of Xerox PARC
    • Tarek Najm – Father of Microsoft’s adCenter, Recognized leader in advertising platforms research
    • Eric Traut – Thought leader in Virtual Machine Technology, creator of various virtual machine engines, created Apple’s 680×0 emulator for PowerPC, Sony Playstation emulator for PS2, etc.
    • Anders Vinberg – Father of CA Unicenter
    • Chuck Thacker – Co-Inventor of Ethernet-based networking, former Xerox PARC Researcher
    • Gursharan Sidhu – Inventor of the AppleTalk protocol
    • Rick Rashid – Lead developer of the Mach Kernel @ CMU (Foundation for Mac OS X)

    UPDATE: (7/21 4:50PM)  Added Gusharan Sidhu & Rick Rashid on the recommendation of coworker.

    Posted by: kurtsh | July 21, 2008

    NOTE: Goin’ offline for a few weeks

    I’m going to be offline for a bit.  A combination of family obligations, work-related travel, and a very belated vacation are going to have me freezing the blog for a while.  If I do post anything it’ll be through the email-based posting feature of Spaces, where emails I send to it get posted so nothing posted over the next 2-3 weeks is going to be substantial.

    I’ll be back sometime in early to mid August.

    200px-Microsoft_sign_closeup An Microsoft HR intern created this video called “Perks”.

    It does nice job of summarizing many of the little oft unmentioned reasons why I love working for this company and haven’t even remotely considered leaving in my many years of employment at Microsoft. 

    And yes – I’ve worked at many other tech companies and even the absolute worst day here is better than the best day at so many other places.

    Well, this was a pleasant surprise.

    cgslogo There is a competitive gaming organization called the Championship Gaming Series that’s been broadcast on DirecTV 101 and G4TV.  It pits teams of the best Xbox 360 gamers against each other from city to city.  Games played include: Forza Motorsport 2, Dead or Alive 4 (Two competitions – one for women, one for men), FIFA 08, and Counterstrike Source (PC).

    Personally, I’m a big fan.  I love seeing the best of the best compete against each other.  The show lacks a certain polish to it being that the production quality is a little iffy, bordering on ghetto, however it nonetheless has great skilled players in it that’s very much worth watching.

    image

    Now available for free:  LIVE STREAMING ON WINDOWS MOBILE
    If you own a Windows Mobile powered device like a Samsung Blackjack, a Verizon xv6600, a Samsung i760, or any number of devices out there with both Windows Media Player and Pocket Internet Explorer, you’re going to love the fact that you can now get it live in a stream to your device by simply doing one of two things:

    1) Send a text message to 63636, with the word CGS in the body.  It will send you the URL below.

    OR

    2) Go to http://cgs.tmce.biz/wap4?app=cgs&info1=sc on Pocket Internet Explorer.

    You can see Headlines on the latest competitions, live video or archived video of the days competitions, recent scores, and other things.

    « Newer Posts - Older Posts »

    Categories