Phoenix, Arizona and Processor design: Difference between pages

(Difference between pages)
Content deleted Content added
m not sure how, but this had a quote box around it
 
 
Line 1:
To a large extent, the [[design]] of a '''CPU''', or [[central processing unit]], is the design of its [[control unit]]. The modern (ie, 1965 to 1985) way to design control logic is to write a [[microprogram]].
:''This article is about the city in Arizona. For the mythical creature see [[Phoenix]], and other uses see [[Phoenix (disambiguation)]].''
{| border="2" cellpadding="4" cellspacing="0" style="margin:0.9em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" width="300px" align="right" style="border: 1em solid white")
<caption><font size="+1">'''Phoenix, Arizona'''</font></caption>
|-
| align="center" colspan=2 | [[Image:Phxdowntown.jpg|300px]]
|-
| align="center" width="300px" | [[Image:PhoenixAZ.jpg|100px|]]
| align="center" width="300px" | [[Image:PhoenixCitySeal.jpeg|100px]]
|-
| align="center" width="140px" | City [[flag]]
| align="center" width="140px" | City [[Seal (device)|seal]]
|-
| align="center" colspan=2 | <font size="-1">City [[nickname]]: "Valley of the Sun"</font>
|-
| align="center" colspan=2 | [[Image:Phoenix in Maricopa County map.png|250px]]<br>Location in [[Maricopa County, Arizona|Maricopa County]] and [[Arizona]]
|-
| [[County (United States)|County]]
| [[Maricopa County, Arizona]]
|-
| [[Area]]<br>&nbsp;- Total<br>&nbsp;- Water
| <br>1,230.5&nbsp;km&sup2; (475.1&nbsp;mi&sup2;)<br>0.6&nbsp;km&sup2; (0.2&nbsp;mi&sup2;) 0.05%
|-
| [[Population]]<br>&nbsp;- Total ([[2000]])<br>&nbsp;- [[Metropolitan area|Metropolitan]]<br>&nbsp;- [[Density]]
| <br>1,416,055 <br>3,251,876 <br>1,074/km&sup2;
|-
| [[Time zone]]
| [[Mountain Standard Time Zone|Mountain]]: [[Coordinated Universal Time|UTC]]&ndash;7
|-
| [[Geographic coordinate system|Location]] || {{coor dms|33|31|42|N|112|4|35|W|region:GR}}
|-
| [[Mayor]]
| Phil Gordon
|-
| align="center" colspan=2 | [http://www.phoenix.gov/ City website]
|}
'''Phoenix''' was incorporated as a city on [[February 5]], [[1881]]. It is the [[capital]], largest [[City|city]] and largest [[metropolitan area]] in the state of [[Arizona]] in the southwestern [[United States]], 150 miles (241 km) northwest of [[Tucson, Arizona|Tucson]]. It is also the [[county seat]] of [[Maricopa County, Arizona|Maricopa County]] and the principal city of the [[Phoenix metropolitan area]]. Phoenix is appropriately called ''Hoodzo'' (which translates to, ''"the place is hot,"'' in the [[Navajo language|Navajo]] language) and ''Fiinigis'' in the [[Western Apache]] language.
 
CPU design was originally an [[ad-hoc]] process. Just getting a CPU to work was a substantial governmental and technical event.
The following is a statement of the number of people living in Phoenix by decades: [[1890]], 3,152; [[1900]], 5,544; [[1910]], 11,134; [[1920]], 29,053; [[1940]], 65,414. Today, Phoenix is the sixth-largest city in the U.S., with a population of 1,321,045 (according to the [[2000]] [[U.S. Census]]); [[2004]] estimates of the population are approximately 1,418,041. The Phoenix [[Metropolitan Statistical Area]] (MSA) is currently the fourteenth largest MSA of the United States, with a population of 3,251,876 (according to the [[2000]] [[U.S. Census]]); with a [[2004]] estimate of 3,790,000. It ranks as the eighth fastest growing metropolitan area in the U.S.
 
Key design innovations include [[CPU cache|cache]], [[virtual memory]], [[instruction pipelining]], [[superscalar]], [[CISC]], [[RISC]], [[virtual machine]], [[emulators]], [[microprogram]], and [[Stack (computing)|Stack]].
Phoenix is also the largest capital city by population in the U.S. (including [[Washington, DC]]), and the third largest capital city by area in the U.S. (behind [[Juneau, AK]] and [[Oklahoma City, OK]]).
 
== History ==of general purpose CPUs ==
Phoenix was incorporated in [[1881]], the charter of that year being revised in [[1893]].
 
