© 2000 Ubicom, Inc. All rights reserved. - 3 - www.ubicom.com Pre-Built Software Modules
•    Selection of physical interfaces
–   10Base-T Ethernet
–   USB
–   UART
      –   I2C
      –   SPI
      
–   Parallel slave
•    Complete TCP/IP stack
Software Support
•    Red Hat GNUPro tools
–   GCC ANSI C compiler and assembler, linker, utili-            ties, GNU debugger, and IDE
•    Nohau in-circuit debugger
      –   Seehau Interface
      –   USB-based debug hardware
      
–   Assembler
•    Library of  off-the-shelf  ipModules (Ethernet,  serial  in-
      terfaces, USB interface, etc.)
•    Evaluation  kits  for  Internet  and  communication-inten-
sive applications 1.3    Architecture 1.3.1  CPU
The IP2022 implements an enhanced Harvard architec-
ture with two separate memories that have independent
address and data buses, a 16-bit program memory, and
an  8-bit  dual-port  data  memory.  This  allows  instruction
fetch and data operations to occur in parallel. The advan-
tage of this architecture is that instruction fetch and mem-
ory transfers can be overlapped by a multistage pipeline,
so that the next instruction can be fetched from program
memory  while  the  current  instruction  is  executed  with
data from the data memory.
Ubicom   has   developed   a   revolutionary   RISC-based
architecture  that  is  deterministic,  jitter  free,  and  com-
pletely reprogrammable.
The   IP2022   implements   a   four-stage   pipeline   (fetch,
decode, execute, and write back). At the maximum oper-
ating frequency of 100 MHz, instructions are executed at
the rate of one per 10 ns clock cycle.
1.3.2  Serializer/Deserializers
One  of  the  key  elements  in  optimizing  the  IP2022  for
device-to-device and device-to-human communication is
the   inclusion   of   on-chip   serializer/deserializers.   This
hardware decodes data and lets it be translated from one
format  to  another,  allowing  the  IP2022  to  be used as  a
protocol converter in bridge and gateway applications.
There  are two serializer/deserializer  units in the IP2022
that  support  a  variety  of  protocols,  including  SPI,  I2C,
UART, USB, and 10Base-T Ethernet. By performing data
serialization  and  deserialization  in  hardware,  the  CPU
bandwidth  needed  to  support  serial  communications  is
greatly reduced, especially at high baud rates. Providing
two units allows easy implementation of protocol conver-
sion or bridging functions, such as a USB-to-I2C bridge.
1.3.3  Low-Power Support
Particular  attention  has  been  paid  to  minimizing  power
consumption. For example, an on-chip PLL allows use of
a lower-frequency external source (e.g., an inexpensive 4
MHz crystal oscillator can be used to produce a 100 MHz
internal operating frequency), which reduces both power
consumption and EMI. In addition, software can change
the  execution  speed  of  the  CPU  to  reduce  power  con-
sumption, and a mechanism is provided for automatically
changing the speed on entry and return from an interrupt
service routine. The SPEED instruction specifies power-
saving modes that include a clock divisor between 1 and
128. This divisor only affects the clock to the CPU core,
not the timers. The SPEED instruction also specifies the
clock   source   (OSC1   clock,   RTCLK   oscillator,   or   PLL
clock multiplier), and whether to disable the OSC1 clock
oscillator  or  the  PLL.  The  SPEED  instruction  executes
using the current clock divisor.
1.3.4  Memory
The  IP2022  CPU  executes  from  a  32K  ×  16  flash  pro-
gram memory and an 8K × 16 RAM program/data mem-
ory. The instruction RAM can alternative be used for data
storage. In addition, the ability to write into the program
flash  memory,  allows  flexible  non-volatile  RAM  imple-
mentation. The maximum execution rate is 40 MIPS from
flash  and  100  MIPS  from  RAM.  Speed-critical  routines
can  be  copied  from  the  flash  memory  to  the  RAM  for
faster  execution.  The  IP2022  has  a  mechanism  for  in-
system programming of its flash and RAM program mem-
ories through a four-wire SPI interface, and software has
the  ability  to  reprogram  the  program  memories  at  run
time.   This   allows   the   functionality   of   a   device   to   be
changed in the field over the Internet.