comp.lang.ada
 help / color / mirror / Atom feed
* Hardware Design supporting Ada
@ 2016-12-11 20:55 Shark8
  2016-12-11 21:15 ` Niklas Holsti
  0 siblings, 1 reply; 3+ messages in thread
From: Shark8 @ 2016-12-11 20:55 UTC (permalink / raw)


In the Ada IR thread an interesting sub-discussion regarding specialized hardware came up; some of the HW mentioned were:
* The Rational R-1000
—— https://en.wikipedia.org/wiki/Rational_R1000
—— http://datamuseum.dk/wiki/Rational/R1000s400
—— http://www.somethinkodd.com/oddthinking/category/geek/software-development/rat1000/
—— http://repository.cmu.edu/cgi/viewcontent.cgi?article=1141&context=sei
* The Intel iAPX 432
—— https://en.wikipedia.org/wiki/Intel_iAPX_432
—— http://www.brouhaha.com/~eric/retrocomputing/intel/iapx432/cs460/
—— http://bitsavers.trailing-edge.com/pdf/intel/iAPX_432/172283-001_Reference_Manual_for_the_Intel_432_Extensions_to_Ada_Dec81.pdf
* The Rekursiv
—— https://en.wikipedia.org/wiki/Rekursiv
—— http://web.archive.org/web/20070607072521/http://www.erg.abdn.ac.uk/research/projects/rekursiv.html
—— http://www.slideshare.net/sebrose/rekursiv

In addition to this, I've been doing some work looking into balanced-ternary computers -- like this: http://practicaldev.herokuapp.com/buntine/the-balanced-ternary-machines-of-soviet-russia and this: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.139.3198&rep=rep1&type=pdf -- which indicate that it is possible and implementable w/ current fabrication processes.

Further, [balanced] ternary provides some interesting properties; if, for example, we define {1, 0, -1} as {greater-than, equal, less-than} respectively then we can have a JUMP instruction that takes this single Trit comparison result and three offsets and take care of ALL the JUMP combinations in binary instruction-sets with one instruction. Moreover, if we define ((x,x,x),(x,x,x),(x,x,x)) as a "Byte" then a single Byte may be used to describe any binary operation. (e.g. Result = Byte_Value(A)(B).)

Taking these properties into consideration we could reduce something like
if A AND B then
statements_1;
elsif A XOR B then
statements_2;
else
statements_3;
end if;

to a single compare and a single jump via the following byte/table ((-1,1,-1)(1,0,1)(-1,1,-1)) with the jump populated w/ offset-values appropriately set.

I may be able to get into some chip manufacturing (I have a few contacts, and some family involved in the industry) -- there's also a university nearby which may be interested (HEAVY tech and math emphases; students needing senior-projects, professors possibly needing research topics, etc) and my particular State (in the US) is looking to stimulate its economy, so obtaining a grant is not out-of-the-question.

However, this is all moot w/o having a clear vision WRT to what the end-product should be. What I have in mind now is a ternary computer with a co-processor of 9 'cores' where each core is a 3-stack stack-machine; this -- http://fpgacpu.ca/stack/Second-Generation_Stack_Computer_Architecture.pdf -- illustrates a few stack-machines, one of which has a predicted sustained execution rate of 2400 MIPS.... but I honestly have little idea of what I could do in-hardware to support Ada, which I'd like to do.

What's everyone on comp.lang.ada's suggestions, insights, and advice on the topic?

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-12-12 21:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-11 20:55 Hardware Design supporting Ada Shark8
2016-12-11 21:15 ` Niklas Holsti
2016-12-12 21:46   ` Shark8

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox