throbber
NEWS
`
`, COLUMNS
`
`14 Industry Trends
`New Technologies Place Video
`in Your Hand
`George Lawton
`18 Technology News
`Aspect-Oriented Programming
`Takes Aim at Software
`Complexity
`Sandra Kay Miller
`23 News Briefs
`Hacker Launches Cyberattack
`from Security Site • New
`Bus Technology Boosts
`Performance • Peer-to-Peer
`Goes Hand to Hand
`
`MEMBERSHIP NEWS
`
`84 Computer Society
`Connection
`Strategic Plan Maps Society's
`Goals • Student Winners
`Recognized for Technical
`Writing, Academics, and
`Involvement
`88 Call and Calendar
`
`TH E TR U T H A B O U T B I S T
`
`Looking for innovative ways to test
`
`embedded core-based chips? See the
`
`online tutorial "Built-In Self-Test
`
`for Systems-on-Chip" at http://
`
`aomputer.org/DT-tutorials/BIST.
`
`Membership Magazine
`of the
`
`IEEE~
`COMPUTER
`SOCIETY
`
`100 Entertainment
`Computing
`The Curse of Fast Iron
`James F. Dunnigan
`104 Communications
`Packet Scheduling in Next-
`Generation Multiterabit
`Networks
`Itamar Elhanany, Michael
`Kahane, and Dan Sadat
`107 Standards
`Software Architecture:
`Introducing IEEE Standard 1471
`Mark W. Maier, David Emery,
`and Rich Hilliard
`112 The Profession
`Virtual Organization:
`The New Feudalism
`Abbe Mowshoiuitz
`
`DEPARTMENTS
`
`4 Letters
`26 Article Summaries
`96 New Books
`97 Products
`
`10 IEEE Computer Society
`Membership Application
`91 Advertiser/Product Index
`92 Career Opportunities
`
`GOOGLE EXHIBIT 1040
`GOOGLE v. NEONODE
`IPR2021-01041
`
`Page 1 of 11
`
`

`

`ABOUT THIS ISSUE
`
`W hile transaction
`
`processing and Web
`servers dominate the
`high-end computing
`market, multimedia
`and DSP applications
`are beginning to
`prevail in the
`desktop and mobile(cid:173)
`computing markets.
`These applications
`exhibit behavioral
`characteristics that are quite
`different from traditional general(cid:173)
`purpose applications and require a
`new set of design constraints, such
`as very specialized performance at
`very low power and cost. This
`special issue captures some of
`these exciting trends in processor
`architecture.
`
`IEE Computer Society: http:/ /computer.ore
`computer: http:/ /computer.ore/computer
`computer@computer.org
`IEE Computer Society Publications Office: + 1 714 821 8380
`
`COMPUTING
`PRACTICES
`
`28 ltsy: Stretching
`the Bounds of Mobile
`Computing
`William R. Hamburgen,
`Deborah A . Wallach,
`Marc A. Viredaz,
`Lawrence S. Brakmo,
`Carl A . Waldspurger,
`Joel F. Bartlett,
`Timothy Mann,
`and Keith I. Farkas
`
`PERSPECTIVES
`
`38 The Cooler the
`Better: New
`Directions in the
`Nomadic Age
`Tsugio Mak imoto,
`Kazuh iko Eguchi,
`and Mitsugu Yoneyama
`
`43 Foundries and the
`Dawn of an Open
`IP Era
`Shang-yi Chiang
`
`COVER
`
`47 Early 21st Century
`Processors
`Sriram Vajapeyam
`and Mateo Va lero
`
`52
`
`59
`
`Power: A First-Class
`Architectural Design
`Constraint
`Trevor Mudge
`
`Instruction-Level
`Distributed
`Processing
`James E. Smith
`
`66 Speculative
`Mu ltithreaded
`Processors
`Gurindar S. Sohi
`and Amir Roth
`
`75 Embedded Computer
`Architecture and
`Automation
`B. Ramakrishna Rau
`and Michael S. Schlansker
`
`w RIGHTS RESERVED. ABSTRACTING IS PERMITTED
`
`APA COPYRIGHT© 2001 BY THE INSTITUTE OF ELEC(cid:173)
`~ " ' TR ICAL AND ELECTRONICS ENGINEERS INC. ALL
`
`WITH RF.DITTO THE SOURCE. LIBRARIES ARE PER(cid:173)
`MITTED TO PHOTOCOPY BEYOND THE LIMITS OFUS
`COPYRIGHT LAW FOR PRIVATE USE OF PATRONS: ( I ) THOSE POST-
`1977 ARTICLES THAT CARRY A CODE AT THE BOTTOM OF THE
`FIRST PAGE, PROVIDED THE PER-COPY FEE INDICATED IN THE
`CODE IS PAID THROUGH THE COPYRJGHT CLEARANCE CENTER,
`222 ROSEWOOD DR., DANVERS, MA 01923; (2) PRE-1978 ARTI(cid:173)
`CLES \Vlll-lOUT FEE. FOR on IER COPYING, REPRJNT, OR REPUB-
`1 ICATION PERMISSION, WRITE TO COPYR IGHTS AND PERMIS(cid:173)
`SIONS DEPARTMENT, IEEE PUBLI ATIONS ADMIN!SlllATION, 445
`IIOF.s LANE, P.O. Box 1331, PISCATAWAY, NJ 08855-1331.
`
`Cover design and artwork
`by Dirk Hagner
`
`NEXT MONTH
`Software
`Engineering on
`Internet Time
`
`GOOGLE EXHIBIT 1040
`GOOGLE v. NEONODE
`IPR2021-01041
`
`Page 2 of 11
`
`

