C> bepalen cachegrootte

C

CH

Guest
hallo,

kan iemand me helpen bij het schrijven van een C programma voor het bepalen van de omvang van de L1 en L2 cache.Ik
zou ook graag willen kunnen bepalen of de L1 cache is 1-weg, 2-weg of 4-weg.

Wat ik gedaan
heb tot nu toe werd een groot array, stap door de vele array aantal keer, lezen en schrijven naar elke locatie, terwijl de timing ervan.Dan zou ik het precies hetzelfde ding weer zonder het lezen van en schrijven naar het geheugen ...gebruik dan het verschil tussen twee resultaten als een manier voor het bepalen van de maten.

De methode die ik gebruik is zeer onnauwkeurig, en ik
ben een litle verward over hoe het hele proces van caching plaatsvindt (bijvoorbeeld de manier cache haalt slechts 32B lijnen tegelijkertijd)

een advies zal worden gewaardeerd, thx.

 
Het is geen onderdeel van de C taal.Wat je zoekt, is een vuile laag niveau functioneren.Welk RTOS of OS gebruikt u?

Tom

 
Ik kom met behulp van W2K en RH linux.

Ik
heb twee stukken gevonden van C-code die doen wat ik wil, maar het eerste stuk is te ingewikkeld voor me om het goed begrijp.De tweede is eenvoudiger, maar het breekt in macro's geschreven in asm (die i dont begrijpen) te tellen van het aantal klok tikt dat hebben voor een aantal lees / schrijft aan cache.

 
Ik weet niet voor W2K, maar voor RedHat / proc / cpuinfo is een manier om te gaan.Niet het wiel opnieuw uit - gebruik gewoon info uit / proc bestandssysteem.

BTW, voer "linux L1 cache grootte" als zoekwoorden in Google.

Tom

 
thx Tom.voor iemand anders interesed in deze, kijk hier voor een korte tutorial over hoe je over de codering van de oplossing voor dit probleem.

 

Welcome to EDABoard.com

Sponsor

Back
Top