Shop OBEX P1 Docs P2 Docs Learn Events
Yet Another 2-prop machine idea — Parallax Forums

Yet Another 2-prop machine idea

pik33pik33 Posts: 2,398
edited 2012-04-29 14:10 in Propeller 1
This is my first rough idea of 2-propellers machine:

2prop.jpg


VGA Mode bit: select from 8-bit (Demoboard compatible) or 10 bit (256 colors VGA with sync on 24,25)
I am still beginner. So I am asking if there is something wrong with this idea. If not, I will start to make it :)


Before I start, I want to do some experiments with 4 pieces of 23k256. They were ordered two days ago and should arrive today.

P1: vga and LMM VM
P2: all other peripherals/human input

P2 boots from eeprom, then loads an OS kernel from flash SD card
Then it sets Resn of P1 to high and transfers OS to P1
P1 starts to work in LMM mode

16 pieces of 23k256 should provide a fast external RAM.
1024 x 768 - 51K

Comments

  • prof_brainoprof_braino Posts: 4,313
    edited 2012-04-27 07:12
    If you skip the FAT support, SD card can be used as external ram. If you can treat it as a buffer of 512 byte page blocks, you have tons of memory. Without the extra overhead, the transfer speed of the SD is fast enough to where it close to the speed the prop can use. Just don't expect to work on huge (greater than 512 bytes) buffers at high speeds.

    The first prop can be used to emulate rom for the second prop, so you might not need extra eeproms, if your use the SD option.

    Just some options...
  • jazzedjazzed Posts: 11,803
    edited 2012-04-27 08:35
    If you skip the FAT support, SD card can be used as external ram. If you can treat it as a buffer of 512 byte page blocks, you have tons of memory. Without the extra overhead, the transfer speed of the SD is fast enough to where it close to the speed the prop can use. Just don't expect to work on huge (greater than 512 bytes) buffers at high speeds.

    The first prop can be used to emulate rom for the second prop, so you might not need extra eeproms, if your use the SD option.

    Just some options...

    You don't have to skip FAT support. Propeller GCC allows both with SDXMMC programs. SDXMMC programs can be huge, but data is limited to HUB size minus cache minus stack size. However, SDXMMC is slower than other solutions such as SPI-FLASH or others with Propeller because of the limited cache memory and the need to read a whole 512KB block which means only 16 cache lines. SPI-Flash is faster because it can have any cache geometry.


    @pik33 (nice name - first initials ds? ).

    It would be just as fast to use 2 banks of 8x SPI-SRAM with separate chip selects for the banks (using IPSiLog parts would give 1MB).

    The reason is in the way we can move bytes from outside to inside Propeller HUB ram.
    With a separate cache COG it is possible to achieve 5MB/s burst at 80MHz after address setup.

    So an 11 pin interface (1 CLK, 2 CS, 8 data) is good and would allow you to add things like SDCard on the main Propeller which is a big + in my opinion.

    A 10 pin VGA is new territory. Maybe it can be done and I wish you the best with it. Propeller's video counters are very flexible.

    Thanks,
    --Steve
  • prof_brainoprof_braino Posts: 4,313
    edited 2012-04-27 08:43
    jazzed wrote: »
    You don't have to skip FAT support. ... SDXMMC is slower ...

    I don't disagree, I'm just pointing out that there is method that trades FAT support for speed. The "memory SD" become "internal" to the system but is very little cost. Of course you can still have another SD that supports FAT and is removable, and trades speed for FAT. My wife is on a diet, so I'm very FAT conscious these days.
  • David BetzDavid Betz Posts: 14,516
    edited 2012-04-27 08:54
    I don't disagree, I'm just pointing out that there is method that trades FAT support for speed. The "memory SD" become "internal" to the system but is very little cost. Of course you can still have another SD that supports FAT and is removable, and trades speed for FAT. My wife is on a diet, so I'm very FAT conscious these days.
    FAT support doesn't slow down the use of the SD card as extended memory. The loader collects together a cluster map of the program you want to run off of the SD card but the XMM kernel and SD cache driver never access the FAT code again at runtime.
  • pik33pik33 Posts: 2,398
    edited 2012-04-27 09:01
    It would be just as fast to use 2 banks of 8x SPI-SRAM with separate chip selects for the banks (using IPSiLog parts would give 1MB).

    The reason is in the way we can move bytes from outside to inside Propeller HUB ram.
    With a separate cache COG it is possible to achieve 5MB/s burst at 80MHz after address setup.

    Maybe, when use 16 bits, it will be possible to make a video buffer from these 32k256. Fast read 160 words, then put them via video hardware to vga. Still have to learn. :) I received 4 23k256 chips some hours ago, so I will try them with a demo board, to learn how it works and what can be done with them.
  • jazzedjazzed Posts: 11,803
    edited 2012-04-27 10:05
    pik33 wrote: »
    Maybe, when use 16 bits, it will be possible to make a video buffer from these 32k256. Fast read 160 words, then put them via video hardware to vga. Still have to learn. :) I received 4 23k256 chips some hours ago, so I will try them with a demo board, to learn how it works and what can be done with them.

    Adventurous :) Maybe 16 bits is possible. I don't see 2 pins for CLK/CS on your drawing though - you'll need 18 pins.

    How long do you have to set up the SPI SRAM address? Seems like you'll need about 4us for address phase with 64+ instructions and special clocks.
  • pik33pik33 Posts: 2,398
    edited 2012-04-27 10:23
    Forgot about CS. :( No pins left on Propeller... It is still rough idea, so all can be changed. I will make some experiments with 23k256s connected to a demo board, until I start making a real schematic of this machine.

    SPI address set - yes, it takes some some microseconds, 24 bits to transmit, 1.2 microsecond absolute minimum, but it can be done once, then a lot of bytes can be read.

    When I get some time to play with these chips, I will connect these 23k256 to the demo board and try, what I can do with them.

    EDIT: I read datasheet... will need hold signal, too, to do what I want... it seems it can be done. Two pins more for 23k256 interface, so 19 pins needed for this idea... 19 pins sram, 10 pins vga, only 3 pins left for communication :( Still this propeller can be booted from second one via serial connection, so this idea still can be done

    VGA mode switch (prop std 6bit+2 bit sync/8bit color+2bit external sync driven by another cog's counters) can be driven from second propeller.
  • pik33pik33 Posts: 2,398
    edited 2012-04-28 01:57
    After some playing with sd card I realised, that I need a RT Clock for my project, too...
  • rwgast_logicdesignrwgast_logicdesign Posts: 1,464
    edited 2012-04-29 00:55
    I got a few ds1302s happily hook one up idmf u belive u can get a 10 pin video bus workin
  • max72max72 Posts: 1,155
    edited 2012-04-29 05:12
    pik33,
    what features of an RTC do you need?
    Can't a RTC on spare COG be enough? There already are objects available.
    Massimo
  • pik33pik33 Posts: 2,398
    edited 2012-04-29 12:13
    Maybe it will be enough; I want to have a time source for SD filesystem.
  • max72max72 Posts: 1,155
    edited 2012-04-29 14:10
    Consider the possibility to use the prop for time keeping.
    The options I tested so far are:
    counters, a free pin a no extra cog (even if a free pin looks difficult to find)
    seconds counting in a separate COG, not necessarily a dedicated one. After all seconds counting is not a great effort, so you have a lot of free time. For instance I placed it with button debouncing.
    probably there are better options, check also the obex.
Sign In or Register to comment.