`

`I This ma terial may bi! protected by Copyright law lTitle 17 U.S. Code)
`
`I
`
`COMPUTING PRACTICES
`
`Itsy: Stretching the Bounds
`of Mobile Computirig
`
`A prototype pocket computer that has
`enough processing power and memory
`capacity to run cycle-hungry applications
`such as continuous-speech recognition
`and real-time MPEG-1 movie decoding
`has proved to be a useful experimental
`tool for interesting app_lications, systems
`work, and power studies.
`
`William R.
`
`Deborah A.
`Wallach
`Marc A.
`Viredaz
`Lawrence S.
`Brakmo
`Carl A.
`Waldspurger
`Joel F.
`Bartlett
`Timothy
`Mann
`Keith I.
`Farkas
`Compaq
`Computer
`Corporation ,
`Corporate
`Research
`
`Hamburg en T he advent of fast, power-thrifty micro(cid:173)
`
`processors has made possible pocket-size
`computers with performance approach(cid:173)
`ing that of desktop PCs. This new class
`of mobile computers enables applica(cid:173)
`tions and user-interface modalities not feasible with
`traditional personal digital assistants and cell phones,
`while placing new demands on batteries and power
`management. We built Compaq's Itsy pocket com(cid:173)
`puter research prototype to explore the possibilities,
`demands, and limitations of mobile computing.
`Our primary hardware goals were to attain high per(cid:173)
`formance with minimal power consumption, size, and
`weight. At the same time, we needed a rich feature set
`to support user-interface and applications research and
`the flexibility to easily add new capabilities. To meet
`these goals, we used daughtcrcards to provide ltsy with
`comprehensive expansion capability. Fine-grain hard(cid:173)
`ware control supports flexible power management and
`monitoring. Developers can use the Linux operating
`system with extensions for a flash file system, resource
`sharing, and power management to rapidly prototype
`operating system extensions and new applications. Itsy
`has sufficient processing power and memory capacity
`to run cycle-hungry applications such as continuous
`speech recognition, a full-fledged Java virtual machine,
`and real -time MPEG-1 movie decoding.
`
`HARDWARE
`We began our hardware effort by constructing 75
`systems that we used to start software development. 1
`The experience we gained in building and using these
`sys tems influenced our subsequent des ign, ltsy v2.
`
`111D
`
`Computer
`
`Figure 1 shows this design's general architecture, and
`Table 1 lists its primary specifications.
`Our design focused on two goals: packing m ' xi(cid:173)
`mum performance into a unit that people can com(cid:173)
`fortably carry all day in a pocket or purse and en(cid:173)
`abling easy customization and extension of the ~ys(cid:173)
`tem hardware and software. Itsy is only slightly larger
`than a credit card, but it incorporates these other
`desirable features. Criteria such as cost or suitabil ity
`for volume manufacturing, which are critical for com(cid:173)
`mercial products, played no significant role.
`A small system's battery and display are generall) its
`largest and heaviest components, so they establish a l0•ver
`bound on the system's size and weight. For Itsy, we
`selected a lithium-ion cell just large enough to provide a
`full day of intermittent use, and the smallest available LCD
`with sufficient resolution for a rich graphical inrerfac '.
`We ruthlessly excluded any features or components
`that would bloat the system. For example, version 1
`users wanted a thumbwheel encoder, a cursor button,
`a good speaker, and a stylus slot, but because all fo ur
`of these features would not fit within our space bJd(cid:173)
`get, we excluded the stylus slot. Similar considerations
`led us to omit a bulky stereo headphone jack a nd codec
`in favor of a smaller monaural headset jack and a
`monaural codec that includes a touch-screen con(cid:173)
`troller. Finally, a radio transceiver was clearl y de ir(cid:173)
`able, but we found no obvious best choice to include
`in the base system. Therefore, we relegated experi(cid:173)
`mental radios to the daughtercard or serial interfaces.
`As a result of these choices, the complete Itsy is unly
`70 percent larger in volume than it would be if it c0n(cid:173)
`tained only the battery and display.
`
`d018·9162/01/$10.00 © 20011EEE
`
`GOOGLE EXHIBIT 1040
`GOOGLE v. NEONODE
`IPR2021-01041
`
`Page 3 of 11
`
`

`

