Sida 2 av 3

Postat: 18 april 2007, 09:27:35
av Mindmapper
Accesstiderna blir inte snabbare av RAID. Bara mängden data som du hanterar per tidsenhet.

Postat: 18 april 2007, 09:35:13
av mrOh
Ok, men var i tid hamnar ett snabbt USB-minne då? Tänker på Vistas ReadyBoost funktion. Skulle det kunna vara något?

Info

Postat: 18 april 2007, 09:39:56
av Millox
Vista är nog inte det minsta kompatibelt med accesstider på mikrosekunder eller nanosekunder. Ett riktigt hårt optimerat realtidsos kanske klarar det, men knappast med de mängderna data som krävs.

8051guru: Finns det någon förutsägbarhet i datahämtningen kanske det går för att cacha mindre delar av datat i minnet och hämta därifrån... Då kanske man klarar sig med en 1 GB minne eller så?

Postat: 18 april 2007, 09:46:19
av 8051guru
Data måste kunna hämtas slumpmässigt.

Postat: 18 april 2007, 10:07:26
av Mindmapper
USB-minnen är inget man blir imponerad av för att dom är speciellt snabba.

Postat: 18 april 2007, 10:07:57
av TERdON
8051guru skrev:En konstig sak: En microcontroller kan ha programminnet i flash, men accesstiderna för större flash-minnen går inte att få under 0,1ms.

Hur hänger det ihop? Vad är det för teknisk svårighet med att ett stort flashminne skulle ha låg accesstid?
Du har inte ETT stort flashminne, du har troligen FLERA stycken (i alla fall när du kommer upp i 32 GB). Det betyder interfacekretsar, Dessutom är dessa minnen helt och hållet optimerade för utrymme och inte prestanda. Slutligen finns det begränsningar i överföringsprestandan eftersom anslutningsbussarna som används har begränsad överföringskapacitet. Exempelvis maxar SATA i 250 MB/s och eftersom datat läses i kluster (på minst 256 byte, har inte koll på exakt storlek) så har du minst en mikrosekund bara på överföringen av innehållet. USB är ännu värre, som du redan förstått.

Och slutligen - bara för att åtkomsten är slumpvis, betyder det inte att ett cache-minne inte gör nytta. Det brukar ändå finnas lite mönster i hur minnet används som kan optimeras (och även vid ett totalt slumpmässigt åtkomstmönster gör cachen skillnad om än inte så mycket). Enda anledningen jag kan se till att du inte skulle kunna använda cache-lösningar är att du har hårda realtidskrav som du måste uppfylla.

EDIT: Och anledningen att det inte är likadant i mikrokontroller är att de minnena är betydligt mindre och har byggts annorlunda. Som jag redan tidigare sagt, det är kombinationen av mängd och mycket hög hastighet som är problemet. Var för sig är varken det ena eller det andra något större problem...

Postat: 18 april 2007, 10:51:25
av sodjan
> En konstig sak: En microcontroller kan ha programminnet i flash,
> men accesstiderna för större flash-minnen går inte att få under 0,1ms.

Inte alls konstigt, om du tänker till lite...

Det är väl fullständigt självklart att man kan bygga *in* ett flashminne
på ett par 10-tals *Kilo* bytes i en microcontroller med bra accesstid, men
att det är en helt annan sak att bygga ett *externt* flashminne på ett
par *Mega* bytes med olika typer av standard (ibland seriella) interface...

Det blir mer och mer uppenbart att du är ute på verkligt djupt vatten
och inte har riktigt grepp om vad du håller på med. Jag vågar påstå
att din "uppfinning" aldrig går att realisera.
Bevis på motsatsen emotses med stor förväntan...

Postat: 18 april 2007, 11:28:47
av 8051guru
sodjan skrev:> En konstig sak: En microcontroller kan ha programminnet i flash,
> men accesstiderna för större flash-minnen går inte att få under 0,1ms.

Inte alls konstigt, om du tänker till lite...

