ELE408 Spring 2009
Guidelines for Lab Experiments and Design
Projects
1. Specific
Goals of the Course:
· Computer Architecture Concepts
–Instruction Set Architecture
–CPU, Memory, and I/O Organizations
· Interfacing and Communication
-Serial and parallel ports
–UART, DMA, PI/Timer
-Wired and wireless networking
· Applying mProcessor to Design Systems
All are based on one specific commercial embedded processor: ColdFire MCF5208
·
Regular lectures (
· Pre-designed laboratories (six of them) allowing you to apply the knowledge of mathematics, science, and engineering to design, conduct and analyze experiments. You will work in teams to be trained to do team work and communicate effectively.
· Open-ended design projects giving you an opportunity to identify, formulate, and solve engineering problems, and to design a system to meet a desired need. You are expected to critically evaluate alternative assumptions, approaches, procedures, and trade-offs related to the design project.
3. Facilities
Used in The Lab:
· The facilities in the lab are constantly upgraded to keep pace with the rapidly changing computer technology. For this semester, we are upgrading our lab equipments using the new Motorola ColdFire MCF5208EVB that were released very recently.
· Monitor program (dBUG) and uCLinux kernel are used as operating systems on these new computers. Application development tools such as CodeWarrior of FreeScale are set up on lab workstations. You are expected to be able to use new techniques, skills and modern computing tools necessary for engineering practice.
4. Laboratories
·
Lab1 This lab is
intended to familiarize you with the Motorola ColdFire
microprocessor, the M5208EVB, and several modern engineering tools for
development of embedded computer systems. You will apply your knowledge of
mathematics, science, and engineering that you have learnt in your previous
classes to the lab experiments. Examples of such knowledge include different
number systems, programming languages (assembly & C), hardware concepts,
and programming skills. Your knowledge together with the modern tools available
in the lab settings will enable you to design and perform simple experiments,
as well as to analyze and interpret data.
·
lab2 The
purpose of this lab is to learn and gain first hand experiences on the CPU core
and the memory hierarchy architecture of the ColdFire
professor. You will apply your knowledge and basic concepts of computer
architecture that you have learnt in the lectures to the lab experiments. In
particular, the concept of memory hierarchy and cache design is the main focus
of this lab.
5. Suggested
Design Projects
· Design a system for remote control of home heating/lighting using ZigBee protocol;
· Design an application program to measure the distance between two ZigBee devices;
· Design a home/office security system with remote control functionality using ZigBee protocol;
· Design a wireless remote control automobile system (toy car) using ZigBee protocol;
· Design a patient monitoring system using ZigBee devices;
·
Use MCF5208 to implement a wireless remote
monitoring tool for important data storages. The control
· Configure different RAID architectures: RAID1, RAID3, RAID4, and RAID5 using MD of Linux on MCF5475 boards;
· Implement an iSCSI block level storage controller using MCF5475 and open source iSCSI target;
· Design a network bridge using the ColdFire microprocessor. The bridge should be able to receive all Ethernet packets traveling on the LANs connected to it. It should analyze each packet received and determine whether and where to forward a packet. It can also work in a promiscuous mode to accept all packets.
· Design a simple wireless sensor network using ZigBee protocol with low power consumption, communication efficiency, and performance in mind.
· Design a consumer electronic device using wireless remote control with ZigBee protocol.
· Design a disk controller using the ColdFire Processor following the IDE standard. This project involves both hardware connections and software drivers. Your controller should be able to move the disk head as well as read and write a small amount of data.
· Design and implement a software RAID controller using the Linux MD driver. Your program should allow users to configure the RAID system for simple RAID 0, 1, and 5 systems. A GUI would be nice although not necessary.
· Design and simulate a memory cache design to maximize the cache-hit ratio for the application programs that you have developed so far in the lab. Cache parameters that you need to make design decisions about include line size, mapping function, cache size, associativity, replacement algorithm, and write back policy.
· Performance evaluation and profiling of the ColdFire microprocessor. The evaluation should be comprehensive enough to draw general conclusions in terms of performance/cost ratio. The specific architecture issues to be examined include pipelining, memory hierarchy, bus timing scheme, I/O interfaces, and networking capabilities.
· Driver designs under the Linux kernel. We have the Linux kernel installed on our ColdFire processor board. You may choose a device driver to work on such as printer driver, disk driver, network driver, or general block device drivers.
· Using JavaTM 2, Micro Edition (J2METM) to design an embedded system targeting a consumer product such as pagers, cellular phones, screenphones, digital set-top boxes and car navigation systems, microwave oven, refrigerator.
· Design a network router using the ColdFire microprocessor. The router should be able to interpret IP headers, select optimal routing, and control possible congestion.
6. Important
Due Dates:
Project Proposal Due Date: March 10, 2009 (1 page describing exactly what you plan to do for the project)
Proposal Presentation Date: March 10, 2009 (Each student will present your project proposal, your specific tasks in the project, and expected results in 5 minutes. PowerPoint presentation is required)
Project Finish Date: April 21, 2009, (Project presentation and demonstration start. Each student will do a 10 minutes presentation. A team may present as a group with each team member talking for 10 minutes including demo)
Final Report Due Date: May 5, 2009.
7. Requirements
for Lab Reports and Project Reports
Besides the basic requirements stated in lab requirements on the ELE 408 web page, each of your lab report and your project report should clearly demonstrate the following:
A. What knowledge of mathematics, science and engineering have you applied in the lab or project?
B. How did you design the lab/project (including architecture, flowchart, programs, etc.)? How did you conduct the experiment? What is your interpretation and conclusion on the experiments?
C. Who are your team partners? How did you collaborate with each other and what roles did each of the team members play in the lab/project?
D. Specific modern engineering tools have you used in your experiments. What specific techniques and skills have you learnt from the lab/project?
E. Each lab report should consider and discuss at least 3 of the following specific constraints. (specific suggestions will be given in each lab handout) and your project report should include all of the following constraints.
I. Economic Constraint: One of the main concepts and issues in computer design is Performance/Cost ratio. As a computer engineer, it is very important to design an optimal system with the limited resources available. In your design project, you should take into account performance/cost ratio so as to design an optimal system with minimum cost possible. You should also present a brief analysis in terms of performance and cost. We have discussed these in depth in class lectures. Examples include, but are not limited to, the fact that fully associative cache has the highest performance and highest cost while direct-mapped cache is least expensive but suffers high conflict miss ratio. Many current computer designs make a compromise resulting in set-associative mapped cache, which reduces hardware cost while giving reasonably good performance. Another example occurs in the design of interconnection networks. A crossbar is the most expensive and has highest connectivity while a single shared bus is least expensive but has limited bandwidth. We examined several alternatives and compared the cost and performance of each. For each concept and example introduced in the class, different alternatives and assumptions are presented. You should be able to critically evaluate them for pros and cons, exercise trade-offs, cost-effectiveness. You should perform a similar analysis in your design project.
II. Manufacturability, Modularity and Expandability Constraints: A component/system design will eventually go to manufacturing. As an engineering designer, it is important to keep manufacturing constraints in mind while designing a computer system. In general, modular designs have good manufacturability and scalability. Synchronous vs. asynchronous bus timing is a good example. Synchronous timing is simple but lacks modularity because of the clock distribution and clock skew problems. Asynchronous timing, on the other hand, is easily expandable and can accommodate a variety of devices connected to a bus. This principle is true from basic CPU design (ALU core, cache, control modules), memory systems (memory modules and interleaving), to interfaces (industry standard such as RS232, IEEE standards). Software designs have similar issues. Modular design makes software production clean and simple. To make your designs facilitate better manufacturability, you should keep these in mind while carrying out design projects. For example, in memory hierarchy design, we use cache memory. You should ask why we use write-through cache as opposed to copy-back cache in one environment while we do just the opposite in another environment, why we have multiple levels of hierarchy, and why locality property changes and so forth.
III. Sustainability: Is your design and implementation sustainable? How would you enhance the sustainability of your design and implementation.
IV. Environmental Constraint: In your design and implementation, you should keep in mind the impact on environment. For example, low power consumption equipments are environmental friendly. There are possibly other considerations in your engineering practice with environemental constraint.
V. Ethical Constraint: Engineering ethics is covered implicitly throughout the CE curriculum and explicitly in ELE 400. You have now come to your senior year and you have been well trained as a responsible engineer. Your project work should be carried out in accordance with the IEEE Code of Ethics. The final project report should include a signed statement to this effect along with a copy of the IEEE Code.
VI. Health and Safety Constraint: While working on computer design and implementation does not pose significant health hazard as in other engineering disciplines, you should take health and safety issues into consideration in your design project. The embedded microprocessor systems are widely used in many engineering systems. One typical example is to use them to control airbags, antilock brakes, and cruise control on automobiles. Correct and precise microprocessor system designs are absolutely essential to health and safety of general public. Another aspect of safety is data safety in today’s E-world. All-important data such as financial and national security are stored in computer storage system. One of the possible design projects is to design a disk controller. You should have a clear understanding of the importance of data safety on disks. A loss of a piece of data or an error resulting from transmission or read/write may result in a disastrous event.
VII. Social and Political Constraint: Computer technology is changing our life and impacting every aspect of our daily life. It is changing the way we live, the way we work, and the way we play. It will certainly have a social and political impact. The social and political impact of computers may vary depending on your design concentration. If you are to design a network bridge, data security and integrity may have social and political impacts in many different ways. For example, privacy law does not allow personal information to be revealed to the public. However, a bridge has the ability to read all information passing through it since it works in a promiscuous mode some time. Therefore, social and political constraints should be taken into account while making such a design project.