Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Branch predictor in cv32e40p core will take more time. #951

Open
Attaullah786 opened this issue Feb 22, 2024 · 8 comments
Open

Branch predictor in cv32e40p core will take more time. #951

Attaullah786 opened this issue Feb 22, 2024 · 8 comments
Labels
Type:Question For general questions

Comments

@Attaullah786
Copy link

Screenshot from 2024-02-22 12-48-30
Screenshot from 2024-02-22 12-48-30

I integrated code of branch predictor in cv32e40p core and try to simulate hello world test in it but it will not give the tests also did not give the error.

@pascalgouedo
Copy link
Contributor

pascalgouedo commented Feb 22, 2024

Hi,
You have to move cv32e40p directory somewhere else and use following option when launching make command:
CV_CORE_PATH=<your path>/cv32e40p

@MikeOpenHWGroup MikeOpenHWGroup added the Type:Question For general questions label Apr 17, 2024
@MikeOpenHWGroup
Copy link
Member

Hi @Attaullah786, did @pascalgouedo answer your question? If so, please close this Issue. If you do not comment within one week, this Issue will be closed.

@Attaullah786
Copy link
Author

Thanks for your answer. When i run the hello world test there is no information about CPI for the test cases. Kindly give me insight about the test cases that gave clock cycles. Thanks

@MikeOpenHWGroup
Copy link
Member

Hi @Attaullah786'

there is no information about CPI for the test cases

What do you mean by "CPI"?

Kindly give me insight about the test cases that gave clock cycles.

We have no testcases that track clock cycles and there is no function in the testbench that does this. We do not have any verification requirements to measure clock cycles, so this was not added. Why do you need it?

@pascalgouedo
Copy link
Contributor

Even if clock cycles are not useful for verification purpose, we do measure them in the benchmarks.

You can find a simple example of that in matmul_32b_int one.

@Attaullah786
Copy link
Author

I implemented a dynamic w but branch predictor in cv32e40p core. Now I have to analyze whether the branch predictor reduced the execution time for some branch instructions or not. So I need that execution time. Is there any process in the core already to find it?

@MikeOpenHWGroup
Copy link
Member

The CV32E40P implements the mcycle and minstret CSRs. Your test-program could query these.

@pascalgouedo
Copy link
Contributor

I implemented a dynamic w but branch predictor in cv32e40p core. Now I have to analyze whether the branch predictor reduced the execution time for some branch instructions or not. So I need that execution time. Is there any process in the core already to find it?

Already answered above with matmul_32b_int example.
To characterize your branch predictor, I advise you to use Embench Iot 0.5 that you can launch on uvm test-bench.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type:Question For general questions
Projects
None yet
Development

No branches or pull requests

3 participants