Det är väl fullständigt självklart att man kan bygga *in* ett flashminne
på ett par 10-tals *Kilo* bytes i en microcontroller med bra accesstid, men
att det är en helt annan sak att bygga ett *externt* flashminne på ett
par *Mega* bytes med olika typer av standard (ibland seriella) interface...

Det blir mer och mer uppenbart att du är ute på verkligt djupt vatten
och inte har riktigt grepp om vad du håller på med. Jag vågar påstå
att din "uppfinning" aldrig går att realisera.
Bevis på motsatsen emotses med stor förväntan...
Jag har klargjort redan i ursprungliga inlägget att jag inser att man inte kan använda seriella interface. En pci- eller pccard-lösning får väl betraktas som *intern*.

Du har skrivit att mina krav verkar tagna ur luften. Det är de inte, de är genomtänkta.

Om jag redan visste exakt hur det skulle gå att realisera, hade jag inte frågat om det. Du skriver "uppfinning" med citationstecken. Jag har aldrig påstått att det rör sig om någon uppfinningshöjd överhuvudtaget.

Du skriver "mer och mer uppenbart att du är ute på verkligt djupt vatten". Nu får det väl ändå vara nån måtta. Jag tycker att jag har uttryckt mig klart. Vissa av mina krav är ungefärliga, och då skriver jag också det.

Till alla: Tack för vissa intressanta synpunkter.

Postat: 18 april 2007, 11:59:02
av dancar
Inte för att det är lösningen på ditt projekt men det kanske är lösningen på ditt generella problem, att läsa data snabbt från databas.

Times Ten

Postat: 18 april 2007, 12:04:00
av Zyxel615
Citera inte föregående inlägg.

Postat: 18 april 2007, 12:06:55
av sodjan
He he... :-)

> Du har skrivit att mina krav verkar tagna ur luften. Det är de inte, de är genomtänkta.

OK, "tagna ur luften" var inte att bra ordval, "orealistiska" är kanske bättre.
Sen kanske de är "genomtänkta", men det säger ju inte så speciellt mycket... :-) :-)

Men hur som helst, lycka till i alla fall !

Postat: 18 april 2007, 12:24:43
av limpan4all
Dina 16 byte som du skall läsa är dom linjära dvs ligger dom i en följd? Ligger dom på 16bytes inkrement eller kan det variera 1-16 byte eller annat antal?
Du skulle ju kunna bygge an egen microkontroller runt (eller i) en FPGA. Om denna är av dess större varianter så skapa en paralell adressbuss men med en mycket bred databuss 256-512 bitar eller något likande med motsvarande antal Flashkretsar (16-32st beroende på deras arkitektur). Då har du tillgång till stora minnesareor till relativt låg kostnad och mycket snabb sekvensiell accesstid (<<10ns) efter den första adresseringen (typ 100ns). Men mycket egen konstruktion blir det. Hur du sen plockar ut dina data ur FPGA´an beror mera på vad du skall ha dom till men det finns ju färdig FPGA kod såsom IP till PCI bussen/PCI-X osv. Men det är hundratals konstruktörstimmar innan det skulle kunna fungera och billigt blir det inte i småkvantiteter.

Så även jag förordar DDR minne i en 64 bitars dator det blir snabbare och billigare.

Postat: 18 april 2007, 15:41:33
av sodjan
Jag har funderat på en sak...

Dessa väldigt korta access tider, var imellan är det tänkt att mätas ?
Bara tills datat har lämnat själva flashminnet ? Eller till det är
tillgängligt i någon slags "applikation" ?

ddr2?

Postat: 18 april 2007, 16:31:30
av arte
Det billigaste måste väl nästan bli att köpa RAM minne?

8GB kostar 4700, sedan 2-3 tusen till för moderkort och processor.

Så du hamnar absolut under 10000.

Ifall du inte vill ha "projektet" längre så kan du ju alltid sälja dina minnen ;)

Postat: 18 april 2007, 16:52:02
av vfr
Jag tror att du är inne på rätt spår iallafall. Ett parallellt CF-kort eller liknande borde kunna trycka ur sig data relativt snabbt utan overheaden med seriebussar, så länge det handlar om läsning. Sedan om det räcker hela vägen för dina krav är kanske tveksamt.