The MAJC (pronounce magic) architecture was created based
on the assumption that Java will be the dominant programming
platform for internet/intranet computing in enterprise and
consumer markets. It also relies on the fact that current and
future workloads are very different from workloads used in
the 70's and 80's. Multi-threaded Java applications and multi-threaded
C/C++ applications found on Webservers, Mail servers, Application servers, etc,
are invading server rooms at a faster pace than traditional applications.
Also, digital data types and their associated operations, needed for the
handling of digital communication, or for encryption (secure servers, VPN,
and e-commerce transactions), or for compression of digital contents, or
for processing digitized analog signals, are given as much importance
in MAJC as traditional data types (integer and float), and traditional
operations (add and subtract). Functional units, therefore, operate on "data"
much like object methods operate on fields, almost irrespectively of
data types.
High Instruction Level Parallelism (ILP) is reached by issuing
multiple instructions per cycle (VLIW ISA) that operate on operands
originating from a large unified register file. ILP also gets a boost
from what are now becoming traditional techniques such as
predication, speculation, branch filtering, load positioning, etc.
More importantly, support for higher levels of parallelism, namely
thread-level parallelism (TLP) is provided. TLP and Space Time Computing,
a form of speculative multi-threading, drove many architecture decisions
and its impact is reflected in the ISA and in the micro-architecture
of the first MAJC processor.
Besides covering the subtleties of the architecture, details of the MAJC-5200, a VLIW Multi-Processor System-On-a-Chip with support for Space Time Computing, will be given during the talk.
It is well established by precedence and current practice
that the demand(s) for higher computer performance continues
to grow. Note that when we say "computer performance" we
are considering the system view; processors, infrastructure,
peripherals and networks. The feature set of the computer
system that is desired is well understood. The ability of
the computer industry to provide these features in a timely
fashion at a reasonable, and affordable, price is well
understood; by the vendors. There is a gap between the two
views.
We comment on the technological issues in both hardware and software that are being provided and will be provided in the future. It is the speaker's view that the gap between the "needs" and the "products" will grow larger in the future. We will explain why. This growing gap implies that either users or the computer industry must change. We will leave the answer to this question unstated until the seminar.
Sky high costs and through the roof servicing of traditional specialized supercomputing has put immense pressure for earth-bound pricing and clustering solutions. Vectors and scalable UNIX-based solutions are not going to disappear, but over time Linux clusters will likely do for supercomputing what the Apple II did for personal computing: bring down costs, ease use, and make high-end computing power commercially viable and consumer available. This movement is in its adolescence, but maturity is rapidly approaching. This talk will discuss what is being done to integrate today's real solutions with tomorrow's promise.