<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7538987153267754926</id><updated>2012-02-16T02:50:23.807-08:00</updated><category term='RAM Works'/><category term='Directory'/><category term='Lesson 4: Navigating Web Pages and Web Site'/><category term='Lesson 3'/><category term='Wrike:'/><category term='Cryptmount'/><category term='Create Encrypted Volumes With Cryptmount and Linux'/><category term='Protect'/><category term='Can Ruckus Redefine How Enterprise WLANs are Deployed?'/><category term='Web'/><category term='Computer'/><category term='Virtual memory'/><category term='Combining ethnographic and clickstream data to identify user Web browsing strategies'/><category term='Pockets'/><category term='What is the Internet?'/><category term='Things'/><category term='monetizing'/><category term='Redefine'/><category term='AMD and Their Struggles - CPUs'/><category term='Title'/><category term='Volumes'/><category term='Lesson 3: Addresses / Address Bar'/><category term='Combining ethnographic and clickstream'/><category term='How can you use information on the Web?'/><category term='information'/><category term='Web Pages'/><category term='language'/><category term='Basics'/><category term='memory'/><category term='Stuff'/><category term='user'/><category term='Lesson 1: Understanding Basics'/><category term='Enterprise'/><category term='AdSense'/><category term='Learning'/><category term='Finding'/><category term='Lesson 4'/><category term='design'/><category term='Basic Web Lessons'/><category term='project'/><category term='PCI-SSC'/><category term='architecture'/><category term='Struggles'/><category term='Toolbars'/><category term='Deployed'/><category term='Basic'/><category term='Random'/><category term='Microarchitecture'/><category term='Printing'/><category term='Easy'/><category term='Manufacturers'/><category term='AMD and Their Struggles'/><category term='the Enterprise'/><category term='Internet for Beginners'/><category term='Address Bar'/><category term='Partitions'/><category term='Super'/><category term='Vendors'/><category term='Beginners'/><category term='RAM'/><category term='Ruckus'/><category term='Understanding'/><category term='CPU'/><category term='description'/><category term='Hard Drive'/><category term='Navigating'/><category term='CPU design'/><category term='Virtual'/><category term='AMD'/><category term='Finding Things'/><category term='access'/><category term='Storage'/><category term='Wrike: project and task management tool'/><category term='Motherboard'/><category term='Lesson 6'/><category term='Web Site'/><category term='Protect Your Stuff With Encrypted Linux Partitions'/><category term='Lesson 1'/><category term='Menu'/><category term='Encrypted'/><category term='Internet'/><category term='How'/><category term='tool'/><category term='Easy monetizing of your blog with AdSense'/><category term='What'/><category term='Computer hardware'/><category term='Lining'/><category term='Visual'/><category term='strategies'/><category term='Is PCI-SSC Securing the Enterprise or Lining Pockets?'/><category term='How RAM Works'/><category term='Motherboard Manufacturers / Vendors Directory'/><category term='blog'/><category term='Supercomputer'/><category term='Computer architecture'/><category term='CPUs'/><category term='Hardware description language'/><category term='identify'/><category term='Linux'/><category term='task'/><category term='Learning Visual Basic'/><category term='Works'/><category term='Addresses'/><category term='Random access memory'/><category term='browsing'/><category term='Hardware'/><category term='WLANs'/><category term='Hard Drive and Storage'/><category term='data'/><category term='the Internet'/><category term='Securing'/><category term='management'/><category term='Lessons'/><title type='text'>computer and internet</title><subtitle type='html'>find what you want about computer or intrnet here 
learn and download all is free for you</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>53</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-4304333844976252203</id><published>2008-08-09T22:58:00.000-07:00</published><updated>2008-08-09T23:00:37.788-07:00</updated><title type='text'>The Internet</title><content type='html'>The Internet is named after the Internet Protocol, the standard communications protocol used by every computer on the Internet. The Internet can powerfully leverage your ability to find, manage, and share information. Never before in human history has such a valuable resource been available to so many people at such little cost. You are incredibly lucky. &lt;br /&gt;&lt;br /&gt;The main Internet applications are described in the chapters accessible through the home page, while this chapter describes the underlying Internet network itself. The following sections provide more information:&lt;br /&gt;&lt;br /&gt;Internet History &lt;br /&gt;Internet History -- One-Page Summary &lt;br /&gt;Vannevar Bush and Memex &lt;br /&gt;Norbert Wiener Invents Cybernetics &lt;br /&gt;Semi-Automatic Ground Environment (SAGE) &lt;br /&gt;Dartmouth Artificial Intelligence (AI) Conference &lt;br /&gt;DARPA/ARPA -- Defense / Advanced Research Project Agency &lt;br /&gt;J.C.R. Licklider And The Universal Network &lt;br /&gt;Marshall McLuhan Foresees The Global Village &lt;br /&gt;Paul Baran Invents Packet Switching &lt;br /&gt;UK National Physical Laboratory (NPL) &amp; Donald Davies &lt;br /&gt;IPTO -- Information Processing Techniques Office &lt;br /&gt;Leonard Kleinrock Helps Build The ARPANET &lt;br /&gt;Lawrence Roberts Manages The ARPANET Program &lt;br /&gt;IMP -- Interface Message Processor &lt;br /&gt;ARPANET -- The First Internet &lt;br /&gt;NCP -- Network Control Program &lt;br /&gt;Robert Kahn -- TCP/IP Co-Designer &lt;br /&gt;Vinton Cerf -- TCP/IP Co-Designer &lt;br /&gt;TCP/IP Internet Protocol &lt;br /&gt;CSNET -- Computer Science Network &lt;br /&gt;NSFNET -- National Science Foundation Network &lt;br /&gt;EUnet -- European Network &lt;br /&gt;How The Internet Works &lt;br /&gt;Internet Management&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ISOC -- Internet Society &lt;br /&gt;IAB -- Internet Architecture Board &lt;br /&gt;IETF -- Internet Engineering Task Force &lt;br /&gt;IRTF -- Internet Research Task Force &lt;br /&gt;ICANN -- Internet Corporation For Assigned Names And Numbers &lt;br /&gt;IANA -- Internet Assigned Numbers Authority &lt;br /&gt;NSI -- Network Solutions &lt;br /&gt;Accredited Domain Name Registrars &lt;br /&gt;NSF -- National Science Foundation&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Internet Architecture &lt;br /&gt;Internet Protocol (IP) Addresses &lt;br /&gt;Domain Name System (DNS) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DNS History &lt;br /&gt;Domain Names &lt;br /&gt;Domain Name Servers  &lt;br /&gt;Domain Name Aliases &lt;br /&gt;More DNS Information&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Packet Switching&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Packet Switching History &lt;br /&gt;How Packets Work &lt;br /&gt;How Switching Works&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Internet Routing&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Internet Routers &lt;br /&gt;Interior Gateway Protocols (IGP) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Routing Information Protocol (RIP) &lt;br /&gt;Open Shortest Path First (OSPF) &lt;br /&gt;Interior Gateway Routing Protocol (IGRP)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Exterior Gateway Protocols (EGP)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Border Gateway Protocol (BGP) &lt;br /&gt;Exterior Gateway Protocol (EGP)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Unix Operating System&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Unix History &lt;br /&gt;C Programming Language History &lt;br /&gt;Unix Wars &lt;br /&gt;Linux History &lt;br /&gt;More Unix Information&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ethernet Networking &lt;br /&gt;Internet Use &lt;br /&gt;Internet Use &lt;br /&gt;World Wide Web Use &lt;br /&gt;Usenet Newsgroups Use &lt;br /&gt;Email Use &lt;br /&gt;Mailing List Use &lt;br /&gt;Internet Relay Chat (IRC) Use &lt;br /&gt;Multi-User Dungeon (MUD) Use &lt;br /&gt;Advanced Internet Use &lt;br /&gt;Netiquette (Internet Etiquette)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Netiquette Basics &lt;br /&gt;Netiquette Of Sending &lt;br /&gt;Netiquette Of Replying &lt;br /&gt;Netiquette Of Confidentiality &lt;br /&gt;More Netiquette Information&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Internet Request For Comments (RFC's)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RFC History &lt;br /&gt;How To Use RFC's &lt;br /&gt;Internet Protocol RFC's &lt;br /&gt;Internet Official Protocol Standards RFC's &lt;br /&gt;Entertaining RFC's &lt;br /&gt;Interesting RFC's &lt;br /&gt;RFC's By Email &lt;br /&gt;Related RFC References&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Internet Tools &amp; Resources&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Internet Network Topology &lt;br /&gt;WHOIS Database &lt;br /&gt;Ping Command &lt;br /&gt;Traceroute Command &lt;br /&gt;NSLOOKUP Command &lt;br /&gt;Internet Traffic Statistics &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Text On The Internet&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Adding Emphasis To Text &lt;br /&gt;Emoticons &amp; Smileys &lt;br /&gt;Text Abbreviations &lt;br /&gt;Text Actions &lt;br /&gt;ASCII Art &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Internet Legends &amp; Myths&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Internet Coke Machine &lt;br /&gt;The Modem Tax &lt;br /&gt;Internet Toaster &lt;br /&gt;Neiman-Marcus Cookie Recipe &lt;br /&gt;Craig Shergold's Postcards &lt;br /&gt;Jessica Chain Email Hoax &lt;br /&gt;Cruise Control In The Rain&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Internet Hackers, Crackers, Hacking&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Richard Stallman &lt;br /&gt;John Draper &lt;br /&gt;Mark Abene &lt;br /&gt;Kevin Mitnick &lt;br /&gt;Kevin Poulsen &lt;br /&gt;Vladimir Levin &lt;br /&gt;Hacker Sites&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;How To Get An Internet Domain &lt;br /&gt;The Future Of The Internet &lt;br /&gt;Key Internet Features &lt;br /&gt;Geographic Distribution &lt;br /&gt;Robust Internet Architecture &lt;br /&gt;Internet At Near Light Speed &lt;br /&gt;Universal Internet Access &lt;br /&gt;Internet Growth Rates &lt;br /&gt;The Internet's Digital Advantage &lt;br /&gt;Internet Freedom Of Speech &lt;br /&gt;Internet Security &lt;br /&gt;Internet Confidentiality &amp; Privacy &lt;br /&gt;Internet Anonymizers&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;How Anonymizers Work &lt;br /&gt;Anonymizer Use &lt;br /&gt;Anonymizer Limitations &lt;br /&gt;Anonymizer Sites &amp; Services&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.livinginternet.com/i/i.htm"&gt;Internet Remailers &lt;/a&gt;&lt;br /&gt;Internet Encryption&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Public Key Cryptography (PKC) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PKC History &lt;br /&gt;How PKC Works &lt;br /&gt;More PKC Information&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pretty Good Privacy (PGP) &lt;br /&gt;Digital Signatures &lt;br /&gt;Key Recovery Systems&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.livinginternet.com/i/i.htm"&gt;Internet Viruses &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Boot &amp; Program Viruses &lt;br /&gt;Script &amp; Macro Viruses &lt;br /&gt;Internet Worms &lt;br /&gt;Virus Protection &lt;br /&gt;Virus Hoaxes &lt;br /&gt;More Virus Information&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Password Selection &lt;br /&gt;Internet Security Resources &lt;br /&gt;Internet Help &lt;br /&gt;Frequently Asked Questions (FAQ's) &lt;br /&gt;FAQ History &lt;br /&gt;FAQ Archives &lt;br /&gt;Create Your Own FAQ&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Internet Terminology &lt;br /&gt;Starting Over &lt;br /&gt;Internet Connection &amp; Disconnection &lt;br /&gt;Cancel An Operation &lt;br /&gt;More Internet Information &lt;br /&gt;Internet Organizations &lt;br /&gt;Internet Web Sites &lt;br /&gt;Internet History Sites &lt;br /&gt;Internet Newsgroups &lt;br /&gt;Internet Mailing Lists &lt;br /&gt;The Jargon File &lt;br /&gt;Internet Statistics &lt;br /&gt;Other Internet References &lt;br /&gt;&lt;a href="http://www.livinginternet.com/i/i.htm"&gt;Living Internet Site Notation.&lt;/a&gt; &lt;br /&gt;more : http://www.livinginternet.com/i/i.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-4304333844976252203?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/4304333844976252203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=4304333844976252203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4304333844976252203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4304333844976252203'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/08/internet.html' title='The Internet'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-2207111180723680972</id><published>2008-08-01T15:12:00.000-07:00</published><updated>2008-08-01T15:19:35.657-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Works'/><category scheme='http://www.blogger.com/atom/ns#' term='How'/><category scheme='http://www.blogger.com/atom/ns#' term='Can Ruckus Redefine How Enterprise WLANs are Deployed?'/><category scheme='http://www.blogger.com/atom/ns#' term='RAM Works'/><category scheme='http://www.blogger.com/atom/ns#' term='RAM'/><title type='text'>How RAM Works</title><content type='html'>Random access memory (RAM) is the best known form of computer memory. RAM is considered "random access" because you can access any memory cell directly if you know the row and column that intersect at that cell.&lt;br /&gt; The opposite of RAM is serial access memory (SAM). SAM stores data as a series of memory cells that can only be accessed sequentially (like a cassette tape). If the data is not in the current location, each memory cell is checked until the needed data is found. SAM works very well for memory buffers, where the data is normally stored in the order in which it will be used (a good example is the texture buffer memory on a video card). RAM data, on the other hand, can be accessed in any order. &lt;br /&gt;&lt;br /&gt;In this article, you'll learn all about what RAM is, what kind you should buy and how to install it. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dynamic RAM&lt;br /&gt;Similar to a microprocessor, a memory chip is an integrated circuit (IC) made of millions of transistors and capacitors. In the most common form of computer memory, dynamic random access memory (DRAM), a transistor and a capacitor are paired to create a memory cell, which represents a single bit of data. The capacitor holds the bit of information -- a 0 or a 1 (see How Bits and Bytes Work for information on bits). The transistor acts as a switch that lets the control circuitry on the memory chip read the capacitor or change its state. &lt;br /&gt;&lt;br /&gt;A capacitor is like a small bucket that is able to store electrons. To store a 1 in the memory cell, the bucket is filled with electrons. To store a 0, it is emptied. The problem with the capacitor's bucket is that it has a leak. In a matter of a few milliseconds a full bucket becomes empty. Therefore, for dynamic memory to work, either the CPU or the memory controller has to come along and recharge all of the capacitors holding a 1 before they discharge. To do this, the memory controller reads the memory and then writes it right back. This refresh operation happens automatically thousands of times per second.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-2207111180723680972?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/2207111180723680972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=2207111180723680972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/2207111180723680972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/2207111180723680972'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/08/how-ram-works.html' title='How RAM Works'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-1132161208027108522</id><published>2008-05-13T13:10:00.000-07:00</published><updated>2008-06-10T23:44:36.426-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Hard Drive'/><category scheme='http://www.blogger.com/atom/ns#' term='Hard Drive and Storage'/><title type='text'>Hard Drive &amp; Storage</title><content type='html'>Storage Review&lt;br /&gt;StorageReview.com attempts to address a topic that seems sadly neglected in the online community: hard disk and storage-related performance. No, they're not glamorous. No, we can't come up with loads of interesting screen shots and pictures (hard drives tend to look very similar to one another after a while). Hard drive performance is, however, vital to the overall performance of your PC.&lt;br /&gt;The Whole Drive Guide&lt;br /&gt;Advice for the gigabyte-addicted: How to upgrade to today's best and biggest--or keep your current hard disks running smoothly. &lt;br /&gt;&lt;br /&gt;SCSI Planet Hard Drive Comparisons&lt;br /&gt;Comparison of 150+ SCSI hard drives with a link directly to the manufacturers information and datasheets. You'll also find plenty of other SCSI info here.    &lt;br /&gt;&lt;br /&gt;Maxtor Interactive Jumper Guide&lt;br /&gt;Well, obviously, they haven't made it any easier for the user since the most popular search words these days seem to be "Maxtor jumper settings". What is it about these guys not putting the simple little diagram on the drive? &lt;br /&gt;&lt;br /&gt;ISA Multi-input/output Controller Cards Support &lt;br /&gt;Can't find jumper settings for those old controller cards laying around? You might check here. I love Gigagon Data Corp's motto...striving to eliminate the nightmares of zero-support products.&lt;br /&gt;&lt;br /&gt;Hard Drive Technology and Data Recovery &lt;br /&gt;Excellent article "Data Removal and Erasure From Hard Drives" Also info on history, design, controllers, interfaces, Explained well from Data Recovery Labs. &lt;br /&gt;&lt;br /&gt;Western Digital Drive Parameters &lt;br /&gt;(including obsolete) &lt;br /&gt;&lt;br /&gt;The BIOS IDE Harddisk Limitations &lt;br /&gt;This article targets at these PCs that have a system BIOS dated from 1992 to 1998 which can limit the usable capacity of your new drive. &lt;br /&gt;&lt;br /&gt;Quick Guide to a Win98 Fresh Start fdisk and reformat &lt;br /&gt;This is a very simple, but adequate guide for starting fresh in Win98. Fdisk seems to needlessly puts the scare in us. If you have formatted your drive without fdisk...then you haven't done a real format at all. &lt;br /&gt;&lt;br /&gt;SCSI Info Central &lt;br /&gt;Gary Fields gives you the latest SCSI FAQ, SCSI Game Rules and other SCSI related stuff. The FAQ has a very nice layout. You almost forget it is a white paper. This guy knows his SCSI. &lt;br /&gt;&lt;br /&gt;PC-Disk; Hard Drive Database &lt;br /&gt;Incredible resource! A little confusing at first on picking model #'s, but dig a little further &amp; you will be pleasantly surprised. "Big" hard disk database with over 5.000 disks, jumper settings and layouts! It passed my torture test w/ flying colors. Old, new, network, SCSI, etc. &lt;br /&gt;&lt;br /&gt;Dan Kegel's Fast Hard Drives Page &lt;br /&gt;It seems that the most important consideration in a disk drive is its rotation speed. 4500 to 5400 are no longer common speeds.... &lt;br /&gt;&lt;br /&gt;Ontrack Jumper Viewer &lt;br /&gt;A graphical, interactive Java applet for quickly finding jumper settings for IDE/ATA hard drives. This viewer is similar to the one in Ontrack's Disk Manager hard drive installation utilities. But with the online version, you always have access to their most current database of hard drives.  &lt;br /&gt;&lt;br /&gt;The Red Hill Guide to Hard Drives &lt;br /&gt;A real decent run down on hard drives, manufacturers, performance, SCSI, etc. with comparisons. &lt;br /&gt;&lt;br /&gt;Zip &amp; Jaz Drive Click Death &lt;br /&gt;Find out more about a set of serious data threatening problems being encountered with increasing frequency among users of Iomega's Zip and Jaz removable media mass storage systems. Download the FREE 55Kb "Trouble In Paradise" by Steve Gibson and see if that is your problem. Make sure and check out the rest of his site here. &lt;br /&gt;&lt;br /&gt;SCSI Troubleshooting Guide &lt;br /&gt;Troubleshooting SCSI connections. Scroll down the page. &lt;br /&gt;&lt;br /&gt;Hard Disk Partitioning: Why and How &lt;br /&gt;Hard Disk Partitioning, Why and How (for MS-DOS/Windows PCs) by Stan Brown. &lt;br /&gt;&lt;br /&gt;Hard Drive Specifications and Jumper Settings &lt;br /&gt;Full specs &amp; jumper settings for the following Maxtor &amp; Seagate drives. The (#) is how many of that drive type. Maxtor PCMCIA (7) SCSI (36)Seagate IDE/AT (90) IPI (24) MFM (24) RLL (12) SCSI (90) SMD (18) &lt;br /&gt;&lt;br /&gt;Enhanced IDE FAQ &amp; Utilities &lt;br /&gt;The Enhanced IDE FAQ is an attempt to answer the most common questions concerning EIDE hard disks, CD-ROMs, tapes, interfaces and setup.&lt;br /&gt;source :  http://hardwarehell.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-1132161208027108522?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/1132161208027108522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=1132161208027108522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1132161208027108522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1132161208027108522'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/05/hard-drive-storage.html' title='&lt;strong&gt;Hard Drive &amp; Storage&lt;/strong&gt;'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-1633109967848061189</id><published>2008-05-13T13:06:00.000-07:00</published><updated>2008-06-10T23:44:54.630-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Motherboard'/><category scheme='http://www.blogger.com/atom/ns#' term='Directory'/><category scheme='http://www.blogger.com/atom/ns#' term='Manufacturers'/><category scheme='http://www.blogger.com/atom/ns#' term='Vendors'/><category scheme='http://www.blogger.com/atom/ns#' term='Motherboard Manufacturers / Vendors Directory'/><title type='text'>Motherboard Manufacturers / Vendors Directory</title><content type='html'>Older Motherboard Manuals&lt;br /&gt;Manuals for A-trend, Fordlian, Full Yes, Edom, Superpower, QDI, Freetech / Flexus,  Chicony,  and other hard-to-find boards.  &lt;br /&gt;&lt;br /&gt;Motherboard Proxy&lt;br /&gt;If you are needing info on a pre 2000 board, then you might check out this site. Decent database, however last entry I can find is April of 2000. &lt;br /&gt;&lt;br /&gt;Lost Circuits BIOS Guide&lt;br /&gt;This article is meant to shed some light on the various parameters accessible in the mainboard BIOS through setup.  &lt;br /&gt;&lt;br /&gt;Hacking Your Password&lt;br /&gt;When you really need to hack your password...You must discharge the CMOS. This article covers an assortment of ways to do this. (At your own risk of course.) &lt;br /&gt;&lt;br /&gt;BIOS Central&lt;br /&gt;Great source for machine specific BIOS post codes and beep codes. Should be Post Code Central, but more BIOS content is expected soon. &lt;br /&gt;&lt;br /&gt;The BIOS Web&lt;br /&gt;Rundown of the BIOS including, how to identify, upgrade info, how POST operates, error messages, beep codes, setup utility info and much more. Plenty of other references. Worth checking out. &lt;br /&gt;&lt;br /&gt;Adrian's Rojak Pot "BIOS Optimization Guide &lt;br /&gt;Explains various settings in the BIOS Features Setup , Chipset Feature Setup, Integrated Peripherals and the cool part is the comments section. Post your comment, whether a question, unclear, or you just outright disagree. &lt;br /&gt;&lt;br /&gt;The Bios Companion&lt;br /&gt;Extracts from The BIOS Companion, the book that should come with your motherboard - it explains in plain English all the things you wanted to know about those secret settings, and more! The information is well presented and is well above A+ standard. &lt;br /&gt;&lt;br /&gt;Weekly BIOS Tweaks&lt;br /&gt;This page is only possible with the "valuable" input of  Phil Croucher, author of  "The BIOS Companion" Here are new extracts each week. (or any other info that Phil decides to throw our way, for getting the most from our computers.) &lt;br /&gt;&lt;br /&gt;Wim's Bios Page&lt;br /&gt;Allot of coverage. company lists, flash BIOS, message board etc. &lt;br /&gt;&lt;br /&gt;Motherboard Manuals Data and More&lt;br /&gt;Hey, Web Head Quarters is back! Great site for finding info and manuals for 486 and older Pentium motherboards. Diagnostic Software Tools, bios info, testing tips and more. &lt;br /&gt;&lt;br /&gt;Intel i815 / i815E Motherboard Roundup&lt;br /&gt;Good article that talks about the chipset, tells what to look for in a i815 / i815E  board, and compares ten of the contenders. From Anand Tech. &lt;br /&gt;&lt;br /&gt;Identify Your Motherboard (Award)&lt;br /&gt;Part of the BIOS serial number identifies the vendor: Wim has a great breakdown of vendors by translating your bios. Also, plenty of other BIOS related material. &lt;br /&gt;&lt;br /&gt;Identify Your Motherboard (AMI)&lt;br /&gt;How to translate from the who made your motherboard for AMI based BIOS. Also, plenty of other BIOS related material. &lt;br /&gt;&lt;br /&gt;The Flash BIOS Site&lt;br /&gt;If you want general info about flash bios, want information about flash bios programmer devices or if yours is dead and it must be re-programmed, Arthur Kerkmeester will do it for $5. Chip and MB  mfgrs. If you have an EPROM burner, you'll love this site. &lt;br /&gt;&lt;br /&gt;POST (Power On Self Test) Error Codes&lt;br /&gt;This is a pretty extensive list of the POST (Power On Self Test) error codes, incl. beep, for most IBM PCs and compatibles from Unicore Software. They have been around... &lt;br /&gt;&lt;br /&gt;PC BIOS - General Guidelines &lt;br /&gt;Phoenix Technologies has merged with Award Software and here you will find answers to the most frequently asked BIOS questions they receive. A very good BIOS rundown. &lt;br /&gt;&lt;br /&gt;Motherboard Ratings Survey &amp; User Reviews  &lt;br /&gt;A good motherboard ratings survey results from SysOpt's never ending "great" info collection. Pretty extensive list of user reviews. &lt;br /&gt;&lt;br /&gt;PC Builder Motherboard Section&lt;br /&gt;From the PC Buyers Guide. Excellent reviews, specs, CPU reports, benchmarks, building and upgrading info, etc. from Graeme S. Bennett Excellent resource I frequent often. &lt;br /&gt;&lt;br /&gt;--&gt; &lt;br /&gt;Motherboard Home World&lt;br /&gt;Manufacturers, Chips, Vendors, Reviews, Recommendations, Buying Secrets, Search, Chipsets, Mobo ID tools and more. (IMHO, Spot was better.) &lt;br /&gt;&lt;br /&gt;PCGuide - Ref - System BIOS&lt;br /&gt;The system BIOS is the lowest-level software in the computer; it acts an interface between the hardware (especially the chipset and processor) and the operating system. &lt;br /&gt;&lt;br /&gt;Motherboard Manual Page&lt;br /&gt;"Great" collection of slightly older motherboard manuals! Allot of good info on motherboards, BIOS, upgrading etc. From House of Hall. &lt;br /&gt;&lt;br /&gt;Unicore Software&lt;br /&gt;BIOS upgrades for your Award, Mr. Bios, Phoenix and AMI. Good info in their support area.  Most of their info comes from the book above, The BIOS Companion. &lt;br /&gt;&lt;br /&gt;FTP root at ftp.megatrends.com&lt;br /&gt;BIOS for AMI boards, Upgrades &amp; Manuals, other manuals, tech tips,  Mega Raid, Utility etc. Good ftp if you know what you are looking for. &lt;br /&gt;&lt;br /&gt;Motherboards and More&lt;br /&gt;A Open Component Solutions is a component company of Acer. Get all the motherboard info, manuals, BIOS Updates etc here. (not to mention other components as well) &lt;br /&gt;&lt;br /&gt;The AMI Bios Survival Guide&lt;br /&gt;The guide is a little dated, (1997) but still an incredible source of information. There are a number of places suggested to find further information, This information was edited by Jean-Paul Rodrigue and Phil Croucher and represents the work of many contributors. &lt;br /&gt;&lt;br /&gt;Intel Motherboard Manuals and Jumper Settings&lt;br /&gt;&lt;br /&gt;Through PII...with thumbnails. &lt;br /&gt;&lt;br /&gt;Intel Data Sheets and Programming Manuals&lt;br /&gt;This page contains pointers to Intel documentation. &lt;br /&gt;&lt;br /&gt;source : http://hardwarehell.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-1633109967848061189?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/1633109967848061189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=1633109967848061189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1633109967848061189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1633109967848061189'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/05/motherboard-manufacturers-vendors.html' title='&lt;strong&gt;Motherboard Manufacturers / Vendors Directory&lt;/strong&gt;'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-4955596657507429760</id><published>2008-05-09T15:35:00.001-07:00</published><updated>2008-05-09T15:42:44.513-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer'/><category scheme='http://www.blogger.com/atom/ns#' term='Super'/><category scheme='http://www.blogger.com/atom/ns#' term='Supercomputer'/><title type='text'>Supercomputer</title><content type='html'>A supercomputer is a computer that is considered at the time of its introduction to be at the frontline in terms of processing capacity, particularly speed of calculation. The term "Super Computing" was first used by New York World newspaper in 1929[1] to refer to large custom-built tabulators that IBM had made for Columbia University.&lt;br /&gt;&lt;br /&gt;Supercomputers introduced in the 1960s were designed primarily by Seymour Cray at Control Data Corporation (CDC), and led the market into the 1970s until Cray left to form his own company, Cray Research. He then took over the supercomputer market with his new designs, holding the top spot in supercomputing for five years (1985–1990). Cray, himself, never used the word "supercomputer", a little-remembered fact is that he only recognized the word "computer". In the 1980s a large number of smaller competitors entered the market, in a parallel to the creation of the minicomputer market a decade earlier, but many of these disappeared in the mid-1990s "supercomputer market crash". Today, supercomputers are typically one-of-a-kind custom designs produced by "traditional" companies such as IBM and HP, who had purchased many of the 1980s companies to gain their experience&lt;br /&gt;The term supercomputer itself is rather fluid, and today's supercomputer tends to become tomorrow's ordinary computer. CDC's early machines were simply very fast scalar processors, some ten times the speed of the fastest machines offered by other companies. In the 1970s most supercomputers were dedicated to running a vector processor, and many of the newer players developed their own such processors at a lower price to enter the market. The early and mid-1980s saw machines with a modest number of vector processors working in parallel become the standard. Typical numbers of processors were in the range of four to sixteen. In the later 1980s and 1990s, attention turned from vector processors to massive parallel processing systems with thousands of "ordinary" CPUs, some being off the shelf units and others being custom designs. (This is commonly and humorously referred to as the attack of the killer micros in the industry.) Today, parallel designs are based on "off the shelf" server-class microprocessors, such as the PowerPC, Itanium, or x86-64, and most modern supercomputers are now highly-tuned computer clusters using commodity processors combined with custom interconnects.&lt;br /&gt;Software tools&lt;br /&gt;Software tools for distributed processing include standard APIs such as MPI and PVM, and open source-based software solutions such as Beowulf, WareWulf and openMosix which facilitate the creation of a supercomputer from a collection of ordinary workstations or servers. Technology like ZeroConf (Rendezvous/Bonjour) can be used to create ad hoc computer clusters for specialized software such as Apple's Shake compositing application. An easy programming language for supercomputers remains an open research topic in computer science. Several utilities that would once have cost several thousands of dollars are now completely free thanks to the open source community which often creates disruptive technology in this arena.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Common uses&lt;br /&gt;Supercomputers are used for highly calculation-intensive tasks such as problems involving quantum mechanical physics, weather forecasting, climate research (including research into global warming), molecular modeling (computing the structures and properties of chemical compounds, biological macromolecules, polymers, and crystals), physical simulations (such as simulation of airplanes in wind tunnels, simulation of the detonation of nuclear weapons, and research into nuclear fusion), cryptanalysis, and the like. Major universities, military agencies and scientific research laboratories are heavy users.&lt;br /&gt;&lt;br /&gt;A particular class of problems, known as Grand Challenge problems, are problems whose full solution requires semi-infinite computing resources.&lt;br /&gt;&lt;br /&gt;Relevant here is the distinction between capability computing and capacity computing, as defined by Graham et al. Capability computing is typically thought of as using the maximum computing power to solve a large problem in the shortest amount of time. Often a capability system is able to solve a problem of a size or complexity that no other computer can. Capacity computing in contrast is typically thought of as using efficient cost-effective computing power to solve somewhat large problems or many small problems or to prepare for a run on a capability system.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Hardware and software design&lt;br /&gt; &lt;br /&gt;Processor board of a CRAY YMP vector computerSupercomputers using custom CPUs traditionally gained their speed over conventional computers through the use of innovative designs that allow them to perform many tasks in parallel, as well as complex detail engineering. They tend to be specialized for certain types of computation, usually numerical calculations, and perform poorly at more general computing tasks. Their memory hierarchy is very carefully designed to ensure the processor is kept fed with data and instructions at all times — in fact, much of the performance difference between slower computers and supercomputers is due to the memory hierarchy. Their I/O systems tend to be designed to support high bandwidth, with latency less of an issue, because supercomputers are not used for transaction processing.&lt;br /&gt;&lt;br /&gt;As with all highly parallel systems, Amdahl's law applies, and supercomputer designs devote great effort to eliminating software serialization, and using hardware to address the remaining bottlenecks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Supercomputer challenges, technologies&lt;br /&gt;A supercomputer generates large amounts of heat and must be cooled. Cooling most supercomputers is a major HVAC problem. &lt;br /&gt;Information cannot move faster than the speed of light between two parts of a supercomputer. For this reason, a supercomputer that is many meters across must have latencies between its components measured at least in the tens of nanoseconds. Seymour Cray's supercomputer designs attempted to keep cable runs as short as possible for this reason: hence the cylindrical shape of his Cray range of computers. In modern supercomputers built of many conventional CPUs running in parallel, latencies of 1-5 microseconds to send a message between CPUs are typical. &lt;br /&gt;Supercomputers consume and produce massive amounts of data in a very short period of time. According to Ken Batcher, "A supercomputer is a device for turning compute-bound problems into I/O-bound problems." Much work on external storage bandwidth is needed to ensure that this information can be transferred quickly and stored/retrieved correctly. &lt;br /&gt;Technologies developed for supercomputers include:&lt;br /&gt;&lt;br /&gt;Vector processing &lt;br /&gt;Liquid cooling &lt;br /&gt;Non-Uniform Memory Access (NUMA) &lt;br /&gt;Striped disks (the first instance of what was later called RAID) &lt;br /&gt;Parallel filesystems &lt;br /&gt;&lt;br /&gt;[edit] Processing techniques&lt;br /&gt;Vector processing techniques were first developed for supercomputers and continue to be used in specialist high-performance applications. Vector processing techniques have trickled down to the mass market in DSP architectures and SIMD processing instructions for general-purpose computers.&lt;br /&gt;&lt;br /&gt;Modern video game consoles in particular use SIMD extensively and this is the basis for some manufacturers' claim that their game machines are themselves supercomputers. Indeed, some graphics cards have the computing power of several TeraFLOPS. The applications to which this power can be applied was limited by the special-purpose nature of early video processing. As video processing has become more sophisticated, Graphics processing units (GPUs) have evolved to become more useful as general-purpose vector processors, and an entire computer science sub-discipline has arisen to exploit this capability: General-Purpose Computing on Graphics Processing Units (GPGPU).&lt;br /&gt;more : http://en.wikipedia.org/wiki/Supercomputer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-4955596657507429760?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/4955596657507429760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=4955596657507429760' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4955596657507429760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4955596657507429760'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/05/supercomputer_09.html' title='Supercomputer'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-4090684291860742537</id><published>2008-05-09T15:35:00.000-07:00</published><updated>2008-05-09T15:37:05.114-07:00</updated><title type='text'>Supercomputer</title><content type='html'>A supercomputer is a computer that is considered at the time of its introduction to be at the frontline in terms of processing capacity, particularly speed of calculation. The term "Super Computing" was first used by New York World newspaper in 1929[1] to refer to large custom-built tabulators that IBM had made for Columbia University.&lt;br /&gt;&lt;br /&gt;Supercomputers introduced in the 1960s were designed primarily by Seymour Cray at Control Data Corporation (CDC), and led the market into the 1970s until Cray left to form his own company, Cray Research. He then took over the supercomputer market with his new designs, holding the top spot in supercomputing for five years (1985–1990). Cray, himself, never used the word "supercomputer", a little-remembered fact is that he only recognized the word "computer". In the 1980s a large number of smaller competitors entered the market, in a parallel to the creation of the minicomputer market a decade earlier, but many of these disappeared in the mid-1990s "supercomputer market crash". Today, supercomputers are typically one-of-a-kind custom designs produced by "traditional" companies such as IBM and HP, who had purchased many of the 1980s companies to gain their experience&lt;br /&gt;The term supercomputer itself is rather fluid, and today's supercomputer tends to become tomorrow's ordinary computer. CDC's early machines were simply very fast scalar processors, some ten times the speed of the fastest machines offered by other companies. In the 1970s most supercomputers were dedicated to running a vector processor, and many of the newer players developed their own such processors at a lower price to enter the market. The early and mid-1980s saw machines with a modest number of vector processors working in parallel become the standard. Typical numbers of processors were in the range of four to sixteen. In the later 1980s and 1990s, attention turned from vector processors to massive parallel processing systems with thousands of "ordinary" CPUs, some being off the shelf units and others being custom designs. (This is commonly and humorously referred to as the attack of the killer micros in the industry.) Today, parallel designs are based on "off the shelf" server-class microprocessors, such as the PowerPC, Itanium, or x86-64, and most modern supercomputers are now highly-tuned computer clusters using commodity processors combined with custom interconnects.&lt;br /&gt;Software tools&lt;br /&gt;Software tools for distributed processing include standard APIs such as MPI and PVM, and open source-based software solutions such as Beowulf, WareWulf and openMosix which facilitate the creation of a supercomputer from a collection of ordinary workstations or servers. Technology like ZeroConf (Rendezvous/Bonjour) can be used to create ad hoc computer clusters for specialized software such as Apple's Shake compositing application. An easy programming language for supercomputers remains an open research topic in computer science. Several utilities that would once have cost several thousands of dollars are now completely free thanks to the open source community which often creates disruptive technology in this arena.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Common uses&lt;br /&gt;Supercomputers are used for highly calculation-intensive tasks such as problems involving quantum mechanical physics, weather forecasting, climate research (including research into global warming), molecular modeling (computing the structures and properties of chemical compounds, biological macromolecules, polymers, and crystals), physical simulations (such as simulation of airplanes in wind tunnels, simulation of the detonation of nuclear weapons, and research into nuclear fusion), cryptanalysis, and the like. Major universities, military agencies and scientific research laboratories are heavy users.&lt;br /&gt;&lt;br /&gt;A particular class of problems, known as Grand Challenge problems, are problems whose full solution requires semi-infinite computing resources.&lt;br /&gt;&lt;br /&gt;Relevant here is the distinction between capability computing and capacity computing, as defined by Graham et al. Capability computing is typically thought of as using the maximum computing power to solve a large problem in the shortest amount of time. Often a capability system is able to solve a problem of a size or complexity that no other computer can. Capacity computing in contrast is typically thought of as using efficient cost-effective computing power to solve somewhat large problems or many small problems or to prepare for a run on a capability system.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Hardware and software design&lt;br /&gt; &lt;br /&gt;Processor board of a CRAY YMP vector computerSupercomputers using custom CPUs traditionally gained their speed over conventional computers through the use of innovative designs that allow them to perform many tasks in parallel, as well as complex detail engineering. They tend to be specialized for certain types of computation, usually numerical calculations, and perform poorly at more general computing tasks. Their memory hierarchy is very carefully designed to ensure the processor is kept fed with data and instructions at all times — in fact, much of the performance difference between slower computers and supercomputers is due to the memory hierarchy. Their I/O systems tend to be designed to support high bandwidth, with latency less of an issue, because supercomputers are not used for transaction processing.&lt;br /&gt;&lt;br /&gt;As with all highly parallel systems, Amdahl's law applies, and supercomputer designs devote great effort to eliminating software serialization, and using hardware to address the remaining bottlenecks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Supercomputer challenges, technologies&lt;br /&gt;A supercomputer generates large amounts of heat and must be cooled. Cooling most supercomputers is a major HVAC problem. &lt;br /&gt;Information cannot move faster than the speed of light between two parts of a supercomputer. For this reason, a supercomputer that is many meters across must have latencies between its components measured at least in the tens of nanoseconds. Seymour Cray's supercomputer designs attempted to keep cable runs as short as possible for this reason: hence the cylindrical shape of his Cray range of computers. In modern supercomputers built of many conventional CPUs running in parallel, latencies of 1-5 microseconds to send a message between CPUs are typical. &lt;br /&gt;Supercomputers consume and produce massive amounts of data in a very short period of time. According to Ken Batcher, "A supercomputer is a device for turning compute-bound problems into I/O-bound problems." Much work on external storage bandwidth is needed to ensure that this information can be transferred quickly and stored/retrieved correctly. &lt;br /&gt;Technologies developed for supercomputers include:&lt;br /&gt;&lt;br /&gt;Vector processing &lt;br /&gt;Liquid cooling &lt;br /&gt;Non-Uniform Memory Access (NUMA) &lt;br /&gt;Striped disks (the first instance of what was later called RAID) &lt;br /&gt;Parallel filesystems &lt;br /&gt;&lt;br /&gt;[edit] Processing techniques&lt;br /&gt;Vector processing techniques were first developed for supercomputers and continue to be used in specialist high-performance applications. Vector processing techniques have trickled down to the mass market in DSP architectures and SIMD processing instructions for general-purpose computers.&lt;br /&gt;&lt;br /&gt;Modern video game consoles in particular use SIMD extensively and this is the basis for some manufacturers' claim that their game machines are themselves supercomputers. Indeed, some graphics cards have the computing power of several TeraFLOPS. The applications to which this power can be applied was limited by the special-purpose nature of early video processing. As video processing has become more sophisticated, Graphics processing units (GPUs) have evolved to become more useful as general-purpose vector processors, and an entire computer science sub-discipline has arisen to exploit this capability: General-Purpose Computing on Graphics Processing Units (GPGPU).&lt;br /&gt;more : http://en.wikipedia.org/wiki/Supercomputer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-4090684291860742537?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/4090684291860742537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=4090684291860742537' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4090684291860742537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4090684291860742537'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/05/supercomputer.html' title='Supercomputer'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-8856243440802888770</id><published>2008-04-30T08:43:00.000-07:00</published><updated>2008-06-10T23:45:11.738-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Random access memory'/><category scheme='http://www.blogger.com/atom/ns#' term='access'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><category scheme='http://www.blogger.com/atom/ns#' term='Random'/><title type='text'>Random access memory</title><content type='html'>Random access memory (usually known by its acronym, RAM) is a type of computer data storage. Today it takes the form of integrated circuits that allow the stored data to be accessed in any order, i.e. at random. The word random thus refers to the fact that any piece of data can be returned in a constant time, regardless of its position in the memory bank and whether or not it is related to the previous piece of data.[1]&lt;br /&gt;&lt;br /&gt;This contrasts with storage mechanisms such as tapes, magnetic discs and optical discs, which rely on the physical movement of the recording medium or a reading head. In these devices, the movement takes longer than the data transfer, and the retrieval time varies depending on the physical location of the next item.&lt;br /&gt;&lt;br /&gt;The word RAM is mostly associated with volatile types of memory (such as DRAM memory modules), where the information is lost after the power is switched off. However, many other types of memory are RAM as well (i.e. Random Access Memory), including most types of ROM and a kind of flash memory called NOR-Flash.&lt;br /&gt;&lt;br /&gt;History&lt;br /&gt;The first type of random access memory was the magnetic core memory, developed in 1951, and used in all computers up until the development of the static and dynamic RAM integrated circuits in the late 1960s and early 1970s. Prior to the development of the magnetic core memory, computers used relays or vacuum tubes to perform memory functions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Overview&lt;br /&gt;&lt;br /&gt;[edit] Types of RAM&lt;br /&gt;Modern types of writable RAM generally store a bit of data in either the state of a flip-flop, as in SRAM (static RAM), or as a charge in a capacitor (or transistor gate), as in DRAM (dynamic RAM), EPROM, EEPROM and Flash. Some types have circuitry to detect and/or correct random faults called memory errors in the stored data, using parity bits or error correction codes. RAM of the read-only type, ROM, instead uses a metal mask to permanently enable/disable selected transistors, instead of storing a charge in them.&lt;br /&gt;&lt;br /&gt;As both SRAM and DRAM are volatile, other forms of computer storage, such as disks and magnetic tapes, have been used as "permanent" storage in traditional computers. Many newer products such as PDAs and small music players (up to 160 GB in Jan 2008) do not have hard disks, but often rely on flash memory to maintain data between sessions of use; the same can be said about products such as mobile phones, advanced calculators, synthesizers etc; even certain categories of personal computers, such as the OLPC XO-1, Asus Eee PC, and others, have begun replacing magnetic disk with so called flash drives. There are two basic types of flash memory: the NOR type, which is capable of true random access, and the NAND type, which is not; the former is therefore often used in place of ROM, while the latter is used in most memory cards and solid-state drives, due to a lower price.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Memory hierarchy&lt;br /&gt; &lt;br /&gt;One module of 128MB NEC SD-RAMMany computer systems have a memory hierarchy consisting of CPU registers, on-die SRAM caches, external caches, DRAM, paging systems, and virtual memory or swap space on a hard drive. This entire pool of memory may be referred to as "RAM" by many developers, even though the various subsystems can have very different access times, violating the original concept behind the random access term in RAM. Even within a hierarchy level such as DRAM, the specific row, column, bank, rank, channel, or interleave organization of the components make the access time variable, although not to the extent that rotating storage media or a tape is variable. (Generally, the memory hierarchy follows the access time with the fast CPU registers at the top and the slow hard drive at the bottom.)&lt;br /&gt;&lt;br /&gt;In most modern personal computers, the RAM comes in easily upgraded form of modules called memory modules or DRAM modules about the size of a few sticks of chewing gum. These can quickly be replaced should they become damaged or too small for current purposes. As suggested above, smaller amounts of RAM (mostly SRAM) are also integrated in the CPU and other ICs on the motherboard, as well as in hard-drives, CD-ROMs, and several other parts of the computer system.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Swapping&lt;br /&gt;If a computer becomes low on RAM during intensive application cycles, the computer can resort to swapping. In this case, the computer temporarily uses hard drive space as additional memory. Constantly relying on this type of backup memory is called thrashing, which is generally undesirable because it lowers overall system performance. In order to reduce the dependency on swapping, more RAM can be installed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Other uses of the term&lt;br /&gt;Other physical devices with read/write capability can have "RAM" in their names: for example, DVD-RAM. "Random access" is also the name of an indexing method: hence, disk storage is often called "random access" because the reading head can move relatively quickly from one piece of data to another, and does not have to read all the data in between. However the final "M" is crucial: "RAM" (provided there is no additional term as in "DVD-RAM") always refers to a solid-state device.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] "RAM disks"&lt;br /&gt;Software can "partition" a portion of a computer's RAM, allowing it to act as a much faster hard drive that is called a RAM disk. Unless the memory used is non-volatile, a RAM disk loses the stored data when the computer is shut down. However, volatile memory can retain its data when the computer is shut down if it has a separate power source, usually a battery.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Recent developments&lt;br /&gt;Several new types of non-volatile RAM, which will preserve data while powered down, are under development. The technologies used include carbon nanotubes and the magnetic tunnel effect. In summer 2003, a 128 KB magnetic RAM chip manufactured with 0.18 µm technology was introduced. The core technology of MRAM is based on the magnetic tunnel effect. In June 2004, Infineon Technologies unveiled a 16 MB prototype again based on 0.18 µm technology. Nantero built a functioning carbon nanotube memory prototype 10 GB array in 2004. Whether some of these technologies will be able to eventually take a significant market share from either DRAM, SRAM, or flash-memory technology, remains to be seen however.&lt;br /&gt;&lt;br /&gt;In 2006, "Solid-state drives" (based on flash memory) with capacities exceeding 150 gigabytes and speeds far exceeding traditional disks have become available. This development has started to blur the definition between traditional random access memory and "disks", dramatically reducing the difference in performance&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Memory wall&lt;br /&gt;The "memory wall" is the growing disparity of speed between CPU and memory outside the CPU chip. An important reason for this disparity is the limited communication bandwidth beyond chip boundaries. From 1986 to 2000, CPU speed improved at an annual rate of 55% while memory speed only improved at 10%. Given these trends, it was expected that memory latency would become an overwhelming bottleneck in computer performance. [2]&lt;br /&gt;&lt;br /&gt;Currently, CPU speed improvements have slowed significantly partly due to major physical barriers and partly because current CPU designs have already hit the memory wall in some sense. Intel summarized these causes in their Platform 2015 documentation (PDF):&lt;br /&gt;&lt;br /&gt;“First of all, as chip geometries shrink and clock frequencies rise, the transistor leakage current increases, leading to excess power consumption and heat (more on power consumption below). Secondly, the advantages of higher clock speeds are in part negated by memory latency, since memory access times have not been able to keep pace with increasing clock frequencies. Third, for certain applications, traditional serial architectures are becoming less efficient as processors get faster (due to the so-called Von Neumann bottleneck), further undercutting any gains that frequency increases might otherwise buy. In addition, partly due to limitations in the means of producing inductance within solid state devices, resistance-capacitance (RC) delays in signal transmission are growing as feature sizes shrink, imposing an additional bottleneck that frequency increases don't address.”&lt;br /&gt;&lt;br /&gt;The RC delays in signal transmission were also noted in Clock Rate versus IPC: The End of the Road for Conventional Microarchitectures which projects a maximum of 12.5% average annual CPU performance improvement between 2000 and 2014. The data on Intel Processors clearly shows a slowdown in performance improvements in recent processors. However, Intel's new processors, Core 2 Duo (codenamed Conroe) show a significant improvement over previous Pentium 4 processors; due to a more efficient architecture, performance increased while clock rate actually decreased.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Security concerns&lt;br /&gt;Contrary to simple models (and perhaps common belief), the contents of modern SDRAM modules isn't lost immediately when the computer is shutdown, it fades away - a process that takes only seconds at room temperatures, but which can be extended to minutes at low temperatures. As an example, it is therefore possible to get hold of an encryption key if it was stored in ordinary working memory (i.e. the SDRAM modules&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/RAM"&gt;read more&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-8856243440802888770?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/8856243440802888770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=8856243440802888770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/8856243440802888770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/8856243440802888770'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/random-access-memory.html' title='&lt;strong&gt;Random access memory&lt;/strong&gt;'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-5038632085162185322</id><published>2008-04-30T08:39:00.000-07:00</published><updated>2008-04-30T08:42:37.145-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='How RAM Works'/><category scheme='http://www.blogger.com/atom/ns#' term='RAM'/><title type='text'>How RAM Works</title><content type='html'>by Jeff Tyson and Dave Coustan &lt;br /&gt;&lt;br /&gt;Random access memory (RAM) is the best known form of computer memory. RAM is considered "random access" because you can access any memory cell directly if you know the row and column that intersect at that cell&lt;br /&gt;&lt;br /&gt;The opposite of RAM is serial access memory (SAM). SAM stores data as a series of memory cells that can only be accessed sequentially (like a cassette tape). If the data is not in the current location, each memory cell is checked until the needed data is found. SAM works very well for memory buffers, where the data is normally stored in the order in which it will be used (a good example is the texture buffer memory on a video card). RAM data, on the other hand, can be accessed in any order. &lt;br /&gt;&lt;br /&gt;In this article, you'll learn all about what RAM is, what kind you should buy and how to install it. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dynamic RAM&lt;br /&gt;Similar to a microprocessor, a memory chip is an integrated circuit (IC) made of millions of transistors and capacitors. In the most common form of computer memory, dynamic random access memory (DRAM), a transistor and a capacitor are paired to create a memory cell, which represents a single bit of data. The capacitor holds the bit of information -- a 0 or a 1 (see How Bits and Bytes Work for information on bits). The transistor acts as a switch that lets the control circuitry on the memory chip read the capacitor or change its state. &lt;br /&gt;&lt;br /&gt;A capacitor is like a small bucket that is able to store electrons. To store a 1 in the memory cell, the bucket is filled with electrons. To store a 0, it is emptied. The problem with the capacitor's bucket is that it has a leak. In a matter of a few milliseconds a full bucket becomes empty. Therefore, for dynamic memory to work, either the CPU or the memory controller has to come along and recharge all of the capacitors holding a 1 before they discharge. To do this, the memory controller reads the memory and then writes it right back. This refresh operation happens automatically thousands of times per second.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RAM Image Gallery&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The capacitor in a dynamic RAM memory cell is like a leaky bucket.&lt;br /&gt;It needs to be refreshed periodically or it will discharge to 0.  See more pictures of RAM.&lt;br /&gt;&lt;br /&gt;This refresh operation is where dynamic RAM gets its name. Dynamic RAM has to be dynamically refreshed all of the time or it forgets what it is holding. The downside of all of this refreshing is that it takes time and slows down the memory. &lt;br /&gt;&lt;br /&gt;Memory cells are etched onto a silicon wafer in an array of columns (bitlines) and rows (wordlines). The intersection of a bitline and wordline constitutes the address of the memory cell. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Memory is made up of bits arranged in a two-dimensional grid.&lt;br /&gt;In this figure, red cells represent 1s and white cells represent 0s.&lt;br /&gt;In the animation, a column is selected and then rows are charged to write data into the specific column.&lt;br /&gt;&lt;br /&gt;DRAM works by sending a charge through the appropriate column (CAS) to activate the transistor at each bit in the column. When writing, the row lines contain the state the capacitor should take on. When reading, the sense-amplifier determines the level of charge in the capacitor. If it is more than 50 percent, it reads it as a 1; otherwise it reads it as a 0. The counter tracks the refresh sequence based on which rows have been accessed in what order. The length of time necessary to do all this is so short that it is expressed in nanoseconds (billionths of a second). A memory chip rating of 70ns means that it takes 70 nanoseconds to completely read and recharge each cell. &lt;br /&gt;&lt;br /&gt;Memory cells alone would be worthless without some way to get information in and out of them. So the memory cells have a whole support infrastructure of other specialized circuits. These circuits perform functions such as: &lt;br /&gt;&lt;br /&gt;Identifying each row and column (row address select and column address select) &lt;br /&gt;Keeping track of the refresh sequence (counter) &lt;br /&gt;Reading and restoring the signal from a cell (sense amplifier) &lt;br /&gt;Telling a cell whether it should take a charge or not (write enable) &lt;br /&gt;Other functions of the memory controller include a series of tasks that include identifying the type, speed and amount of memory and checking for errors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-5038632085162185322?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/5038632085162185322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=5038632085162185322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/5038632085162185322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/5038632085162185322'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/how-ram-works.html' title='How RAM Works'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-1822021014072176125</id><published>2008-04-30T08:29:00.000-07:00</published><updated>2008-04-30T08:30:53.276-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Encrypted'/><category scheme='http://www.blogger.com/atom/ns#' term='Partitions'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Stuff'/><category scheme='http://www.blogger.com/atom/ns#' term='Protect Your Stuff With Encrypted Linux Partitions'/><category scheme='http://www.blogger.com/atom/ns#' term='Protect'/><title type='text'>Protect Your Stuff With Encrypted Linux Partitions</title><content type='html'>By Carla Schroder&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We see the headlines all the time: "Company X Loses 30,000,000 Customer Social Security Numbers and Other Intimately Personal and Financial Data! Haha, Boy Are Our Faces Red!" And it always turns out to be some "contractor" (notice how it's never an employee) who had the entire wad on a laptop with (seemingly) a terabyte hard drive, which was then lost or stolen, but nobody is quite sure where or when. Or it's a giant box of backup tapes that was being transported by a vendor, who apparently cannot afford a vehicle with locking doors. To me it sounds pretty darned lame, even surreal; why in the heck do contractors get all that sensitive data in the first place, and why do they need the world's databases on their laptops? Why are giant boxes of sensitive backup tapes being carted around by some minimum-wage kid in a beatermobile? How come they never quite know what data is missing, and if it was encrypted or protected in any way? &lt;br /&gt;&lt;br /&gt;So many questions, so few answers. Today let us focus on the issue of protecting sensitive data on hard drives with encrypted file systems. This is for your mobile users and anyone who needs extra data security on workstations and servers. We're going to use cryptsetup-luks because it is easy and it is strong. We will create an encrypted partition that requires a passphrase only at mount time. Then you can use it just like any other partition. &lt;br /&gt;&lt;br /&gt;Debian, Ubuntu, and Fedora all come ready to run cryptsetup-luks. You won't need to hack kernels or anything; just install it. On Debian and the Buntu family: &lt;br /&gt;&lt;br /&gt;# aptitude install cryptsetup&lt;br /&gt;&lt;br /&gt;On Fedora: &lt;br /&gt;&lt;br /&gt;# yum install cryptsetup-luks&lt;br /&gt;&lt;br /&gt;Preparing Your System&lt;br /&gt;Unfortunately cryptsetup cannot encrypt your existing data; you must create an encrypted partition, then move your data to it. The easy way to manage your partitions is with GParted. GParted (the Gnome Partition editor) is available on all the major Linux distributions, and is a nice graphical front-end to fdisk, mkfs, and other filesystem utilities. With GParted you can resize, move, delete and create partitions, and format them with your favorite filesystem. It supports all the partition types and filesystems supported by your kernel, so you can even use it on Windows partitions on your dual-boot boxes. You can use the GParted live CD on new empty hard drives. &lt;br /&gt;&lt;br /&gt;We're just going to encrypt data partitions. There are ways to encrypt other filesystem partitions that hold potentially sensitive data, such as /var and /etc, but it is complex and tricky because these cannot be encrypted at boot. So I am going to chicken out and merely point to a page that tells how to do this in Resources, because in my own testing I have not gotten it working reliably. Yet. &lt;br /&gt;&lt;br /&gt;It doesn't matter if you format your partition with a filesystem at this point because everything will be overwritten, and the filesystem formatted after encryption. &lt;br /&gt;&lt;br /&gt;Your encrypted partition will be protected by a password. If you lose your password, you are so out of luck- your data will not be recoverable. &lt;br /&gt;&lt;br /&gt;Encrypting the Partition&lt;br /&gt;Once you have a nice new empty partition, you'll encrypt it with the cryptsetup command. Be very sure you are encrypting the correct partition: &lt;br /&gt;&lt;br /&gt;# cryptsetup --verbose --verify-passphrase -c aes-cbc-plain luksFormat /dev/sda2&lt;br /&gt;&lt;br /&gt;WARNING!&lt;br /&gt;========&lt;br /&gt;This will overwrite data on /dev/sda2 irrevocably.&lt;br /&gt;&lt;br /&gt;Are you sure? (Type uppercase yes): YES&lt;br /&gt;Enter LUKS passphrase:&lt;br /&gt;Verify passphrase:&lt;br /&gt;Command successful.&lt;br /&gt;&lt;br /&gt;This creates the encrypted partition. Now you need to create and name a mountable logical partition. In this example, it is named sda2, which could be test or fred or mysecretpartition, or anything you want: &lt;br /&gt;# cryptsetup luksOpen /dev/sda2 sda2&lt;br /&gt;Enter LUKS passphrase:&lt;br /&gt;key slot 0 unlocked.&lt;br /&gt;Command successful.&lt;br /&gt;&lt;br /&gt;This should show as a block device in /dev/mapper: &lt;br /&gt;&lt;br /&gt;$ ls -l /dev/mapper&lt;br /&gt;total 0&lt;br /&gt;crw-rw---- 1 root root  10, 63 2007-06-09 18:38 control&lt;br /&gt;brw-rw---- 1 root disk 254,  0 2007-06-09 19:46 sda2&lt;br /&gt;&lt;br /&gt;Now put a filesystem on the logical partition: &lt;br /&gt;&lt;br /&gt;# mkfs.ext3 /dev/mapper/sda2&lt;br /&gt;&lt;br /&gt;Now you need to make a mount point so you can mount and use this nice new encrypted partition. Remember, you must use the device name is from /dev/mapper/. I'll put it in my home directory. Watch for operations that require rootly powers: &lt;br /&gt;&lt;br /&gt;$ mkdir /home/me/crypted&lt;br /&gt;# mount /dev/mapper/sda1  /home/me/crypted&lt;br /&gt;&lt;br /&gt;Confirm that it mounted, and write a test file: &lt;br /&gt;&lt;br /&gt;# df -H&lt;br /&gt;[...]&lt;br /&gt;Filesystem             Size   Used  Avail Use% Mounted on&lt;br /&gt;/dev/mapper/sda2       7.9G   152M   7.3G   3% /home/carla/crypted&lt;br /&gt;# cd /home/me/crypted&lt;br /&gt;# nano test&lt;br /&gt;# ls&lt;br /&gt;lost+found  test&lt;br /&gt;&lt;br /&gt;Making it Available to Users&lt;br /&gt;So far so good! But there is one big problem: only root can access this partition. We need our ordinary user to be able to use it. This virtual partition can be managed in /etc/fstab, just like any other partition. So add a line to /etc/fstab to allow an unprivileged user to mount and unmount the partition: &lt;br /&gt;&lt;br /&gt;/dev/mapper/sda2  /home/carla/crypted  ext3 user,atime,noauto,rw,dev,exec,suid   0 0&lt;br /&gt;&lt;br /&gt;Now Carla can mount it herself: &lt;br /&gt;&lt;br /&gt;$ mount ~/crypted&lt;br /&gt;&lt;br /&gt;But Carla still cannot write to it. For this we need rootly powers one more time, to put the correct ownership and permissions on the mounted block device: &lt;br /&gt;&lt;br /&gt;# chown carla:carla /home/carla/crypted/&lt;br /&gt;# chmod 0700 /home/carla/crypted/&lt;br /&gt;&lt;br /&gt;Ok then, that's a lot of Carlas! But now Carla has her own encrypted directory to read and write to just like any other directory in her home directory, and no one else can touch it. &lt;br /&gt;&lt;br /&gt;You may unmount and shut off the encrypted partition manually like this: &lt;br /&gt;&lt;br /&gt;$  umount crypted&lt;br /&gt;# cryptsetup luksClose sda2&lt;br /&gt;&lt;br /&gt;You'll need your LUKS password only when you open the encrypted device. Remember, if you lose this password you are toast. You may delete the partition and start over, but your data are unrecoverable. Once the encrypted device is open and mounted, you may use it like any other partition. &lt;br /&gt;&lt;br /&gt;You need root powers to run cryptsetup. This is probably not ideal for your users. There are a number of different ways to handle this. One is to use sudo; *buntu users are already set up with an all-powerful sudo. Another option is to configure it to start up at boot, and close at shutdown. Or you might want to create some nice desktop icons so your users can start it up and shut it down easily on demand. &lt;br /&gt;&lt;br /&gt;We'll learn how to do these things next week, plus we'll learn how to encrypt USB keys, and how to set up a failsafe for a lost passphrase. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.enterprisenetworkingplanet.com/netsecur/article.php/3742191"&gt;read more&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-1822021014072176125?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/1822021014072176125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=1822021014072176125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1822021014072176125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1822021014072176125'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/protect-your-stuff-with-encrypted-linux.html' title='Protect Your Stuff With Encrypted Linux Partitions'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-4823448453063111395</id><published>2008-04-30T08:27:00.000-07:00</published><updated>2008-04-30T08:29:10.843-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Encrypted'/><category scheme='http://www.blogger.com/atom/ns#' term='Cryptmount'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Create Encrypted Volumes With Cryptmount and Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Volumes'/><title type='text'>Create Encrypted Volumes With Cryptmount and Linux</title><content type='html'>By Carla Schroder&lt;br /&gt;&lt;br /&gt;Cryptmount is a friendly front-end to a batch of Linux utilities used to create encrypted volumes, such as device mapper, dm-crypt, and the kernel's loopback device. It requires root privileges to create encrypted files or partitions, and then once it's set up users can mount and unmount their own encrypted volumes on demand. Its major features are: &lt;br /&gt;&lt;br /&gt;Users can change their own passwords &lt;br /&gt;Encrypted filesystems can be initialized at boot-up or on demand &lt;br /&gt;Encrypted access keys are OpenSSL-compatible &lt;br /&gt;Supports storing access keys on removable media &lt;br /&gt;Encrypt entire partitions, or create several encrypted filesystems on a single partition &lt;br /&gt;Plain text human-readable configuration files &lt;br /&gt;So it has several advantages over the excellent Cryptsetup (see Resources). Users can mount and unmount their own encrypted volumes without a bunch of /etc/fstab and sudo hacks, you have more flexibility because you're not restricted to encrypting entire block devices, and making encrypted filesystems available on demand leaves the unneeded ones in a safer state. From the user's perspective it treats raw disk partitions, any individual file, loopback devices, and LVM volumes all in the same way because Cryptmount operates on an encrypted device-mapper layer (which you can see in /dev/mapper after it's created). &lt;br /&gt;&lt;br /&gt;More File Encryption&lt;br /&gt;Protect Your Stuff With Encrypted Linux Partitions &lt;br /&gt;Protect Your Stuff With Encrypted Linux Partitions (Part 2) &lt;br /&gt;Protect Your Mobile Users With Windows' Encrypting File System &lt;br /&gt;Stuck for a definition? Look it up at Webopedia:&lt;br /&gt;&lt;br /&gt;  Cryptmount is slowly making its way into various distribution repositories. Debian Testing and Unstable currently have cryptmount 2.1. Ubuntu Feisty and Gutsy contain the moldy old 2.0 version in the Universe repository. The current stable release on Sourceforge is 2.2. You can get .debs, RPMs, and source tarballs on Sourceforge. You want at least 2.1 to get the cryptmount-setup command, plus a number of useful fixes and updates. &lt;br /&gt;&lt;br /&gt;Encrypted Filesystem Inside a File&lt;br /&gt;You don't have to encrypt an entire partition, but can create an encrypted filesystem inside an ordinary file. Use the cryptmount-setup script to do this. This example has the uninteresting bits removed:&lt;br /&gt;&lt;br /&gt;# cryptmount-setup&lt;br /&gt;   Please enter a target name for your filesystem&lt;br /&gt;   [opaque]: mystuff&lt;br /&gt;&lt;br /&gt;   Which user should own the filesystem (leave blank for root)&lt;br /&gt;   []: carla&lt;br /&gt;&lt;br /&gt;   Please specify where "mystuff" should be mounted&lt;br /&gt;  [/home/carla/crypt]:&lt;br /&gt;&lt;br /&gt;  Enter the filesystem size (in MB)&lt;br /&gt;   [64]: 1028&lt;br /&gt;&lt;br /&gt;   Enter a filename for your encrypted container&lt;br /&gt;   [/home/carla/crypto.fs]: /home/carla/mystuff.fs&lt;br /&gt;&lt;br /&gt;   Enter a location for the keyfile&lt;br /&gt;   [/etc/cryptmount/mystuff.key]:&lt;br /&gt;&lt;br /&gt;  enter password for target "mystuff": &lt;br /&gt;&lt;br /&gt;Your new encrypted filesystem is now ready for use.&lt;br /&gt;To access, try:&lt;br /&gt;   cryptmount mystuff&lt;br /&gt;   cd /home/carla/crypt&lt;br /&gt;After you have finished using the filesystem, try:&lt;br /&gt;   cd&lt;br /&gt;   cryptmount --unmount mystuff &lt;br /&gt;&lt;br /&gt;Do not choose a wimpy password, and do not forget your password, because if you lose it it's not recoverable. You can wipe out the encrypted filesystem and start over, but you cannot recover your data. You should also make backup copies of your access keys and keep them in a safe place, because losing the key also loses your data. &lt;br /&gt;&lt;br /&gt;The defaults are in square brackets. You may invent whatever names you like, and the script will create directories for you. When you specify a filename, be sure to use the whole path. When it's finished you will have a new crypt (or whatever you named it) directory and three new files, which in this example are named container, crypto.fs, and mystuff.fs. Don't try to read these files because they are just containers. &lt;br /&gt;&lt;br /&gt;Go ahead and mount your new encrypted filesystem- cryptmount-setup tells you exactly the command you need: &lt;br /&gt;&lt;br /&gt;$ cryptmount mystuff&lt;br /&gt;enter password for target "mystuff":&lt;br /&gt;e2fsck 1.40.8 (13-Mar-2008)&lt;br /&gt;/dev/mapper/mystuff: clean, 11/32768 files, 9805/131072 blocks &lt;br /&gt;&lt;br /&gt;Now there is a new /dev/mapper/mystuff block device. Only the user you specified during setup (and root) can mount and unmount the encrypted filesystem. Play around with it— copy files in and out of it, look at it in your favorite file manager—it looks just like any other directory. Unmount it just like the setup script told you: &lt;br /&gt;&lt;br /&gt;$ cd&lt;br /&gt;$ cryptmount --unmount mystuff &lt;br /&gt;&lt;br /&gt;A silent exit means success. If you have anything accessing your encrypted directory, such as a command prompt, file manager, or open file, you'll get the "umount: /home/carla/crypt: device is busy" error. Running the cd command first puts you back in the top level of your home directory. Sometimes the famd daemon will get in the way and you'll have to kill it. Don't use the standard umount command or it will get messed up, and you won't be able to re-mount it. &lt;br /&gt;&lt;br /&gt;If you make a mistake and get a "specification for target "foo" contains non-absolute pathname" error, or any other error message, enter /etc/cryptmount/cmtab to correct it. Or delete the entry and start over. &lt;br /&gt;&lt;br /&gt;If you create more than one encrypted filesystem cryptsetup -l displays a list. Users can change their passwords with cryptsetup -c [targetname]. &lt;br /&gt;&lt;br /&gt;Using a Different Linux Filesystem&lt;br /&gt;cryptmount-setup defaults to using Ext3. If you want to use something else, such as ReiserFS, JFS, or XFS, first find out if your kernel supports it: &lt;br /&gt;&lt;br /&gt;$ cat /proc/filesystems&lt;br /&gt;nodev sysfs&lt;br /&gt;nodev rootfs&lt;br /&gt;[...]&lt;br /&gt;     ext3&lt;br /&gt;     jfs&lt;br /&gt;     reiserfs&lt;br /&gt;     xfs &lt;br /&gt;&lt;br /&gt;nodev filesystems are pseudo filesystems that don't directly access a physical storage device. This example shows that all four major Linux filesystems are supported. &lt;br /&gt;&lt;br /&gt;Encrypting an Entire Partition&lt;br /&gt;If you would rather encrypt an entire partition it's better to create it manually. In this example we'll use a partition on a second hard drive, and mount it in the user's home directory. First create an entry in /etc/cryptmount/cmtab like this:&lt;br /&gt;&lt;br /&gt;    manual {&lt;br /&gt;        dev=/dev/hdb5&lt;br /&gt;        dir=/home/terry/manual&lt;br /&gt;        fstype=reiserfs&lt;br /&gt;        fsoptions=defaults&lt;br /&gt;        cipher=aes&lt;br /&gt;        keyfile=/etc/cryptmount/manual.key&lt;br /&gt;        keyformat=builtin&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;This tells Cryptmount your target name is "manual", you want /dev/hdb5 to be your encrypted partition, and to mount it in /home/terry/manual. You also should specify the filesystem type and options, and which cipher you prefer (which will be used to encrypt your filesystem) depends on what your system supports. Run this command to find out: &lt;br /&gt;&lt;br /&gt;$ ls -l /lib/modules/$(uname -r)/kernel/crypto/&lt;br /&gt;ablkcipher.ko&lt;br /&gt;aes.ko&lt;br /&gt;anubis.ko&lt;br /&gt;arc4.ko&lt;br /&gt;[...] &lt;br /&gt;&lt;br /&gt;The correct kernel module will be automatically loaded when you mount the encrypted filesystem. man cmtab describes all the options and tells you which ones are required. &lt;br /&gt;&lt;br /&gt;Next, generate your encryption key, specifying the size in bytes. This might involve a bit of math, since it's more common to use bits. This example creates a 32-byte/256-bit key. The key size depends on your chosen cipher, which you're going to have to research your own self: &lt;br /&gt;&lt;br /&gt;# cryptmount --generate-key 32 manual&lt;br /&gt;generating random key, please be patient&lt;br /&gt;enter new password for target "manual":&lt;br /&gt;confirm password:&lt;br /&gt;&lt;br /&gt;Then run this command, using your own target name of course:&lt;br /&gt;&lt;br /&gt;# cryptmount --prepare manual&lt;br /&gt;enter password for target "manual":&lt;br /&gt;&lt;br /&gt;Now create the filesystem: &lt;br /&gt;&lt;br /&gt;# mkreiserfs /dev/mapper/manual&lt;br /&gt;&lt;br /&gt;Now run:&lt;br /&gt;&lt;br /&gt;# cryptmount --release manual&lt;br /&gt;&lt;br /&gt;Then create the mountpoint as the user it's going to belong to for fewer permissions-fixing hassles: &lt;br /&gt;&lt;br /&gt;# su terry&lt;br /&gt;$ mkdir /home/terry/manual &lt;br /&gt;&lt;br /&gt;Next, mount it as the user with cryptmount manual. You'll probably have to tweak file permissions to allow a non-root user to read and write to the new encrypted partition, so while it is mounted fix the permissions and ownership: &lt;br /&gt;&lt;br /&gt;# chown terry:terry /home/terry/manual&lt;br /&gt;# chmod 0700 /home/terry/manual&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You're welcome to tweak the permissions however you like; this makes Terry the owner and group owner, and only Terry can access this directory. Now Terry should be able to mount and unmount the encrypted filesystem, read and write to it, create and delete directories, and change her own password. &lt;br /&gt;&lt;br /&gt;To mount encrypted filesystems automatically at boot, enter them in /etc/default/cryptmount. Refer to the well-written man cryptmount and man cmtab for additional options. Your installation or source tarball should contain additional examples and help, such as a sample /etc/cmtab that shows how to painlessly encrypt your swap file, and how to store your access key on a USB stick instead of on your computer. It is possible to create password-less keys, so then your USB stick operates just like an ordinary door key. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.enterprisenetworkingplanet.com/netsecur/article.php/3742191"&gt;read more&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-4823448453063111395?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/4823448453063111395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=4823448453063111395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4823448453063111395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4823448453063111395'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/create-encrypted-volumes-with.html' title='Create Encrypted Volumes With Cryptmount and Linux'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-1526778237640396248</id><published>2008-04-30T08:24:00.000-07:00</published><updated>2008-04-30T08:26:23.182-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Redefine'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruckus'/><category scheme='http://www.blogger.com/atom/ns#' term='Deployed'/><category scheme='http://www.blogger.com/atom/ns#' term='WLANs'/><category scheme='http://www.blogger.com/atom/ns#' term='Can Ruckus Redefine How Enterprise WLANs are Deployed?'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise'/><title type='text'>Can Ruckus Redefine How Enterprise WLANs are Deployed?</title><content type='html'>eliminates the need for complex, labor-intensive RF planning. &lt;br /&gt;&lt;br /&gt;“SmartMesh is an extension of our patented technology that allows us to adapt to changes in a Wi-Fi environment. It sits on top of a chipset and has a smart antenna system, which focuses RF energy toward a client and it steers it in real-time if it experiences interference. You don’t have to do anything other than plug it in. You get a longer range signal, in some cases two to four times the distance; you get a more consistent performance, and less interference,” says Callisch.&lt;br /&gt;&lt;br /&gt;The almighty dollar &lt;br /&gt;Ruckus estimates that the cost of a typical 500-user WLAN using the industry’s most popular enterprise 802.11g WLAN system (a Cisco 4402 controller, plus 25 Cisco 1131 802.11g APs, plus 150 Ethernet drops) is approximately $35,000.  &lt;br /&gt;&lt;br /&gt;In contrast, the Ruckus SmartMesh solution (15 APs, five Ethernet drops, and a Smart WLAN controller) comes in under $15,000, offers faster 802.11n, and can be installed in roughly half the time, since extensive wiring and site planning are not needed.&lt;br /&gt;&lt;br /&gt;“We are giving them the ability to deploy robust wireless LANs at a very low cost point and very quickly,” says Callisch. “And we’ve got some proof points, in terms of the customers who have done that, that can prove it. We think it will fundamentally change the economics of wireless LAN deployments by giving the enterprise managers a much easier and quicker way to build hi-performance wireless LANs without the high cost associated with wired wireless LANS. There’s a lot of hospitals and hotels and schools where there’s not a lot of IT guys and money is an issue, but they still have students and guests with Wi-Fi devices and they need a robust wireless LAN that provides coverage. If there’s power, we can work. Adding wireless capacity is as easy as plugging in a light bulb.”&lt;br /&gt;&lt;br /&gt;Other offerings &lt;br /&gt;In addition to SmartMesh, Ruckus Wireless also announced, the ZoneDirector 3000, a new line of scalable enterprise-class Smart WLAN controllers. With support for up to 250 ZoneFlex APs, the ZoneDirector 3000 provides a Smart WLAN controller option for large enterprise environments. &lt;br /&gt;&lt;br /&gt;All ZoneDirectors and/or ZoneFlex APs are also now manageable through the Ruckus FlexMaster Wi-Fi management system. Using FlexMaster, enterprises can securely manage remote smart WLANs and APs in regional or branch offices from a single point over the Internet or private IP networks.&lt;br /&gt;&lt;br /&gt;"If you had 50 hotels, and each has a WLAN, but not an IT staff, you can troubleshoot from a distance. You can see how many users, reboot, reconfigure, change access IDs--it's super granular control," says Callisch. &lt;br /&gt;&lt;br /&gt;Ruckus in the middle &lt;br /&gt;&lt;br /&gt;“We sell primarily to the middle market, the big chasm of the market not served by Cisco, Aruba, and Trapeze or the low-end served by consumer products like Netgear and D-Link. We target the middle: schools, hotels, hospitals. They require an affordable solution that’s easy to use,” says Callisch.&lt;br /&gt;&lt;br /&gt;The first Ruckus customer to deploy the SmartMesh 802.11n system is Lodgian, Inc., one of the largest independent owners and operators of full-service hotels in the United States, which deployed the new Smart Wi-Fi Ruckus solution at its Crowne Plaza Beach Oceanfront Resort Hotel in Melbourne, Florida two months ago. &lt;br /&gt;&lt;br /&gt;Prior to the deployment, the hotel received roughly four customer complaints per day about the quality if Lodgian’s legacy Wi-Fi network. Callisch says that number has been reduced to four every two weeks.&lt;br /&gt;&lt;br /&gt;“Our access points reach really, really far,” says Callisch. “Hops are bad in mesh, and we can eliminate the needless hops that you would normally get with a meshing system. That gives the client better coverage and performance. It’s an easy-to-use, scaleable system. We have taken the best concepts from enterprise-grade and stripped out all of the complexity and made it simple to use at the middle end of the market.”&lt;br /&gt;&lt;br /&gt;Availability and pricing &lt;br /&gt;SmartMesh is currently available as a free software upgrade (ZoneDirector 6.0 software) to premium support customers with Ruckus ZoneDirector Smart WLAN controllers. It can be used with the entire family of Ruckus ZoneFlex 802.11g/n Smart Wi-Fi access points. ZoneDirector 3000 ($6,000 for 25 APs), will be available in July. The FlexMaster management system is available now for ZoneFlex APs ($5,000 for 100 APs). FlexMaster managing ZoneDirectors will be available in July.&lt;br /&gt;&lt;a href="http://itmanagement.earthweb.com/secu/article.php/3743211"&gt;read more&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-1526778237640396248?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/1526778237640396248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=1526778237640396248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1526778237640396248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1526778237640396248'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/can-ruckus-redefine-how-enterprise.html' title='Can Ruckus Redefine How Enterprise WLANs are Deployed?'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-4283165097279102414</id><published>2008-04-30T08:01:00.000-07:00</published><updated>2008-04-30T08:27:29.131-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pockets'/><category scheme='http://www.blogger.com/atom/ns#' term='Lining'/><category scheme='http://www.blogger.com/atom/ns#' term='Securing'/><category scheme='http://www.blogger.com/atom/ns#' term='PCI-SSC'/><category scheme='http://www.blogger.com/atom/ns#' term='Is PCI-SSC Securing the Enterprise or Lining Pockets?'/><category scheme='http://www.blogger.com/atom/ns#' term='the Enterprise'/><title type='text'>Is PCI-SSC Securing the Enterprise or Lining Pockets?</title><content type='html'>By Sonny Discini&lt;br /&gt;&lt;br /&gt;When we were all introduced to the PCI standard, organizations right down to mom and pop operations were hopeful that the regulation would address many of the security issues involved with payment cards. Before long, security pros in the trenches realized that the initiative added a slew of technical difficulties while executives realized the crippling financial implications of the standard. Mom and pop stores were simply left in a cloud of confusion over the regulation.&lt;br /&gt;&lt;br /&gt;And so, many still remain in that state.&lt;br /&gt;&lt;br /&gt;Even so, we pressed on, doing our best to meet the requirements and acquire PCI certification. Many of us realized that even with massive overhauls, and the blessing of a Qualified Security Assessor (QSA), gaping issues still exist along with tons of confusion over the interpretation of the regulation.&lt;br /&gt;&lt;br /&gt;A large Pennsylvania health care provider was faced with costs too great to maintain operations and still meet PCI regulations. Their executives decided to do what many others have already done after making failed attempts at compliance – roll the dice and hope not to get fined.&lt;br /&gt;&lt;br /&gt;The strategy failed not once but twice.&lt;br /&gt;&lt;br /&gt;Today, that same health care provider has what is described by staff as "crippling" lockdowns that prevent the business from actually operating. Many organizations have been financially hurt more by the regulation than from data leakage or theft.&lt;br /&gt;&lt;br /&gt;A security auditor with a QSA outfit who asked to remain anonymous states, "We've run into many cases where interpretation of the standard by the organization drastically contradicts the interpretation by the QSA they hired. In addition, QSAs offer significantly different opinions to the same organization, which adds greater pressure, frustration, and confusion to the issue. Many times, organizations over compensate and go well beyond the requirements hoping to avoid fines and data disclosures."&lt;br /&gt;&lt;br /&gt;Of course, the PCI Security Standards Council heard the cries from the field. How did they respond? They added more requirements such as PCI PIN Entry Device (PED) Security Requirements and the Payment Application Data Security Standard (PA-DSS) along with an anticipated revision of the main PCI-DSS regulation.&lt;br /&gt;&lt;br /&gt;PA-DSS requirements apply to commercial payment applications that are sold, distributed or licensed to third parties. PA-DSS requirements do not apply to in-house payment applications, but these applications must still be secured in accordance with PCI-DSS.&lt;br /&gt;&lt;br /&gt;In addition, the Council will be qualifying companies to become Payment Application Qualified Security Assessors (PA-QSAs) in the coming months. Companies that are PA-QSA approved will be recognized in a Council-maintained and published list and can begin conducting PA-DSS assessments in accordance with PA-DSS Security Audit Procedures.&lt;br /&gt;&lt;br /&gt;All companies that were previously recognized as PA-QSAs under Visa Payment Application Best Practices (PABP) will need to enroll and re-validate as a Council PA-QSA. Payment applications validated as compliant under Visa's PABP program will transition to the PCI-SSC approved list.&lt;br /&gt;&lt;br /&gt;But are these requirements going to simply put the squeeze on focus areas and move the threat vector somewhere else in the business process? How will this impact risk ownership?&lt;br /&gt;&lt;br /&gt;Who's Minding the Back Door?&lt;br /&gt;Let's look at Hannaford food stores for just a moment. The company said that the data breach it disclosed on March 17 involved malicious software that was found on computer servers at about 300 of the company's stores.&lt;br /&gt;&lt;br /&gt;The software reportedly intercepted credit card data during checkout and sent captured information overseas.&lt;br /&gt;&lt;br /&gt;It's obvious that while this organization was PCI certified, criminals still managed to load malware on 300 hosts across their enterprise and exploited data transit, for three months.&lt;br /&gt;&lt;br /&gt;That said, the new regulations coming down from the PCI-SSC are supposed to deal with the above issues and more. Forgive me if I'm pessimistic here but from what others and I have seen, reactive regulations seem to be falling short of the mark on all fronts. In addition, they multiply the work needed to comply.&lt;br /&gt;&lt;br /&gt;First of all, it adds a 3-card monty shell game in regards to risk. Auditors and the organization are pushing it around the table hoping to avoid being the outfit that ultimately ends up holding the bag. Now add more regulations and the situation only gets muddier.&lt;br /&gt;&lt;br /&gt;So let's recap. PCI was introduced to deal with security issues with payment cards. The regulation caused more problems than it solved, and as a nice side effect, it generated a healthy cash flow in the way of fines. Criminals ran amuck in a PCI certified environment by exploiting 300 hosts and attacking data in transit. And now, organizations have to deal with the new regulations AND re-certify even though they already hold Visa PABP.&lt;br /&gt;&lt;br /&gt;Today it appears that organizations are going to have to deal with a web of red tape under the new trio of PCI regulations. On top of that, a wonderful new niche market has been created for "qualified" application assessors/auditors and scanners. This of course means that you're going to see more expenses added to the PCI pile. It should be clear to many that additional regulations are not going to improve the situation we're in, or in layman's terms, you can't improve an overcooked steak by cooking it longer.&lt;br /&gt;&lt;br /&gt;While the stated mission of the PCI Security Standards Council is to enhance payment account security by driving education and awareness of the PCI Data Security Standard and other standards that increase payment data security, criminals, executives and security practitioners understand the impact that the regulation has caused. And while security pros run around plugging leaks in the dam, and while organizations struggle to finance these plugs, criminals are simply shifting the attack vector to areas that PCI doesn't cover or hasn't identified as an issue yet.&lt;br /&gt;&lt;a href="http://itmanagement.earthweb.com/secu/article.php/3743211"&gt;read more&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-4283165097279102414?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/4283165097279102414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=4283165097279102414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4283165097279102414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4283165097279102414'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/is-pci-ssc-securing-enterprise-or.html' title='Is PCI-SSC Securing the Enterprise or Lining Pockets?'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-4271138573922959293</id><published>2008-04-21T14:58:00.000-07:00</published><updated>2008-04-26T19:23:00.881-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AMD and Their Struggles - CPUs'/><category scheme='http://www.blogger.com/atom/ns#' term='AMD'/><category scheme='http://www.blogger.com/atom/ns#' term='CPUs'/><category scheme='http://www.blogger.com/atom/ns#' term='Struggles'/><title type='text'>AMD and Their Struggles - CPUs </title><content type='html'>AMD’s biggest market by far is CPU sales. AMD had been doing very well until recently. Their X2 dual core processor isn’t a bad processor; it spanked the Intel Pentium D processors. It’s just that Intel came out with a product that is far superior to any that it offered before; in particular, Intel's processor is superior to the AMD X2. As far as Best Buy or Circuit City computer sales go, I would have to say that between Intel and AMD, it’s about 50/50 as to which company's CPU is in the computer. Now move to sales from places like newegg.com or zipzoomfly.com, the numbers begin to skew toward Intel. Grandma and Grandpa couldn’t care less which overclocks better; they are going to just hit the power button and want it to work. Overclockers have a different take. Whichever chip overclocks better and offers the absolute best performance is what flies off the shelves. &lt;br /&gt;&lt;br /&gt;Dual core CPU is so last year. These days, it’s all about quad cores. Intel had theirs out in November 2006. AMD didn’t have a quad core on the market until a year later. At the time of this writing, it is still hard to find AMD’s quad core CPU for sale. If finding them weren’t hard enough, there is a major problem with them involving data corruption and system hangs. Sounds really bad, doesn’t it? Well it’s not all that uncommon for CPUs to have this issue, but most of the time the problem can be quickly fixed without a noticeable performance change. However, the patch for this problem does throw a monkey wrench into the performance. Your options are: run the patch and lose performance, or run without the patch and risk data loss. Looks like it’s time to wait and see how this problem is fixed in the next revision of the CPU. &lt;br /&gt;&lt;br /&gt;AMD’s CPU market has taken a hit recently and can’t seem to get a great product out the doors. We finally saw AMD’s quad core, but it is flawed and not readily available. Currently, the only speeds available are 2.2 GHz and 2.3 GHz. In contrast, Intel’s bottom of the line quad core runs at 2.4 GHz and tops out at 3.0 GHz. AMD is trying to catch up in performance, trying to get their efficiency up to Intel's level, but these slower speeds are only hurting the performance. &lt;br /&gt;&lt;br /&gt;To try and keep sales up, even with a lesser product, AMD dropped prices. If they can’t compete in clock for clock performance, they could drop the price down to where the extra speed for the same price could create a competing market. This increased sales, but drastically decreased revenue. &lt;br /&gt;&lt;br /&gt;AMD’s new marketing scheme is green. The CPUs they are making now are more energy efficient. This will save money in the long run from an energy standpoint. Many businesses are starting to try to cut budgets and saving on electricity is a place to start. On the flip side, AMD chips don’t have as much computing power, so you will need more time and CPUs to make up for it. &lt;br /&gt;&lt;a href="http://www.devhardware.com/c/a/Opinions/AMD-and-Their-Struggles/2/"&gt;&lt;br /&gt;read more here &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-4271138573922959293?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/4271138573922959293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=4271138573922959293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4271138573922959293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4271138573922959293'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/amd-and-their-struggles-cpus.html' title='&lt;a href=&quot;http://www.devhardware.com/c/a/Opinions/AMD-and-Their-Struggles/2/&quot;&gt;AMD and Their Struggles - CPUs &lt;/a&gt;'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-8333959666484700323</id><published>2008-04-21T14:55:00.000-07:00</published><updated>2008-04-26T19:23:35.806-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AMD and Their Struggles'/><category scheme='http://www.blogger.com/atom/ns#' term='AMD'/><category scheme='http://www.blogger.com/atom/ns#' term='Struggles'/><title type='text'>AMD and Their Struggles </title><content type='html'>If you have been in the tech news loop for the past year or two, you probably haven’t heard much good news from the AMD (Advanced Micro Devices) headquarters. In this article, we will take a look back at what has happened and see where things might be headed in the near future. Will AMD end up going bankrupt or could they topple Intel? Read on to see where AMD is going.&lt;br /&gt;&lt;br /&gt;Chances are that you have heard of AMD and probably know they make CPUs. Things have been going down a bumpy road for the company for some time. The Phenom quad cores are buggy and only the low end ones are out. ATI doesn’t have a killer card on the market yet and only recently put out a decent card in the HD 3800 series. &lt;br /&gt;&lt;br /&gt;History &lt;br /&gt;&lt;br /&gt;Most people's first memories of AMD chips are probably the AMD Athlon XP CPUs. Until then, most people probably only knew of Intel. The Athlon XP changed that. It offered the same or better performance in many applications and also cost less than comparable Intel chips. &lt;br /&gt;&lt;br /&gt;AMD carried their success into their next generation of CPUs, the Athlon 64. Once again they came out on top of Intel in price and performance. They also had support for 64-bit computing, which was a step ahead of Intel, and looked set to change the computer world. Sadly, 64-bit is still at the market entry stage. A vast majority of computers being sold are running 32-bit software. &lt;br /&gt;&lt;br /&gt;AMD’s last smashing of Intel came with the Athlon X2 dual core CPU. They didn’t beat Intel to the market with their dual core, but they managed to make it more efficient and consume less power. AMD didn’t rush to the market, but took their time. Intel slapped two cores into a single CPU, but in the long run it hurt them. AMD's slower approach meant they got it right the first time. &lt;br /&gt;&lt;br /&gt;After this AMD started running into some snags. Intel released their Core Duo processors that overtook AMD’s best CPU clock for clock. They also were able to run at a higher frequency. From this point on, many things have continued to swing against AMD.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.devhardware.com/c/a/Opinions/AMD-and-Their-Struggles/"&gt;read more here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-8333959666484700323?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/8333959666484700323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=8333959666484700323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/8333959666484700323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/8333959666484700323'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/amd-and-their-struggles.html' title='&lt;a href=&quot;http://www.devhardware.com/c/a/Opinions/AMD-and-Their-Struggles/&quot;&gt;AMD and Their Struggles &lt;/a&gt;'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-7266873913375063191</id><published>2008-04-13T20:32:00.000-07:00</published><updated>2008-04-26T19:24:33.137-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware description language'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='description'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>Hardware description language</title><content type='html'>In electronics, a hardware description language or HDL is any language from a class of computer languages for formal description of electronic circuits. It can describe the circuit's operation, its design and organization, and tests to verify its operation by means of simulation.&lt;br /&gt;&lt;br /&gt;A Hardware Description Language (HDL) is a standard text-based expression of the temporal behaviour and/or (spatial) circuit structure of an electronic system. In contrast to a software programming language, an HDL's syntax and semantics include explicit notations for expressing time and concurrency which are the primary attributes of hardware. Languages whose only characteristic is to express circuit connectivity between a hierarchy of blocks are properly classified as netlist languages.&lt;br /&gt;&lt;br /&gt;HDLs are used to write executable specifications of some piece of hardware. A simulation program, designed to implement the underlying semantics of the language statements, coupled with simulating the progress of time, provides the hardware designer with the ability to model a piece of hardware before it is created physically. It is this executability that gives the illusion of HDLs being a programming language. Simulators capable of supporting discrete event (digital), and continuous time (analog) modeling exist and HDLs targeted for each are available.&lt;br /&gt;&lt;br /&gt;It is certainly possible to represent hardware semantics using traditional programming languages such as C++ (and augmented with extensive and unwieldy class libraries.) However, the C++ language does not include any capability for expressing time explicitly and consequently is not a proper hardware description language.&lt;br /&gt;&lt;br /&gt;Using the proper subset of virtually any (hardware description or software programming) language, a software program called a synthesizer can infer hardware logic operations from the language statements and produce an equivalent netlist of generic hardware primitives to implement the specified behaviour. This typically (as of 2004) requires the synthesizer to ignore the expression of any timing constructs in the text. The ability to have a synthesizable subset of the language does not itself make a hardware description language.&lt;br /&gt;&lt;br /&gt;Designing a system in HDL is generally much harder and more time consuming than writing a program that would do the same thing using a programming language like C. Consequently, there has been much work done on automatic conversion of C code into HDL, but this has not reached a high level of commercial success as of 2004.&lt;br /&gt;History of HDLs&lt;br /&gt;The first hardware description languages were ISP, developed at Carnegie Mellon University, and KARL, developed at University of Kaiserslautern, both around 1977. ISP was, however, more like a software programming language used to describe relations between the inputs and the outputs of the design. Therefore, it could be used to simulate the design, but not to synthesize it. KARL included design calculus language features supporting VLSI chip floorplanning and Structured hardware design, which was also the basis of KARL's interactive graphic sister language ABL, implemented in the early 1980s as the ABLED graphic VLSI design editor, by the telecommunication research center CSELT at Torino, Italy. In the mid 80's, a VLSI design framework was implemented around KARL and ABL by an international consortium funded by the commission of the European Union (chapter in [1]). In 1983 Data-I/O introduced ABEL. It was targeted for describing programmable logical devices and was basically used to design finite state machines.&lt;br /&gt;&lt;br /&gt;The first modern HDL, Verilog, was introduced by Gateway Design Automation in 1985. Cadence Design Systems later acquired the rights to Verilog-XL, the HDL-simulator which would become the de-facto standard (of Verilog simulators) for the next decade. In 1987, a request from the U.S. Department of Defense led to the development of VHDL (Very High Speed Integrated Circuit Hardware Description Language.) Initially, Verilog and VHDL were used to document and simulate circuit-designs already captured and described in another form (such as a schematic file.) HDL-simulation enabled engineers to work at a higher level of abstraction than simulation at the schematic-level, and thus increased design capacity from hundreds of transistors to thousands.&lt;br /&gt;&lt;br /&gt;The introduction of logic-synthesis for HDLs pushed HDLs from the background into the foreground of digital-design. Synthesis tools compiled HDL-source files (written in a constrained format called "RTL") into a manufacturable gate/transistor-level netlist description. Writing synthesizeable RTL files required practice and discipline on the part of the designer; compared to a traditional schematic-layout, synthesized-RTL netlists were almost always larger in area and slower in performance. Circuit design by a skilled engineer, using labor-intensive schematic-capture/hand-layout, would almost always outperform its logically-synthesized equivalent, but synthesis's productivity advantage soon displaced digital schematic-capture to exactly those areas which were problematic for RTL-synthesis: extremely high-speed, low-power, or asynchronous circuitry. In short, logic synthesis not only propelled HDLs into a central role for digital design, it was a revolutionary technology for digital-circuit design industry.&lt;br /&gt;&lt;br /&gt;Within a few years, both VHDL and Verilog emerged as the dominant HDLs in the electronics industry, while older and less-capable HDLs gradually disappeared from use. But VHDL and Verilog share many of the same limitations: neither HDL is suitable for analog/mixed-signal circuit simulation. Neither possesses language constructs to describe recursively-generated logic structures. Specialized HDLs (such as Confluence) were introduced with the explicit goal of fixing a specific Verilog/VHDL limitation, though none were ever intended to replace VHDL/Verilog.&lt;br /&gt;&lt;br /&gt;Over the years, a lot of effort has gone into improving HDLs. The latest iteration of Verilog, formally known as IEEE 1800-2005 Systemverilog, introduces many new features (classes, random variables, and properties/assertions) to address the growing need for better testbench randomization, design hierarchy, and reuse. A future revision of VHDL is also in development, and is expected to match Systemverilog's improvements. Both VHDL and Verilog, with their continual refinements, are expected to remain in active use for years to come.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Design using HDL&lt;br /&gt;The vast majority of modern digital circuit-design revolves around an HDL-description of the desired circuit, device, or subsystem.&lt;br /&gt;&lt;br /&gt;Most designs begin on traditional pencil and paper, as written set of requirements or a high-level architectural diagram. The process of writing the HDL-description is highly dependent on the designer's background and the circuit's nature. The HDL is merely the 'capture language' -- designers often begin with a high-level algorithmic description (such as MATLAB or a C++ mathematical model.) Control and decision structures are often prototyped in flowchart applications, or entered in a state-diagram editor. Designers even use scripting-languages (such as PERL) to auto-generate repetitive circuit-structures in the HDL language. Advanced text-editors (such as EMACS) offer an editor template to auto-indent, color-highlight syntax keywords, and macro-expand entity/architecture/signal declaration.&lt;br /&gt;&lt;br /&gt;As the design's implementation is fleshed out, the HDL-code invariably must undergo code review (i.e. auditing.) In preparation for synthesis, the HDL-description is subject to an array of automated checkers. The checkers enforce standardized-code guidelines (to identify ambiguous code-constructs before they can cause mis-interpretation by downstream synthesis) and check for common logical-coding errors (such as dangling ports or shorted outputs.)&lt;br /&gt;&lt;br /&gt;In industry parlance, HDL-design generally ends at the synthesis stage. Once the synthesis-tool has mapped the HDL-description into a gate-netlist, the netlist is passed off to the 'back-end' stage. Depending on the physical technology (FPGA vs ASIC gate-array vs ASIC standard-cell), HDLs may or may not play a significant role in the back-end flow. In general, as the design-flow progresses toward a physically realizeable form, the design-database becomes progressively more laden with technology-specific information, which cannot be stored in a generic HDL-description. The end result is a silicon chip that would be manufactured in a fab.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Simulating and debugging HDL code&lt;br /&gt;Essential to HDL-design is the ability to simulate HDL programs. Simulation allows a HDL-description of a design (called a model) to pass design verification, an important milestone that validates the design's intended function (specification) against the code-implementation (HDL-description.) It also permits architectural exploration. The engineer can experiment with design choices by writing multiple variations of a base design, then comparing their behavior in simulation. Thus, simulation is critical for successful HDL-design.&lt;br /&gt;&lt;br /&gt;To simulate an HDL-model, the engineer writes a toplevel simulation environment (called a testbench.) At a minimum, the testbench contains an instantiation of the model (called the device-under-test or DUT), pin/signal declarations for the model's I/O, and a clock-waveform. The testbench-code is event-driven: the engineer writes HDL-statements to implement the (testbench-generated) reset-signal, to model interface-transactions (such as a host-bus read/write), and to monitor the DUT's output. The HDL-simulator, which is the program which executes the testbench, maintains the simulator-clock, the master reference for all events in the testbench. Events occur only at the instants dictated by the testbench-HDL (such as a reset-toggle coded into the testbench), or in reaction (by the model) to stimulus and triggering events. Modern HDL-simulators have a full-featured GUI (graphical user interface), complete with a suite of debug tools. These allow the user to stop/restart the simulation at any time, insert simulator breakpoints (independent of the HDL-code), and monitor/modify any element in the HDL-model's hierarchy. Modern-simulators can also link the HDL-environment to user-compiled libraries, through a defined PLI/VHPI interface. Linking is machine-dependent (Win32/Linux/SPARC), as the HDL-simulator and user-libraries are compiled and linked outside the HDL-environment.&lt;br /&gt;&lt;br /&gt;Design verification is often the most time-consuming portion of the design process, due to the disconnect between a device's functional specification, designer interpretation of the specification, and imprecision of the HDL-language. The majority of the initial test/debug cycle is conducted in the HDL simulator environment, as the early stage of the design is subject to frequent and major circuit changes. An HDL-description can also be prototyped and tested in hardware -- programmable logic device are often used for this purpose. Hardware prototyping is comparatively more expensive than HDL-simulation, but offers a real-world view of the design. Prototyping is the best way to check interfacing against other hardware-devices, and hardware-prototypes, even those running on slow FPGAs, offer much faster simulation times than pure HDL-simulation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Design Verification with HDLs&lt;br /&gt;Historically, design verification was a laborious, repetitive loop of writing and running simulation testcases against the design-under-test. As chip designs have grown larger and more complex, the task of design verification has grown to the point where it now dominates the schedule of a design-team. Looking for ways to improve design productivity, the EDA industry developed the property specification language.&lt;br /&gt;&lt;br /&gt;In formal verification terms, a property is a factual statement about the expected or assumed behavior of another object. Ideally, for a given HDL-design description, a property (or properties) can be proven true or false using formal mathematical methods. In practical terms, many properties cannot be proven because they occupy an unbounded solution space. However, if provided a set of operating assumptions or constraints, a property-checker tool can prove (or disprove) more properties, over the narrowed solution space.&lt;br /&gt;&lt;br /&gt;The assertions do not model circuit activity, but rather, capture and document the "designer's intent" in the HDL code-listing. In a simulation environment, the simulator evaluates all specified assertions, reporting the location and severity of any violations. In a synthesis environment, the synthesis tool would probably take the policy of halting synthesis on any violation. Assertion-based verification is still in its infancy, but is expected to become an integral part of the HDL design-toolset.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] HDL and programming languages&lt;br /&gt;An HDL is analogous to a software programming language, but with major differences. Programming languages are inherently procedural (single-threaded), with limited syntactical and semantic support to handle concurrency. HDLs, on the other hand, can model multiple parallel processes (such as flipflops, adders, etc.) that automatically execute independently of one another. Any change to the process's input automatically triggers an update in the simulator's process stack. Both programming languages and HDLs are processed by a compiler (usually called a synthesizer in the HDL case), but with different goals. For HDLs, 'compiler' refers to synthesis, a process of transforming the HDL code-listing into a physically-realizable gate netlist. The netlist-output can take any of many forms: a "simulation" netlist with gate-delay information, a "handoff" netlist for post-synthesis place&amp;route, or a generic industry-standard EDIF format (for subsequent conversion to a JEDEC-format file.)&lt;br /&gt;&lt;br /&gt;On the other hand, a software compiler converts the source-code listing into a microprocessor-specific object-code, for execution on the target microprocessor. As HDLs and programming-languages borrow concepts and features from each other, the boundary between them is becoming less distinct. However, pure HDLs are unsuitable for general purpose software application development, just as general-purpose programming languages are undesirable for modeling hardware. However, as electronic systems grow increasingly complex, and reconfigurable systems become increasingly mainstream, there is growing desire in the industry for a single language that can perform some tasks of both hardware-design and software-programming. SystemC is an example of such -- embedded system hardware can be modeled as non-detailed architectural blocks (blackboxes with modeled signal-inputs and output drivers.) The target application is written in C/C++, and natively-compiled for the host-development system (as opposed to the targeting the embedded CPU, requiring host-simulation of the embedded CPU.) SystemC model's high-level of abstraction is well suited for early architecture exploration, as the architect can quickly evaluate architectural modifications, with little concern about signal-level implementation issues.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Languages&lt;br /&gt;&lt;br /&gt;[edit] Digital circuit design&lt;br /&gt;The two most widely-used and well-supported HDL varieties used in industry are:&lt;br /&gt;&lt;br /&gt;VHDL &lt;br /&gt;Verilog &lt;br /&gt;Others include:&lt;br /&gt;&lt;br /&gt;Advanced Boolean Expression Language (ABEL) &lt;br /&gt;AHDL (Altera HDL, a proprietary language from Altera) &lt;br /&gt;Atom (behavioral synthesis and high-level HDL based on Haskell) &lt;br /&gt;Bluespec (high-level HDL originally based on Haskell, now with a SystemVerilog syntax) &lt;br /&gt;Confluence (a functional HDL; has been discontinued) &lt;br /&gt;CUPL (a proprietary language from Logical Devices, Inc.) &lt;br /&gt;HDCaml (based on Objective Caml) &lt;br /&gt;Hardware Join Java (based on Join Java) &lt;br /&gt;HML (based on SML) &lt;br /&gt;Hydra (based on Haskell) &lt;br /&gt;JHDL (based on Java) &lt;br /&gt;Lava (based on Haskell) &lt;br /&gt;Lola (a simple language used for teaching) &lt;br /&gt;MyHDL (based on Python) &lt;br /&gt;PALASM (for Programmable Array Logic (PAL) devices) &lt;br /&gt;Ruby (hardware description language) &lt;br /&gt;RHDL (based on the Ruby programming language) &lt;br /&gt;CoWareC, a C-based HDL by CoWare. Now discontinued in favor of SystemC &lt;br /&gt;SystemVerilog, a superset of Verilog, with enhancements to address system-level design and verification &lt;br /&gt;SystemC, a standardized class of C++ libraries for high-level behavioral and transaction modeling of digital hardware at a high level of abstraction, i.e. system-level&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-7266873913375063191?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/7266873913375063191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=7266873913375063191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/7266873913375063191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/7266873913375063191'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/hardware-description-language.html' title='Hardware description language'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-4560828419858576710</id><published>2008-04-13T20:31:00.000-07:00</published><updated>2008-04-26T19:25:08.927-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microarchitecture'/><title type='text'>Microarchitecture</title><content type='html'>In computer engineering, microarchitecture (sometime abbreviated to µarch or uarch) is a description of the electrical circuitry of a computer, central processing unit, or digital signal processor that is sufficient for completely describing the operation of the hardware.&lt;br /&gt;&lt;br /&gt;In academic circles, the term computer organization is used, while in the computer industry, the term microarchitecture is more often used. Microarchitecture and instruction set architecture (ISA) together constitute the field of computer architecture&lt;br /&gt;Etymology of the term&lt;br /&gt;Since the 1950s, many computers used microprogramming to implement their control logic which decoded the program instructions and executed them. The bits within the microprogram words controlled the processor at the level of electrical signals.&lt;br /&gt;&lt;br /&gt;The term microarchitecture was used to describe the units that were controlled by the microprogram words, as opposed to architecture that was visible and documented for programmers. While architecture usually had to be compatible between hardware generations, the underlying microarchitecture could be easily changed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Relation to instruction set architecture&lt;br /&gt;Microarchitecture is distinct from a computer's instruction set architecture. The instruction set architecture is the abstract image of a computing system that is seen by a machine language (or assembly language) programmer, including the instruction set, memory address modes, processor registers, and address and data formats. The computer organization is a lower level, more concrete, description of the system than the ISA. The computer organization shows the constituent parts of the system and how they are interconnected and how they interoperate in order to implement the architectural specification. [1][2] [3]&lt;br /&gt;&lt;br /&gt;Different machines may have the same instruction set architecture, and thus be capable of executing the same programs, yet have different microarchitectures. These different microarchitectures (along with advances in semiconductor manufacturing technology) are what allows newer generations of processors to achieve higher performance levels as compared to previous generations. In theory, a single microarchitecture (especially if it includes microcode) could be used to implement 2 different instruction sets, by programming 2 different control stores.&lt;br /&gt;&lt;br /&gt;The microarchitecture of a machine is usually represented as a block diagram that describes the interconnections of the registers, buses, and functional blocks of the machine. This description includes the number of execution units, the type of execution units (such as floating point, integer, branch prediction, single instruction multiple data (SIMD), the nature of the pipeline (which might include such stages as instruction fetch, decode, assign, execution, completion in a very simple pipeline), the cache memory design (level 1, level 2 interfaces), and the peripheral support.&lt;br /&gt;&lt;br /&gt;The actual physical circuit layout, hardware construction, packaging, and other physical details is called the implementation of that microarchitecture. Two machines may have the same microarchitecture, and hence the same block diagram, but different hardware implementations.[4]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Aspects of microarchitecture&lt;br /&gt;The pipelined datapath is the most commonly used datapath design in microarchitecture today. This technique is used in most modern microprocessors, microcontrollers, and DSPs. The pipelined architecture allows multiple instructions to overlap in execution, much like an assembly line. The pipeline includes several different stages which are fundamental in microarchitecture designs.[4] Some of these stages include instruction fetch, instruction decode, execute, and write back. Some architectures include other stages such as memory access. The design of pipelines is one of the central microarchitectural tasks.&lt;br /&gt;&lt;br /&gt;Execution units are also essential to microarchitecture. Execution units include arithmetic logic units (ALU), floating point units (FPU), load/store units, branch prediction, and SIMD. These units perform the operations or calculations of the processor. The choice of the number of execution units, their latency and throughput is a central microarchitectural design task. The size, latency, throughput and connectivity of memories within the system are also microarchitectural decisions.&lt;br /&gt;&lt;br /&gt;System-level design decisions such as whether or not to include peripherals, such as memory controllers, can be considered part of the microarchitectural design process. This includes decisions on the performance-level and connectivity of these peripherals.&lt;br /&gt;&lt;br /&gt;Unlike architectural design, where achieving a specific performance level is the main goal, microarchitectural design pays closer attention to other constraints. Since microarchitecture design decisions directly affect what goes into a system, attention must be paid to such issues as:&lt;br /&gt;&lt;br /&gt;chip area/cost &lt;br /&gt;power consumption &lt;br /&gt;logic complexity &lt;br /&gt;ease of connectivity &lt;br /&gt;manufacturability &lt;br /&gt;ease of debugging &lt;br /&gt;testability &lt;br /&gt;&lt;br /&gt;[edit] Micro-Architectural Concepts&lt;br /&gt;In general, all CPUs, single-chip microprocessors or multi-chip implementations run programs by performing the following steps:&lt;br /&gt;&lt;br /&gt;read an instruction and decode it &lt;br /&gt;find any associated data that is needed to process the instruction &lt;br /&gt;process the instruction &lt;br /&gt;write the results out &lt;br /&gt;Complicating this simple-looking series of steps is the fact that the memory hierarchy, which includes caching, main memory and non-volatile storage like hard disks, (where the program instructions and data reside) has always been slower than the processor itself. Step (2) often introduces a lengthy (in CPU terms) delay while the data arrives over the computer bus. A considerable amount of research has been put into designs that avoid these delays as much as possible. Over the years, a central goal was to execute more instructions in parallel, thus increasing the effective execution speed of a program. These efforts introduced complicated logic and circuit structures. Initially these techniques could only be implemented on expensive mainframes or supercomputers due to the amount of circuitry needed for these techniques. As semiconductor manufacturing progressed, more and more of these techniques could be implemented on a single semiconductor chip.&lt;br /&gt;&lt;br /&gt;See Article Central Processing Unit for a more detailed discussion on operation basics.&lt;br /&gt;&lt;br /&gt;See Article History of general purpose CPUs for a more detailed discussion on the development history of CPUs.&lt;br /&gt;&lt;br /&gt;What follows is a survey of micro-architectural techniques that are common in modern CPUs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Instruction Set choice&lt;br /&gt;The choice of which Instruction Set Architecture to use greatly affects the complexity of implementing high performance devices. Over the years, computer architects have strived to simplify instruction sets, which enables higher performance implementations by allowing designers to spend effort and time on features which improve performance as opposed to spending their energies on the complexity inherent in the instruction set.&lt;br /&gt;&lt;br /&gt;Instruction set design has progressed from CISC, RISC, VLIW, EPIC types. Architectures that are dealing with data parallelism include SIMD and Vectors.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Instruction pipelining&lt;br /&gt;Main article: instruction pipeline&lt;br /&gt;One of the first, and most powerful, techniques to improve performance is the use of the instruction pipeline. Early processor designs would carry out all of the steps above for one instruction before moving onto the next. Large portions of the circuitry were left idle at any one step; for instance, the instruction decoding circuitry would be idle during execution and so on.&lt;br /&gt;&lt;br /&gt;Pipelines improve performance by allowing a number of instructions to work their way through the processor at the same time. In the same basic example, the processor would start to decode (step 1) a new instruction while the last one was waiting for results. This would allow up to four instructions to be "in flight" at one time, making the processor look four times as fast. Although any one instruction takes just as long to complete (there are still four steps) the CPU as a whole "retires" instructions much faster and can be run at a much higher clock speed.&lt;br /&gt;&lt;br /&gt;RISC make pipelines smaller and much easier to construct by cleanly separating each stage of the instruction process and making them take the same amount of time — one cycle. The processor as a whole operates in an assembly line fashion, with instructions coming in one side and results out the other. Due to the reduced complexity of the Classic RISC pipeline, the pipelined core and an instruction cache could be placed on the same size die that would otherwise fit the core alone on a CISC design. This was the real reason that RISC was faster. Early designs like the SPARC and MIPS often ran over 10 times as fast as Intel and Motorola CISC solutions at the same clock speed and price.&lt;br /&gt;&lt;br /&gt;Pipelines are by no means limited to RISC designs. By 1986 the top-of-the-line VAX (the 8800) was a heavily pipelined design, slightly predating the first commercial MIPS and SPARC designs. Most modern CPUs (even embedded CPUs) are now pipelined, and microcoded CPUs with no pipelining are seen only in the most area-constrained embedded processors. Large CISC machines, from the VAX 8800 to the modern Pentium 4 and Athlon, are implemented with both microcode and pipelines. Improvements in pipelining and caching are the two major microarchitectural advances that have enabled processor performance to keep pace with the circuit technology on which they are based.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Cache&lt;br /&gt;It was not long before improvements in chip manufacturing allowed for even more circuitry to be placed on the die, and designers started looking for ways to use it. One of the most common was to add an ever-increasing amount of cache memory on-die. Cache is simply very fast memory, memory that can be accessed in a few cycles as opposed to "many" needed to talk to main memory. The CPU includes a cache controller which automates reading and writing from the cache, if the data is already in the cache it simply "appears," whereas if it is not the processor is "stalled" while the cache controller reads it in.&lt;br /&gt;&lt;br /&gt;RISC designs started adding cache in the mid-to-late 1980s, often only 4 KB in total. This number grew over time, and typical CPUs now have about 512 KB, while more powerful CPUs come with 1 or 2 or even 4, 6, 8 or 12 MB, organized in multiple levels of a memory hierarchy. Generally speaking, more cache means more speed.&lt;br /&gt;&lt;br /&gt;Caches and pipelines were a perfect match for each other. Previously, it didn't make much sense to build a pipeline that could run faster than the access latency of off-chip memory. Using on-chip cache memory instead, meant that a pipeline could run at the speed of the cache access latency, a much smaller length of time. This allowed the operating frequencies of processors to increase at a much faster rate than that of off-chip memory.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Branch Prediction&lt;br /&gt;One of barriers to achieving higher performance through instruction-level parallelism are pipeline stalls and flushes due to branches. Normally, whether a conditional branch will be taken isn't known until late in the pipeline as conditional branches depend on results coming from a register. From the time that the processor's instruction decoder has figured out that it has encountered a conditional branch instruction to the time that the deciding register value can be read out, the pipeline might be stalled for several cycles. On average, every fifth instruction executed is a branch, so that's a high amount of stalling. If the branch is taken, its even worse, as then all of the subsequent instructions which were in the pipeline needs to be flushed.&lt;br /&gt;&lt;br /&gt;Techniques such as branch prediction and speculative execution are used to lessen these branch penalties. Branch prediction is where the hardware makes educated guesses on whether a particular branch will be taken. The guess allows the hardware to prefetch instructions without waiting for the register read. Speculative execution is a further enhancement in which the code along the predicted path is executed before it is known whether the branch should be taken or not.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Superscalar&lt;br /&gt;Even with all of the added complexity and gates needed to support the concepts outlined above, improvements in semiconductor manufacturing soon allowed even more logic gates to be used.&lt;br /&gt;&lt;br /&gt;In the outline above the processor processes parts of a single instruction at a time. Computer programs could be executed faster if multiple instructions were processed simultaneously. This is what superscalar processors achieve, by replicating functional units such as ALUs. The replication of functional units was only made possible when the die area of a single-issue processor no longer stretched the limits of what could be reliably manufactured. By the late 1980s, superscalar designs started to enter the market place.&lt;br /&gt;&lt;br /&gt;In modern designs it is common to find two load units, one store (many instructions have no results to store), two or more integer math units, two or more floating point units, and often a SIMD unit of some sort. The instruction issue logic grows in complexity by reading in a huge list of instructions from memory and handing them off to the different execution units that are idle at that point. The results are then collected and re-ordered at the end.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Out-of-order execution&lt;br /&gt;The addition of caches reduces the frequency or duration of stalls due to waiting for data to be fetched from the memory hierarchy, but does not get rid of these stalls entirely. In early designs a cache miss would force the cache controller to stall the processor and wait. Of course there may be some other instruction in the program whose data is available in the cache at that point. Out-of-order execution allows that ready instruction to be processed while an older instruction waits on the cache, then re-orders the results to make it appear that everything happened in the programmed order.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Speculative execution&lt;br /&gt;One problem with an instruction pipeline is that there are a class of instructions that must make their way entirely through the pipeline before execution can continue. In particular, conditional branches need to know the result of some prior instruction before "which side" of the branch to run is known. For instance, an instruction that says "if x is larger than 5 then do this, otherwise do that" will have to wait for the results of x to be known before it knows if the instructions for this or that can be fetched.&lt;br /&gt;&lt;br /&gt;For a small four-deep pipeline this means a delay of up to three cycles — the decode can still happen. But as clock speeds increase the depth of the pipeline increases with it, and some modern processors may have 20 stages or more. In this case the CPU is being stalled for the vast majority of its cycles every time one of these instructions is encountered.&lt;br /&gt;&lt;br /&gt;The solution, or one of them, is speculative execution, also known as branch prediction. In reality one side or the other of the branch will be called much more often than the other, so it is often correct to simply go ahead and say "x will likely be smaller than five, start processing that". If the prediction turns out to be correct, a huge amount of time will be saved. Modern designs have rather complex prediction systems, which watch the results of past branches to predict the future with greater accuracy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Multiprocessing and multithreading&lt;br /&gt;Computer architects have become stymied by the growing mismatch in CPU operating frequencies and DRAM access times. None of the techniques that exploited instruction-level parallelism within one program could make up for the long stalls that occurred when data had to be fetched from main memory. Additionally, the large transistor counts and high operating frequencies needed for the more advanced ILP techniques required power dissipation levels that could no longer be cheaply cooled. For these reasons, newer generations of computers have started to exploit higher levels of parallelism that exist outside of a single program or program thread.&lt;br /&gt;&lt;br /&gt;This trend is sometimes known as throughput computing. This idea originated in the mainframe market where online transaction processing emphasized not just the execution speed of one transaction, but the capacity to deal with massive numbers of transactions. With transaction-based applications such as network routing and web-site serving greatly increasing in the last decade, the computer industry has re-emphasized capacity and throughput issues.&lt;br /&gt;&lt;br /&gt;One technique of how this parallelism is achieved is through multiprocessing systems, computer systems with multiple CPUs. Once reserved for high-end mainframes and supercomputers, small scale (2-8) multiprocessors servers have become commonplace for the small business market. For large corporations, large scale (16-256) multiprocessors are common. Even personal computers with multiple CPUs have appeared since the 1990s.&lt;br /&gt;&lt;br /&gt;With further transistor size reductions made available with semiconductor technology advances, multicore CPUs have appeared where multiple CPUs are implemented on the same silicon chip. Initially used in chips targeting embedded markets, where simpler and smaller CPUs would allow multiple instantiations to fit on one piece of silicon. By 2005, semiconductor technology allowed dual high-end desktop CPUs CMP chips to be manufactured in volume. Some designs, such as Sun Microsystems' UltraSPARC T1 have reverted back to simpler (scalar, in-order) designs in order to fit more processors on one piece of silicon.&lt;br /&gt;&lt;br /&gt;Another technique that has become more popular recently is multithreading. In multithreading, when the processor has to fetch data from slow system memory, instead of stalling for the data to arrive, the processor switches to another program or program thread which is ready to execute. Though this does not speed up a particular program/thread, it increases the overall system throughput by reducing the time the CPU is idle.&lt;br /&gt;&lt;br /&gt;Conceptually, multithreading is equivalent to a context switch at the operating system level. The difference is that a multithreaded CPU can do a thread switch in one CPU cycle instead of the hundreds or thousands of CPU cycles a context switch normally requires. This is achieved by replicating the state hardware (such as the register file and program counter) for each active thread.&lt;br /&gt;&lt;br /&gt;A further enhancement is simultaneous multithreading. This technique allows superscalar CPUs to execute instructions from different programs/threads simultaneously in the same cycle.&lt;br /&gt;&lt;br /&gt;See Article History of general purpose CPUs for other research topics affecting CPU design&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-4560828419858576710?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/4560828419858576710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=4560828419858576710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4560828419858576710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4560828419858576710'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/microarchitecture.html' title='Microarchitecture'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-49556413815785590</id><published>2008-04-13T20:30:00.000-07:00</published><updated>2008-04-26T19:25:44.911-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Computer architecture</title><content type='html'>In computer engineering, computer architecture is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional description of requirements (especially speeds and interconnections) and design implementations for the various parts of a computer — focusing largely on the way by which the central processing unit (CPU) performs internally and accesses addresses in memory.&lt;br /&gt;&lt;br /&gt;It may also be defined as the science and art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals.&lt;br /&gt;&lt;br /&gt;Computer architecture comprises at least three main subcategories:[1]&lt;br /&gt;&lt;br /&gt;Instruction set architecture, or ISA, is the abstract image of a computing system that is seen by a machine language (or assembly language) programmer, including the instruction set, memory address modes, processor registers, and address and data formats. &lt;br /&gt;Microarchitecture, also known as Computer organization is a lower level, more concrete, description of the system that involves how the constituent parts of the system are interconnected and how they interoperate in order to implement the ISA.[2] The size of a computer's cache for instance, is an organizational issue that generally has nothing to do with the ISA. &lt;br /&gt;System Design which includes all of the other hardware components within a computing system such as: &lt;br /&gt;system interconnects such as computer buses and switches &lt;br /&gt;memory controllers and hierarchies &lt;br /&gt;CPU off-load mechanisms such as direct memory access &lt;br /&gt;issues like multi-processing. &lt;br /&gt;Once both ISA and microarchitecture has been specified, the actual device needs to be designed into hardware. This design process is often called implementation. Implementation is usually not considered architectural definition, but rather hardware design engineering.&lt;br /&gt;&lt;br /&gt;Implementation can be further broken down into three pieces:&lt;br /&gt;&lt;br /&gt;Logic Implementation/Design - where the blocks that were defined in the microarchitecture are implemented as logic equations. &lt;br /&gt;Circuit Implementation/Design - where speed critical blocks or logic equations or logic gates are implemented at the transistor level. &lt;br /&gt;Physical Implementation/Design - where the circuits are drawn out, the different circuit components are placed in a chip floor-plan or on a board and the wires connecting them are routed. &lt;br /&gt;For CPUs, the entire implementation process is often called CPU design.&lt;br /&gt;&lt;br /&gt;More specific usages of the term include more general wider-scale hardware architectures, such as cluster computing and Non-Uniform Memory Access (NUMA) architectures&lt;br /&gt;More sub-definitions&lt;br /&gt;Some practioners of computer architecture at companies such as Intel and AMD use more fine distinctions:&lt;br /&gt;&lt;br /&gt;Macroarchitecture - architectural layers that are more abstract than microarchitecture, e.g. ISA &lt;br /&gt;ISA (Instruction Set Architecture) - as defined above &lt;br /&gt;Assembly ISA - a smart assembler may convert an abstract assembly language common to a group of machines into slightly different machine language for different implementations &lt;br /&gt;Programmer Visible Macroarchitecture - higher level language tools such as compilers may define a consistent interface or contract to programmers using them, abstracting differences between underlying ISA, UISA, and microarchitectures. E.g. the C, C++, or Java standards define different Programmer Visible Macroarchitecture - although in practice the C microarchitecture for a particular computer includes &lt;br /&gt;UISA (Microcode Instruction Set Architecture) - a family of machines with different hardware level microarchitectures may share a common microcode architecture, and hence a UISA. &lt;br /&gt;Pin Architecture - the set of functions that a microprocessor is expected to provide, from the point of view of a hardware platform. E.g. the x86 A20M, FERR/IGNNE or FLUSH pins, and the messages that the processor is expected to emit after completing a cache invalidation so that external caches can be invalidated. Pin architecture functions are more flexible than ISA functions - external hardware can adapt to changing encodings, or changing from a pin to a message - but the functions are expected to be provided in successive implementations even if the manner of encoding them changes. &lt;br /&gt;&lt;br /&gt;[edit] Design goals&lt;br /&gt;The exact form of a computer system depends on the constraints and goals for which it was optimized. Computer architectures usually trade off standards, cost, memory capacity, latency and throughput. Sometimes other considerations, such as features, size, weight, reliability, expandability and power consumption are factors as well.&lt;br /&gt;&lt;br /&gt;The most common scheme carefully chooses the bottleneck that most reduces the computer's speed. Ideally, the cost is allocated proportionally to assure that the data rate is nearly the same for all parts of the computer, with the most costly part being the slowest. This is how skillful commercial integrators optimize personal computers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Cost&lt;br /&gt;Generally cost is held constant, determined by either system or commercial requirements.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Performance&lt;br /&gt;Computer performance is often described in terms of clock speed (usually in MHz or GHz). This refers to the cycles per second of the main clock of the CPU. However, this metric is somewhat misleading, as a machine with a higher clock rate may not necessarily have higher performance. As a result manufacturers have moved away from clock speed as a measure of performance. Computer performance can also be measured with the amount of cache a processor has. If the speed, MHz or GHz, were to be a car then the cache is like a traffic light. No matter how fast the car goes, it still will not be stopped by a green traffic light. The higher the speed, and the greater the cache, the faster a processor runs.&lt;br /&gt;&lt;br /&gt;Modern CPUs can execute multiple instructions per clock cycle, which dramatically speeds up a program. Other factors influence speed, such as the mix of functional units, bus speeds, available memory, and the type and order of instructions in the programs being run.&lt;br /&gt;&lt;br /&gt;There are two main types of speed, latency and throughput. Latency is the time between the start of a process and its completion. Throughput is the amount of work done per unit time. Interrupt latency is the guaranteed maximum response time of the system to an electronic event (e.g. when the disk drive finishes moving some data). Performance is affected by a very wide range of design choices — for example, pipelining a processor usually makes latency worse (slower) but makes throughput better. Computers that control machinery usually need low interrupt latencies. These computers operate in a real-time environment and fail if an operation is not completed in a specified amount of time. For example, computer-controlled anti-lock brakes must begin braking almost immediately after they have been instructed to brake.&lt;br /&gt;&lt;br /&gt;The performance of a computer can be measured using other metrics, depending upon its application domain. A system may be CPU bound (as in numerical calculation), I/O bound (as in a webserving application) or memory bound (as in video editing). Power consumption has become important in servers and portable devices like laptops.&lt;br /&gt;&lt;br /&gt;Benchmarking tries to take all these factors into account by measuring the time a computer takes to run through a series of test programs. Although benchmarking shows strengths, it may not help one to choose a computer. Often the measured machines split on different measures. For example, one system might handle scientific applications quickly, while another might play popular video games more smoothly. Furthermore, designers have been known to add special features to their products, whether in hardware or software, which permit a specific benchmark to execute quickly but which do not offer similar advantages to other, more general tasks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Power consumption&lt;br /&gt;Power consumption is another design criterion that factors in the design of modern computers. Power efficiency can often be traded for performance or cost benefits. With the increasing power density of modern circuits as the number of transistors per chip scales (Moore's Law), power efficiency has increased in importance. Recent processor designs such as the Intel Core 2 put more emphasis on increasing power efficiency. Also, in the world of embedded computing, power efficiency has long been and remains the primary design goal next to performance.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Historical perspective&lt;br /&gt;Early usage in computer context&lt;br /&gt;&lt;br /&gt;The term “architecture” in computer literature can be traced to the work of Lyle R. Johnson and Frederick P. Brooks, Jr., members in 1959 of the Machine Organization department in IBM’s main research center. Johnson had occasion to write a proprietary research communication about Stretch, an IBM-developed supercomputer for Los Alamos Scientific Laboratory; in attempting to characterize his chosen level of detail for discussing the luxuriously embellished computer, he noted that his description of formats, instruction types, hardware parameters, and speed enhancements aimed at the level of “system architecture” – a term that seemed more useful than “machine organization.” Subsequently Brooks, one of the Stretch designers, started Chapter 2 of a book (Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962) by writing, “Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints.” Brooks went on to play a major role in the development of the IBM System/360 line of computers, where “architecture” gained currency as a noun with the definition “what the user needs to know.” Later the computer world would employ the term in many less-explicit ways.&lt;br /&gt;&lt;br /&gt;The first mention of the term architecture in the refereed computer literature is in a 1964 article describing the IBM System/360.[3] The article defines architecture as the set of “attributes of a system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flow and controls, the logical design, and the physical implementation.” In the definition, the programmer perspective of the computer’s functional behavior is key. The conceptual structure part of an architecture description makes the functional behavior comprehensible, and extrapolatable to a range of use cases. Only later on did ‘internals’ such as “the way by which the CPU performs internally and accesses addresses in memory,” mentioned above, slip into the definition of computer architecture.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-49556413815785590?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/49556413815785590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=49556413815785590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/49556413815785590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/49556413815785590'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/computer-architecture.html' title='Computer architecture'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-8231268337693074855</id><published>2008-04-13T20:26:00.000-07:00</published><updated>2008-04-26T19:26:25.079-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer hardware'/><title type='text'>Computer hardware</title><content type='html'>Computer hardware is the physical part of a computer, including the digital circuitry, as distinguished from the computer software that executes within the hardware. The hardware of a computer is infrequently changed, in comparison with software and hardware data, which are "soft" in the sense that they are readily created, modified or erased on the computer. Firmware is a special type of software that rarely, if ever, needs to be changed and so is stored on hardware devices such as read-only memory (ROM) where it is not readily changed (and is, therefore, "firm" rather than just "soft").&lt;br /&gt;&lt;br /&gt;Most computer hardware is not seen by normal users. It is in embedded systems in automobiles, microwave ovens, electrocardiograph machines, compact disc players, and other devices. Personal computers, the computer hardware familiar to most people, form only a small minority of computers (about 0.2% of all new computers produced in 2003). &lt;br /&gt;Typical PC hardware&lt;br /&gt;A typical personal computer consists of a case or chassis in a tower shape (desktop) and the following parts:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Internals of typical personal computerImage:ASRock K7VT4A Pro Mainboard-eng-labels.jpg &lt;br /&gt;Typical Motherboard found in a computer &lt;br /&gt;Inside a Custom Computer&lt;br /&gt;[edit] Motherboard&lt;br /&gt;Main article: Motherboard&lt;br /&gt;The motherboard is the "heart" of the computer, through which all other components interface.&lt;br /&gt;&lt;br /&gt;Central processing unit (CPU) - Performs most of the calculations which enable a computer to function, sometimes referred to as the "brain" of the computer. &lt;br /&gt;Computer fan - Used to lower the temperature of the computer; a fan is almost always attached to the CPU, and the computer case will generally have several fans to maintain a constant airflow. Liquid cooling can also be used to cool a computer, though it focuses more on individual parts rather than the overall temperature inside the chassis. &lt;br /&gt;Random Access Memory (RAM) - Fast-access memory that is cleared when the computer is powered-down. RAM attaches directly to the motherboard, and is used to store programs that are currently running. &lt;br /&gt;Firmware is loaded from the Read only memory ROM run from the Basic Input-Output System (BIOS) or in newer systems Extensible Firmware Interface (EFI) compliant &lt;br /&gt;Internal Buses - Connections to various internal components. &lt;br /&gt;PCI &lt;br /&gt;PCI-E &lt;br /&gt;USB &lt;br /&gt;HyperTransport &lt;br /&gt;CSI (expected in 2008) &lt;br /&gt;AGP (being phased out) &lt;br /&gt;VLB (outdated) &lt;br /&gt;External Bus Controllers - used to connect to external peripherals, such as printers and input devices. These ports may also be based upon expansion cards, attached to the internal buses. &lt;br /&gt;parallel port (outdated) &lt;br /&gt;serial port (outdated)mainbatook &lt;br /&gt;USB &lt;br /&gt;firewire &lt;br /&gt;SCSI (On Servers and older machines) &lt;br /&gt;PS/2 (For mice and keyboards, being phased out and replaced by USB.) &lt;br /&gt;ISA (outdated) &lt;br /&gt;EISA (outdated) &lt;br /&gt;MCA (outdated) &lt;br /&gt;&lt;br /&gt;[edit] Power supply&lt;br /&gt;Main article: Computer power supply&lt;br /&gt;A case that holds a transformer, voltage control, and (usually) a cooling fan, and supplies power to run the rest of the computer, the most common types of power supplies are AT and BabyAT (old) but the standard for PC's actually are ATX and micro ATX computer parts or pysical component of computer[batook ake galiey]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Storage controllers&lt;br /&gt;Controllers for hard disk, CD-ROM and other drives like internal Zip and Jaz conventionally for a PC are IDE/ATA; the controllers sit directly on the motherboard (on-board) or on expansion cards, such as a Disk array controller. IDE is usually integrated, unlike SCSI which is found in most servers. The floppy drive interface is a legacy MFM interface which is now slowly disappearing. All these interfaces are gradually being phased out to be replaced by SATA and SAS.[edited by jent]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Video display controller&lt;br /&gt;Main article: Graphics card&lt;br /&gt;Produces the output for the visual display unit. This will either be built into the motherboard or attached in its own separate slot (PCI, PCI-E, PCI-E 2.0, or AGP), in the form of a Graphics Card.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Removable media devices&lt;br /&gt;Main article: Computer storage&lt;br /&gt;CD - the most common type of removable media, inexpensive but has a short life-span. &lt;br /&gt;CD-ROM Drive - a device used for reading data from a CD. &lt;br /&gt;CD Writer - a device used for both reading and writing data to and from a CD. &lt;br /&gt;DVD - a popular type of removable media that is the same dimensions as a CD but stores up to 6 times as much information. It is the most common way of transferring digital video. &lt;br /&gt;DVD-ROM Drive - a device used for reading data from a DVD. &lt;br /&gt;DVD Writer - a device used for both reading and writing data to and from a DVD. &lt;br /&gt;DVD-RAM Drive - a device used for rapid writing and reading of data from a special type of DVD. &lt;br /&gt;Blu-ray - a high-density optical disc format for the storage of digital information, including high-definition video. &lt;br /&gt;BD-ROM Drive - a device used for reading data from a Blu-ray disc. &lt;br /&gt;BD Writer - a device used for both reading and writing data to and from a Blu-ray disc. &lt;br /&gt;HD DVD - a high-density optical disc format and successor to the standard DVD. It was a discontinued competitor to the Blu-ray format. &lt;br /&gt;Floppy disk - an outdated storage device consisting of a thin disk of a flexible magnetic storage medium. &lt;br /&gt;Zip drive - an outdated medium-capacity removable disk storage system, first introduced by Iomega in 1994. &lt;br /&gt;USB flash drive - a flash memory data storage device integrated with a USB interface, typically small, lightweight, removable and rewritable. &lt;br /&gt;Tape drive - a device that reads and writes data on a magnetic tape, usually used for long term storage. &lt;br /&gt;&lt;br /&gt;[edit] Internal storage&lt;br /&gt;Hardware that keeps data inside the computer for later use and remains persistent even when the computer has no power.&lt;br /&gt;&lt;br /&gt;Hard disk - for medium-term storage of data. &lt;br /&gt;Solid-state drive - a device similar to hard disk, but containing no moving parts. &lt;br /&gt;Disk array controller - a device to manage several hard disks, to achieve performance or reliability improvement. &lt;br /&gt;jent jent je nt\\\&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Sound card&lt;br /&gt;Main article: Sound card&lt;br /&gt;Enables the computer to output sound to audio devices, as well as accept input from a microphone. Most modern computers have sound cards built-in to the motherboard, though it is common for a user to install a separate sound card as an upgrade.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Networking&lt;br /&gt;Main article: Computer networks&lt;br /&gt;Connects the computer to the Internet and/or other computers.&lt;br /&gt;&lt;br /&gt;Modem - for dial-up connections &lt;br /&gt;Network card - for DSL/Cable internet, and/or connecting to other computers. &lt;br /&gt;Direct Cable Connection - Use of a null modem, connecting two computers together using their serial ports or a Laplink Cable, connecting two computers together with their parallel ports. &lt;br /&gt;&lt;br /&gt;[edit] Other peripherals&lt;br /&gt;Main article: Peripheral&lt;br /&gt;In addition, hardware devices can include external components of a computer system. The following are either standard or very common.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Wheel mouseIncludes various input and output devices, usually external to the computer system&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Input&lt;br /&gt;Main article: Input&lt;br /&gt;Text input devices &lt;br /&gt;Keyboard - a device, to input text and characters by depressing buttons (referred to as keys), similar to a typewriter. The most common English-language key layout is the QWERTY layout. &lt;br /&gt;Pointing devices &lt;br /&gt;Mouse - a pointing device that detects two dimensional motion relative to its supporting surface. &lt;br /&gt;Trackball - a pointing device consisting of an exposed portruding ball housed in a socket that detects rotation about two axes. &lt;br /&gt;Xbox 360 Controller - A controller used for Xbox 360, Which with the use of the application Switchblade(tm), Can be used as an additional pointing device with the left or right thumbstick. &lt;br /&gt;Gaming devices &lt;br /&gt;Joystick - a general control device that consists of a handheld stick that pivots around one end, to detect angles in two or three dimensions. &lt;br /&gt;Gamepad - a general game controller held in the hand that relies on the digits (especially thumbs) to provide input. &lt;br /&gt;Game controller - a specific type of controller specialized for certain gaming purposes. &lt;br /&gt;Image, Video input devices &lt;br /&gt;Image scanner - a device that provides input by analyzing images, printed text, handwriting, or an object. &lt;br /&gt;Webcam - a low resolution video camera used to provide visual input that can be easily transferred over the internet. &lt;br /&gt;Audio input devices &lt;br /&gt;Microphone - an acoustic sensor that provides input by converting sound into an electrical signals &lt;br /&gt;and it it usese are important{editedby batook}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Output&lt;br /&gt;Main article: Output&lt;br /&gt;Image, Video output devices &lt;br /&gt;Printer - a peripheral device that produces a hard (usually paper) copy of a document. &lt;br /&gt;Monitor - device that displays a video signal, similar to a television, to provide the user with information and an interface with which to interact. &lt;br /&gt;Audio output devices &lt;br /&gt;Speakers - a device that converts analog audio signals into the equivalent air vibrations in order to make audible sound. &lt;br /&gt;Headset - a device similar in functionality to computer speakers used mainly to not disturb others nearby.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-8231268337693074855?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/8231268337693074855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=8231268337693074855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/8231268337693074855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/8231268337693074855'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/computer-hardware.html' title='Computer hardware'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-1203722399351007448</id><published>2008-04-13T20:14:00.000-07:00</published><updated>2008-04-26T19:27:10.957-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='Combining ethnographic and clickstream data to identify user Web browsing strategies'/><category scheme='http://www.blogger.com/atom/ns#' term='browsing'/><category scheme='http://www.blogger.com/atom/ns#' term='Combining ethnographic and clickstream'/><category scheme='http://www.blogger.com/atom/ns#' term='strategies'/><category scheme='http://www.blogger.com/atom/ns#' term='identify'/><category scheme='http://www.blogger.com/atom/ns#' term='user'/><title type='text'>Combining ethnographic and clickstream data to identify user Web browsing strategies</title><content type='html'>Lillian Clark, I-Hsien Ting, Chris Kimble, Peter Wright, Daniel Kudenko &lt;br /&gt;Department of Computer Science&lt;br /&gt;University of York&lt;br /&gt;Heslington,York, YO10 5DD, UK&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Abstract&lt;br /&gt;Introduction: The strategies that people use to browse Websites are difficult to analyse and understand: quantitative data can lack information about what a user actually intends to do, while qualitative data tends to be localised and is impractical to gather for large samples.&lt;br /&gt;Method: This paper describes a novel approach that combines data from direct observation, user surveys and server logs to analyse users' browsing behaviour. It is based on a longitudinal study of university students' use of a Website related to one of their courses.&lt;br /&gt;Analysis: The data were analysed by using Footstep graphs to categorise browsing behaviour into pre-defined strategies and comparing these with data from questionnaires and direct observation of the students' actual use of the site.&lt;br /&gt;Results: Initial results indicated that in certain cases the patterns from server logs matched the observed browsing strategies as described in the literature. In addition, by cross-referencing the quantitative and qualitative data, a number of insights were gained into potential problems.&lt;br /&gt;Conclusion: This study shows how combining quantitative and qualitative approaches can provide an insight into changes in user browsing behaviour over time. It also identifies some potential methodological problems in studies of browsing behaviour and indicates some directions for future research.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Introduction&lt;br /&gt;The path a user takes when navigating through a system often reflects the user's mental model of the system, so it is no surprise that Websites that more closely reflect the user's mental model make for a more successful user experience (Nielsen, 2000). This puts identification of likely user navigational paths as a key factor in construction of the scenarios used in Website interaction design (Cooper, 1999; Preece et al., 2002) and in the evaluation of existing designs. &lt;br /&gt;&lt;br /&gt;However, these navigational paths are prone to change. Once a Website is made public, the user is in ultimate control of their own navigation, often employing a variety of different strategies for browsing (Graff, 2005). These strategies also vary over time depending, not only on the user's goals, but also on factors such as expertise, familiarity with the site, time pressures and perceived cost of information (Pirolli &amp; Card, 1999; Catledge &amp; Pitkow, 1995). In addition, site design and structure can influence strategies through presentation of short/long navigation sequences or the visibility of options (Holsanova, 2004). Finally, information gathered from a site can also alter browsing strategies by presenting new ideas or directions (Bates, 1989). Given this continually shifting nature of browsing strategies, the question arises how can these strategies be identified in the use made of an existing Website.&lt;br /&gt;&lt;br /&gt;One solution is to use the clickstream logs, which contain the address of each page visited, the date and time of the visit and the referring page and are a potentially rich source of data on Internet user activity. Clickstream logs can be generated either by software hosted by the client application or directly from the server logs. Server-side data has certain advantages over client-side data in that large volumes of data can be gathered for all users of the site without the need to install software on the client side. However, these logs cannot tell the full story of a user's interaction with the site. User activity, such as use of a browser Back button, cannot be captured by server-based logs nor can clickstream logs in general provide information on a user's intentions or what other activities they were engaged in during their use of the Website.&lt;br /&gt;&lt;br /&gt;An alternative solution is offered through the analysis of ethnographic data gathered directly from the observation and questioning of users. Ethnographic data can provide valuable information on both a user's motivation and environment that is not available by other means. However, this approach is also not without its drawbacks. Ethnographic studies are time-consuming and, because of the time and effort involved in data collection, data can usually only be obtained from a relatively small number of users at a time. Finally, the data from this form of study are also open to the criticism of researcher bias and subjectivity.&lt;br /&gt;&lt;br /&gt;One possible solution to these problems is to bring together both qualitative-ethnographic and quantitative-clickstream methodologies in one study. This technique should provide, at least potentially, an approach that overcomes the shortcomings of either qualitative-ethnographic or quantitative-clickstream techniques when taken alone: this paper describes an attempt to implement such a study&lt;br /&gt;&lt;br /&gt;This study attempted to analyse the browsing behaviour of a group of undergraduate university students using a particular Website as a resource for one of their taught courses. It was performed by an interdisciplinary team of researchers from the Management and Information Systems, HCI and Artificial Intelligence groups in the University of York. It illustrates how such a combined approach can contribute to a fuller understanding of user behaviour and the extent to which such behaviour changes over time; it also highlights a number of potential problems and issues that need to be addressed in any future attempts this type of interdisciplinary research.&lt;br /&gt;&lt;br /&gt;Methodology&lt;br /&gt;To assess the effectiveness of a combined qualitative-quantitative approach, a study was carried out of the behaviour of first-year university students accessing an informational Website over the duration of one nine-week module. A method for categorising browsing patterns was selected, then server-side data on the pages visited within the site were gathered and categorised into patterns. These were in turn compared with data gathered from surveys on participants' attitudes and habits combined with data from interviews and direct observation of the participants made during the study.&lt;br /&gt;&lt;br /&gt;Pattern identification of browsing strategies&lt;br /&gt;The identification of browsing strategies consists of identifying the routes users take when they move through a site and categorising these into patterns that aim to reflect common user strategies. One example of this approach was developed by Canter et al., (1985) who initially identified four basic routes that users take through hypertext&lt;br /&gt;&lt;br /&gt;Path - a route that does not visit any one node twice &lt;br /&gt;Ring - a route that returns to the starting node &lt;br /&gt;Loop - a route that crosses a previously visited node &lt;br /&gt;Spike - a route that retraces the original path on the return journey &lt;br /&gt;These were then combined into patterns that could describe potential underlying browsing strategies (Table 1).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Table 1: Routes and browsing strategies (Canter et al., 1985) Strategy Probable User Goal Pattern - Routes Used &lt;br /&gt;Scanning Cover large area without depth Mix of deep spikes and short loops &lt;br /&gt;Browsing Follow wherever site goes until item of interest is encountered Many long loops, some large rings &lt;br /&gt;Searching Look for specific item in site Ever-increasing spikes plus some loops &lt;br /&gt;Exploring Examine extent and nature of site Mix of many different patterns &lt;br /&gt;Wandering Amble through site in unstructured manner Many medium-sized rings &lt;br /&gt;&lt;br /&gt;According to Mullier et al., (2002) this leads to the expectation that if these patterns could be observed and recorded they could be used to illustrate a user's browsing strategy changes over time. For example, user behaviour in an informational Website should initially show a large number of Exploring and Wandering patterns as users learn about both the information and the Website structure. This should eventually settle down into Browsing and Searching patterns as users become familiar with the site and concentrate on accomplishing specific tasks.&lt;br /&gt;&lt;br /&gt;Ideally, this type of analysis would consist of categorising basic browsing strategies in terms of the patterns of paths or routes that correspond to each strategy, gathering data on the actual pages visited by users of the Website, and then comparing these paths with those that would be expected if a particular browsing strategy was being followed.&lt;br /&gt;&lt;br /&gt;Clickstream data: collection and restoration&lt;br /&gt;A common tool for collecting data on the pages visited by Website users is the use of server-side clickstream data. This identifies the pages delivered by a server in response to a client's request. However, these clickstream data logs are often large and unwieldy and present an incomplete picture of activity. For example, server-side logs do not record activities that involve browser caching (such as the use of the 'Back' button), network caching (such as requests for pages held in an intermediate server's cache), or the navigation of pages that are integral to the site but are held on another server (Kohavi, 2001).&lt;br /&gt;&lt;br /&gt;Despite these server-side limitations, there are some aspects of user behaviour, such as use of the back button or the opening of new/additional windows within the same Website, that can be captured by such techniques such as the Pattern Restore Method (PRM) algorithm (Ting et al. 2005). The PRM algorithm attempts to reconstruct missing server-side clickstream data based on referring site information (where the user came from) and the Website's link structure. By applying the PRM algorithm during the data pre-processing step of Web usage mining, it is estimated that, depending on Website structure, up to 80% or 90% of data lost due to use of the back button or caching can be restored. Although the PRM algorithm cannot capture such phenomena as navigation to external Websites, the reconstructed clickstream data does provide a more accurate reflection of the actual pages visited by the user. An example of PRM reconstruction where a user has opened multiple windows within the same website in a single session is shown in Figure 1 and Tables 2a and 2b.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Figure 1: User opening multiple windows into the same site&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Table 2a: Clickstream before PRM reconstruction Rec. No. URL Referrer &lt;br /&gt;1 Index.htm - &lt;br /&gt;2 1.htm Index.htm &lt;br /&gt;3 2.htm 1.htm &lt;br /&gt;4 3.htm Index.htm &lt;br /&gt; &lt;br /&gt;Table 2b: Clickstream after PRM reconstruction Rec. No. URL Referrer &lt;br /&gt;1 Index.htm - &lt;br /&gt;2 1.htm Index.htm &lt;br /&gt;3 Index.htm - &lt;br /&gt;4 2.htm 1.htm &lt;br /&gt;5 Index.htm - &lt;br /&gt;6 3.htm Index.htm &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Clickstream data: Visualisation and categorisation&lt;br /&gt;Once the clickstream data have been processed, a technique for analysing and categorising these data into usage patterns is required. The visualisation techniques developed by Ting et al., (2004) facilitate this by producing 'Footstep' graphs. These are based on the use of a two-dimensional x-y plot, where the x-axis represents the browsing time between two Web pages and the y-axis the Web page in the users browsing route. Thus, the distance travelled on the x-axis represents the time the user has spent browsing and a change in the y-axis represents a transition from one Web page to another.&lt;br /&gt;&lt;br /&gt;To produce Footstep Graphs, the Clickstream records for each user's session (Table 3a) are examined and a sequence number assigned to each unique page accessed (Table 3b). Then a series of tuples (a = (x-axis: starting time of node i, y-axis: sequence number of node i) and b = (x-axis: ending time of node i, y-axis: sequence number of node i) are generated to produce the Footstep Graph. For example, in Table 3b Tuple1 = (a = (0,0), b = (62,0)), Tuple2 = (a = (62,10), b = (124,10)), Tuple3 = (a = (124,0), b = (186,0)), … , Tuple8 = (a = (329,40), b = (349,40), Tuple9 = (a=(349,0)). (Note that in the last tuple of each user's browsing route, there is only data for 'a' because this is the last node in the user's browsing route.) The resulting Footstep Graph is shown in Figure 2.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Table 3a: Clickstream records before sequence number assignment Rec. No. Date and Time Accessed URL &lt;br /&gt;1 15/06/2005,02:24:16 /index.php &lt;br /&gt;2 15/06/2005,02:25:18 /contact.php &lt;br /&gt;3 15/06/2005,02:26:20 /index.php &lt;br /&gt;4 15/06/2005,02:27:22 /who.php &lt;br /&gt;5 15/06/2005,02:28:25 /index.php &lt;br /&gt;6 15/06/2005,02:29:16 /query.php &lt;br /&gt;7 15/06/2005,02:29:30 /index.php &lt;br /&gt;8 15/06/2005,02:29:45 /priority.php &lt;br /&gt;9 15/06/2005,02:30:05 /index.php &lt;br /&gt; &lt;br /&gt;Table 3b: Clickstream records after sequence number assignment Sequence Number Time Duration Accessed URL &lt;br /&gt;0 0 /index.php &lt;br /&gt;10 62 /contact.php &lt;br /&gt;0 62 /index.php &lt;br /&gt;20 62 /who.php &lt;br /&gt;0 63 /index.php &lt;br /&gt;30 51 /query.php &lt;br /&gt;0 14 /index.php &lt;br /&gt;40 15 /priority.php &lt;br /&gt;0 20 /index.php &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Figure 2: Footstep Graph generated&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The categories identified by Ting et al include a 'Stairs' pattern where the user moves forward through a Website with no repeat visits to a page (Figure 3a), a 'Fingers' pattern where the user directly visits a specific page and immediately returns to the starting page (Figure 3b), and a 'Mountain' pattern where a user moves through several pages in order to reach or return from a specific page (Figure 3c).&lt;br /&gt;&lt;br /&gt;(a) (b) (c) &lt;br /&gt;&lt;br /&gt;Figure 3: Stairs (a), Fingers (b) and Mountain (c) Footstep graphs (Ting et al., 2004)&lt;br /&gt;Canter's 'Path' route should manifest itself as a Stairs pattern, consequently the presence of Stairs patterns should be indicative of users exploring or wandering the site. Similarly, combinations of Canter's 'Spike' and 'Loop' routes, which are indicative of users searching a site for a specific target, should manifest themselves as Fingers or Mountains patterns (Table 4).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Table 4: Browsing routes and Footstep patterns Route Footstep Graph Pattern &lt;br /&gt;Path Stairs (Fig 2a) &lt;br /&gt;Loop Mountain (Fig 2b) &lt;br /&gt;Spike Finger (Fig 2c) &lt;br /&gt;&lt;br /&gt;Finally, 'Complex' patterns, mixing 'Stairs', 'Fingers' and 'Mountains' in the same session, would be analogous to Canter's pattern for an Exploring strategy (Figure 4).&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Figure 4: Complex Footstep graph&lt;br /&gt;To test the validity of this mapping, the patterns identified from the Footstep graphs would need to be compared with observation of actual usage at various stages of the user's interaction to ensure that the patterns identified were both an accurate reflection of the user's activity and a valid representation of the user's strategy over time.&lt;br /&gt;&lt;br /&gt;Procedure&lt;br /&gt;We examined the behaviour of eighty-six first year students who were taking a nine-week module on Management Information Systems at the University of York. There was no set text for the module but, rather, a hierarchically structured Website was developed and maintained by the lecturer concerned. This site consisted of an overview page describing the materials to be covered in each lecture with links to relevant topics, definitions and recommendations for further reading. Links within the site pointed to both other pages within the site as well as external pages. The lecturer would generally advise students each week on specific areas of the site to study.&lt;br /&gt;&lt;br /&gt;Surveys were administered to students in Week 2 and in Week 8 of the module to assess levels of Internet expertise, surfing habits and the use of the module Website. Semi-structured interviews were held with six students at the start of the module and five of these students were then observed using the Website at the departmental HCI lab. Follow-up interviews and observation were held with two of these original students, at their own premises, in Week 8.&lt;br /&gt;&lt;br /&gt;In parallel with this, server-side data were gathered weekly during the module. These data were then processed by Web-usage data pre-processing techniques such as data cleaning, data filtering, user identification, session identification, 'bot' detection and data formatting (Cooley et al., 1999) to ensure data was readable and reflected only student access to the site. Additionally, the PRM algorithm was used to restore any lost clickstream data (Figure 5). &lt;br /&gt;&lt;br /&gt;(a) (b) &lt;br /&gt;&lt;br /&gt;Figure 5: Session data (a) before and (b) after PRM correction&lt;br /&gt;Finally, Footstep graphs were produced for all sessions and categorised by week and patterns. If the mapping of patterns to user strategies described above was accurate, the Footstep graph analysis should initially show a large number of Stairs patterns as students learn about both the module and the Website. Eventually this should settle down into Finger and/or Mountain patterns as students become familiar with the site and more focused on accomplishing specific tasks (Mullier et al., 2002).&lt;br /&gt;&lt;br /&gt;Results&lt;br /&gt;The data for the results were generated from three distinct sources: server logs from the module Website, written questionnaires and direct observation. 117,461 records from the server logs were cleaned in order to produce Footstep graphs for 476 user sessions; these were then classified into one of four pre-defined patterns. In addition, written surveys were administered to eighty-six students at two points during the module, producing seventy-four and sixty usable responses respectively. Finally, six students were interviewed and their use of the Website was observed under laboratory conditions. Later in the module, two students were observed in their own rooms using their own laptops. These results are described in detail below.&lt;br /&gt;&lt;br /&gt;Clickstream analysis&lt;br /&gt;For the period December 10th 2004 to March 15th 2005, 117,461 requests were collected from the site server. These raw data were then filtered to remove unwanted data such as requests from search engines, bots and all other requests from outside the University (all of the students for this module were resident on campus and used the university network for Internet access). This eliminated approximately 94% of the original data leaving 7,425 records. These data were then cleaned to remove any remaining errors or sources of noise, resulting in a final data set of only 2,513 records (Table 5).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Table 5: Results of clickstream data filtering and cleansing Step Data Records &lt;br /&gt;Raw Clickstream Data 117461 &lt;br /&gt;Data Filtering 7425 &lt;br /&gt;Data Cleaning 2513 &lt;br /&gt;&lt;br /&gt;Individual user sessions were then identified via a combination of the IP addresses, user agent data and referrer information for each record; time gaps of 30 minutes were used to demarcate the end of a session. This produced 476 user sessions. The PRM algorithm was then applied to the clickstream data, which restored an additional 740 records producing a total of 3,253 clickstream data records (Table 4).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Table 6: Results of session identification and PRM application Step Data Records Number of Sessions &lt;br /&gt;User /Session Identification 2513 476 &lt;br /&gt;After Pattern Restoration 3253 476 &lt;br /&gt;&lt;br /&gt;Footstep graphs were then generated for all sessions. To facilitate manual pattern identification and sorting, these graphs were 'smoothed' by allocating a standard time to all pages in a session (Figure 6).&lt;br /&gt;&lt;br /&gt;(a) (b) &lt;br /&gt;&lt;br /&gt;Figure 6: Session before (a) and after time-smoothing (b)&lt;br /&gt;The time-smoothed Footstep graphs were then manually sorted by week and by whether they consisted of predominantly Stairs, Fingers, or Mountains patterns or, where there was no single pattern predominant, as Complex patterns. This sort was done manually by one of the authors and manually verified by another author.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Table 7: Categorised Footstep graphs by Week Week Stairs Fingers Mountains Complex Total &lt;br /&gt;2 16 18 9 25 68 &lt;br /&gt;3 14 11 18 23 66 &lt;br /&gt;4 19 13 12 13 57 &lt;br /&gt;5 15 10 6 5 36 &lt;br /&gt;6 19 5 3 5 32 &lt;br /&gt;7 15 11 8 2 36 &lt;br /&gt;8 12 8 11 0 31 &lt;br /&gt;9 9 3 8 2 22 &lt;br /&gt;&lt;br /&gt;Participant surveys&lt;br /&gt;Of the eighty-six students registered for the module, seventy-four participated in the survey administered in Week 2, and fourteen chose not to participate further, leaving sixty to participate in the survey administered in Week 8. The results of these surveys are shown in Table 8.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Table 8: Results of Week 2 and Week 8 surveys Week 2 Number of Students &lt;br /&gt;Sex Male:&lt;br /&gt;Female: 34&lt;br /&gt;40 &lt;br /&gt;Owns Mobile Phone:&lt;br /&gt;Computer:&lt;br /&gt;MP3 Player:&lt;br /&gt;Digital Camera:&lt;br /&gt;Games Console: 73&lt;br /&gt;74&lt;br /&gt;37&lt;br /&gt;48&lt;br /&gt;36 &lt;br /&gt;Frequency of Internet access Once a week or less:&lt;br /&gt;Several times a week:&lt;br /&gt;Once a day:&lt;br /&gt;More than once a day: 0&lt;br /&gt;4&lt;br /&gt;12&lt;br /&gt;58 &lt;br /&gt;Level of IT expertise Novice:&lt;br /&gt;Adequate:&lt;br /&gt;Good:&lt;br /&gt;Very Good:&lt;br /&gt;Advanced: 3&lt;br /&gt;16&lt;br /&gt;30&lt;br /&gt;18&lt;br /&gt;7 &lt;br /&gt;Internet applications used e-Mail:&lt;br /&gt;Online Shopping:&lt;br /&gt;General Browsing:&lt;br /&gt;Instant Messaging:&lt;br /&gt;Entertainment &lt;br /&gt;(music, video, etc): 67&lt;br /&gt;50&lt;br /&gt;64&lt;br /&gt;63&lt;br /&gt;&lt;br /&gt;56 &lt;br /&gt;Most Internet access done from: University Computer Lab:&lt;br /&gt;Student's room:&lt;br /&gt;Friends' room:&lt;br /&gt;Family home:&lt;br /&gt;Other: 5&lt;br /&gt;64&lt;br /&gt;2&lt;br /&gt;1&lt;br /&gt;1 &lt;br /&gt;Visited MIS Website yet? Yes:&lt;br /&gt;No: 17&lt;br /&gt;57 &lt;br /&gt; Week 8 Number of Students &lt;br /&gt;sex Male:&lt;br /&gt;Female: 33&lt;br /&gt;27 &lt;br /&gt;Access to MIS site via: Bookmark:&lt;br /&gt;URL typed into navigation bar:&lt;br /&gt;Link from Module site:&lt;br /&gt;Link from lecturer's e-mail: 14&lt;br /&gt;6&lt;br /&gt;25&lt;br /&gt;15 &lt;br /&gt;Frequency of MIS site access &lt; Once a week:&lt;br /&gt;Once a week:&lt;br /&gt;Twice a week:&lt;br /&gt;Never: 41&lt;br /&gt;13&lt;br /&gt;4&lt;br /&gt;1 &lt;br /&gt;Activities done at same time as MIS site access Instant Messaging:&lt;br /&gt;Download / Listen to Music:&lt;br /&gt;e-Mail:&lt;br /&gt;Other coursework / research:&lt;br /&gt;Surfing Web for non-academic purposes:&lt;br /&gt;Phone calls:&lt;br /&gt;SMS messaging:&lt;br /&gt;Talking to people who stop by:&lt;br /&gt;Eating or drinking:&lt;br /&gt;Gaming: 46&lt;br /&gt;47&lt;br /&gt;39&lt;br /&gt;18&lt;br /&gt;&lt;br /&gt;33&lt;br /&gt;26&lt;br /&gt;37&lt;br /&gt;37&lt;br /&gt;48&lt;br /&gt;11 &lt;br /&gt;Has Printer in room Yes:&lt;br /&gt;No: 36&lt;br /&gt;24 &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Interviews and observation&lt;br /&gt;A sample of students was also interviewed during weeks two and eight. &lt;br /&gt;Week two&lt;br /&gt;The following participants, all first-year students, were interviewed and observed in the departmental HCI lab during week two. Except where noted, all participants were native English speakers.&lt;br /&gt;&lt;br /&gt;'C' had been using the Internet since the age of 12, claiming he preferred it to textbooks for schoolwork because of the chunking and navigation inherent in hypertext. C said he often kept multiple applications open on his computer including Instant Messaging. He also listened to music, took meal breaks, and conversed with people while studying, but, overall, tended to multi-task less when studying in order to focus. He stated he had not visited the MIS site before the session. In the observation, he started with the main site page and then tried to visit each linked page in the order he encountered them, cutting and pasting items of interest into a blank Word document for later study or printing ('Just trying to find... questions, examples... just trying to get something out of it'.). He initially attempted to read each page as he encountered it, but as the session progressed and he realised the extent and complexity of the data, he switched to scanning pages instead, finally returning to the lecture Overview page and printing that page for future reference.&lt;br /&gt;&lt;br /&gt;'D' had been a computer user since the age of 7. He said he tended to keep multiple applications open while working, including music, games and Instant Messaging. He will sometimes eat at his PC but will not use his phone while working. He stated a clear preference for hard copy study materials over Websites ('Sometimes I find that a well-laid-out book is better than a well-laid-out Web page... it's easier to find information'). He declined to be observed for this study.&lt;br /&gt;&lt;br /&gt;'E' had been an Internet user since the age of 14 and described her IT knowledge as 'pretty good'. She said that she often kept several applications running at the same time on her computer such as Instant Messaging and multiple browser windows. E's other concurrent activities included listening to music and drinking (but not eating) while working on her computer. E stated she had not visited the MIS site before the session. In observation, E started with the site Overview page and then jumped to various links that either were of special interest to her or referred to topics that had been mentioned in the first lecture. There appeared to be no particular pattern to E's navigation; she would click links as she encountered them and as they caught her interest, using the browser Back button to return. E commented that she did not like to read screens for long periods so she would return to the site '...as mood grabs me'.&lt;br /&gt;&lt;br /&gt;'K', who was not a native English speaker, had used computers since the age of 12, but only started using the Internet at the age of 17. He stated that he multi-tasked while studying, including eating at his computer, but tries to avoid using Instant Messaging or placing phone calls while working. He had not yet visited the MIS site. During the observation session, he did not have notes on the site URL and could not find the correct location, but instead stumbled across an older version of the site, which he briefly (and randomly) examined.&lt;br /&gt;&lt;br /&gt;'L' had used computers since the age of 12, but had only started using the Internet at the age of 17. She, too, was not a native English speaker. She tended to keep various applications open and multi-tasked, but preferred not to talk to people while working. L preferred to do research on the Internet instead of books, but at the same time said she preferred to read large amounts of text on paper rather than on screen. She did have one brief look at the MIS site before the observation session. During the observation, she stated she had very fixed ideas about what she wanted to accomplish during the session, first going to the Books page to determine what books she would need to obtain, then to the Case Study page as she had 'no idea' what the module was about and assumed that page might have relevant information. As the Case Study page did not enlighten her, she then opened a second browser window to access the University library to see if the books listed on the site were available, and then returned to the original browser window to look at Basic Assumptions, Links and Definitions pages in order to further her basic understanding of module.&lt;br /&gt;&lt;br /&gt;'S' was a 2nd generation IT user, as her father is a computer programmer. She said she tended to keep a few applications open on her computer, usually music and Instant Messaging, but preferred not to message, talk to visitors or eat at her computer while working. She said she had not been to the MIS site before. During the observation, S first went to the Introduction page mentioned by the lecturer and from there followed various links as she encountered them ('I tend to flick about until I find something... ') until she found the Overview page with a list of lectures. She then proceeded to sequentially read pages on lectures 1, 2, and 3 as recommended by lecturer.&lt;br /&gt;&lt;br /&gt;Week eight&lt;br /&gt;In week eight of the module two of the participants, C and E, agreed to be observed again, this time in their rooms using their own laptops.&lt;br /&gt;&lt;br /&gt;C continued to multi-task while working, keeping such applications as online radio, Instant Messaging, e-mail open but setting Instant Messaging to 'busy'. He stated he prefers to play music loudly while working, using headphones if neighbours were about. He generally keeps his door open, allowing people to pop in and out of his room to chat; however, he will close the door while studying if cooking is being done as his room is next to the kitchen. C started with the bookmarked main MIS page, but from there went directly to each of the three key topic pages mentioned in the previous week's lecture, in order of page presentation. Each of these key topic pages had a considerable number of links to external pages, which C examined, sometimes cutting and pasting into a Word document for later study or sometimes printing the external page directly. He used the browser back button to return to the MIS site and to return to pages already visited within the site. C says he often leaves his browser open at a page on the site while taking a break during study.&lt;br /&gt;&lt;br /&gt;E also continued to multi-task while working, including Instant Messaging and e-mail, and would sometimes stop to check and read messages during study if notified by her mail application. She said she would take breaks and stop to talk to people while doing coursework, welcoming the diversions as she finds reading text on a screen tiring. When taking these breaks, E said she would leave her browser open on the last page visited as a reminder of where she left off. E also listens to music on her PC, but prefers it at a softer volume when studying. During the observation, she started with the bookmarked main MIS page, and then went directly to a page the lecturer advised had been recently updated. She then went to the week's lecture pages to see if she recognised any of the topics that were mentioned by lecturer. She examined several of the topics but visited very few of the external links. While she would use the browser back button to return to the MIS site, she would generally use the site's navigation to return to previously visited pages within the site.&lt;br /&gt;&lt;br /&gt;Discussion&lt;br /&gt;Drawing conclusions from both sets of data&lt;br /&gt;In analysing the results of this study, the first issue to address is what conclusions can be drawn about user behaviour from the quantitative and qualitative data. A comparison of the Footstep graphs for the sessions observed in week 2 (Figure 7) showed Complex patterns for S (Figure 7a), E (Figure 7b) and C (Figure 7c) and a predominantly Fingers pattern for participant L (Figure 8).&lt;br /&gt;&lt;br /&gt;(a) (b) &lt;br /&gt;&lt;br /&gt;(c) &lt;br /&gt;&lt;br /&gt;Figure 7: Footstep graphs for participant S (a), E (b) and C (c), week 2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Figure 8: Footstep graph for L, week 2&lt;br /&gt;As S, E and C were intent on exploring the site during the observation while L had specific informational goals in mind, this would appear to support the argument that a mix of many different patterns demonstrates an Exploring strategy while a Fingers pattern reflects a Searching strategy.&lt;br /&gt;&lt;br /&gt;In week 8, the Footstep graph for E showed a Mountain pattern (Figure 9). As E had specific goals in mind when accessing the site but, to some extent, let the site structure dictate the order of these goals. This would appear to support the argument that a preponderance of loops demonstrates a Browsing strategy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Figure 9: Footstep graph&lt;br /&gt;for E, week 8 &lt;br /&gt;&lt;br /&gt;Figure 10: Footstep graph&lt;br /&gt;for C, week 8 &lt;br /&gt;&lt;br /&gt;However, a comparison of the observed behaviour of C in week 8 with the corresponding Footstep graph (Figure 9) shows something puzzling. While C had specific goals in mind when accessing the site during that session and fixed ideas as to the order of these goals, the corresponding Footstep graph shows only a basic Stairs pattern, which could be interpreted as the start of an Exploring strategy.&lt;br /&gt;&lt;br /&gt;When the raw server logs for this session were compared with observed behaviour, the reason for this discrepancy became clear. C accessed a large proportion of external links within the site and used the browser Back button both to return to the site and to return to pages within the site. The combination of Back button usage and the number of external links referenced meant the referring links back to the starting page could not be captured in the server logs nor restored by application of the PRM, resulting in incomplete clickstream data and a misleading Footstep graph. The full implications of this became clearer later when examining how browsing patterns changed over time.&lt;br /&gt;&lt;br /&gt;If the patterns were reliable indicators of browsing strategies, then a decrease in Complex patterns over time would indicate that the Exploring strategy (as demonstrated by a mix of many different patterns) was being used by students less often as they became familiar with the site and its contents. This seemed to be confirmed by the clickstream data that showed that the proportion of Complex patterns did indeed decrease with time, as shown in Figure 11.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Figure 11: Proportion of complex patterns&lt;br /&gt;Similarly, the proportion of Finger and Mountain patterns increased over time, apparently showing that the use of a Searching strategy (as demonstrated by spikes and loops) was increasing (Figure 12).&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Figure 12: Proportion of Finger or Mountain patterns&lt;br /&gt;Additionally, the proportion of patterns identified as Stairs (Figure 13) also increased over time, which would seem to indicate that students' browsing strategies were increasingly becoming simple paths, rather than the loops and spikes indicative of Searching or Browsing.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Figure 13: Proportion of Stair patterns&lt;br /&gt;Thus, at first sight, it appeared that most of the results were, more or less, as we expected. However, crosschecking and a closer examination of the data revealed a less clear-cut picture.&lt;br /&gt;&lt;br /&gt;First, it is known that the use of the Back button is common in student browsing behaviour (Catledge &amp; Pitkow, 1995). While the PRM algorithm would normally be able to restore pages generated in this manner, this particular Website included progressively more and more links to external pages as the module progressed. Thus, the combination of Back button usage and increasing number of external links increased the likelihood of clickstream data being generated that did not contain returns to referring pages within the site as students progressed through the module. The result of this is that an increasing number of incorrect Stair patterns were generated as the students moved from the earlier to the later Web pages in the site. Consequently, the clickstream data concerning the change of patterns over time must be viewed with some caution.&lt;br /&gt;&lt;br /&gt;Secondly, there is a clear and unexplained anomaly in browsing patterns in Week 6 in Figure 9 and, more obviously, also in Figures 10 and 11. Two possible explanations for this anomaly have been suggested: first, at the beginning of week 6 the students were informed about changes to the schedule for that week, and secondly, week 6 corresponded to the start of a major new section in the module. Unfortunately, as there are no ethnographic data available for that week, there is no way of knowing if either, both, or possibly neither, of these explanations would explain this discrepancy.&lt;br /&gt;&lt;br /&gt;Qualitative data informing clickstream methodology&lt;br /&gt;We will now address the issue of the extent to which the ethnographic data provided insights into the data produced by the clickstream methodology. In choosing this group of participants for this study, it was anticipated that this group would have common goals concerning the Website and be relatively homogenous in terms of demographics, IT experience and environment, which was confirmed in the Week 2 survey. The week 8 survey, showing the high level of multi-tasking, also confirmed Holsanova's observation (2004) that Internet users frequently engage in parallel activities.&lt;br /&gt;&lt;br /&gt;The interview and observation sessions confirmed the tendency to multitask, bearing out Catledge and Pitkow's warning that use of time as a factor in measuring University student browsing behaviour, is potentially misleading. In this case, the level of multitasking, combined with habits of walking away from the computer during study to prepare food, visit people, or simply take a break from reading, meant that time spent on any one page became virtually meaningless as a determinant in assessing behaviour. This appears to contradict the assertion of other researchers, such as Gunduz and Ozsu (2003), who state that time spent on a Web page is a "good measure" of the user's interest. The removal of time as a factor in browsing behaviour also confirmed the validity of using time-smoothed graphs in pattern identification. This finding casts doubt on the established practice of defining the end of a session as 30 minutes of idle time; however this issue was not addressed further in this study.&lt;br /&gt;&lt;br /&gt;Finally, in addition to shedding light on the limitations of the PRM in this case, the value of the ethnographic data in uncovering potential limitations of the clickstream data was also demonstrated by the discovery that some participants had accessed the wrong site at the start of the module. This fact could not have been discovered by using clickstream data alone.&lt;br /&gt;&lt;br /&gt;Clickstream data informing qualitative methodology&lt;br /&gt;Having examined the influence of the qualitative data on clickstream methodology, we will now turn to the issue of how the clickstream data provided insights into the data produced by the ethnographic methodology.&lt;br /&gt;&lt;br /&gt;Examination of clickstream data indicated that there were problems with the data generated using the ethnographic approach, particularly concerning the frequency and extent of data gathering. For example, the shift in patterns during Week 6 were, quite probably a reaction of the students to announced changes in agenda for that week; however, by the time this was noticed, it was too late to gather any qualitative data on this phenomenon. This demonstrates that observation and interviews should either have been scheduled with greater frequency or that a direct and timely response to the clickstream data should have been made rather than one based on a schedule fixed at the beginning of the study.&lt;br /&gt;&lt;br /&gt;This underscores Preece et al's contention (2002) that interaction logging should be closely synchronised with observational data when tracking user activity. However, it should be noted that, while close synchronisation between tracking and observation may be desirable in theory, it can be difficult to achieve in practice: particularly for non-laboratory, ethnographically-based studies.&lt;br /&gt;&lt;br /&gt;Recommendations for further research&lt;br /&gt;The results described in this paper were gathered from one group of students' use of one Website over the period of one teaching module; consequently, any generalisations drawn from these results should be treated with caution. Notwithstanding this, initially, the results seemed to indicate that the patterns of use observed in the server logs appeared to match the browsing strategies found in the literature both with respect to individuals browsing intentions and with respect to the way browsing behaviour changes over time. However, closer examination of the data revealed problems with both the quantitative and the qualitative data: specifically the inability of the PRM algorithm to deal with certain types of browsing behaviour and the lack of qualitative data to explain the 'peak' observed during week 6. Consequently, our recommendations for further research fall into three areas: improving clickstream analysis, improving the ethnographic data gathering, and extending this study into other types of Website.&lt;br /&gt;&lt;br /&gt;In terms of improving clickstream analysis, two recommendations come to mind. First, although the PRM algorithm has been proved to be effective, the high number of external links in this particular Website proved problematic. Consequently, we feel that this experiment should be repeated with a more self-contained Website. Secondly, the manual identification of patterns was extremely time-consuming and subject to error. Consequently, an Automatic Pattern Discovery package is currently being developed. By repeating this experiment and comparing manual and observed results using the APD package, confidence can be gained in its ability to identify patterns, eventually eliminating the need for manual categorisation and allowing use of this technique for Websites with larger audiences.&lt;br /&gt;&lt;br /&gt;In terms of improving the ethnographic data gathering, the issue of how often and how much data should be gathered must be addressed in any further research. It is recommended that observation and interviews be considered more frequently than in this study in order to capture possible shifts in user behaviour due to external factors. A study in which participants are selected for observation based on identification of their particular user patterns found in clickstream data would be ideal, but it is recognised that this would be very difficult to achieve in practical terms because of Data Protection legislation, privacy and other ethical issues.&lt;br /&gt;&lt;br /&gt;Finally, in terms of extending this study to other Websites, we conclude that the nature of the Website (e.g., whether informational, commercial or entertainment-focused, etc) must be taken into account, as well as site size and structure. For example, any sort of conclusions drawn from pattern categorisation could be considerably different for e-commerce sites, as different browsing strategies may be viewed as more or less desirable: for example, a commercial site may wish to actively encourage exploring behaviour. In addition, consumers would probably be less homogenous, more focused and less inclined toward multi-tasking than are students in a University environment. Consequently, issues such as time spent on any one page may be more significant in pattern classification than in this study. We suggest that further research based on usage within self-contained e-commerce sites would be of use in exploring the issues of time and pattern identification.&lt;br /&gt;&lt;br /&gt;Conclusions&lt;br /&gt;Identifying Web browsing strategies is a crucial step in Website design and evaluation, and requires an approach that provides information on both the extent of any particular type of user behaviour and the motivations for such behaviour. Quantitative data from sources such as clickstream records is plentiful, relatively easy to collect and can potentially provide information on the number of occurrences of specific user navigational patterns but cannot provide insight into the reasons behind these patterns nor the information on user environment or motivation that can be obtained by qualitative means. However, collecting qualitative data is highly resource-intensive and benefits from supporting quantitative data in order for ethnographic studies to be effectively targeted.&lt;br /&gt;&lt;br /&gt;This study has demonstrated that combining complementary quantitative and qualitative data-gathering can enhance understanding of user browsing behaviour as well as substantiate the data and methodologies used in each approach, providing benefits to both HCI and Data Mining practitioners alike.&lt;br /&gt;&lt;br /&gt;References&lt;br /&gt;Bates, M.J. (1989). The design of browsing and berrypicking techniques for the on-line search interface. Online Review, 13(5), 407-431. &lt;br /&gt;Canter, D., Rivers, R. &amp; Storrs, G. (1985). Characterizing user navigation through complex data structures. Behaviour and Information Technology, 4(2), 93-102. &lt;br /&gt;Catledge, L.D. &amp; Pitkow, J.E. (1995). Characterizing browsing strategies in the World-Wide Web. Computer Networks and ISDN Systems, 27(6), 1065-1073. &lt;br /&gt;Cooley, R. (2003). The use of Web structure and content to identify subjectively interesting Web usage patterns. ACM Transactions on Internet Technology 3(2), 93-116. &lt;br /&gt;Cooley, R., Mobasher, B. &amp; Srivastava, J. (1999). Data preparation for mining World Wide Web browsing patterns. Knowledge and Information Systems, 1(1), 5-32 &lt;br /&gt;Cooper, A. (1999). The inmates are running the asylum. Indianapolis, IN: SAMS. &lt;br /&gt;Graff, M. (2005). Individual differences in hypertext browsing strategies. Behaviour &amp; Information Technology 24(2), 93-99. &lt;br /&gt;Gunduz, S. &amp; Ozsu, M.T. (2003). A Web page prediction model based on clickstream tree representation of user behavior. In Proceedings of the 9th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining 2003, (pp. 535-540). New York, NY: ACM Press. &lt;br /&gt;Holsanova, J. (2004). Tracking multimodal interaction with new media, Paper presented at the workshop on The Citizen's Use and Comprehension of Information on the Internet, Uppsala, 18-19 June 2004. Retrieved 18 December, 2005 from http://www.lucs.lu.se/People/Jana.Holsanova/PDF/Holsanova.2004.pdf. &lt;br /&gt;Kohavi, R. (2001). Mining e-commerce data: the good, the bad, and the ugly. Proceedings of the 7th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining 2001, (pp 8-13). New York, NY: ACM Press. &lt;br /&gt;Mullier, D., Hobbs, D. &amp; Moore, D. (2002). Identifying and using hypermedia browsing patterns. Journal of Educational Multimedia and Hypermedia, 11(1), 31-50 &lt;br /&gt;Preece. J, Rogers. Y. &amp; Sharp. H. (2002). Interaction design. New York, NY: John Wiley &amp; Sons, Inc. &lt;br /&gt;Nielsen, J. (2000). Designing Web usability: the practice of simplicity. Indianapolis, IN: New Riders Press. &lt;br /&gt;Pirolli, P. &amp; Card, S. (1999). Information foraging. Psychological Review, 106(4), 643-675. &lt;br /&gt;Ting, I., Kimble, C. &amp; Kudenko, D. (2004). Visualizing and classifying the pattern of user's browsing behaviour for Website design recommendation. Paper presented at the International Workshop on Knowledge Discovery in Data Stream, Pisa, Italy, 24 September 2004. &lt;br /&gt;Ting, I., Kimble, C. &amp; Kudenko, D. (2005). A pattern restore method for restoring missing patterns in server side clickstream data. In Yanchun Zhang, Katsumi Tanaka, Jeffrey Xu Yu, Shan Wang, Minglu Li, (Eds.) Web Technologies Research and Development - APWeb 2005: 7th Asia-Pacific Web Conference, Shanghai, China, March 29 - April 1, 2005. Proceedings. (pp. 501-512). Berling: Springer. (Lecture Notes in Computer Science, 3399).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-1203722399351007448?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/1203722399351007448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=1203722399351007448' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1203722399351007448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1203722399351007448'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/combining-ethnographic-and-clickstream.html' title='Combining ethnographic and clickstream data to identify user Web browsing strategies'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-8607110554341652264</id><published>2008-04-13T20:08:00.001-07:00</published><updated>2008-04-26T19:28:42.619-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wrike:'/><category scheme='http://www.blogger.com/atom/ns#' term='Wrike: project and task management tool'/><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='task'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Wrike: project and task management tool</title><content type='html'>Tuesday April 8, 2008&lt;br /&gt;Wrike is an innovative Web-based project and task management tool that is affordable, easy to use, and structured well for small Web teams. I recently wrote a post comparing Wrike to Basecamp, the best-in-breed project management tool for Web designers.&lt;br /&gt;&lt;br /&gt;There are 3 things that Wrike does differently from Basecamp that is especially appealing to Web workers who are not Web designers:&lt;br /&gt;&lt;br /&gt;Wrike charges per user, not per project. This lets you create hundreds of projects (or groupings of tasks) while only paying $3.99 per person per month.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Wrike has two-way email integration. Not only does it send you reminders and a daily todo list, you can create new tasks via email! This is my favorite feature because it's so convenient.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Wrike is still being actively developed. This is good and bad news. The developers are definitely listening to their users, and I see exciting and useful new features being released on a near-monthly pace. On the other hand, it's not "finished" and may be a bit rough around the edges.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-8607110554341652264?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/8607110554341652264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=8607110554341652264' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/8607110554341652264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/8607110554341652264'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/wrike-project-and-task-management-tool.html' title='Wrike: project and task management tool'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-69911401101138516</id><published>2008-04-13T20:06:00.000-07:00</published><updated>2008-04-26T19:29:11.587-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet for Beginners'/><category scheme='http://www.blogger.com/atom/ns#' term='Beginners'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Internet for Beginners</title><content type='html'>How Does RSS Work? What Can I Do With RSS?"&lt;br /&gt;Really Simple Syndication feeds can be extremely useful! The purpose of RSS is to regularly update your hobby interests by receiving dynamic web feeds directly to your screen. Examples include: tracking DVD prices at Amazon, watching for cheap airfares, following the Don Imus controversy. You can get the latest gossip on Anna Nicole Smith's baby, receive the latest wallpaper from your favorite web photographer, or follow the NHL hockey playoffs. You can get the joke of the day or the quote of the week. You can even get barbecue recipes! There are so many interesting things you can do with RSS. Here are some suggestions to get you started&lt;br /&gt; I Don't Understand Internet Scams. How Do They Work?"&lt;br /&gt; You've probably heard about Internet con games. That's where dishonest-but-clever web publishers either fool you into divulging your financial information, or they convince you to install their software and make money for them.  But how exactly do these scams work? Well, this is your chance to see what Internet cons look like in a controlled environment&lt;br /&gt;How to Completely De-Gunk Your PC of Crapware.&lt;br /&gt;"Crapware": this unpleasant word describes all the software that you don't want on your computer. Useless download managers, unwanted drivers, annoying toolbars...all the things that you personally want removed because you never really wanted them in the first place. So how do you clean this crapware out? Well, thanks to George Ou of ZDNet, here is a step-by-step tutorial on cleaning out your startup and registry entries. Fabulous advice, and well worth 30 minutes of your time&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-69911401101138516?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/69911401101138516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=69911401101138516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/69911401101138516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/69911401101138516'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/internet-for-beginners.html' title='Internet for Beginners'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-6977050480561700446</id><published>2008-04-11T15:42:00.000-07:00</published><updated>2008-04-26T19:29:57.777-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Easy monetizing of your blog with AdSense'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='Easy'/><category scheme='http://www.blogger.com/atom/ns#' term='monetizing'/><category scheme='http://www.blogger.com/atom/ns#' term='AdSense'/><title type='text'>Easy monetizing of your blog with AdSense</title><content type='html'>Why should I monetize my website?&lt;br /&gt;The more success you have with your blog / website, the more time and money you're going to invest to update it and host it properly.&lt;br /&gt;&lt;br /&gt;At some point you may think: wouldn't it just be nice to have my site pay for itself?&lt;br /&gt;&lt;br /&gt;Well, that is actually easier to achieve than it sounds! A decent hosting plan should cost you no more than $6.95/month. However, that's quite a low figure here and most people make many many times more than that in ad revenue...&lt;br /&gt;&lt;br /&gt;By properly monetizing your blog site it is actually possible to have it pay, not only for the hosting, but also for the time you spend working on it.&lt;br /&gt;&lt;br /&gt;Why AdSense?&lt;br /&gt;First, because AdSense is a very simple and proven solution that already pays for hundreds of thousands of blogs/websites accross the world!&lt;br /&gt;&lt;br /&gt;Also, AdSense is provided to you by Google which not only makes it reliable but also trustworthy. Once you have earned money from Google, you can actually trust them to pay it to you!&lt;br /&gt;&lt;br /&gt;Finally, because the ads will be contexual, i-e they will be relevant to the content of your blog/site. This way, your visitors will not be offended for seeing the ads on your site.&lt;br /&gt;How do I get started?&lt;br /&gt;It's as simple as that:&lt;br /&gt;&lt;br /&gt;Sign up: Sign up for AdSense. It's totally free! Then follow the provided instructions to put a little javascript snippet onto your blog skin or any web page you like. &lt;br /&gt;When visitors view your site they see contextual text ads that automatically adjust to the contents of each page / blog post so that they are always relevant. No flashing images, just relevant text links! :) &lt;br /&gt;When a visitor clicks on an ad link, Google records the click and you get paid for it. Get ready for a monthly check from Google ;) &lt;br /&gt;Will it ruin my blog design?&lt;br /&gt;You can choose the exact position and colors of the text ad blocks you place on your site.&lt;br /&gt;&lt;br /&gt;Below are two examples of blogs that incorporate text ads and successfully pay for themselves. Judge for yourself:&lt;br /&gt;&lt;br /&gt;Example 1: Ad links at the end of the blog post. &lt;br /&gt;Example 2: Ad links at the top of the page.&lt;br /&gt;Note: as you can see, AdSense is not limited to English!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-6977050480561700446?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/6977050480561700446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=6977050480561700446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6977050480561700446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6977050480561700446'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/easy-monetizing-of-your-blog-with.html' title='Easy monetizing of your blog with AdSense'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-1211243362644599748</id><published>2008-04-10T23:46:00.002-07:00</published><updated>2008-04-26T19:31:18.220-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Lessons'/><category scheme='http://www.blogger.com/atom/ns#' term='Basic Web Lessons'/><category scheme='http://www.blogger.com/atom/ns#' term='Basic'/><title type='text'>Basic Web Lessons</title><content type='html'>This section will help you understand common terms and tools of the internet: Pop Up Ads, Page Not Found, Web Traffic, Stuck in a Page. Also, the Conclusion. &lt;br /&gt;&lt;br /&gt;Surfing the Web is not without some snafus. Here are a few of the aggravations and what to do about them. &lt;br /&gt;&lt;br /&gt;Pop Up Ads &lt;br /&gt; &lt;br /&gt;Popup Ad&lt;br /&gt;Many of the irritations and aggravations are caused by aggressive marketers who want to get your eyes on their information. One popular way to invade your screen is through pop ups. Pop ups are ads that appear without your request usually on top of the information that you want to view. &lt;br /&gt;&lt;br /&gt;You can get rid of them by simply clicking on the X in the upper right hand corner of the box containing the ad. Another kind of ad has become increasing popular: the pop under ad. While you are surfing the Web, these ads open under your browser window. You may not see them until after you close your browser, at which time you may wonder where the ad came from. Again, simply close the window and ignore it. &lt;br /&gt;&lt;br /&gt;Pop up and pop under ads are extremely aggravating. Remember, if you respond to a pop up or pop under ad, you are letting the marketers know that they have gotten your attention. If no one ever clicked on these ads, marketers would consider them a failure, and they would quickly disappear. &lt;br /&gt;&lt;br /&gt;Page Not Found &lt;br /&gt;You are already becoming familiar with the two major characteristics of the Internet — it is mammoth and dynamic. Often the dynamic quality of the Web can be frustrating. You may have a particular site that you need to find or return to. You carefully type in the URL and click Go. There is a message that appears, "Page Not Found." The most common reason for a Page Not Found error is a typo, so first check the address that you have typed to make sure that it is a valid address with no spaces or mistakes. &lt;br /&gt;&lt;br /&gt;Occasionally, you will get a Page Not Found error simply because of a glitch or a burp in the system. Retry the address again. If you still get an error, try again later. If, after several tries, Page Not Found still appears, the page may have been removed from the Internet or moved to a new location making it inaccessible. &lt;br /&gt;&lt;br /&gt;Web Traffic &lt;br /&gt;Sometimes a Web page becomes inaccessible simply because there are too many people trying to visit it at the same time. This happened with several news sites after the September 11th terrorist attacks. If this is the case, you may get a "Page Not Found" or other error. &lt;br /&gt;&lt;br /&gt;Also remember that during certain times of the day, there is more traffic on the Internet, making Web sites appears more slowly. You may want to avoid surfing during the very busy early evening hours. &lt;br /&gt;&lt;br /&gt;Stuck in a Page &lt;br /&gt; &lt;br /&gt;Open in New Window Menu&lt;br /&gt;One of the goals of every Web site is to get visitors to come to their site. Sometimes Web creators use somewhat devious tricks to keep you looking at their Web sites. You will notice that occasionally when you click on a hyperlink, instead of being transported to a new page, you see the new page appear in the framework of the old page. No matter how many links you click on, you cannot escape from the first page. Dealing with this dilemma is easy. Just right-click on a hyperlink and choose Open in New Window, and you will have broken free. &lt;br /&gt;&lt;br /&gt;Basic Browsing – Conclusion &lt;br /&gt;Congratulations! You have completed the final lesson of our Basic Browsing topic. We hope you'll visit us again in the near future as we add new and expanded topics. &lt;br /&gt;&lt;br /&gt;If you found our lessons helpful and have friends and family who could use a helping hand on the web, you can e-mail them a link to this feature! Or, share your insights on our message boards. &lt;br /&gt;&lt;br /&gt;And if you're raring to go try out your new web skills, check out our Computers &amp; Technology Home Page for more great stories, how-to's, web reviews, and tech news.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-1211243362644599748?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/1211243362644599748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=1211243362644599748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1211243362644599748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1211243362644599748'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/basic-web-lessons.html' title='Basic Web Lessons'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-6967180948470929714</id><published>2008-04-10T23:46:00.001-07:00</published><updated>2008-04-26T19:31:57.881-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Things'/><category scheme='http://www.blogger.com/atom/ns#' term='Lesson 6'/><category scheme='http://www.blogger.com/atom/ns#' term='Finding'/><category scheme='http://www.blogger.com/atom/ns#' term='Finding Things'/><title type='text'>Lesson 6: Finding Things</title><content type='html'>This section will help you understand common terms and tools of the internet: Search, Favorites, History. &lt;br /&gt;&lt;br /&gt;Search &lt;br /&gt;Now we are ready to tackle the middle segment of the Tool Bar. Back to those icons that do much of the work for us when surfing the Web. The first icon in this section is the magnifying glass or the Search icon. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Search Icon&lt;br /&gt;The outstanding value of the computer is the access that it offers to information. But users need some help in getting to that great source of information. And here is that help — the Search feature. The computer has a great program to find a particular area of content for documents that contain certain keywords, the search feature. &lt;br /&gt;&lt;br /&gt;To use the Search feature, click the Search icon (magnifying glass) on the Tool Bar and you will gain access to a search engine. In the Search bar, type that word or phrase that describes what you're looking for. Try to keep your topic as short and specific as possible. When your search results appear, you can view the individual Web pages without losing your list of search results. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Search Box&lt;br /&gt;You can also search directly from the Address Bar. Just type common names or words, and your browser can automatically take you to the site that most likely matches what you are searching for. Your browser will list other likely sites as well. Just type common names or words in the Address Bar, and then click Go. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Favorites &lt;br /&gt;The next icon in this center section of the Tool Bar is Favorites, the real stars of your Internet show. You will easily recognize the folder with the star (asterisk) as your Favorites icon. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Favorites&lt;br /&gt;The real trick to the Internet is having it work for you. There is so much information available that you must be able to manage it rather than it manage you. Probably the first experience in customizing the Web for yourself will be selecting some Favorites. Favorites are just what they sound like — your favorite sites on the Internet. Better than that, this special function offers you an express ride to your favorite and/or most visited sites on the Web. &lt;br /&gt;&lt;br /&gt;When you find Web sites or pages that you like, you can keep track of them using the Favorites feature, making them easy to return to in the future. Favorites is a customized list of links to your most frequently used and popular online areas or Web sites. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Dropdown Favorite List&lt;br /&gt;Wasn't that a snap. It's easy to add a Web page to your list of Favorites. After you have done that, any time you want to open that page, all you have to do is click the Favorites icon on the main Tool Bar. You will then be given a dropdown menu from which you can open one of your favorite pages. After you add a site to your list of Favorites, you can access it at any time from your list with a simple click of your mouse. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;History &lt;br /&gt;Your trusty Tool Bar offers another feature for retracing your surfing steps — the History icon. This icon will offer you the option of revisiting a Web site you have previously visited during your last several Internet sessions. This is a real treat and can save you from having to type long, complicated URLs in the search box. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;History Drop Down Box&lt;br /&gt;Get to know the icon that represents History. It is a sundial. The History function will let you sort and choose sites to revisit by date, by site, by most visited, by order visited today, and even by search. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;History Sorting Options&lt;br /&gt;On the History menu, click a week or day. Then click a Web site folder to display individual pages, and then click the page icon to display the Web page. Here is another little tip: if you decide you want to hide the History Menu box, just click the History icon again. &lt;br /&gt;&lt;br /&gt;Next Lesson: Handling Common Problems &gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-6967180948470929714?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/6967180948470929714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=6967180948470929714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6967180948470929714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6967180948470929714'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/lesson-6-finding-things.html' title='Lesson 6: Finding Things'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-7029694462725586615</id><published>2008-04-10T23:45:00.001-07:00</published><updated>2008-04-26T19:33:01.703-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Printing'/><title type='text'>Lesson 5: Printing</title><content type='html'>This section will help you understand common terms and tools of the internet: Printing pages, Print-friendly Version. &lt;br /&gt;&lt;br /&gt;Printing pages &lt;br /&gt;With all this navigating and exploring of Web pages, you have probably seen information that you would like to save in the old-fashioned way — with a printed-paper copy. As you viewed pages on the Web, did you find information that you'd like to save for future reference or share with others? &lt;br /&gt;&lt;br /&gt;The computer world gives you the option of saving an entire Web page or any part of it: text, graphics, or links in printed form. Printing Web pages is very easy, thanks to that helpful Tool Bar. See the printer icon on the Tool Bar? That is the answer if you want a paper copy of a Web page you have found useful. A thoughtful gesture is to share Internet information by printing Web pages for people who don't have access to the Web or a computer. &lt;br /&gt;&lt;br /&gt;To print a Web page, just click the printer icon on your Tool Bar. The page will print according to all your default options, which is usually what you want anyway. &lt;br /&gt;There is another, more detailed way to print material from the Internet. Go to the Menu Bar and click on File. You will now see a dropdown menu offering a variety of choices, one of them being Print. Click Print. You will now be able to print a Web page, a portion of a Web page, or several copies of a Web page by making specific selections. You can select the printing options you want. &lt;br /&gt;&lt;br /&gt;A nice way to double-check yourself is to preview how a Web page will look before your click the Print command; just click Print Preview. &lt;br /&gt;&lt;br /&gt;Print-friendly Version &lt;br /&gt; &lt;br /&gt;A Web page with Print format&lt;br /&gt;You will feel like a real computer pro in no time when you learn many of the tricks of the trade. One very helpful trick is the print-friendly option found on so many Web pages. This printing choice gives you a printed copy of the page or article that omits many of the graphics and fancy formatting. A text-only version will be printed for you simply by selecting the printer-friendly version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-7029694462725586615?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/7029694462725586615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=7029694462725586615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/7029694462725586615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/7029694462725586615'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/lesson-5-printing.html' title='Lesson 5: Printing'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-5918442261045082857</id><published>2008-04-10T23:44:00.000-07:00</published><updated>2008-04-30T08:33:47.301-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lesson 4'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Pages'/><category scheme='http://www.blogger.com/atom/ns#' term='Lesson 4: Navigating Web Pages and Web Site'/><category scheme='http://www.blogger.com/atom/ns#' term='Navigating'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Site'/><title type='text'>Lesson 4: Navigating Web Pages and Web Site</title><content type='html'>This section will help you understand common terms and tools of the internet: Hyperlinks, Underlined Link, Hand Icon, Graphics, Links in Menus, Using Wheel Mouse, Using Arrow Keys. &lt;br /&gt;&lt;br /&gt;Hyperlinks &lt;br /&gt;An easy way to move around on the World Wide Web is by hyperlinks, which are sometimes called hot links. Whatever you call them, these links provide a connection between Web pages that allows for amazingly easy access to other Web pages. A link or hyperlink can be text, an icon, a picture, or an icon that moves a user from one Web page or Web site to another. A hyperlink has an unseen Web address imbedded in it. &lt;br /&gt;&lt;br /&gt;Positioning your cursor on a hyperlink and clicking your mouse will take you to the Web page whose address is embedded in the hyperlink. So, if I am writing something about The Encyclopedia Britannica, I can simply add a hyperlink to the text and it will become The Encyclopedia Britannica. You can tell that this text has a hyperlink hidden in it because it is a different color and because it is underlined. Just click on the hyperlinked word and presto—you go off to the world of the underlined word, in this case, the Encyclopedia Britannica Web site. Hyperlinks are a great way to easily find out more about a particular word or concept. There seems to be no end to the information on this Information Highway! &lt;br /&gt;&lt;br /&gt;Underlined link &lt;br /&gt;A text link appears as an underlined word and often is indicated by a color different from the rest of the text on the page. When you click this underlined word, you will instantly jump from one place to another. Once you click on a hyperlink, it changes color to indicate that you have previously used the hyperlink. &lt;br /&gt;&lt;br /&gt;Hand Icon &lt;br /&gt; &lt;br /&gt;Hand Icon&lt;br /&gt;If you want to see if an item on the page you are viewing is a hyperlink, move the mouse pointer over the item. If the pointer changes to a hand, the item is a link. This hand icon is a symbol letting you know that that word, picture, or graphic is a hyperlink. &lt;br /&gt;The keyboard holds some other choices for helping you move around a Web page. The first are the Page Up and Page Down keys on your keyboard. Pressing these keys while on a Web page, will move you up and/or down the screen one page at a time. The Arrow keys on the keyboard are convenient tools for moving the focus of your computer screen up, down, left, or right. These keys will move the screen more slowly, moving one line at a time. &lt;br /&gt;&lt;br /&gt;Using Wheel Mouse &lt;br /&gt;I thought the scroll bars were the Cadillac of navigation until I tried a wheel mouse. What is a wheel mouse? He is a very helpful little critter that you will be happy you met. You can purchase a mouse with a wheel located between the two buttons. This wheel is programmed to move the screen; and you can customize its movements. The most common use of the wheel mouse is for scrolling up and down a Web page. With this little fellow in hand you can really fly up and down the screen. All you do is click on the page and then turn your wheel in an upward or downward motion and you will get the same effect as using the scroll bar, but the movement is faster and much easier. Web pages today can be very long so a wheel mouse is a special friend. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Graphics Used as Links &lt;br /&gt; &lt;br /&gt;AARP Logo&lt;br /&gt;Yes, a graphic or picture can also be a hyperlink. Position your cursor over the graphic on a page. If the hand icon appears, you have found a link that will move you to another area on the Internet. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Links in Menus &lt;br /&gt; &lt;br /&gt;Compukiss®&lt;br /&gt;Sometimes you will find a Web page which has a list of items, generally called a Menu of items. Although the words themselves may not be underlined, these items may still be hyperlinks. A good example is my own Compu-KISS® Web site. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Navigating Within a Web Page &lt;br /&gt;So far, our main focus has been moving from Web page to Web page or navigating between Web sites, but that is only half the picture. Once you have moved from Web site to Web site and selected a Web page you want to concentrate on, there are convenient ways to move around that particular page itself. &lt;br /&gt;&lt;br /&gt;Apply Your Knowledge.&lt;br /&gt;A common practice in the Web World is to make a logo a hyperlink that will transport you to the site's home page. &lt;br /&gt;&lt;br /&gt;Often a Web page holds more information than can fit on one screen. A Web page appears aligned to the upper left hand corner of your screen. There is often information that you cannot see farther down after the last line on the screen. Sometimes there is also more information to the right of the screen. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Slider &amp; Arrows&lt;br /&gt;Scrolling is an easy way to navigate on a Web page. You can scroll up and down and side to side by using either the horizontal or vertical onscreen scroll bars on the bottom and right side of the screen. To scroll using the onscreen scroll bars, simply position your cursor on the slider on the scroll bar. Hold the mouse button down and drag the slider up and/or down on the vertical scroll bar (or side to side on the horizontal scroll bar). You can also position your cursor over the arrows at the top and the bottom of the vertical scroll bar (left and right sides of the horizontal scroll bar) to move one line at a time. &lt;br /&gt;&lt;br /&gt;Using Arrow Keys&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-5918442261045082857?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/5918442261045082857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=5918442261045082857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/5918442261045082857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/5918442261045082857'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/lesson-4-navigating-web-pages-and-web.html' title='Lesson 4: Navigating Web Pages and Web Site'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-902055128716653541</id><published>2008-04-10T23:43:00.000-07:00</published><updated>2008-04-30T08:34:52.461-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Addresses'/><category scheme='http://www.blogger.com/atom/ns#' term='Address Bar'/><category scheme='http://www.blogger.com/atom/ns#' term='Lesson 3'/><category scheme='http://www.blogger.com/atom/ns#' term='Lesson 3: Addresses / Address Bar'/><title type='text'>Lesson 3: Addresses / Address Bar</title><content type='html'>Don't be afraid of getting lost or overwhelmed on the mammoth Information Highway. There is an easy way to know where you are at all times. One way to keep track of where you are on the Web, especially if you have been moving around by links, is to check out the Address Box. This box gives you the location or address of the current page you are viewing. &lt;br /&gt;&lt;br /&gt;URL (Uniform Resource Locator) &lt;br /&gt;That unusual word at the top of the page in what is known as the locator box or address box is the address of a Web page. Each Web page has a unique address called a Uniform Resource Locator or URL. The URL (pronounced U-R-L) is the specific address of a Web page. &lt;br /&gt;&lt;br /&gt;There is a special system for addressing Internet sites. The URL or Web address is typically composed of four parts: &lt;br /&gt;&lt;br /&gt;A protocol name (a protocol is a set of rules and standards that enable computers to exchange information) &lt;br /&gt;The location of the site &lt;br /&gt;The name of the organization that maintains the site &lt;br /&gt;A suffix that identifies the kind of organization it is &lt;br /&gt;For example, the address http:// www. aarp. org is made up of the following areas: &lt;br /&gt;&lt;br /&gt;http://&lt;br /&gt;This Web server uses Hypertext Transfer Protocol (HTTP). This is the most common protocol on the Internet. &lt;br /&gt;www&lt;br /&gt;This site is on the World Wide Web. &lt;br /&gt;AARP&lt;br /&gt;The Web server is at AARP. &lt;br /&gt;org&lt;br /&gt;This is a nonprofit organization. &lt;br /&gt;Some common extensions are: &lt;br /&gt;&lt;br /&gt;com (commercial) &lt;br /&gt;edu (educational institution) &lt;br /&gt;gov (government) &lt;br /&gt;int (international) &lt;br /&gt;mil (military) &lt;br /&gt;net (network) &lt;br /&gt;org (organization) &lt;br /&gt;You might also see foreign addresses that add a country code as the last several digits of the address, such as: &lt;br /&gt;&lt;br /&gt;au (Australia) &lt;br /&gt;ca (Canada) &lt;br /&gt;fr (France) &lt;br /&gt;it (Italy) &lt;br /&gt;us (United States of America) &lt;br /&gt;Address Bar &lt;br /&gt;The Address Bar is an excellent tool that can be used for navigating the Web. If you know the address of a page you want to visit, type the URL in the Address Bar. Then press Enter on the keyboard or click on the word Go on the right side of the Address Bar. &lt;br /&gt;&lt;br /&gt;The power of the computer really shines through with a feature called AutoComplete which is built into Internet Explorer. If you start typing a Web address that you have previously used, a list of matching addresses appears. The addresses of all the Web sites that you have visited are kept in the computer memory. Your browser will locate an address that you have previously typed in the Address Bar by searching for similar addresses trying to find a match. As you type each letter, the list is refined to match your typing. You can choose one of these addresses by simply moving your mouse over the name and clicking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-902055128716653541?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/902055128716653541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=902055128716653541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/902055128716653541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/902055128716653541'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/lesson-3-addresses-address-bar.html' title='Lesson 3: Addresses / Address Bar'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-5141259825910066503</id><published>2008-04-10T23:42:00.000-07:00</published><updated>2008-04-30T08:35:30.098-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Title'/><category scheme='http://www.blogger.com/atom/ns#' term='Toolbars'/><category scheme='http://www.blogger.com/atom/ns#' term='Menu'/><title type='text'>Lesson 2: Title, Menu, and Toolbars</title><content type='html'>This section will help you understand common terms and tools of the internet: Title Bar, Menu Bar, Address Bar, Tool Bar , Back/Forward, Stop and Refresh Icons, Home Page Icon. &lt;br /&gt;&lt;br /&gt;Title Bar &lt;br /&gt; &lt;br /&gt;Title bar with callout&lt;br /&gt;Let's take it from the top. The name of the Web site or title of the page you are viewing is found on the top left hand corner of your screen. Traditionally, this horizontal blue bar runs across the entire width of your screen. This blue bar that contains the name of the Web site is called the Title Bar. The Title Bar will serve as a trusty anchor, always letting your know where you are by sharing the title of the Web site you are visiting. This bar does not take you anywhere, but it always lets you know where you are. &lt;br /&gt;&lt;br /&gt;Menu Bar &lt;br /&gt;Underneath the Title Bar are other bars that can be used for moving around the Internet. If you are looking for quick and easy ways to navigate, the bars located at the top of your screen under the Title Bar will be helpful. One of the most useful bars is the Menu Bar. You will quickly appreciate each of the options found on the Menu Bar. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Menu Bar&lt;br /&gt;The Menu Bar is the horizontal band that contains commands and options that can be chosen. In Internet Explorer, these selections are File, Edit, View, Favorites, Tools, and Help. &lt;br /&gt;&lt;br /&gt;Clicking on each of the items in the standard Menu Bar at the top of your page will drop down a menu that is a useful way to access the many features of the Internet Explorer program. The last menu item is the Help item. You will be surprised and relieved how often you will be able to click Help and find the answers you need. &lt;br /&gt;&lt;br /&gt;The Menu Bar is a very useful tool when trying to make your way around a Web site. Because the Menu Bar offers so many helpful functions, the quicker you master File, Edit, View, Favorites, Tools, and Help, the better. It does not take long to learn the purpose of each of these menu items that help you move around the Internet. &lt;br /&gt;&lt;br /&gt;Address Bar &lt;br /&gt; &lt;br /&gt;Address Box&lt;br /&gt;Because the Address Bar offers a unique method of navigating the Web, it will be explained in greater detail a little later in this lesson. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Tool Bar &lt;br /&gt; &lt;br /&gt;Tool Bar&lt;br /&gt;As its name implies, this is the area where a lot of work gets done. The Tool Bar is much like the Menu Bar stretching from left to right across the top of your screen just under the Address Bar. Because the Tool Bar is the workhorse of bars, it is larger and contains many useful icons divided into three areas. Each of these icons has a text description of its function under the icon itself. If you do not see the text description, hold your cursor over the icon, and the function of the icon will appear. Either way, it will not take you long to associate each function with its picture. Let's become familiar with the first area which contains five icons. The remainder of the icons on the Tool Bar will be explained in later lessons. &lt;br /&gt;&lt;br /&gt;Back/Forward &lt;br /&gt;The first icon on the Tool Bar is the Back Icon. You will be surprised how often you will want to return to a Web page or Web site you enjoyed earlier. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Grayed Out Forward&lt;br /&gt;How about another direction change? Ready to return to the Web page you were viewing before you backtracked with the Back arrow? Yes, there is a tool for that. The Forward icon can return you to square one by revisiting each page successively. &lt;br /&gt;&lt;br /&gt;Let's review. How would you find a page that you have just visited? To return to the last page you viewed, simply click the Back arrow icon on the toolbar. &lt;br /&gt;&lt;br /&gt;If you want to view one of the last nine pages you visited in this session, just click that small black down arrow located to the side of the Back or Forward icon. You will see a list of the sites you have visited previously. Then just click the page you want from the list. &lt;br /&gt;&lt;br /&gt;Stop and Refresh Icons &lt;br /&gt;It will not take you long to appreciate two other icons found on the Tool Bar. The Stop icon is located to the right of the Back and Forward arrows. Clicking the Stop icon will stop the page you have selected from downloading. &lt;br /&gt;&lt;br /&gt;This icon is especially useful. Click the Stop icon if a page is taking too long to download. What if you changed your mind and do not want to visit a page? Just click this icon. Occasionally you find that you have clicked on a wrong link. Again, the Stop icon to the rescue. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Stop&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Refresh&lt;br /&gt;The next icon is not quite as intuitive as the old familiar Stop icon. It is the Refresh icon. Refresh makes sure you are viewing the latest version of the current Web page. Remember one of the unique characteristics of the Internet is that it is dynamic and fluid. Information is continuously being added, and Web pages are constantly changing. It might be important to you that you are viewing the very latest information. For that reason, you have a Refresh icon. Just click the Refresh icon and your browser will reload the latest version of the page you are viewing. &lt;br /&gt;&lt;br /&gt;Home Page Icon &lt;br /&gt;In reference to this icon, home page is the Web page that your browser uses when it starts, the Web page that appears every time you open your browser. Clicking the home page icon found on the Tool Bar will take you to the specific page you have set as your browser's home page. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Menu and Tool Bars&lt;br /&gt;As a review, let's look at an easy to understand labeling of the three important bars we have just mastered. I bet you use the Tool Bar the most, but you will find you cannot get along without any of them!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-5141259825910066503?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/5141259825910066503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=5141259825910066503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/5141259825910066503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/5141259825910066503'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/lesson-2-title-menu-and-toolbars.html' title='Lesson 2: Title, Menu, and Toolbars'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-4542892691856071599</id><published>2008-04-10T23:35:00.000-07:00</published><updated>2008-04-30T08:32:49.248-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='Basics'/><category scheme='http://www.blogger.com/atom/ns#' term='Lesson 1: Understanding Basics'/><category scheme='http://www.blogger.com/atom/ns#' term='Lesson 1'/><title type='text'>Lesson 1: Understanding Basics</title><content type='html'>This section will help you understand common terms and tools of the internet: The Internet, Internet Browsers, Web Sites, Web Pages, Home Pages. &lt;br /&gt;&lt;br /&gt;Internet &lt;br /&gt;The Internet is a network of computers spanning the globe. This communication structure is a system connecting more than fifty million people in countries around the world. A global Web of computers, the Internet allows individuals to communicate with each other. Often called the World Wide Web, the Internet provides a quick and easy exchange of information and is recognized as the central tool in this Information Age. &lt;br /&gt;&lt;br /&gt;Internet Browser &lt;br /&gt;An Internet browser is a software program that enables you to access and navigate the Internet by viewing Web pages on your computer. The label Internet Browser describes a software program that provides users with a graphical interface that allows them to connect to the Internet and "surf the Web." Simply speaking, a browser is a software program that enables you to view Web pages on your computer. &lt;br /&gt;&lt;br /&gt;Netscape Navigator and Internet Explorer (IE) are the two browsers most commonly used for viewing the Internet. Netscape and Internet Explorer share many of the same functions, and it is possible to use both. Microsoft is the creator of Internet Explorer, and Netscape Navigator, originally developed by Netscape, is now owned by America Online/Time Warner. There are other browsers available as well. It does not take many users long to develop a preference and "adopt" a browser. You may have already made the choice. Which are you using? &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Internet Explorer&lt;br /&gt; &lt;br /&gt;Netscape Navigator&lt;br /&gt;Web Page &lt;br /&gt;A Web page can be explained as one area of the World Wide Web. Comparable to a page in a book, the basic unit of every Web site or document on the Web is a page. A Web page can be an article, an ordering page, or a single paragraph, and it is usually a combination of text and graphics. &lt;br /&gt;&lt;br /&gt;Home Page &lt;br /&gt;The term home page has a couple of meanings. It is the Web page that your browser uses when it starts, and also the Web page that appears every time you open your browser. Clicking the home page icon on your browser screen will take you to the specific page you have set as your browser's home page. &lt;br /&gt;&lt;br /&gt;Home page also refers to the main Web page out of a collection of Web pages. On each site, often you will see home page as a choice on a Menu Bar. Clicking on the word Home on a Web page will take you to the home or main page of that particular Web site. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Not only will you need to be familiar with your browser "brand," but you should also know the version of the browser you are using. Frequently new versions of browsers are made available to computer users; normally they are available to be downloaded from the Internet at no charge. It is easy to find the current version of your browser; let me show you. &lt;br /&gt;&lt;br /&gt;Web Site &lt;br /&gt;A site or area on the World Wide Web that is accessed by its own Internet address is called a Web site. A Web site can be a collection of related Web pages. Each Web site contains a home page and may also contain additional pages. Each Web site is owned and updated by an individual, company, or organization. Because the Web is a dynamically moving and changing entity, many Web sites change on a daily or even hourly basis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-4542892691856071599?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/4542892691856071599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=4542892691856071599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4542892691856071599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4542892691856071599'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/lesson-1-understanding-basics.html' title='Lesson 1: Understanding Basics'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-6896629489563637595</id><published>2008-04-10T23:32:00.000-07:00</published><updated>2008-04-26T19:33:50.700-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='information'/><category scheme='http://www.blogger.com/atom/ns#' term='How can you use information on the Web?'/><title type='text'>How can you use information on the Web?</title><content type='html'>The web is full of lots of useful information. There are a number of ways of using this information...&lt;br /&gt;&lt;br /&gt;Printing Using the Find Tool&lt;br /&gt; Copying Text Saving Pictures &lt;br /&gt;&lt;br /&gt;You will learn how to do each of these things in this section.&lt;br /&gt;&lt;br /&gt;Let's find out more about printing...&lt;br /&gt;&lt;br /&gt;Printing  &lt;br /&gt;&lt;br /&gt;How do you print web pages?&lt;br /&gt;&lt;br /&gt;Printing web pages is very easy.&lt;br /&gt;&lt;br /&gt;Read these instructions very carefully, because you will need to remember them for the next activity.&lt;br /&gt;&lt;br /&gt;1) Find the page on the web which you would like to print.&lt;br /&gt;&lt;br /&gt;2) Turn your printer on, make sure it is ON-LINE and has some paper in it!&lt;br /&gt;&lt;br /&gt;3) Press the Print button in your web browser. The Print buttons for the two main browsers are shown below...&lt;br /&gt;&lt;br /&gt;Internet Explorer Firefox &lt;br /&gt;  &lt;br /&gt;You can also choose the PRINT option on the FILE menu. &lt;br /&gt;&lt;br /&gt;4) Your printer should now print the page. If a new window pops up on the screen giving you printer options, you can normally just click on OK.&lt;br /&gt;&lt;br /&gt;Let's try a printing activity to see if you've remembered how to print something!&lt;br /&gt;Printing Activity&lt;br /&gt;&lt;br /&gt;Follow these instructions very carefully....&lt;br /&gt;&lt;br /&gt;1) Print this page.&lt;br /&gt;(if you have forgotten how to print, go BACK and reread the instructions)&lt;br /&gt;&lt;br /&gt;2) When the page has printed, cut out the 9 squares below, and rearrange them until you see the secret access code.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;3) Type this access code into the box below (use capital letters) and click on "CHECK CODE"&lt;br /&gt;&lt;br /&gt;Access Code:   &lt;br /&gt;&lt;br /&gt;If the code is correct, you will go to the next page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-6896629489563637595?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/6896629489563637595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=6896629489563637595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6896629489563637595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6896629489563637595'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/how-can-you-use-information-on-web.html' title='How can you use information on the Web?'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-6537906751201144782</id><published>2008-04-10T23:31:00.000-07:00</published><updated>2008-04-30T08:34:19.625-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='What is the Internet?'/><category scheme='http://www.blogger.com/atom/ns#' term='the Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='What'/><title type='text'>What is the Internet?</title><content type='html'>The Internet is a huge collection of computers around the world.&lt;br /&gt;&lt;br /&gt;These computers are all linked together, and they can "talk" to each other, sharing information. &lt;br /&gt;&lt;br /&gt;If your computer is connected to the Internet, it can connect to millions of other computers, in many different parts of the world.&lt;br /&gt;&lt;br /&gt;What can you do on the Internet?&lt;br /&gt;&lt;br /&gt;* You can send electronic letters to people.  &lt;br /&gt;* You can read pages on the World Wide Web.&lt;br /&gt; &lt;br /&gt;* You can play games with people on the other side of the world.  &lt;br /&gt;* You can chat to people. &lt;br /&gt;* You can even buy things on the Internet and have them delivered to your house! &lt;br /&gt;What is the World Wide Web? &lt;br /&gt;&lt;br /&gt;The World Wide Web is a part of the Internet.&lt;br /&gt;&lt;br /&gt;It is a collection of millions of pages of information. This information can be about anything:&lt;br /&gt;How do you move around&lt;br /&gt;the World Wide Web?&lt;br /&gt;&lt;br /&gt;The pages on the World Wide Web are all linked so that you can move around them.&lt;br /&gt;&lt;br /&gt;The pages are linked together using Hyperlinks. Remember these three rules: &lt;br /&gt;&lt;br /&gt;A hyperlink is usually coloured in blue and underlined&lt;br /&gt;(although they can be lots of different colours sometimes!)  &lt;br /&gt;If you move your mouse over a hyperlink,&lt;br /&gt;it will change to the shape of a hand, like this...  &lt;br /&gt;If you click on a hyperlink, you will go to a different page. &lt;br /&gt;&lt;br /&gt;One of the words below is a hyperlink...&lt;br /&gt;&lt;br /&gt;When you have found it, click on it, and you will go to the next page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-6537906751201144782?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/6537906751201144782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=6537906751201144782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6537906751201144782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6537906751201144782'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/what-is-internet.html' title='What is the Internet?'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-2724210512947416838</id><published>2008-04-10T14:44:00.000-07:00</published><updated>2008-04-30T08:36:24.295-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Learning'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Visual Basic'/><category scheme='http://www.blogger.com/atom/ns#' term='Basic'/><title type='text'>Learning Visual Basic</title><content type='html'>Part 1: Start Here! &lt;br /&gt;If you're new to Visual Basic, or even new to programming, this is the place! Visual Basic from the very ground up will be explained. Those of you who are more code-wise might find this article slightly boring from a technical perspective ... but Hey!, you're welcome here too! &lt;br /&gt;&lt;br /&gt;The first thing you need to know, and I mean know, about programming is that it's not magic and you can do it. The people who have trouble learning to program are the ones who expect to have trouble. If you think it's going to be easy, it probably will be for you. So plan on having fun! It's the best way to learn. &lt;br /&gt;The second thing is to realize is that the computer is really dumb! I mean stupid, idiotic, and just plain dense. That's why it has to be told each and every thing to do ... at some time. The TV and movie plots where the computer is this scheming, thinking, entity are completely wrong. If a computer doesn't have instructions to do something, it will not do anything. Your task as a programmer is to provide those instructions. The flip side of this is that if it's not doing what you intend, then it's because the instructions that it was given were wrong. &lt;br /&gt;&lt;br /&gt;The main flaw in this is that YOU don't give the computer all of the instructions. It gets a lot of them from other programmers at other times in the form of software like the compiler (the program that turns a 'programming language' like Visual Basic into instructions that the computer can actually understand), the operating system (the program that turns things like your keystrokes into instructions that the computer can actually understand), and software objects (little packages of self contained program code that do things that a lot of people need). So to really understand the instructions that the computer received, you have to have an idea about what all the other instructions are. Welcome to programming! &lt;br /&gt;&lt;br /&gt;Therefore ... our task in learning Visual Basic is to understand how Visual Basic combines with your instructions (and all the other stuff) to form a complete program. &lt;br /&gt;&lt;br /&gt;Fortunately, Visual Basic takes care of virtually all of the details for you. But it's a good idea to know what's happening "under the covers". Here's a picture of what all this looks like.  &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;By the way, this is usually called a 'Flow Chart'. A lot of people insist that you draw a flow chart of any program before you try to write it. It's a good idea, especially for people just starting out. But remember rule number 1: If it's not fun, don't do it. &lt;br /&gt;&lt;br /&gt;Part 2: The Visual Basic Programming Environment&lt;br /&gt;As the previous flowchart showed, you have to have the Basic software before you can complete a working program. The good news is that Microsoft does provide a first class development environment called Visual Basic Express. (You can read all about it in my complete tutorial - click here.) The bad news is that we're not going to base this tutorial on Microsoft's free system. We're going to assume that you're using Visual Basic version 6.0. More bad news is that it's becoming very difficult to actually buy a new copy of VB 6. Microsoft is doing a pretty good job of exterminating it in the retail market because you simply can't buy it from them anymore. The only copies that are available are left over from years ago. In fact, Microsoft stopped supporting it as a 'Mainstream' product in 2005. &lt;br /&gt;&lt;br /&gt;The reason we're using VB 6.0 is first, to provide a really great VB environment. (Although Microsoft doesn't support it anymore, we do here and it is pretty great.) And second, to provide a tutorial that will match the software that a lot of people still actually use, in spite of Microsoft's position on it. &lt;br /&gt;&lt;br /&gt;For the rest of you, make sure you have VB 6 installed and then start it up! You should see a development environment that looks something like this:  &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Notice that in the previous flowchart, the arrows pointed both ways from the computer to the 'operating system' and 'software libraries'. That is because you can actually make your own software modifications using VB. That's what some of the other icons are for. But for now, click the default "Standard EXE" icon and then click the "Open" button. &lt;br /&gt;&lt;br /&gt;You should now see something that looks like this: &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;There are a lot of display options at this point and you might see other parts of Visual Basic on your computer such as the 'Project Explorer' window ... &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;... the 'Toolbox' ... &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;... or several other things. This leads to the next point. Your VB development environment has a lot of different components and you don't have to know what they all are right away. We're going to keep things as simple as possible and avoid discussing anything that you don't absolutely need. As you gain skill in VB, you'll figure out the new stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-2724210512947416838?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/2724210512947416838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=2724210512947416838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/2724210512947416838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/2724210512947416838'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/learning-visual-basic.html' title='Learning Visual Basic'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-6513056224367967026</id><published>2008-04-10T11:38:00.001-07:00</published><updated>2008-04-10T11:38:40.007-07:00</updated><title type='text'>Microprocessor</title><content type='html'>microprocessor incorporates most or all of the functions of a central processing unit (CPU) on a single integrated circuit (IC). [1] The first microprocessors emerged in the early 1970s and were used for electronic calculators, using BCD arithmetics on 4-bit words. Other embedded uses of 4 and 8-bit microprocessors, such as terminals, printers, various kinds of automation etc, followed rather quickly. Affordable 8-bit microprocessors with 16-bit addressing also led to the first general purpose microcomputers in the mid-1970s.&lt;br /&gt;&lt;br /&gt;Processors were for a long period constructed out of small and medium-scale ICs containing the equivalent of a few to a few hundred transistors. The integration of the whole CPU onto a single VLSI chip therefore greatly reduced the cost of processing capacity. From their humble beginnings, continued increases in microprocessor capacity have rendered other forms of computers almost completely obsolete (see history of computing hardware), with one or more microprocessor as processing element in everything from the smallest embedded systems and handheld devices to the largest mainframes and super computers.&lt;br /&gt;&lt;br /&gt;Since the early 1970s, the increase in processing capacity of evolving microprocessors has been known to generally follow Moore's Law. It suggests that the complexity of an integrated circuit, with respect to minimum component cost, doubles every 18 months. In the late 1990s, heat generation (TDP), due to current leakage and other factors, emerged as a leading developmental constraint&lt;br /&gt;First types&lt;br /&gt; &lt;br /&gt;The 4004 with cover removed (left) and as actually used (right).Three projects arguably delivered a complete microprocessor at about the same time, namely Intel's 4004, the Texas Instruments (TI) TMS 1000, and Garrett AiResearch's Central Air Data Computer (CADC).&lt;br /&gt;&lt;br /&gt;In 1968, Garrett AiResearch, with designer Ray Holt and Steve Geller, were invited to produce a digital computer to compete with electromechanical systems then under development for the main flight control computer in the US Navy's new F-14 Tomcat fighter. The design was complete by 1970, and used a MOS-based chipset as the core CPU. The design was significantly (approximately 20 times) smaller and much more reliable than the mechanical systems it competed against, and was used in all of the early Tomcat models. This system contained a "a 20-bit, pipelined, parallel multi-microprocessor". However, the system was considered so advanced that the Navy refused to allow publication of the design until 1997. For this reason the CADC, and the MP944 chipset it used, are fairly unknown even today. (see First Microprocessor Chip Set.) TI developed the 4-bit TMS 1000, and stressed pre-programmed embedded applications, introducing a version called the TMS1802NC on September 17, 1971, which implemented a calculator on a chip. The Intel chip was the 4-bit 4004, released on November 15, 1971, developed by Federico Faggin and Marcian Hoff, the manager of the designing team was Leslie L. Vadász.&lt;br /&gt;&lt;br /&gt;TI filed for the patent on the microprocessor. Gary Boone was awarded U.S. Patent 3,757,306  for the single-chip microprocessor architecture on September 4, 1973. It may never be known which company actually had the first working microprocessor running on the lab bench. In both 1971 and 1976, Intel and TI entered into broad patent cross-licensing agreements, with Intel paying royalties to TI for the microprocessor patent. A nice history of these events is contained in court documentation from a legal dispute between Cyrix and Intel, with TI as intervenor and owner of the microprocessor patent.&lt;br /&gt;&lt;br /&gt;Interestingly, a third party (Gilbert Hyatt) was awarded a patent which might cover the "microprocessor". See a webpage claiming an invention pre-dating both TI and Intel, describing a "microcontroller". According to a rebuttal and a commentary, the patent was later invalidated, but not before substantial royalties were paid out.&lt;br /&gt;&lt;br /&gt;A computer-on-a-chip is a variation of a microprocessor which combines the microprocessor core (CPU), some memory, and I/O (input/output) lines, all on one chip. The computer-on-a-chip patent, called the "microcomputer patent" at the time, U.S. Patent 4,074,351 , was awarded to Gary Boone and Michael J. Cochran of TI. Aside from this patent, the standard meaning of microcomputer is a computer using one or more microprocessors as its CPU(s), while the concept defined in the patent is perhaps more akin to a microcontroller.&lt;br /&gt;&lt;br /&gt;According to A History of Modern Computing, (MIT Press), pp. 220–21, Intel entered into a contract with Computer Terminals Corporation, later called Datapoint, of San Antonio TX, for a chip for a terminal they were designing. Datapoint later decided to use the chip, and Intel marketed it as the 8008 in April, 1972. This was the world's first 8-bit microprocessor. It was the basis for the famous "Mark-8" computer kit advertised in the magazine Radio-Electronics in 1974. The 8008 and its successor, the world-famous 8080, opened up the microprocessor component marketplace.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Notable 8-bit designs&lt;br /&gt;The 4004 was later followed in 1972 by the 8008, the world's first 8-bit microprocessor. These processors are the precursors to the very successful Intel 8080 (1974), Zilog Z80 (1976), and derivative Intel 8-bit processors. The competing Motorola 6800 was released August 1974. Its architecture was cloned and improved in the MOS Technology 6502 in 1975, rivaling the Z80 in popularity during the 1980s.&lt;br /&gt;&lt;br /&gt;Both the Z80 and 6502 concentrated on low overall cost, through a combination of small packaging, simple computer bus requirements, and the inclusion of circuitry that would normally have to be provided in a separate chip (for instance, the Z80 included a memory controller). It was these features that allowed the home computer "revolution" to take off in the early 1980s, eventually delivering such inexpensive machines as the Sinclair ZX-81, which sold for US$99.&lt;br /&gt;&lt;br /&gt;The Western Design Center, Inc. (WDC) introduced the CMOS 65C02 in 1982 and licensed the design to several companies which became the core of the Apple IIc and IIe personal computers, medical implantable grade pacemakers and defibrilators, automotive, industrial and consumer devices.WDC pioneered the licensing of microprocessor technology which was later followed by ARM and other microprocessor Intellectual Property (IP) providers in the 1990’s.&lt;br /&gt;&lt;br /&gt;Motorola trumped the entire 8-bit world by introducing the MC6809 in 1978, arguably one of the most powerful, orthogonal, and clean 8-bit microprocessor designs ever fielded – and also one of the most complex hard-wired logic designs that ever made it into production for any microprocessor. Microcoding replaced hardwired logic at about this point in time for all designs more powerful than the MC6809 – specifically because the design requirements were getting too complex for hardwired logic.&lt;br /&gt;&lt;br /&gt;Another early 8-bit microprocessor was the Signetics 2650, which enjoyed a brief flurry of interest due to its innovative and powerful instruction set architecture.&lt;br /&gt;&lt;br /&gt;A seminal microprocessor in the world of spaceflight was RCA's RCA 1802 (aka CDP1802, RCA COSMAC) (introduced in 1976) which was used in NASA's Voyager and Viking spaceprobes of the 1970s, and onboard the Galileo probe to Jupiter (launched 1989, arrived 1995). RCA COSMAC was the first to implement C-MOS technology. The CDP1802 was used because it could be run at very low power, and because its production process (Silicon on Sapphire) ensured much better protection against cosmic radiation and electrostatic discharges than that of any other processor of the era. Thus, the 1802 is said to be the first radiation-hardened microprocessor.&lt;br /&gt;&lt;br /&gt;The RCA 1802 had what is called a static design, meaning that the clock frequency could be made arbitrarily low, even to 0 Hz, a total stop condition. This let the Voyager/Viking/Galileo spacecraft use minimum electric power for long uneventful stretches of a voyage. Timers and/or sensors would awaken/speed up the processor in time for important tasks, such as navigation updates, attitude control, data acquisition, and radio communication.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] 16-bit designs&lt;br /&gt;The first multi-chip 16-bit microprocessor was the National Semiconductor IMP-16, introduced in early 1973. An 8-bit version of the chipset was introduced in 1974 as the IMP-8. During the same year, National introduced the first 16-bit single-chip microprocessor, the National Semiconductor PACE, which was later followed by an NMOS version, the INS8900.&lt;br /&gt;&lt;br /&gt;Other early multi-chip 16-bit microprocessors include one used by Digital Equipment Corporation (DEC) in the LSI-11 OEM board set and the packaged PDP 11/03 minicomputer, and the Fairchild Semiconductor MicroFlame 9440, both of which were introduced in the 1975 to 1976 timeframe.&lt;br /&gt;&lt;br /&gt;The first single-chip 16-bit microprocessor was TI's TMS 9900, which was also compatible with their TI-990 line of minicomputers. The 9900 was used in the TI 990/4 minicomputer, the TI-99/4A home computer, and the TM990 line of OEM microcomputer boards. The chip was packaged in a large ceramic 64-pin DIP package, while most 8-bit microprocessors such as the Intel 8080 used the more common, smaller, and less expensive plastic 40-pin DIP. A follow-on chip, the TMS 9980, was designed to compete with the Intel 8080, had the full TI 990 16-bit instruction set, used a plastic 40-pin package, moved data 8 bits at a time, but could only address 16 KB. A third chip, the TMS 9995, was a new design. The family later expanded to include the 99105 and 99110.&lt;br /&gt;&lt;br /&gt;The Western Design Center, Inc. (WDC) introduced the CMOS 65816 16-bit upgrade of the WDC CMOS 65C02 in 1984. The 65816 16-bit microprocessor was the core of the Apple IIgs and later the Super Nintendo Entertainment System, making it one of the most popular 16-bit designs of all time.&lt;br /&gt;&lt;br /&gt;Intel followed a different path, having no minicomputers to emulate, and instead "upsized" their 8080 design into the 16-bit Intel 8086, the first member of the x86 family which powers most modern PC type computers. Intel introduced the 8086 as a cost effective way of porting software from the 8080 lines, and succeeded in winning much business on that premise. The 8088, a version of the 8086 that used an external 8-bit data bus, was the microprocessor in the first IBM PC, the model 5150. Following up their 8086 and 8088, Intel released the 80186, 80286 and, in 1985, the 32-bit 80386, cementing their PC market dominance with the processor family's backwards compatibility.&lt;br /&gt;&lt;br /&gt;The integrated microprocessor memory management unit (MMU) was developed by Childs et al. of Intel, and awarded US patent number 4,442,484.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] 32-bit designs&lt;br /&gt; &lt;br /&gt;Upper interconnect layers on an Intel 80486DX2 die.16-bit designs were in the market only briefly when full 32-bit implementations started to appear.&lt;br /&gt;&lt;br /&gt;The most significant of the 32-bit designs is the MC68000, introduced in 1979. The 68K, as it was widely known, had 32-bit registers but used 16-bit internal data paths, and a 16-bit external data bus to reduce pin count, and supported only 24-bit addresses. Motorola generally described it as a 16-bit processor, though it clearly has 32-bit architecture. The combination of high speed, large (16 megabytes (2^24)) memory space and fairly low costs made it the most popular CPU design of its class. The Apple Lisa and Macintosh designs made use of the 68000, as did a host of other designs in the mid-1980s, including the Atari ST and Commodore Amiga.&lt;br /&gt;&lt;br /&gt;The world's first single-chip fully-32-bit microprocessor, with 32-bit data paths, 32-bit buses, and 32-bit addresses, was the AT&amp;T Bell Labs BELLMAC-32A, with first samples in 1980, and general production in 1982 (See this bibliographic reference and this general reference). After the divestiture of AT&amp;T in 1984, it was renamed the WE 32000 (WE for Western Electric), and had two follow-on generations, the WE 32100 and WE 32200. These microprocessors were used in the AT&amp;T 3B5 and 3B15 minicomputers; in the 3B2, the world's first desktop supermicrocomputer; in the "Companion", the world's first 32-bit laptop computer; and in "Alexander", the world's first book-sized supermicrocomputer, featuring ROM-pack memory cartridges similar to today's gaming consoles. All these systems ran the UNIX System V operating system.&lt;br /&gt;&lt;br /&gt;Intel's first 32-bit microprocessor was the iAPX 432, which was introduced in 1981 but was not a commercial success. It had an advanced capability-based object-oriented architecture, but poor performance compared to other competing architectures such as the Motorola 68000.&lt;br /&gt;&lt;br /&gt;Motorola's success with the 68000 led to the MC68010, which added virtual memory support. The MC68020, introduced in 1985 added full 32-bit data and address busses. The 68020 became hugely popular in the Unix supermicrocomputer market, and many small companies (e.g., Altos, Charles River Data Systems) produced desktop-size systems. Following this with the MC68030, which added the MMU into the chip, the 68K family became the processor for everything that wasn't running DOS. The continued success led to the MC68040, which included an FPU for better math performance. A 68050 failed to achieve its performance goals and was not released, and the follow-up MC68060 was released into a market saturated by much faster RISC designs. The 68K family faded from the desktop in the early 1990s.&lt;br /&gt;&lt;br /&gt;Other large companies designed the 68020 and follow-ons into embedded equipment. At one point, there were more 68020s in embedded equipment than there were Intel Pentiums in PCs (See this webpage for this embedded usage information). The ColdFire processor cores are derivatives of the venerable 68020.&lt;br /&gt;&lt;br /&gt;During this time (early to mid 1980s), National Semiconductor introduced a very similar 16-bit pinout, 32-bit internal microprocessor called the NS 16032 (later renamed 32016), the full 32-bit version named the NS 32032, and a line of 32-bit industrial OEM microcomputers. By the mid-1980s, Sequent introduced the first symmetric multiprocessor (SMP) server-class computer using the NS 32032. This was one of the design's few wins, and it disappeared in the late 1980s.&lt;br /&gt;&lt;br /&gt;The MIPS R2000 (1984) and R3000 (1989) were highly successful 32-bit RISC microprocessors. They were used in high-end workstations and servers by SGI, among others.&lt;br /&gt;&lt;br /&gt;Other designs included the interesting Zilog Z8000, which arrived too late to market to stand a chance and disappeared quickly.&lt;br /&gt;&lt;br /&gt;In the late 1980s, "microprocessor wars" started killing off some of the microprocessors. Apparently, with only one major design win, Sequent, the NS 32032 just faded out of existence, and Sequent switched to Intel microprocessors.&lt;br /&gt;&lt;br /&gt;From 1985 to 2003, the 32-bit x86 architectures became increasingly dominant in desktop, laptop, and server markets, and these microprocessors became faster and more capable. Intel had licensed early versions of the architecture to other companies, but declined to license the Pentium, so AMD and Cyrix built later versions of the architecture based on their own designs. During this span, these processors increased in complexity (transistor count) and capability (instructions/second) by at least a factor of 1000. Intel's Pentium line is probably the most famous and recognizable 32-bit processor model, at least with the public at large.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] 64-bit designs in personal computers&lt;br /&gt;While 64-bit microprocessor designs have been in use in several markets since the early 1990s, the early 2000s saw the introduction of 64-bit microchips targeted at the PC market.&lt;br /&gt;&lt;br /&gt;With AMD's introduction of the first 64-bit IA-32 backwards-compatible architecture, AMD64, in September 2003, followed by Intel's own x86-64 chips, the 64-bit desktop era began. Both processors can run 32-bit legacy apps as well as the new 64-bit software. With operating systems Windows XP x64, Windows Vista x64, Linux and Mac OS X that run 64-bit native, the software too is geared to utilize the full power of such processors. The move to 64 bits is more than just an increase in register size from the IA-32 as it also doubles the number of general-purpose registers for the aging CISC designs.&lt;br /&gt;&lt;br /&gt;The move to 64 bits by PowerPC processors had been intended since the processors' design in the early 90s and was not a major cause of incompatibility. Existing integer registers are extended as are all related data pathways, but, as was the case with IA-32, both floating point and vector units had been operating at or above 64 bits for several years. Unlike what happened with IA-32 was extended to x86-64, no new general purpose registers were added in 64-bit PowerPC, so any performance gained when using the 64-bit mode for applications making no use of the larger address space is minimal.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Multicore designs&lt;br /&gt; &lt;br /&gt;AMD Athlon 64 X2 3600 Dual core processorMain article: Multi-core (computing)&lt;br /&gt;A different approach to improving a computer's performance is to add extra processors, as in symmetric multiprocessing designs which have been popular in servers and workstations since the early 1990s. Keeping up with Moore's Law is becoming increasingly challenging as chip-making technologies approach the physical limits of the technology.&lt;br /&gt;&lt;br /&gt;In response, the microprocessor manufacturers look for other ways to improve performance, in order to hold on to the momentum of constant upgrades in the market.&lt;br /&gt;&lt;br /&gt;A multi-core processor is simply a single chip containing more than one microprocessor core, effectively multiplying the potential performance with the number of cores (as long as the operating system and software is designed to take advantage of more than one processor). Some components, such as bus interface and second level cache, may be shared between cores. Because the cores are physically very close they interface at much faster clock speeds compared to discrete multiprocessor systems, improving overall system performance.&lt;br /&gt;&lt;br /&gt;In 2005, the first mass-market dual-core processors were announced and as of 2007 dual-core processors are widely used in servers, workstations and PCs while quad-core processors are now available for high-end applications in both the home and professional environments.&lt;br /&gt;&lt;br /&gt;Sun Microsystems has released the Niagara and Niagara 2 chips, both of which feature an eight-core design. The Niagara 2 supports more threads and operates at 1.6 GHz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] RISC&lt;br /&gt;In the mid-1980s to early-1990s, a crop of new high-performance RISC (reduced instruction set computer) microprocessors appeared, which were initially used in special purpose machines and Unix workstations, but then gained wide acceptance in other roles.&lt;br /&gt;&lt;br /&gt;The first commercial design was released by MIPS Technologies, the 32-bit R2000 (the R1000 was not released). The R3000 made the design truly practical, and the R4000 introduced the world's first 64-bit design. Competing projects would result in the IBM POWER and Sun SPARC systems, respectively. Soon every major vendor was releasing a RISC design, including the AT&amp;T CRISP, AMD 29000, Intel i860 and Intel i960, Motorola 88000, DEC Alpha and the HP-PA.&lt;br /&gt;&lt;br /&gt;Market forces have "weeded out" many of these designs, with almost no desktop or laptop RISC processors and with the SPARC being used in Sun designs only. MIPS is primarily used in embedded systems, notably in Cisco routers. The rest of the original crop of designs have disappeared. Other companies have attacked niches in the market, notably ARM, originally intended for home computer use but since focussed on the embedded processor market. Today RISC designs based on the MIPS, ARM or PowerPC core power the vast majority of computing devices.&lt;br /&gt;&lt;br /&gt;As of 2007, two 64-bit RISC architectures are still produced in volume: SPARC and Power Architecture. The RISC-like Itanium is produced in smaller quantities. The vast majority of 64-bit microprocessors are now x86-64 CISC designs from AMD and Intel.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Special-purpose designs&lt;br /&gt;Though the term "microprocessor" has traditionally referred to a single- or multi-chip CPU or system-on-a-chip (SoC), several types of specialized processing devices have followed from the technology. The most common examples are microcontrollers, digital signal processors (DSP) and graphics processing units (GPU). Many examples of these are either not programmable, or have limited programming facilities. For example, in general GPUs through the 1990s were mostly non-programmable and have only recently gained limited facilities like programmable vertex shaders. There is no universal consensus on what defines a "microprocessor", but it is usually safe to assume that the term refers to a general-purpose CPU of some sort and not a special-purpose processor unless specifically noted.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Market statistics&lt;br /&gt;In 2003, about $44 billion (USD) worth of microprocessors were manufactured and sold. [1] Although about half of that money was spent on CPUs used in desktop or laptop personal computers, those count for only about 0.2% of all CPUs sold.&lt;br /&gt;&lt;br /&gt;Silicon Valley has an old saying: "The first chip costs a million dollars; the second one costs a nickel." In other words, most of the cost is in the design and the manufacturing setup: once manufacturing is underway, it costs almost nothing.[citation needed]&lt;br /&gt;&lt;br /&gt;About 55% of all CPUs sold in the world are 8-bit microcontrollers. Over 2 billion 8-bit microcontrollers were sold in 1997. [2]&lt;br /&gt;&lt;br /&gt;Less than 10% of all the CPUs sold in the world are 32-bit or more. Of all the 32-bit CPUs sold, about 2% are used in desktop or laptop personal computers, the rest are sold in household appliances such as toasters, microwaves, vacuum cleaners and televisions. "Taken as a whole, the average price for a microprocessor, microcontroller, or DSP is just over $6."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-6513056224367967026?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/6513056224367967026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=6513056224367967026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6513056224367967026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6513056224367967026'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/microprocessor.html' title='Microprocessor'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-1975678741812982732</id><published>2008-04-10T11:36:00.001-07:00</published><updated>2008-04-26T19:32:30.299-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU design'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>CPU design</title><content type='html'>Overview&lt;br /&gt;CPU design focuses on these areas:&lt;br /&gt;&lt;br /&gt;datapaths (such as ALUs and pipelines) &lt;br /&gt;control unit: logic which controls the datapaths &lt;br /&gt;Memory components such as register files, caches &lt;br /&gt;Clock circuitry such as clock drivers, PLLs, clock distribution networks &lt;br /&gt;Pad transceiver circuitry &lt;br /&gt;Logic gate cell library which is used to implement the logic &lt;br /&gt;CPUs designed for high performance markets might require custom designs for each of these items to achieve frequency, power-dissipation, and chip-area goals.&lt;br /&gt;&lt;br /&gt;CPUs designed for lower performance markets might lessen the implementation burden by:&lt;br /&gt;&lt;br /&gt;acquiring some of these items by purchasing them as intellectual property &lt;br /&gt;use control logic implementation techniques (logic synthesis using CAD tools) to implement the other components - datapaths, register files, clocks &lt;br /&gt;Common logic styles used in CPU design include:&lt;br /&gt;&lt;br /&gt;unstructured random logic &lt;br /&gt;finite state machines &lt;br /&gt;microprogramming (common from 1965 to 1985, no longer common except for CISC CPUs) &lt;br /&gt;programmable logic array (common in the 1980s, no longer common) &lt;br /&gt;Device types used to implement the logic include:&lt;br /&gt;&lt;br /&gt;Transistor-transistor logic Small Scale Integration jelly-bean logic chips - no longer used for CPUs &lt;br /&gt;Programmable Array Logic and Programmable logic devices - no longer used for CPUs &lt;br /&gt;Emitter Coupled Logic gate arrays - no longer common &lt;br /&gt;CMOS gate arrays - no longer used for CPUs &lt;br /&gt;CMOS ASICs - what's commonly used today, they're so common that the term ASIC is not used for CPUs &lt;br /&gt;Field Programmable Gate Arrays - common for soft microprocessors, and more or less required for reconfigurable computing &lt;br /&gt;A CPU design project generally has these major tasks:&lt;br /&gt;&lt;br /&gt;programmer-visible instruction set architecture, which can be implemented by a variety of microarchitectures &lt;br /&gt;architectural study and performance modeling &lt;br /&gt;RTL (eg. logic) design and verification &lt;br /&gt;circuit design of speed critical components (caches, registers, ALUs) &lt;br /&gt;logic synthesis or logic-gate-level design &lt;br /&gt;timing analysis to confirm that all logic and circuits will run at the specified operating frequency &lt;br /&gt;physical design including floorplanning, place and route of logic gates &lt;br /&gt;checking that RTL, gate-level, transistor-level and physical-level representatations are equivalent &lt;br /&gt;checks for signal integrity, chip manufacturability &lt;br /&gt;As with most complex electronic designs, the logic verification effort (proving that the design does not have bugs) now dominates the project schedule of a CPU.&lt;br /&gt;&lt;br /&gt;Key CPU architectural innovations include cache, virtual memory, instruction pipelining, superscalar, CISC, RISC, virtual machine, emulators, microprogram, and stack.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Goals&lt;br /&gt;The first CPUs were designed to do mathematical calculations faster and more reliably than human computers.&lt;br /&gt;&lt;br /&gt;Each successive generation of CPU might be designed to achieve some of these goals:&lt;br /&gt;&lt;br /&gt;higher performance levels of a single program or thread &lt;br /&gt;higher throughput levels of multiple programs/threads &lt;br /&gt;less power consumption for the same performance level &lt;br /&gt;lower cost for the same performance level &lt;br /&gt;greater connectivity to build larger, more parallel systems &lt;br /&gt;more specialization to aid in specific targeted markets &lt;br /&gt;Re-designing a CPU core to a smaller die-area helps achieve several of these goals.&lt;br /&gt;&lt;br /&gt;Shrinking everything (a "photomask shrink"), resulting in the same number of transistors on a smaller die, improves performance (smaller transistors switch faster), reduces power (smaller wires have less parasitic capacitance) and reduces cost (more CPUs fit on the same wafer of silicon). &lt;br /&gt;Releasing a CPU on the same size die, but with a smaller CPU core, keeps the cost about the same but allows higher levels of integration within one VLSI chip (additional cache, multiple CPUs, or other components), improving performance and reducing overall system cost. &lt;br /&gt;&lt;br /&gt; Performance analysis and benchmarking&lt;br /&gt;Main article: Computer performance&lt;br /&gt;Because there are too many programs to test a CPU's speed on all of them, benchmarks were developed. The most famous benchmarks are the SPECint and SPECfp benchmarks developed by Standard Performance Evaluation Corporation and the ConsumerMark benchmark developed by the Embedded Microprocessor Benchmark Consortium EEMBC.&lt;br /&gt;&lt;br /&gt;Some important measurements include:&lt;br /&gt;&lt;br /&gt;Instructions per second - Most consumers pick a computer architecture (normally Intel IA32 architecture) to be able to run a large base of pre-existing pre-compiled software. Being relatively uninformed on computer benchmarks, some of them pick a particular CPU based on operating frequency (see Megahertz Myth). &lt;br /&gt;FLOPS - The number of floating point operations per second is often important in selecting computers for scientific computations. &lt;br /&gt;Performance per watt - System designers building parallel computers, such as Google, pick CPUs based on their speed per watt of power, because the cost of powering the CPU outweighs the cost of the CPU itself. [1][2] &lt;br /&gt;Some system designers building parallel computers pick CPUs based on the speed per dollar. &lt;br /&gt;System designers building real-time computing systems want to guarantee worst-case response. That is easier to do when the CPU has low interrupt latency and when it has deterministic response. (DSP) &lt;br /&gt;Computer programmers who program directly in assembly language want a CPU to support a full featured instruction set. &lt;br /&gt;Low power - For systems with limited power sources (e.g. solar, batteries, human power). &lt;br /&gt;Small size or low weight - for portable embedded systems, systems for spacecraft. &lt;br /&gt;Environmental impact - Minimizing environmental impact of computers during manufacturing and recycling as well during use. Reducing waste, reducing hazardous materials. (see Green computing). &lt;br /&gt;&lt;br /&gt;Some of these measures conflict. In particular, many design techniques that make CPU run faster make the "performance per watt", "performance per dollar", and "deterministic response" much worse, and vice versa.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Markets&lt;br /&gt;There are several different markets in which CPUs are used. Since each of these markets differ in their requirements for CPUs, the devices designed for one market are in most cases inappropriate for the other markets.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; General purpose computing&lt;br /&gt;The vast majority of revenues generated from CPU sales is for general purpose computing. That is, desktop, laptop and server computers commonly used in businesses and homes. In this market, the Intel IA-32 architecture dominates, with its rivals PowerPC and SPARC maintaining much smaller customer bases. Yearly, hundreds of millions of IA-32 architecture CPUs are used by this market.&lt;br /&gt;&lt;br /&gt;Since these devices are used to run countless different types of programs, these CPU designs are not specifically targeted at one type of application or one function. The demands of being able to run a wide range of programs efficiently has made these CPU designs among the more advanced technically, along with some disadvantages of being relatively costly, and having high power consumption.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; High-end processor economics&lt;br /&gt;Developing new, high-end CPUs is a very costly proposition. Both the logical complexity (needing very large logic design and logic verification teams and simulation farms with perhaps thousands of computers) and the high operating frequencies (needing large circuit design teams and access to the state-of-the-art fabrication process) account for the high cost of design for this type of chip. The design cost of a high-end CPU will be on the order of US $100 million. Since the design of such high-end chips nominally takes about five years to complete, to stay competitive a company has to fund at least two of these large design teams to release products at the rate of 2.5 years per product generation.&lt;br /&gt;&lt;br /&gt;As an example, the typical loaded cost for one computer engineer is often quoted to be $250,000 US dollars/year. This includes salary, benefits, CAD tools, computers, office space rent, etc. Assuming that 100 engineers are needed to design a CPU and the project takes 4 years.&lt;br /&gt;&lt;br /&gt;Total cost = $250,000/engineer-man_year X 100 engineers X 4 years = $100,000,000 US dollars.&lt;br /&gt;&lt;br /&gt;The above amount is just an example. The design teams for modern day general purpose CPUs have several hundred team members.&lt;br /&gt;&lt;br /&gt;Only the personal computer mass market (with production rates in the hundreds of millions, producing billions of dollars in revenue) can support such a large design and implementation teams.[citation needed] As of 2004, only four companies are actively designing and fabricating state of the art general purpose computing CPU chips: Intel, AMD, IBM and Fujitsu.[citation needed] Motorola has spun off its semiconductor division as Freescale as that division was dragging down profit margins for the rest of the company. Texas Instruments, TSMC and Toshiba are a few examples of a companies doing manufacturing for another company's CPU chip design.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Scientific computing&lt;br /&gt;A much smaller niche market (in revenue and units shipped) is scientific computing, used in government research labs and universities. Previously much CPU design was done for this market, but the cost-effectiveness of using mass markets CPUs has curtailed almost all specialized designs for this market. The main remaining area of active hardware design and research for scientific computing is for high-speed system interconnects.&lt;br /&gt;&lt;br /&gt;See main article Supercomputers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Embedded design&lt;br /&gt;As measured by units shipped, most CPUs are embedded in other machinery, such as telephones, clocks, appliances, vehicles, and infrastructure. Embedded processors sell in the volume of many billions of units per year, however, mostly at much lower price points than that of the general purpose processors.&lt;br /&gt;&lt;br /&gt;These single-function devices differ from the more familiar general-purpose CPUs in several ways:&lt;br /&gt;&lt;br /&gt;Low cost is of utmost importance. &lt;br /&gt;Power dissipation is highly important as most embedded systems do not allow for fans. &lt;br /&gt;To give lower system cost, peripherals are integrated with the processor on the same silicon chip. &lt;br /&gt;The program and data memories are often integrated on the same chip. When the only allowed program memory is ROM, the device is known as a microcontroller. &lt;br /&gt;Interrupt latency is more important to these embedded devices and their associated functions than to more general-purpose processors. &lt;br /&gt;Embedded Devices must be in production (or have stockpiles that can last) for long amounts of time, perhaps for a decade. Any particular version of desktop computing CPUs rarely stay in production for more than two years due to the rapid pace of progress. &lt;br /&gt;&lt;br /&gt;See main articles microcontroller and system-on-a-chip.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Soft microprocessor cores&lt;br /&gt;For embedded systems, the highest performance levels are often not needed or desired due to the power consumption requirements. This allows for the use of processors which can be totally implemented by logic synthesis techniques. These synthesized processors can be implemented in a much shorter amount of time, giving quicker time-to-market.&lt;br /&gt;&lt;br /&gt;Main article: Soft microprocessor&lt;br /&gt;&lt;br /&gt;Micro-architectural concepts&lt;br /&gt;See main article Microarchitecture.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Research Topics&lt;br /&gt;&lt;br /&gt;[edit] Optical communication&lt;br /&gt;One interesting possibility would be to eliminate the front side bus. Modern vertical laser diodes enable this change. In theory, an optical computer's components could directly connect through a holographic or phased open-air switching system. This would provide a large increase in effective speed and design flexibility, and a large reduction in cost. Since a computer's connectors are also its most likely failure point, a busless system might be more reliable, as well.&lt;br /&gt;&lt;br /&gt; Optical processors&lt;br /&gt;Another farther-term possibility is to use light instead of electricity for the digital logic itself. In theory, this could run about 30% faster and use less power, as well as permit a direct interface with quantum computational devices. The chief problem with this approach is that for the foreseeable future, electronic devices are faster, smaller (i.e. cheaper) and more reliable. An important theoretical problem is that electronic computational elements are already smaller than some wavelengths of light, and therefore even wave-guide based optical logic may be uneconomic compared to electronic logic. The majority of development effort, as of 2006 is focused on electronic circuitry. See also optical computing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Clockless CPUs&lt;br /&gt;Yet another possibility is the "clockless CPU" (asynchronous CPU). Unlike conventional processors, clockless processors have no central clock to coordinate the progress of data through the pipeline. Instead, stages of the CPU are coordinated using logic devices called "pipe line controls" or "FIFO sequencers." Basically, the pipeline controller clocks the next stage of logic when the existing stage is complete. In this way, a central clock is unnecessary.&lt;br /&gt;&lt;br /&gt;It might be easier implement high performance devices in asynchronous logic as opposed to clocked logic:&lt;br /&gt;&lt;br /&gt;components can run at different speeds in the clockless CPU. In a clocked CPU, no component can run faster than the clock rate. &lt;br /&gt;In a clocked CPU, the clock can go no faster than the worst-case performance of the slowest stage. In a clockless CPU, when a stage finishes faster than normal, the next stage can immediately take the results rather than waiting for the next clock tick. A stage might finish faster than normal because of the particular data inputs (multiplication can be very fast if it is multiplying by 0 or 1), or because it is running at a higher voltage or lower temperature than normal. &lt;br /&gt;Asynchronous logic proponents believe these capabilities would have these benefits:&lt;br /&gt;&lt;br /&gt;lower power dissipation for a given performance level &lt;br /&gt;highest possible execution speeds &lt;br /&gt;Two examples of asynchronous CPUs are the ARM-implementing AMULET and the asynchronous implementation of MIPS R3000, dubbed MiniMIPS.&lt;br /&gt;&lt;br /&gt;The biggest disadvantage of the clockless CPU is that most CPU design tools assume a clocked CPU (a synchronous circuit), so making a clockless CPU (designing an asynchronous circuit) involves modifying the design tools to handle clockless logic and doing extra testing to ensure the design avoids metastable problems. For example, the group that designs the aforementioned AMULET developed a tool called LARD to cope with the complex design of AMULET3.&lt;br /&gt;&lt;br /&gt;Another disadvantage is the overhead needed for handshaking signals&lt;br /&gt;&lt;br /&gt;A smaller disadvantage is how these devices would operate with Automated Test Equipment chip testers that are more geared for synchronous behavior.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; intelligent RAM&lt;br /&gt;One way to work around the von Neumann bottleneck is to mix the a processor and DRAM all one one chip.&lt;br /&gt;&lt;br /&gt;The Berkeley Intelligent RAM (IRAM) project [3] &lt;br /&gt;eDRAM &lt;br /&gt;&lt;br /&gt;[edit] References&lt;br /&gt;Hwang, Enoch (2006). Digital Logic and Microprocessor Design with VHDL. Thomson. ISBN 0-534-46593-5.  &lt;br /&gt;Processor Design: An Introduction - Detailed introduction to microprocessor design. Somewhat incomplete and outdated, but still worthwhile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-1975678741812982732?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/1975678741812982732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=1975678741812982732' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1975678741812982732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1975678741812982732'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/cpu-design_10.html' title='CPU design'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-1687273989847679615</id><published>2008-04-10T11:36:00.000-07:00</published><updated>2008-04-26T19:28:06.559-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU design'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>CPU design</title><content type='html'>Overview&lt;br /&gt;CPU design focuses on these areas:&lt;br /&gt;&lt;br /&gt;datapaths (such as ALUs and pipelines) &lt;br /&gt;control unit: logic which controls the datapaths &lt;br /&gt;Memory components such as register files, caches &lt;br /&gt;Clock circuitry such as clock drivers, PLLs, clock distribution networks &lt;br /&gt;Pad transceiver circuitry &lt;br /&gt;Logic gate cell library which is used to implement the logic &lt;br /&gt;CPUs designed for high performance markets might require custom designs for each of these items to achieve frequency, power-dissipation, and chip-area goals.&lt;br /&gt;&lt;br /&gt;CPUs designed for lower performance markets might lessen the implementation burden by:&lt;br /&gt;&lt;br /&gt;acquiring some of these items by purchasing them as intellectual property &lt;br /&gt;use control logic implementation techniques (logic synthesis using CAD tools) to implement the other components - datapaths, register files, clocks &lt;br /&gt;Common logic styles used in CPU design include:&lt;br /&gt;&lt;br /&gt;unstructured random logic &lt;br /&gt;finite state machines &lt;br /&gt;microprogramming (common from 1965 to 1985, no longer common except for CISC CPUs) &lt;br /&gt;programmable logic array (common in the 1980s, no longer common) &lt;br /&gt;Device types used to implement the logic include:&lt;br /&gt;&lt;br /&gt;Transistor-transistor logic Small Scale Integration jelly-bean logic chips - no longer used for CPUs &lt;br /&gt;Programmable Array Logic and Programmable logic devices - no longer used for CPUs &lt;br /&gt;Emitter Coupled Logic gate arrays - no longer common &lt;br /&gt;CMOS gate arrays - no longer used for CPUs &lt;br /&gt;CMOS ASICs - what's commonly used today, they're so common that the term ASIC is not used for CPUs &lt;br /&gt;Field Programmable Gate Arrays - common for soft microprocessors, and more or less required for reconfigurable computing &lt;br /&gt;A CPU design project generally has these major tasks:&lt;br /&gt;&lt;br /&gt;programmer-visible instruction set architecture, which can be implemented by a variety of microarchitectures &lt;br /&gt;architectural study and performance modeling &lt;br /&gt;RTL (eg. logic) design and verification &lt;br /&gt;circuit design of speed critical components (caches, registers, ALUs) &lt;br /&gt;logic synthesis or logic-gate-level design &lt;br /&gt;timing analysis to confirm that all logic and circuits will run at the specified operating frequency &lt;br /&gt;physical design including floorplanning, place and route of logic gates &lt;br /&gt;checking that RTL, gate-level, transistor-level and physical-level representatations are equivalent &lt;br /&gt;checks for signal integrity, chip manufacturability &lt;br /&gt;As with most complex electronic designs, the logic verification effort (proving that the design does not have bugs) now dominates the project schedule of a CPU.&lt;br /&gt;&lt;br /&gt;Key CPU architectural innovations include cache, virtual memory, instruction pipelining, superscalar, CISC, RISC, virtual machine, emulators, microprogram, and stack.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Goals&lt;br /&gt;The first CPUs were designed to do mathematical calculations faster and more reliably than human computers.&lt;br /&gt;&lt;br /&gt;Each successive generation of CPU might be designed to achieve some of these goals:&lt;br /&gt;&lt;br /&gt;higher performance levels of a single program or thread &lt;br /&gt;higher throughput levels of multiple programs/threads &lt;br /&gt;less power consumption for the same performance level &lt;br /&gt;lower cost for the same performance level &lt;br /&gt;greater connectivity to build larger, more parallel systems &lt;br /&gt;more specialization to aid in specific targeted markets &lt;br /&gt;Re-designing a CPU core to a smaller die-area helps achieve several of these goals.&lt;br /&gt;&lt;br /&gt;Shrinking everything (a "photomask shrink"), resulting in the same number of transistors on a smaller die, improves performance (smaller transistors switch faster), reduces power (smaller wires have less parasitic capacitance) and reduces cost (more CPUs fit on the same wafer of silicon). &lt;br /&gt;Releasing a CPU on the same size die, but with a smaller CPU core, keeps the cost about the same but allows higher levels of integration within one VLSI chip (additional cache, multiple CPUs, or other components), improving performance and reducing overall system cost. &lt;br /&gt;&lt;br /&gt; Performance analysis and benchmarking&lt;br /&gt;Main article: Computer performance&lt;br /&gt;Because there are too many programs to test a CPU's speed on all of them, benchmarks were developed. The most famous benchmarks are the SPECint and SPECfp benchmarks developed by Standard Performance Evaluation Corporation and the ConsumerMark benchmark developed by the Embedded Microprocessor Benchmark Consortium EEMBC.&lt;br /&gt;&lt;br /&gt;Some important measurements include:&lt;br /&gt;&lt;br /&gt;Instructions per second - Most consumers pick a computer architecture (normally Intel IA32 architecture) to be able to run a large base of pre-existing pre-compiled software. Being relatively uninformed on computer benchmarks, some of them pick a particular CPU based on operating frequency (see Megahertz Myth). &lt;br /&gt;FLOPS - The number of floating point operations per second is often important in selecting computers for scientific computations. &lt;br /&gt;Performance per watt - System designers building parallel computers, such as Google, pick CPUs based on their speed per watt of power, because the cost of powering the CPU outweighs the cost of the CPU itself. [1][2] &lt;br /&gt;Some system designers building parallel computers pick CPUs based on the speed per dollar. &lt;br /&gt;System designers building real-time computing systems want to guarantee worst-case response. That is easier to do when the CPU has low interrupt latency and when it has deterministic response. (DSP) &lt;br /&gt;Computer programmers who program directly in assembly language want a CPU to support a full featured instruction set. &lt;br /&gt;Low power - For systems with limited power sources (e.g. solar, batteries, human power). &lt;br /&gt;Small size or low weight - for portable embedded systems, systems for spacecraft. &lt;br /&gt;Environmental impact - Minimizing environmental impact of computers during manufacturing and recycling as well during use. Reducing waste, reducing hazardous materials. (see Green computing). &lt;br /&gt;&lt;br /&gt;Some of these measures conflict. In particular, many design techniques that make CPU run faster make the "performance per watt", "performance per dollar", and "deterministic response" much worse, and vice versa.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Markets&lt;br /&gt;There are several different markets in which CPUs are used. Since each of these markets differ in their requirements for CPUs, the devices designed for one market are in most cases inappropriate for the other markets.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; General purpose computing&lt;br /&gt;The vast majority of revenues generated from CPU sales is for general purpose computing. That is, desktop, laptop and server computers commonly used in businesses and homes. In this market, the Intel IA-32 architecture dominates, with its rivals PowerPC and SPARC maintaining much smaller customer bases. Yearly, hundreds of millions of IA-32 architecture CPUs are used by this market.&lt;br /&gt;&lt;br /&gt;Since these devices are used to run countless different types of programs, these CPU designs are not specifically targeted at one type of application or one function. The demands of being able to run a wide range of programs efficiently has made these CPU designs among the more advanced technically, along with some disadvantages of being relatively costly, and having high power consumption.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; High-end processor economics&lt;br /&gt;Developing new, high-end CPUs is a very costly proposition. Both the logical complexity (needing very large logic design and logic verification teams and simulation farms with perhaps thousands of computers) and the high operating frequencies (needing large circuit design teams and access to the state-of-the-art fabrication process) account for the high cost of design for this type of chip. The design cost of a high-end CPU will be on the order of US $100 million. Since the design of such high-end chips nominally takes about five years to complete, to stay competitive a company has to fund at least two of these large design teams to release products at the rate of 2.5 years per product generation.&lt;br /&gt;&lt;br /&gt;As an example, the typical loaded cost for one computer engineer is often quoted to be $250,000 US dollars/year. This includes salary, benefits, CAD tools, computers, office space rent, etc. Assuming that 100 engineers are needed to design a CPU and the project takes 4 years.&lt;br /&gt;&lt;br /&gt;Total cost = $250,000/engineer-man_year X 100 engineers X 4 years = $100,000,000 US dollars.&lt;br /&gt;&lt;br /&gt;The above amount is just an example. The design teams for modern day general purpose CPUs have several hundred team members.&lt;br /&gt;&lt;br /&gt;Only the personal computer mass market (with production rates in the hundreds of millions, producing billions of dollars in revenue) can support such a large design and implementation teams.[citation needed] As of 2004, only four companies are actively designing and fabricating state of the art general purpose computing CPU chips: Intel, AMD, IBM and Fujitsu.[citation needed] Motorola has spun off its semiconductor division as Freescale as that division was dragging down profit margins for the rest of the company. Texas Instruments, TSMC and Toshiba are a few examples of a companies doing manufacturing for another company's CPU chip design.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Scientific computing&lt;br /&gt;A much smaller niche market (in revenue and units shipped) is scientific computing, used in government research labs and universities. Previously much CPU design was done for this market, but the cost-effectiveness of using mass markets CPUs has curtailed almost all specialized designs for this market. The main remaining area of active hardware design and research for scientific computing is for high-speed system interconnects.&lt;br /&gt;&lt;br /&gt;See main article Supercomputers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Embedded design&lt;br /&gt;As measured by units shipped, most CPUs are embedded in other machinery, such as telephones, clocks, appliances, vehicles, and infrastructure. Embedded processors sell in the volume of many billions of units per year, however, mostly at much lower price points than that of the general purpose processors.&lt;br /&gt;&lt;br /&gt;These single-function devices differ from the more familiar general-purpose CPUs in several ways:&lt;br /&gt;&lt;br /&gt;Low cost is of utmost importance. &lt;br /&gt;Power dissipation is highly important as most embedded systems do not allow for fans. &lt;br /&gt;To give lower system cost, peripherals are integrated with the processor on the same silicon chip. &lt;br /&gt;The program and data memories are often integrated on the same chip. When the only allowed program memory is ROM, the device is known as a microcontroller. &lt;br /&gt;Interrupt latency is more important to these embedded devices and their associated functions than to more general-purpose processors. &lt;br /&gt;Embedded Devices must be in production (or have stockpiles that can last) for long amounts of time, perhaps for a decade. Any particular version of desktop computing CPUs rarely stay in production for more than two years due to the rapid pace of progress. &lt;br /&gt;&lt;br /&gt;See main articles microcontroller and system-on-a-chip.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Soft microprocessor cores&lt;br /&gt;For embedded systems, the highest performance levels are often not needed or desired due to the power consumption requirements. This allows for the use of processors which can be totally implemented by logic synthesis techniques. These synthesized processors can be implemented in a much shorter amount of time, giving quicker time-to-market.&lt;br /&gt;&lt;br /&gt;Main article: Soft microprocessor&lt;br /&gt;&lt;br /&gt;Micro-architectural concepts&lt;br /&gt;See main article Microarchitecture.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Research Topics&lt;br /&gt;&lt;br /&gt;[edit] Optical communication&lt;br /&gt;One interesting possibility would be to eliminate the front side bus. Modern vertical laser diodes enable this change. In theory, an optical computer's components could directly connect through a holographic or phased open-air switching system. This would provide a large increase in effective speed and design flexibility, and a large reduction in cost. Since a computer's connectors are also its most likely failure point, a busless system might be more reliable, as well.&lt;br /&gt;&lt;br /&gt; Optical processors&lt;br /&gt;Another farther-term possibility is to use light instead of electricity for the digital logic itself. In theory, this could run about 30% faster and use less power, as well as permit a direct interface with quantum computational devices. The chief problem with this approach is that for the foreseeable future, electronic devices are faster, smaller (i.e. cheaper) and more reliable. An important theoretical problem is that electronic computational elements are already smaller than some wavelengths of light, and therefore even wave-guide based optical logic may be uneconomic compared to electronic logic. The majority of development effort, as of 2006 is focused on electronic circuitry. See also optical computing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Clockless CPUs&lt;br /&gt;Yet another possibility is the "clockless CPU" (asynchronous CPU). Unlike conventional processors, clockless processors have no central clock to coordinate the progress of data through the pipeline. Instead, stages of the CPU are coordinated using logic devices called "pipe line controls" or "FIFO sequencers." Basically, the pipeline controller clocks the next stage of logic when the existing stage is complete. In this way, a central clock is unnecessary.&lt;br /&gt;&lt;br /&gt;It might be easier implement high performance devices in asynchronous logic as opposed to clocked logic:&lt;br /&gt;&lt;br /&gt;components can run at different speeds in the clockless CPU. In a clocked CPU, no component can run faster than the clock rate. &lt;br /&gt;In a clocked CPU, the clock can go no faster than the worst-case performance of the slowest stage. In a clockless CPU, when a stage finishes faster than normal, the next stage can immediately take the results rather than waiting for the next clock tick. A stage might finish faster than normal because of the particular data inputs (multiplication can be very fast if it is multiplying by 0 or 1), or because it is running at a higher voltage or lower temperature than normal. &lt;br /&gt;Asynchronous logic proponents believe these capabilities would have these benefits:&lt;br /&gt;&lt;br /&gt;lower power dissipation for a given performance level &lt;br /&gt;highest possible execution speeds &lt;br /&gt;Two examples of asynchronous CPUs are the ARM-implementing AMULET and the asynchronous implementation of MIPS R3000, dubbed MiniMIPS.&lt;br /&gt;&lt;br /&gt;The biggest disadvantage of the clockless CPU is that most CPU design tools assume a clocked CPU (a synchronous circuit), so making a clockless CPU (designing an asynchronous circuit) involves modifying the design tools to handle clockless logic and doing extra testing to ensure the design avoids metastable problems. For example, the group that designs the aforementioned AMULET developed a tool called LARD to cope with the complex design of AMULET3.&lt;br /&gt;&lt;br /&gt;Another disadvantage is the overhead needed for handshaking signals&lt;br /&gt;&lt;br /&gt;A smaller disadvantage is how these devices would operate with Automated Test Equipment chip testers that are more geared for synchronous behavior.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; intelligent RAM&lt;br /&gt;One way to work around the von Neumann bottleneck is to mix the a processor and DRAM all one one chip.&lt;br /&gt;&lt;br /&gt;The Berkeley Intelligent RAM (IRAM) project [3] &lt;br /&gt;eDRAM &lt;br /&gt;&lt;br /&gt;[edit] References&lt;br /&gt;Hwang, Enoch (2006). Digital Logic and Microprocessor Design with VHDL. Thomson. ISBN 0-534-46593-5.  &lt;br /&gt;Processor Design: An Introduction - Detailed introduction to microprocessor design. Somewhat incomplete and outdated, but still worthwhile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-1687273989847679615?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/1687273989847679615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=1687273989847679615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1687273989847679615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1687273989847679615'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/cpu-design.html' title='CPU design'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-5326050336694771826</id><published>2008-04-10T11:34:00.000-07:00</published><updated>2008-04-30T08:37:06.284-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtual'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual memory'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><title type='text'>Virtual memory</title><content type='html'>Virtual memory is a computer system technique which gives an application program the impression that it has contiguous working memory, while in fact it is physically fragmented and may even overflow on to disk storage. Systems which use this technique make programming of large applications easier and use real physical memory (e.g. RAM) more efficiently than those without virtual memory.&lt;br /&gt;&lt;br /&gt;Note that "virtual memory" is not just "using disk space to extend physical memory size". Extending memory is a normal consequence of using virtual memory techniques, but can be done by other means such as overlays or swapping programs and their data completely out to disk while they are inactive. The definition of "virtual memory" is based on tricking programs into thinking they are using large blocks of contiguous addresses.&lt;br /&gt;&lt;br /&gt;All modern general-purpose computer operating systems use virtual memory techniques for ordinary applications, such as word processors, spreadsheets, multimedia players, accounting, etc. Few older operating systems, such as DOS of the 1980s, or those for the mainframes of the 1960s, had virtual memory functionality - notable exceptions being the Atlas and B5000.&lt;br /&gt;&lt;br /&gt;Embedded systems and other special-purpose computer systems which require very fast, very consistent response time do not generally use virtual memory.&lt;br /&gt;&lt;br /&gt;Paged virtual memory&lt;br /&gt;Almost all implementations of virtual memory divide the virtual address space of an application program into pages; a page is a block of contiguous virtual memory addresses. Pages are usually at least 4K bytes in size, and systems with large virtual address ranges or large amounts of real memory (e.g. RAM) generally use larger page sizes&lt;br /&gt;[edit] Page tables&lt;br /&gt;Almost all implementations use page tables to translate the virtual addresses seen by the application program into physical addresses (also referred to as "real addresses") used by the hardware to process instructions. Each entry in a page table contains: the starting virtual address of the page; either the real memory address at which the page is actually stored or an indicator that the page is currently held in a disk file (if the system uses disk files to let applications use amounts of virtual memory which exceed real memory).&lt;br /&gt;&lt;br /&gt;Systems can have one page table for the whole system or a separate page table for each application. If there is only one, different applications which are running at the same time share a single virtual address space, i.e. they use different parts of a single range of virtual addresses. Systems which use multiple page tables provide multiple virtual address spaces - concurrent applications think they are using the same range of virtual addresses, but their separate page tables redirect to different real addresses.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Paging&lt;br /&gt;Paging is the process of saving inactive virtual memory pages to disk and restoring them to real memory when required.&lt;br /&gt;&lt;br /&gt;Most virtual memory systems enable programs to use virtual address ranges which in total exceed the amount of real memory (e.g. RAM). To do this they use disk files to save virtual memory pages which are not currently active, and restore them to real memory when they are needed. Pages are not necessarily restored to the same real addresses from which they were saved - applications are aware only of virtual addresses. Usually the real memory to which a page is restored contains another virtual memory page which has been used recently, and which must therefore be saved to disk.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Dynamic address translation&lt;br /&gt;When a CPU fetches an instruction located at a particular virtual address or, while executing an instruction, fetches data from a particular virtual address or stores data to a particular virtual address, the virtual address must be translated to the corresponding physical address. This is done by a hardware component, sometimes called a memory management unit, which looks up the real address (from the page table) corresponding to a virtual address and passes the real address to the parts of the CPU which execute instructions. If the page tables indicate that the virtual memory page is not currently in real memory, the hardware raises a page fault exception (special internal signal) which invokes the paging supervisor component of the operating system (see below).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Paging supervisor&lt;br /&gt;This part of the operating system creates and manages the page tables. If the dynamic address translation hardware raises a page fault exception, the paging supervisor searches the page file(s) (on disk) for the page containing the required virtual address, reads it into real physical memory, updates the page tables to reflect the new location of the virtual address and finally tells the dynamic address translation mechanism to start the search again. Usually all of the real physical memory is already in use and the paging supervisor must first save an area of real physical memory to disk and update the page table to say that the associated virtual addresses are no longer in real physical memory but saved on disk. Paging supervisors generally save and overwrite areas of real physical memory which have been least recently used, because these are probably the areas which are used least often. So every time the dynamic address translation hardware matches a virtual address with a real physical memory address, it must put a time-stamp in the page table entry for that virtual address.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Permanently resident pages&lt;br /&gt;All virtual memory systems have memory areas which are "pinned down", i.e. cannot be swapped out to secondary storage, for example:&lt;br /&gt;&lt;br /&gt;Interrupt mechanisms generally rely on an array of pointers to the handlers for various types of interrupt (I/O completion, timer event, program error, page fault, etc.). If the pages containing these pointers or the code that they invoke were pageable, interrupt-handling would become even more complex and time-consuming; and it would be especially difficult in the case of page fault interrupts. &lt;br /&gt;The page tables are usually not pageable. &lt;br /&gt;Data buffers that are accessed outside of the CPU, for example by peripheral devices that use direct memory access (DMA) or by I/O channels. Usually such devices and the buses (connection paths) to which they are attached use physical memory addresses rather than virtual memory addresses. Even on buses with an IOMMU, which is a special memory management unit that can translate virtual addresses used on an I/O bus to physical addresses, the transfer cannot be stopped if a page fault occurs and then restarted when the page fault has been processed. So pages containing locations to which or from which a peripheral device is transferring data are either permanently pinned down or pinned down while the transfer is in progress. &lt;br /&gt;Any other kernel or application areas in which operation is very timing dependent and cannot allow the variation in response time which paging causes. &lt;br /&gt;&lt;br /&gt;[edit] Virtual=real operation&lt;br /&gt;In MVS, z/OS, and similar OSes, some parts of the systems memory are managed in virtual=real mode, where every virtual address corresponds to a real address. Those are:&lt;br /&gt;&lt;br /&gt;interrupt mechanisms &lt;br /&gt;paging supervisor and page tables &lt;br /&gt;all data buffers accessed by I/O channels[citation needed] &lt;br /&gt;application programs which use non-standard methods of managing I/O and therefore provide their own buffers and communicate directly with peripherals (programs that create their own channel command words). &lt;br /&gt;In IBM's early vitrual memory operating systems virtual=real mode was the only way to "pin down" pages. z/OS has 3 modes, V=V (virtual=virtual; fully pageable), V=R and V=F (virtual = fixed, i.e. "pinned down" but with DAT operating)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Segmented virtual memory&lt;br /&gt;Some systems, such as the Burroughs large systems, do not use paging to implement virtual memory. Instead, they use segmentation, so that an application's virtual address space is divided into variable-length segments. A virtual address consists of a segment number and an offset within the segment.&lt;br /&gt;&lt;br /&gt;Memory is still physically addressed with a single number (called absolute or linear address). To obtain it, the processor looks up the segment number in a segment table to find a segment descriptor The segment descriptor contains a flag indicating whether the segment is present in main memory and, if it is, the address in main memory of the beginning of the segment (segment's base address) and the length of the segment. It is checked whether the offset within the segment is less than the length of the segment and, if it isn't, an interrupt is generated. If a segment is not present in main memory, hardware interrupt is raised to the operating system, which may try to read the segment into main memory, or to swap in. The operating system might have to remove other segments (swap out) from main memory in order to make room in main memory for the segment to be read in.&lt;br /&gt;&lt;br /&gt;Notably, the Intel 80286 supported similar segmentation scheme as an option, but it was unused by most operating systems.&lt;br /&gt;&lt;br /&gt;It is possible to combine segmentation and paging, usually dividing each segment into pages. In systems that combine them, such as Multics and the IBM System/38 and IBM System i machines, virtual memory is usually implemented with paging, with segmentation used to provide memory protection With the Intel 80386 and later IA-32 processors, the segments reside in a 32-bit linear paged address space, so segments can be moved into and out of that linear address space, and pages in that linear address space can be moved in and out of main memory, providing two levels of virtual memory; however, few if any operating systems do so. Instead, they only use paging.&lt;br /&gt;&lt;br /&gt;The difference between virtual memory implementations using pages and using segments is not only about the memory division with fixed and variable sizes, respectively. In some systems, e.g. Multics, or later System/38 and Prime machines, the segmentation was actually visible to the user processes, as part of the semantics of a memory model. In other words, instead of a process just having a memory which looked like a single large vector of bytes or words, it was more structured. This is different from using pages, which doesn't change the model visible to the process. This had important consequences.&lt;br /&gt;&lt;br /&gt;Segment wasn't just a "page with a variable length", or a simple way to lengthen the address space (as in Intel 80286). In Multics, the segmentation was a very powerful mechanism that was used to provide a single-level virtual memory model, in which there was no differentiation between "process memory" and "file system" - a process' active address space consisted only a list of segments (files) which were mapped into its potential address space, both code and data.  It is not the same as the later mmap function in Unix, because inter-file pointers don't work when mapping files into semi-arbitrary places. Multics had such addressing mode built into most instructions. In other words it could perform relocated inter-segment references, thus eliminating the need for a linker completely This also worked when different processes mapped the same file into different places in their private address spaces&lt;br /&gt;&lt;br /&gt;[edit] Avoiding thrashing&lt;br /&gt;All implementations need to avoid a problem called "thrashing", where the computer spends too much time shuffling blocks of virtual memory between real memory and disks, and therefore appears to work slower. Better design of application programs can help, but ultimately the only cure is to install more real memory. For more information see Paging.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] History&lt;br /&gt;In the 1940s and 1950s, before the development of a virtual memory, all larger programs had to contain logic for managing two-level storage (primary and secondary, today's analogies being RAM and hard disk), such as overlaying techniques. Programs were responsible for moving overlays back and forth from secondary storage to primary.&lt;br /&gt;&lt;br /&gt;The main reason for introducing virtual memory was therefore not simply to extend primary memory, but to make such an extension as easy to use for programmers as possible&lt;br /&gt;&lt;br /&gt;Many systems already had the ability to divide the memory between multiple programs (required for multiprogramming and multiprocessing), provided for example by "base and bounds registers" on early models of the PDP-10, without providing virtual memory. That gave each application a private address space starting at an address of 0, with an address in the private address space being checked against a bounds register to make sure it's within the section of memory allocated to the application and, if it is, having the contents of the corresponding base register being added to it to give an address in main memory. This is a simple form of segmentation without virtual memory.&lt;br /&gt;&lt;br /&gt;Virtual memory was developed in approximately 1959–1962, at the University of Manchester for the Atlas Computer, completed in 1962 However, Fritz-Rudolf Güntsch, one of Germany's pioneering computer scientists and later the developer of the Telefunken TR 440 mainframe, claims to have invented the concept in 1957 in his doctoral dissertation Logischer Entwurf eines digitalen Rechengerätes mit mehreren asynchron laufenden Trommeln und automatischem Schnellspeicherbetrieb (Logic Concept of a Digital Computing Device with Multiple Asynchronous Drum Storage and Automatic Fast Memory Mode).&lt;br /&gt;&lt;br /&gt;In 1961, Burroughs released the B5000, the first commercial computer with virtual memory It used segmentation rather than paging.&lt;br /&gt;&lt;br /&gt;Like many technologies in the history of computing, virtual memory was not accepted without challenge. Before it could be implemented in mainstream operating systems, many models, experiments, and theories had to be developed to overcome the numerous problems. Dynamic address translation required a specialized, expensive, and hard to build hardware, moreover initially it slightly slowed down the access to memory There were also worries that new system-wide algorithms of utilizing secondary storage would be far less effective than previously used application-specific ones.&lt;br /&gt;&lt;br /&gt;By 1969 the debate over virtual memory for commercial computers was over an IBM research team led by David Sayre showed that the virtual memory overlay system consistently worked better than the best manually controlled systems.&lt;br /&gt;&lt;br /&gt;Possibly the first minicomputer to introduce virtual memory was the Norwegian NORD-1. During the 1970s, other minicomputers implemented virtual memory, notably VAX models running VMS.&lt;br /&gt;&lt;br /&gt;Virtual memory was introduced to the x86 architecture with the protected mode of the Intel 80286 processor. At first it was done with segment swapping, which became inefficient with larger segments. The Intel 80386 introduced support for paging underneath the existing segmentation layer. The page fault exception could be chained with other exceptions without causing a double fault.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-5326050336694771826?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/5326050336694771826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=5326050336694771826' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/5326050336694771826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/5326050336694771826'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/virtual-memory.html' title='Virtual memory'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-6795430971632243050</id><published>2008-04-10T11:33:00.003-07:00</published><updated>2008-04-10T11:33:54.642-07:00</updated><title type='text'>Memory segmentation</title><content type='html'>In computing, memory segmentation is one of the most common ways to achieve memory protection; another common one is paging. In a computer system using segmentation, an instruction operand that refers to a memory location includes a value that identifies a segment and an offset within that segment. A segment has a set of permissions, and a length, associated with it. If the currently running process is allowed by the permissions to make the type of reference to memory that it is attempting to make, and the offset within the segment is within the range specified by the length of the segment, the reference is permitted; otherwise, a hardware exception is delivered.&lt;br /&gt;&lt;br /&gt;In addition to the set of permissions and length, a segment also has associated with it information indicating where the segment is located in memory. It may also have a flag indicating whether the segment is present in main memory or not; if the segment is not present in main memory, an exception is delivered, and the operating system will read the segment into memory from secondary storage. The information indicating where the segment is located in memory might be the address of the first location in the segment, or might be the address of a page table for the segment. In the first case, if a reference to a location within a segment is made, the offset within the segment will be added to address of the first location in the segment to give the address in memory of the referred-to item; in the second case, the offset of the segment is translated to a memory address using the page table.&lt;br /&gt;&lt;br /&gt;In most systems in which a segment doesn't have a page table associated with it, the address of the first location in the segment is an address in main memory; in those systems, no paging is done. In the Intel 80386 and later, that address can either be an address in main memory, if paging is not enabled, or an address in a paged "linear" address space, if paging is enabled.&lt;br /&gt;&lt;br /&gt;A memory management unit (MMU) is responsible for translating a segment and offset within that segment into a memory address, and for performing checks to make sure the translation can be done and that the reference to that segment and offset is permitted.&lt;br /&gt;&lt;br /&gt;This usage should not be confused with that of the memory segments used by early x86 processors such as the Intel 8086 and Intel 8088, as they did not provide any protection; segmentation in the Intel 80286 and later provided protection.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-6795430971632243050?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/6795430971632243050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=6795430971632243050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6795430971632243050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6795430971632243050'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/memory-segmentation.html' title='Memory segmentation'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-2111671961078209150</id><published>2008-04-10T11:33:00.001-07:00</published><updated>2008-04-10T11:33:26.675-07:00</updated><title type='text'>Data segment</title><content type='html'>A data segment is one of the sections of a program in an object file or in memory, which contains the global variables that are initialized by the programmer. It has a fixed size, since all of the data in this section is set by the programmer before the program is loaded. However, it is not read-only, since the values of the variables can be altered at runtime. This is in contrast to the Rodata (constant, read-only data) section, as well as the code segment (also known as text segment).&lt;br /&gt;&lt;br /&gt;There are four basic memory regions in a program: Stack, Data, BSS, and Heap. Sometimes the data, BSS, and heap areas are collectively referred to as the "data segment".&lt;br /&gt;&lt;br /&gt;The Data part contains constants used by the program that are not initialized to zero. For instance the string defined by char s[] = "hello world"; would exist in the data part. &lt;br /&gt;The BSS segment starts at the end of the data segment and contains all global variables that are initialized to zero. For instance a variable declared static int i; would be contained in the BSS segment. &lt;br /&gt;The heap area begins at the end of the data segment and grows to larger addresses from there. The Heap area is managed by malloc, realloc, and free, which use the brk and sbrk system calls to adjust its size. The Heap area is shared by all shared libraries and dynamic load modules in a process&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-2111671961078209150?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/2111671961078209150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=2111671961078209150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/2111671961078209150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/2111671961078209150'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/data-segment.html' title='Data segment'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-5946297301091176533</id><published>2008-04-10T11:32:00.000-07:00</published><updated>2008-04-10T11:33:04.752-07:00</updated><title type='text'>Data (computing)</title><content type='html'>In computer science, data is any information in a form suitable for use with a computer[1]. Data is often distinguished from programs. A program is a set of instructions that detail a task for the computer to perform. In this sense, data is thus everything that is not program code&lt;br /&gt;&lt;br /&gt;In an alternate usage, binary files (which are not human-readable) are sometimes called "data", as distinguished from human-readable "text" The total amount of digital data in 2007 was estimated to be 281 billion gigabytes&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Data vs programs&lt;br /&gt;Fundamentally, computers follow the instructions they are given. A set of instructions to perform a given task (or tasks) is called a "program". In the nominal case, the program, as executed by the computer, will consist of binary machine code. The elements of storage manipulated by the program, but not actually executed by the CPU, contain data.&lt;br /&gt;&lt;br /&gt;Typically, different files are used to store programs vs data. Executable files contain programs; all other files are data files. However, executable files may also contain data which is "built-in" to the program. In particular, some executable files have a data segment, which nominally contains constants and initial values (both data).&lt;br /&gt;&lt;br /&gt;For example: A user might first instruct the operating system to load a word processor program from one file, and then edit a document stored in another file. In this example, the document would be considered data. If the word processor also features a spell checker, then the dictionary (word list) for the spell checker would also be considered data. The algorithms used by the spell checker to suggest corrections would be considered code.&lt;br /&gt;&lt;br /&gt;The line between program and data can become blurry. An interpreter, for example, is a program. The input data to an interpreter is itself a program -- just not one expressed in native machine language. In many cases, the interpreted program will be a human-readable text file, which is manipulated with a text editor -- more normally associated with plain text data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-5946297301091176533?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/5946297301091176533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=5946297301091176533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/5946297301091176533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/5946297301091176533'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/data-computing.html' title='Data (computing)'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-2536118438707467060</id><published>2008-04-08T12:45:00.001-07:00</published><updated>2008-04-08T12:45:50.780-07:00</updated><title type='text'>Women in computing</title><content type='html'>Issues regarding women in computing&lt;br /&gt;Global concerns about current and future roles of women in computing occupations gained more importance with the emerging information age. These concerns motivated public policy debates addressing gender equality as computer applications exerted increasing influence in society. This dialog helped to expand information technology innovations and to reduce the unintended consequences of perceived sexism.&lt;br /&gt;&lt;br /&gt;In the United States, the number of women represented in engineering and information technology peaked in the late 1980s. Since then, the percentage of women in the computing profession declined from 35.2% in 1990 to 28.4% in 2000.[1] Particularly in computer science, there has been a dramatic drop in women earning bachelor's degrees. A report from the Computing Research Association indicated that the number recently fell below 20%, from nearly 40% in the mid 80s.[2] Below is a graph showing the number of Bachelor of Computer Science degree acquired across United States by gender between 1980 to 1996: &lt;br /&gt;&lt;br /&gt;Research has shown that many misperceptions about computing persist and may discourage women.[1] One of the biggest misperceptions of computing is the "geek factor". Students from high school think that computer scientists sit in cubicles and write code all day. The "geek factor" affects both male and female high school students, but it seems to have more negative effect on the female students.[3] It is important to study the force driving women away from the field of computer science because these factors might eventually drive men away.[4]&lt;br /&gt;&lt;br /&gt;Professor Palma from Gonzaga University believes that we can attract girls into the study of computer science by making it more like mathematics.[5] He suggests five ways to improve the attraction of computer science to girls:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Teach any girl with an aptitude for symbol manipulation how to program. &lt;br /&gt;When teaching girls how to program, keep things as close to pure logic as possible. Minimize reliance on other clumsy software packages, fancy graphical interface, and powerful IDEs. &lt;br /&gt;Teach computing without microcomputers. Microcomputers tends to attract tinkering boys more than girls. &lt;br /&gt;Keep the length of programming assignments as short as possible, at least in the early stages. One aspect of the mathematics discipline is that assignment problems are hard enough to make a person think for a while, but are not hard enough to get them frustrated and lose interest in the problem. &lt;br /&gt;Treat a programming language as the notational system and avoid adopting new languages. &lt;br /&gt;&lt;br /&gt;[edit] Attracting women into computer science&lt;br /&gt;Universities across North America are changing their computer science programs to make them more appealing to women. Companies like IBM also encourage young women to become interested in engineering, technology and science. IBM offers EX.I.T.E. (EXploring Interests in Technology and Engineering) camps for young women from the ages of 11 to 13.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Gender theory and women in computing&lt;br /&gt;A recent book titled "Athena Unbound" [6] provides a life-course analysis (based on interviews and surveys) of women in the sciences from an early childhood interest, through university, to graduate school and finally into the academic workplace. The thesis of this book is that "women face a special series of gender related barriers to entry and success in scientific careers that persist, despite recent advances"[7].&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Famous women in computing&lt;br /&gt;1842: Ada Lovelace (1815-1852), analyst of Charles Babbage's analytical engine and described as the "first computer programmer" &lt;br /&gt;1942: Hedy Lamarr (1913-2000), Hollywood diva and co-inventor of an early form of spread-spectrum broadcasting &lt;br /&gt;1946: Betty Jennings, Betty Snyder, Fran Bilas, Kay McNulty, Marlyn Wescoff, and Ruth Lichterman, original programmers of the ENIAC &lt;br /&gt;1949: Grace Hopper (1906-1992), first programmer for the Mark I Calculator, known as the "Mother of COBOL" &lt;br /&gt;1962: Jean E. Sammet (1928-), mathematician and computer scientist; developed FORMAC programming language. Was the first to write extensively about history and categorisation of programming languages (1969). &lt;br /&gt;1968: Barbara H. Liskov (1939-), first American female Doctorate of Computer Science (1968) &lt;br /&gt;1972: Karen Spärck Jones (1935-2007), pioneer of information retrieval and natural language processing &lt;br /&gt;1983: Adele Goldberg (1945-), one of the designers and developers of the Smalltalk language &lt;br /&gt;~1985:Irma Wyman (~1927-), first Honeywell CIO &lt;br /&gt;1988: Eva Tardos (1957-), recipient of the Fulkerson Prize for her research on design and analysis of algorithms &lt;br /&gt;1993: Shafi Goldwasser (1958-), theoretical computer scientist, two-time recipient of the Gödel Prize for research on complexity theory, cryptography and computational number theory, and the invention of zero-knowledge proofs &lt;br /&gt;1994: Sally Floyd (~1953-), most renowned for her work on Transmission Control Protocol &lt;br /&gt;1997: Anita Borg (1949-2003), the founding director of the Institute for Women and Technology (IWT) &lt;br /&gt;2005: Mary Lou Jepsen (1965-), Founder and chief technology officer of One Laptop Per Child (OLPC) &lt;br /&gt;2006: Frances E. Allen (1932-), first female recipient of the ACM's Turing Award &lt;br /&gt;&lt;br /&gt;[edit] Organizations for women in computing&lt;br /&gt;Association for Computing Machinery (ACM) Committee on Women &lt;br /&gt;Association for Women in Computing &lt;br /&gt;BCSWomen, a women-only Specialist Group of the British Computer Society &lt;br /&gt;Computing Research Association Committee on the Status of Women in Computing research &lt;br /&gt;IEEE Women in Engineering (WIE) &lt;br /&gt;Feminist Approach to Technology &lt;br /&gt;LinuxChix, a women-oriented community in the open source movement &lt;br /&gt;DevChix, group for female developers/programmers &lt;br /&gt;National Center for Women and Information Technology (NCWIT), USA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-2536118438707467060?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/2536118438707467060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=2536118438707467060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/2536118438707467060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/2536118438707467060'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/women-in-computing.html' title='Women in computing'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-6525836129419101406</id><published>2008-04-08T12:44:00.000-07:00</published><updated>2008-04-08T12:45:18.093-07:00</updated><title type='text'>Computer science</title><content type='html'>Computer science (or computing science) is the study of the theoretical foundations of information and computation and their implementation and application in computer systems.[1][2][3] Computer science has many sub-fields; some emphasize the computation of specific results (such as computer graphics), while others relate to properties of computational problems (such as computational complexity theory). Still others focus on the challenges in implementing computations. For example, programming language theory studies approaches to describing computations, while computer programming applies specific programming languages to solve specific computational problems. A further subfield, human-computer interaction, focuses on the challenges in making computers and computations useful, usable and universally accessible to people.&lt;br /&gt;&lt;br /&gt;History&lt;br /&gt;Main article: History of computer science&lt;br /&gt;The early foundations of what would become computer science predate the invention of the modern digital computer. Machines for calculating fixed numerical tasks, such as the abacus, have existed since antiquity. Wilhelm Schickard built the first mechanical calculator in 1623.[4] Charles Babbage designed a difference engine in Victorian times (between 1837 and 1901)[5] helped by Ada Lovelace.[6] Around 1900, the IBM corporation sold punch-card machines.[7] However, all of these machines were constrained to perform a single task, or at best some subset of all possible tasks.&lt;br /&gt;&lt;br /&gt;During the 1940s, as newer and more powerful computing machines were developed, the term computer came to refer to the machines rather than their human predecessors. As it became clear that computers could be used for more than just mathematical calculations, the field of computer science broadened to study computation in general. Computer science began to be established as a distinct academic discipline in the 1960s, with the creation of the first computer science departments and degree programs.[8] Since practical computers became available, many applications of computing have become distinct areas of study in their own right.&lt;br /&gt;&lt;br /&gt;Many initially believed it impossible that "computers themselves could actually be a scientific field of study" (Levy 1984, p. 11), though it was in the "late fifties" (Levy 1984, p.11) that it gradually became accepted among the greater academic population. It is the now well-known IBM brand that formed part of the computer science revolution during this time. IBM (short for International Business Machines) released the IBM 704 and later the IBM 709 computers, which were widely used during the exploration period of such devices. "Still, working with the IBM [computer] was frustrating...if you had misplaced as much as one letter in one instruction, the program would crash, and you would have to start the whole process over again" (Levy 1984, p.13). During the late 1950s, the computer science discipline was very much in its developmental stages, and such issues were commonplace.&lt;br /&gt;&lt;br /&gt;Time has seen significant improvements in the usability and effectiveness of computer science technology. Modern society has seen a significant shift from computers being used solely by experts or professionals to more a more widespread user base. By the 1990s, computers became accepted as being the norm within everyday life. During this time data entry was a primary component of the use of computers, many preferring to streamline their business practices through the use of a computer. This also gave the additional benefit of removing the need of large amounts of documentation and file records which consumed much-needed physical space within offices.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Major achievements&lt;br /&gt;  This section requires expansion. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;German military used the Enigma machine during World War II for communication they thought to be secret. The large-scale decryption of Enigma traffic at Bletchley Park was an important factor that contributed to Allied victory in WWII.[9]Despite its relatively short history as a formal academic discipline, computer science has made a number of fundamental contributions to science and society. These include:&lt;br /&gt;&lt;br /&gt;Applications within computer science &lt;br /&gt;A formal definition of computation and computability, and proof that there are computationally unsolvable and intractable problems.[10] &lt;br /&gt;The concept of a programming language, a tool for the precise expression of methodological information at various levels of abstraction.[11] &lt;br /&gt;Applications outside of computing &lt;br /&gt;Sparked the Digital Revolution which led to the current Information Age and the Internet.[12] &lt;br /&gt;In cryptography, breaking the Enigma machine was an important factor contributing to the Allied victory in World War II.[9] &lt;br /&gt;Scientific computing enabled advanced study of the mind and mapping the human genome was possible with Human Genome Project.[12] Distributed computing projects like Folding@home explore protein folding. &lt;br /&gt;Algorithmic trading has increased the efficiency and liquidity of financial markets by using artificial intelligence, machine learning and other statistical/numerical techniques on a large scale.[13] &lt;br /&gt;&lt;br /&gt;[edit] Relationship with other fields&lt;br /&gt;Wikiquote has a collection of quotations related to: &lt;br /&gt;Edsger DijkstraComputer science is frequently derided by the sentence "Any field which has to have 'science' in its name isn't one." This was placed in print by physicist Richard Feynman in his Lectures on Computation (1996).&lt;br /&gt;&lt;br /&gt;Despite its name, a significant amount of computer science does not involve the study of computers themselves. Because of this, several alternative names have been proposed. Danish scientist Peter Naur suggested the term datalogy, to reflect the fact that the scientific discipline revolves around data and data treatment, while not necessarily involving computers. The first scientific institution to use the term was the Department of Datalogy at the University of Copenhagen, founded in 1969, with Peter Naur being the first professor in datalogy. The term is used mainly in the Scandinavian countries. Also, in the early days of computing, a number of terms for the practitioners of the field of computing were suggested in the Communications of the ACM—turingineer, turologist, flow-charts-man, applied meta-mathematician, and applied epistemologist.[14] Three months later in the same journal, comptologist was suggested, followed next year by hypologist.[15] Recently the term computics has been suggested.[16] Infomatik was a term used in Europe with more frequency.&lt;br /&gt;&lt;br /&gt;The renowned computer scientist Edsger Dijkstra stated, "Computer science is no more about computers than astronomy is about telescopes." The design and deployment of computers and computer systems is generally considered the province of disciplines other than computer science. For example, the study of computer hardware is usually considered part of computer engineering, while the study of commercial computer systems and their deployment is often called information technology or information systems. Computer science is sometimes criticized as being insufficiently scientific, a view espoused in the statement "Science is to computer science as hydrodynamics is to plumbing", credited to Stan Kelly-Bootle[17] and others. However, there has been much cross-fertilization of ideas between the various computer-related disciplines. Computer science research has also often crossed into other disciplines, such as artificial intelligence, cognitive science, physics (see quantum computing), and linguistics.&lt;br /&gt;&lt;br /&gt;Computer science is considered by some to have a much closer relationship with mathematics than many scientific disciplines.[8] Early computer science was strongly influenced by the work of mathematicians such as Kurt Gödel and Alan Turing, and there continues to be a useful interchange of ideas between the two fields in areas such as mathematical logic, category theory, domain theory, and algebra.&lt;br /&gt;&lt;br /&gt;The relationship between computer science and software engineering is a contentious issue, which is further muddied by disputes over what the term "software engineering" means, and how computer science is defined. David Parnas, taking a cue from the relationship between other engineering and science disciplines, has claimed that the principal focus of computer science is studying the properties of computation in general, while the principal focus of software engineering is the design of specific computations to achieve practical goals, making the two separate but complementary disciplines.[18]&lt;br /&gt;&lt;br /&gt;The academic, political, and funding aspects of computer science tend to have roots as to whether a department in the U.S. formed with either a mathematical emphasis or an engineering emphasis. In general, electrical engineering-based computer science departments have tended to succeed as computer science and/or engineering departments.[citation needed] Computer science departments with a mathematics emphasis and with a numerical orientation consider alignment computational science. Both types of departments tend to make efforts to bridge the field educationally if not across all research.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Fields of computer science&lt;br /&gt;Computer science searches for concepts and formal proofs to explain and describe computational systems of interest. As with all sciences, these theories can then be utilised to synthesize practical engineering applications, which in turn may suggest new systems to be studied and analysed. While the ACM Computing Classification System can be used to split computer science up into different topics of fields, a more descriptive breakdown follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Mathematical foundations&lt;br /&gt;Mathematical logic &lt;br /&gt;Boolean logic and other ways of modeling logical queries; the uses and limitations of formal proof methods. &lt;br /&gt;Number theory &lt;br /&gt;Theory of proofs and heuristics for finding proofs in the simple domain of integers. Used in cryptography as well as a test domain in artificial intelligence. &lt;br /&gt;Graph theory &lt;br /&gt;Foundations for data structures and searching algorithms. &lt;br /&gt;Type theory &lt;br /&gt;Formal analysis of the types of data, and the use of these types to understand properties of programs, especially program safety. &lt;br /&gt;Category theory &lt;br /&gt;Category theory provides a means of capturing all of math and computation in a single synthesis. &lt;br /&gt;Computational geometry &lt;br /&gt;The study of algorithms to solve problems stated in terms of geometry. &lt;br /&gt;Numerical analysis &lt;br /&gt;Foundations for algorithms in discrete mathematics, as well as the study of the limitations of floating point computation, including round-off errors. &lt;br /&gt;&lt;br /&gt;[edit] Theory of computation&lt;br /&gt;Main article: Theory of computation&lt;br /&gt;Automata theory &lt;br /&gt;Different logical structures for solving problems. &lt;br /&gt;Computability theory &lt;br /&gt;What is calculable with the current models of computers. Proofs developed by Alan Turing and others provide insight into the possibilities of what can be computed and what cannot. &lt;br /&gt;Computational complexity theory &lt;br /&gt;Fundamental bounds (especially time and storage space) on classes of computations. &lt;br /&gt;Quantum computing theory &lt;br /&gt;Representation and manipulation of data using the quantum properties of particles and quantum mechanism. &lt;br /&gt;&lt;br /&gt;[edit] Algorithms and data structures&lt;br /&gt;Analysis of algorithms &lt;br /&gt;Time and space complexity of algorithms. &lt;br /&gt;Algorithms &lt;br /&gt;Formal logical processes used for computation, and the efficiency of these processes. &lt;br /&gt;Data structures &lt;br /&gt;The organization of and rules for the manipulation of data. &lt;br /&gt;&lt;br /&gt;[edit] Programming languages and compilers&lt;br /&gt;Compilers &lt;br /&gt;Ways of translating computer programs, usually from higher level languages to lower level ones. &lt;br /&gt;Interpreters &lt;br /&gt;A program that takes in as input a computer program and executes it. &lt;br /&gt;Programming languages &lt;br /&gt;Formal language paradigms for expressing algorithms, and the properties of these languages (e.g., what problems they are suited to solve). &lt;br /&gt;&lt;br /&gt;[edit] Concurrent, parallel, and distributed systems&lt;br /&gt;Concurrency &lt;br /&gt;The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment. &lt;br /&gt;Distributed computing &lt;br /&gt;Computing using multiple computing devices over a network to accomplish a common objective or task and thereby reducing the latency involved in single processor contributions for any task. &lt;br /&gt;Parallel computing &lt;br /&gt;Computing using multiple concurrent threads of execution. &lt;br /&gt;&lt;br /&gt;[edit] Software engineering&lt;br /&gt;Algorithm design &lt;br /&gt;Using ideas from algorithm theory to creatively design solutions to real tasks &lt;br /&gt;Computer programming &lt;br /&gt;The practice of using a programming language to implement algorithms &lt;br /&gt;Formal methods &lt;br /&gt;Mathematical approaches for describing and reasoning about software designs. &lt;br /&gt;Reverse engineering &lt;br /&gt;The application of the scientific method to the understanding of arbitrary existing software &lt;br /&gt;Software development &lt;br /&gt;The principles and practice of designing, developing, and testing programs, as well as proper engineering practices. &lt;br /&gt;&lt;br /&gt;[edit] System architecture&lt;br /&gt;Computer architecture &lt;br /&gt;The design, organization, optimization and verification of a computer system, mostly about CPUs and memory subsystems (and the bus connecting them). &lt;br /&gt;Computer organization &lt;br /&gt;The implementation of computer architectures, in terms of descriptions of their specific electrical circuitry &lt;br /&gt;Operating systems &lt;br /&gt;Systems for managing computer programs and providing the basis of a useable system. &lt;br /&gt;&lt;br /&gt;[edit] Communications&lt;br /&gt;Computer audio &lt;br /&gt;Algorithms and data structures for the creation, manipulation, storage, and transmission of digital audio recordings. Also important in voice recognition applications. &lt;br /&gt;Networking &lt;br /&gt;Algorithms and protocols for reliably communicating data across different shared or dedicated media, often including error correction. &lt;br /&gt;Cryptography &lt;br /&gt;Applies results from complexity, probability and number theory to invent and break codes. &lt;br /&gt;&lt;br /&gt;[edit] Databases&lt;br /&gt;Data mining &lt;br /&gt;Data mining is the extracting of the relevant data from all the sources of data &lt;br /&gt;Relational databases &lt;br /&gt;Study of algorithms for searching and processing information in documents and databases; closely related to information retrieval. &lt;br /&gt;OLAP &lt;br /&gt;Online Analytical Processing, or OLAP, is an approach to quickly provide answers to analytical queries that are multi-dimensional in nature. OLAP is part of the broader category business intelligence, which also encompasses relational reporting and data mining. &lt;br /&gt;&lt;br /&gt;[edit] Artificial intelligence&lt;br /&gt;Artificial intelligence &lt;br /&gt;The implementation and study of systems that exhibit an autonomous intelligence or behaviour of their own. &lt;br /&gt;Artificial life &lt;br /&gt;The study of digital organisms to learn about biological systems and evolution. &lt;br /&gt;Automated reasoning &lt;br /&gt;Solving engines, such as used in Prolog, which produce steps to a result given a query on a fact and rule database. &lt;br /&gt;Computer vision &lt;br /&gt;Algorithms for identifying three dimensional objects from one or more two dimensional pictures. &lt;br /&gt;Machine learning &lt;br /&gt;Automated creation of a set of rules and axioms based on input. &lt;br /&gt;Natural language processing/Computational linguistics &lt;br /&gt;Automated understanding and generation of human language &lt;br /&gt;Robotics &lt;br /&gt;Algorithms for controlling the behavior of robots. &lt;br /&gt;&lt;br /&gt;[edit] Visual rendering (or Computer graphics)&lt;br /&gt;Computer graphics &lt;br /&gt;Algorithms both for generating visual images synthetically, and for integrating or altering visual and spatial information sampled from the real world. &lt;br /&gt;Image processing &lt;br /&gt;Determining information from an image through computation. &lt;br /&gt;&lt;br /&gt;[edit] Human-Computer Interaction&lt;br /&gt;Human computer interaction &lt;br /&gt;The study of making computers and computations useful, usable and universally accessible to people, including the study and design of computer interfaces through which people use computers. &lt;br /&gt;&lt;br /&gt;[edit] Scientific computing&lt;br /&gt;Bioinformatics &lt;br /&gt;The use of computer science to maintain, analyse, and store biological data, and to assist in solving biological problems such as protein folding, function prediction and phylogeny. &lt;br /&gt;Cognitive Science &lt;br /&gt;Computational modelling of real minds &lt;br /&gt;Computational chemistry &lt;br /&gt;Computational modelling of theoretical chemistry in order to determine chemical structures and properties &lt;br /&gt;Computational neuroscience &lt;br /&gt;Computational modelling of real brains &lt;br /&gt;Computational physics &lt;br /&gt;Numerical simulations of large non-analytic systems &lt;br /&gt;Numerical algorithms &lt;br /&gt;Algorithms for the numerical solution of mathematical problems such as root-finding, integration, the solution of ordinary differential equations and the approximation/evaluation of special functions. &lt;br /&gt;Symbolic mathematics &lt;br /&gt;Manipulation and solution of expressions in symbolic form, also known as Computer algebra. &lt;br /&gt;&lt;br /&gt;[edit] Didactics of computer science/informatics&lt;br /&gt;Main article: Didactics of informatics&lt;br /&gt;The subfield didactics of computer science focuses on cognitive approaches of developing competencies of computer science and specific strategies for analysis, design, implementation and evaluation of excellent lessons in computer science.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Computer science education&lt;br /&gt;Some universities teach computer science as a theoretical study of computation and algorithmic reasoning. These programs often feature the theory of computation, analysis of algorithms, formal methods, concurrency theory, databases, computer graphics and systems analysis, among others. They typically also teach computer programming, but treat it as a vessel for the support of other fields of computer science rather than a central focus of high-level study.&lt;br /&gt;&lt;br /&gt;Other colleges and universities, as well as secondary schools and vocational programs that teach computer science, emphasize the practice of advanced computer programming rather than the theory of algorithms and computation in their computer science curricula. Such curricula tend to focus on those skills that are important to workers entering the software industry. The practical aspects of computer programming are often referred to as software engineering. However, there is a lot of disagreement over what the term "software engineering" actually means, and whether it is the same thing as programming.&lt;br /&gt;&lt;br /&gt;See Peter J. Denning, Great principles in computing curricula, Technical Symposium on Computer Science Education, 2004&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-6525836129419101406?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/6525836129419101406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=6525836129419101406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6525836129419101406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/6525836129419101406'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/computer-science.html' title='Computer science'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-4261310444844726096</id><published>2008-04-08T12:43:00.001-07:00</published><updated>2008-04-08T12:43:53.336-07:00</updated><title type='text'>Electronic waste</title><content type='html'>Electronic waste, "e-waste" or "Waste Electrical and Electronic Equipment" ("WEEE") is a waste type consisting of any broken or unwanted electrical or electronic appliance. Recyclable electronic waste is sometimes further categorized as a "commodity" while e-waste which cannot be reused is distinguished as "waste". Both types of e-waste have raised concern considering that many components of such equipment are considered toxic and are not biodegradable. Responding to these concerns, many European countries banned e-waste from landfills in the 1990s.&lt;br /&gt;&lt;br /&gt;The European Union would further advance e-waste policy in Europe by implementing the Waste Electrical and Electronic Equipment Directive in 2002 which holds manufacturers responsible for e-waste disposal at end-of-life. Similar legislation has been enacted in Asia, with e-waste legislation in the United States limited to the state level due to stalled efforts in the United States Congress regarding multiple e-waste legislation bills.&lt;br /&gt;&lt;br /&gt;Due to the difficulty and cost of recycling used electronics as well as lacklustre enforcement of legislation regarding e-waste exports, large amounts of used electronics have been sent to countries such as China, India, and Kenya, where lower environmental standards and working conditions make processing e-waste more profitable.[1]&lt;br /&gt;&lt;br /&gt;Definition&lt;br /&gt;Some activists define "Electronic waste" to include all secondary computers, entertainment devices electronics, mobile phones and other items, whether they have been sold, donated, or discarded by their original owner. This definition includes used electronics which are destined for reuse, resale, salvage, recycling or disposal. Others define the reusable (working and repairable electronics) and secondary scrap (copper, steel, plastic, etc.) to be "commodities", and reserve the use of the term "waste" for residue or material which was represented as working or repairable but which was discarded by the buyer.&lt;br /&gt;&lt;br /&gt;Debate continues over the distinction between "commodity" and "waste" electronics definitions. Some exporters may deliberately leave obsolete or non-working equipment mixed in loads of working equipment (through ignorance, or to avoid more costly treatment processes for 'bad' equipment). On the other hand, some importing countries specifically seek to exclude working or repairable equipment in order to protect domestic manufacturing markets. "White box" computers ('off-brand' or 'no name' computers) are often assembled by smaller scale manufacturers utilizing refurbished components. These 'white box' sales accounted for approximately 45% of all computer sales worldwide by 2004, and are considered a threat to some large manufacturers, who therefore seek to classify used computers as 'waste'.&lt;br /&gt;&lt;br /&gt;While a protectionist may broaden the definition of "waste" electronics, the high value of working and reusable laptops, computers, and components (e.g. RAM), can help pay the cost of transportation for a large number of worthless "commodities". Broken monitors, obsolete circuit boards, short circuited transistors, and other junk are difficult to spot in a containerload of used electronics.&lt;br /&gt;&lt;br /&gt;Until such time as equipment no longer contains such hazardous substances, the disposal and recycling operations must be undertaken with great care to avoid damaging pollution and workplace hazards, and exports need to be monitored to avoid "toxics along for the ride".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Problems&lt;br /&gt;If treated properly, electronic waste is a valuable source for secondary raw materials. However, if not treated properly, it is a major source of toxins and carcinogens. Rapid technology change, low initial cost and even planned obsolescence have resulted in a fast growing problem around the globe. Technical solutions are available but in most cases a legal framework, a collection system, logistics and other services need to be implemented before a technical solution can be applied. Electronic waste represents 2 percent of America's trash in landfills, but it equals 70 percent of overall toxic waste.[2]&lt;br /&gt;&lt;br /&gt;Due to lower environmental standards and working conditions in China, India, Kenya, and elsewhere, electronic waste is being sent to these countries for processing – in most cases illegally. Guiyu in Shantou region of China, and Delhi and Bangalore in India, all have electronic waste processing areas.[3] Uncontrolled burning, disassembly, and disposal are causing environmental and health problems, including occupational safety and health effects among those directly involved, due to the methods of processing the waste. Trade in electronic waste is controlled by the Basel Convention.&lt;br /&gt;&lt;br /&gt;Electronic waste is of concern largely due to the toxicity and carcinogenicity of some of the substances if processed improperly. Toxic substances in electronic waste may include lead, mercury, cadmium. Carcinogenic substances in electronic waste may include polychlorinated biphenyls (PCBs). A typical computer monitor may contain more than 6% lead by weight, much of which is in the lead glass of the CRT. Capacitors, transformers, PVC insulated wires, PVC coated components that were manufactured before 1977 often contain dangerous amounts of polychlorinated biphenyls.[4] Up to thirty-eight separate chemical elements are incorporated into electronic waste items. The unsustainability of discarding electronics and computer technology is another reason for the need to recycle – or perhaps more practically, reuse – electronic waste.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;E-waste is often exported to developing countriesElectronic waste processing systems have matured in recent years following increased regulatory, public, and commercial scrutiny, and a commensurate increase in entrepreneurial interest. Part of this evolution has involved greater diversion of electronic waste from energy intensive, down-cycling processes (eg. conventional recycling) where equipment is reverted to a raw material form. This diversion is achieved through reuse and refurbishing. The environmental and social benefits of reuse are several: diminished demand for new products and their commensurate requirement for virgin raw materials (with their own environmental externalities not factored into the cost of the raw materials) and larger quantities of pure water and electricity for associated manufacturing, less packaging per unit, availability of technology to wider swaths of society due to greater affordability of products, and diminished use of landfills.&lt;br /&gt;&lt;br /&gt;Challenges remain, when materials cannot or will not be reused, conventional recycling or disposal via landfill often follow. Standards for both approaches vary widely by jurisdiction, whether in developed or developing countries. The complexity of the various items to be disposed of, cost of environmentally sound recycling systems, and the need for concerned and concerted action to collect and systematically process equipment are the resources most lacked -- though this is changing. Many of the plastics used in electronic equipment contain flame retardants. These are generally halogens added to the plastic resin, making the plastics difficult to recycle.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Trends in disposal and recycling&lt;br /&gt; &lt;br /&gt;WEEE ManIn the 1990s some European countries banned the disposal of electronic waste in landfills. This created an e-waste processing industry in Europe.&lt;br /&gt;&lt;br /&gt;In Switzerland the first electronic waste recycling system was implemented in 1991 beginning with collection of old refrigerators. Over the years, all other electric and electronic devices were gradually added to the system. Legislation followed in 1998 and since January 2005 it has been possible to return all electronic waste to the sales points and other collection points free of charge. There are two established PROs (Producer Responsibility Organizations): SWICO mainly handling electronic waste and SENS mainly responsible for electrical appliances. The total amount of recycled electronic waste exceeds 10 kg per capita per year.[5][6][7]&lt;br /&gt;&lt;br /&gt;The European Union has implemented a similar system under the Waste Electrical and Electronic Equipment Directive (WEEE 2002/96/EC). The WEEE Directive has now been transposed in national laws in all member countries of the European Union. The WEEE directive was designed to make equipment manufacturers financially or physically responsible for their equipment at its end-of-life under a policy known as extended producer responsibility (EPR). EPR was seen as a useful policy as it internalized the end-of-life costs and provided a competitive incentive for companies to design equipment with less costs and liabilities when it reached its end-of-life. However the application of the WEEE directive has been criticized for implementing the EPR concept in a collective manner and thereby losing the competitive incentive of individual manufacturers to be rewarded for their green design.[8] Since 13 August 2005, the electronics manufacturers became financially responsible for compliance to the WEEE directive. Under the directive, by the end of 2006 – and with one or two years' delay for the new EU members – every country has to recycle at least 4 kg of e-waste per capita per year.&lt;br /&gt;&lt;br /&gt;Some states in recent years in the US developed policies banning CRTs from landfills due to the fear that the heavy metals contained in the glass would eventually leach into groundwater. Circuit boards also contain considerable quantities of lead-tin solders and are even more likely to leach into groundwater or become air pollution if managed in an incinerator. Indeed, a policy of "diversion from landfill" has been the driver for legislation in many states requiring higher and higher volumes of e-waste to be collected and processed separate from the solid waste stream. Today the e-waste recycling business is in all areas of the developed world a big and rapidly consolidating business. Unfortunately, increased regulation of e-waste and concern over the environmental harm which can result from toxic e-waste has raised disposal costs. This has had the unforeseen effect of providing brokers and others calling themselves recyclers with an incentive to export the e-waste to developing countries. This form of toxic trade was first exposed by the Basel Action Network (BAN)in their 2002 report and film entitled "Exporting Harm: The High-Tech Trashing of Asia".[9] Exporting Harm placed a spotlight on the global dumping of electronic waste, primarily from North America on a township area of China known as Guiyu. To this day in Guiyu, thousands of men, women and children are employed, in highly polluting, primitive recycling technologies, extracting the metals, toners, and plastics from computers and other e-waste. Because the United States has not ratified the Basel Convention or the Basel Ban Amendment, and has no domestic laws forbidding the export of toxic waste, BAN estimates that about 80% of the e-waste directed to recycling in the US does not get recycled there at all but is put on container ships and sent to countries such as China.[10][3] High Tech Trash: Digital Devices, Hidden Toxics, and Human Health by Elizabeth Grossman [Island Press, 2006, 2007.]&lt;br /&gt;&lt;br /&gt;In developed countries, e-waste processing usually first involves dismantling the equipment into various parts — metal frames, power supplies, circuit boards, and plastics — which are separated, often by hand. Alternatively, material is shredded, and sophisticated expensive equipment separates the various metal and plastic fractions, which then are sold to various smelters and or plastics recyclers. From 2004 the state of California introduced a Electronic Waste Recycling Fee on all new monitors and televisions sold to cover the cost of recycling. The amount of the fee depends on the size of the monitor. That amount was adjusted on July 1, 2005 in order to match the real cost of recycling. Canada has also begun to take responsibility for electronics recycling. For example, in August of 2007 a fee similar to the one in California was added to the cost of purchasing new televisions, computers, and computer components in British Columbia. The new legislation made recycling mandatory for all of those products.&lt;br /&gt;&lt;br /&gt;A typical electronic waste recycling plant as found in some industrialized countries combines the best of dismantling for component recovery with increased capacity to process large amounts of electronic waste in a cost effective-manner. Material is fed into a hopper, which travels up a conveyor and is dropped into the mechanical separator, which is followed by a number of screening and granulating machines. The entire recycling machinery is enclosed and employs a dust collection system. The European Union, South Korea, Japan and Taiwan have already demanded that sellers and manufacturers of electronics be responsible for recycling 75% of them.&lt;br /&gt;&lt;br /&gt;Many Asian countries have legislated, or will do so, for electronic waste recycling.&lt;br /&gt;&lt;br /&gt;The United States Congress is considering a number of electronic waste bills including the National Computer Recycling Act introduced by Congressman Mike Thompson (D-CA). This bill has continually stalled, however.&lt;br /&gt;&lt;br /&gt;In the meantime, several states have passed their own laws regarding electronic waste management. California was the first state to enact such legislation, followed by Maryland, Maine, Washington and Minnesota. More recently, legislatures in Oregon and Texas passed their own laws.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] List of substances contained in electronic waste&lt;br /&gt;&lt;br /&gt;[edit] Substances in bulk&lt;br /&gt;Polychlorinated biphenyls (PCBs), polyvinyl chloride (PVC), thermosetting plastics, epoxy resins, and fibre glass.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Elements in bulk&lt;br /&gt;Lead, tin, copper, silicon, beryllium, carbon, iron and aluminium&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Elements in small amounts&lt;br /&gt;Cadmium, mercury, thallium[11]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Elements in trace amounts (alphabetical)&lt;br /&gt;Americium, antimony, arsenic, barium, bismuth, boron, cobalt, europium, gallium, germanium, gold, indium, lithium, manganese, nickel, niobium, palladium, platinum, rhodium, ruthenium, selenium, silver, tantalum, terbium, thorium, titanium, vanadium, and yttrium.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] List of example applications of the above elements and substances&lt;br /&gt;Almost all electronics contain lead and tin (as solder) and copper (as wire and PCB tracks), though the use of lead-free solder is now spreading rapidly.&lt;br /&gt;&lt;br /&gt;Lead: solder, CRT monitors (lead in glass), lead-acid batteries &lt;br /&gt;Tin: solder, coatings on component leads &lt;br /&gt;Copper: copper wire, printed circuit board tracks, component leads &lt;br /&gt;Cadmium: light-sensitive resistors, corrosion-resistant alloys for marine and aviation environments &lt;br /&gt;Aluminium: nearly all electronic goods using more than a few watts of power (heatsinks), electrolytic capacitors. &lt;br /&gt;Beryllium oxide: filler in some thermal interface materials such as thermal grease used on heatsinks for CPUs and power transistors,[12] magnetrons, X-ray-transparent ceramic windows, heat transfer fins in vacuum tubes, and gas lasers. &lt;br /&gt;Iron: steel chassis, cases and fixings &lt;br /&gt;Silicon: glass, transistors, ICs, printed circuit boards. &lt;br /&gt;Nickel and cadmium: nickel-cadmium batteries &lt;br /&gt;Lithium: lithium-ion battery &lt;br /&gt;Zinc: plating for steel parts &lt;br /&gt;Gold: connector plating, primarily in computer equipment &lt;br /&gt;Americium: smoke alarms (radioactive source) &lt;br /&gt;Germanium: 1950s–1960s transistorised electronics (bipolar junction transistors) &lt;br /&gt;Mercury: fluorescent tubes (numerous applications), tilt switches (pinball games, mechanical doorbells, thermostats) &lt;br /&gt;Sulphur: lead-acid batteries &lt;br /&gt;Carbon: steel, plastics, resistors. In almost all electronic equipment. &lt;br /&gt;Polychlorinated biphenyls (PCBs) (prior to ban): in almost all 1930s–1970s equipment including capacitors, transformers, wiring insulation, paints, inks, and flexible sealants&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-4261310444844726096?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/4261310444844726096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=4261310444844726096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4261310444844726096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/4261310444844726096'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/electronic-waste.html' title='Electronic waste'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-2023984477229520741</id><published>2008-04-08T12:41:00.002-07:00</published><updated>2008-04-08T12:42:47.316-07:00</updated><title type='text'>Networking and the Internet</title><content type='html'>Computers have been used to coordinate information in multiple locations since the 1950s. The U.S. military's SAGE system was the first large-scale example of such a system, which led to a number of special-purpose commercial systems like Sabre.&lt;br /&gt;&lt;br /&gt;In the 1970s, computer engineers at research institutions throughout the United States began to link their computers together using telecommunications technology. This effort was funded by ARPA (now DARPA), and the computer network that it produced was called the ARPANET. The technologies that made the Arpanet possible spread and evolved. In time, the network spread beyond academic and military institutions and became known as the Internet. The emergence of networking involved a redefinition of the nature and boundaries of the computer. Computer operating systems and applications were modified to include the ability to define and access the resources of other computers on the network, such as peripheral devices, stored information, and the like, as extensions of the resources of an individual computer. Initially these facilities were available primarily to people working in high-tech environments, but in the 1990s the spread of applications like e-mail and the World Wide Web, combined with the development of cheap, fast networking technologies like Ethernet and ADSL saw computer networking become almost ubiquitous. In fact, the number of computers that are networked is growing phenomenally. A very large proportion of personal computers regularly connect to the Internet to communicate and receive information. "Wireless" networking, often utilizing mobile phone networks, has meant networking is becoming increasingly ubiquitous even in mobile computing environments.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Further topics&lt;br /&gt;&lt;br /&gt;Hardware&lt;br /&gt;Main article: Computer hardware&lt;br /&gt;The term hardware covers all of those parts of a computer that are tangible objects. Circuits, displays, power supplies, cables, keyboards, printers and mice are all hardware.&lt;br /&gt;&lt;br /&gt;History of computing hardware First Generation (Mechanical/Electromechanical) Calculators Antikythera mechanism, Difference Engine, Norden bombsight &lt;br /&gt;Programmable Devices Jacquard loom, Analytical Engine, Harvard Mark I, Z3 &lt;br /&gt;Second Generation (Vacuum Tubes) Calculators Atanasoff–Berry Computer, IBM 604, UNIVAC 60, UNIVAC 120 &lt;br /&gt;Programmable Devices ENIAC, EDSAC, EDVAC, UNIVAC I, IBM 701, IBM 702, IBM 650, Z22 &lt;br /&gt;Third Generation (Discrete transistors and SSI, MSI, LSI Integrated circuits) Mainframes IBM 7090, IBM 7080, System/360, BUNCH &lt;br /&gt;Minicomputer PDP-8, PDP-11, System/32, System/36 &lt;br /&gt;Fourth Generation (VLSI integrated circuits) Minicomputer VAX, IBM System i &lt;br /&gt;4-bit microcomputer Intel 4004, Intel 4040 &lt;br /&gt;8-bit microcomputer Intel 8008, Intel 8080, Motorola 6800, Motorola 6809, MOS Technology 6502, Zilog Z80 &lt;br /&gt;16-bit microcomputer 8088, Zilog Z8000, WDC 65816/65802 &lt;br /&gt;32-bit microcomputer 80386, Pentium, 68000, ARM architecture &lt;br /&gt;64-bit microcomputer[16] x86-64, PowerPC, MIPS, SPARC &lt;br /&gt;Embedded computer 8048, 8051 &lt;br /&gt;Personal computer Desktop computer, Home computer, Laptop computer, Personal digital assistant (PDA), Portable computer, Tablet computer, Wearable computer &lt;br /&gt;Theoretical/experimental Quantum computer, Chemical computer, DNA computing, Optical computer, Spintronics based computer &lt;br /&gt;Other Hardware Topics Peripheral device (Input/output) Input Mouse, Keyboard, Joystick, Image scanner &lt;br /&gt;Output Monitor, Printer &lt;br /&gt;Both Floppy disk drive, Hard disk, Optical disc drive, Teleprinter &lt;br /&gt;Computer busses Short range RS-232, SCSI, PCI, USB &lt;br /&gt;Long range (Computer networking) Ethernet, ATM, FDDI &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Software&lt;br /&gt;Main article: Computer software&lt;br /&gt;Software refers to parts of the computer which do not have a material form, such as programs, data, protocols, etc. When software is stored in hardware that cannot easily be modified (such as BIOS ROM in an IBM PC compatible), it is sometimes called "firmware" to indicate that it falls into an uncertain area somewhere between hardware and software.&lt;br /&gt;&lt;br /&gt;Computer software Operating system Unix/BSD UNIX System V, AIX, HP-UX, Solaris (SunOS), IRIX, List of BSD operating systems &lt;br /&gt;GNU/Linux List of Linux distributions, Comparison of Linux distributions &lt;br /&gt;Microsoft Windows Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Vista, Windows CE &lt;br /&gt;DOS 86-DOS (QDOS), PC-DOS, MS-DOS, FreeDOS &lt;br /&gt;Mac OS Mac OS classic, Mac OS X &lt;br /&gt;Embedded and real-time List of embedded operating systems &lt;br /&gt;Experimental Amoeba, Oberon/Bluebottle, Plan 9 from Bell Labs &lt;br /&gt;Library Multimedia DirectX, OpenGL, OpenAL &lt;br /&gt;Programming library C standard library, Standard template library &lt;br /&gt;Data Protocol TCP/IP, Kermit, FTP, HTTP, SMTP &lt;br /&gt;File format HTML, XML, JPEG, MPEG, PNG &lt;br /&gt;User interface Graphical user interface (WIMP) Microsoft Windows, GNOME, KDE, QNX Photon, CDE, GEM &lt;br /&gt;Text user interface Command line interface, shells &lt;br /&gt;Application Office suite Word processing, Desktop publishing, Presentation program, Database management system, Scheduling &amp; Time management, Spreadsheet, Accounting software &lt;br /&gt;Internet Access Browser, E-mail client, Web server, Mail transfer agent, Instant messaging &lt;br /&gt;Design and manufacturing Computer-aided design, Computer-aided manufacturing, Plant management, Robotic manufacturing, Supply chain management &lt;br /&gt;Graphics Raster graphics editor, Vector graphics editor, 3D modeler, Animation editor, 3D computer graphics, Video editing, Image processing &lt;br /&gt;Audio Digital audio editor, Audio playback, Mixing, Audio synthesis, Computer music &lt;br /&gt;Software Engineering Compiler, Assembler, Interpreter, Debugger, Text Editor, Integrated development environment, Performance analysis, Revision control, Software configuration management &lt;br /&gt;Educational Edutainment, Educational game, Serious game, Flight simulator &lt;br /&gt;Games Strategy, Arcade, Puzzle, Simulation, First-person shooter, Platform, Massively multiplayer, Interactive fiction &lt;br /&gt;Misc Artificial intelligence, Antivirus software, Malware scanner, Installer/Package management systems, File manager &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Programming languages&lt;br /&gt;Programming languages provide various ways of specifying programs for computers to run. Unlike natural languages, programming languages are designed to permit no ambiguity and to be concise. They are purely written languages and are often difficult to read aloud. They are generally either translated into machine language by a compiler or an assembler before being run, or translated directly at run time by an interpreter. Sometimes programs are executed by a hybrid method of the two techniques. There are thousands of different programming languages—some intended to be general purpose, others useful only for highly specialized applications.&lt;br /&gt;&lt;br /&gt;Programming Languages Lists of programming languages Timeline of programming languages, Categorical list of programming languages, Generational list of programming languages, Alphabetical list of programming languages, Non-English-based programming languages &lt;br /&gt;Commonly used Assembly languages ARM, MIPS, x86 &lt;br /&gt;Commonly used High level languages BASIC, C, C++, C#, COBOL, Fortran, Java, Lisp, Pascal &lt;br /&gt;Commonly used Scripting languages Bourne script, JavaScript, Python, Ruby, PHP, Perl &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Professions and organizations&lt;br /&gt;As the use of computers has spread throughout society, there are an increasing number of careers involving computers. Following the theme of hardware, software and firmware, the brains of people who work in the industry are sometimes known irreverently as wetware or "meatware".&lt;br /&gt;&lt;br /&gt;Computer-related professions Hardware-related Electrical engineering, Electronics engineering, Computer engineering, Telecommunications engineering, Optical engineering, Nanoscale engineering &lt;br /&gt;Software-related Computer science, Human-computer interaction, Information technology, Software engineering, Scientific computing, Web design, Desktop publishing &lt;br /&gt;&lt;br /&gt;The need for computers to work well together and to be able to exchange information has spawned the need for many standards organizations, clubs and societies of both a formal and informal nature&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-2023984477229520741?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/2023984477229520741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=2023984477229520741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/2023984477229520741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/2023984477229520741'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/networking-and-internet.html' title='Networking and the Internet'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-7075865980566325603</id><published>2008-04-08T12:41:00.001-07:00</published><updated>2008-04-08T12:41:47.583-07:00</updated><title type='text'>Programs</title><content type='html'>In practical terms, a computer program might include anywhere from a dozen instructions to many millions of instructions for something like a word processor or a web browser. A typical modern computer can execute billions of instructions every second and nearly never make a mistake over years of operation.&lt;br /&gt;&lt;br /&gt;Large computer programs may take teams of computer programmers years to write and the probability of the entire program having been written completely in the manner intended is unlikely. Errors in computer programs are called bugs. Sometimes bugs are benign and do not affect the usefulness of the program, in other cases they might cause the program to completely fail (crash), in yet other cases there may be subtle problems. Sometimes otherwise benign bugs may be used for malicious intent, creating a security exploit. Bugs are usually not the fault of the computer. Since computers merely execute the instructions they are given, bugs are nearly always the result of programmer error or an oversight made in the program's design.[7]&lt;br /&gt;&lt;br /&gt;In most computers, individual instructions are stored as machine code with each instruction being given a unique number (its operation code or opcode for short). The command to add two numbers together would have one opcode, the command to multiply them would have a different opcode and so on. The simplest computers are able to perform any of a handful of different instructions; the more complex computers have several hundred to choose from—each with a unique numerical code. Since the computer's memory is able to store numbers, it can also store the instruction codes. This leads to the important fact that entire programs (which are just lists of instructions) can be represented as lists of numbers and can themselves be manipulated inside the computer just as if they were numeric data. The fundamental concept of storing programs in the computer's memory alongside the data they operate on is the crux of the von Neumann, or stored program, architecture. In some cases, a computer might store some or all of its program in memory that is kept separate from the data it operates on. This is called the Harvard architecture after the Harvard Mark I computer. Modern von Neumann computers display some traits of the Harvard architecture in their designs, such as in CPU caches.&lt;br /&gt;&lt;br /&gt;While it is possible to write computer programs as long lists of numbers (machine language) and this technique was used with many early computers,[8] it is extremely tedious to do so in practice, especially for complicated programs. Instead, each basic instruction can be given a short name that is indicative of its function and easy to remember—a mnemonic such as ADD, SUB, MULT or JUMP. These mnemonics are collectively known as a computer's assembly language. Converting programs written in assembly language into something the computer can actually understand (machine language) is usually done by a computer program called an assembler. Machine languages and the assembly languages that represent them (collectively termed low-level programming languages) tend to be unique to a particular type of computer. For instance, an ARM architecture computer (such as may be found in a PDA or a hand-held videogame) cannot understand the machine language of an Intel Pentium or the AMD Athlon 64 computer that might be in a PC.[9]&lt;br /&gt;&lt;br /&gt;Though considerably easier than in machine language, writing long programs in assembly language is often difficult and error prone. Therefore, most complicated programs are written in more abstract high-level programming languages that are able to express the needs of the computer programmer more conveniently (and thereby help reduce programmer error). High level languages are usually "compiled" into machine language (or sometimes into assembly language and then into machine language) using another computer program called a compiler.[10] Since high level languages are more abstract than assembly language, it is possible to use different compilers to translate the same high level language program into the machine language of many different types of computer. This is part of the means by which software like video games may be made available for different computer architectures such as personal computers and various video game consoles.&lt;br /&gt;&lt;br /&gt;The task of developing large software systems is an immense intellectual effort. Producing software with an acceptably high reliability on a predictable schedule and budget has proved historically to be a great challenge; the academic and professional discipline of software engineering concentrates specifically on this problem.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Example&lt;br /&gt; &lt;br /&gt;A traffic light showing red.Suppose a computer is being employed to drive a traffic light. A simple stored program might say:&lt;br /&gt;&lt;br /&gt;Turn off all of the lights &lt;br /&gt;Turn on the red light &lt;br /&gt;Wait for sixty seconds &lt;br /&gt;Turn off the red light &lt;br /&gt;Turn on the green light &lt;br /&gt;Wait for sixty seconds &lt;br /&gt;Turn off the green light &lt;br /&gt;Turn on the yellow light &lt;br /&gt;Wait for two seconds &lt;br /&gt;Turn off the yellow light &lt;br /&gt;Jump to instruction number (2) &lt;br /&gt;With this set of instructions, the computer would cycle the light continually through red, green, yellow and back to red again until told to stop running the program.&lt;br /&gt;&lt;br /&gt;However, suppose there is a simple on/off switch connected to the computer that is intended to be used to make the light flash red while some maintenance operation is being performed. The program might then instruct the computer to:&lt;br /&gt;&lt;br /&gt;Turn off all of the lights &lt;br /&gt;Turn on the red light &lt;br /&gt;Wait for sixty seconds &lt;br /&gt;Turn off the red light &lt;br /&gt;Turn on the green light &lt;br /&gt;Wait for sixty seconds &lt;br /&gt;Turn off the green light &lt;br /&gt;Turn on the yellow light &lt;br /&gt;Wait for two seconds &lt;br /&gt;Turn off the yellow light &lt;br /&gt;If the maintenance switch is NOT turned on then jump to instruction number 2 &lt;br /&gt;Turn on the red light &lt;br /&gt;Wait for one second &lt;br /&gt;Turn off the red light &lt;br /&gt;Wait for one second &lt;br /&gt;Jump to instruction number 11 &lt;br /&gt;In this manner, the computer is either running the instructions from number (2) to (11) over and over or its running the instructions from (11) down to (16) over and over, depending on the position of the switch.[11]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;How computers work&lt;br /&gt;Main articles: Central processing unit and Microprocessor&lt;br /&gt;A general purpose computer has four main sections: the arithmetic and logic unit (ALU), the control unit, the memory, and the input and output devices (collectively termed I/O). These parts are interconnected by busses, often made of groups of wires.&lt;br /&gt;&lt;br /&gt;The control unit, ALU, registers, and basic I/O (and often other hardware closely linked with these) are collectively known as a central processing unit (CPU). Early CPUs were composed of many separate components but since the mid-1970s CPUs have typically been constructed on a single integrated circuit called a microprocessor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Control unit&lt;br /&gt;Main articles: CPU design and Control unit&lt;br /&gt;The control unit (often called a control system or central controller) directs the various components of a computer. It reads and interprets (decodes) instructions in the program one by one. The control system decodes each instruction and turns it into a series of control signals that operate the other parts of the computer.[12] Control systems in advanced computers may change the order of some instructions so as to improve performance.&lt;br /&gt;&lt;br /&gt;A key component common to all CPUs is the program counter, a special memory cell (a register) that keeps track of which location in memory the next instruction is to be read from.[13]&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Diagram showing how a particular MIPS architecture instruction would be decoded by the control system.The control system's function is as follows—note that this is a simplified description, and some of these steps may be performed concurrently or in a different order depending on the type of CPU:&lt;br /&gt;&lt;br /&gt;Read the code for the next instruction from the cell indicated by the program counter. &lt;br /&gt;Decode the numerical code for the instruction into a set of commands or signals for each of the other systems. &lt;br /&gt;Increment the program counter so it points to the next instruction. &lt;br /&gt;Read whatever data the instruction requires from cells in memory (or perhaps from an input device). The location of this required data is typically stored within the instruction code. &lt;br /&gt;Provide the necessary data to an ALU or register. &lt;br /&gt;If the instruction requires an ALU or specialized hardware to complete, instruct the hardware to perform the requested operation. &lt;br /&gt;Write the result from the ALU back to a memory location or to a register or perhaps an output device. &lt;br /&gt;Jump back to step (1). &lt;br /&gt;Since the program counter is (conceptually) just another set of memory cells, it can be changed by calculations done in the ALU. Adding 100 to the program counter would cause the next instruction to be read from a place 100 locations further down the program. Instructions that modify the program counter are often known as "jumps" and allow for loops (instructions that are repeated by the computer) and often conditional instruction execution (both examples of control flow).&lt;br /&gt;&lt;br /&gt;It is noticeable that the sequence of operations that the control unit goes through to process an instruction is in itself like a short computer program - and indeed, in some more complex CPU designs, there is another yet smaller computer called a microsequencer that runs a microcode program that causes all of these events to happen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Arithmetic/logic unit (ALU)&lt;br /&gt;Main article: Arithmetic logic unit&lt;br /&gt;The ALU is capable of performing two classes of operations: arithmetic and logic.&lt;br /&gt;&lt;br /&gt;The set of arithmetic operations that a particular ALU supports may be limited to adding and subtracting or might include multiplying or dividing, trigonometry functions (sine, cosine, etc) and square roots. Some can only operate on whole numbers (integers) whilst others use floating point to represent real numbers—albeit with limited precision. However, any computer that is capable of performing just the simplest operations can be programmed to break down the more complex operations into simple steps that it can perform. Therefore, any computer can be programmed to perform any arithmetic operation—although it will take more time to do so if its ALU does not directly support the operation. An ALU may also compare numbers and return boolean truth values (true or false) depending on whether one is equal to, greater than or less than the other ("is 64 greater than 65?").&lt;br /&gt;&lt;br /&gt;Logic operations involve Boolean logic: AND, OR, XOR and NOT. These can be useful both for creating complicated conditional statements and processing boolean logic.&lt;br /&gt;&lt;br /&gt;Superscalar computers contain multiple ALUs so that they can process several instructions at the same time. Graphics processors and computers with SIMD and MIMD features often provide ALUs that can perform arithmetic on vectors and matrices.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Memory&lt;br /&gt;Main article: Computer storage&lt;br /&gt; &lt;br /&gt;Magnetic core memory was popular main memory for computers through the 1960s until it was completely replaced by semiconductor memory.A computer's memory can be viewed as a list of cells into which numbers can be placed or read. Each cell has a numbered "address" and can store a single number. The computer can be instructed to "put the number 123 into the cell numbered 1357" or to "add the number that is in cell 1357 to the number that is in cell 2468 and put the answer into cell 1595". The information stored in memory may represent practically anything. Letters, numbers, even computer instructions can be placed into memory with equal ease. Since the CPU does not differentiate between different types of information, it is up to the software to give significance to what the memory sees as nothing but a series of numbers.&lt;br /&gt;&lt;br /&gt;In almost all modern computers, each memory cell is set up to store binary numbers in groups of eight bits (called a byte). Each byte is able to represent 256 different numbers; either from 0 to 255 or -128 to +127. To store larger numbers, several consecutive bytes may be used (typically, two, four or eight). When negative numbers are required, they are usually stored in two's complement notation. Other arrangements are possible, but are usually not seen outside of specialized applications or historical contexts. A computer can store any kind of information in memory as long as it can be somehow represented in numerical form. Modern computers have billions or even trillions of bytes of memory.&lt;br /&gt;&lt;br /&gt;The CPU contains a special set of memory cells called registers that can be read and written to much more rapidly than the main memory area. There are typically between two and one hundred registers depending on the type of CPU. Registers are used for the most frequently needed data items to avoid having to access main memory every time data is needed. Since data is constantly being worked on, reducing the need to access main memory (which is often slow compared to the ALU and control units) greatly increases the computer's speed.&lt;br /&gt;&lt;br /&gt;Computer main memory comes in two principal varieties: random access memory or RAM and read-only memory or ROM. RAM can be read and written to anytime the CPU commands it, but ROM is pre-loaded with data and software that never changes, so the CPU can only read from it. ROM is typically used to store the computer's initial start-up instructions. In general, the contents of RAM is erased when the power to the computer is turned off while ROM retains its data indefinitely. In a PC, the ROM contains a specialized program called the BIOS that orchestrates loading the computer's operating system from the hard disk drive into RAM whenever the computer is turned on or reset. In embedded computers, which frequently do not have disk drives, all of the software required to perform the task may be stored in ROM. Software that is stored in ROM is often called firmware because it is notionally more like hardware than software. Flash memory blurs the distinction between ROM and RAM by retaining data when turned off but being rewritable like RAM. However, flash memory is typically much slower than conventional ROM and RAM so its use is restricted to applications where high speeds are not required.[14]&lt;br /&gt;&lt;br /&gt;In more sophisticated computers there may be one or more RAM cache memories which are slower than registers but faster than main memory. Generally computers with this sort of cache are designed to move frequently needed data into the cache automatically, often without the need for any intervention on the programmer's part.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Input/output (I/O)&lt;br /&gt;Main article: Input/output&lt;br /&gt; &lt;br /&gt;Hard disks are common I/O devices used with computers.I/O is the means by which a computer receives information from the outside world and sends results back. Devices that provide input or output to the computer are called peripherals. On a typical personal computer, peripherals include input devices like the keyboard and mouse, and output devices such as the display and printer. Hard disk drives, floppy disk drives and optical disc drives serve as both input and output devices. Computer networking is another form of I/O.&lt;br /&gt;&lt;br /&gt;Often, I/O devices are complex computers in their own right with their own CPU and memory. A graphics processing unit might contain fifty or more tiny computers that perform the calculations necessary to display 3D graphics[citation needed]. Modern desktop computers contain many smaller computers that assist the main CPU in performing I/O.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Multitasking&lt;br /&gt;Main article: Computer multitasking&lt;br /&gt;While a computer may be viewed as running one gigantic program stored in its main memory, in some systems it is necessary to give the appearance of running several programs simultaneously. This is achieved by having the computer switch rapidly between running each program in turn. One means by which this is done is with a special signal called an interrupt which can periodically cause the computer to stop executing instructions where it was and do something else instead. By remembering where it was executing prior to the interrupt, the computer can return to that task later. If several programs are running "at the same time", then the interrupt generator might be causing several hundred interrupts per second, causing a program switch each time. Since modern computers typically execute instructions several orders of magnitude faster than human perception, it may appear that many programs are running at the same time even though only one is ever executing in any given instant. This method of multitasking is sometimes termed "time-sharing" since each program is allocated a "slice" of time in turn.&lt;br /&gt;&lt;br /&gt;Before the era of cheap computers, the principle use for multitasking was to allow many people to share the same computer.&lt;br /&gt;&lt;br /&gt;Seemingly, multitasking would cause a computer that is switching between several programs to run more slowly - in direct proportion to the number of programs it is running. However, most programs spend much of their time waiting for slow input/output devices to complete their tasks. If a program is waiting for the user to click on the mouse or press a key on the keyboard, then it will not take a "time slice" until the event it is waiting for has occurred. This frees up time for other programs to execute so that many programs may be run at the same time without unacceptable speed loss.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Multiprocessing&lt;br /&gt;Main article: Multiprocessing&lt;br /&gt; &lt;br /&gt;Cray designed many supercomputers that used multiprocessing heavily.Some computers may divide their work between one or more separate CPUs, creating a multiprocessing configuration. Traditionally, this technique was utilized only in large and powerful computers such as supercomputers, mainframe computers and servers. However, multiprocessor and multi-core (multiple CPUs on a single integrated circuit) personal and laptop computers have become widely available and are beginning to see increased usage in lower-end markets as a result.&lt;br /&gt;&lt;br /&gt;Supercomputers in particular often have highly unique architectures that differ significantly from the basic stored-program architecture and from general purpose computers.[15] They often feature thousands of CPUs, customized high-speed interconnects, and specialized computing hardware. Such designs tend to be useful only for specialized tasks due to the large scale of program organization required to successfully utilize most of a the available resources at once. Supercomputers usually see usage in large-scale simulation, graphics rendering, and cryptography applications, as well as with other so-called "embarrassingly parallel" tasks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-7075865980566325603?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/7075865980566325603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=7075865980566325603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/7075865980566325603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/7075865980566325603'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/programs.html' title='Programs'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-1269397857370484825</id><published>2008-04-08T12:39:00.000-07:00</published><updated>2008-04-08T12:40:56.795-07:00</updated><title type='text'>Computer</title><content type='html'>This article is about the machine. For other uses, see Computer (disambiguation).&lt;br /&gt;"Computer technology" redirects here. For the company, see Computer Technology Limited.&lt;br /&gt;Look up computer in&lt;br /&gt;Wiktionary, the free dictionary. &lt;br /&gt;The NASA Columbia Supercomputer.A computer is a machine that manipulates data according to a list of instructions.&lt;br /&gt;&lt;br /&gt;The first devices that resemble modern computers date to the mid-20th century (around 1940 - 1945), although the computer concept and various machines similar to computers existed earlier. Early electronic computers were the size of a large room, consuming as much power as several hundred modern personal computers.[1] Modern computers are based on tiny integrated circuits and are millions to billions of times more capable while occupying a fraction of the space.[2] Today, simple computers may be made small enough to fit into a wristwatch and be powered from a watch battery. Personal computers in various forms are icons of the Information Age and are what most people think of as "a computer"; however, the most common form of computer in use today is the embedded computer. Embedded computers are small, simple devices that are used to control other devices — for example, they may be found in machines ranging from fighter aircraft to industrial robots, digital cameras, and children's toys.&lt;br /&gt;&lt;br /&gt;The ability to store and execute lists of instructions called programs makes computers extremely versatile and distinguishes them from calculators. The Church–Turing thesis is a mathematical statement of this versatility: any computer with a certain minimum capability is, in principle, capable of performing the same tasks that any other computer can perform. Therefore, computers with capability and complexity ranging from that of a personal digital assistant to a supercomputer are all able to perform the same computational tasks given enough time and storage capacity.&lt;br /&gt;History of computing&lt;br /&gt;Main article: History of computer hardware&lt;br /&gt; &lt;br /&gt;The Jacquard loom was one of the first programmable devices.It is difficult to identify any one device as the earliest computer, partly because the term "computer" has been subject to varying interpretations over time. Originally, the term "computer" referred to a person who performed numerical calculations (a human computer), often with the aid of a mechanical calculating device.&lt;br /&gt;&lt;br /&gt;The history of the modern computer begins with two separate technologies - that of automated calculation and that of programmability.&lt;br /&gt;&lt;br /&gt;Examples of early mechanical calculating devices included the abacus, the slide rule and arguably the astrolabe and the Antikythera mechanism (which dates from about 150-100 BC). The end of the Middle Ages saw a re-invigoration of European mathematics and engineering, and Wilhelm Schickard's 1623 device was the first of a number of mechanical calculators constructed by European engineers. However, none of those devices fit the modern definition of a computer because they could not be programmed.&lt;br /&gt;&lt;br /&gt;Hero of Alexandria (c. 10 – 70 AD) built a mechanical theater which performed a play lasting 10 minutes and was operated by a complex system of ropes and drums that might be considered to be a means of deciding which parts of the mechanism performed which actions - and when.[3] This is the essence of programmability. In 1801, Joseph Marie Jacquard made an improvement to the textile loom that used a series of punched paper cards as a template to allow his loom to weave intricate patterns automatically. The resulting Jacquard loom was an important step in the development of computers because the use of punched cards to define woven patterns can be viewed as an early, albeit limited, form of programmability.&lt;br /&gt;&lt;br /&gt;It was the fusion of automatic calculation with programmability that produced the first recognisable computers. In 1837, Charles Babbage was the first to conceptualize and design a fully programmable mechanical computer that he called "The Analytical Engine".[4] Due to limited finances, and an inability to resist tinkering with the design, Babbage never actually built his Analytical Engine.&lt;br /&gt;&lt;br /&gt;Large-scale automated data processing of punched cards was performed for the U.S. Census in 1890 by tabulating machines designed by Herman Hollerith and manufactured by the Computing Tabulating Recording Corporation, which later became IBM. By the end of the 19th century a number of technologies that would later prove useful in the realization of practical computers had begun to appear: the punched card, Boolean algebra, the vacuum tube (thermionic valve) and the teleprinter.&lt;br /&gt;&lt;br /&gt;During the first half of the 20th century, many scientific computing needs were met by increasingly sophisticated analog computers, which used a direct mechanical or electrical model of the problem as a basis for computation. However, these were not programmable and generally lacked the versatility and accuracy of modern digital computers.&lt;br /&gt;&lt;br /&gt;Defining characteristics of five early digital computers Computer First operation Place Decimal/Binary Electronic Programmable Turing complete &lt;br /&gt;Zuse Z3 May 1941 Germany binary No By punched film stock Yes (1998) &lt;br /&gt;Atanasoff–Berry Computer Summer 1941 USA binary Yes No No &lt;br /&gt;Colossus December 1943 / January 1944 UK binary Yes Partially, by rewiring No &lt;br /&gt;Harvard Mark I – IBM ASCC 1944 USA decimal No By punched paper tape Yes (1998) &lt;br /&gt;ENIAC 1944 USA decimal Yes Partially, by rewiring Yes &lt;br /&gt;1948 USA decimal Yes By Function Table ROM Yes &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A succession of steadily more powerful and flexible computing devices were constructed in the 1930s and 1940s, gradually adding the key features that are seen in modern computers. The use of digital electronics (largely invented by Claude Shannon in 1937) and more flexible programmability were vitally important steps, but defining one point along this road as "the first digital electronic computer" is difficult (Shannon 1940). Notable achievements include:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;EDSAC was one of the first computers to implement the stored program (von Neumann) architecture.Konrad Zuse's electromechanical "Z machines". The Z3 (1941) was the first working machine featuring binary arithmetic, including floating point arithmetic and a measure of programmability. In 1998 the Z3 was proved to be Turing complete, therefore being the world's first operational computer. &lt;br /&gt;The non-programmable Atanasoff–Berry Computer (1941) which used vacuum tube based computation, binary numbers, and regenerative capacitor memory. &lt;br /&gt;The secret British Colossus computer (1944), which had limited programmability but demonstrated that a device using thousands of tubes could be reasonably reliable and electronically reprogrammable. It was used for breaking German wartime codes. &lt;br /&gt;The Harvard Mark I (1944), a large-scale electromechanical computer with limited programmability. &lt;br /&gt;The U.S. Army's Ballistics Research Laboratory ENIAC (1946), which used decimal arithmetic and is sometimes called the first general purpose electronic computer (since Konrad Zuse's Z3 of 1941 used electromagnets instead of electronics). Initially, however, ENIAC had an inflexible architecture which essentially required rewiring to change its programming. &lt;br /&gt;Several developers of ENIAC, recognizing its flaws, came up with a far more flexible and elegant design, which came to be known as the stored program architecture or von Neumann architecture. This design was first formally described by John von Neumann in the paper "First Draft of a Report on the EDVAC", published in 1945. A number of projects to develop computers based on the stored program architecture commenced around this time, the first of these being completed in Great Britain. The first to be demonstrated working was the Manchester Small-Scale Experimental Machine (SSEM) or "Baby". However, the EDSAC, completed a year after SSEM, was perhaps the first practical implementation of the stored program design. Shortly thereafter, the machine originally described by von Neumann's paper—EDVAC—was completed but did not see full-time use for an additional two years.&lt;br /&gt;&lt;br /&gt;Nearly all modern computers implement some form of the stored program architecture, making it the single trait by which the word "computer" is now defined. By this standard, many earlier devices would no longer be called computers by today's definition, but are usually referred to as such in their historical context. While the technologies used in computers have changed dramatically since the first electronic, general-purpose computers of the 1940s, most still use the von Neumann architecture. The design made the universal computer a practical reality.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Microprocessors are miniaturized devices that often implement stored program CPUs.Vacuum tube-based computers were in use throughout the 1950s. Vacuum tubes were largely replaced in the 1960s by transistor-based computers. When compared with tubes, transistors are smaller, faster, cheaper, use less power, and are more reliable. In the 1970s, integrated circuit technology and the subsequent creation of microprocessors, such as the Intel 4004, caused another generation of decreased size and cost, and another generation of increased speed and reliability. By the 1980s, computers became sufficiently small and cheap to replace simple mechanical controls in domestic appliances such as washing machines. The 1980s also witnessed home computers and the now ubiquitous personal computer. With the evolution of the Internet, personal computers are becoming as common as the television and the telephone in the household.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Stored program architecture&lt;br /&gt;Main articles: Computer program and Computer programming&lt;br /&gt;The defining feature of modern computers which distinguishes them from all other machines is that they can be programmed. That is to say that a list of instructions (the program) can be given to the computer and it will store them and carry them out at some time in the future.&lt;br /&gt;&lt;br /&gt;In most cases, computer instructions are simple: add one number to another, move some data from one location to another, send a message to some external device, etc. These instructions are read from the computer's memory and are generally carried out (executed) in the order they were given. However, there are usually specialized instructions to tell the computer to jump ahead or backwards to some other place in the program and to carry on executing from there. These are called "jump" instructions (or branches). Furthermore, jump instructions may be made to happen conditionally so that different sequences of instructions may be used depending on the result of some previous calculation or some external event. Many computers directly support subroutines by providing a type of jump that "remembers" the location it jumped from and another instruction to return to the instruction following that jump instruction.&lt;br /&gt;&lt;br /&gt;Program execution might be likened to reading a book. While a person will normally read each word and line in sequence, they may at times jump back to an earlier place in the text or skip sections that are not of interest. Similarly, a computer may sometimes go back and repeat the instructions in some section of the program over and over again until some internal condition is met. This is called the flow of control within the program and it is what allows the computer to perform tasks repeatedly without human intervention.&lt;br /&gt;&lt;br /&gt;Comparatively, a person using a pocket calculator can perform a basic arithmetic operation such as adding two numbers with just a few button presses. But to add together all of the numbers from 1 to 1,000 would take thousands of button presses and a lot of time—with a near certainty of making a mistake. On the other hand, a computer may be programmed to do this with just a few simple instructions. For example:&lt;br /&gt;&lt;br /&gt;        mov      #0,sum     ; set sum to 0&lt;br /&gt;        mov      #1,num     ; set num to 1&lt;br /&gt;loop:   add      num,sum    ; add num to sum&lt;br /&gt;        add      #1,num     ; add 1 to num&lt;br /&gt;        cmp      num,#1000  ; compare num to 1000&lt;br /&gt;        ble      loop       ; if num &lt;= 1000, go back to 'loop'&lt;br /&gt;        halt                ; end of program. stop running&lt;br /&gt;Once told to run this program, the computer will perform the repetitive addition task without further human intervention. It will almost never make a mistake and a modern PC can complete the task in about a millionth of a second.[5]&lt;br /&gt;&lt;br /&gt;However, computers cannot "think" for themselves in the sense that they only solve problems in exactly the way they are programmed to. An intelligent human faced with the above addition task might soon realize that instead of actually adding up all the numbers one can simply use the equation&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;and arrive at the correct answer (500,500) with little work.[6] In other words, a computer programmed to add up the numbers one by one as in the example above would do exactly that without regard to efficiency or alternative solutions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-1269397857370484825?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/1269397857370484825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=1269397857370484825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1269397857370484825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/1269397857370484825'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/computer.html' title='Computer'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-317844076565462750</id><published>2008-04-08T12:37:00.000-07:00</published><updated>2008-04-08T12:38:49.689-07:00</updated><title type='text'>E-mail</title><content type='html'>E-mail, short for electronic mail and often abbreviated to e-mail, email or simply mail, is a store and forward method of composing, sending, receiving and storing messages over electronic communication systems. The term "e-mail" (as a noun or verb) applies both to the Internet e-mail system based on the Simple Mail Transfer Protocol (SMTP) and to X.400 systems, and to intranet systems allowing users within one organization to e-mail each other. Intranets may use the Internet protocols or X.400 protocols for internal e-mail service supporting workgroup collaboration. E-mail is often used to deliver bulk unsolicited messages, or "spam", but filter programs exist which can automatically delete some or most of these, depending on the situation.&lt;br /&gt;&lt;br /&gt;Spelling of this term is disputed. Many now regard the word "email" as a perfectly valid and formal word in its own right, and regard the abbreviation "e-mail" as anachronistic.[1] The word "email" is recognized as a valid alternative in some major dictionaries.[2][3][4][5][6] The computer industry and web sites still use both variants.&lt;br /&gt;&lt;br /&gt;Usage examples from prominent style guides:&lt;br /&gt;&lt;br /&gt;Chicago Manual of Style (CMS), 15th edition:[7][8] e-mail. CMS is widely referenced as the standard for technical writing and journalism style guidelines in the United States.[9] &lt;br /&gt;Microsoft Manual of Style for Technical Publications e-mail, explicitly saying "maintain the hyphenation". O'Reilly and Amazon.com assert that "many top notch technical companies, writers, and editors consider the Microsoft Manual of Style for Technical Publications to be a standard in the industry."[10] &lt;br /&gt;IEEE Computer Society recommends hyphenation in e-mail, deferring to the Chicago Manual of Style explicitly,[11] and using it in their own materials.[12] &lt;br /&gt;Associated Press (Global News Network) Style Guide:[13] e-mail &lt;br /&gt;Usage examples from prominent companies include:&lt;br /&gt;&lt;br /&gt;e-mail: CNN, The New York Times, Microsoft,[14] HP,[15] IBM,[16] Dell,[17] Amazon.com,[18] CNET [19] The Times,[20] The Economist[21] &lt;br /&gt;email: Google, Apple, Yahoo!, eBay [22], The Guardian [23] &lt;br /&gt;Inconsistent: BBC, Intel [24][25] &lt;br /&gt;The original RFC definitions for the SMTP standard,[26] the POP standard,[27] and the IMAP standard [28] contain neither e-mail nor email, instead using the terms mail and message. Authors of later RFCs for SMTP use the term email (in addition to mail and message).[29] However, the latest RFC for POP uses mail and message.[30] Hyphens sometimes disappear from words originally coined with them after the term has come into widespread use,[31] although many of those words would still have the same pronunciation following normal English rules, such as web-site vs. website, non-zero vs. nonzero.[citation needed] In contrast, email (without a hyphen) following normal rules is not necessarily the same pronunciation as e-mail.[citation needed] Without the hyphen but keeping the same pronunciation, it would not follow pronunciation patterns of typical English words starting with em, such as emphasis or ember.[citation needed] Even the common English words that start with ema (dictionary search) have a short and/or soft e sound: emaciated, emanate, emasculate, emancipate,[32] rather than a separate syllable for a long-e[33] sound as in e-mail.[34][35]&lt;br /&gt;&lt;br /&gt;The sixth edition of the Shorter Oxford English Dictionary removed hyphens from some 16,000 words that previously employed them[36] although many of those were not merging the words, but removals that resulted in splitting original words into two words ("fig leaf", "hobby horse", "test tube", "ice cream").[37]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Origin&lt;br /&gt;E-mail predates the inception of the Internet, and was in fact a crucial tool in creating the Internet. MIT first demonstrated the Compatible Time-Sharing System (CTSS) in 1961.[38] It allowed multiple users to log into the IBM 7094[39] from remote dial-up terminals, and to store files online on disk. This new ability encouraged users to share information in new ways. E-mail started in 1965 as a way for multiple users of a time-sharing mainframe computer to communicate. Although the exact history is murky, among the first systems to have such a facility were SDC's Q32 and MIT's CTSS.&lt;br /&gt;&lt;br /&gt;E-mail was quickly extended to become network e-mail, allowing users to pass messages between different computers by at least 1966 (it is possible the SAGE system had something similar some time before).&lt;br /&gt;&lt;br /&gt;The ARPANET computer network made a large contribution to the development of e-mail. There is one report that indicates experimental inter-system e-mail transfers on it shortly after its creation in 1969.[40] Ray Tomlinson initiated the use of the @ sign to separate the names of the user and their machine in 1971.[41] The ARPANET significantly increased the popularity of e-mail, and it became the killer app of the ARPANET.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Workings&lt;br /&gt;&lt;br /&gt;[edit] Example&lt;br /&gt;&lt;br /&gt;The diagram above shows a typical sequence of events that takes place when Alice composes a message using her mail user agent (MUA). She types in, or selects from an address book, the e-mail address of her correspondent. She hits the "send" button.&lt;br /&gt;&lt;br /&gt;Her MUA formats the message in Internet e-mail format and uses the Simple Mail Transfer Protocol (SMTP) to send the message to the local mail transfer agent (MTA), in this case smtp.a.org, run by Alice's Internet Service Provider (ISP). &lt;br /&gt;The MTA looks at the destination address provided in the SMTP protocol (not from the message header), in this case bob@b.org. An Internet e-mail address is a string of the form localpart@exampledomain.com, which is known as a Fully Qualified Domain Address (FQDA). The part before the @ sign is the local part of the address, often the username of the recipient, and the part after the @ sign is a domain name. The MTA looks up this domain name in the Domain Name System to find the mail exchange servers accepting messages for that domain. &lt;br /&gt;The DNS server for the b.org domain, ns.b.org, responds with an MX record listing the mail exchange servers for that domain, in this case mx.b.org, a server run by Bob's ISP. &lt;br /&gt;smtp.a.org sends the message to mx.b.org using SMTP, which delivers it to the mailbox of the user bob. &lt;br /&gt;Bob presses the "get mail" button in his MUA, which picks up the message using the Post Office Protocol (POP3). &lt;br /&gt;This sequence of events applies to the majority of e-mail users. However, there are many alternative possibilities and complications to the e-mail system:&lt;br /&gt;&lt;br /&gt;Alice or Bob may use a client connected to a corporate e-mail system, such as IBM Lotus Notes or Microsoft Exchange. These systems often have their own internal e-mail format and their clients typically communicate with the e-mail server using a vendor-specific, proprietary protocol. The server sends or receives e-mail via the Internet through the product's Internet mail gateway which also does any necessary reformatting. If Alice and Bob work for the same company, the entire transaction may happen completely within a single corporate e-mail system. &lt;br /&gt;Alice may not have a MUA on her computer but instead may connect to a webmail service. &lt;br /&gt;Alice's computer may run its own MTA, so avoiding the transfer at step 1. &lt;br /&gt;Bob may pick up his e-mail in many ways, for example using the Internet Message Access Protocol, by logging into mx.b.org and reading it directly, or by using a webmail service. &lt;br /&gt;Domains usually have several mail exchange servers so that they can continue to accept mail when the main mail exchange server is not available. &lt;br /&gt;E-mail messages are not secure if e-mail encryption is not used correctly. &lt;br /&gt;It used to be the case that many MTAs would accept messages for any recipient on the Internet and do their best to deliver them. Such MTAs are called open mail relays. This was important in the early days of the Internet when network connections were unreliable. If an MTA couldn't reach the destination, it could at least deliver it to a relay that was closer to the destination. The relay would have a better chance of delivering the message at a later time. However, this mechanism proved to be exploitable by people sending unsolicited bulk e-mail and as a consequence very few modern MTAs are open mail relays, and many MTAs will not accept messages from open mail relays because such messages are very likely to be spam.&lt;br /&gt;&lt;br /&gt;Note that the people, e-mail addresses and domain names in this explanation are fictional: see Alice and Bob.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Format&lt;br /&gt;The format of Internet e-mail messages is defined in RFC 2822 and a series of RFCs, RFC 2045 through RFC 2049, collectively called Multipurpose Internet Mail Extensions (MIME). Although as of July 13, 2005 RFC 2822 is technically a proposed IETF standard and the MIME RFCs are draft IETF standards,[42] these documents are the de facto standards for the format of Internet e-mail. Prior to the introduction of RFC 2822 in 2001 the format described by RFC 822 was the de facto standard for Internet e-mail for nearly two decades; it is still the official IETF standard. The IETF reserved the numbers 2821 and 2822 for the updated versions of RFC 821 (SMTP) and RFC 822, honoring the extreme importance of these two RFCs. RFC 822 was published in 1982 and based on the earlier RFC 733.&lt;br /&gt;&lt;br /&gt;Internet e-mail messages consist of two major sections:&lt;br /&gt;&lt;br /&gt;Header — Structured into fields such as summary, sender, receiver, and other information about the e-mail &lt;br /&gt;Body — The message itself as unstructured text; sometimes containing a signature block at the end &lt;br /&gt;The header is separated from the body by a blank line.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Header&lt;br /&gt;The message header consists of fields, usually including at least the following:&lt;br /&gt;&lt;br /&gt;From: The e-mail address, and optionally the name of the sender &lt;br /&gt;To: The e-mail address[es], and optionally name[s] of the message's recipient[s] &lt;br /&gt;Subject: A brief summary of the contents of the message &lt;br /&gt;Date: The local time and date when the message was written &lt;br /&gt;Each header field has a name and a value. RFC 2822 specifies the precise syntax. Informally, the field name starts in the first character of a line, followed by a ":", followed by the value which is continued on non-null subsequent lines that have a space or tab as their first character. Field names and values are restricted to 7-bit ASCII characters. Non-ASCII values may be represented using MIME encoded words.&lt;br /&gt;&lt;br /&gt;Note that the "To" field in the header is not necessarily related to the addresses to which the message is delivered. The actual delivery list is supplied in the SMTP protocol, not extracted from the header content. The "To" field is similar to the greeting at the top of a conventional letter which is delivered according to the address on the outer envelope. Also note that the "From" field does not have to be the real sender of the e-mail message. It is very easy to fake the "From" field and let a message seem to be from any mail address. It is possible to digitally sign e-mail, which is much harder to fake. Some Internet service providers do not relay e-mail claiming to come from a domain not hosted by them, but very few (if any) check to make sure that the person or even e-mail address named in the "From" field is the one associated with the connection. Some Internet service providers apply e-mail authentication systems to e-mail being sent through their MTA to allow other MTAs to detect forged spam that might apparently appear to be from them.&lt;br /&gt;&lt;br /&gt;Other common header fields include (see RFC 4021 or RFC 2076 for more):&lt;br /&gt;&lt;br /&gt;Cc: carbon copy &lt;br /&gt;Bcc: Blind Carbon Copy &lt;br /&gt;Received: Tracking information generated by mail servers that have previously handled a message &lt;br /&gt;Content-Type: Information about how the message has to be displayed, usually a MIME type &lt;br /&gt;Reply-To: Address that should be used to reply to the sender. &lt;br /&gt;References: Message-ID of the message that this is a reply to, and the message-id of this message, etc. &lt;br /&gt;In-Reply-To: Message-ID of the message that this is a reply to. &lt;br /&gt;X-Face: Small icon. &lt;br /&gt;Many e-mail clients present "Bcc" (Blind carbon copy, recipients not visible in the "To" field) as a header field. Different protocols are used to deal with the "Bcc" field; at times the entire field is removed, whereas other times the field remains but the addresses therein are removed. Addresses added as "Bcc" are only added to the SMTP delivery list, and do not get included in the message data.&lt;br /&gt;&lt;br /&gt;IANA maintains a list of standard header fields.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Body&lt;br /&gt; This section needs additional citations for verification.&lt;br /&gt;Please help improve this article by adding reliable references. Unsourced material may be challenged and removed. (November 2007) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Content encoding&lt;br /&gt;E-mail was originally designed for 7-bit ASCII. Much e-mail software is 8-bit clean but must assume it will be communicating with 7-bit servers and mail readers. The MIME standard introduced character set specifiers and two content transfer encodings to enable transmission of non-ASCII data: quoted printable for mostly 7 bit content with a few characters outside that range and base64 for arbitrary binary data. The 8BITMIME extension was introduced to allow transmission of mail without the need for these encodings but many mail transport agents still don't support it fully. For international character sets, Unicode is growing in popularity.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Plain Text and HTML&lt;br /&gt;Both plain text and HTML are used to convey e-mail. While text is certain to be read by all users without problems, there is a perception that HTML-based e-mail has a higher aesthetic value. Advantages of HTML include the ability to include inline links and images, set apart previous messages in block quotes, wrap naturally on any display, use emphasis such as underlines and italics, and change font styles. HTML e-mail messages often include an automatically-generated plain text copy as well, for compatibility reasons. Disadvantages include the increased size of the email, privacy concerns about web bugs and that HTML email can be a vector for phishing attacks and the spread of malicious software.[43]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Servers and client applications&lt;br /&gt;Messages are exchanged between hosts using the Simple Mail Transfer Protocol with software programs called mail transport agents. Users can download their messages from servers with standard protocols such as the POP or IMAP protocols, or, as is more likely in a large corporate environment, with a proprietary protocol specific to Lotus Notes or Microsoft Exchange Servers.&lt;br /&gt;&lt;br /&gt;Mail can be stored either on the client, on the server side, or in both places. Standard formats for mailboxes include Maildir and mbox. Several prominent e-mail clients use their own proprietary format and require conversion software to transfer e-mail between them.&lt;br /&gt;&lt;br /&gt;When a message cannot be delivered, the recipient MTA must send a bounce message back to the sender, indicating the problem.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Filename extensions&lt;br /&gt;Most, but not all, e-mail clients save individual messages as separate files, or allow users to do so. Different applications save e-mail files with different filename extensions.&lt;br /&gt;&lt;br /&gt;.eml &lt;br /&gt;This is the default e-mail extension for Mozilla Thunderbird and Windows Mail. It is used by Microsoft Outlook Express. &lt;br /&gt;.emlx &lt;br /&gt;Used by Apple Mail. &lt;br /&gt;.msg &lt;br /&gt;Used by Microsoft Office Outlook. &lt;br /&gt;&lt;br /&gt;[edit] Use&lt;br /&gt; This section needs additional citations for verification.&lt;br /&gt;Please help improve this article by adding reliable references. Unsourced material may be challenged and removed. (November 2007) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] In society&lt;br /&gt;&lt;br /&gt;[edit] Flaming&lt;br /&gt;Many observers bemoan the rise of flaming in written communications. Flaming occurs when one person sends an angry and/or antagonistic message. Flaming is assumed to be more common today because of the ease and impersonality of e-mail communications: confrontations in person or via telephone require direct interaction, where social norms encourage civility, whereas typing a message to another person is an indirect interaction, so civility may be forgotten.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] E-mail bankruptcy&lt;br /&gt;Is when you ignore a large number of e-mail messages after falling behind in reading and answering them. Sometimes it involves sending a boilerplate message explaining that the email inbox is being cleared out. Stanford University law professor Lawrence Lessig is credited with coining this term, but he may only have popularized it.[44]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] In business&lt;br /&gt;E-mail was widely accepted by the business community as the first broad electronic communication medium and was the first ‘e-revolution’ in Business communication. E-mail is very simple to understand and like postal mail, e-mail solves two basic problems of communication. LAN based email is also an emerging form of usage for business. It not only allows the business user to download mail when offline, it also provides the small business user to have multiple users email ID's with just one email connection.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Pros&lt;br /&gt;The problem of logistics &lt;br /&gt;Much of the business world relies on communication between individuals who are physically distant from one another; organizing and participating in an in-person meeting can be time-consuming and expensive. E-mail provides a near-instantaneous exchange of information at little cost. Teleconferencing bridges physical distance, but the logistics of gathering people together at the same time remains.&lt;br /&gt;&lt;br /&gt;The problem of synchronization &lt;br /&gt;For real time communication, participants generally have to be working on the same schedule. They need to be at the same place at the same time and spend the same amount of time on the same information.&lt;br /&gt;&lt;br /&gt;E-mail allows each participant to decide when and how they will process the information.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Cons&lt;br /&gt;Most business professionals today spend between 20% and 50% of their working time using e-mail:[45] reading, ordering, sorting, ‘re-contextualizing’ fragmented information and of course writing e-mail. Use of e-mail is increasing, due to trends of globalization—distribution of organizational divisions, outsourcing, among others. E-mail can lead to some well-known problems:&lt;br /&gt;&lt;br /&gt;Loss of Context: Information in context (as in a newspaper) is much easier and faster to understand than unsorted fragments. Communicating in context is faster and more efficient. &lt;br /&gt;Spam: E-mail is a push-only medium: control of who receives information lies primarily with the sender. This can lead to an overflow of unwanted or irrelevant information. &lt;br /&gt;Inconsistency: E-mail can duplicate information. This may be a problem when a team is collaboratively working on documents. &lt;br /&gt;Despite these disadvantages, and despite the availability of other tools, e-mail-based communication is still the most widely used written medium in businesses.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Challenges&lt;br /&gt; This section needs additional citations for verification.&lt;br /&gt;Please help improve this article by adding reliable references. Unsourced material may be challenged and removed. (November 2007) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Spamming and computer viruses&lt;br /&gt;The usefulness of e-mail is being threatened by four phenomena: e-mail bombardment, spamming, phishing and e-mail worms.&lt;br /&gt;&lt;br /&gt;Spamming is unsolicited commercial e-mail. Because of the very low cost of sending e-mail, spammers can send hundreds of millions of e-mail messages each day over an inexpensive Internet connection. Hundreds of active spammers sending this volume of mail results in information overload for many computer users who receive voluminous unsolicted email each day.&lt;br /&gt;&lt;br /&gt;E-mail worms use e-mail as a way of replicating themselves into vulnerable computers. Although the first e-mail worm affected UNIX computers, the problem is most common today on the more popular Microsoft Windows operating system.&lt;br /&gt;&lt;br /&gt;The combination of spam and worm programs results in users receiving a constant drizzle of junk e-mail, which reduces the usefulness of e-mail as a practical tool.&lt;br /&gt;&lt;br /&gt;A number of anti-spam techniques mitigate the impact of spam. In the United States, U.S. Congress has also passed a law, the Can Spam Act of 2003, attempting to regulate such e-mail. Australia also has very strict spam laws restricting the sending of spam from an Australian ISP,[46] but its impact has been minimal since most spam comes from regimes that seem reluctant to regulate the sending of spam.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Privacy concerns&lt;br /&gt;Main article: e-mail privacy&lt;br /&gt;E-mail privacy, without some security precautions, can be compromised because:&lt;br /&gt;&lt;br /&gt;e-mail messages are generally not encrypted; &lt;br /&gt;e-mail messages have to go through intermediate computers before reaching their destination, meaning it is relatively easy for others to intercept and read messages; &lt;br /&gt;many Internet Service Providers (ISP) store copies of your e-mail messages on their mail servers before they are delivered. The backups of these can remain up to several months on their server, even if you delete them in your mailbox; &lt;br /&gt;the Received: headers and other information in the e-mail can often identify the sender, preventing anonymous communication. &lt;br /&gt;There are cryptography applications that can serve as a remedy to one or more of the above. For example, Virtual Private Networks or the Tor anonymity network can be used to encrypt traffic from the user machine to a safer network while GPG, PGP or S/MIME can be used for end-to-end message encryption, and SMTP STARTTLS or SMTP over Transport Layer Security/Secure Sockets Layer can be used to encrypt communications for a single mail hop between the SMTP client and the SMTP server.&lt;br /&gt;&lt;br /&gt;Additionally, many mail user agents do not protect logins and passwords, making them easy to intercept by an attacker. Encrypted authentication schemes such as SASL prevent this.&lt;br /&gt;&lt;br /&gt;Finally, attached files share many of the same hazards as those found in peer-to-peer filesharing. Attached files may contain trojans or viruses.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] Tracking of sent mail&lt;br /&gt;E-mail traditionally provides no mechanism for tracking a sent message. The system(s) involved will generally make an effort to either deliver mail or return a failure notice ("bounce message"), but there is no guarantee that a message will actually be delivered, let alone read by the recipient. This is in contrast to the postal mail system, which offers registered mail or other forms of tracking and tracing.&lt;br /&gt;&lt;br /&gt;To remedy this, the IETF introduced Delivery Status Notifications (delivery receipts) and Message Disposition Notifications (return receipts).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[edit] US Government&lt;br /&gt;The US Government has been involved in e-mail in several different ways.&lt;br /&gt;&lt;br /&gt;Starting in 1977, the US Postal Service (USPS) recognized the electronic mail and electronic transactions posed a significant threat to First Class mail volumes and revenue. Therefore, the USPS initiated an experimental e-mail service known as E-COM. Electronic messages would be transmitted to a post office, printed out, and delivered in hard copy form. In order to take advantage of the service, an individual had to transmit at least 200 messages. The delivery time of the messages was the same as First Class mail and cost 26 cents. The service was said to be subsidized and apparently USPS lost substantial money on the experiment. Both the US Postal Commission and the Federal Communications Commission opposed E-COM. The FCC concluded that E-COM constituted common carriage under its jurisdiction and the USPS would have to file a tariff.[47] Three years after initiating the service, USPS canceled E-COM and attempted to sell it off.[48][49][50][51][52][53][54]&lt;br /&gt;&lt;br /&gt;Early on in the history of the ARPANet, there were multiple e-mail clients which had various, and at times, incompatible formats. For example, in the system Multics, the "@" sign meant "kill line" and anything after the "@" sign would be ignored.[55] The Department of Defense DARPA desired to have uniformity and interoperability for e-mail and therefore funded efforts to drive towards unified interoperable standards. This led to David Crocker, John Vittal, Kenneth Pogran, and Austin Henderson publishing RFC 733, "Standard for the Format of ARPA Network Text Message" (Nov. 21, 1977), which was apparently not effective. In 1979, a meeting was held at BBN to resolve incompatibility issues. Jon Postel recounted the meeting in RFC 808, "Summary of Computer Mail Services Meeting Held at BBN on 10 January 1979" (March 1, 1982), which includes an appendix listing the varying e-mail systems at the time. This, in turn, lead to the release of David Crocker's RFC 822, "Standard for the Format of ARPA Internet Text Messages" (Aug. 13, 1982).[56]&lt;br /&gt;&lt;br /&gt;The National Science Foundation took over operations of the ARPANet and Internet from the Department of Defense, and initiated NSFNet, a new backbone for the network. A part of the NSFNet AUP was that no commercial traffic would be permitted.[57] In 1988, Vint Cerf arranged for an interconnection of MCI Mail with NSFNET on an experimental basis. The following year Compuserve e-mail interconnected with NSFNET. Within a few years the commercial traffic restriction was removed from NSFNETs AUP, and NSFNET was privitized.&lt;br /&gt;&lt;br /&gt;In the late 1990s, the Federal Trade Commission grew concerned with fraud transpiring in e-mail, and initiated a series of procedures on SPAM, fraud, and phishing.[58] In 2004, FTC jurisdiction over SPAM was codified into law in the form of the CAN SPAM Act.[59] Several other US Federal Agencies have also exercised jurisdiction including the Department of Justice and the Secret Service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7538987153267754926-317844076565462750?l=egy-com.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://egy-com.blogspot.com/feeds/317844076565462750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7538987153267754926&amp;postID=317844076565462750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/317844076565462750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7538987153267754926/posts/default/317844076565462750'/><link rel='alternate' type='text/html' href='http://egy-com.blogspot.com/2008/04/e-mail.html' title='E-mail'/><author><name>egytrade</name><uri>http://www.blogger.com/profile/14817000059972046840</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7538987153267754926.post-6782862474476183317</id><published>2008-04-08T12:36:00.000-07:00</published><updated>2008-04-08T12:37:08.904-07:00</updated><title type='text'>Google Privacy Policy</title><content type='html'>At Google we recognize that privacy is important. This Policy applies to all of the products, services and websites offered by Google Inc. or its subsidiaries or affiliated companies (collectively, Google's "services"). In addition, where more detailed information is needed to explain our privacy practices, we post separate privacy notices to describe how particular services process personal information, which are accessible from the navigation bar to the left of this notice.&lt;br /&gt;&lt;br /&gt;Google adheres to the US safe harbor privacy principles of Notice, Choice, Onward Transfer, Security, Data Integrity, Access and Enforcement, and is registered with the U.S. Department of Commerce's safe harbor program.&lt;br /&gt;&lt;br /&gt;If you have any questions about this Policy, please feel free to contact us through our website or write to us at Privacy Matters, c/o Google Inc., 1600 Amphitheatre Parkway, Mountain View, California, 94043 USA.&lt;br /&gt;&lt;br /&gt;Information we collect and how we use it&lt;br /&gt;We offer a number of services that do not require you to register for an account or provide any personal information to us, such as Google Search. In order to provide our full range of services, we may collect the following types of information:&lt;br /&gt;&lt;br /&gt;Information you provide - When you sign up for a Google Account or other Google service or promotion that requires registration, we ask you for personal information (such as your name, email address and an account password). For certain services, such as our advertising programs, we also request credit card or other payment account information which we maintain in encrypted form on secure servers. We may combine the information you submit under your account with information from other Google services or third parties in order to provide you with a better experience and to improve the quality of our services. For certain services, we may give you the opportunity to opt out of combining such information. &lt;br /&gt;&lt;br /&gt;Google cookies - When you visit Google, we send one or more cookies - a small file containing a string of characters - to your computer that uniquely identifies your browser. We use cookies to improve the quality of our service by storing user preferences and tracking user trends, such as how people search. Most browsers are initially set up to accept cookies, but you can reset your browser to refuse all cookies or to indicate when a cookie is being sent. However, some Google features and services may not function properly if your cookies are disabled. &lt;br /&gt;&lt;br /&gt;Log information - When you use Google services, our servers automatically record information that your browser sends whenever you visit a website. These server logs may include information such as your web request, Internet Protocol address, browser type, browser language, the date and time of your request and one or more cookies that may uniquely identify your browser. &lt;br /&gt;&lt;br /&gt;User communications - When you send email or other communication to Google, we may retain those communications in order to process your inquiries, respond to your requests and improve our services. &lt;br /&gt;&lt;br /&gt;Affiliated sites - We offer some of our services in connection with other web sites. Personal information that you provide to those sites may be sent to Google in order to deliver the service. We process such information in accordance with this Policy. The affiliated sites may have different privacy practices and we encourage you to read their privacy policies. &lt;br /&gt;&lt;br /&gt;Links - Google may present links in a format that enables us to keep track of whether these links have been followed. We use this information to improve the quality of our search technology, customized content and advertising. For more information about links and redirected URLs, please see our FAQs. &lt;br /&gt;&lt;br /&gt;Other sites - This Privacy Policy applies to web sites and services that are owned and operated by Google. We do not exercise control over the sites displayed as search results or links from within our various services. These other sites may place their own cookies or other files on your computer, collect data or solicit personal information from you. &lt;br /&gt;&lt;br /&gt;Google only processes personal information for the purposes described in the applicable Privacy Policy and/or privacy notice for specific services. In addition to the above, such purposes include:&lt;br /&gt;&lt;br /&gt;Providing our products and services to users, including the display of customized content and advertising; &lt;br /&gt;Auditing, research and analysis in order to maintain, protect and improve our services; &lt;br /&gt;Ensuring the technical functioning of our network; and &lt;br /&gt;Developing new services. &lt;br /&gt;You can find more information about how we process personal information by referring to the privacy notices for particular services. &lt;br /&gt;&lt;br /&gt;Google processes personal information on our servers in the United States of America and in other countries. In some cases, we process personal information on a server outside your own country. We may process personal information to provide our own services. In some cases, we may process personal information on behalf of and according to the instructions of a third party, such as our advertising partners.&lt;br /&gt;&lt;br /&gt;Choices for personal information &lt;br /&gt;When you sign up for a particular service that requires registration, we ask you to provide personal information. If we use this information in a manner different than the purpose for which it was collected, then we will ask for your consent prior to such use. &lt;br /&gt;&lt;br /&gt;If we propose to use personal information for any purposes other than those described in this Policy and/or in the specific service notices, we will offer you an effective way to opt out of the use of personal information for those other purposes. We will not collect or use sensitive information for purposes other than those described in this Policy and/or in the specific service notices, unless we have obtained your prior consent. &lt;br /&gt;&lt;br /&gt;You can decline to submit personal information to any of our services, in which case Google may not be able to provide those services to you. &lt;br /&gt;&lt;br /&gt;Information sharing &lt;br /&gt;Google only shares personal information with other companies or individuals outside of Google in the following limited circumstances: &lt;br /&gt;&lt;br /&gt;We have your consent. We require opt-in consent for the sharing of any sensitive personal information. &lt;br /&gt;&lt;br /&gt;We provide such information to our subsidiaries, affiliated companies or other trusted businesses or persons for the purpose of processing personal information on our behalf. We require that these parties agree to process such information based on our instructions and in compliance with this Policy and any other appropriate confidentiality and security measures. &lt;br /&gt;&lt;br /&gt;We have a good faith belief that access, use, preservation or disclosure of such information is reasonably necessary to (a) satisfy any applicable law, regulation, legal process or enforceable governmental request, (b) enforce applicable Terms of Service, including investigation of potential violations thereof, (c) detect, prevent, or otherwise address fraud, security or technical issues, or (d) protect against imminent harm to the rights, property or safety of Google, its users or the public as required or permitted by law. &lt;br /&gt;&lt;br /&gt;If Google becomes involved in a merger, acquisition, or any form of sale of some or all of its assets, we will provide notice before personal information is transferred and becomes subject to a different privacy policy. &lt;br /&gt;&lt;br /&gt;We may share with third parties certain pieces of aggregated, non-personal information, such as the number of users who searched for a particular term, for example, or how many users clicked on a particular advertisement. Such information does not identify you individually. &lt;br /&gt;&lt;br /&gt;Please contact us at the address below for any additional questions about the management or use of personal data. &lt;br /&gt;&lt;br /&gt;Information security &lt;br /&gt;We take appropriate security measures to protect against unauthorized access to or unauthorized alteration, disclosure or destruction of data. These include internal reviews of our data collection, storage and processing practices and security measures, as well as physical security measures to guard against unauthorized access to systems where we store personal data. &lt;br /&gt;&lt;br /&gt;We restrict access to personal information to Google employees, contractors and agents who need to know that information in order to operate, develop or improve our services. These individuals are bound by confidentiality obligations and may be subject to discipline, including termination and criminal prosecution, if they fail to meet these obligations. &lt;br /&gt;&lt;br /&gt;Data integrity &lt;br /&gt;Google processes personal information only for the purposes for which it was collected and in accordance with this Policy or any applicable service-specific privacy notice. We review our data collection, storage and processing practices to ensure that we only collect, store and process the personal information needed to provide or improve our services. We take reasonable steps to ensure that the personal information we process is accurate, complete, and current, but we depend on our users to update or correct their personal information whenever necessary. &lt;br /&gt;&lt;br /&gt;Accessing and updating personal information &lt;br /&gt;When you use Google services, we make good faith efforts t
