1. IA-64(1)

For the purpose of this project, I have chosen to document one of the
recent developments in the microprocessor industry. The architecture known as 
EPIC (Explicitly Parallel Instruction Computing) as applied particularly to 
IA-64 (Intel's 64 bit microprocessor architecture) processor by Intel, is going 
to be the object of my discussion.

Existing architectures are based on an out-of-order execution model which 
require very complex hardware mechanisms. These processors are increasingly
impeded by performance limiters such as branches and memory latency.

Intel's IA-64 processor architecture is designed to overcome these 
limitations. In addition, the IA-64 architecture provides additional performance
headroom and scalability needed for future compute intensive applications. The
IA-64 architecture features a revolutionary 64-bit instruction set architecture
(ISA) which applies a new architecture technology called EPIC. Jointly defined 
with Hewlett-Packard Company, EPIC, or Explicitly Parallel Instruction 
Computing, embodies a set of advanced computer architecture techniques such as 
explicit parallelism, predication and speculation. These techniques enable IA-64
processors to execute more instructions per clock cycle to deliver superior 
performance relative to today's out-of-order based RISC processors.

I intend to discuss the architectural design, concentrating on the unique 
instruction format, IA-64's ability to handle IA-32 and IA-64 instruction sets
in one cpu, switching modes, interrupt handling and registers. I would also 
discuss the unique features of Itanium (Explicit Parallelism, Predication, 
Speculation and a few others) in comparison to the traditional Intel 32 
bit processor viz. X86 and also with one another processor like Sun's Sparc.

2. Embedded Networking

Motivation:

With the widespread of Internet, embedded network device has become a feasible and very popular direction in recent years.

Most of the existing embedded devices are implemented through specialized software or using expensive SNMP agents. The disadvantage was that it had to be ported for a variety of platforms. With the mature of web and browser techniques, an embedded Web server is an easy, standards based way to add sophisticated management and configuration capabilities to an embedded device.

For example, the latest version of HP JetDirect networked printer is already with a built-in embedded web server which could support browser based configuration, queued print jobs management as well as status publishing, such as low ink supply or a paper jam. With this, the end users do not have to install new software on their systems or train their staff on how to use it. Furthermore, the embedded web servers can be applied to a lot other areas like Test Equipment, Office Equipment, Security Systems, Medical Instruments, Consumer Electronics, Machine Controls and so on
Basically, the web server sits inside the embedded device and listens for requests from the browser. It  has to pick up static or construct dynamic HTML pages. All pages are not dynamically generated, some are to be stored statically like HTML, GIF and JPEG. The embedded web server may use a Pseudo File System to store them.

Future Work:

In this study, I am planning to concentrate my project on the research of the following issues.  

1. Status of current development;

2. Typical system architecture and implementation survey;

3. Java-based embedded device solution;

3. HW/SW Co-Design

I am planning to do the project on HW/SW co-design. I found one article

about it from Cadence, and some links to research group in this topic. I

only read the research document from CMU. From what I have learned, I felt

that there is some distance between the research in industry and academy.

The industry focuses more on getting HW/SW co-design into application,

closely related to the system realization; while academy focuses on more on

modeling the system. (I might be biased here as I only read one sample from

industry and one from academy.) I think my project will more focus on the

realization of HW/SW co-design. What kind of the models industry are using,

what kind of systems this co-design fits in, and the limitation on the ideas

and tools.

4. IA64 (2)

IA64 vs Pentium

-Investigate the differences of two families of Intel CPU architectures.

Pentium and IA64.

-Identify the major design blocks in Pentium

-Identify the major design blocks in IA64.

-Identify the tradeoffs, problems, etc, that architects encountered while

working on both designs.

-Instructions sets.

-Why do we need IA64? And why is it better than Pentium?

-Etc….

5. System Design

For our final project we would like to design a system that uses an embedded
processor integrated with discrete logic pieces.  The embedded processor
could be a PIC from Microchip and the digital portion could be a PLD from
Lattice or some other discrete logic.  Furthermore, these parts would
interact with another embedded system:  The 80C196KD Microcontroller made by
Intel.  This processor, used in EE 472, the embedded systems class of the
electrical engineering department, offers a high level of functionality.  We
would examine the challenges of integrating these parts onto a single system
and weigh the advantages and disadvantages of using each.  In addition, this
project would allow us to develop ideas for the class we are currently TAing
(EE472) and a future class that is currently being developed by the EE
department involving
embedded chips.  As of yet, we have not decided on a specific
implementation,
but some possibilities are:

1) a complex traffic controller for a slot car system
2) a network router for multiple remote nodes.

