![]()
Raphael Manfredi is a Software Engineer at Hewlett-Packard, working in Grenoble, France. He has a Computer Science Degree from the Ecole des Mines de Saint-Etienne, France as well as an Image Synthesis & Processing Degree.
Born in 1968, Raphael Manfredi joined ISE in March 1991, where he architected and implemented the basis for the new runtime for ISE Eiffel 3, then under development to replace ISE's earlier Eiffel technology. He developed in particular:
The memory allocation mechanism.
The garbage collector (algorithms mixing mark & sweep, compaction
and generation scavenging).
An obscure but crucial component called HECTOR.
The exception handling mechanism.
Since the run-time is tightly coupled to the way Eiffel objects are handled by the final executable, the new architecture of ISE Eiffel 3 led him also to design the C code generation model, in particular the handling of local variables (since the garbage collector must know about them) and the exception handling support (to be able to produce nice exception traces).
Raphael Manfredi also helped in the definition of the Eiffel bytecode and implemented the first Eiffel bytecode virtual machine (the interpreter).
In March 1993, when the ISE Eiffel 3 run-time and compiler backend were
"functionally complete" and already well integrated (the compiler
having been already used to compile itself for several months), he returned to France to join
the Advanced Computer Research Institute (ACRI).
ACRI, based in Lyon, France, was a start-up company created by
Jacques Stern, former Bull CEO, to build a large
superscalar computer based on a decoupled architecture. Raphael joined
the Operating System Department, whose task was to port the DEC OSF/1
(now known as Digital Unix) to the ACRI architecture. The OS was running
on the DEC Alpha chip, while applications were controlled
by the Alpha but really running on the decoupled chips.
Since the ACRI machine was not available back then, the porting
activity was done on a CPU emulator, capable of delivering about 1 MIPS
on a DEC Alpha workstation.
Raphael started by rewriting the lower kernel parts, the ones most
exposed to the new architecture:
. The PAL code, a very low level set of assembler routines to
deal at the CPU level with things like traps, data faults,
interrupt recognition, etc...
. The trap/interrupt handling in the kernel itself.
. The initial kernel bootstrapping where upper level services
like the virtual memory and the internal kernel threads are
setup.
Once those low-level parts worked, the OS team was able to start
developping ACRI-specific kernel features like the multiple page
size support (the ACRI OS supported 64K, 512K, 4M and 32M pages),
and binary compatibility of DEC OSF/1 native Alpha executables (8K
pages only) on the ACRI OS.
Raphael ported the dynamic loader so that multiple page sizes could
be supported whilst still being able to dynamically load native
DEC Alpha code. He also changed the exec() system call to load
ACRI and DEC processes differently in memory, as well as all the
companion features like setjmp()/longjmp() (that required to be
binary compatible with DEC although the size of the machine context
of a simple Alpha and the ACRI architecture was quite different).
ACRI never released anything. After successfully building the first
prototype, it went out of business due to lack of treasury. French
regulations are very strong in those matters. The life of ACRI ended
on March, 3rd 1995 and Raphael worked till the last day.
Working for HP as a contractor by March, 10th 1995, Raphael spent
9 months optimizing a telecom application written by a third party,
and redesigning its heart to gain a magnitude order regarding the amount
of transactions per seconds the system was able to sustain.
After this success, Raphael was hired by HP on January 1st 1996, in
the High Speed Networking section. Initially hired to design and
implement an ATM driver, he quickly saw an opportunity to reuse his
valuable deep kernel knowledge to instead develop tools for kernel
device driver writers, making the task easier and safer, with a better
final product quality given that developpers can now focus on polishing
the rough edges instead of fighting the kernel panics and other pleasant
machine checks.
Raphael is currently heading a team of engineers as Architect to
continue to improve his kernel development tools and implement new ideas
to further reduce development costs and improve HP's software quality.
Once a year, Raphael also teaches Operating Sytems at the Ecole des Mines,
in Saint-Etienne, as part of his job. The students seem to appreciate
the industrial and pragmatic approach he has, as opposed to the classical
academic way of teaching other Computer Science matters.
As an aside, Raphael Manfredi is the author of mailagent, a freely
available e-mail filtering packge for Unix. He has his own contribution
directory on CPAN, the Comprehensive Perl Archive Network, which may
be found at
http://www.perl.org/CPAN/
Most of the various pieces of software Raphael has ever contributed
can be found under his personal directory CPAN/authors/Raphael_Manfredi.
Raphael Manfredi can be reached at: ![]()
Please send comments to
<webmaster@eiffel.com>