Talk:Super Harvard Architecture Single-Chip Computer

From Wikipedia, the free encyclopedia

Contents

[edit] not an advert

Mercury no longer makes SHARC systems, and hasn't since some time around the year 2000. Thus the Mercury info is surely not an advertisement. (not even for used systems, which would be obsolete and very rare)

Mercury happens to have used the SHARC in a particularly interesting way that is good for illustrating SHARC system design.

[edit] word machine

A large amount of the detail in this article seems to be about the implications of SHARC being a word machine. Somewhat awkwardly. I hope that this is not appropriate. Historically, lots of machines have not had byte addressing.

I don't know anything about the Mercury product, but synthesizing byte pointers (or at least character pointers) is normal on a word machine. If you are implementing a language like C, this can make code for ordinary programs a bit bloated. Programs written for an ordinary language don't suffer from this. A striking example is the language BCPL, C's precursor: it assumed that the machine was a word machine. DHR 15:50, 29 June 2006 (UTC)

[edit] Harvard Architecture

There is not much discussion of the implications of a Harvard architecture.

  • HA normally allows access to instructions and data to be completely parallel, without interference. Good for performance.
  • HA makes it natural for the data and instruction word sizes to be different
  • HA means it is surprising that the same memory could be allocated to either instructions or data, and yet I infer that the SHARC can do this, both with the on-chip and off-chip memory
  • HA makes the overlay mechanism worth discussing: by default, in HA, there is no way to modify program code under program control

DHR 15:50, 29 June 2006 (UTC)

I suppose it's only HA in that one wouldn't normally waste 48-bit words to store 40-bit or 32-bit data. One also wouldn't want to execute from off-chip memory because then the instruction fetches would compete with use of the memory for data. Overlays are normally moved via the chip's built-in DMA engine. There is also a special set of transfer registers that can be used, viewable as either 48-bit or as a 32-bit/16-bit pair. AlbertCahalan 07:04, 10 July 2006 (UTC)

[edit] instruction set

Processor-junkies want to know about the instruction set. This article neither describes the instruction set nor has a clearly marked link to such a description. (I came to this page looking for this information.)

Processors usually come in families. It might be good to compare and contrast the different members of this family (I think that means: SHARC, TigerSHARC, and Blackfin). DHR 15:50, 29 June 2006 (UTC)

Newer processors are byte-addressed, though perhaps that is configurable. The Blackfin even runs Linux now.

Maybe you can find a PDF with the SHARC instruction set. There might be a gcc port floating around somewhere. From my fading memory, here is some nonsense assembly code:

foo:
  if ZF r3 = r4 + 0x7ffffff        ; conditional op with 32-bit immediate
  if CF jump foo
  r5 = r6 + 1 , r7 = r6 - 1        ; first delay slot: two related math ops
  if PF bit clr r2 18              ; second delay slot: clear bit 18
  if ZF r3 = r5 * r8, r4 = r1 + r2 ; can do both multiply and divide
  loop 3 foo                       ; one of 6 loop contexts

Don't assume the assembler will be happy with that. I forget how to expose the delay slots; the CPU will just waste two cycles (via a bit in the instruction) if you don't tell the assembler that you are being a manly hacker. AlbertCahalan 07:26, 10 July 2006 (UTC)