`LCD,
`back light
`
`Touch
`screen
`
`LED
`
`Available
`daughtercard
`functionality
`Software
`~---;:=:=::=:::;-+I modem
`A/Dlnput
`
`GPIOs
`SSP
`+ - - - - - - -+ISDLC
`2 UARTs
`
`Memory bus
`(static memory,
`DRAM,
`twoPCMCIA
`sockets)
`
`Codec
`GPIO
`lrDA
`LCD
`LED
`Li -ion
`
`Coder/decoder
`General-purpose 1/0 pin
`Infrared Data Associ ation standard port
`Liquid crystal display
`Light-emitting diode
`Lithium-ion
`
`PCMCIA
`RS-232
`SDLC
`SSP
`UART
`USB
`
`Personal Computer Memory Card lnt'I Assoc.
`Serial interface
`Synchronous data link controller
`Synchronous serial port
`Universal asynchronous receiver-transmitter
`Universal serial bus
`
`Figure 1-ltsy v2
`architecturp. Most of
`the hardware is
`implemented on the
`motherboard
`(depicted in blue).
`The LCD and the
`touch screen attach
`to the motherboard
`via dedicated
`connectors. Other
`parts of the hardware
`(shown in yellow)
`are implemented on
`a separate flexible
`circuit board.
`A daughtercard
`connector is avail(cid:173)
`able to interface with
`additional hardware.
`Daughtercards can
`use any of the
`features listed in
`the red box.
`
`Processor
`The Stro ngARM SA-11 00 is a low-power 32-bit
`microprocessor that implements the ARM instruction
`set. 2
`3 This processor was a clea r choice beca use its

`integer perfo rm a nce approaches th at o f des ktop
`processors, but it uses an o rder of magnitude less
`power. It also provides a useful collecti on of periph(cid:173)
`eral devi ces, as well as power-savin g fea tures th at
`researchers ca n exploit. To minimi ze energy use, the
`StrongARM supports software-controllable cl ock fre(cid:173)
`,quency and two low-power modes: idle and sleep. In
`Jdle mode, the clock to the processor core is gated off,
`aving power du e to the CMOS ci rcuit techno logy,
`While the rest of th e chip remain s powered and all
`peripherals rema in ena bled. [n sleep mode, most of
`the processor is unpowered, and onl y the rea l-time
`clock and the wa ke- up circuit remain ena bled.
`Optionall y, the system clock ca n remain ena bled for
`aster wake-up.
`
`In contrast to the usual power-saving passive-matrix
`isplays developers commonl y choo e fo r small sys(cid:173)
`ms, ltsy's LCD has some particularly usefu l charac(cid:173)
`teristics. It 0. 18-mm pixe l pitch is 25 to 30 percent
`mailer than the typica l pitch of small matrix displays,
`permitting dense text and crisp graphics. It multiline
`address ing techno logy provides higher contrast th an
`is typica l of a passive display. Fin ally, the LCD's built(cid:173)
`in I -bit-per-pixel memory and a progra mma ble-logic(cid:173)
`device (PLD ) a ux ili ary controller make it possible to
`display a static monochrome image while the proces(cid:173)
`sor is in sleep mode.
`
`Memory
`Th e most frequent complaint from ltsy vl proto(cid:173)
`type user was the limitati on of having onl y 4 Mbytes
`o f fl ash memory, so we started the v2 motherboa rd
`des ign with th e memory system. As Figure 2 shows,
`we chose a micro-ball -grid array package for the fl ash
`instea d of a peripheral lead package. Alth ough th e
`mi cro-BGA call s for a more compli ca ted assembl y
`process, it offers three tim es the mounting density. We
`chose the moth erboard width to allow dense tiling of
`the fl as h across the board's full width . We arranged
`the DRAMs on the opposite side to match the fl ash
`tiling. ltsy v2 has tw ice as much DRAM and eight
`times as much fl ash as Itsy vl , with only a 3 percent
`increase in boa rd area.
`
`Table 1. ltsy v2 specifications (without daughtercard).
`
`Component or characteristic
`Processor
`Dynamic RAM (DRAM)
`Flash memory
`Processor-core voltage
`Main voltage
`LCD
`Battery
`Size
`Weight
`
`Specification
`StrongARM SA-1100 (59 MHz-191 MHz) *
`32 Mbytes (50 ns, extended data out)
`32 Mbytes (90 ns)
`1.5 V or 1.23 V (selectable)
`3.05 V
`320 x 200 pixels, 15 gray levels
`Rechargeable Li-ion (2.2 W x h)
`118 mm x 65 mm x 16 mm
`130 gm
`
`' The processor's manual guarantees operation up to a 191 -MHz core frequency at
`1.5 V, but all ltsy systems built to date function correctly at 206 MHz and even higher.
`
`April 2001
`
`ml
`
`GOOGLE EXHIBIT 1040
`GOOGLE v. NEONODE
`IPR2021-01041
`
`Page 4 of 11
`
`

`

`After choosing the number of DRAM chips (4) and
`their individual capacity (64 Mbits), we selected the
`device width. Our choices were to implement one bank
`using four 8-bit parts (32 Mbytcs per bank) or two
`banks of two 16-bit parts each (16 Mbytes per bank).
`Because the StrongARM only supports up to fo ur
`banks, the one-ba nk option offers better expansion
`capabilities. However, we chose the two-bank design
`for two reasons. First, refreshing the 16-bit parts con(cid:173)
`sumes less power-about 5.2 mW versus 9.5 mW for
`32 Mbytes-because 16-bit parts have a different inter(cid:173)
`nal topology. Second, reading data out of th e 16-bit
`parts consumes less power because on ly two parts are
`active instead of four. For example, copying memory
`using eight-word bursts at 206 MHz requires about
`490 mW rather than 630 mW.
`
`Power system
`Our DRAM selection demonstrates how we used
`architectura l decisions and component selection to
`stretch battery life. However, to make the best use of
`limited battery energy, we had to consider both power
`supply and consumption.
`Because battery voltage varies widely during use,
`the design needs voltage regulators to provide the sys-
`
`tern with constant supply voltages. Linear regular lrs
`are sma ll, cheap, and widely used in sma ll devices, hut
`they have poor efficiency, particularly when the input
`voltage is much larger than the output. Therefore, we
`used switching regulators for our two main supphes.
`However, because clean audio was a key require~ ..:nt
`for speech recognition, we chose a sma ll, low-noise,
`linear regulator for the ana log circuitry.
`ltsy uses logic specified to operate at 3.3 ± 0. 3 V,
`but the power supp ly is set to 3.05 V, on ly sliglitly
`above the minimum. Because power consumpt'on
`increases with the sq uare of the voltage, this reduc(cid:173)
`tion from the usual 3.3 V, combined with the use of a
`switching regulator, results in an alm ost 15 percent
`power savings. Although a lower system vol t.,ge
`reduces noise margins, test systems have operated -,Ii(cid:173)
`ab ly at as low as 2. 7 V, indicating that this design point
`was a reasonable trade-off.
`
`Power-saving mechanisms
`These power strategies were necessary but not 0 11f(cid:173)
`ficient, so we developed additional hardware features
`that a llow the software to make the best use of avai l(cid:173)
`able energy. The hardware does not automatically dis(cid:173)
`able external peripherals when the processor ent..: rs
`
`(a)
`
`(b)
`
`Figure 2. The (a) top and (b) bottom sides of the ltsy v2 motherboard. Using micro-ball-grid array packages for the processor ancf
`flash memory offers a very high mounting density.
`
`lllll!J
`
`Computer
`
`GOOGLE EXHIBIT 1040
`GOOGLE v. NEONODE
`IPR2021-01041
`
`Page 5 of 11
`
`

`

`leep mode. Instead, the software can turn each unit
`n and off individually. This strategy lets the operat(cid:173)
`g system disable any of these units while the proces(cid:173)
`or is running, or conversely, any of the units can
`remain active while the processor is in sleep mode. For
`example, the operating system usually puts the DRAM
`· self-refresh mode during sleep, but it can also
`hoose to completely unpower the DRAM. We can
`use these mechanisms to implement a wide variety of
`leep modes, ranging from deep sleep, which main(cid:173)
`ins only the real-time clock, to light sleep, which
`eeps the LCD enabled, the DRAM contents pre(cid:173)
`rved, the clock on, and most interrupts configured
`o wake up the processor.
`Itsy's design lets the software choose to power the
`rocessor core at either 1.5 V or 1.23 V. Although
`1.23 V is below the manufacturer's specification, it is
`feat moderate clock rates and yields about a 30 per(cid:173)
`m power savings for the core, translating to 10 to 20
`rcent overall.
`ltsy can monitor its own power and energy use.
`oltage measurements and precision current-sense
`resistors with differential amplifiers allow sampling of
`he power on four separate paths: from the USB or
`ther external source, to and from the battery, into the
`rocessor core supply, and combined into the main and
`alog supplies, External laboratory instruments can
`onitor four additional current-sense resistors (for the
`DRAM and the three supply outputs). A battery mon(cid:173)
`. or circuit integrates power into and out of the bat(cid:173)
`tery to continuously monitor the state of charge.
`Accurately measuring the state of charge has proven
`hallenging because the battery monitor chip has two
`· itations: It cannot handle Itsy's large dynamic-cur(cid:173)
`em range, and it provides no method of correcting
`or current-measurement input offset errors, which
`re significant in a system that spends much of its time
`m sleep mode.
`
`ughtercard interface
`To facilitate development of high-performance
`ardware extensions, the daughtercard interface
`ports the full memory bus-all 32 data bits and all
`6 address signals-and most other useful signals.
`These other signals implement serial ports, 14 gen(cid:173)
`eral-purpose 1/0 pins (GPIOs), a software modem,
`d a single general-purpose analog input. Because
`the serial ports and the GPIOs share many processor
`ins, these features are not all available simultane(cid:173)
`ously.
`
`To exploit Itsy's flexible hardware, we needed flex(cid:173)
`ible software. We also wanted a comprehensive,
`robust environment for large applications. Open(cid:173)
`Source software was attractive because it eliminated
`
`barriers to sharing code. To meet these goals,
`we selected Linux, initially porting Russell
`King's ARM distribution (version 2.0.30) to an
`SA-1100 evaluation system and then to the Itsy
`platform. We then made significant additional
`changes to better support handheld computing,
`including improvements for power manage(cid:173)
`ment and memory-based file systems. In addi(cid:173)
`tion, we designed and implemented sessions, a
`new device-sharing model that lets Itsy run dif(cid:173)
`ferent application environments concurrently.
`
`Sessions, a new
`device-sharing
`model, lets ltsy run
`different application
`environments
`concurrently.
`
`File systems
`Itsy uses the Linux Ramdisk driver to provide
`dynamic memory partitioning between process
`address spaces and memory-resident file systems. This
`implementation is ideal for a handheld device because
`it does not waste space on redundant copies of data in
`the buffer cache and virtual memory system.
`For additional savings, we modified the Ramdisk
`driver to discard blocks containing only zeros. This
`simple but surprisingly effective form of compression
`allowed us to create a large file system that does not
`consume physical memory until it stores actual data.
`Changes to a Ramdisk are lost when power fails,
`so Itsy also bas a flash-based file system for stable,
`writeable storage. This consists of an ordinary Linux
`ext2 file system that expects to run on top of a disk,
`plus a block device driver that emulates a disk in a
`portion of the flash. Because flash has very different
`properties from a disk, this emulation is not trivial:
`The system must erase flash before writing it, the min(cid:173)
`imum erase unit is large-----128 or 256 Kbytes on Itsy(cid:173)
`and erasing is slow-typically 700 ms per erase unit.
`We used the industry-standard flash translation
`layer (FTL) data structure for disk emulation. We
`based our driver on code from the Linux PCMCIA
`subsystem, modified to work with Itsy's onboard flash.
`An FTL driver keeps a map from virtual disk block
`addresses to physical flash addresses. It handles reads
`simply by looking in the map to find the correct data.
`Writes are more complicated.
`When the driver must write to a virtual block,
`it finds a free-previously erased-physical block,
`writes the data into it, and updates the map. The phys(cid:173)
`ical block previously mapped to this virtual address,
`if any, is now unused, but the driver cannot erase it if
`other blocks in the same erase unit are still in use.
`When no free blocks remain, the driver reclaims space
`by choosing an erase unit that contains some unused
`blocks, moving any in-use blocks still in the unit to a
`spare unit, and erasing the old unit, which becomes
`the new spare.
`We observed a serious performance problem in this
`scheme. When the FTL driver reclaims space, it can
`free up only blocks that it knows are unu ed. FTL is
`
`April 2001
`
`GOOGLE EXHIBIT 1040
`GOOGLE v. NEONODE
`IPR2021-01041
`
`Page 6 of 11
`
`

