The philosophy of BB
The philosophy of BB
- A BB is either simple or complex. It should never be complicated.
- The difference between complex and complicated is that complex can always be broken down in a sum of simple things.
- And complicated is well .. complicated. For instance a lot of software is complicated.
- People familiar with the evolution of electronics, remember the SSI, MSI, LSI stages and can put the heydey of BBs as the days of Bit Slice.
- A bit slice was built with simple elements and a bit slice was itself the building block used in upper dsp Building Blocks, dsp functional Blocks (FFTer, Filter, Correlator), dsp CPU or even the DEC mini-computer.
- For instance a standard dsp CPU (called DSP thanks to TI) are made of 4 standard bit slice blocks (ALU, MULT, AGU, LSU) + memories + I/O Space.
- A very good DSP design should have a maximum of 3 hierarchical levels (MSI, LSI, Final product).
- Anything above 5 levels is prohibitive and should not be tackled here.
- Because we rely on a hierarchy of blocks, testing of each block is vital to the whole process.
- A bug in a low level block is a disaster since it will be repeated hundred of times over several final products.
- Same thing for an inefficient block but with a twist.
- Contrary to a bug, efficiency is a relative term.
- You can redesign the BB with a different name.
- (for sophisticated designer) you can redesign an upward compatible block with the same name
- but then you need a very hefty test suite.
- So what about repairing a bug?
- In my book, a bug is both visible and NOT compatible with itself.
- Hence if you repair a bug you don't know the result; somewhere down the line somebody wrote software taking this bug into account or somebody used the BB taking the bug into account.
- This is the INTRINSIC problem to the BB approach. You are going BOTTOM UP in the definition. So forget about reparing bugs. Instead create another BB.
No comments:
Post a Comment