© 2000 Morgan Kaufman Overheads for Computers as Components Processes and operating systems zTelephone answering machine.
© 2000 Morgan Kaufman Overheads for Computers as Components Theory of operation zCompress audio using adaptive differential pulse code modulation (ADPCM). time analog ADPCM
© 2000 Morgan Kaufman Overheads for Computers as Components ADPCM coding zCoded in a small alphabet with positive and negative values. y{-3,-2,-1,1,2,3} zMinimize error between predicted value and actual signal value.
© 2000 Morgan Kaufman Overheads for Computers as Components ADPCM compression system quantizer integrator inverse quantizer encoder inverse quantizer integrator decoder samples
© 2000 Morgan Kaufman Overheads for Computers as Components Telephone system terms zSubscriber line: line to phone. zCentral office: telephone switching system. zOff-hook: phone active. zOn-hook: phone inactive.
© 2000 Morgan Kaufman Overheads for Computers as Components Real and simulated subscriber line zReal subscriber line: y90V RMS ringing signal; ycompanded analog signals; ylightning protection, etc. zSimulated subscriber line: ymicrophone input; yspeaker output; yswitches for ring, off-hook, etc.
© 2000 Morgan Kaufman Overheads for Computers as Components Requirements
© 2000 Morgan Kaufman Overheads for Computers as Components Comments on analysis zDRAM requirement influenced by DRAM price. zDetails of user interface protocol could be tested on a PC-based prototype.
© 2000 Morgan Kaufman Overheads for Computers as Components Answering machine class diagram Microphone* Line-in* Line-out* Buttons* Speaker* Lights Playback ControlsRecord Outgoing- message Incoming- message * * * *
© 2000 Morgan Kaufman Overheads for Computers as Components Physical interface classes Line-out* sample() pick-up() Microphone* sample() Line-in* sample() ring-indicator() Speaker* sample() Buttons* record-OGM play Lights* messages num-messages
© 2000 Morgan Kaufman Overheads for Computers as Components Message classes Message length start-adrs next-msg samples Incoming-message msg-time Outgoing-message length=30 sec
© 2000 Morgan Kaufman Overheads for Computers as Components Operational classes Controls operate() Record record-msg() Playback playback-msg()
© 2000 Morgan Kaufman Overheads for Computers as Components Software components zFront panel module. zSpeaker module. zTelephone line module. zTelephone input and output modules. zCompression module. zDecompression module.
© 2000 Morgan Kaufman Overheads for Computers as Components Controls activate behavior Compute buttons, line activations Activations? Play OGMRecord OGMPlay ICMEraseAnswer Wait for timeout Erase Play OGM Allocate ICM Record ICM
© 2000 Morgan Kaufman Overheads for Computers as Components Record-msg/playback-msg behaviors nextadrs = 0 msg.samples[nextadrs] = sample(source) End(source) F T record-msg nextadrs = 0 speaker.samples() = msg.samples[nextadrs]; nextadrs++ nextadrs=msg.length F T playback-msg
© 2000 Morgan Kaufman Overheads for Computers as Components Hardware platform zCPU. zMemory. zFront panel. z2 A/Ds: ysubscriber line, microphone. z2 D/A: ysubscriber line, speaker.
© 2000 Morgan Kaufman Overheads for Computers as Components Component design and testing zMust test performance as well as testing. yCompression time shouldn’t dominate other tasks. zTest for error conditions: ymemory overflow; ytry to delete empty message set, etc.
© 2000 Morgan Kaufman Overheads for Computers as Components System integration and testing zCan test partial integration on host platform; full testing requires integration on target platform. zSimulate phone line for tests: yit’s legal; yeasier to produce test conditions.