`

`Figure 3. An example
`of sessions. The
`session labeled
`X Windows is in the
`foreground, and the
`others are in the
`background. The
`audio driver mixes its
`inputs, attenuating
`the inputs from the
`background sessions.
`The display driver
`shows one of the
`foreground session's
`frame buffers. When
`the user presses a
`button, only the
`foreground session
`is notified.
`
`Background
`session.:...-----
`
`fl MPEG player
`
`Foreground
`session:---(cid:173)
`X Windows
`IC!l!llll
`
`, .
`
`ltsy
`
`Background
`session:-~----
`
`mmi
`
`II
`ltsy
`
`□
`
`a disk emulator, not a file system, so it receives on ly
`virtual block read and write requests. Therefore, it
`does not find out that the driver has freed a physical
`block until the file system overwrites the correspond(cid:173)
`ing virtual block with new data. In the worst case,
`when the FTL driver must write to a virtual block, it
`knows about only one unused physical block-the one
`containing the virtua l block's o ld va lue. So it must
`erase and recopy a whole erase unit for every write,
`slowing FTL performance to a crawl. The Linux FTL
`driver avoids the worst case by defining the flash's vir(cid:173)
`tual size as on ly 95 percent of its physical size, so that
`5 percent of the physical blocks are always known to
`be unused. As a result, a single erase can sometimes
`reclaim more than one block. However, FTL still per(cid:173)
`forms as poorly as if the flash were 95 percent full, no
`matter how empty it really is.
`To correct this problem, we made a small modifica(cid:173)
`tion to the Linux ext2 file system. The file system now
`informs the block driver when it frees a virtual block,
`enabling the driver to reclaim the corresponding phys(cid:173)
`ical block ahead of time. This change greatly reduces
`the number of erases per write when the flash is not full.
`
`Power management
`To let Itsy operate at reduced power, we modified
`Linux to take advantage of the StrongARM proces(cid:173)
`sor's low-powered operating modes-idle and sleep(cid:173)
`and variable clock speeds.
`Exploiting idle mode is straightforward. The
`processor can enter and exit the mode in just a few
`clock cycles, so we modified the kernel idle loop to
`
`enter idle mode. When an interrupt occurs, the prou:s(cid:173)
`sor exits idle mode and returns to normal operati ,n.
`The user cannot detect idle mode.
`Sleep mode saves more power than idle mode. At
`the same time, it makes a bigger impact on the system,
`both in terms of software and user detectabi hLy,
`because sleep mode unpowers most of the proces<"r.
`In particular, the on-chip peripheral controllers,
`including the LCD controller and the UARTs, don't
`work. Sleep mode can be ini ti ated by user request
`(such as a button press), by the kernel, or by a system
`power fau lt. Entering sleep mode takes about 1 ,O
`µs; exiting takes about 10 µs if the clock was left
`enabled, 157 µs if it was disabled.
`We developed a power management module tha t
`coordinates the suspension and resumption of devi ... ..;s
`when sleep mode starts and ends. Each device registers
`callbacks that the power manager executes to deter(cid:173)
`mine whether or when the devices are ready to suspend.
`Another callback demands that the devices save their
`state immediately, pending suspension. When the
`processor exits sleep mode, the operating systr rn
`reestablishes its previous state (stack and registers), and
`the power manager calls the devices for reinitialization.
`The power manager module also suspends and
`resumes devices when changing the processor clc ·k
`speed. Suspending and resuming devices, except rhe
`LCD, is necessary only to prevent temporary glitches,
`and it adds about 400 µs to the base clock switching
`time of 125 µs. Resetting the LCD takes much longer,
`but the processor can perform useful computati nn
`during this time.
`
`Computer
`
`GOOGLE EXHIBIT 1040
`GOOGLE v. NEONODE
`IPR2021-01041
`
`Page 7 of 11
`
`

`

`Vlrtualizing ltsy devices
`Unlike a unified windowing system that demands
`compliance from all applications, the sessions device(cid:173)
`sharing model supports the peaceful coexistence of
`distinct yet concurrently executing "worlds," each of
`which sees its own virtual Itsy. Thus, Itsy can concur(cid:173)
`rently run systems as disparate as X Windows, Java,
`and Squeak, as well as full-screen stand-alone appli(cid:173)
`cations and virtual consoles.
`A session consists of one or more processes. At any
`given time, one session is distinguished as the fore(cid:173)
`ground session; the others are background sessions.
`As Figure 3 shows, foreground-session processes
`receive physical input events, such as button presses or
`touch-screen samples. They also have exclusive-or
`preferred-access to physical output devices. For
`example, a session's active frame buffer, if any, is vis(cid:173)
`ibly mapped onto the LCD. Processes in background
`sessions, on the other hand, do not receive physical
`input events, and their output is typically hidden.
`When a process opens a physical device, it accesses
`only a session-filtered instance of that device. The
`input that each physical device generates is replicated
`to all instances in the foreground session. Output is
`merged from all instances in the foreground session.
`A device can drop, attenuate (for example, for audio),
`store, or specially handle background-session output.
`A user-level process serves as a session manager to
`determine which virtual Itsy instance is currently
`mapped to the physical hardware. Figure 4 shows a
`session manager running on Itsy.
`Each physical device also exports a raw interface
`that applications requiring continuous access can use.
`For example, a speech recognition application running
`in the background can use the raw interface to snoop
`on all audio input, translate it, and offer the transcribed
`text to any application in the foreground session.
`
`EXPERIENCES WITH USER INTERFACES
`ltsy's system software makes porting existing desk(cid:173)
`top applications easy, but unfortunately, some
`assumptions of the desktop interaction style are inap(cid:173)
`propriate for small portable devices. Our initial
`attempts at using Squeak's graphical user interface on
`ltsy demonstrated the difficulty of mapping a device
`with a large display and three-button mouse to a
`device with a small display and a stylus. We developed
`conventions that made the Squeak GUI usable, but it
`was by no means easy to use.
`Users cannot move a stylus on a handheld device as
`easily and accurately as they move a mouse on a desk(cid:173)
`top. As a result, mastering handheld interfaces that
`require precision pointing and tapping is difficult.
`Additionally, a desktop GUI has the user's full attention
`for extended periods, but the only portable application
`domain that can demand such attention is gaming.
`
`Figure 4. A session
`manager running on
`ltsy v2. Several
`applications are
`simultaneously
`running in the back(cid:173)
`ground, including
`an MPEG player, a
`battery monitor, and
`a voice organizer.
`
`Clearly, as the Palm operating system demonstrates,
`GUis must be specially designed for small systems.
`As portable devices shrink further, stylus-based
`input becomes even more difficult. This problem led
`us to experiment with two nontraditional user inter(cid:173)
`faces: speech-based input and output and gesture(cid:173)
`based input.
`
`Speech
`One promising interface for a tiny device is speech.
`For output, ltsy uses DECtalk, a commercial text-to(cid:173)
`speech engine. For speech input, a more challenging
`problem, we had two speech recognition systems
`ported to ltsy. The first, TalkSoft, provides speaker(cid:173)
`independent, small-vocabulary, command-and-con(cid:173)
`trol speech recognition in a small memory footprint.
`We have successfully used DECtalk and TalkSoft to
`build a speech-based multimedia e-mail program.
`Although not a complete implementation, this pro(cid:173)
`gram has successfully demonstrated the feasibility of
`speech-based interaction in realistic environments,
`even using ltsy's bui lt-in microphone in a crowded
`room.
`Dragon Systems ported its speech recognition
`system to ltsy. This system includes both a speaker(cid:173)
`independent, grammar-based, continuous-speech,
`command-and-control engine and Dragon's Naturally(cid:173)
`Speaking, a speaker-dependent, continuous-speech
`dictation engine with a 30,000-word vocabulary.
`Together, the two engines offer the potential for a rich
`speech-only user environment.
`The promise of speech recognition has been par(cid:173)
`tially realized in the sense that adequate performance
`is no longer an obstacle to using speech as an inter(cid:173)
`face for pocket-sized devices. However, we must still
`meet the challenge of building effective speech(cid:173)
`centered or multimodal user interfaces.
`
`Gesture
`Most desktop-computer input methods rely on
`physical manipulation of an object such as a keyboard
`or mouse. A sy terns shrink, we can use the motion
`of the system itself for user input. Tilting a handheld
`
`April 2001 ~
`
`GOOGLE EXHIBIT 1040
`GOOGLE v. NEONODE
`IPR2021-01041
`
`Page 8 of 11
`
`

