Stort eeprom till datorn, låg accesstid.
-
- Inlägg: 7122
- Blev medlem: 31 augusti 2006, 16:42:43
- Ort: Jamtland
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å?
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å?
-
- Inlägg: 7122
- Blev medlem: 31 augusti 2006, 16:42:43
- Ort: Jamtland
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.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?
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...
> 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...
> 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*.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...
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.
-
- Inlägg: 8458
- Blev medlem: 15 april 2006, 18:57:29
- Ort: Typ Nyköping
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.
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.