===Prehistory 1950s: early designs ===
The earliest settlers in the Valley of the Sun were the [[Hohokam]] people, who lived there as early as 300 BC. They were the first to farm there, building an elaborate canal system that brought water from the Salt River. Their name is derived from their [[O'odham language|O'odham]] name, ''Huhu:gam''. They also lived in the [[Pueblo Grande]] ruins between 700 and 1400 A.D. Their irrigation system comprised some 135 miles (217 km) of canals. Their disappearance ca. 1450 A.D. remains a mystery. Prolonged drought may have destroyed or displaced them; or, they may be the ancestors of the modern Pima who now live on the [[Salt River]] and [[Gila River]] reservations and the [[Tohono O'odham]] who live in southern Arizona.
 
Each of the computer designs of the early 1950s was a unique design; there were no upward-compatible machines or computer architectures with multiple, differing implementations. Programs written for one machine would not run on another kind, even other kinds from the same company. This was not a major drawback at the time because there was not a large body of software developed to run on computers, so starting programming from scratch was not seen as a large barrier.
===Origin of the city===
In [[1867]], [[Jack Swilling]] of [[Wickenburg, Arizona|Wickenburg]] stopped to rest his horse at the foot of the north slopes of the White Tank Mountains. He looked down across the expansive [[Salt River (Arizona)|Salt River]] Valley and his eyes caught the rich gleam of the brown, dry soil turned up by the horse's hooves. He saw farmland, predominantly free of rocks, and beyond the reach of heavy frost or snow. All it needed was water. By [[1868]], he and others from Wickenburg had dug a short canal from the Salt River and founded a small farming colony approximately four miles (6 km) east of the present city (about 22 miles west of [[Mesa, Arizona|Mesa]], which was already a city of 1,000 people; and a few miles northwest of a similar farming community at Hayden's Ferry, which would become [[Tempe, Arizona|Tempe]]).
 
The design freedom of the time was very important, for designers were very constrained by the cost of electronics, yet just beginning to explore how a computer could best be organized. Some of the basic features introduced during this period included [[index registers]] (on the [[Ferranti Mark I]]), a return-address saving instruction ([[UNIVAC I]]), immediate operands ([[IBM 704]]), and the detection of invalid operations ([[IBM 650]]).
The area was named [[Swilling's Mill]] in his honor. It would later become Hellinwg Mill, Mill City, then East Phoenix. As for the town that was to be built, Swilling, a former [[Confederate States Army|Confederate]] soldier, wanted to name it Stonewall, after [[Stonewall Jackson]]; others suggested Salina.
 
By the end of the [[1950]]s commercial builders had developed factory-constructed, truck-deliverable computers. The most widely installed computer was the [[IBM 650]], which used [[drum memory]] onto which programs were loaded using either [[punched tape|paper tape]] or [[punch card]]s. Some very high-end machines also included [[core memory]] which provided higher speeds. [[Hard disk]]s were also starting to become popular.
[[Phillip Darrell Duppa|Darrell Duppa]] recommended the name ''Phoenix'', memorializing the birth of a new civilization from the ruins left by the Hohokam.
 
Computers are automatic [[Abacus|abaci]]. The type of number system affects the way they work. In the early [[1950s]] most computers were built for specific numerical processing tasks, and many machines used decimal numbers as their basic number system &ndash; that is, the mathematical functions of the machines worked in base-10 instead of base-2 as is common today. These were not merely [[binary coded decimal]]. The machines actually had ten vacuum tubes per digit in each [[Processor register|register]]. Some early [[Soviet Union|Soviet]] computer designers implemented systems based on ternary logic; that is, a bit could have three states: +1, 0, or -1, corresponding to positive, no, or negative voltage.
The town of Phoenix was officially recognized on [[May 4]], [[1868]], when the Board of Supervisors of [[Yavapai County, Arizona|Yavapai County]] (which at the time encompassed Phoenix), formed an election precinct there. The Phoenix post office was established [[June 15]], [[1868]], with Jack Swilling as [[postmaster]].
 
An early project for the [[U.S. Air Force]], [[BINAC]] attempted to make a lightweight, simple computer by using binary arithmetic. It deeply impressed the industry.
The area was surveyed in [[1870]] and mass meeting of the citizens of Salt River Valley was held on [[October 20]], [[1870]], to select a suitable piece of unimproved public land for a town site. They recommended the North 1/2 of section 8 Township 1 N., Range 3 E. and that the town be called Phoenix.
 
As late as 1970, major computer languages such as "[[C_language|C]]" were unable to standardize their numeric behavior because decimal computers had groups of users too large to alienate.
On [[February 12]], [[1871]], the territorial legislature created [[Maricopa County, Arizona|Maricopa County]], the sixth in the state, by dividing Yavapai County. Maricopa county gave up portions in [[1875]] and [[1881]] to help form [[Pinal County, Arizona|Pinal]] and [[Gila County, Arizona|Gila]] counties, respectively. The first county election in Maricopa County was held in [[1871]], when Tom Barnum was elected the first sheriff of Maricopa County.
 
Even when designers used a binary system, they still had many odd ideas. Some used sign-magnitude arthmetic (-1 = 10001), rather than modern [[two's complement]] arithmetic (-1 = 11111). Most computers used six-bit character sets, because they adequately encoded [[Hollerith]] cards. It was a major revelation to designers of this period to realize that the data word should be a multiple of the character size. They began to design computers with 12, 24 and 36 bit data words.
The first public school in Phoenix opened on [[September 5]], [[1872]], in the courtroom of the county building. By [[October]] [[1873]], a small adobe school building was completed on Center Street (now Central Avenue), a short distance north of where the San Carlos Hotel now stands. Miss Nellie Shaver, a newcomer from Wisconsin, was appointed as the first female schoolteacher in Phoenix.
 
In this era, [[Grosch's law]] dominated computer design: Computer cost increased as the square of its speed.
On [[April 10]], [[1874]], President Grant issued a [[land patent]] for the present site of Phoenix. The total cost of the Phoenix Townsite of 320 acres (1.3 km<sup>2</sup>) was $550, including all expenses for services.
 
=== 1960s: the computer revolution and CISC ===
By [[1881]], Phoenix had outgrown its original townsite-commissioner form of government. The 11th Territorial Legislature passed the Phoenix Charter Bill, incorporating Phoenix and providing for a mayor-council government. The bill was signed by Governor [[John C. Fremont]] on [[February 25]], [[1881]]. Phoenix was incorporated with a population of approximately 2,500, and on [[May 3]], [[1881]], Phoenix held its first city election, in which Judge John T. Alsap defeated James D. Monihon, 127 to 107, to become the city's first Mayor.
 
One major problem with early computers was that a program for one would not work on others. Computer companies found that their customers had little reason to remain loyal to a particular brand, as the next computer they purchased would be incompatible anyway. At that point price and performance were usually the only concerns.
===Prosperity and modernity===
[[image:phoenix sykline.jpg|thumb|right|350px|Phoenix Downtown (southern skyline) in 2004, looking west]]
The coming of the railroad in the [[1880s]] was the first of several important events that revolutionized the economy of Phoenix. Merchandise now flowed into the city by rail instead of wagon. Phoenix became a trade center with its products reaching eastern and western markets. In recognition of the increased tempo of economic life, the Phoenix Chamber of Commerce was organized on [[November 4]], [[1888]].
 
In 1962, IBM tried a new approach to designing computers. The plan was to make an entire family of computers that could all run the same software, but with different performances, and at different prices. As users' requirements grew they could move up to larger computers, and still keep all of their investment in programs, data and storage media.
In early [[1888]], the city offices were moved into the new City Hall, built where the downtown bus terminal now stands. This building also provided temporary offices for the territorial government when it moved to Phoenix from [[Prescott, Arizona|Prescott]] in [[1889]].
 
In order to do this they designed a single ''reference computer'' called the '''[[System 360]]''' (or '''S/360'''). The System 360 was a virtual computer, a reference instruction set and capabilities that all machines in the family would support. In order to provide different classes of machines, each computer in the family would use more or less hardware emulation, and more or less [[microprogram]] emulation, to create a machine capable of running the entire System 360 [[instruction set]].
In [[1902]], President [[Theodore Roosevelt]] signed the [[Newlands Reclamation Act|National Reclamation Act]] making it possible to build dams on western streams for reclamation purposes. Valley of the Sun residents were quick to supplement this federal action by organizing the Salt River Valley Waters Users' Association on [[February 4]], [[1903]], to assure proper management of the precious water supply. It functions to this day as the major agency for controlled use of irrigation water in the Valley.
 
For instance a low-end machine could include a very simple processor for low cost. However this would require the use of a larger microcode emulator to provide the rest of the instruction set, which would slow it down. A high-end machine would use a much more complex processor that could directly process more of the System 360 design, thus running a much simpler and faster emulator.
On [[May 18]], [[1911]], the [[Theodore Roosevelt Dam]], then the largest masonry dam in the world, began operation. It created [[Roosevelt Lake]], expanded irrigation of land in the Valley for farming, and increased the water supply for the growing population.
 
IBM chose to make the reference [[instruction set]] quite complex, and very capable. This was a conscious choice. Even though the computer was complex, its "[[control store]]" containing the [[microprogram]] would stay relatively small, and could be made with very fast memory. Another important effect was that a single instruction could describe quite a complex sequence of operations. Thus the computers would generally have to fetch fewer instructions from the main memory, which could be made slower, smaller and less expensive for a given combination of speed and price.
On [[February 14]], [[1912]], President [[William Howard Taft]] approved Arizona's statehood, making Phoenix the state capital.
 
As the S/360 was to be a successor to both scientific machines like the [[IBM 7090|7090]] and data processing machines like the [[IBM 1401|1401]], it needed a design that could reasonably support all forms of processing. Hence the instruction set was designed to manipulate not just simple binary numbers, but text, scientific floating-point (similar to the numbers used in a calculator), and the [[binary coded decimal]] arithmetic needed by accounting systems.
In [[1913]], Phoenix changed its form of government from [[Mayor-Council government|mayor-council]] to [[Council-Manager government|council-manager]]. Phoenix was one of the first cities in the United States to have this form of city government.
 
Almost all following computers included these innovations in some form. This basic set of features is now called a "[[complex instruction set computer]]," or CISC (pronounced "sisk"), a term not invented until many years later.
In 1924, President [[Calvin Coolidge]] sold 13,000 acres (53&nbsp;km&sup2;) of [[South Mountain]] to the city of Phoenix for $17,000. At its present size of 16,500 acres (67 km<sup>2</sup>), [[South Mountain Park]] is the largest metropolitan park in the world, and it entertains 3 million visitors each year.
 
In many CISCs, an instruction could access either registers or memory, usually in several different ways.
Phoenix began to grow into a young metropolis. By [[1920]], Phoenix had a population of 29,053 inhabitants, which by [[1930]] had grown by 60%, to 48,118.
This made the CISCs easier to program, because a programmer could remember just thirty to a hundred instructions, and a set of three to ten [[addressing mode]]s rather than thousands of distinct instructions.
This was called an "[[orthogonal instruction set]]."
The [[PDP-11]] and [[Motorola 68000]] architecture are examples of nearly orthogonal instruction sets.
 
There was also the ''BUNCH'' (Burroughs, Univac, NCR, CDC, and Honeywell) that competed against IBM at this time though IBM dominated the era with [[S/360]].
[[1940]] marked another turning point, as the [[World War 2|war]] changed Phoenix from a farming center to a distribution center. Phoenix rapidly turned into an embryonic industrial city with mass production of military supplies. [[Luke Air Force Base|Luke Field]], Williams Field and Falcon Field, coupled with the giant ground-training center at [[Hyder, Arizona|Hyder]], west of Phoenix, brought thousands of men into Phoenix.
 
The Burroughs Corporation (which later became Unisys when they merged with Sperry/Univac) offered an alternative to S/360 with their [[Burroughs B5000|B5000]] series machines. The B5000 series [[1961]] had virtual memory, a multi-programming operating system (Master Control Program or MCP), written in [[ALGOL 60]], and the industry's first recursive-descent compilers as early as 1963.
In [[1950]], 105,000 people lived within the city limits and thousands more lived in adjacent communities and depended upon Phoenix for their livelihoods. The city had 148 miles (238 km) of paved streets and 163 miles (262 km) of unpaved streets, a total of 311 miles (501 km) of streets within the city limits.
 
=== 1970s: large scale integration ===
Phoenix has been selected four times since 1950 as an [[All-America City Award|All-America City]], rare among larger cities. The hallmark of an All-America City is the extent to which its private citizens get involved in the workings of their government. Thousands of citizens have served on various city committees, boards and commissions to assure that major decisions are in the best interest of the people.
 
In the 1960s, the [[Apollo guidance computer]] and [[Minuteman missile]] made the [[integrated circuit]] economical and practical.
In [[1993]], Phoenix was selected as the "Best Run City in the World", also known as the [[Carl Bertelsmann Prize]], by the [[Bertelsmann Foundation]] of [[Germany]], a branch of [[Bertelsmann AG]] media company. It shared the honor with [[Christchurch]], [[New Zealand]].
 
Around 1971, the first calculator and clock chips began to show that very small computers might be possible. The first [[microprocessor]] was the 4004, designed in 1971 for a calculator company, and produced by [[Intel]]. The 4004 is the direct ancestor of the [[Intel 80386]], even now maintaining some code compatibility. Just a few years later, the word size of the 4004 was doubled to form the 8008.
== Geography ==
[[Image:Phoenix.landsat.750pix.jpg|thumb|right|325px|Landsat 7 Satellite image of the Phoenix Metro Area in 2002.]]
Phoenix is located at 33&deg;31'42" North, 112&deg;4'35" West (33.528370&deg;, -112.076300&deg;){{GR|1}} in the Phoenix Valley or "Valley of the Sun" in central Arizona. It lies at a mean elevation of 1,117 feet (340 m) in the heart of the [[Sonoran Desert]].
 
By the mid-1970s, the use of integrated circuits in computers was commonplace. The whole decade consists of upheavals caused by the shrinking price of transistors.
The [[Salt River (Arizona)|Salt River]] course runs westward through the city of Phoenix; the riverbed is normally dry except when excess runoff forces the release of water from the four dams upriver. The city of Tempe has built two inflatable dams in the Salt River bed to create a year-round recreational lake, called [[Tempe Town Lake]]. The dams are deflated to allow the river to flow unimpeded during releases.
 
It became possible to put an entire CPU on a single printed circuit board. The result was that minicomputers, usually with 16-bit words, and 4k to 64K of memory, came to be commonplace.
The Phoenix area is surrounded by the [[McDowell Mountains]] to the northeast, the [[White Tank Mountains]] to the west, the [[Superstition Mountains]] far to the east, and the [[Sierra Estrella]] to the southwest. Within the city are the [[Phoenix Mountains]] and [[South Mountains (Arizona)|South Mountains]]. Current development (as of [[2005]]) is pushing rapidly beyond the geographic boundaries to the north and west, south through Pinal County towards [[Tucson, Arizona|Tucson]], and beginning to surround the large [[Salt River Pima-Maricopa Indian Community|Salt River]] and [[Gila River Indian Community|Gila River]] reservations.
 
CISCs were believed to be the most powerful types of computers, because their microcode was small and could be stored in very high-speed memory. The CISC architecture also addressed the "semantic gap" as it was perceived at the time. This was a defined distance between the machine language, and the higher level language people used to program a machine. It was felt that compilers could do a better job with a richer instruction set.
According to the [[United States Census Bureau]], the city has a total area of 1,230.5 [[square kilometre|km&sup2;]] (475.1 [[square mile|mi&sup2;]]). 1,229.9 km&sup2; (474.9 mi&sup2;) of it is land and 0.6 km&sup2; (0.2 mi&sup2;) of it is water. The total area is 0.05% water.
 
Custom CISCs were commonly constructed using "bit slice" computer logic such as the AMD 2900 chips, with custom microcode. A bit slice component is a piece of an [[ALU]], register file or microsequencer. Most bit-slice integrated circuits were 4-bits wide.
The Phoenix [[Metropolitan Statistical Area|Metropolitan Statistical Area (MSA)]] (officially known as the [[Phoenix, Arizona|Phoenix]]-[[Mesa, Arizona|Mesa]]-[[Scottsdale, Arizona|Scottsdale]] MSA), is the [[List of United States metropolitan statistical areas by population|14th largest]] in the United States, with a total population of 3,251,876. It includes the Arizona counties of [[Maricopa County, Arizona|Maricopa]] and [[Pinal County, Arizona|Pinal]]. Major cities include [[Phoenix, Arizona|Phoenix]], [[Mesa, Arizona|Mesa]], [[Scottsdale, Arizona|Scottsdale]], [[Glendale, Arizona|Glendale]], [[Tempe, Arizona|Tempe]], [[Chandler, Arizona|Chandler]], [[Gilbert, Arizona|Gilbert]], and [[Peoria, Arizona|Peoria]]. Several smaller communities are also included, such as [[Goodyear, Arizona|Goodyear]], [[Fountain Hills, Arizona|Fountain Hills]], [[Litchfield Park, Arizona|Litchfield Park]], [[Anthem, Arizona|Anthem]], [[Sun Lakes, Arizona|Sun Lakes]], [[Sun City, Arizona|Sun City]], and [[Sun City West, Arizona|Sun City West]]. The community of [[Ahwatukee]] is a part of the City of Phoenix itself, but is almost entirely separated from it by South Mountain.
 
By the early 1970s, the [[PDP-11]] was developed, arguably the most advanced small computer of its day. Almost immediately, wider-word CISCs were introduced, the 32-bit [[VAX]] and 36-bit [[PDP-10]].
===Climate===
[[Image:Sunset in phoenix.jpg|thumb|right|350px|Phoenix Sunset]]
Phoenix has an arid, semitropical climate, with little seasonal change during the year. Clear blue skies are typical on most days, with an average of 300 sunny days per year. The temperature reaches or exceeds 100 &deg;[[Fahrenheit|F]] (38 &deg;[[Celsius|C]]) on an average of 89 days during the year, including most days from early [[June]] through early [[September]]. On [[June 26]], [[1990]], the temperature reached an all-time high of 122 &deg;F (50 &deg;C). The dry Arizona air makes the hot temperatures more tolerable early in the season; however, the influx of [[monsoon|monsoonal]] moisture has been known to make August in Phoenix almost as humid as summers in the [[U.S. Southern states|Southeastern United States]].
 
Also, to control a cruise missile, Intel developed a more-capable version of its 8008 microprocessor, the 8080.
The normal annual rainfall at [[Sky Harbor International Airport]] is 8.29 inches (211 mm). [[March]] is the wettest month of the year (1.07 inches or 27 mm). Rain is particularly scarce from [[April]] through [[June]]. Although thunderstorms occur on occasion during every month of the year, they are most common during the monsoon season from [[July]] to mid-[[September]] as humid air surges in from the [[Gulf of California]]. These can bring strong winds, large [[hail]], or [[tornado]]es. Winter storms moving inland from the [[Pacific Ocean]] occasionally produce significant rains but occur infrequently. Fog is observed from time to time during the winter months.
 
IBM continued to make large, fast computers. However the definition of large and fast now meant more than a megabyte of RAM, clock speeds near one megahertz [http://www.hometoys.com/mentors/caswell/sep00/trends01.htm][http://research.microsoft.com/users/GBell/Computer_Structures_Principles_and_Examples/csp0727.htm], and tens of megabytes of disk drives.
At the airport, the mean date of first frost is [[December 12]] and the last is [[February 7]]; however, these dates do not represent the city as a whole because the frequency of freezes varies considerably among terrain types and elevations. Some areas of Phoenix may see frost for a month or more before and after the airport readings. The earliest frost on record occurred on [[November 3]], [[1946]], and the latest occurred on [[April 4]], [[1945]]. Successive winters without any frosts at the airport have been recorded, and the longest period without a freeze stretched from [[November 23]] [[1979]] to [[January 31]] [[1985]].
 
IBM's System 370 was a version of the 360 tweaked to run virtual computing environments. The [[VM (Operating system) |virtual computer]] was developed in order to reduce the possibility of an unrecoverable software failure.
[[Snow]] is extremely rare in the area, though still can occur from time to time. Since it was officially recorded in [[1896]], snowfall has accumulated to 0.1 inch (0.25 cm) only 7 times. The heaviest snowstorm occurred on [[January 20]]-[[January 21|21]] [[1937]], when 1 to 4 inches fell (2 to 10 cm) in parts of the city and did not melt entirely for four days. Another 1 inch (2.5 cm) fell on [[January 20]] [[1933]]. On [[February 2]] [[1935]], 0.5 inches (1 cm) fell. Most recently, 0.4 inches (1 cm) fell on [[December 21]]-[[December 22|22]] [[1990]]. Snow also fell on [[March 12]] [[1917]], [[November 28]] [[1919]], and [[December 11]] [[1985]].
 
The Burroughs B5000/B6000/B7000 series reached its largest market share. It was a stack computer programmed in a dialect of Algol. It used 64-bit fixed-point arithmetic, rather than floating-point.
== Economy ==
The early economy of Phoenix was primarily agricultural, dependent mainly on [[cotton]] and [[citrus]] farming. In the last two decades, the economy has diversified as rapidly as the population has grown. As the state capital of [[Arizona]], many residents in the area are employed by the government. [[Arizona State University]] has also enhanced the area's population through education and its growing research capabilities. Numerous high-tech and telecommunications companies have also recently relocated to the area. Due to the warm climate in winter, Phoenix benefits greatly from seasonal [[tourism]] and recreation, and has a particularly vibrant [[golf]] industry.
 
All these different developments competed madly for marketshare.
Phoenix is currently home to two major [[Fortune 500]] companies: electronics corporation [http://www.avnet.com/ Avnet, Inc.] and mining company [[Phelps Dodge Corporation]]. The city is also home to [[America West Airlines]], which will become a Fortune 500 company upon completion of its merger with [[US Airways Group Incorporated]] (the new company will be located in Phoenix). Nearby [[Scottsdale, Arizona|Scottsdale]] is also home to Allied Waste Industries, Inc. (also listed on the Fortune 500), the second largest non-hazardous solid waste management company in the United States.
 
=== Early 1980s: the lessons of RISC ===
The military has a significant presence in Phoenix with [[Luke Air Force Base]] located in the western suburbs. At its height, in the [[1940s]], the Phoenix area had 3 military bases: Luke Field (still in use), Falcon Field, and Williams-Gateway Field, with numerous auxillary air fields located throughout the region.
 
In the early [[1980s]], researchers at [[UC Berkeley]] and [[IBM]] both discovered that most computer language compilers and interpreters used only a small subset of the instructions of a [[CISC]]. Much of the power of the CPU was simply being ignored in real-world use. They realized that by making the computer simpler and less orthogonal, they could make it faster and less expensive at the same time.
Phoenix is also a popular ___location for filming, whether it’s a full-length feature film, television commercial, or a print ad. The city government operates a film office that provides an array of services for motion picture and advertising companies that are interested in filming at city-owned sites or other locations throughout the metropolitan area. Some of the major feature films that have been filmed in the area include ''[http://www.phoenixnewtimes.com/issues/2005-03-17/film/film.html Chastity]'', ''[[The Gauntlet]]'', ''[[Psycho]]'', ''[[Raising Arizona]]'', ''[[Waiting to Exhale]]'', ''[[Jerry Maguire]]'', ''[[Bad Santa]]'', ''[[The Prophecy]]'', ''[[Used Cars]]'', ''[[Bill & Ted's Excellent Adventure]]'' (used as a stand-in for [[San Dimas, California]]), ''U Turn'', ''[[The Nutty Professor]]'' ([[1963]] version with [[Jerry Lewis]]. The college exteriors were shot on the campus of [[Arizona State University|Arizona State College]], now Arizona State University), ''Blue Collar Comedy Tour:The Movie'', ''Just One Of The Guys'', ''Terminal Velocity'', ''[[Taxi (2004 movie)|Taxi]]'', and ''[[The Banger Sisters]]''.
 
At the same time, CPUs were growing faster in relation to the memory they addressed. Designers also experimented with using large sets of internal registers. The idea was to [[cache]] intermediate results in the registers under the control of the compiler.
:''See also: [[List of major corporations in Phoenix]].''
This also reduced the number of [[addressing mode]]s and orthogonality.
 
The computer designs based on this theory were called [[Reduced Instruction Set Computer]]s, or RISC. RISCs generally had larger numbers of registers, accessed by simpler instructions, with a few instructions specifically to load and store data to memory. The result was a very simple core CPU running at very high speed, supporting the exact sorts of operations the compilers were using anyway.
==People and culture==
[[image:phoenix sunrise.jpg|thumb|right|350px|Phoenix Sunrise.]]
===Demographics===
At the [[census]] of [[2000]], there were 1,321,045 people, 465,834 households, and 307,450 families residing in the city. The [[population density]] was 1,074/km&sup2; (2,782/mi&sup2;). There were 495,832 housing units at an average density of 403/km&sup2; (1,044/mi&sup2;). The racial makeup of the city was 71.07% [[White (U.S. Census)|White]], 5.10% [[African American (U.S. Census)|African American]], 2.02% [[Native American (U.S. Census)|Native American]], 2.00% [[Asian (U.S. Census)|Asian]], 0.13% [[Pacific Islander (U.S. Census)|Pacific Islander]], 16.40% from [[Race (U.S. Census)|other races]], and 3.28% from two or more races. 34.06% of the population were [[Hispanic (U.S. Census)|Hispanic]] or [[Latino (U.S. Census)|Latino]] of any country origin.
 
A common variation on the RISC design employs the [[Harvard architecture]], as opposed to the [[Von Neumann architecture|Von Neumann]] or Stored Program architecture common to most other designs. In a Harvard Architecture machine, the program and data occupy separate memory devices and can be accessed simultaneously. In Von Neumann machines the data and programs are mixed in a single memory device, requiring sequential accessing which produces the so-called "Von Neumann bottleneck."
There were 465,834 households out of which 35.7% had children under the age of 18 living with them, 46.9% were [[Marriage|married couples]] living together, 12.9% had a female householder with no husband present, and 34.0% were non-families. 25.4% of all households were made up of individuals and 6.3% had someone living alone who was 65 years of age or older. The average household size was 2.79 and the average family size was 3.39.
 
One downside to the RISC design has been that the programs that run on them tend to be larger. This is because [[compiler]]s have to generate longer sequences of the simpler instructions to accomplish the same results. Since these instructions need to be loaded from memory anyway, the larger code size offsets some of the RISC design's fast memory handling.
In the city the population age distribution was 28.9% under the age of 18, 10.9% from 18 to 24, 33.2% from 25 to 44, 18.8% from 45 to 64, and 8.1% who were 65 years of age or older. The median age was 31 years. For every 100 females there were 103.5 males. For every 100 females age 18 and over, there were 102.7 males.
 
Recently, engineers have found ways to compress the reduced instruction sets so they fit in even smaller memory systems than CISCs. Examples of such compression schemes include [[ARM architecture|the ARM]]'s "Thumb" instruction set. In applications that do not need to run older binary software, compressed RISCs are coming to dominate sales.
The median income for a household in the city was $41,207, and the median income for a family was $46,467. Males had a median income of $32,820 versus $27,466 for females. The [[per capita income]] for the city was $19,833. 15.8% of the population and 11.5% of families were below the [[poverty line]]. Out of the total population, 21.0% of those under the age of 18 and 10.3% of those 65 and older were living below the poverty line.
 
Another approach to RISCs was the "[[niladic]]" or "zero-address" instruction set. This approach realized that the majority of space in an instruction was to identify the operands of the instruction. These machines placed the operands on a push-down (last-in, first out) [[stack (computing)|stack]]. The instruction set was supplemented with a few instructions to fetch and store memory. Most used simple caching to provide extremely fast RISC machines, with very compact code. Another benefit was that the interrupt latencies were extremely small, smaller than most CISC machines (a rare trait in RISC machines). The first zero-address computer was developed by [[Chuck Moore|Charles Moore]]. It placed six 5-bit instructions in a 32-bit word, and was a precursor to [[VLIW]] design (see below: 1990 to Today).
===Media===
The first newspaper in Phoenix was the weekly ''Salt River Valley Herald,'' which later changed its name to the ''Phoenix Herald'' in [[1880]].
 
Commercial variants were mostly characterized as "[[FORTH]]" machines, and probably failed because that language became unpopular. Also, the machines were developed by defense contractors at exactly the time that the cold war ended. Loss of funding may have broken up the development teams before the companies could perform adequate commercial marketing.
Today, the city is served by two major daily newspapers: ''[[The Arizona Republic]]'' (serving the greater metropolitan area) and ''The East Valley Tribune'' (serving primarily the cities of the East Valley). In addition, the city is also served by numerous free neighborhood papers and weeklies such as the ''[[Phoenix New Times]]'', [[Arizona State University|Arizona State University's]] ''The State Press'', and the ''College Times''. For 40 years, ''[[The Bachelor's Beat]]'', a paid weekly newspaper, has covered local politics while selling ads for area strip clubs and escort services.
 
RISC chips now dominate the market for 32-bit embedded systems. Smaller RISC chips are even becoming common in the cost-sensitive 8-bit embedded-system market. The main market for RISC CPUs has been systems that require low power or small size.
The Phoenix metro area is served by a wide variety of local television stations, and is the fifteenth largest designated market area (DMA) in the U.S. with 1,596,950 homes (1.46% of the total U.S.). The major network television affiliates are [[KPNX]] 12 ([[National Broadcasting Company|NBC]]), [[KNXV]] 15 ([[American Broadcasting Company|ABC]]), [[KPHO]] 5 ([[Columbia Broadcasting Service|CBS]]), [[KSAZ]] 10 ([[FOX]]), [[KUTP]] 45 ([[UPN]]), and [[KASW]] 61 ([[The WB Television Network|WB]]). Other major network television affiliates operating in the area include [[KAET]] 8 ([[PBS]], operated by [[Arizona State University|ASU]]), KPAZ 21 ([[TBN]]), [[KTVW]] 33 ([[Univision]]), [[KDRX]] 48 ([[Telemundo]]), and [[KPPX]] 51 ([[i Network|i]], formerly PAX). [[KTVK]] 3 (3TV) and [[KAZT]] 27 are independent television stations operating in the metro area.
 
Even some CISC processors (based on architectures that were created before RISC became dominant) translate instructions internally into a RISC-like instruction set. These CISC chips include newer [[X86|x86]] and [[VAX]] models.
The radio airwaves in Phoenix cater to a huge variety of musical interests. The area's [[rock and roll|rock]] stations include KDKB (FM) 93.3, KUPD (FM) 97.9, KPKX (FM) 98.7 (The Peak) and KSLX (FM) 100.7. Pop and hip-hop can be found on KKFR (FM) 92.3 (Power), KZZP (FM) 104.7 (Kiss) and KMXP (FM) 96.9 (Mix). There are two [[alternative rock]] stations: KZON (FM) 101.5 (The Zone) and KEDJ (FM) 103.9 (The Edge), two [[country music|country]] stations: KNIX (FM) 102.5 and KMLE (FM) 107.9 (Camel Country 108) and two [[oldies]] stations: KOOL (FM) 94.5 and KAZG (AM) 1440. Rhythmic oldies are heard on KAJM (FM) 99.3 / 104.3 (Mega). Big-band, swing and standards play on KSAZ (AM) 580, KSAZ, KOY (AM) 1230 and KZLB (FM) 97.5. [[Jazz]] airs on [[National Public Radio|NPR]] station KJZZ (FM) 91.5, while the style known as smooth jazz is on KYOT (FM) 95.5 (The Coyote). The area's [[adult contemporary]] station KESZ (FM) 99.9 has been known to play Christmas music during the holidays, as has [[classical music|classical]] station KBAQ (FM) 89.5. Christian stations operate at KLVA (FM) 105.5 and KXEG (AM) 1280. [[Radio Disney]] is at KMIK (AM) 1580. Phoenix is one of the few cities in the United States with a contemporary [[dance music|dance]] music station, KNRJ (FM) 92.7 / 101.1 (Energy), and it is home to the only known completely commercial-free rock music station in the United States. ,[[KCDX]] (FM) 103.1.
 
These numbers may surprise many, because the "market" is perceived to be desktop computers. With Intel x86 designs dominating the vast majority of all desktop sales, RISC is found only in the [[Apple Computer|Apple]] desktop computer lines. However, desktop computers are only a tiny fraction of the computers now sold. Most people own more computers in embedded systems in their car and house than on their desks.
There are also several talk radio stations, mostly operating on the AM band: KFYI (AM) 550 (conservative talk), KTAR (AM) 620 (news), KMIA (AM) 720 ([[Spanish language|Spanish]] news), KDIR (AM) 740 (Spanish talk), KKNT (AM) 960 (The Patriot), KXXT (AM) 1010 ([[Air America Radio]]), KFNX (AM) 1100 (CNN), KMYL (AM) 1190, KOY (AM) 1230 (CNN), KXAM (AM) 1310 (CNN), KPXQ (AM) 1360,
KFNN (AM) 1510 (finance), and KPHX (AM) 1480 (Comedy Radio). Sports news is available on
KMVP (AM) 860 ([[ESPN]]), KGME (AM) 910, and KDUS (AM) 1060.
 
=== Mid-1980s to today: exploiting instruction level parallelism ===
Due to the region's large Spanish-speaking population, there are also several Spanish radio stations, including KNAI (FM) 88.3 (La Campesina), KCOO (FM) 89.9 ([[Air 1]]), KOMR (FM) 100.3 / 106.3 (Amor), KLNZ (FM) 103.5 (Radio Tricolor), KDVA (FM) 106.9 / 107.1 (Super Estrella), KHOT (FM) 105.9 (La Nueva), KCKY (AM) 1150, KVIB (FM) 95.1 (Club) and KSUN (AM) 1400 (Radio Fiesta).
 
In the mid-to-late 1980s, designers began using a technique known as '''[[instruction pipelining]]''', in which the processor works on multiple instructions in different stages of completion. For example, the processor may be retrieving the operands for the next instruction while calculating the result of the current one. Modern CPUs may use over a dozen such stages.
===Sports===
<!-- Table Header -->
<tr bgcolor="#ADADAD">
<td width="150px">'''Club'''</td>
<td width="120px" align="left">'''Sport'''</td>
<td width="270px" align="left">'''League'''</td>
<td width="180px" align="left">'''Stadium'''</td>
<td width="50px" align="left">'''Logo'''</td>
</tr>
<!-- Rows -->
<tr bgcolor="#ffffff">
<td width="150px">[[Arizona Cardinals]]</td>
<td width="120px" align="left">[[American Football|Football]]</td>
<td width="270px" align="left">[[National Football League]]''';''' [[National Football Conference|NFC]]</td>
<td width="180px" align="left">[[Sun Devil Stadium]]</td>
<td width="50px" align="left">[[Image:AZCardinals.png|30px|Arizona Cardinals Logo]]</td>
</tr>
<tr bgcolor="#ffffff">
<td width="150px">[[Arizona Diamondbacks]]</td>
<td width="120px" align="left">[[Baseball]]</td>
<td width="270px" align="left">[[Major League Baseball]]''';''' [[National League|NL]]</td>
<td width="180px" align="left">[[Chase Field]]</td>
<td width="50px" align="left">[[Image:ArizonaDiamondbacks_100.png|30px|Arizona Diamondbacks Logo]]</td>
</tr>
<tr bgcolor="#ffffff">
<td width="150px">[[Phoenix Suns]]</td>
<td width="120px" align="left">[[Basketball]]</td>
<td width="270px" align="left">[[National Basketball Association]]</td>
<td width="180px" align="left">[[America West Arena]]</td>
<td width="50px" align="left">[[Image:PhoenixSunsmainlogo.gif|30px|Phoenix Suns Logo]]</td>
</tr>
<tr bgcolor="#ffffff">
<td width="150px">[[Phoenix Mercury]]</td>
<td width="120px" align="left">[[Basketball]]</td>
<td width="270px" align="left">[[Women's National Basketball Association]]</td>
<td width="180px" align="left">[[America West Arena]]</td>
<td width="50px" align="left">[[Image:PhoenixMercury_100.png|30px|Phoenix Mercury Logo]]</td>
</tr>
<tr bgcolor="#ffffff">
<td width="150px">[[Phoenix Coyotes]]</td>
<td width="120px" align="left">[[Ice Hockey]]</td>
<td width="270px" align="left">[[National Hockey League]]</td>
<td width="180px" align="left">[[Glendale Arena]]</td>
<td width="50px" align="left">[[Image:PhoenixCoyotes_100.png|30px|Phoenix Coyotes Logo]]</td>
</tr>
</table>
----
 
A similar idea, introduced only a few years later, was to execute multiple instructions in parallel on separate arithmetic-logic units ([[ALU]]s). Instead of operating on only one instruction at a time, the CPU will look for several similar instructions that are not dependent on each other, and execute them in parallel. This approach is known as [[superscalar]] processor design.
Phoenix is home to several major league, professional sports. The [[Arizona Diamondbacks]] play at [[Chase Field]] in the [[National League]] - West Division of [[Major League Baseball]].
In 2001, the Diamondbacks defeated the New York Yankees 4 games to 3 in the World Series, becoming the city's first professional sports franchise to win a national championship.
 
Such techniques are limited by the degree of [[instruction level parallelism]] (ILP), the number of non-dependent instructions in the program code. Some programs are able to run very well on superscalar processors due to their inherent high ILP, notably graphics. However more general problems do not have such high ILP, thus making the achievable speedups due to these techniques to be lower.
In addition, nine Major League Baseball teams conduct [[spring training]] in the area. These teams, plus three that train in [[Tucson, Arizona|Tucson]], are collectively known as the [[Cactus League]].
 
Branching is one major culprit. For example, the program might add two numbers and branch to a different code segment if the number is bigger than a third number. In this case even if the branch operation is sent to the second ALU for processing, it still must wait for the results from the addition. It thus runs no faster than if there were only one ALU. The most common solution for this type of problem is to use a type of [[branch prediction]].
The [[Arizona Cardinals]] currently play in the [[National Football League|NFL's]] [[National Football Conference]] - [[NFC West|West Division]]. They currently play at [[Sun Devil Stadium]] in [[Tempe, Arizona|Tempe]], and are currently building a stadium in [[Glendale, Arizona|Glendale]]. The [[Arizona Rattlers]] are an arena football team that play in the [[Arena Football League]]. Phoenix will host the [[Super Bowl]] in [[2008]].
 
To further the efficiency of multiple functional units which are available in superscalar designs, operand register dependencies was found to be another limiting factor. To minimize these dependencies, [[out-of-order execution]] of instructions was introduced. In such a scheme, the instruction results which complete out-of-order must be re-ordered in program order by the processor for the program to be restartable after an exception. ''Out-of-Order'' execution was the main advancement of the computer industry during the [[1990s]].
The [[Phoenix Suns]] are a professional men's [[basketball]] team in the [[National Basketball Association]]. The [[Phoenix Mercury]] are a professional women's basketball team in the [[Women's National Basketball Association|WNBA]]. Both teams play at [[America West Arena]].
A similar concept is [[speculative execution]], where instructions from both sides of a branch are executed at the same time, and the results of one side or the other are thrown out once the branch answer is known.
 
These advances, which were originally developed from research for RISC-style designs, allow modern CISC processors to execute twelve or more instructions per clock cycle, when traditional CISC designs could take twelve or more cycles to execute just one instruction.
[[Glendale Arena]] is the home of the [[Phoenix Coyotes]], a professional [[ice hockey]] team of the [[National Hockey League]]. The [[Phoenix Roadrunners]] are also a minor league ice hockey team that plays in the [[East Coast Hockey League]].
 
The resulting instruction scheduling logic of these processors is large, complex and difficult to verify. Furthermore, the higher complexity requires more transistors, increasing power consumption and heat. In this respect RISC is superior because the instructions are simpler, have less interdependence and make superscalar implementations easier. However, as Intel has demonstrated, the concepts can be applied to a CISC design, given enough time and money.
The [[Arizona Sting]] are a professional [[lacrosse]] team from [[Glendale, Arizona|Glendale]] that play in the [[National Lacrosse League]].
 
:Historical note: Some of these techniques (e.g. pipelining) were originally developed in the late [[1950s]] by [[International Business Machines|IBM]] on their [[IBM 7030|Stretch]] mainframe computer.
The [[Phoenix International Raceway]] is a major venue for [[Indy Racing League|Indy Car Racing]] and [[NASCAR]] auto racing. [[Boat racing]], [[drag racing]], and [[road course]] racing are also held at the [[Firebird International Raceway]].[[Sprint car racing]] is held at [[Manzanita Speedway]].
 
=== 1990 to today: looking forward ===
The [[Arizona State University]] Sun Devils compete in [[American football|football]], [[basketball]], [[baseball]], as well as a number of other sports in the [[NCAA]]. The Sun Devils football team plays their games at [[Sun Devil Stadium]], which also hosts the annual [[Fiesta Bowl]] (the game will move to the new Cardinals stadium in Glendale upon the completion of the stadium). Their nearest rival is the [[University of Arizona]] Wildcats, in [[Tucson, Arizona|Tucson]].
 
====VLIW and EPIC====
Other major sporting events in the area include the [[Insight Bowl]] at [[Chase Field]] (will move to Sun Devil Stadium after the Fiesta Bowl moves to the new stadium in Glendale), and several major professional [[golf]] events, including the [[Phoenix Open|FBR Open]] of the [[PGA TOUR]], the [[Standard Register Turquoise Classic]] of the [[LPGA]], and [[The Tradition]] of the [[PGA Champions Tour]].
 
The instruction scheduling logic that makes a superscalar processor is just boolean logic. In the early 1990s, a significant innovation was to realize that the coordination of a multiple-ALU computer could be moved into the [[compiler]], the software that translates a programmer's instructions into machine-level instructions.
::''See also:'' [[U.S. cities with teams from four major sports]].
 
This type of computer is called a '''[[very long instruction word]]''' (VLIW) computer.
===Museums and other points of interest===
*[[Arizona Biltmore Hotel|Arizona Biltmore]]
*[[Arizona Historical Society Museum]]
*[[Arizona Science Center]], designed by [[Antoine Predock]]
*[[Arizona Veterans Memorial Coliseum]] at the Arizona State Fairgrounds
*[[Boyce Thompson Arboretum State Park]]
*[[Burton Barr Central Library]], designed by [[Will Bruder]]
*[[Camelback Mountain]]
*[[Castles N' Coasters]] amusement park
*[http://www.childsplayaz.org Childsplay - Theatre for young audiences and families]
*[[Desert Botanical Garden]]
*[[Encanto Park]]
*[[Fleischer Museum]]
*[[Hall of Flame]]
*[[Heard Museum]]
*[[Hotel San Carlos (Phoenix)|Hotel San Carlos]]
*[[Mystery Castle]]
*[[Papago Park]]
*[[Phoenix Art Museum]]
*[[Phoenix Mountains Park and Recreation Area]]
*[[Phoenix Museum of History]]
*[[Phoenix Zoo]]
*[[Pueblo Grande Museum and Cultural Park]]
*[[Scottsdale Museum of Contemporary Art]]
*[[St. Mary's Basilica]]:[[Tovrea Castle]]
*[[South Mountain Park]], the largest [[municipal park]] in the world with 16,500 [[acres]].
*[[Symphony Hall|Symphony Hall for the Phoenix Symphony at the Phoenix Civic Plaza]]
*[[Taliesin West]] and [[Gammage Auditorium]], both designed by [[Frank Lloyd Wright]]
*[http://www.vyt.com Valley Youth Theatre - Theatre Performed by Children for All Audiences]
*[[Wrigley Mansion]]
 
Statically scheduling the instructions in the compiler (as opposed to letting the processor do the scheduling dynamically) has many practical advantages over doing so in the CPU.
==Infrastructure==
 
Oddly, speed is not one of them. With enough transistors, the CPU could do everything at once. However all those transistors make the chip larger, and therefore more expensive. The transistors also use power, which means that they generate heat that must be removed. The heat also makes the design less reliable.
===Government===
In [[1913]], the commussion form of government was adopted. The city of Phoenix is served by a [[city council]] consisting of a [[mayor]] and eight city council members. The mayor is elected ''At Large'', to a four-year term. City council members are elected to four-year terms by voters in each of the eight separate districts that they represent. The current mayor of Phoenix is Phil Gordon. The mayor and city council members have equal voting power to make laws and set the policies that govern the city.
 
Since compiling happens only once on the developer's machine, the control logic is "canned" in the final realization of the program. This means that it consumes no transistors, and no power, and therefore is free, and generates no heat.
In addition to eight voting districts, the city is also divided into 15 "urban villages," the primary purpose of which is to assist the city council with zoning and planning ordinances. These urban villages are: [[Ahwatukee|Ahwatukee Foothills]], Alhambra, Camelback East, Central City, Deer Valley, Desert Ridge, Desert View, Encanto, Estrella, Laveen, Maryvale, North Gateway, North Mountain, Paradise Valley, South Mountain, as well as a fifteenth which is as of yet unnamed (created in [[2004]] and currently called, "New Village."). The fifteenth is sparsely populated (if at all) and new development is not expected in the near future.
 
The resulting CPU is simpler, and runs at least as fast as if the scheduling were in the CPU.
===Education===
Public education in the Phoenix metro area is provided by 30 school districts.
 
There were several unsuccessful attempts to commercialize VLIW. The basic problem is that a VLIW computer does not scale to different price and performance points, as a dynamically scheduled computer can.
The main institution of higher education in the area is [[Arizona State University]], with its main campus located in [[Tempe, Arizona|Tempe]], and satellite campuses in Phoenix and [[Mesa, Arizona|Mesa]]. ASU is currently one of the largest public universities in the U.S., with a [[2004]] enrollment of 57,543.
 
Also, VLIW computers optimise for throughput, not low latency, so they were not attractive to the engineers designing controllers and other computers embedded in machinery. The [[embedded system]]s markets had often pioneered other computer improvements by providing a large market that did not care about compatibility with older software.
The [[University of Phoenix]] is also headquartered in Phoenix. This is the nation's largest [[private]], [[for-profit]] [[university]] with over 130,000 students at campuses throughout the [[United States]], [[Canada]], [[Mexico]], [[Netherlands]] and [[Puerto Rico]].
 
In January [[2000]], a company called [[Transmeta]] took the interesting
There are also ten community colleges and two skills centers throughout [[Maricopa County, Arizona|Maricopa County]], providing adult education and job training.
step of placing a compiler in the central processing unit, and making the compiler translate from a reference byte code (in their case, [[x86]] instructions) to an internal VLIW instruction set. This approach
combines the hardware simplicity, low power and speed of VLIW RISC with
the compact main memory system and software reverse-compatibility provided
by popular CISC.
 
[[Intel]] released a chip, called the [[Itanium]], based on what they call an [[Explicitly Parallel Instruction Computing]] (EPIC) design. This design supposedly provides the VLIW advantage of increased instruction throughput. However, it avoids some of the issues of scaling and complexity, by explicitly providing in each "bundle" of instructions information concerning their dependencies. This information is calculated by the compiler, as it would be in a VLIW design. The early versions are also backward-compatible with current [[x86]] software by means of an on-chip [[emulation]] mode. Integer performance has been disappointing as have sales in volume markets.
===Transportation===
Phoenix is served by [[Sky Harbor International Airport]] {{airport codes|PHX|KPHX}}, which is centrally-located in the metro area near the intersections of [[Interstate 10|I-10]], [[Interstate 17|I-17]], [[US 60]], and state routes '''51''' and '''Loop 202'''. Sky Harbor is the fifth busiest airport in the U.S. and the world for passenger traffic for takeoffs and landings, handling more than 36 million travelers in [[2000]]. The airport serves more than 100 cities with non-stop flights. [[British Airways]], [[Air Canada]] and [[Lufthansa]] are among several international carriers providing flights to destinations such as [[London, England|London]], [[Toronto, Canada|Toronto]], [[Mexico]] and [[Frankfurt, Germany]].
 
====Multi-threading====
The [[Williams Gateway Airport]] {{Airport codes|WGA|KIWA}} in the suburb of [[Mesa, Arizona|Mesa]] also serves the area's commercial air traffic. It was converted from [[Williams Air Force Base]], which closed in [[1993]], and is attempting to become a commercial airport, to relieve Sky Harbor of some of the main airport's traffic. The airport has occasionally received [[Boeing 737]]'s from [[Charter airline|charter airlines]] to carry passengers to nearby destinations.
 
Also, we may soon see multi-threaded CPUs. Current designs work best when the computer is running only a single program, however nearly all modern [[operating system]]s allow the user to run multiple programs at the same time. For the CPU to change over and do work on another program requires expensive [[context switching]]. In contrast, a multi-threaded CPU could handle instructions from multiple programs at once.
Smaller airports that primarily handle private and corporate jets include the [[Scottsdale Municipal Airport]] in [[Scottsdale, Arizona|Scottsdale]] and the [[Falcon Field Airport]] in [[Mesa, Arizona|Mesa]].
 
To do this, such CPUs include several sets of registers. When a context switch occurs, the contents of the "working registers" are simply copied into one of a set of registers for this purpose.
Public transportation throughout the metropolitan area is served by [[Valley Metro (Phoenix)|Valley Metro]], which operates a series of buses and rideshare options. While there is currently no [[subway]] or [[rail]] system in the city, Valley Metro is currently developing [http://www.valleymetro.org/rail/ Valley Metro Rail], a [[Light rail|light rail]] project.
 
Such designs often include thousands of registers instead of hundreds as in a typical design. On the downside, registers tend to be somewhat expensive in chip space needed to implement them. This chip space might otherwise be used for some other purpose.
The road system in Phoenix laid out in a traditional grid system, with most roads travelling either [[North]]-[[South]] or [[East]]-[[West]]. [[Interstate 10|I-10]] from [[Los Angeles, California|Los Angeles]] travels from the west through downtown, and exits the metro area travelling to the southeast towards [[Tucson, Arizona|Tucson]]. [[Interstate 17|I-17]] begins in downtown Phoenix and travels [[north]] to [[Flagstaff, Arizona|Flagstaff]]. [[US 60]] also travels through the heart of the city, going to the [[northwest]] through the suburbs of [[Glendale, Arizona|Glendale]], [[Peoria, Arizona|Peoria]], and [[Surprise, Arizona|Surprise]]. It also exits to the east of downtown, travelling through the suburbs of [[Mesa, Arizona|Mesa]], [[Chandler, Arizona|Chandler]], [[Gilbert, Arizona|Gilbert]], and [[Apache Junction, Arizona|Apache Junction]], and beyond. State route Loop 101 is also a major highway that forms a semicircle around the northern suburbs of the city, starting from [[Interstate 10|I-10]] in the west and travelling around to [[Interstate 10|I-10]] (via state route Loop 202) in the southeast.
 
====Reconfigurable logic====
Phoenix has been rapidly expanding its highway system to meet needs of tomorrow. In 1985, voters passed a proposition to fund for new urban freeways (Arizona 51, Loop 101, Arizona 143, 153, Loop 202, Loop 303, and complete final section of I-10). Most of these have been completed by 2005 while Loop 202 and Loop 303 is in the final stages of construction and development.
 
Another track of development is to combine reconfigurable logic with a general-purpose CPU. In this scheme, a special computer language compiles fast-running subroutines into a bit-mask to configure the logic. Slower, or less-critical parts of the program can be run by sharing their time on the CPU. This process has the capability to create devices such as software [[radio]]s, by using digital signal processing to perform functions usually performed by analog [[electronics]].
==Sister Cities==
Phoenix, Arizona has eight [[town twinning|sister cities]], as designated by [http://www.sister-cities.org/ Sister Cities International, Inc. (SCI)]: [[Calgary]] ([[Alberta]], [[Canada]]), [[Chengdu]] ([[People's Republic of China|China]]), [[Ennis]] ([[Ireland]]), [[Grenoble]] ([[Rhone-Alpes]], [[France]]), [[Hermosillo]] ([[Sonora]], [[Mexico]]), [[Himeji]] ([[Japan]]), [[Catania]] ([[Italy]]), [[Taipei]] ([[Taiwan]]).
 
====Public ___domain processors====
==See also==
 
As the lines between hardware and software increasingly blur due to progress in design methodology and availability of chips such as [[FPGA]]s and cheaper production processes, even [[open source hardware]] has begun to appear. Loosely-knit communities like [[OpenCores]] have recently announced completely open CPU architectures such as the [[OpenRISC]] which can be readily implemented on FPGAs or in custom produced chips, by anyone, without paying license fees.
*[[List of major corporations in Phoenix]]
*[[List of notable residents of Phoenix]]
 
====High end processor economics====
== External links ==
*[http://www.phoenix.gov Official Government Website]
*[http://www.phoenixchamber.com/ Chamber of Commerce]
*[http://www.phoenixcvb.com/ Greater Phoenix Convention & Visitors Bureau]
*[http://www.phoenixarizona.info '''PhoenixArizona.info'''] Phoenix, Arizona's Travel Portal
*[http://travel.yahoo.com/p-travelguide-191501874-phoenix_vacations-i| Yahoo Travel Guide]
*[http://www.thephoenixguide.com/ The Phoenix Guide]
 
Developing new, high-end CPUs is a '''very''' expensive 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 take 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. Only the personal computer mass market (with production rates in the hundreds of millions, producing billions of dollars in revenue) can support such economics. 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]]. [[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.
{{Mapit-US-cityscale|33.52837|-112.0763}}
 
== Embedded design ==
 
The majority of computer systems in use today are embedded in other machinery, such as telephones, clocks, appliances, vehicles, and infrastructure. An [[embedded system]] usually has minimal requirements for memory and program length and may require simple but unusual input/output systems. For example, most embedded systems lack keyboards, screens, disks, printers, or other recognizable I/O devices of a personal computer. They may control electric motors, relays or voltages, and reed switches, variable resistors or other electronic devices. Often, the only I/O device readable by a human is a single light-emitting diode, and severe cost or power constraints can even eliminate that.
 
In contrast to general-purpose computers, embedded systems often seek to minimize [[interrupt latency]] over instruction throughput.
 
When an electronic device causes an interrupt, the intermediate results, the registers, have to be saved before the software responsible for handling the interrupt can run, and then must be put back after it is finished. If there are more registers, this saving and restoring process takes more time, increasing the latency.
 
Low-latency CPUs generally have relatively few registers in their central processing units, or they have "shadow registers" that are only used by the interrupt software.
 
=== Other design issues ===
 
<!-- [[virtual memory]] moved to [[Computer architecture]] -->
 
One interesting near-term possibility would be to eliminate the bus. Modern vertical [[laser diode]]s 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.
{{Arizona}}
{{United_States_state_capitals}}
 
Another farther-term possibility is to use light instead of electricity for the digital logic itself.
[[Category:All-America City]]
In theory, this could run about 30% faster and use less power, as well as permit a direct interface with quantum computational devices.
[[Category:Cities in Arizona]]
The chief problem with this approach is that for the foreseeable future, electronic devices are faster, smaller (i.e. cheaper) and more reliable.
[[Category:Maricopa County, Arizona]]
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.
[[Category:Phoenix metropolitan area]]
We can therefore expect the majority of development to focus on electronics, no matter how unfair it might seem.
[[Category:Phoenix, Arizona]]
See also [[optical computing]].
[[Category:U.S. state capitals]]
 
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.
[[da:Phoenix]]
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. There are two advantages to clockless CPUs over clocked CPUs:
[[de:Phoenix (Arizona)]]
* components can run at different speeds in the clockless CPU. In a clocked CPU, no component can run faster than the clock rate.
[[es:Phoenix]]
* 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 quicker than normal, the next stage can immediately take the results rather than waiting for the next clock tick. A stage might finish quicker 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.
[[eo:Fenikso (Arizono)]]
 
[[fr:Phoenix (Arizona)]]
Two examples of asynchronous CPUs are the [[ARM_architecture|ARM]]-implementing [[AMULET_microprocessor|AMULET]] and the asynchronous implementation of [[MIPS_architecture|MIPS]] R3000, dubbed [http://www.async.caltech.edu/mips.html MiniMIPS].
[[haw:Pēniki]]
 
[[it:Phoenix (Arizona)]]
The biggest disadvantage of the clockless CPU is that most CPU design tools assume a clocked CPU, so making a clockless CPU involves modifying the design tools to handle clockless logic and doing extra testing to ensure the design avoids [[Metastability in electronics|metastable]] problems. For example, the group that designs the aforementioned AMULET developed a tool called [http://www.cs.man.ac.uk/apt/projects/tools/lard/ LARD] to cope with the complex design of AMULET3.
[[he:פניקס (עיר)]]
 
[[nl:Phoenix (Arizona)]]
==Design concepts==
[[ja:フェニックス (アリゾナ州)]]
In general, all processors, micro or otherwise, run the same sort of task over and over:
[[pl:Phoenix (miasto)]]
 
[[pt:Phoenix (Arizona)]]
#read an instruction and decode it
[[sv:Phoenix, Arizona]]
#find any associated data that is needed to process the instruction
[[zh:凤凰城]]
#process the instruction
#write the results out
 
Complicating this simple-looking series of events is the fact that [[main memory]] 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. This often requires complex circuitry and was at one time found only on hand-wired [[supercomputer]] designs. However, as the manufacturing processes have improved, they have become a common feature of almost all designs.
 
===RISC===
The basic concept of [[RISC]] is to clearly identify what step 2 does. In older processor designs, now retroactively known as [[CISC]], the instructions were offered in a number of different modes that meant that step 2 took an unknown length of time to complete. In RISC, almost all instructions come in exactly one mode that reads data from one place -- the registers. These ''addressing modes'' are then handled by the [[compiler]], which writes code to load the data into the registers and store it back out. For this reason the term '''load-store''' is often used to describe this philosophy in design; there are many processors with limited instruction sets that are not really RISC.
 
The side effect of this change is twofold. One is that the resulting logic core is much smaller, largely by making step 1 and 2 much simpler. Secondly it means that step 2 always takes one cycle, also reducing the complexity of the overall chip design which would otherwise require complex "locks" that ensure the processor completes one instruction before starting the other. For any given level of performance, a RISC design will have a much smaller "gate count" (number of transistors), the main driver in overall cost -- in other words a fast RISC chip is much cheaper than a fast CISC chip.
 
The downside is that the program gets much longer as a side effect of the compiler having to write out explicit instructions for memory handling, the "code density" is lower. This increases the number of instructions that have to be read over the computer bus. When RISC was first being introduced there were arguments that the increased bus access would overwhelm the speed, and that such designs would actually be slower. In theory this might be true, but the real reason for RISC was to allow [[instruction pipeline]]s to be built much more easily.
 
===Instruction pipelining===
One of the first, and most powerful, techniques to improve performance is the [[instruction pipeline]]. Early microcoded 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.
 
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's still four steps, the CPU as a whole "retires" instructions much faster and can be run at a much higher clock speed.
 
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 architecture|MIPS]] often running over 10 times as fast as [[Intel]] and [[Motorola]] CISC solutions at the same clock speed and price.
 
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.
 
===Speculative execution===
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.
 
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 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.
 
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.
 
===Cache===
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 [[CPU cache|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.
 
RISC designs started adding cache in the mid-to-late 1980s, often only 4k in total. This number grew over time, and modern CPU's typically include about 512kbytes, while CPU's intended for server use come with 1 or 2 Mbytes. Generally speaking, more cache means more speed.
 
===Out-of-order execution===
Use of cache also introduces a new delay when the data asked for by the CPU is not already in the cache. In early designs this 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 instruction to be processed while the processor waits on the cache, then re-orders the results to make it appear that everything happened in the normal order.
 
===Superscalar designs===
Even with all of the added complexity and gates needed to support the concepts outlined above, chip manufacturing had soon made even them have room left over. This led to the rise of [[superscalar]] processors in the early 1990s, processors that could run more than one instruction at once.
 
In the outline above the processor runs parts of a single instruction at a time. If one were simply to place two entire cores on a die, then the processor would be able to run two instructions at once. However this is not actually required, as in the average program certain instructions are much more common than others. For instance, the load-store instructions on a RISC design are more common than [[floating point]], so building two complete cores isn't as efficient a use of space as building two load-store units and only one floating point.
 
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 decoder grows in complexity by reading in a huge list of instructions from memory and handing them off to the different units that are idle at that point. The results are then collected and re-ordered at the end, as in out-of-order.
 
===Simultaneous multithreading===
One of the newest techniques in high-speed processor design is [[simultaneous multithreading]]. Oddly it may have been easier to add this in the past than some of the other techniques described above.
 
The cache controller knows where in main memory any piece of data came from. It therefore "knows" that different data in the cache are actually from different programs entirely, a side effect of modern [[computer multitasking|multitasking]] [[operating system]]s. In simultaneous multithreading designs, the cache controller will not look just for the instruction that is ready, but the program (or thread) that is "most ready". This can be quite effective in many cases, as programs often switch between handling data and processing, simultaneous multithreading can make more effecient use of the various units in these cases by going out and finding entirely different programs to run while the "running one" waits for data.
 
== See also ==
 
* [[Microprocessor]]
* [[Moore's Law]]
* [[Amdahl's law]]
* [[Simultaneous multithreading]]
* [[RISC]]
* [[CISC]]
 
[[Category:Computer architecture]]
 
[[nl:Processorarchitectuur]]