Spelling suggestions: "subject:"cacheminnen"" "subject:"cachemire""
1 |
Design av ett objektorienterat datalager / Design of an object oriented data layerWikström, Mårten January 2006 (has links)
<p>System som bygger på en underliggande databas behöver ett abstraktionslager mellan databasen och applikationen. Detta kallas för systemets datalager.</p><p>Det är inte ovanligt att en stor del av programmerarnas tid går åt för att skriva programkod som hanterar datalagrets egenheter och för att transformera data mellan applikationen och datalagret.</p><p>I ett objektorienterat datalager kan systemets domänmodell integreras i datalagret så att det blir betydligt enklare och mer effektivt att arbeta med. Ett objektorienterat datalager låter dessutom applikationen navigera mellan objekten i databasen som om hela objektgrafen vore tillgänglig i applikationens primärminne. Hur information hämtas, när den hämtas och precis vilken information som hämtas från databasen är transparent för applikationen.</p><p>Det är också transparent när uppdateringar som görs på objekt i applikationens primärminne når den underliggande databasen. Datalagret ger garantin att alla objekt, som förändrats inom loppet av en transaktion och som är nåbara via navigering från något objekt i databasen, kommer att finnas i databasen med korrekt tillstånd då transaktionen avslutas.</p><p>Ett objektorienterat datalager erbjuder således en striktare form av abstraktion än vad ett traditionellt datalager gör.</p><p>Inom ramen för examensarbetet har jag utvecklat en prototyp av ett objektorienterat datalager, och i den här rapporten presenterar jag: några allmänna koncept som rör datalager i allmänhet och objektorienterade datalager i synnerhet; hur dessa koncept kan designas; samt en kort översikt av prototypen.</p>
|
2 |
Design av ett objektorienterat datalager / Design of an object oriented data layerWikström, Mårten January 2006 (has links)
System som bygger på en underliggande databas behöver ett abstraktionslager mellan databasen och applikationen. Detta kallas för systemets datalager. Det är inte ovanligt att en stor del av programmerarnas tid går åt för att skriva programkod som hanterar datalagrets egenheter och för att transformera data mellan applikationen och datalagret. I ett objektorienterat datalager kan systemets domänmodell integreras i datalagret så att det blir betydligt enklare och mer effektivt att arbeta med. Ett objektorienterat datalager låter dessutom applikationen navigera mellan objekten i databasen som om hela objektgrafen vore tillgänglig i applikationens primärminne. Hur information hämtas, när den hämtas och precis vilken information som hämtas från databasen är transparent för applikationen. Det är också transparent när uppdateringar som görs på objekt i applikationens primärminne når den underliggande databasen. Datalagret ger garantin att alla objekt, som förändrats inom loppet av en transaktion och som är nåbara via navigering från något objekt i databasen, kommer att finnas i databasen med korrekt tillstånd då transaktionen avslutas. Ett objektorienterat datalager erbjuder således en striktare form av abstraktion än vad ett traditionellt datalager gör. Inom ramen för examensarbetet har jag utvecklat en prototyp av ett objektorienterat datalager, och i den här rapporten presenterar jag: några allmänna koncept som rör datalager i allmänhet och objektorienterade datalager i synnerhet; hur dessa koncept kan designas; samt en kort översikt av prototypen.
|
3 |
Evaluation of cache memory configurations with performance monitoring in embedded real-time automotive systems : Determining performance characteristics of cache memory with hardware counters and software profiling. / Utvärdning av cacheminnekonfigurationer med prestandamätning i realtidsstyrda fordonssystem : Bestämning av prestandaegenskaper i cacheminnen med hårdvaruräknare och mjukvaruprofileringWestman, Andreas January 2022 (has links)
Modern day automotive systems are highly dependent on real-time software control to manage the powertrain and high-level features, such as cruise control. The computational power available has increased tremendously from decades of microcontroller and hardware development on such platforms. In contrast, the access times to the memory are still substantial, creating a significant bottleneck in the system. Therefore, small cache memories are used to reduce access times and improve performance. With significantly smaller but faster memory, the configuration and behaviour of the cache play an important role and are also highly dependent on the platform. Several of the configurations have an impact on the platform behaviour not only in terms of execution time, but also in multithreaded coherency, robustness, security, and internal bus usage. To distinguish performance differences and cache behaviour between configurations, hardware counters and low-level processor events such as bus usage, line fills, reads, and writes are monitored in conjunction with task load profiling. This proves to be an effective measurement method for use in a real-time embedded automotive system to provide both average and worstcase scenarios. In addition, the collected results are used to suggest improvements to the configuration of the platform used for measurements. For example, no major performance benefits were measured from excluding certain parts of the memory to increase hit rate. Less robust write-policies copy-back proved to be more efficient and could be used in combination with error correction to increase security. Memory coherency in multithreaded execution also proved to be inefficient and a major source to increased miss-rate due to snooping. / Moderna fordonssystem är idag mycket beroende av realtidsmjukvara för att effektivt kontrollera både drivlina och med användarfunktioner som till exempel farthållare. Beräkningskraften tillgänglig på de mikrokontroller som används har ökat kraftigt från årtionden av utveckling. Åtkomsttiden mellan processorn och minnet är däremot fortfarande stor och skapar en stor flaskhals i systemet. För att minska åtkomsttiden används cacheminnen med mycket hög prestanda och begränsad minnesmängd. Med väsentligt mindre och snabbare cacheminnen krävs optimerade konfigurationer för att utnyttja minnet effektivt, vilket kan vara svårt då användningen och prestandan är varierande för olika system. Fler cachekonfigurationer påverkar systemet i mer än bara exekveringstid utan och i minnessynkronisering, tillförlitlighet, säkerhet och intern bussanvändning. För att särskilja olika prestandaegenskaper mellan olika konfigurationer används hårdvaruräknare och processorhändelser som bussanvändning, radändringar, läsningar och skrivningar i kombination med profilering av processoranvändning. Det visar sig vara en effektiv metod för att utvärdera olika scenarion som bästa-, sämsta-, och medelfall i realtidssystem i fordon. Utöver det, används resultaten för att föreslå nya konfigurationsförbättringar på plattformen som användes. Några exempel på detta är hur försök till att förbättra minnesträffar i cacheminnet genom att exkludera vissa typer av minnessektioner inte gav någon prestandaförbättring. Mindre tillförlitliga skrivmetoder som copy-back visade sig vara mer effektiva och kunde användas i kombination med feldetektering för att förbättra säkerheten.
|
4 |
En prestandajämförelse mellan objektorienterad design och dataorienterad design i C++, Java och Java Project Valhalla / A performance comparison between object-oriented design and data-oriented design in C++, Java, and Java Project ValhallaIsacsson, Andreas, Renström, Christopher January 2023 (has links)
Datorspel behöver utnyttja hårdvara effektivt för att kunna vara tillgänglig på så många system som möjligt med varierande kapacitet. En viktig del i detta är att optimera användandet av processorns cacheminnen. Programmerare kan följa en dataorienterad design för att implementera cacheeffektiv kod. Detta förutsätter att programmeraren har kontroll över hur data lagras i minnet, vilket är svårt att uppnå i Java. Project Valhalla kan erbjuda funktioner för att åtgärda detta problem. I detta arbete jämfördes objektorienterad design med dataorienterad design i språken C++, Java och den pågående utvecklingen av Project Valhalla. En prototyp utvecklades och implementerades med olika kombinationer av dessa språk och designer. För varje implementation mättes prestanda och cacheeffektivitet. Resultatet visade att Java med Project Valhalla kan uppnå liknande prestanda som C++ vid dataorienterade implementationer. På grund av vissa begränsningar i Valhallas funktioner kommer det troligtvis inte bli ett praktiskt alternativ till lågnivåspråk inom en snar framtid. / Computer games need to utilize hardware efficiently in order to be available on as many systems as possible with varying capabilities. An important part of this is to optimize the use of the CPU’s cache. A programmer can follow a data-oriented design to implement cache-efficient code. This requires the programmer to have control over how data is stored in memory, which is difficult to achieve in Java. Project Valhalla may offer features to address this issue. In this thesis, object-oriented design was compared with data-oriented design in the languages C++, Java, and the ongoing development of Project Valhalla. A prototype was developed and implemented using different combinations of these languages and designs. For each implementation, performance and cache efficiency were measured. The result showed that Java with Project Valhalla can achieve similar performance to C++ in data-oriented implementations. Due to some limitations in Valhalla's features, it is unlikely that it will become a suitable alternative to low-level languages anytime soon.
|
Page generated in 0.2975 seconds