Two Ways to Requirements
I have written three page rants about requirements in the past. I will not subject my gentile readers to that torture in this blog.
Basically there are two ways to do requirements, full out or back of the envelope. If you do full out you have to read the books, get a database, hire a consultant and implement a change request procedure. Anything that will fit on one page is back of the envelope. In my experience, any process in between is a setup for failure.
For this project every thing below this line is “the back of my envelope”.
This will be a symmetric multicore system. All the processors look the same, and there is more than one. There is maximum limit.
The hardware will be a generic as possible, but we may make some hardware changes.
- The software must use all of the available processors as efficiently as possible.
- The applications will be generic enough to test on a host PC, then move to the multicore chip.
- The solution for multicore software does not have to be backwards compatible with legacy software, operating systems or libraries.
- The new solution must use existing C or C++ compilers.
- The system will make tasks run in parallel.
- A simplified interprocess communication is needed.
- the system should spread the interrupts among the processors.
- We don’t need to scale to 200 processors, something that works with 2-8 is OK for now.
- Coupling between the hardware and software should be minimized, but can not be avoided.
- Application level awareness of multiple processors is bad.
- We must measure the performance.