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.
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
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.