`

`Figure 5. A photo
`album application
`on ltsy. When a user
`makes a gentle
`fanning gesture with
`the ltsy, a two-axis
`micromachined
`accelerometer senses
`the fore and aff and
`left and right tilting,
`and the photo album
`application displays
`the next picture.
`
`computer to navigate through a document has long
`been anticipated, but sensors have only recently
`become small enough and cheap enough for develop(cid:173)
`ers to embed them in handheld devices that implement
`the tilt-to-scroll method.
`We extended the tilt-to-scroll method to include the
`use of gestures to issue commands. Our user interface,
`which we call Rock 'n' Scroll, lets users gesture to
`scroll, make selections, and issue commands, without
`resorting to any other input method. 4
`A photo album application demonstrates this inter(cid:173)
`face. The user tilts the album on either axis to scroll
`through miniature photographs until finding a picture
`of interest. When the user makes a gentle fanning ges(cid:173)
`ture, the album zooms in on that picture. The user can
`make additional fanning gestures to step through the
`rest of the album, return to the miniatures, or disable
`and enable scrolling. Pictures are availab le in land(cid:173)
`scape and portrait mode; holding the unit in the new
`orientation for a few moments reorients the picture.
`Early experiments with a handheld mockup demon(cid:173)
`strated that users quickly learn to operate Rock 'n'
`Scroll and gave us some insight into user expectations.
`These positive results, as well as improvements in sen(cid:173)
`sor technology, encouraged us to incorporate Rock 'n'
`Scroll as a standard input method on Itsy. Figure 5
`shows an implemention of the photo album applica(cid:173)
`tion on Itsy. A two-axis micromachined accelerome(cid:173)
`ter senses fore and aft and left and right tilting, and
`software converts the accelerometer's outputs to ges(cid:173)
`ture commands. In our user study, we observed that
`tilting the mockup to play a simple game fascinated
`nearly all participants. This observation was confirmed
`by the enthu siastic reception of our port of id
`Software's Doom game in which users tilt the Itsy to
`navigate thro ugh a three-dimensional environment.
`
`El
`
`Computer
`
`HEAVY LIFTING WITH A TINY BATTERY
`To meet project goals, we needed sufficient proce~s(cid:173)
`ing power and memory capacity to run next-generJ(cid:173)
`tion applications and user interfaces, as well as sufficient
`battery life to run realistic user interface experiments.
`We ran performance and energy consumption tests to
`assess how well we fulfilled these needs.
`
`Performance
`By running the Dhrystone

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket