ECE 441 Senior Design Technology Research Brent Hansen Team

advertisement
ECE 441 Senior Design
Technology Research
Brent Hansen
Team #22
1. Revision History
Date
October 18,
2008
October, 19
2008
Description
Contributor
Initial Creation
Brent Hansen
Proofreading and Documentation
Brent Hansen
2. Introduction
The PCIe memory card (PMC) is a project sponsored and mentored by Intel, for whom we
are specifically creating this project. It will give them more flexibility in troubleshooting
issues with the CPU’s during initial start-up. It will be a PCIe add-in card with one memory
bank that is capable of holding a minimum of two gigabytes of memory. The PMC will then
be used to investigate issues where the CPU cannot communicate correctly to the memory.
The PMC will allow Intel to bypass the built-in memory controller in the CPU during
troubleshooting. This is the basic requirement of the PMC; and the more interesting feature
that we are hoping to build into the board is a USB port for programming of the memory.
This will allow for testing software and scripts loaded onto the memory in the PMC. Then the
computer can be set up to run the test or even boot from the software on the memory. This
feature will allow for a new type of testing and also make the card more active in the testing
of the CPU.
2.1 Customer Requirements & Project Background
When Intel creates a new type of CPU they go through initial release (A0 silicon) and then
make changes to the architecture as needed. This initial silicon is tested with a customized
platform created by Intel platform and test engineers. Each platform is built with the
capability of testing all the functions of the new CPU along with its compatibility with all
types of computer devices. Intel has had problems in the past where the CPU could not
communicate with the memory on the test platform (on-board memory). This is a significant
problem because the memory controller and the CPU is one unit so it is hard to tell which
part of the CPU is not working correctly. The objective of this project is to create an add-in
card that will give Intel the ability to continue testing if the on-board memory is not seen. The
PCIe memory card (PMC) will give Intel the ability to have system-memory on an add-in
card so the memory controller on the CPU can be bypassed, testing can continue, and
trouble-shooting can begin on the CPU issues.
Intel’s requirements are to have a PCIe add-in card with enough memory to load an operating
system or test software. The PMC must be recognizable by all operating systems and be sized
to fit properly in the Intel test platform and other ATX computer systems. These are the basic
requirements; however, the way we implement the hardware design and device drivers is up
to the team. Intel has extra features that are useful for testing and give the card more dynamic
testing features. Intel would like the board to have a USB port for programming the memory
with tester software or an operating system. This feature turns the PMC into a programmable
test card with infinite testing processes available for execution. The PMC could be
programmed from a third source so that it runs tests on the platform and the CPU while the
next test is being loaded into the next PMC in the adjacent PCIe slot. This gives much more
functionality to the PMC and gives Intel more ways of testing.
The PMC hardware architecture is initially going to contain these parts:
1. FPGA
2. Bridge
3. Memory
4. USB port
5. Microcontroller
6. Programming ports and corresponding ROMS
7. LED
The card will interface with a by-one PCIe signal. The PCIe bridge allows for extension of
the PCIe buss and will feed the newly converted PCI buss to the FPGA. The FPGA is the
intelligence center of the project and will do all the sorting of commands and logic. It will
then connect to the memory where there will be a single DIMM slot for a removable memory
stick. The microcontroller will be used to take the input from the USB port and talk to the
FPGA. To get the programmable memory to work, we will need to devise some type of
protocol for requests and interruptions between the incoming computer signals and the
microcontroller requests. I think an indicator LED that illuminates when the FPGA has seen
the USB connection would be helpful along with LEDs that shut off when the FPGA has
successfully uploaded its EEPRFOM.
2.2 Project Research
Manufact
ure
Programmable
(software)
Description
Memory
size
Hardware setup
Pros
Cons
Cost
DDR
Kingston
, Corsair,
OCZ
NO
On-board memory
1GB
DDR-200 100
MHz DDR266 133 MHz
DDR-300 150
MHz DDR333 166 MHz
DDR-400 200
MHz
Used as an
industry
standard for
a significant
period of
time.
Abundant
information
available
about
designing
with DDR
Half the
speed of
DDR2
$26.00 per
GB
DDR2
Kingston
, Corsair,
OCZ
NO
On-board memory.
1GB
DDR2-400
100MHz
DDR2-533
133 MHz
DDR2-667
166 MHz
DDR2-800
200 MHz
DDR2-1066
266 MHz
Operates
quickly and
is available
at a good
price per
GB.
The memory
interface is
more
complicated
with DDR2
$15.00 per
GB
DDR3
Kingston
, Corsair,
OCZ
NO
On-board memory
1GB
DDR3-800
100 MHz
DDR3-1066
133 MHz
DDR3-1333
166 MHz
DDR3-1600
200 MHz
Very fast
transfer
rates.
Slower
clock then
DDR2. Is
the most
expensive
option.
$35.00 per
GB
Flash
memory
add-in
card
Referenc
e design
develope
d by Intel
Yes. This is a
PCI memory
card so it is
fully
programmable.
The Flash Memory
PCI Add-In Card
was created to
demonstrate the
feasibility of
interfacing flash
memory to
the PCI buss in an
embedded system.
In such a system,
flash memory
devices are used for
high density and
high
performance massstorage for user code
and data. *Intel
This
board’s
maximum
memory is
32MBytes
This card
interfaces with
the PCI buss and
uses an FPGA as
the main
controller. It is
programmable
with a ROM that
holds the
EEPROM. All of
the integrated
accessible
memory is
located in a flash
memory array. It
also has
expansion slots
for more flash.
It seems to
be exactly
what we are
going to
design. Our
version will
just be
updated to
current
technology
and
interfaces.
This board
was
developed in
1997 and
has very
limited
memory and
does not
work on
PCIe.
no price
given
DDR2
SDRA
M
Interfac
e for
Spartan3
Generati
on
FPGAs
Xilinx
This is an FPGA
that has a built in
DDR2 SDRAM
interface. The PGA
is a
Spartan®-3
generation.
N/A
Contains 12
devices ranging
from 50,000 to
3.4 million
system gates.
This FPGA
could
connect
directly to
the DDR2
and would
not need an
intermediate
memory
controller.
These types
of FPGA’s
are rather
expensive.
$150.00
Altera
Stratix
II
Devices
Altera
YES. ISE®
WebPACK™
software is the
ideal
downloadable
solution for
FPGA and
CPLD design.
Offers HDL
synthesis and
simulation,
implementatio
n, devicefitting, and
JTAG
programming.
*Xilinx
Yes. Altera
uses Quartus II
software.
This is another
FPGA that has a
DDR2 system builtin.
N/A
Stratix II GX
devices are
available in
densities ranging
from 33,880 to
132,540
equivalent logic
elements (LEs),
with over 6.7
Mbits of on-chip
RAM and up to
252 (18-bit x 18bit) embedded
multipliers.
*Altera
This FPGA
does not
need an
extra
memory
interface. It
also can be
setup to not
need a PCI
bridge. This
means it can
interoperate
the PCIe
buss.
Faster than
the Xilinx
FPGA, but
its memory
solutions
look a little
less
comprehensi
ve.
Stratix ->$600.00
for just
the silicon
Arria
$170.00
PLX
PCIePCI
Bridge
PLX
Yes. Uses
PLXmon
software to
write the
EEPROMS.
A PLX PCIe to PCI
bridge extends the
PCIe buss to our
device. This will
take the serial PCIe
buss and convert to
a parallel PCI signal
structure.
N/A
N/A
Could make
the signal
work easier
by
formatting
the PCI buss
to be a
parallel
signal.
Pericom
PCIePCI
bridge
Pericom
Yes
A PCIe-PCI Bridge.
N/A
N/A
Consists of
less BGA
connections
to the board
compared to
the Pericom.
No
This is a PCIe x16
memory adapter. It
had 4 DIMM slots.
4gb of
memory.
Any DDRDIMMs of
the
DDR266,
DDR333 or
DDR400
are
compatible.
Not published
Contains a
lot of
memory and
looks like it
could work
perfectly for
the project.
GIGA Gigabyte
BYTE
i-RAM
memor
y
board -
Larger than
the Pericom
bridge.
$16.00
The card has
a five-volt
supply, so it
is a specific
slot-type and
will not fit
in the
standard PCI
slot.
2.2.1 Technology Review Analysis - Systems
From the data and information collected, it seems there is no current system that can
accomplish the tasks for this project. The products listed are some of the many
components, that when put together, can make an add-in memory card. Along with many
products there are many prices available and variations of each component to support
every task you could think of. The difficulty in deciding on components and technologies
is determining if they are compatible and if they encompass every function you could call
from it.
Based on the information in the chart, and the research, I would prefer to get an Altera
FPGA and probably a variety of the Arria line. This line will do a DDR2 interface while
still being more than half the price of the Stratix FPGA. The Arria line has less logic
gates and less frills, but I think it will do the job nicely. The PCI bridge that is rather
cheap, is there as a simplifier for the signal input and output. Each vendor has its own
software and architecture and each is comparable in price, so it is a toss-up as to which is
better. It will come down to possible pinout, power consumption, it our mentor has any
input and software type.
2.3 Feature Set
2.3.1 Absolute Minimum Requirements
o Meets the PCIe spec requirements for a PCIe adaptor card
o Card is recognized by all operating systems
$15.00
$140.00
o Card size will fit in ATX case and Intel test platform
o Card will work properly the test platform uses the additional memory
correctly
o All of the memory is viewable by the computer
o Will not damage host platform built-in safety circuits and fuses for overcurrent protection
o Design and hardware layout approved by mentor
o LED’s used as status indicators throughout the board
o Solution for any thermal heating issues
2.3.2 Desired Feature Set
o Send the SMBUS signal to the FPBGA allowing for the resting of the
memory control unit
o USB input for memory programming
Appendix A. References
Intel Corporation, “Flash Memory PCI Add-In Card for Embedded Systems” Santa Clara,
CA. September, 1997 [cited October 18th, 2008]
Available from World Wide Web:
http://www.eetasia.com/ARTICLES/1999OCT/1999OCT25_BD_EMS_AN.PDF?SOUR
CES=DOWNLOAD
Samson Ng, “DDR2 SDRAM Interface for Spartan-3 Generation FPGAs” Xilinx, Inc.
May 9, 2008 [cited October 18th, 2008]
Available from World Wide Web:
http://www.xilinx.com/support/documentation/application_notes/xapp454.pdf
PLX Technology, “ExpressLane™ PCI Express to PCI Bridge”
Sunnyvale, CA 94085 USA., October 2005[cited October 18, 2008]
Available from World Wide Web:
http://www.plxtech.com/pdf/product_briefs/PEX8111_PB_EC_26Oct05.pdf
Pericom superconductor company, “PCI Express®-to-PCI Reversible Bridge” 5/14/2008
[cited October 18th, 2008]
Available from World Wide Web:
http://www.pericom.com/pdf/databriefs/PI7C9X110_db.pdf
Geoff Gasior, “Gigabyte's i-RAM storage device
RAM disk without the fuss” January 25, 2006[cited October 18, 2008]
http://techreport.com/articles.x/9312
Appendix B. Naming Conventions and Glossary
ATX  The ATX ( Advanced Technology Extended) is a standard form factor for
computer cases created by Intel in 1995 has been revised numerous times since, the most
recent being released in 2004. A full size ATX board is 305mm wide by 244mm deep
(12" x 9.6”).
BUSS  An electrical bus (sometimes spelled buss) is a physical electrical interface
where many devices share the same electric connection. This allows signals to be
transferred between devices all connected to the same buss allowing for information or
power to be shared). A bus often takes the form of an array of wires that terminate at a
connector which allows a device to be plugged into the bus.
CPU  A Central Processing Unit (CPU) is the main logic device for a computer.
Test Platform  a test platform is a customized testing station where the development and
design on the platform is to test a certain product with certain criteria.
Boot  Booting means that the computer has turned on and successfully executed the start
up or initial functions it was instructed to do.
ROM  Read-only memory is a class of storage memory used in computers and other
electronic devices. Because data stored in ROM cannot be modified it is mainly used to
distribute firmware (software that is very closely tied to specific hardware, and unlikely
to require frequent updates).
EEPROM  EEPROM also known as E2PROM stands for Electrically Erasable
Programmable Read-Only Memory, is a type of non-volatile memory used in computers
and other electronic devices to store small amounts of data that must be saved when
power is removed.
Block  A block is the basic element of a system. It is a standalone object that performs
some function in the system. A block should be ‘small’ enough that everything contained
inside of it can be fully understood as a whole, or the contents can be purchased as a whole.
Customer Requirement  A requirement that may or may not be able to be tested as is. A
requirement supplied by the customer, sponsor, or mentor.
Engineering Requirements  A requirement that can be tested and evaluated through a step
by step process. Usually a numerical specification is included.
Environment  The set of influences that the system will be operating within. These could
include temperature, humidity, immersion, vacuum, etc…
Interface Characteristics  Every connection between blocks is defined by a unique name
and a list of interface characteristics. These characteristics define an interface to the degree
that a block can be built without knowledge of other blocks in the system
Locality Decomposition  The process of dividing a system into blocks based on the
similarity (locality) of blocks. (e.g. all inputs together, all outputs together)
Sub-System  This is a grouping of one or more blocks that function together to perform
some task. (e.g. a motor and a motor controller perform the task of motion.)
System  The complete system that you are designing. This includes all blocks in your
design.
Top-Level  This refers to the system block diagram containing all blocks in the system.
PCI Express  Peripheral Component Interconnect Express, abbreviated as PCI-E or
PCIe, is a computer expansion card interface format introduced by Intel in 2004. It was
designed to replace the general-purpose PCI expansion bus, the high-end PCI-X bus and
the AGP graphics card interface. Unlike previous PC expansion interfaces, rather than
being a bus it is structured around point-to-point serial links called lanes.
Download