Friday, October 8, 2010

Session has expired in ASP.NET


What are the root cause to loss the session values in ASP.NET applications?

Cause 1: Session will expire in InProc session state

Yes, Session will lost the values in InProc session state when the Web garden(IIS) value is greater than 1.
Why?   InProc session management won’t work because each worker process will be maintaining its own session state. So if the user is browsing your Web site and if we have 2 worker processors, then your user has a 1 in 2 chance of losing his session state as IIS round-robins his subsequent requests among the 2 available worker processes. If you use an out-of-process session state, then we can be sure that all 2 worker processes are consulting the same single resource as the place to store and retrieve session data.
How to check the Web garden value in my IIS server?
I. First we need to start the IIS Manager.
We can use two ways to start the Internet Information Services Manager..
First one,
From the Start menu, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.
To start IIS Manager from the Run dialog box
Second option,
1. From the Start menu, click Run.
2. In the Open box, type inetmgr, and click OK.
II. Check the Web garden settings
In IIS Manger just expand the local computer, expand Application Pools, right click the application pool, and then click Properties.


Click the Performance tab, and under Web garden settings check the Maximum number of worker processes value  is 1 or greater than 1


If the value is greater than 1, Please change the value to 1 in order to fix this cause.

Blank page when running ASP application in IIS




Blank page when running ASP application in IIS
Many of us have faced this issue while working on Classic ASP applications. The cause of issue is IIS configuration but developers unaware of this issue and fight with them applications.
While running ASP application below error will appear on browser.


For confirm this issue, just go to http://localhost/iisstart.asp on the particular server, If the same please continue the following…
One of the root cause of issue is IIS is prohibited for executing the scripts.
Check your IIS (Star>Run>Use ‘inetmgr’ as shortcut key to open the IIS)
Step1:
Check the Web Service Extensions in your IIS, The right panel will display the Web Service Extensions and Status.



Step2:
Select the required Web Service Extension and click Allow button to allow the scrips to execute.
Step3:
You will get the alert message when clicking the Allow button, Select Yes and press.


Finally refresh the IIS.
Now, you can browse the same page which you had issues earlier.






What is cloud computing?




Life before cloud computing

Traditional business applications—like those from SAP, Microsoft, and Oracle—have always been too complicated and expensive. They need a data center with office space, power, cooling, bandwidth, networks, servers, and storage. A complicated software stack. And a team of experts to install, configure, and run them. They need development, testing, staging, production, and failover environments.
When you multiply these headaches across dozens or hundreds of apps, it’s easy to see why the biggest companies with the best IT departments aren’t getting the apps they need. Small businesses don’t stand a chance.

Cloud-computing: a better way

Cloud computing is a better way to run your business. Instead of running your apps yourself, they run on a shared data center. When you use any app that runs in the cloud, you just log in, customize it, and start using it. That’s the power of cloud computing.
Businesses are running all kinds of apps in the cloud these days, like CRM, HR, accounting, and custom-built apps. Cloud-based apps can be up and running in a few days, which is unheard of with traditional business software. They cost less, because you don’t need to pay for all the people, products, and facilities to run them. And, it turns out they’re more scalable, more secure, and more reliable than most apps. Plus, upgrades are taken care of for you, so your apps get security and performance enhancements and new features—automatically.
The way you pay for cloud-based apps is also different. Forget about buying servers and software. When your apps run in the cloud, you don’t buy anything. It’s all rolled up into a predictable monthly subscription, so you only pay for what you actually use.
Finally, cloud apps don’t eat up your valuable IT resources, so your CFO will love it. This lets you focus on deploying more apps, new projects, and innovation.
The bottom line: Cloud computing is a simple idea, but it can have a huge impact on your business.




Monday, September 20, 2010

How to eliminate the needless visual effects for better windows performance?

Today tip will help you to increase the performance of your computer by eliminating the needless visual effects. By default windows XP gives you many options in the graphics fields to enjoy maximum graphics. For example, you can add pictures on folders and drop shadow on icon to give you better look but it will effect on the performance of your computer, especially on an older computer. Window XP has many default graphics which is not so useful for a common user, if you re-adjust these graphics then there is less effect on the user activities but the performance of computer will be increase tremendously. Here I will tell you how to choose:
To edit these settings, first you should log onto your computer with administrative rights.
Click Start button and type sysdm.cpl in Run box then press Ok button for next.

Here a dialog box will appear with the title "System Properties", select "Advanced" tab.
Here click on Settings button under Performance area. 

When you have done then "Performance Options" dialog box will appear with different options. Here select the Visual Effects tab and choose the settings you want to use for the appearance and performance of windows on this computer.


Turns off all the visual effects in the option of "Adjust for best performance" and when you select the option "Adjust for best appearance" it will gives you opposite effect ,Everything will turns on. Selecting "Let Windows choose what's best for my computer" triggers, as you might guess, different choices on different computers. And to pick and choose individual effects yourself, choose "custom" then decide which ones you want.




Could you explain technology to a non-IT person?

I read somewhere that the best way to judge a job candidate’s technical knowledge is to ask him or her to explain a technical concept in layman’s terms. That sounded like a very simple statement at the time, but I have to admit that there’s a lot of truth to it.
Think about the best teacher you ever had in school — it was probably a person who introduced you to complex concepts by first relating them to something you could readily relate to or understand. Now, of course, you can argue that, as an IT pro, your job is not to teach people (unless you’re in the training sector).
But you do have to be able to put your theoretical know-how into real work. When an interviewer asks you to explain a technical topic like you would to a non-IT person, what he is looking for is if you can see how technical tools and practices relate to the business as a whole. You can’t sell technology to end-users and executives unless you can effectively explain to them why it is needed.
On a broader scale, this is a form of IT/business alignment — a term you’ve heard so many times in the last decade that it has become jargon-ish. But it is important, and potential employers are looking to see if you have the ability to understand the business and translate technology to shareholders.

Where functional programming fits ?

