&6 .XELDWRZLF]/HF &6 *UDGXDWH&RPSXWHU$UFKLWHFWXUH/HFWXUH&RQWUROIORZDQGLQWHUUXSWVFRQW·G6RIWZDUH6FKHGXOLQJDURXQGKD]DUGV6HSWHPEHU 3URI-RKQ.XELDWRZLF]&6 .XELDWRZLF]/HF 5HYLHZ&RQWURO)ORZDQG([FHSWLRQV 5,6&YV&,6&ZDVDERXWWKHLQWHJUDWHGV\VWHP·VYLHZQRWDERXWUHPRYLQJLQVWUXFWLRQV² 7KHVHQDPHVZHUHDELWXQIRUWXQDWHLQUHWURVSHFWVLQFHWKH\FDXVHGVRPH´UHOLJLRXVµDUJXPHQWV² 5,6&⇒ LQWHOOLJHQWKDUGZDUHVRIWZDUHWUDGHRIIV GULYHQE\TXDQWLWDWLYHPHDVXUHPHQW ZLWKUHDOEHQFKPDUNV² (QGWRHQGYLHZSRLQW &RQWUROIORZLVWKHELJJHVW SUREOHPIRUFRPSXWHUDUFKLWHFWV7KLVLVJHWWLQJZRUVH² 0RGHUQFRPSXWHUODQJXDJHVVXFKDV&DQG-DYDXVHUPDQ\VPDOOHUSURFHGXUHFDOOVPHWKRGLQYRFDWLRQV² 1HWZRUNHGGHYLFHVQHHGWRUHVSRQGTXLFNO\WRPDQ\H[WHUQDOHYHQWV&6 .XELDWRZLF]/HF 5HYLHZ$´]HURF\FOHµMXPS :KDWUHDOO\KDVWREHGRQHDWUXQWLPH"² 2QFHDQLQVWUXFWLRQKDVEHHQGHWHFWHGDVDMXPSRU-$/ZHPLJKWUHFRGHLWLQWKHLQWHUQDOFDFKH² 9HU\OLPLWHGIRUPRIG\QDPLFFRPSLODWLRQ" 8VHRI´3UHGHFRGHGµLQVWUXFWLRQFDFKH² &DOOHG´EUDQFKIROGLQJµLQWKH%HOO/DEV&5,63SURFHVVRU² 2ULJLQDO&5,63FDFKHKDGWZRDGGUHVVHVDQGFRXOGWKXVIROGDFRPSOHWHEUDQFKLQWRWKHSUHYLRXVLQVWUXFWLRQ² 1RWLFHWKDW-$/LQWURGXFHVDVWUXFWXUDOKD]DUGRQZULWHand r3,r1,r5addi r2,r3,#4sub r4,r2,r1jal doitsubi r1,r1,#1$sub r4,r2,r1 doitaddi r2,r3,#4 A+81sub r4,r2,r1/--- ---and r3,r1,r5 A+41subi r1,r1,#1 A+201,QWHUQDO&DFKHVWDWH&6 .XELDWRZLF]/HF 0HPRU\$FFHVV:ULWH%DFN,QVWUXFWLRQ)HWFK,QVWU'HFRGH5HJ)HWFK([HFXWH$GGU&DOF$/85HJ)LOH08; 08;'DWD0HPRU\08;6LJQ([WHQG%UDQFK"5' 5' 5':%'DWD56,PP08;,'(;0(0:%(;0(0,),'$GGHU565HWXUQ3&$GGU,PP2SFRGH'HFRGHG&DFKH$GGUHVV,QFUHDVHVFORFNF\FOHE\QRPRUHWKDQRQH08;GHOD\,QWURGXFHVVWUXFWXUDOKD]DUGRQZULWHIRU-$/KRZHYHU&6 .XELDWRZLF]/HF :K\QRWGRWKLVIRUEUDQFKHV"RULJLQDO&5,63LGHDDSSOLHGWR'/;,QWHUQDO&DFKHVWDWHand r3,r1,r5addi r2,r3,#4sub r4,r2,r1bne r4,loopsubi r1,r1,#1$sub r4,r2,r1addi r2,r3,#4sub r4,r2,r1---and r3,r1,r5subi r1,r1,#11%Q5 11A+16A+8---A+4A+20N/Aloop---N/AN/A1H[W%UDQFK$ 'HOD\VORWHOLPLQDWHGJRRG %UDQFKKDVEHHQ´IROGHGµLQWRVXELQVWUXFWLRQJRRG ,QFUHDVHVVL]HRILQVWUXFWLRQFDFKHQRWVRJRRG 5HTXLUHVDQRWKHUUHDGSRUWLQUHJLVWHUILOH%$' 3RWHQWLDOO\GRXEOHVFORFNSHULRG5HDOO\%$'&6 .XELDWRZLF]/HF 0HPRU\$FFHVV:ULWH%DFN,QVWUXFWLRQ)HWFK´,QVWU'HFRGH5HJ)HWFKµ([HFXWH$GGU&DOF$/808; 08;'DWD0HPRU\08;6LJQ([WHQG%UDQFK"5' 5' 5':%'DWD56,PP08;,'(;0(0:%(;0(0,),'565HWXUQ3&$GGU'HFRGHG&DFKH$GGUHVV0LJKWGRXEOHFORFNSHULRG PXVWDFFHVVFDFKHDQGUHJ&RXOGEHEHWWHULIKDGDUFKLWHFWXUHZLWKFRQGLWLRQFRGHV1H[W3&%UDQFK3&5HJ)LOH%U5Q!&6 .XELDWRZLF]/HF :D\RIORRNLQJDWWLPLQJ,QVWUXFWLRQ&DFKH$FFHVV%UDQFK5HJLVWHU/RRNXS0X[5HJLVWHUILOHDFFHVVWLPHPLJKWEHFORVHWRRULJLQDOFORFNSHULRG&ORFN5HDG\WRODWFKQHZ3&%HJLQQLQJRI,)HWFK&6 .XELDWRZLF]/HF +RZHYHURQHFRXOGXVHWKHILUVWWHFKQLTXHWRUHIOHFW35(',&7,216DQGUHPRYHGHOD\VORWV 7KLVFDXVHVWKHQH[WLQVWUXFWLRQWREHLPPHGLDWHO\IHWFKHGIURPEUDQFKGHVWLQDWLRQSUHGLFWWDNHQ ,IEUDQFKHQGVXSEHLQJQRWWDNLQJWKHQVTXDVKGHVWLQDWLRQLQVWUXFWLRQDQGUHVWDUWSLSHOLQHDWDGGUHVV$,QWHUQDO&DFKHVWDWHand r3,r1,r5addi r2,r3,#4sub r4,r2,r1bne r4,loopsubi r1,r1,#1$sub r4,r2,r1addi r2,r3,#4sub r4,r2,r1bne loopand r3,r1,r5subi r1,r1,#111111A+12A+8loopA+4A+201H[W$&6 .XELDWRZLF]/HF %RRNWDONVDERXW5WDNHQIURPSDJH 2QDWDNHQEUDQFKWKHUHLVDRQHF\FOHGHOD\VORWIROORZHGE\WZRORVWF\FOHVQXOOLILHGLQVWV² 5HFDOOIURPSUHUHT TXL]GHOD\VORWLVDQLQVWUXFWLRQVHWIHDWXUH 2QDQRQWDNHQEUDQFKWKHUHLVVLPSO\DGHOD\VORWIROORZLQJWZRF\FOHVQRW ORVW 7KLVLVEDGIRUORRSV:HFRXOG² 3UHGLFWWDNHQDQGNHHSGHOD\VORW² 8VHRXUSUHGHFRGHGFDFKHWHFKQLTXHWRFRPSOHWHO\UHPRYH'6 &ORFN1XPEHU,QVWUXFWLRQ %UDQFKLQVW ,) ,6 5) (; ') '6 7& :% 'HOD\6ORW ,) ,6 5) (; ') '6 7& :%%UDQFK,QVW ,) ,6 QXOO QXOO QXOO QXOO QXOO%UDQFK,QVW ,) QXOO QXOO QXOO QXOO QXOO%UDQFK7DUJ ,) ,6 5) (; ') &6 .XELDWRZLF]/HF ([FHSWLRQVDQG,QWHUUXSWV+DUGZDUH&6 .XELDWRZLF]/HF ([DPSOH'HYLFH,QWHUUXSW6D\DUULYDORIQHWZRUNPHVVDJH…add r1,r2,r3subi r4,r1,#4slli r4,r4,#2Hiccup(!)lw r2,0(r4)lw r3,4(r4)add r2,r2,r3sw 8(r4),r2…Raise priorityReenable All IntsSave registers…lw r1,20(r0)lw r2,0(r1)addi r3,r0,#5sw 0(r1),r3…Restore registersClear current IntDisable All IntsRestore priorityRTE([WHUQDO,QWHUUXSW3& VDYHG'LVDEOH $OO ,QWV6XSHUYLVRU 0RGH5HVWRUH 3&8VHU 0RGH´,QWHUUXSW+DQGOHUµ&6 .XELDWRZLF]/HF Disable Network Intr…subi r4,r1,#4slli r4,r4,#2lw r2,0(r4)lw r3,4(r4)add r2,r2,r3sw 8(r4),r2lw r1,12(r0)beq
View Full Document