6. Palm Computing Architectures

In terms of a report-based project, I'd like to do a case study/architecture

review of the PalmPilot/Palm handhelds. I started using a PalmPilot back in

March '97 and soon became addicted. My excitement for the platform has spread

to the PLU campus, resulting in a very large installed base of the devices.

I've also done a bit of software development for the Palm, as well as having

participated in a focus group held at EduCause '98 (a national educational

technology association and conference), where I like to think I had some

impact on its evolution. It's become such an important tool for me that I'd

like to look at the design and evolution of the architecture, including where

it is going in the future.

7. PONG

I will create a small video game using the Xilinx chipset.  I plan on making a small game, given the time constraints.  However cliche' it is at this point to make pong, it seems like the best option given the constraints.  So pong I shall do.  Paddles will be controlled by buttons, and there will be a reset to place the ball. The 8031 micro-controller on the Xess board will be used to keep score and display information on a computer terminal.

8. Transmeta(2)

The Transmeta Co. has recently released a new x86-compatible processor intended for mobile computing apps that uses software and VLIW to run at speeds slightly under today's top Intel chips but that runs on only about 1watt.

I think it would be really interesting to do a "current technology" report on this product, but since it's so new there's obviously a lot of proprietary information and comparably little other documentation.

Would it seem like a reasonable project to write a historical overview of hardware vs. software tradeoffs with a few industry examples? It's a topic that would need some refinement, but I would most likely concentrate on the cost/performance benefits of

each and discuss factors such as instruction size (hardware speed and ease of software development), backward compatibility, and optimization for specialized applications such as graphics (to name a random few) that come in to play when deciding where to

draw the line between architecture and software.

9. Embedded Linux

I'd like to do my term paper on a close look embedded Linux, answering

questions like:

1) what is the minimum footprint size and functionality?

2) how componentizable is it and how are components added/removed?

3) how compatible is it with desktop linux?

4) what is the real-time performance like?

etc.

13.  Multi-application DSP processor Card
I want to look into the applications possible for putting a large DSP

into a computer for use as a general purpose co-processor. I will

research existing DSP and perhaps FPGA architecures and evaulate their

likely performance in the following tasks:

* 3D graphics rendering.

* Full Motion Video decompression.

* Sound synthesis.

* Image processing. (Think Photoshop plug-in.)

10. Home Networking

I'm thinking of doing a study report on the topic of Home Networking. I will go through the latest industry advances in this area and also a few research papers, if I can find them. I will try and focus more on hardware than software. Also I will go through the architecture of an example intelligent appliance that can be home networked.

11. Simulation of Win CE on ARM

My project idea is to use an "Armulator" desktop emulation
device to analyze various performance characteristics of the
WinCE based Smartphone project I'm currently working on.
The Armulator is a tool written by Arm, and has emulation
modes for both the Arm720T as well as the Arm 920T.  The
key is figuring out which parameters this tool will allow me
to vary.  I've installed the tool, loaded a supplied WinCE 2.12
image, and run it in both 720 and 920 modes.  But the docs
are a little sparce, so I'll need to see what I can tweek.
 
One particular parameter of interest is the Thumb mode compile
switch (the T in Arm#20T) which allows for 16 bit wide instructions
to achieve a smaller footprint.  What performance tradeoffs
we see in different modules will be of interest.
 

12. Reconfigurable Computing

13. Sony Dog Architecture (as an example of autonomous systems)

14. FPGA synthesis (logic implementation)

15. Win CE

For my project, I propose to study and discuss the architecture of WinCE with emphasis on its real time features.