In the last few years, functional programming (FP) languages and the ideas the languages implement have risen to prominence. This is partially due to various languages that contain some functional ideas becoming more mainstream (e.g., Ruby), and developers learning how to better leverage those functional features. It also helps that the .NET platform (particularly C#) has adapted and adopted many FP ideas and become more of a hybrid model. To further push things along, the Java platform (with Scala) and the .NET platform (with F#) now have full-featured languages that support the OO and FP paradigms at the same time; in .NET 4, F# is given the same weight as C# and VB.NET. Now that most developers have the ability to tap FP languages and concepts, when does it make sense to do so?
Here are a few things to keep in mind if you’re thinking about using FP:
  • FP code does not have “side effects.”
  • In FP, there are no literal values, simply functions that always return the same value.
  • Many FP languages have “lazy evaluation,” where functions are not evaluated until their results are needed; in such a case, if you define “x” to be equal to “y + 5,” “x” will be defined with no value until you try to use the value of “x,” at which point execution returns to its definition, and the value is calculated and provided to the caller. This is a boon (better performance) and a curse (non-deterministic values in some cases) at the same time.
While none of these traits of FP languages should be considered hurdles, they do represent a radical change in thinking. You can leverage FP languages in ways that may dramatically improve the code writing process and the quality of code. However, if you FP languages, you need to be mindful that you aren’t overengineering or overthinking the problem, especially if it requires using a technique or a language that may confuse other code maintainers.
In my experience (which is limited when it comes to using FP in production code), I find that FP techniques and languages shine in algorithmic coding scenarios. Maybe I am stereotyping FP based on its “everything is a function” approach, but I find that FP works very well for that kind of work. Math, for example, is very nice in FP. A few months ago, I saw an F# sample where the author defined various units of measurement as functions that provided conversion, so you could add 10 meters and 45 inches in code perfectly naturally. Another impressive example of FP’s strength was the Xbox Live ranking system; it was rewritten from C# into F#, with about 10% of the total lines of code, and ran at 95% of the speed. Again, it is an example of algorithmic code.
Where FP loses its advantage is in the basic “library glue code” and creation of structure classes that constitutes much of the modern, mainstream software development experience. If your code consists of a lot of classes that look like structures, and most of your “algorithm code” is shuffling properties from one object to another, using FP just will not be worth the effort, unless your project is going to use it anyway.
In summary, FP is not necessarily the answer to all of your development challenges, but it is something worth checking out and seeing where it can fit into your toolbox.

Things I can never remember how to do in Excel

Excel is a good example. I use it every day, but I seldom need to do more than enter data or a simple formula. So when a job requires something a little more sophisticated, I waste a certain amount of time trying to remember how I got it to work before. Then I waste even more time trying to extract a useful answer from online help.
Frustrating, unproductive, and a little embarrassing.
So I made a list of a few Excel techniques I occasionally need but inevitably forget. This is bunny stuff, and not for you power users out there. But if you’re a casual Excel user (or you’re on the help desk but don’t spend much time in Excel yourself), maybe this list will help you cut to the chase.

1: Toggle the display of formulas

When you need to see what’s going on under the hood of a worksheet, you may want to turn on Excel’s formula display. There’s a convoluted way to do this via Excel options (and Excel 2007 offers the Show Formulas button in the Formula Auditing group of the Formulas tab - if you want to remember that). But you can toggle the display on the fly just by pressing [Ctrl] ~. If you select a cell whose formula you want to troubleshoot before turning on the display, Excel will also show you the dependent cells for the formula.

2: Convert a formula to its results

Sometimes, you may need to replace a formula with its results - either to preserve a static value or to optimize your sheet by reducing calculations. There’s a pretty simple trick for this, but a word of warning: Be sure you really want to wipe out a formula before you do it. (There could be undesirable consequences.) In fact, a good practice is to create a backup copy of the workbook as a safety net in case things go awry.
To convert a formula, click in its cell and press [F2] to enable in-cell editing. Next, press [F9] to calculate the formula and display its results. Then, hit [Enter], and your formula will be replaced by the value it produced.
You can also copy the formula and use Paste Special | Values to paste the results someplace else, leaving the formula intact in its original location.

3: Create a copy of an existing worksheet

Excel offers an efficient way to copy a worksheet, either within the current book or into a different one - handy when you need to start a new sheet that includes some or all of the data and/or formatting of an existing sheet. It works like this:
  1. Right-click on the sheet tab of the sheet you want to copy.
  2. Choose Move Or Copy.
  3. Select the Create A Copy check box in the bottom-left corner of the Move Or Copy dialog box.
  4. Choose a different workbook, if desired, from the To Book drop-down list. (That other workbook must be open to show up in the list.) You can also select New Workbook.
  5. In the Before Sheet list box, specify where you want the copied sheet to go within the specified workbook.
  6. Click OK.

4: Start a new line within a cell

This may seem beyond simplistic - until the day you can’t remember how to do it. If you need to create a multiple-line entry in a cell, you can’t just press [Enter] to insert a line break, since that will propel you into the next cell. Instead, you have to press [Alt][Enter].

5: Unhide hidden rows or columns

From time to time, someone will send me a worksheet with hidden rows or columns. I usually don’t need to see the data, so of course I forget how to unhide it on the rare occasions when I do need to see it. It’s easy, though: Highlight the row above and the row below the hidden row(s) - or the column to the left and to the right of the hidden column(s). Then, you can reveal the data in various ways:
  • Press [Shift][Ctrl]0 (that’s a zero).
  • Right-click the selection and choose Unhide.
  • Choose Column (or Row) from the Format menu and then select Unhide. In Excel 2007, go to the Cells group on the Home tab, click Format, choose Hide & Unhide, and select Unhide Rows or Unhide Columns.

6: Enter a fraction in a cell

Say you type 1/4 in a cell, wanting to enter the fraction one-fourth. Ordinarily, Excel will turn the value into a date - 4-Jan. To prevent that, just preface your entry with a zero and a space: 0 1/4. Excel will leave your fraction alone. Without the zero, you’ll see 1/4/2009 (or whatever year you happen to be in) in the Formula bar. With the zero, you’ll see 0.25.

7: Simultaneously copy data into noncontiguous cells

To copy data from one cell into adjacent cells, you just drag the cell’s fill handle across the cells where you want the copied data to appear. But sometimes, you’ll need to copy data into cells that are scattered around the worksheet. The most efficient way to handle that task is to copy the desired data, hold down [Ctrl], and select all the other cells where you want to paste the data. Then, press [Ctrl]V and Excel will insert the copied data into each of the selected cells.

8: Simultaneously enter data into noncontiguous cells

Similar to the previous trick, you can save time when you need to enter the same data into cells that aren’t next to each other. Start by holding down the Ctrl key and selecting all the cells into which you want to enter data. Then, type your data and press [Ctrl][Enter]. Excel will insert the data into all of the cells in the noncontiguous selection.

9: Enter text in the same location in multiple worksheets

This may not come up all that often, but it’s a cool trick when you need it. Let’s say that you’re entering month names as column headers at the top of a sheet - and you want them to appear on your other sheets as well. Click in the cell where you’ll be entering January. Then hold down [Ctrl] and click on the sheet tabs of the other sheets where you want the month names to appear. This will group the sheets so that what you do now affects all of them.
Go ahead and type January. Then (another cool trick coming…), drag the cell’s fill handle to the right across the next 11 cells. Excel recognizes that January is the first item in a built-in series, so it will insert the rest of the month names for you.
To complete the process, right-click on one of the selected sheet tabs and choose Ungroup Sheets from the shortcut menu. If you check those sheets, you’ll see your month names have been entered in all of them.

10: Transpose data from a row to a column, or vice-versa

Once in a while, I’ll set up a worksheet using one structure that seems to make sense, only to realize it would make a whole lot more sense if the rows were columns and the columns were rows. And apparently I’m not alone in this befuddlement, because Excel provides a Transpose option to facilitate the necessary flip-flopping of data:
  1. Select the range of cells you want to transpose and click Copy or press [Ctrl]C.
  2. Click in a new location (not overlapping your selection).
  3. Go to Edit | Paste Special and select the Transpose check box. In Excel 2007, click Paste in the Clipboard group of the Home tab and select Transpose.
  4. You can then delete your original, wrong-structured data.

Thursday, September 16, 2010

How would you sort columnar blocks in Word?

Can you foil Word’s AutoCorrect setting that capitalizes the first word in a sentence? In the challenge, I asked for a solution that does not disable the feature, but rather gets around the change with specific recurring phrases. Lfloyd suggested adding the word or phrase to the AutoCorrect exceptions list. Add an item to the exceptions list, as follows:
  1. Choose AutoCorrect Options from the Tools menu. To find AutoCorrect in Word 2007 or 2010, click the Office button or File tab, respectively. In Word 2007, click Word Options; in Word 2010, choose Options from Help in the left pane and then choose Proofing. Click AutoCorrect Options in the AutoCorrect Options section.
  2. Click the Exceptions button.
  3. Click the First Letter tab. (The Other Corrections tab works only with misspelled words in the Dictionary.)
  4. Enter the word or phrase in the Don’t Capitalize After control.
  5. Click OK twice.
This tactic works well, but for the current file only, but sometimes, that’s all you need!
Artlife was the first to suggest the solution I had in mind: Use an AutoCorrect replacement that can bypass the AutoCorrect’s capitalization setting. This solution works in all documents, not just the current file. Here’s how to add an AutoCorrect replacement:
  1. Choose AutoCorrect Options from the Tools menu. To find AutoCorrect in Word 2007 or 2010, click the Office button or File tab, respectively. In Word 2007, click Word Options; in Word 2010, choose Options from Help in the left pane and then choose Proofing. Click AutoCorrect Options in the AutoCorrect Options section.
  2. Click the AutoCorrect tab (in necessary, as it’s the default).
  3. In the Replace control, enter a few characters to represent cc:. Artlife suggested [c. You must start the replacement phrase with a non-alpha character to bypass the AutoCorrect capitalization rule. (See SirWizard’s post for a thorough explanation of how this feature works.)


4. Click Add, and then click OK.



When you want cc:, enter [c instead. AutoCorrect will replace [c with cc:. It seems like a lot of trouble to go to, but that depends on how often you use such a phrase, and your own level of tolerance!

Five tips for dealing with rootkits




A rootkit is a piece of software that enables the continued, privileged access to a computer, all the while hiding its presence from users and administrators. Although rootkits themselves might not be dangerous, the software or processes they hide almost always are. Unlike a virus, a rootkit gains administrative privileges to your machine. Rootkits are the Mac-daddy of viruses, causing the most damage and headache. The biggest issue with rootkits is that once on a system, they are a challenge to detect and remove, because their main purpose is obfuscation.
But you don’t have to be at the mercy of rootkits. You can be prepared to deal with these nasty pieces of software should they show up. And even better, you can keep them from happening in the first place.

1: Protect those machines

You’re not going to stop everything all the time. But that doesn’t mean you should forgo protection. One of the first things I do on a new Linux system is installrkhunter. This tool is an outstanding defense against rootkits. If you’re not using the Linux operating system then you need to use trusted tools like AVG Anti Rootkit orComboFix [edit: link corrected] to take on the task.

2: Be on the lookout for signs

Although rootkits don’t actively give you signs you are compromised, there are ways to tell. If you’ve received reports from various sources that you are sending out massive amounts of spam, you most likely have a botnet, which is probably being hidden by a rootkit. If your server is a Web server, and you are seeing strange redirect behavior, you might be a “winner.” For UNIX and UNIX-like systems, look for altered versions of executables or directory structures. If you issue the ls /usr/bin or ls /usr/sbincommand and see that your normal applications seem to be named incorrectly, there is a high possibility you have been hit by a root kit. Of course, the easiest method of detection is to regularly run rkhunter (or a similar tool, as described above).

3: Turn it off

If you have been infected, the first thing you should do is shut that machine off! Then, remove the drive, mount it on another system (preferably a non-Windows system), and get your data off the drive. There is a chance that the OS will have to be re-installed, so you want to make sure you have your data off. But having that infected system up and running is only doing more damage, especially if there is a spam bot or the like running.

4: Never go without Tripwire

Tripwire is designed to monitor changes in files/directories on a given configured system. One of a rootkit’s primary purposes is to conceal malicious software. Oftentimes, they will do this by renaming files or folders or installing similarly named files/folders. You can detect such behavior at any time using a tool like Tripwire. It is critical that you install Tripwire immediately upon installing the OS. Otherwise, rootkits could already be installed and Tripwire will be less than effective.

5: Consider memory dumping

This is a far more challenging method, and it’s most often left to specialists who have access to non-public tools or code. You can force a kernel (or even a complete) memory dump of the infected — or possibly infected — system that will capture any possible rootkit in action. That memory dump can then be analyzed with a debugging tool. During the analysis, the rootkit can’t obfuscate its actions and will be detected. Of course, at this point, you are most likely going to have to just pull off your data and reinstall.

Prevention

Rootkits are the “big nasty” of infections. The best possible strategy is to install software to prevent their installation in the first place. The biggest issue with rootkits is that they can be heinous enough to require you to remove your data and reinstall anyway. Be proactive on this front and install every necessary precaution you can.

Sunday, September 12, 2010

What do the new Windows networking protocols do?

Like other administrators and users, I’m happy for the release of Windows 7 andServer 2008 R2. While Windows 7 is touted as more of a client operating system revival from the poor reception that Vista had on the market, Windows Server 2008 is a less controversial and natural upgrade of the server operating system. Both products were released at the same time and have quite a bit in common. One item that both have in common is support for both IPv4 and IPv6 running on default installations. Both also have two new networking protocols running: the Link-Layer Topology Discovery Mapper I/O Driver and Link-Layer Topology Discovery Responder.

Thus far, I’ve simply turned off IPv6, both of the new protocols, and sometimes the QoS Packet Scheduler depending on my mood. Regarding the two new protocols, what are they and what do they do?

Link-Layer Topology Discovery

The Link-Layer Topology Discovery (LLTD) is a component of the Windows networking implementation that allows computers and other devices to be represented on a map. Windows Vista, Windows Server 2008, and Windows 7 computers can natively populate the Network Map. This is visible in the Network and Sharing Center by selecting See Full Map. Each computer that is discovered can be displayed in this map. Settings that go for each type of network (public, home, work, etc.) dictate behavior for these networks. Somewhat unintuitively, if a network is set to a private-class network, the default settings allow for LLTD operation. If the protocols are removed from the networking stack, LLTD will not work.
The two components for LLTD are the responder and the mapper I/O driver. These components work together to populate and enumerate the maps. Figure A shows a map populated on my private network for two LLTD-enabled systems.

Figure A












This shows that W-RWV2 and S-RWV3 are on different switches (which they are) and are connected to the same Internet uplink. I mentioned earlier that this service is usually not enabled, and the systems at the bottom are a mix of Windows XP, Server 2003, and Linux systems. For Windows XP Systems, they can be enumerated in the LLTD maps.
In my networking practice, I haven’t used this feature and disable it on servers. I tend to rely on DNS and networking tools to get from point A to B. Do you see LLTD as a benefit in your networking requirements? If so, share your comments below.

Thin clients vs. Smart Displays

If you want to understand what happened to Sun, look no further than Sun Marketing’s insistence on selling the Sun Ray as a thin client - something it isn’t. Thin clients have few organizational consequences, smart displays have many - and that’s the distinction this is about.







This entry is about correcting a common misconception about the Sun Ray - and, to do it out of turn I’ve moved the Unix job description entry to next week.
Many of the comments, both those written to the blog and those received privately, came from people who clearly think of the Sun Ray as a thin client. It is not - and Sun marketing’s willingness to cater to this market misperception was, I think, diagnostic for its wider failure to move leading edge product.
A few years ago one of the wintel companies offered a PC architecture in which the graphics board was connected to the motherboard by cable. This enabled the customer to put the PC in a data center rack for easy access while putting the graphics controller, keyboard, mouse, and monitor on the user’s desktop.
Notice that the remote graphics board for the PC can’t be considered a “client” in a client-server sense because it does no application processing and is really just the normal display management component from the PC with the local motherboard connection stretched out as a cable.
Think of Sun Ray as the multi-user, multi-host version of this and you’ll understand the key to its simplicity of operation.
Thin clients, in contrast, attempt to do at least some local processing and run some local OS - even if, like Sun’s mid eighties diskless workstations, that OS is downloaded from the server at boot time. That can make them harder to abuse, but a client is a client and the complications arise from the architecture, not the nature of the client - thus both PC style thin clients and Linux desktops offer some benefits relative to the traditional wintel approach, but neither offers dramatic change and neither choice ultimately affects organizational structure and behavior.
As usual there’s history to the distinction: back in the eighties when Unix vendors like Sun and Apollo experimented with thin clients their actions were mostly motivated by the cost of local disk - then over $1,000 for 30MB devices - and ended when disk prices fell much faster than progress was made in reducing the operational complexity of the set-up.
In the alternative approach the Plan 9 people at AT&T invented the Gnot as the first real network display, Sun developed NeWS, and NCD started its first line of X-terminals. Gnot never went commercial and NeWS fell to Adobe’s licensing demands on PostScript, but NCD succeeded both technically and commercially until it eventually fell victim to a VP with a Microsoft driven NT infatuation and started making cheap thin clients instead of high end smart displays.
Specifically the original NCD network computer offered only an X-server that handled user interaction and absolutely nothing else - providing 24 bit color at 1600 x 1200 on 21″ screens at a time when the PC press was erupting enthusiasm over 13 inch greyscale screens at 640 x 480 - and despite the fundementally brain damaged nature of X, some NCD HMX terminals are still in use today.
In contrast NCD’s initial venture into the thin client world, software for an x-terminal capable of connecting to NT and running the Mosaic browser locally, ultimately led to what is now Citrix and various licensed thin client products, but also signalled the end of the company’s commitment to technical leadership, network computing - and profitability.
At Sun meanwhile, Bill Joy’s MAJC chip design was intended to power a new generation of super terminals but his ability to get the CPU made didn’t extend to getting a corporate commitment to the new desktop, and so we got the ill conceived and ill fated Java Station -a seriously overweight and under powered “thin” client- instead.
The Java Station was both a technical and a commercial disaster - and would have faded quietly into history if a few recidivist engineers hadn’t modified the Solaris X/Postscript display software for download, hung a Java Station with all the client code stripped out at the end of it, and called the result a Sun Ray.
To repeat: what they’d done was take a thin client and turn it into a smart display by taking out its ability to run anything locally. That’s what makes a smart display smart: lots of graphics power, no local code - basically a recreation of the NCD network computer but latterly with faster hardware, better software, better branding, and a more focussed security agenda.
Although Sun “sales” still calls the thing a thin client and there are always people trying to impose some local processing on it, the current Sun Ray 3 and its matching software is still very much like that early device: no local processing ensuring both no local hassles and complete portability, while better hardware and server software mean it can display almost anything - from real time Unix/HPC imagery to Wintel and MacOS applications.
Notice that the bottom line here is simplicity and the freedoms and reliability you get from that: no local processing means no ambiguity (and therefore no help desk), no software limits, and no desktop product churn: just load up the applications and trust Unix to run them, whether you have one user or thousands.

SiOx memory: How it Works

The new memory is non-volatile, offers fast sub-100 ns switching times, can be written 10,000 times and is fully compatible with current CMOS manufacturing processes. A 1,000 bit proof-of-concept chip has been built by a private company. But those aren’t the good parts.



The recent announcement that Rice University grad student Jun Yao has demonstrated a new memory device has created a stir. As well it should.
The new device is non-volatile, offers fast sub-100 ns switching times, can be written 10,000 times and is fully compatible with current CMOS manufacturing processes. A 1,000 bit proof-of-concept chip has been built by a private company.
Those specs are better than or equal to current MLC NAND flash, but there are 3 other important advantages:
  1. Size: devices are only 5 nm wide - 1/5th the feature size of the latest flash devices - which means much higher storage capacity.
  2. Capacity: the architecture lends itself to stacking multiple dies - so-called 3D chips - to create even higher capacity devices.
  3. Simplicity: it is a 2 terminal memory, not 3 as in most memories. This reduces device size and complexity.
The device
The device uses silicon oxide (SiOx), a universal component of semiconductor devices for decades, in a novel way. The SiOx is used to create a conductor - not an insulator.
From the Rice press release:
Applying a charge to the electrodes created a conductive pathway by stripping oxygen atoms from the silicon oxide and forming a chain of nano-sized silicon crystals. Once formed, the chain can be repeatedly broken and reconnected by applying a pulse of varying voltage.
I did not find a mention of the voltage needed to form the chain, but given the feature size and mechanism I’d expect it to be much less than the 20 volts required to pump NAND flash. If correct that should also reduce the chance of catastrophic die failure when the insulation shorts out.
Here’s a graphic that starts at the chip level and goes down to the nanocrystal level:

Why the limited write/erase lifespan? Presumably the local region runs out of nearby oxygen atoms, stopping the process, accounting for the ≈10,000 write limit. Clever materials or manufacturing process engineering might increase that limit.
The Storage Bits take
It’s great to see something novel found in such a common material as SiOx. Professor James Tour, in whose lab Jun Yao works, says SiOx is one of the most studied materials on earth.
Flash designers have been sounding alarms because they aren’t sure they can go below 20nm feature sizes - a fast approaching limit. Of course, storage and semiconductor engineers have been sounding alarms for decades: that’s how you keep the suits funding research.
But this development has great promise not only for its theoretical capabilities, but because it creates technological competition. We’ll all benefit from that.