Hello there,
I'am developing a job schedule policy for Mali T628. But I am confused about Jos Slot and Address Space:
1. What does Job Slot mean? What is the relationship between job slot and shader core?
Mali T628 has 8 shader core. But I get the amount of job slot is 3 ( by printk gpu_props->num_job_slots).
2. What does Address Space mean?
Does it mean a space in memory to store process's context during context swicth?
Is context switch by hardware?
3. What the GPU do during soft and hard stop a job?
Thank you!
Thank you very much about your professional helps! @Chris Varnsverry @Johan Gronqvist @timhar01 @Peter Harris .
According to your answers, I further understand job slot, shader cores, adress space, but I'm not sure it's right or not. Please give me more advice.
1. Job slot is a concept in both driver and hardware. It's used to classify the job into 3 types so that different type of job can be separetly scheduled for parallel, load balancing, etc.
2. Shader core consists of several pipelines(ALU, LoadStore, Texture). All shader cores are same and can compute any type of job.
Shader cores are grouped in core group for efficiency. To support core group, mmu, l2 cache and AMBA interface are doubled.
3. Address Space is like virtual memory in cpu. Different context( kbase_context in driver) has different address space.
A context is associated with a cpu process, and a cpu process may have several context in gpu.Every time a cpu process open the /dev/mali, a context is created in driver.
4. Soft/hard stop is used to manage job life cycle. It's all done in hardware.
Some more questions:
1. Does the gpu save and restore job's state (registers, mmu, etc) automaticly during soft stop and resume a job? Where does the state save?
2. Dose Mali T628 support preempt? That is to say, can the driver pause a running job to run another one, and resume the paused one later?
3. Are gpu commands stored in per-context address space?
Thank you all again!
Hi wlc,
Apologies for the late response.
Your current understanding is correct on all points.
For your further questions:
1. This is too low level to go into detail on the forum. If you are an ARM licensee, you should ask those questions through the standard ARM support method
2. Yes
3. Yes
Thanks again, and let us know if you have further questions.
Kind Regards,
Michael McGeagh