Beispiel #1
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("gip.structure");
$page_title = "GIP Documentation";
include "{$toplevel}web_assist/web_header.php";
page_header("GIP Structure");
page_sp();
?>

<?php 
page_section("overview", "Overview");
?>

The GIP has the following logical components:

<ul>

<li>
Prefetch unit

<li>
Decode unit (16-bit and ARM emulation here)

<li>
Register file read stage

<li>
ALU pipeline stage
Beispiel #2
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("gip.instruction_set");
$page_title = "GIP Documentation";
include "{$toplevel}web_assist/web_header.php";
page_header("GIP Native Instruction Set");
page_sp();
?>

<?php 
page_section("overview", "Overview");
?>

<p>

This area describes the 16-bit GIP native instruction set, which is
mapped by the 16-bit instruction decoder in to GIP internal
instructions. Some instruction encodings are modal; that is they map
to different internal instructions depending on the mode of the
thread, which may be adjusted by another 16-bit instruction. Another
item to note is the instruction set is a 2-register instruction set,
with separated memory and operation instructions, much like simple
RISC processors.

<p>

The native instruction set is designed for a wide range of
functionality with high code density, with the expectation that most
code blocks written will be relatively small. Memory accesses are
Beispiel #3
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location($site_location);
$page_title = "GIP Documentation";
include "{$toplevel}web_assist/web_header.php";
page_header("ARM Emulation Microkernel");
page_sp();
?>

<?php 
page_section("summary", "Summary");
?>

<p>

This documentation contains a number of pages:

<ul>

<li>This page includes a very basic summary of the microkernel operation.

<li>The basic requirements of the microkernel are derived from the way the <a href="linux.php">ARM port of Linux uses processor modes</a> 

<li>The operation of the microkernel is <a href="outline_operation.php">described in outline</a>

<li>The operation of the microkernel is <a href="detailed_operation.php">described in detail</a>

<li>The <a href="communication.php">communication primitives</a> required of the microkernel supply the mechanisms for interaction between ARM code and the microkernel.
Beispiel #4
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("company.people");
$page_title = "Embisi Inc. People";
include "{$toplevel}web_assist/web_header.php";
page_header("Embisi People");
page_sp();
?>

Embisi is headed up by <a href="gavin_stark">Gavin J Stark</a> and <a href="john_croft">John Croft</a>.

<?php 
page_section("gavin", "<a href=gavin_stark>CEO - Gavin J Stark</a>");
?>

Gavin Stark is the CEO of Embisi Inc. Gavin was previously an architect for Network Processors at Intel, where he arrived at after their acquisition of Basis Communications, at which he was CTO. Gavin has a PhD and BA from Cambridge University, England.

<?php 
page_section("john", "<a href=john_croft>Software - John Croft</a>");
?>

John Croft is the embedded software lead for Embisi, building on years
of experience in embedded computing and operating system design and
support. John's previous experience is at Cisco, Calista (acquired by
Cisco), and Madge Networks. John holds a BA from Cambridge University,
England.

<?php 
page_ep();
Beispiel #5
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("company.people.gavin");
$page_title = "Embisi Inc. People";
include "{$toplevel}web_assist/web_header.php";
page_header("Gavin Stark");
page_sp();
?>

Gavin is a Briton transplanted to California&lsquo;s Bay Area, his life uprooted by the demands of the silicon industry.

<br>

He was awarded his PhD by Cambridge University, England, whilst working for his first startup called (at the time) ATML, a company which has since become Virata, Globespan/Virata, and now something to probably become Conexant.

<br>

Designing ATML&lsquo;s first system-on-a-chip (i.e. integrated CPU
with networking functions) took him to work with Cirrus Logic
in Fremont, California, where he eventually took up employment,
working as the architect for Cirrus Logic&lsquo;s communications silicon division.
This division spun off to become Basis Communications, a privately held communication silicon vendor, of which Gavin was Chief Technical Officer.

<br>

Upon completion of the design of its first silicon, Basis was acquired
by Intel Corporation, where it was taken under the wing of the Network
Processor Group. Here, Gavin held a post as an architect for the lower
end of the network processor line, being chiefly responsible for the
Beispiel #6
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("gip.alu");
$page_title = "GIP Documentation";
include "{$toplevel}web_assist/web_header.php";
page_header("GIP ALU and Shifter");
page_sp();
?>

<?php 
page_section("overview", "Overview");
?>

<p>
The GIP ALU and shifter are responsible for implementing all of the
data operations of the GIP. 
</p>

<p>

The unit takes an operation and two 32-bit registered data items 
as its inputs, and it maintains two 32-bit internal stores; one is an accumulator, and 
the other is a shifter result. Also seven flags are maintained:
a carry flag, a zero flag, a negative flag, an overflow flag, a shifter
flag, a 'condition passed' flag, and an 'old condition passed' flag.

</p>

<?php 
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("gip.alu.operations");
$page_title = "GIP Documentation";
include "{$toplevel}web_assist/web_header.php";
page_header("GIP ALU and Shifter Operations");
page_sp();
?>

This page gives details of the operations the ALU and shifter can perform, how they are used, and how ARM emulation mode emulates the ARM instruction set with the ALU and shifter operations.

<?php 
page_section("descriptions", "Descriptions");
?>

<p>
In the following table Op1 can be A or ACC, Op2 can be B or ACC; C indicates the
carry flag
</p>

<table border=1>

<tr>
<th>Mnemonic</th>
<th>Class</th>
<th>Operation</th>
<th>Algebraic</th>
<th>Description</th>
</tr>
$effects_zcvn = "Updates Z, C, V and N";
$effects_acc_zn = "Sets accumulator, updates Z and N";
$effects_zn = "Updates Z and N";
$differs = "<b>Differs from ARM architecture</b>";
function arm_emulation_table_start()
{
    echo "<table class=data border=1><tr><th>ARM instruction</th><th>Internal instruction</th><th>Notes</th></tr>\n";
}
function arm_emulation_table_instruction($arm, $internal, $restrictions, $notes)
{
    echo "<tr>\n";
    echo "<th align=left valign=top>{$arm}</th>\n";
    echo "<td align=left valign=top><em>{$internal}</em></td>";
    echo "<td align=left valign=top>";
    if ($restrictions != "") {
        echo "<em>{$restrictions}</em><br>";
    }
    if ($notes != "") {
        echo "{$notes}<br>\n";
    }
    echo "</td></tr>\n";
}
function arm_emulation_table_end()
{
    echo "</table>\n";
}
site_set_location("gip.arm_emulation");
$page_title = "GIP Documentation";
include "{$toplevel}web_assist/web_header.php";
page_header("ARM Emulation in the GIP");
page_sp();
Beispiel #9
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("technology");
$page_title = "Embisi Inc. Technology";
include "{$toplevel}web_assist/web_header.php";
page_header("Embisi Technology");
page_sp();
?>

Embisi has developed the world's first microcontroller truly optimized
for embedded Internet systems. The technology does not consist of just
a small MCU with access to an Ethernet interface of some form; such
devices have existed for a while now, and it is plain from their
application rate that they are a very poor solution for real embedded
Internet systems - they are either too small to support an OS and the
associated stacks, so software engineering is a monumental task, or
they are designed to support an OS and then become bloated and fail to
support the hard realtime aspects of an embedded system.

<p>

Embisi started with a blank sheet of paper, with the aim of producing a simple to apply embedded Internet controller. The design remit stated:

<ol>

<li> A full protocol stack is required for Internet connectivity

<li> Programmability of applications with the protocol stack should be simple, and the talent pool of programmers for such applications should be large
Beispiel #10
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("gip.alu.dataflow");
$page_title = "GIP Documentation";
include "{$toplevel}web_assist/web_header.php";
page_header("GIP ALU and Shifter Dataflow");
page_sp();
?>

<p>
The data flow for the ALU is from one of the registers (SHF, ACC, A input or B input) through the shifter, adder and lofical units,
through to the outputs (ALU result, passthrough result) 
and the next ACC and SHF values (and also A and B when doing multiplies and divides). This section summarizes those flows from an
analysis of the previous sections to show what sources are required for what, and when.
</p>

<?php 
page_section("Op1", "Op1");
?>

<table border=1>
<tr>
<th>ARM source</th>
<th>Actual source</th>
<th>Relevant ARM instructions</th>
</tr>

<tr>
<td>Rn</td>
Beispiel #11
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("company.people.john_croft");
$page_title = "Embisi Inc. People";
include "{$toplevel}web_assist/web_header.php";
page_header("John Croft");
page_sp();
?>

John is a Briton in Britain. A college classmate of <a href="../gavin_stark">Gavin Stark</a>, he went on
to work at Madge Networks, once the leader in token ring networks, and
left them to form part of Calista.

<p>

Here he was involved in development of embedded OS, VOIP firmware and
reverse-engineering of digital PBX protocols.  Calista&lsquo;s life ended when
it was acquired by Cisco Systems. John is taking the lead in investigating
the tools, operating system and libraries for Embisi.

<?php 
page_ep();
include "{$toplevel}web_assist/web_footer.php";
?>


Beispiel #12
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("white_papers");
$page_title = "Embisi Inc.";
include "{$toplevel}web_assist/web_header.php";
page_header("White papers");
page_sp();
?>

Our white papers will go here. Sorry, none are ready for release as yet.

<?php 
page_ep();
include "{$toplevel}web_assist/web_footer.php";
?>

Beispiel #13
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location($location);
$page_title = "GIP Documentation";
include "{$toplevel}web_assist/web_header.php";
page_header("GIP Register File");
page_sp();
?>

<?php 
page_section("overview", "Overview");
?>

<p> The GIP register file module contains both the actual register
file and registering of the control signals required to access the
register file, plus the register scoreboarding. It implements both the
register file read pipeline stage and the register file write pipeline
stage. It also supplies a same-cycle interface to the special registers (DAGs, semaphores, repeat count, zol ctrs, etc) and the postbus register file/commands </p>

<p> In order to support use of the PC as an operand in instructions,
and as the register file does not hold the PC, there is an input to
the register file read stage which is used as a PC value (or PC+offset
- this depends on the decode/emulation), and the register file read
stage can multiplex this value onto either of its read outputs if the
PC is desired by the ALU as opposed to a true register file value.</p>

<p>

The register file is given register numbers that correspond to one of the following:
Beispiel #14
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("company");
$page_title = "Embisi Inc.";
include "{$toplevel}web_assist/web_header.php";
page_header("Company overview");
page_sp();
?>

Embisi is a privately held company headquartered in New England, with design centers in both New Hampshire and England.

<br>

It was founded in 2004 to commercialize some advanced technology being
researched for high performance embedded controllers. Since that time
it has reshaped, and is now developing embedded Internel control
modules for particular vertical markets.

<?php 
page_ep();
include "{$toplevel}web_assist/web_footer.php";
?>

Beispiel #15
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("top");
$page_title = "Embisi Hardware Documentation";
include "{$toplevel}web_assist/web_header.php";
page_header("Overview");
page_sp();
?>

<a href="gip/index.php">GIP</a>

<p>

<a href="postbus/index.php">Post bus</a>

<?php 
page_ep();
include "{$toplevel}web_assist/web_footer.php";
?>

<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("gip.alu.implementation");
$page_title = "GIP Documentation";
include "{$toplevel}web_assist/web_header.php";
page_header("GIP ALU and Shifter Implementation");
page_sp();
?>

This documentation matches version 1.9 of the gip_alu source code

<?php 
page_section("module_definition", "Module definition");
?>

<p>
The ALU stage, then, requires the following controls and input data, which can be described as 'ports' to the ALU stage
</p>

<?php 
page_subsection("inputs", "Inputs");
?>

<table border=1>
<tr>
<th>Port</th>
<th>Type</th>
<th>Details</th>
</tr>
Beispiel #17
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("company.contacts");
$page_title = "Embisi contacts";
include "{$toplevel}web_assist/web_header.php";
page_header("Email us");
page_sp();
if ($_POST["reason"] == "sendit") {
    $to = "*****@*****.**";
    mail($to, "message from " . $_POST["email"], $_POST["body"]);
    ?>
	Thank you for your message
	<?php 
} else {
    ?>

	<form method="post" action="contacts.php">
	<input type="hidden" name="reason" value="sendit"/>
	Your E-mail address:<input type="text" name="email"/><br/>
	<textarea name="body" cols="90" rows="10"></textarea><br/>
	<input type="submit" value="Send"/>
	</form>
	<?php 
}
page_ep();
include "{$toplevel}web_assist/web_footer.php";
?>

Beispiel #18
0
<?php

include "web_locals.php";
include "{$toplevel}web_assist/web_globals.php";
site_set_location("gip");
$page_title = "GIP Documentation";
include "{$toplevel}web_assist/web_header.php";
page_header("Overview");
page_sp();
?>

The GIP documentation currently consists of OpenOffice documents and HTML/PHP documents.

<p>

PHP/HTML documentation is written in Quanta or any text editor, and it contains the next level of design after the lab book details.

<p>

OpenOffice documentation covers the actual final design and functional details. This is collected together and prettied up from the HTML files and lab book details.

<p>

The instruction set is documented in OpenOffice

<?php 
page_section("php", "PHP/HTML documentation");
?>

<table border=1>
<tr>