Computer Architecture Asgari Moghadam by sSO47VQ4

VIEWS: 0 PAGES: 173

									‫سيستمهاي دودوي ي‬
‫نمايش دا ده ها‬

                        ‫•انواع دادهها‬

                            ‫•مكملها‬

                 ‫•نمايش با مميز ثابت‬

                 ‫•نمايش با مميز شناور‬

                  ‫•ديگر كدهاي باينري‬

                         ‫•كشف خطا‬
           ‫نمايش دا ده ها‬

                             ‫اطالعاتي كه يك كامپيوتر با ان سر و كار دارد:‬
                                                     ‫• داده ها‬
                ‫- داده هاي عددي (اعداد طبيعي و حقيقي)‬
                   ‫- داده هاي غير عددي (حروف ،عالئم)‬
                                  ‫• ارتباط بين عناصر داده اي‬
‫- ساختمان هاي داده اي(ليست هاي پيوندي،درخت ها و....)‬
                                        ‫• برنامه ها (دستورات)‬
                             ‫نمايش عددي دادهها‬

                                                                ‫دادههاي عددي.‬       ‫•‬
                                                        ‫اعداد(طبيعي ،حقيقي)‬     ‫–‬
                                                             ‫سيستم نمايش اعداد.‬     ‫•‬
 ‫– سيستم نمايشي كه در ان مكان هر رقم داراي وزن نيست(مثل سيستم اعداد يوناني).‬
                       ‫– سيستم هائي كه هر رقم در نمايش يك عدد داراي وزن است.‬
     ‫‪ ‬در اين سيستم به هر رقم نسبت به جايگاه ان يك وزن اختصاص مي دهيم.‬
‫‪ ‬سيستم هاي دهدهي ،دودوئي و هگزادسيمال مثالهاي ي از اين سيستم ها هستند.‬
                                ‫نمايش عددي دادها‬

                                                               ‫•اگر پاية هر سيستم ‪R‬باشد‬
                                    ‫–بايد از 1-‪R‬رقم براي نمايش اعداد استفاده كرد.‬
                                                                          ‫–مثال:‬
‫‪AR = an-1 an-2 ... a1 a0 .a-1…a-m‬‬
                  ‫نقطه در اينجا قسمت طبيعي و كسري عدد را از يكديگر جدا كرده است.‬
                                                          ‫–ارزش ‪AR‬برابر است با:‬
                ‫1‪n ‬‬
‫= ) ‪V(AR‬‬        ‫‪a R‬‬
               ‫‪i  m‬‬
                        ‫‪i‬‬
                            ‫‪i‬‬



‫,‪R = 10 Decimal number system‬‬         ‫‪R = 2 Binary‬‬
‫,‪R = 8 Octal‬‬                          ‫‪R = 16 Hexadecimal‬‬
                                       ‫نمايش عددي دادها‬

                                              ‫•مبناي انتخاب سيستم نمايش اعداد زمان و هزينه ميباشد:‬
                                         ‫–هزينة ساخت سخت افزار(‪CPU،ALU‬و كانالهاي ارتباطي)‬
                                                                  ‫–زمان الزم براي پردازش داده ها‬


                                                                        ‫•جداول الزم براي جمع رياضي اعداد‬
                                                   ‫–در سيستم هائي كه مكان رقم در انها داراي وزن نيست:‬
                         ‫•جداول چنين سيستم هاي ي پايان ناپذير است و بنابراين غير قابل ساخت مي باشند.‬
                                                          ‫•در سيستم هائي كه مكان رقم داراي وزن است:‬
‫–جدول جمع دو رقم براي چنين سيستمهائي پايان پذير است، اما هر چه اندازة جدول كوچك تر باشد ،ساخت ان‬
                       ‫مقرون به صرفه تر است.بنابراين در چنين شرايطي مبناي 2مرجح تر از مبناي 01است.‬
                        ‫نمايش عددي دادها‬

                          ‫جداول الزم براي جمع اعداد در دو سيستم دودوئي و ده دهي‬
                                                ‫9 8 7 6 5 4 3 2 1 0‬
                                            ‫0‬   ‫9 8 7 6 5 4 3 2 1 0‬
                                            ‫1‬   ‫01 9 8 7 6 5 4 3 2 1‬
                                            ‫2‬   ‫1101 9 8 7 6 5 4 3 2‬
                                            ‫3‬   ‫211101 9 8 7 6 5 4 3‬
                                            ‫4‬   ‫31211101 9 8 7 6 5 4‬
    ‫0‬   ‫1‬                                   ‫5‬   ‫4131211101 9 8 7 6 5‬
‫0‬   ‫0‬   ‫1‬                                   ‫6‬   ‫514131211101 9 8 7 6‬
                                            ‫7‬   ‫61514131211101 9 8 7‬
‫1‬   ‫1‬   ‫01‬                                  ‫8‬   ‫7161514131211101 9 8‬
                                            ‫9‬   ‫817161514131211101 9‬

‫جدول جمع اعداد دودوئي‬                                   ‫جدول براي جمع اعداد دهدهي‬
        ‫مقايسة اعداد در چهار مبنا‬

      ‫نمايش ارقام در مبناهاي01،2،8،61‬
‫‪Decimal Binary Octal Hexadecimal‬‬
 ‫00‬        ‫0000‬       ‫00‬          ‫0‬
 ‫10‬        ‫1000‬       ‫10‬          ‫1‬
 ‫20‬        ‫0100‬       ‫20‬          ‫2‬
 ‫30‬        ‫1100‬       ‫30‬          ‫3‬
 ‫40‬        ‫0010‬       ‫40‬          ‫4‬
 ‫50‬        ‫1010‬       ‫50‬          ‫5‬
 ‫60‬        ‫0110‬       ‫60‬          ‫6‬
 ‫70‬        ‫1110‬       ‫70‬          ‫7‬
 ‫80‬        ‫0001‬       ‫01‬          ‫8‬
 ‫90‬        ‫1001‬       ‫11‬          ‫9‬
 ‫01‬        ‫0101‬       ‫21‬          ‫‪A‬‬
 ‫11‬        ‫1101‬       ‫31‬          ‫‪B‬‬
 ‫21‬        ‫0011‬       ‫41‬          ‫‪C‬‬
 ‫31‬        ‫1011‬       ‫51‬          ‫‪D‬‬
 ‫41‬        ‫0111‬       ‫61‬          ‫‪E‬‬
 ‫51‬        ‫1111‬       ‫71‬          ‫‪F‬‬
                     ‫تبديل بين مبناهاي 2،61و8‬

‫تبديل بين مبناهاي8،2و61به سادگي دسته بندي رقم ها و جايگزيني انها با رقمهاي متناظر در سيستم ديگر مي باشد.‬




‫1‬   ‫2‬     ‫7‬     ‫5‬     ‫4‬     ‫3‬                                            ‫‪Octal‬‬
‫1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1‬                                         ‫‪Binary‬‬
   ‫‪A‬‬        ‫‪F‬‬      ‫6‬       ‫3‬                                             ‫‪Hexa‬‬
            ‫تبديل اعداد در مبناي 01به مبناهاي ديگر‬

                                              ‫•تبديل از مبناي ‪R‬به مبناي 01‬



             ‫‪A = an-1 an-2 an-3 … a0 . a-1 … a-m‬‬
           ‫‪V(A) =  ak Rk‬‬
‫1-8 ‪(736.4)8 = 7 x 82 + 3 x 81 + 6 x 80 + 4 x‬‬
         ‫01)5.874( = 8/4 + 1 ‪= 7 x 64 + 3 x 8 + 6 x‬‬
‫01)45( = ... = 2)011011(‬
‫01)587.6( = ... = 2)111.011(‬
‫01)342( = ... = 61)3‪(F‬‬
‫01)................. 307307875.0( = ... = 6)523.0(‬
                        ‫تبديل دسيمال به مبناي ‪R‬‬

‫•اعداد را به دو قسمت صحيح و كسري تقسيم مي كنيم و هر قسمت را جداگانه تبديل مي كنيم‬

                                                          ‫•تبديل قسمت صحيح به مبناي ‪.R‬‬
                   ‫–با تقسيمات متوالي بر‪R‬و گرد اوري باقيمانده ها به عنوان رقم هاي مبناي ‪.R‬‬
                                                          ‫•تبديل قسمت كسري به مبناي ‪.R‬‬
        ‫–با ضرب متوالي در ‪R‬و گرد اوري اعداد صحيح توليد شده به عنوان رقم هاي مبناي جديد ‪R‬‬
                        ‫تبديل دسيمال به مبناي ‪R‬‬
                   ‫مثال: عدد 5786.14 در مبناي 01 ميباشد. انرا به مبناي 2 تبديل كنيد.‬
‫حل: ابتدا قسمت اعشار را از صحيح جدا كرده عمل تبديل را براي هر يك جداگانه انجام ميدهيم.‬

                                                             ‫5786.0 = اعشار‬
                                                             ‫5786.0‬
         ‫14 = صحيح‬                                           ‫‪x‬‬    ‫2‬
         ‫14‬                                                  ‫0573.1‬
         ‫02‬    ‫1‬                                             ‫‪x‬‬    ‫2‬
         ‫01‬    ‫0‬                                             ‫0057.0‬
          ‫5‬    ‫0‬                                             ‫‪x‬‬    ‫2‬
          ‫2‬    ‫1‬                                             ‫0005.1‬
          ‫1‬    ‫0‬                                             ‫‪x‬‬    ‫2‬
          ‫0‬    ‫1‬                                             ‫0000.1‬

      ‫01)14(‬       ‫2)100101( =‬                              ‫01)5786.0(‬      ‫2)1101.0( =‬

                   ‫2)1101.100101( = 01)5786.14(‬
                                   ‫مكمل اعداد‬

                                   ‫دو نوع مكمل براي هر عدد در مبناي ‪R‬وجود دارد:‬        ‫•‬
                                                                     ‫مكمل ‪R‬‬        ‫-‬
                                                                    ‫مكمل1-‪R‬‬        ‫-‬
                               ‫در مكمل 1-‪R‬از هر رقم مقدار(1-‪)R‬راكسر ميكنيم.‬            ‫•‬
                                                ‫مكمل 9عدد 01538برابر است با01461‬   ‫–‬
                                               ‫مكمل 1عدد20101براربر است با21010‬    ‫–‬
‫براي يافتن مكمل ‪R‬يك عدد ابتدا مكمل 1-‪ R‬ان عدد را محاسبه كرده سپس مقدار1را با ان‬        ‫•‬
                                                                  ‫جمع مي كنيم.‬
                                      ‫مكمل 01عدد01538برابر است با 1+01461=01561‬    ‫–‬
                                    ‫مكمل 2عدد 20101برابر است با 1+21010 = 20110‬    ‫–‬
                                       ‫اعداد با مميز ثابت‬

                                                  ‫• اعداد اعشاري را مي توان به دو صورت نمايش داد:‬
                                                                      ‫– اعداد اعشاري با مميز ثابت.‬
                                                                     ‫– اعداد اعشاري با مميز شناور.‬
                                                            ‫• نمايش اعداد دودوئي با روش مميز ثابت:‬
‫‪X = xnxn-1xn-2 ... x1x0 . x-1x-2 ... x-m‬‬

‫• نحوة نمايش اعداد عالمتدار به اينصورت است كه از باارزشترين بيت براي عالمتگذاري استفاده ميكنيم. اگر‬
                                                ‫1=‪ Xn‬عدد منفي و اگر 0=‪ Xn‬عدد مثبت است.‬
                                        ‫اعداد عالمت دار‬

‫• در حالت طبيعي سيستم اعداد انتخاب شده براي نمايش اعداد بايد بتواند هم اعداد بدون عالمت و هم اعداد‬
                                                                           ‫عالمت دار را نمايش دهد.‬
                                                  ‫• سه روش زير براي نمايش اعداد عالمت دار وجود دارد:‬
                                                                    ‫– نمايش بصورت اندازه-عالمت.‬
                                                                      ‫– نمايش بصورت مكمل يك.‬
                                                                       ‫– نمايش بصورت مكمل دو.‬
                                       ‫اعداد عالمت دار‬

         ‫مثال:اعداد 9+ و 9- را به صورت يك عدد باينري مبناي 2 با استفاده از 3روش فوق نمايش دهيد:‬
                                                      ‫تنها يك روش براي نمايش عدد 9+ وجود دارد.‬
‫1000100→9+‬

                                                            ‫براي عدد 9-سه روش نمايش وجود دارد:‬
                                                          ‫روش اندازه-عالمت: 100100 1‬
                                                             ‫روش مكمل يك:011011 1‬
                                                             ‫روش مكمل دو: 111011 1‬
          ‫نمايش اعداد با مميز ثابت‬

‫• بطور كلي در كامپيوتر ها اعداد با مميز ثابت به دو صورت نمايش داده مي شوند:‬
                               ‫– فقط قسمت كسري ان نمايش داده مي شود..‬
                                                 ‫– فقط قسمت صحيح ان.‬
                         ‫خصايص سه روش نمايش اعداد عالمت دار‬

                                            ‫• مكمل يك عدد عالمت دار در هر يك از 3سيستم نمايش:‬
                               ‫– اندازه-عالمت:براي مكمل كردن كافي است فقط بيت عالمت را معكوس كنيم.‬
                              ‫– مكمل يك: تمام بيت ها را كه شامل بيت عالمت هم ميشود را مكمل مي كنيم.‬
                                                         ‫– مكمل دو:از عدد مربوطه مكمل دو مي گيريم.‬




‫‪X = xn xn-1 ... x0 . x-1 ... x-m‬‬
                ‫خصايص سه روش نمايش اعداد عالمت دار‬

      ‫– مقايسه بزرگ ترين و كوچك ترين عدد در هر يك از 3روش و همچنين نمايش 0در انها:‬
                               ‫عالمتدار‬

‫1 ... 11.11 ... 110 ‪Max: 2n - 2-m‬‬
‫1 ... 11.11 ... 111 )‪Min: -(2n - 2-m‬‬
‫0+ :‪Zero‬‬         ‫0 ... 00.00 ... 000‬
        ‫0-‬       ‫0 ... 00.00 ... 001‬

             ‫نمايش عالمت به كمك مكمل 1‬
‫‪Max: 2n - 2-m‬‬    ‫1 ... 11.11 ... 110‬
‫2(- :‪Min‬‬‫0 ... 00.00 ... 001 )‪n - 2-m‬‬

‫0+ :‪Zero‬‬         ‫0 ... 00.00 ... 000‬
         ‫0-‬      ‫1 ... 11.11 ... 111‬
             ‫نمايش عالمت به كمك مكمل 2‬
‫‪Max: 2n - 2-m‬‬     ‫1 ... 11.11 ... 110‬
‫‪Min: -2n‬‬          ‫0 ... 00.00 ... 001‬
‫0 :‪Zero‬‬           ‫0 ... 00.00 ... 000‬
                          ‫وزن ارقام در سيستم مكمل دو‬

                     ‫• وزن ارقام درنمايش مكمل دو اعداد عالمت دار به صورت زير تعريف ميشود:‬
                                                             ‫– بيت عالمت داراي وزن منفي است.‬
                                  ‫– وزن بقية بيت ها مشابه حالت اعداد بدون عالمت محاسبه مي شود:‬


‫0‪X = xn xn-1 ... x‬‬


                        ‫‪‬‬
                         ‫1-‪n‬‬
‫+ ‪ V(X) = - xn  2n‬‬           ‫‪xi  2i‬‬
                         ‫0=‪i‬‬
                            ‫جمع اعداد عالمت دار در سيستم اندازه-عالمت‬

                                                                   ‫عالمت دو عدد با يكدگر مقايسه مي شوند.‬     ‫1.‬
 ‫اگر عالمتها يكسان بود،مقادير دو عدد با يكديگر جمع ميشوند.و پس از ان وجود سرريز بررسي مي شود.‬                ‫2.‬
                               ‫اگر عالمت دو عدد متفاوت بود،عدد كوچك تر از عدد بزرگ تر كم مي شود.‬             ‫3.‬
‫عالم ت دو ع دد در ح التي ك ه عالم ت دو ع دد ب ا يك ديگر برابرن د براب ر ب ا عالم ت يك ي از دو ع دد اس ت.در‬   ‫4.‬
                                 ‫حالتي كه عالمتها متفاوتند عالمت حاصلجمع عالمت عدد بزرگ تر است.‬
              ‫جمع اعداد عالمت دار در سيستم اندازه عالمت‬

                                                                     ‫چند مثال‬


            ‫9+6‬                                       ‫9 + 6-‬
              ‫6‬   ‫0110‬                          ‫9‬    ‫1001‬
           ‫9 )+‬   ‫1001‬                        ‫6)-‬    ‫0110‬
            ‫51‬    ‫11110 >- 1111‬                 ‫3‬    ‫11000 >- 1100‬

             ‫)9 -( + 6‬                                ‫)9-( + 6-‬
              ‫1001 9‬                               ‫0110 6‬
           ‫0110 6 )-‬                            ‫1001 9 )+‬
            ‫11001 >- 1100 3 -‬                   ‫11111 >- 1111 51-‬
‫‪Overflow‬‬   ‫)9-( + )9-( ‪9 + 9 or‬‬
                       ‫جمع دو عدد عالمت دار در نمايش مكمل دو‬

‫• دو عدد همراه با بيت عالمتشان بايكديگر جمع مي شوند و از رقم نقلي خروجي از پر ارزش ترين بيت صرفه‬
                                                                                  ‫نظر مي شود.‬
                  ‫0110 0 6‬                                   ‫6-‬          ‫0101 1‬                            ‫مثال‬
               ‫1001 0 9 )+‬                                 ‫9 )+‬          ‫1001 0‬
                 ‫1111 0 51‬                                    ‫3‬          ‫1100 0‬

                  ‫0110 0 6‬                                    ‫9-‬    ‫1110 1‬
              ‫1110 1 9- )+‬                                 ‫9- )+‬    ‫1110 1‬
                 ‫1011 1 3-‬                                   ‫0111 0)1( 81-‬
                                                                             ‫1-‪x’n-1y’n-1sn‬‬
                                                                             ‫)‪(cn-1  cn‬‬

                  ‫1001 0 9‬                            ‫‪overflow‬‬
               ‫1001 0 9 )+‬                                   ‫دوعملوند داراي يك عالمتند ولي عالمت حاصل جمع با انها متفاوت است.‬
                 ‫0100 1 81‬                                  ‫‪xn-1yn-1s’n-1 + x’n-1y’n-1sn-1 = cn-1 cn‬‬
                                       ‫1-‪xn-1yn s’n‬‬
                                       ‫)‪(cn-1  cn‬‬
                       ‫جمع دو عدد نمايش داده شده در سيستم مكمل يك‬

‫دو عدد را همراه با بيت عالمتشان جمع مي كنيم.اگر يك رقم نقلي از پر ارزش ترين بيت خارج شد حاصل جمع را با‬
                                                     ‫1جمع ميكنيم و از رقم نقلي صرفه نظر مي كنيم.‬
                                                           ‫‪end-around carry‬‬              ‫مثال‬
                          ‫6‬   ‫0110 0‬
                  ‫)+‬     ‫9-‬   ‫0110 1‬                    ‫)+‬
                         ‫3-‬   ‫0011 1‬
                                                         ‫)+‬

                                                               ‫‪not overflow‬‬       ‫0 = )‪(cn-1  cn‬‬


                         ‫0110 1 9-‬                             ‫0 9‬    ‫1001‬
                 ‫)+‬      ‫0110 1 9-‬                       ‫)+‬    ‫0 9‬    ‫1001‬
                           ‫0011 0)1(‬                             ‫0100)1( 1‬
                 ‫)+‬                ‫1‬
                              ‫1011 0‬
                                                     ‫‪overflow‬‬
                                                      ‫)‪(cn-1  cn‬‬
                  ‫مقايسة نمايش اعداد عالمت دار در سه سيستم‬

                                                                         ‫• سادگي در منفي كردن‬
‫‪S + M > 1’s Complement > 2’s Complement‬‬




                                                                 ‫• پياده سازي توسط سختافزار‬
                              ‫– سيستم اندازه عالمت به يك تفريق كننده و يك جمع كننده نياز دارد.‬
                          ‫– در سيستم هاي مكمل دو و مكمل يك ،فقط به يك جمع كننده نياز هست.‬
                                                                        ‫• سرعت انجام محاسبات‬

‫)‪2’s Complement > 1’s Complement(end-around C‬‬
‫مقايسة نمايش اعداد عالمت دار در سه سيستم‬

                                                ‫• تشخيص عدد صفر‬
                              ‫– سيستم مكمل دو از همه سريعتر است.‬
                                    ‫تفريق‬

                                                                 ‫• تفريق در سيستم مكمل دو‬
   ‫– مكمل دو، تفريق كننده(همراه با بيت عالمت)را ميگيريم و حاصل را با تفريق شونده جمع ميكنيم.‬



‫‪(A)-(-B) =(A)+ B‬‬
‫)‪(A)- B=(A)+( -B‬‬
                  ‫نمايش اعداد با مميز شناور‬

                              ‫• در اين نمايش مكان مميز قسمت كسري ثابت نيست.‬
                                 ‫• طول عدد قابل نمايش در اين روش وسيع است.‬
                         ‫‪F = EM‬‬


  ‫2-‪mn ekek-1 ... e0 mn-1mn‬‬     ‫‪… m0 . m-1 … m-m‬‬
‫عالمت‬     ‫نما‬                      ‫مانتيس‬

                          ‫‪‬مانتيس:عدد عالمت دار با مميز ثابت(خواه عدد صحيح و يا عدد كسري).‬
                                                           ‫‪‬نما:مكان مميز را مشخص ميكند.‬


                           ‫مقدار معادل ده دهي‬
                                                           ‫‪M: Mantissa‬‬
          ‫)‪V(F) = V(M) * RV(E‬‬                              ‫‪E: Exponent‬‬
                                                           ‫‪R: Radix‬‬
                                             ‫اعداد با مميز شناور‬

                                                                                                                    ‫مثال:‬



                      ‫‪sign‬‬                                                      ‫‪sign‬‬
                        ‫0‬             ‫7654321.‬                                   ‫0‬       ‫40‬
                                   ‫‪mantissa‬‬                                       ‫‪exponent‬‬
                                  ‫40+01 ‪==> +.1234567 x‬‬

                                                           ‫ً‬
‫نك ته: در نمايش اعداد به صورت شناور تنها مانتيس(‪)M‬و نما(‪)E‬صريحانمايش داده مي شوند.مبنا و مكان مميز به صورت ضمني استنباط مي‬
                                                                                                                   ‫شوند.‬
                                 ‫اعداد با مميز شناور‬

‫مثال:عدد 11.1001+را به صورت يك عدد با مميز شناور 61بيتي (6بيت نما و 01 بيت مانتيس)نمايش دهيد.‬



                       ‫0‬      ‫000111001 00100 0‬
                      ‫عالمت‬      ‫نما‬        ‫مانتيس‬
            ‫يا‬
                       ‫0‬      ‫001110010 10100 0‬
‫خصوصيات نمايش اعداد بصورت مميز شناور‬

                                                      ‫• فرم نرمال اعداد با مميز شناور‬
   ‫– نمايشهاي متعددي از يك عدد در سيستم نمايش اعداد با مميز شناور وجود دارد.‬
                       ‫– با ارزش ترين رقم مانتيس هموار بايد يك رقم غير صفر باشد.‬
                                                                          ‫• نمايش صفر‬
                                       ‫– صفر:نمايش بصورت مانتيس صفر(0=‪)M‬‬
                                                            ‫– صفر حقيقي:‬
                                                         ‫• مانتيس برابر با صفر.‬
  ‫• نما برابر است با كوچك ترين عدد قابل نمايش كه بصورت 0...00نمايش داده مي شود.‬
                            ‫نمايش داخلي و خارجي‬

                                                               ‫نمايش داخلي و خارجي‬
 Another
Computer                                            External
                                              Representation


        External
  Representation                Internal
                             Representation                        Human


                                     CPU
                                    Memory


                   External
  Device           Representation
                                                    ‫نمايش خارجي‬

                                                                                                                      ‫• اعداد‬
‫– اغلب داده هاي ي كه درون كامپيوتر ذخيره مي شوند در نهايت توسط محاسباتي كه بر روي انان انجام مي گيرد تغيير پيدا مي‬
                                                                                                            ‫كند.‬
                                                                   ‫• نمايش داخلي براي كارامدي انجام محاسبات.‬
                                         ‫• الزم است نتايج نهائي جهت نمايش به يك فرمت خارجي مناسب تبديل شوند.‬
                                                                                      ‫• حروف الفبا،عالئم و برخي اعداد‬
                                                          ‫– عناصر اين داده ها توسط هيچ پردازشي تغيير پيدا نمي كنند.‬
                              ‫• نيازي به نمايش داخلي ندارند،چرا كه در هيچگونه محاسبهاي مورد استفاده قرار نميگيرند.‬
                                                           ‫• نمايش خارجي براي پردازش و ارائه در فرمت قابل الزم است.‬
        ‫نمايش خارجي‬

                                     ‫مثال:اعداد دهدهي‬
               ‫• نمايش به صورت يك كد باينري دودوئي.‬
‫• نمايش بصورت ‪) Binary Coded Decimal(BCD‬‬


        ‫‪Decimal‬‬   ‫‪BCD Code‬‬
           ‫0‬       ‫0000‬
           ‫1‬       ‫1000‬
           ‫2‬       ‫0100‬
           ‫3‬       ‫1100‬
           ‫4‬       ‫0010‬
           ‫5‬       ‫1010‬
           ‫6‬       ‫0110‬
           ‫7‬       ‫1110‬
           ‫8‬       ‫0001‬
           ‫9‬       ‫1001‬
                          ‫انواع كدهاي دسيمال‬

                         ‫1-,1,2-,2,4,8هر كدام وزن هاي ي هستند كه به هر بيت اختصاص پيدا كرده اند.‬   ‫•‬




‫1242 )1248(‪Decimal BCD‬‬   ‫3-‪84-2-1 Excess‬‬
  ‫0‬     ‫0000‬      ‫0000 0000‬            ‫1100‬
  ‫1‬     ‫1000‬      ‫1110 1000‬           ‫0010‬
  ‫2‬     ‫0100‬      ‫0110 0100‬            ‫1010‬
  ‫3‬     ‫1100‬      ‫1010 1100‬           ‫0110‬
  ‫4‬     ‫0010‬      ‫0010 0010‬            ‫1110‬
  ‫5‬     ‫1010‬      ‫1101 1101‬           ‫0001‬
  ‫6‬     ‫0110‬      ‫0101 0011‬           ‫1001‬
  ‫7‬     ‫1110‬      ‫1001 1011‬           ‫0101‬
  ‫8‬     ‫0001‬      ‫0001 0111‬           ‫1101‬
  ‫9‬     ‫1001‬      ‫1111 1111‬           ‫0011‬
                                   ‫انواع كدهاي دسيمال‬

‫بدست اوردن مكمل 9كد ‪BCD‬كار مشكلي است.اما از انجا كه ساير كدها خود مكمل هستند اين كار براي انها‬
                                                                                 ‫ساده است.‬
                                                                                 ‫• نكات ديگر:‬
             ‫‪d3 d2 d1 d0: symbol in the codes‬‬

     ‫1 ‪BCD: d3 x 8 + d2 x 4 + d1 x 2 + d0 x‬‬
                 ‫.‪ 8421 code‬‬
     ‫1 ‪2421: d3 x 2 + d2 x 4 + d1 x 2 + d0 x‬‬
     ‫)1-( ‪84-2-1: d3 x 8 + d2 x 4 + d1 x (-2) + d0 x‬‬
     ‫3 + ‪Excess-3: BCD‬‬
                                      ‫كد گري‬

     ‫•يكي از خصيصه هاي كد گري اينست كه دو كد متوالي ان تنها در يك بيت با يكديگر تفاوت دارند.‬
                                                        ‫•خصيصة فوق در بعضي مواقع كاربرد دارد.‬
‫‪Decimal‬‬  ‫‪Gray‬‬                ‫‪Binary‬‬
‫0‪number g3 g2 g1 g‬‬          ‫0‪b3 b2 b1 b‬‬
    ‫0‬   ‫0 0 0 0‬              ‫0 0 0 0‬
    ‫1‬   ‫1 0 0 0‬              ‫1 0 0 0‬
    ‫2‬   ‫1 1 0 0‬              ‫0 1 0 0‬
    ‫3‬   ‫0 1 0 0‬              ‫1 1 0 0‬
    ‫4‬   ‫0 1 1 0‬              ‫0 0 1 0‬
    ‫5‬   ‫1 1 1 0‬              ‫1 0 1 0‬
    ‫6‬   ‫1 0 1 0‬              ‫0 1 1 0‬
    ‫7‬   ‫0 0 1 0‬              ‫1 1 1 0‬               ‫كد گري 4-بيتي‬
    ‫8‬   ‫0 0 1 1‬              ‫0 0 0 1‬
    ‫9‬   ‫1 0 1 1‬              ‫1 0 0 1‬
   ‫01‬   ‫1 1 1 1‬              ‫0 1 0 1‬
   ‫11‬   ‫0 1 1 1‬              ‫1 1 0 1‬
   ‫21‬   ‫0 1 0 1‬              ‫0 0 1 1‬
   ‫31‬   ‫1 1 0 1‬              ‫1 0 1 1‬
   ‫41‬   ‫1 0 0 1‬              ‫0 1 1 1‬
   ‫51‬   ‫0 0 0 1‬              ‫1 1 1 1‬
                              ‫تحليل كد گري‬

      bnbn- ‫نمايش دهندة يك كد گري براي عدد باينري‬gngn-1...g1g0 ‫•فرض كنيد بيت هاي‬
                                                                .‫…1باشند‬b1b0
 gi = bi  bi+1 , 0  i  n-1                Reflection of Gray codes
 g n = bn                                        0   0   0   0   00   0   000
and                                               1   0   1   0   01   0   001
 bn-i = gn  gn-1  . . .  gn-i                      1   1   0   11   0   011
                                                      1   0   0   10   0   010
 b n = gn                                                     1   10   0   110
                                                              1   11   0   111
                                                              1   01   0   101
                                                              1   00   0   100
                                                                       1   100
                                                                       1   101
                                                                       1   111
                                                                       1   010
                                                                       1   011
                                                                       1   001
                                                                       1   101
                                                                       1   000
                         ASCII ‫نمايش كاراك ترها بوسيلة كد‬

ASCII (American Standard Code for Information Interchange) Code
                       MSB (3 bits)
                         0     1      2    3   4   5   6   7

          LSB      0   NUL   DLE      SP   0   @   P   ‘   P
        (4 bits)   1   SOH   DC1      !    1   A   Q   a   q
                   2   STX   DC2      “    2   B   R   b   r
                   3   ETX   DC3      #    3   C   S   c   s
                   4   EOT   DC4      $    4   D   T   d   t
                   5   ENQ   NAK      %    5   E   U   e   u
                   6   ACK   SYN      &    6   F   V   f   v
                   7   BEL   ETB      ‘    7   G   W   g   w
                   8   BS    CAN      (    8   H   X   h   x
                   9   HT    EM       )    9   I   Y   I   y
                   A   LF    SUB      *    :   J   Z   j   z
                   B   VT    ESC      +    ;   K   [   k   {
                   C   FF    FS       ,    <   L   \   l   |
                   D   CR    GS       -    =   M   ]   m   }
                   E   SO    RS       .    >   N   m   n   ~
                   F   SI    US       /    ?   O   n   o   DEL
                 ASCII ‫نمايش كاراك ترهاي كنترلي توسط كد‬

NUL   Null                        DC1    Device Control 1
SOH   Start of Heading (CC)       DC2    Device Control 2                 .
STX   Start of Text (CC)          DC3    Device Control 3
ETX   End of Text (CC)            DC4    Device Control 4
EOT   End of Transmission (CC)    NAK    Negative Acknowledge (CC)
ENQ   Enquiry (CC)                SYN    Synchronous Idle (CC)
ACK   Acknowledge (CC)            ETB    End of Transmission Block (CC)
BEL   Bell                        CAN    Cancel
BS    Backspace (FE)              EM     End of Medium
HT    Horizontal Tab. (FE)        SUB    Substitute
LF    Line Feed (FE)              ESC    Escape
VT    Vertical Tab. (FE)          FS     File Separator (IS)
FF    Form Feed (FE)              GS     Group Separator (IS)
CR    Carriage Return (FE)        RS     Record Separator (IS)
SO    Shift Out                   US     Unit Separator (IS)
SI    Shift In                    DEL    Delete
DLE   Data Link Escape (CC)
                (CC) Communication Control
                (FE) Format Effector
                (IS) Information Separator
              ‫كدهاي تشخيص خطا‬

                                                                     ‫•سيستم توازن:‬
                                              ‫–سادهترين روش براي تشخيص خطا.‬
                                      ‫–يك بيت توازن به اطالعات اضافه مي گردد.‬
                                 ‫–دو نوع توازن وجود دارد،توازن زوج و توازن فرد.‬


                                                                          ‫•توازن زوج:‬
            ‫–يك بيت به اطالعات اضافه ميشود بنابراين تعداد كل 1هاي كد زوج است.‬

‫0 1001101‬
‫1 0100101‬
            ‫كدهاي تشخيص خطا‬

                                                                       ‫•توازن فرد:‬

            ‫–يك بيت به اطالعات اضافه ميشود.بنابراين تعداد كل بيتها فرد است.‬

‫1 1001101‬
‫0 0100101‬
                                       ‫توليد بيت توازن‬

                                                                                     ‫•توليد بيت توازن:‬
               ‫–براي عدد باينري0‪-7(b6b5…b1b‬بيت اطالعات)و با توازن زوج به صورت زير توليد مي گردد:‬


 ‫0‪beven = b6  b5  ...  b‬‬

                                                                                 ‫–براي توازن فرد:‬



‫‪bodd = beven  1 = beven‬‬
     ‫توليد كنندة بيت توازن‬

                             ‫• مدار توليد كنندة بيت توازن زوج‬



‫6‪b‬‬
‫5‪b‬‬                                   ‫‪beven‬‬
‫4‪b‬‬
‫3‪b‬‬
‫2‪b‬‬
‫1‪b‬‬
‫0‪b‬‬
     ‫توليد كنندة بيت توازن‬

                             ‫•مدار توليد كنندة بيت توازن زوج‬



‫6‪b‬‬
‫5‪b‬‬                                ‫‪beven‬‬
‫4‪b‬‬
‫3‪b‬‬
‫2‪b‬‬
‫1‪b‬‬
‫0‪b‬‬
     ‫توليد كنندة بيت توازن‬

                             ‫•مدار توليد كنندة بيت توازن زوج‬



‫6‪b‬‬
‫5‪b‬‬                                ‫‪beven‬‬
‫4‪b‬‬
‫3‪b‬‬
‫2‪b‬‬
‫1‪b‬‬
‫0‪b‬‬
        ‫چك كنندة توازن‬

                         ‫•مدار چك كنندة توازن زوج‬


beven
 b6
 b5
 b4
 b3
 b2
 b1                      Even Parity
 b0                      error indicator
‫سازماندهي حافظه‬
‫سازماندهي حافظه‬

                       ‫•سلسله مراتب حافظه‬
                             ‫•حافظة اصلي‬
                             ‫•حافظة جانبي‬
                            ‫•حافظة انجمني‬
                              ‫•حافظة نهان‬
                            ‫•حافظة مجازي‬
                  ‫•سخت افزار مديريت حافظه‬
                                     ‫سلسله مراتب حافظه‬

‫سلسله مراتب حافظه به خاطر سرعت بخشيدن دسترسي به حافظه با حداقل هزينه بوجود امده است.‬                ‫•‬

          ‫در سلسله مراتب حافظه هرم(كه قاعدة ان در پائين است) اگر از پائين به باال حركت كنيم:‬        ‫•‬
                                                        ‫سرعت دسترسي به حاظه بيشتر ميشود.‬       ‫1.‬
                                                           ‫هزينه سختافزار افزايش پيدا ميكند.‬   ‫2.‬
                                                               ‫حجم حافظه كاهش پيدا ميكند.‬      ‫3.‬
                   ‫سلسله مراتب حافظه‬

Auxiliary memory
                                                ‫سلسله مراتب حافظه‬
   Magnetic
      tapes            I/O              Main
                   processor           memory
   Magnetic
     disks

                     CPU               Cache
                                       memory


                     Register


                       Cache


                   Main Memory



                   Magnetic Disk



                   Magnetic Tape
                             ‫حافظة اصلي‬

                                                        ROM‫و‬RAM ‫•حافظه هاي‬
                                                       RAM‫–نمونه اي از يك حافظة‬

Chip select 1         CS1
Chip select 2         CS2
        Read          RD     128 x 8             8-bit data bus
                              RAM
        Write         WR
7-bit address         AD 7



 CS1 CS2        RD   WR   Memory function    State of data bus
  0   0          x    x     Inhibit         High-impedence
  0   1          x    x     Inhibit         High-impedence
  1   0          0    0     Inhibit         High-impedence
  1   0          0    1     Write           Input data to RAM
  1   0          1    x     Read            Output data from RAM
  1   1          x    x     Inhibit         High-impedence
                            ROM

                                             ROM‫–نمونهاي از يك حافظة‬




Chip select 1   CS1
Chip select 2   CS2
                       512 x 8    8-bit data bus
                        ROM
9-bit address   AD 9
                          ‫نگاشت ادرس حافظه‬

                                                   .‫•نگاشت ادرس به يك تراشة حافظه‬
                                                                            :‫مثال‬
                                             .ROM ‫و 215بايت‬RAM‫نگاشت 215بايت‬

              Hexa                   Address bus
Component    address        10 9     8 7 6 5         4 3 2 1
 RAM   1    0000 - 007F      0   0   0   x   x   x   x   x   x   x
 RAM   2    0080 - 00FF      0   0   1   x   x   x   x   x   x   x
 RAM   3    0100 - 017F      0   1   0   x   x   x   x   x   x   x
 RAM   4    0180 - 01FF      0   1   1   x   x   x   x   x   x   x
 ROM        0200 - 03FF      1   x   x   x   x   x   x   x   x   x
                                           ‫نگاشت ادرس حافظه‬

                                                                                     ‫•اتصال حافظه به ‪.CPU‬‬
                              ‫–تراشههاي ‪RAM‬و‪ROM‬از طريق گذرگاه داده و ادرس به ‪CPU‬متصل مي شوند.‬
‫–بيتهاي كمارزش تر در خطوط ادرس بايت هاي درون يك تراشة حافظة وبيت هاي با ارزش بيشتريك تراشه از چندين تراشة‬
                                                                                    ‫حافظه را انتخاب مي كنند.‬
                                   CPU ‫اتصال حافظه به‬
      Address bus         CPU                                      CPU ‫اتصال تراشه هاي حافظه به‬
16-11 10 9 8        7-1   RD WR                         Data bus



        Decoder
       3 2 1 0
                                   CS1
                                   CS2




                                                 Data
                                   RD  128 x 8
                                       RAM 1
                                   WR
                                   AD7

                                   CS1
                                   CS2




                                                 Data
                                   RD  128 x 8
                                       RAM 2
                                   WR
                                   AD7

                                   CS1
                                   CS2
                                                 Data
                                   RD  128 x 8
                                       RAM 3
                                   WR
                                   AD7

                                   CS1
                                   CS2
                                                 Data




                                   RD  128 x 8
                                       RAM 4
                                   WR
                                   AD7

                                   CS1
                                   CS2
                                                 Data




                            1- 7      512 x 8
                            8
                                   AD9 ROM
                     ‫حافظههاي جانبي‬

                                            ‫•سازماندهي اطالعات برروي نوارهاي مغناطيسي‬



                       file i
       block 1             block 2
                                          block 3     EOF
      R1
           R2   R3      R4
                             R5
                                     R6
                block 3 IRG
                                             R1
EOF                               R3 R2
                R5    R4                          block 1
                                   block 2
                   ‫حافظههاي جانبي‬

                                    ‫•سازماندهي ديسكهاي سخت افزاري‬


‫‪Moving Head Disk‬‬       ‫‪Fixed Head Disk‬‬




           ‫‪Track‬‬
                         ‫حافظة انجمني‬

       ‫•دسترسي به اين گونه حافظه ها بر اساس محتواي داده صورت ميگيرد نه ادرس ان.‬
‫•اين گونه حافظه ها به حافظههاي قابل ادرسدهي با(‪ )CAM‬محتوا هم ناميده مي شوند.‬
                                                         ‫•سازماندهي سختافزاري‬

           ‫)‪Argument register(A‬‬



              ‫)‪Key register (K‬‬
                                     ‫‪Match‬‬
                                    ‫‪register‬‬

‫‪Input‬‬      ‫‪Associative memory‬‬
             ‫‪array and logic‬‬
                                        ‫‪M‬‬
‫‪Read‬‬            ‫‪m words‬‬
‫‪Write‬‬        ‫‪n bits per word‬‬
                                              ‫حافظة انجمني‬

                                                                                        ‫•عملكرد حافظة انجمني‬
      ‫–هركلمه در ثبات ‪CAM‬به طور موازي با محتويات ثبات ‪)Argument Register(A‬مقايسه ميشود.‬
                                                        ‫–اگر در ‪ word[i]=A،CAM‬انگاه 1=]‪.M[i‬‬
                    ‫–تمام كلماتي كه در ‪ CAM‬مقدار1=]‪ M[i‬ان به صورت ترتيبي از ‪ CAM‬خوانده ميشود.‬
‫–از ثبات ‪K‬براي ماسك كردن يك فيلد و يا كليد در ثبات ‪A‬استفاده مي شود(تنها بيتهاي از ثبات‪A‬كه داراي يك 1در بيت‬
                                                           ‫متناظر در ثبات ‪K‬باشند مورد مقايسه قرار ميگيرند).‬
                       CAM ‫سازماندهي‬

                                             CAM‫•سازماندهي داخلي‬



          A1      Aj            An


          K1      Kj             Kn


Word 1    C11    C1j             C1n    M1


Word i    Ci1    Cij             Cin    Mi


Word m    Cm1    Cmj             Cmn    Mm

         Bit 1   Bit j          Bit n
        CAM ‫سازماندهي‬

                       .CAM ‫)در‬Cij(‫•سازماندهي داخلي يك سلول‬


                         Aj   Kj
Input


Write




        R   S
                F ij     Match     To M i
Read                     logic
                                    ‫مدار انطباق‬

                                            .)match logic(‫•سازماندهي داخلي مدار انطباق‬

K1                 A1   K2                 A2          Kn             An


     F'i1   F i1             F'i2   F i2        ....    F'in   F in




                                                                           Mi
                                                     ‫حافظة نهان‬

                                                                                       ‫•اصل مراجعات محلي به حافظه‬
                 ‫–طبق اين اصل دسترسي به حافظه در بازه هاي زماني معين تمايل دارد كه به سلولهاي مجاور حافظه باشد.‬
‫–اين نواحي حافظه را به زير مجموعه اي ي تقسيم مي كند كه در طول زمان اين زير مجموعهها با زير مجموعه هاي جديد عوض‬
                                                                                                          ‫مي شوند.‬
                        ‫ً‬
‫–محلي بودن موقت:طبق اين اصل اطالعاتي كه در ايندة نزديك مورد استفاده قرار ميگيرند،احتماال هم اكنون مورد استفاده‬
                                                                                                     ‫قرار گرفته اند.‬
‫–محلي بودن فيزيكي:طبق اين اصل اگر يك كلمه مورد دستيابي قرار گرفت،كلمه هاي مجاور با اين كلمه در ايندة نزديك مورد‬
‫دستيابي قرار ميگيرند(به عنوان مثال داده هاي مربوط به هم در يك ارايه پشتسرهم ذخيره ميشوند،ويا دستورات در يك‬
                                                                     ‫برنامه به ترتيب و اغلب پشت سرهم اجرا ميشوند.).‬
                                                     ‫حافظة نهان‬

                                                                                                           ‫•حافظةنهان‬
                                                            ‫–اصل محلي بودن مراجعات علت كاركرد حافظة نهان ميباشند.‬
‫–حافظههاي نهان ،حافظههاي سريع و كم حجمي هستند كه اطالعاتي را كه احتمال دارد به زودي مورد دستيابي قرار گيرند را‬
                                                                                              ‫در خود ذخيره مي كنند.‬




                  ‫‪Main memory‬‬
                                                                             ‫‪CPU‬‬
                                            ‫‪Cache memory‬‬
                                                 ‫كارائي حافظة نهان‬

                                                                                               ‫•ترتيب دسترسي حافظه‬
                                                 ‫–تمام دسترسيها به حافظه ابتدا به سمت حافظة نهان هدايت ميشوند.‬
                                         ‫–اگر كلمة مورد نظر در حافظة نهان بود،حافظة نهان مورد دستيابي قرار ميگيرد.‬
‫–اگر كلمة مورد نظر در حافظة نهان نبود بلوك و يا خطي كه كلمة مورد نظر را در بر دارد از حافظة اصلي جايگزين يك بلوك در‬
                                                                                                 ‫حافظة نهان ميشود.‬
                                                    ‫•چگونه مي توانيم كلمة مورد نظر در كدام بلوك وجود دارد؟‬
                                       ‫•در صورت جايگزيني يك بلوك از حافظه نهان كدام بلوك بايد انتخاب شود؟‬
                                     ‫كارائي حافظة نهان‬

                                                                    ‫•كارائي سيستم حافظة پنهان‬
        ‫‪: Hit Rate‬درصدي از كل دسترسي هاي به حافظه كه از طريق حافظة نهان براورده ميشود.‬
             ‫‪:Te‬زمان موثر دسترسي به يك كلمه از حافظه درسيستميكه ازحافظةنهاناستفادهمي كند.‬
                                                              ‫‪:Tc‬زمان دسترسي به حافظة نهان.‬
                                                            ‫‪:Tm‬زمان دسترسي به حافظة اصلي.‬
‫‪Te = Tc + (1 - h) Tm‬‬
                                                                                        ‫مثال:‬
‫%58.0 = ‪Tc = 0.4µs, Tm = 1.2µs, h‬‬
‫‪Te = 0.4 + (1 - 0.85) * 1.2 = 0.58µs‬‬
               ‫نگاشت حافظة اصلي و نهان‬

           ‫•انتقال داده ها از حافظة اصلي به حافظة نهان فرايند نگاشت ناميده ميشود.‬

‫•تابع نگاشت:تناظر بين بلوكهاي حافظةاصلي و بلوكهاي حافظة نهان را مشخص ميسازد.‬
                                                               ‫•انواع نگاشت:‬
                                                             ‫–نگاشت انجمني.‬
                                                            ‫–نگاشت مستقيم.‬
                                                    ‫–نگاشت انجمني مجموعهاي.‬
      ‫نگاشت حافظة اصلي و نهان (نگاشت انجمني)‬

                                                                           ‫•نگاشت انجمني‬
      ‫–هر بلوك از حافظة نهان ميتواند هر بلوك از حافظة اصلي را ذخيره كند(قابليت انعطاف).‬
                       ‫–جدول نگاشت در حافظة انجمني پياده سازي ميشود(سريع و گران).‬
                 ‫–جدول نگاشت ،هم ادرس كلمة حافظه و هم محتويات ان را ذخيره ميكند.‬

       ‫)‪address (15 bits‬‬

      ‫‪Argument register‬‬

          ‫‪Address‬‬                  ‫‪Data‬‬
          ‫00010‬                   ‫0543‬
‫‪CAM‬‬       ‫77720‬                   ‫0176‬
          ‫53222‬                   ‫4321‬
                       ‫نگاشت حافظة اصلي و نهان (نگاشت مستقيم)‬

                                     ‫•هر بلوك حافظه تنها در يك مكان از حافظة نهان ميتواند ذخيره شود.‬
                                    ‫•جدول نگاشت از حافظة‪RAM‬ساخته ميشودبجاي حافظة انجمني.‬
                                         ‫•يك ادرس‪-n‬بيتي حافظةاصلي به دو قسمت زير تقسيم ميشوند.‬
                                                                         ‫–‪k‬بيت براي ‪.INDEX‬‬
                                                                          ‫–‪n-k‬بيت براي ‪.TAG‬‬
 ‫•از ادرس ‪-n‬بيتي براي دسترسي به حافظة اصلي و از ‪-k‬بيت براي دسترسي به حافظة نهان استفاده ميشود.‬
                                                                           ‫•روابط بين ادرس ها‬
‫)6(‪Tag‬‬   ‫)9(‪Index‬‬



         ‫000 00‬        ‫21 ‪32K x‬‬
                                               ‫000‬
                                                         ‫21 ‪512 x‬‬
                    ‫‪Main memory‬‬                      ‫‪Cache memory‬‬
                    ‫‪Address = 15 bits‬‬                 ‫‪Address = 9 bits‬‬
                    ‫‪Data = 12 bits‬‬                    ‫‪Data = 12 bits‬‬
         ‫777 77‬                                ‫777‬
            ‫نگاشت حافظة اصلي و نهان (نگاشت مستقيم)‬

                                              ‫•سازماندهي حافظة نهان با نگاشت مستيم:‬



‫‪Memory‬‬
‫‪address‬‬   ‫‪Memory data‬‬
  ‫00000‬     ‫0221‬                      ‫‪Cache memory‬‬
                             ‫‪Index‬‬
                            ‫‪address‬‬     ‫‪Tag‬‬      ‫‪Data‬‬
 ‫77700‬      ‫0432‬               ‫000‬     ‫00‬       ‫0221‬
 ‫00010‬      ‫0543‬

 ‫77710‬      ‫0654‬
 ‫00020‬      ‫0765‬

                              ‫777‬      ‫20‬       ‫0176‬
 ‫77720‬      ‫0176‬
                            ‫نگاشت حافظة اصلي و نهان (نگاشت مستقيم)‬
                                                                              ‫عملكرد نگاشت مستقيم:‬       ‫•‬
                                  ‫‪cpu‬يك درخواست حافظه بصورت(‪ ) TAG;INDEX‬توليد ميكند.‬                 ‫–‬
‫از طريق ‪INDEX‬به حافظة نهان دسترسي پيدا ميكند،يعني به(‪)tag;data‬و ‪TAG‬را با‪tag‬مقايسه‬                    ‫–‬
                                                                                            ‫ميكند.‬
‫اگر‪TAG=tag‬پس يك اصابت رخداده است.بنابراين داده ها را از حافظة نهان بازيابي مي كند و به ‪CPU‬با‬         ‫–‬
                                                                                         ‫ميگرداند.‬
‫اگر‪TAG<>tag‬پس يك عدم اصابت رخداده و بنابر اين عمليات زير را به ترتيب انجام مي دهد(‪:M‬حافظة‬            ‫–‬
                                                                        ‫اصلي،‪:Cache‬حافظة نهان):‬
‫)‪(M[tag;INDEX] <- Cache[INDEX](data‬داده ها را ا حافظة پنهان از بلوك مربوطه بر‬                   ‫1.‬
                                                           ‫روي حافظه انتقالميدهد.(.‬
‫)]‪(Cache[INDEX] <- (TAG;M[TAG; INDEX‬حافظة پنهان را با داده هاي جديد‬                             ‫2.‬
                                                             ‫از‪CPU‬به روز ميكند.(.‬
     ‫)‪(CPU<-Cache[INDEX](date‬داده ها را از روي حافظة اصلي به ‪cpu‬ارسال مي كند(‬                   ‫3.‬
           ‫نگاشت حافظة اصلي و نهان (نگاشت مستقيم)‬

                                      ‫•نگاشت مستقيم با بلوك هائي به طول 8كلمه‬


          ‫‪Index‬‬   ‫‪tag‬‬   ‫‪data‬‬     ‫6‬       ‫6‬     ‫3‬
          ‫000‬     ‫10‬    ‫0543‬    ‫‪Tag‬‬   ‫‪Block‬‬   ‫‪Word‬‬
‫0 ‪Block‬‬
          ‫700‬     ‫10‬    ‫8756‬
          ‫010‬                              ‫‪INDEX‬‬
‫1 ‪Block‬‬
          ‫710‬




‫077 36 ‪Block‬‬      ‫20‬
         ‫777‬      ‫20‬    ‫0176‬
               ‫نگاشت حافظة اصلي و نهان (نگاشت انجمني مجموعهاي)‬

‫•هر كلمهاي در حافظة اصلي داراي مجموعهاي از مكانها در حافظة نهان است كه مي تواند در انها بار شود.‬
                                              ‫•نگاشت انجمني مجموعهاي با مجموعه هاي ي با اندازة 2:‬


       ‫‪Index‬‬   ‫‪Tag‬‬      ‫‪Data‬‬      ‫‪Tag‬‬      ‫‪Data‬‬
         ‫000‬    ‫10‬     ‫0543‬        ‫20‬      ‫0765‬




         ‫777‬    ‫20‬     ‫0176‬        ‫00‬      ‫0432‬
                      ‫نگاشت حافظة اصلي و نهان (نگاشت انجمني مجموعهاي)‬

                                                                            ‫•عملكرد نگاشت انجمني مجموعهاي:‬
                                  ‫–يك درخواست حافظه بصورت(‪ ) TAG;INDEX‬توليد ميكند.‬
‫–با استفاده از ‪INDEX‬به حافظة نهان دسترسي پيدا ميكند.يعني به(كلمه هاي حافظة‬
                                                    ‫پنهان(0‪)tag0,data‬و(1‪.))tag1,data‬‬
                                               ‫–به ترتيب ‪TAG‬را با 0‪tag‬و1‪tag‬مقايسه مي كند.‬
                                                     ‫–. ‪if tag i=TAG ->Hit, CPU<-data i‬‬
                                                                 ‫–‪.if tag i <>TAG->Miss‬‬
‫•يكي از دو كلمة )0 ‪(tag 0,data‬و(1 ‪)tag 1,data‬را جايگزين مي كند(در اينجا فرض مي‬
                          ‫كنيم(0‪)tag0,data‬را جايگزين كنيم)و سپس عمليات زير را به ترتيب انجام مي دهيم:‬
‫)0 ‪M[tag 0, INDEX] <- Cache[INDEX](data‬‬
‫,)]‪Cache[INDEX](tag 0, data 0) <- (TAG, M[TAG,INDEX‬‬
‫)0 ‪CPU <- Cache[INDEX](data‬‬
                                               ‫نوشتن در حافظه‬


                                                                        ‫•نوشتن در حافظه از طريق حافظة نهان .‬
                                                                                   ‫زماني كه در حافظه مي نويسم:‬
‫–اگر كلمه اي كه مي نويسيم درون حافظة نهان باشد(‪)Hit‬كلمة مورد نظر را به طور موازي هم در حافظة نهان مي نويسيم و‬
                                                                                            ‫هم در حافظة اصلي.‬
‫–اگر كلمه اي كه مي نويسيم درون حافظة نهان نباشد(‪)Miss‬كلمة مورد نظر را فقط در حافظة نهان مينويسيم. اگر در‬
          ‫هنگام خواندن يك ‪Miss‬اتفاق بيافتد بلوكي كه درون ‪cache‬نبوده دوباره درون ‪cache‬بازنويسي ميشود.‬
                                                                     ‫•در اين روش حافظه هميشه بهنگام است.‬
                                                               ‫•اين روش به خاطر دسترسي به حافظه،كند است.‬
                                             ‫نوشتن در حافظه‬

                                                              ‫•نوشتن در حافظه از طريق ‪:write-back‬‬
                                                                       ‫هنگامي كه در حافظه مي نويسيم:‬
             ‫–اگر كلمه اي كه مي نويسيم درون حافظة نهان باشد(‪)Hit‬كلمة مورد نظر را فقط درون ‪cache‬مينويسيم.‬
‫–اگر كلمهاي را كه مي نويسيم درون حافظة نهان نبود(‪)Miss‬بلوك مورد نظر به حافظة پنهان مي اوريم و درون‬
‫‪cache‬مينويسيم اگر در هنگام خواندن يك ‪Miss‬اتفاق بيافتد بلوكي كه بايد جايگزين شود درون حافظه نوشته مي شود.‬
                                                                        ‫•حافظه در اين روش به هنگام نيست.‬
                                         ‫حافظة مجازي‬
        ‫ً‬
‫•حافظة مجازي به كاربر اين ديد را ميدهد كه سيستم داراي يك حافظة بسيار بزرگ است،هرچند واقعا اين طور‬
                                                       ‫نباشد و حجم حافظة اصلي بسيار كوچك باشد.‬
            ‫•در حافظة مجازي فضاي ادرس يك موجوديت منطقي است و فضاي حافظه يك موجوديت فيزيكي.‬



                   ‫‪address space‬‬                      ‫‪memory space‬‬

                   ‫‪virtual address‬‬      ‫‪Mapping‬‬
                   ‫)‪(logical address‬‬                ‫‪physical address‬‬

         ‫‪address generated by programs‬‬         ‫‪actual main memory address‬‬
                             ‫حافظة مجازي‬

 .‫•نگاشت ادرس:جدول نگاشت حافظه براي نگاشت ادرس هاي مجازي به ادرس هاي فيزيكي‬



Virtual address


     Virtual        Memory             Main memory
    address                              address        Main
                    mapping                            memory
    register         table                register



                                    Physical
                                    Address
                  Memory table                       Main memory
                  buffer register                    buffer register
                                          ‫نگاشت ادرس‬

‫•فضاي ادرس و فضاي حافظه هر كدام به قسمت هاي ثابت و مساوي تقسيم ميشوند كه به هر كدام از اين‬
                                                            ‫قسمتها يك صفحه و يا بلوك ميگويند.‬

                                                                               ‫صفحات ‪1k‬اي‬
                                 ‫0 ‪Page‬‬
                                 ‫1 ‪Page‬‬
                                 ‫2 ‪Page‬‬
                ‫‪Address space‬‬                 ‫‪Memory space‬‬   ‫0 ‪Block‬‬
                                 ‫3 ‪Page‬‬
                ‫312 = ‪N = 8K‬‬                  ‫212 = ‪M = 4K‬‬   ‫1 ‪Block‬‬
                                 ‫4 ‪Page‬‬
                                                             ‫2 ‪Block‬‬
                                 ‫5 ‪Page‬‬
                                                             ‫3 ‪Block‬‬
                                 ‫6 ‪Page‬‬
                                 ‫7 ‪Page‬‬
                                             ‫نگاشت ادرس‬

                                         .‫•سازماندهي يك جدول نگاشت حافظه در يك سيستم صفحه بندي‬

                              Page no.             Line number
                               1 0 1         0 1 0 1 0 1 0 0 1 1          Virtual address

              Table                               Presence
              address                             bit
                        000              0                                                  Main memory
                        001     11       1                                                     Block 0
                        010     00       1                                                     Block 1
                        011              0                   01   0101010011                   Block 2
                        100              0                                                     Block 3
                                                              Main memory
                        101     01       1                    address register
Memory page table       110     10       1
                        111              0                                                      MBR


                                01       1
                                           ‫جدول صفحة انجمني‬

‫•فرض مي كنيم تعداد فريم هاي(قاب هاي) موجود در حافظه برابر ‪m‬و تعداد صفحه هاي موجود در فضاي‬
                                                                   ‫ادرس مجازي برابر‪n‬باشد.‬
                                                                         ‫•طرح جدول صفحه:‬
‫–راه حل مستقيم قرار دادن يك جدول در حافظه با ‪n‬مدخل:اين يك راه حل ناكارامد است،چرا كه همراه‪n-m‬مدخل درون‬
                                                                                 ‫جدول صفحه خالي است.‬
 ‫–راه حل كارامدتر قرار دادن يك جدول صفحة‪m‬مدخلي درون حافظة انجمني است كه كلمه هاي ان به صورت زير مي باشند:‬
‫)‪(Page Number:Block Number‬‬
                                                           ‫‪Virtual address‬‬
                                              ‫.‪Page no‬‬
                                               ‫1 0 1‬            ‫‪Line number‬‬        ‫‪Argument register‬‬

                                               ‫1 0 1‬        ‫0 0‬     ‫‪Key register‬‬

                                               ‫0‬   ‫0‬   ‫1‬    ‫1‬   ‫1‬
                                               ‫0‬   ‫1‬   ‫0‬    ‫0‬   ‫0‬   ‫‪Associative memory‬‬
                                               ‫1‬   ‫0‬   ‫1‬    ‫0‬   ‫1‬
                                               ‫1‬   ‫1‬   ‫0‬    ‫1‬   ‫0‬
                                             ‫.‪Page no. Block no‬‬
                                       ‫خطاي نقص صفحه‬

                            ‫خطاي صفحه:زمانيكه شمارة صفحة مورد نظر در جدول صفحه نباشد.‬          ‫•‬
                                                                      ‫مراحل مديريت يك خطاي صفحه:‬
                               ‫1. يك تله سيستم عامل اتفاق مي افتد(تله يك نوع وقفة نرم افزاري ).‬
                                                  ‫2. ثبات هاي كاربر و حالت برنامه ذخيره مي شود.‬
                                ‫3. مشخص مي شود كه وقفة رخ داده يك خطاي نقص صفحه است.‬
‫4. بررسي مي شود كه ايا ارجاع به صفحة مورد نظر يك ارجاع مجاز است و پس از ان مكان صفحه برروي‬
                                                                       ‫ديسك مشخص ميشود.‬
‫5. فرمان براي خالي كردن يك فريم از طرف ديسك براي بار كردن صفحة مربوطه از روي ديسك صادر‬
                                                                                     ‫ميشود.‬
                                     ‫دريك صف تا زماني كه به اين دستگاه سرويس دهي شود صبر كن.‬   ‫•‬
                                       ‫خطاي نقص صفحه‬

                                              ‫براي زمان تاخير دوراني و جستجوي ديسك منتظر بمان.‬   ‫•‬
                                     ‫صفحة خوانده شده از روي ديسك را درون فريم حافظه منتقل كن.‬    ‫•‬
                                  ‫6. زمانيكه ‪cpu‬منتظر است ممكن است كارهاي ديگري انجام دهد.‬
                        ‫7. وقفه از طرف ديسك براي اعالم اين موضوع كه عمليات ‪I/O‬پايان يافته است.‬
                                               ‫8. ثبات ها و حالت برنامة كاربران ديگر ذخيره مي شود.‬
                                                  ‫9. مشخص مي شود وقفه از طرف ديسك بوده است.‬
                            ‫01. جدول صفحه به روز مي شود(صحة دلخواه هم اكنون درون حافظه است).‬
      ‫11. انتظار براي ‪cpu‬تا زمانيكه فرايندي را كه دچار خطاي نقص صفحه شده بود را دوباره اجرا كند.‬
‫21. بازيابي ثبات ها،حالت برنامه و جدول صفحة به روز شده و از سر گيري دستورالعملي كه باعث خطاي‬
                                                                          ‫نقص صفحه شده بود.‬
                                 ‫خطاي نقص صفحه‬

                                      :‫•تمام 21مراحل نامبرده شده در شكل زير عالمت گذاري شده اند‬
                                  3    Page is on backing store
                         OS


                                  2    trap



         1   Reference
LOAD M
                                       0
             6
          restart
         instruction                                              4
                                                                  bring in
                                              free frame
                                                                  missing
                         5                                        page
                              reset
                              page
                              table


                                           main memory
                                                    ‫جايگزيني صفحات‬

‫الگوريتم هاي جايگزيني صفحات تصميم مي گيرند كدام صفحات بايد از فريم حافظه جايگزين شوند تا‬                                ‫•‬
                                                       ‫فضاي كافي براي صفحات جديد بوجودايد.‬
            ‫تعيير در روية سرويس دهي به خطاي نقص صفحه(كه در اساليدهاي قبلي به ان اشاره شد).‬                              ‫•‬
                                                                 ‫مكان صفحة مطلوب را برروي ديسك مشخص كن.‬            ‫1.‬
                                                                          ‫يك فريم خالي درون حافظه پيدا كن.‬         ‫2.‬
                                                          ‫پيدا كردي از ان استفاده كن.‬       ‫اگر يك فريم خالي‬   ‫•‬
  ‫در غير اينصورت با استفاده از يك الگوريتم جايگزيني صفحه يكي از صفحات موجود در حافظه را براي خروج انتخاب كن.‬   ‫•‬
                                                                   ‫صفحة انتخاب شده را بر روي ديسك بنويس.‬       ‫•‬
                                                                    ‫ً‬
                                                  ‫صفحة جديد را درون فريم حافظة(فريم جديدا خالي شده)بار كن.‬         ‫3.‬
                                                                          ‫اجراي فرايند وقفه كاربر را ااز سر گير.‬   ‫4.‬
                      ‫جايگزيني صفحات‬

                                      .‫مراحل فوق در شكل زير شماره گذاري شده اند‬


      valid/
frame invalid bit                       swap
                                        out
                                      1 victim
                                        page
              2 change to
 f 0    v i     invalid      victim
                                      3
              4                       swap
  f      v      reset page
                table for             desired
                new page              page in
                                                  backing store
page table
                                                    ‫الگوريتم هاي جايگزيني صفحه‬

                                                                                                                        ‫•الگوريتم‪FIFO‬‬
    ‫‪Reference string‬‬
   ‫7‬        ‫0‬       ‫1‬       ‫2‬       ‫0‬   ‫3‬       ‫0‬       ‫4‬       ‫2‬       ‫3‬       ‫0‬       ‫3‬   ‫2‬   ‫1‬       ‫2‬       ‫0‬   ‫1‬   ‫7‬       ‫0‬       ‫1‬
        ‫7‬       ‫7‬       ‫7‬       ‫2‬           ‫2‬       ‫2‬       ‫4‬       ‫4‬       ‫4‬       ‫0‬               ‫0‬       ‫0‬               ‫7‬       ‫7‬       ‫7‬
                ‫0‬       ‫0‬       ‫0‬           ‫3‬       ‫3‬       ‫3‬       ‫2‬       ‫2‬       ‫2‬               ‫1‬       ‫1‬               ‫1‬       ‫0‬       ‫0‬
                        ‫1‬       ‫1‬           ‫1‬       ‫0‬       ‫0‬       ‫0‬       ‫3‬       ‫3‬               ‫3‬       ‫2‬               ‫2‬       ‫2‬       ‫1‬
       ‫‪Page frames‬‬


‫•الگوريتم ‪FIFO‬صفحه اي را براي جايگزيني استفاده مي كند كه بيشترين زمان درون حافظه بوده است.اين‬
‫الگوريتم از يك صف استفاده مي كند هر موقع يك صفحة جديد درون حافظه بار شد شناسة ان را ته صف مي‬
                              ‫گذارد و در هنگام انتخاب صفح اي را كه جلوي صف بوده را انتخاب ميكند.‬
       ‫• پيادهسازي اين الگوريتم ساده ولي ممكن است باعث بوجود امدن تناوب در خطاي نقص صفحه شود.‬
                                                 ‫الگوريتم هاي جايگزيني صفحه‬

                     ‫•الگوريتم بهينه(‪:)OPT‬صفحهاي را انتخاب ميكندكه در اينده ديرترين مراجعه را داشته باشد.‬
                                                                  ‫•اين الگوريتم كمترين خطاي نقص صفحه را دارد.‬
                                           ‫•اين الگوريتم قابل پياده سازي نيست(چرا كه كسي از اينده خبر ندارد!).‬



‫‪Reference string‬‬
‫7‬        ‫0‬       ‫1‬       ‫2‬       ‫0‬   ‫3‬       ‫0‬    ‫4‬       ‫2‬   ‫3‬   ‫0‬       ‫3‬   ‫2‬   ‫1‬       ‫2‬   ‫0‬   ‫1‬   ‫7‬       ‫0‬   ‫1‬
     ‫7‬       ‫7‬       ‫7‬       ‫2‬           ‫2‬            ‫2‬               ‫2‬               ‫2‬                   ‫7‬
             ‫0‬       ‫0‬       ‫0‬           ‫0‬            ‫4‬               ‫0‬               ‫0‬                   ‫0‬
                     ‫1‬       ‫1‬           ‫3‬            ‫3‬               ‫3‬               ‫1‬                   ‫1‬
    ‫‪Page frames‬‬
                                            ‫الگوريتم هاي جايگزيني صفحه‬

‫•الگوريتم ‪: )last recently used(LRU‬صفحات را جايگزين ميكند كه در گذشتة نزديك مورد‬
                                                                             ‫دستيابي قرار نگرفته اند.‬
                                                                 ‫•يك تخمين از الگوريتم‪OPT‬است.‬
                                   ‫•اين الگوريتم از اطالعات گذشته براي پيش بيني اينده استفاده ميكند.‬


     ‫‪Reference string‬‬
    ‫7‬   ‫0‬    ‫1‬     ‫2‬        ‫0‬   ‫3‬       ‫0‬    ‫4‬       ‫2‬       ‫3‬       ‫0‬       ‫3‬   ‫2‬   ‫1‬       ‫2‬   ‫0‬       ‫1‬   ‫7‬       ‫0‬   ‫1‬
       ‫7‬    ‫7‬   ‫7‬       ‫2‬           ‫2‬            ‫4‬       ‫4‬       ‫4‬       ‫0‬               ‫1‬           ‫1‬           ‫1‬
            ‫0‬   ‫0‬       ‫0‬           ‫0‬            ‫0‬       ‫0‬       ‫3‬       ‫3‬               ‫3‬           ‫0‬           ‫0‬
                ‫1‬       ‫1‬           ‫3‬            ‫3‬       ‫2‬       ‫2‬       ‫2‬               ‫2‬           ‫2‬           ‫7‬
     ‫‪Page frames‬‬
                                  ‫الگوريتم هاي جايگزيني صفحه‬

                                                                                        ‫•روشهاي پياده سازي ‪LRU‬‬
                                                                                                        ‫–شمارنده ها:‬
                   ‫•براي هر مدخل جدول صفحه يك كمه كه نشان دهندة زمان استفاده است در نظر گرفته مي شود.‬
                                                  ‫•با ه بار دسترسي به يك صفحه اين كلمه با يك جمع مي شود.‬
                                                   ‫•هنگام جايگزيني صفحة با كمترين شمارنده انتخاب مي شود.‬
                                                                                                              ‫–پشته:‬
                                                             ‫•يك پشته از صفحاتي كه مورد دستيابي قرار گرفته اند.‬
‫•زمانيكه يك صفحه مورد دسترسي قرار گرفت شمارة ان را از درون پشته بازيابي مي كنيم و در روي پشته قرار مي دهيم.‬
                                                ‫•هنگام بازيابي صفحه اي كه در ته پشته قرار دارد بازيابي مي شود.‬
                                                                                                              ‫•‬
                     ‫الگوريتم هاي جايگزيني صفحه‬

                                           ‫مثال:پياده سازي ‪LRU‬با استفاده از پشته.‬

‫‪Reference string‬‬
‫4‬   ‫7‬   ‫0‬    ‫7‬   ‫1‬     ‫0‬   ‫1‬   ‫2‬   ‫1‬   ‫2‬   ‫7‬       ‫1‬   ‫2‬


                                       ‫2‬       ‫7‬
                                       ‫1‬       ‫2‬
                                       ‫0‬       ‫1‬
                                       ‫7‬       ‫0‬
                                       ‫4‬       ‫4‬
                                    ‫سخت افزار مديريت حافظه‬

                                                                     ‫•وظايف پايه اي واحد مديريت حافظه‬
                                                                                 ‫–اختصاص پوياي فضا.‬
                                                ‫–ايجاد قابليت به اشتراك گذاري حافظه براي كاربران مختلف.‬
                                                        ‫–حفاظت از حافظه در برابر دسترسي هاي غر مجاز.‬
                                                                ‫ً‬
      ‫•قطعه بندي:يك قطعه مجموعه اي منطقا به هم مرتبط از دستورات ويا داده ها كه داراي يك نام هستند.‬
‫•ديد كلي كاربر از يك برنامه :كاربر ترجيح مي دهد حافظه را بجاي ديدن كلمه هاي پشت سر هم بصورت قطعات‬
                                                                                   ‫مربوط به هم ببيند.‬
                               ‫‪Stack‬‬
            ‫‪Subroutine‬‬
                                   ‫‪Symbol‬‬
                                    ‫‪Table‬‬

           ‫‪SQRT‬‬
                           ‫‪Main‬‬
                         ‫‪Program‬‬



    ‫ديد كاربر از يك برنامه‬
       ‫قطعه بندي قطعه بندي‬

‫•يك طرح مديريت حافظه است كه از ديد كاربر از حافظه حمايت ميكند.‬

                    ‫•فضاي ادرس منطقي مجموعهاي از قطعه هاست.‬

                           ‫•هر قطعه داراي يك نام و يك طول است.‬

        ‫•يك ادرس هم نام قطعه و هم افست درون انرا مشخص ميكند.‬

  ‫•براي سادگي به جاي نام گذاري قطعه ها انها را شماره گذاري مي كنند.‬
                      ‫قطعه بندي قطعه بندي‬

                                                     ‫سختفزار قطعه‬


                   Segment Table

              s

                      limit   base

CPU   (s,d)

                                            Memory
                       y
               <                     +
                  n
              error
                                          ‫قطعه بندي‬

                                                             ‫مثال:چندين مثال از قطعه بندي‬

                                                      1400
     Subroutine     Stack                 Segment 0
                  Segment 3
     Segment 0                                        2400

                         Symbol
                          Table                       3200

  SQRT               Segment 4            Segment 3

Segment 1       Main
               Program                                4300
                                          Segment 2
             Segment 2                                4700

                                          Segment 4
    Logical Address Space
                                                      5700
                                                      6300
                                          Segment 1
                          Segment Table               6700
                            limit base
                         0 1000 1400
                         1 400 6300
                         2 400 4300
                         3 1100 3200
                         4 1000 4700
                    ‫اشتراك قطعهها‬

                                                   ‫به اشتراك گذاشتن قطعه ها‬
  Editor
                        limit   base                43062
                    0 25286 43062
Segment 0           1 4425 68348          Editor
           Data 1      Segment Table
                          (User 1)                  68348
      Segment 1                           Data 1
                                                    72773

  Logical Memory
     (User 1)

                                                    90003
                                          Data 2
                                                    98556

                       limit base
  Editor
                    0 25286 43062
                    1 8550 90003       Physical Memory
Segment 0
                      Segment Table
           Data 2        (User 2)

      Segment 1

Logical Memory
                              ‫صفحه بندي قطعهها‬

          ‫•قطعه ها كه فقط از ديد برنامه تويس وجود دارندنيز ميتوانند مشمول قطعهبندي شوند.‬

            ‫‪Logical address‬‬

‫‪Segment‬‬            ‫‪Page‬‬           ‫‪Word‬‬




   ‫‪Segment table‬‬                 ‫‪Page table‬‬




                      ‫+‬




                                              ‫‪Block‬‬    ‫‪Word‬‬
                                              ‫‪Physical address‬‬
                                        ‫پياده سازي جداول صفحه و قطعه‬

                                                                                           ‫• پياده سازي جداول صفحه‬
                                                                    ‫– استفاده از ثبات ها اگر جدل صفحه كوچك باشند.‬
                                                                                     ‫– پياده سازي در حافظة اصلي‬
                                            ‫• ثبات پاية جدولصفحه )‪(PTBR‬به جدول صفحه )‪(PT‬اشاره ميكند.‬
‫• دو دسترسي به حافظه براي بازيابي يك كلمه از حافظه نياز است(يكي دسترسي به جدول صفحه و ديگري دسترسي به خود كلمه).‬
                                                                               ‫– پياده سازي در حافظة نهان)‪(TLB‬‬
                                            ‫• براي سرعت بخشيدن دسترسي به حافظه از حافظة انجمني استفاده ميشود.‬


                                                                                            ‫• پياده سازي جداول قطعه‬
                                                                                ‫– مشابه حالت جداول صفحه ميباشد.‬
                     ‫صفحه بندي و قطعهبندي‬

                                                                               :‫مثال‬
                                                         ‫• ادرس هاي فيزيكي و منطقي‬
           Logical address format: 16 segments of 256 pages
           each, each page has 256words
             4                  8                 8
           Segment           Page                Word

 20
2 x 32
Physical   Physical address format: 4096 blocks of 256 words
memory     each, each word has 32bits
                      12                          8
                     Block                       Word
                  ‫صفحه بندي و قطعهبندي‬

                                    ‫مثال:نسبت دادن ادرس هاي منطقي به فيزيكي‬


 Hexa
address     Page number
 60000         Page 0             Segment    Page   Block
 60100         Page 1                 6       00     012
                                      6       01     000
 60200         Page 2                 6       02     019
                                      6       03     053
 60300         Page 3                 6       04     A61
 60400         Page 4
 604FF
 (a) Logical address assignment   (b) Segment-page versus
                                      memory block assignment
                          ‫صفحه بندي و قطعهبندي‬

                                                     ‫مثال:نسبت دادن ادرسهاي منطقي به فيزيكي‬
Segment and page table mapping                Logical address (in hexadecimal)
                                          6             02            7E


                              Segment table          Page table            Physical memory
                          0                     00                 00000
                                                                                 Block 0
                                                                   000FF
                          6       35            35      012
                                                36      000
                                                37      019        01200
                                                                                 Block 12
                                                38      053        012FF
                          F       A3            39      A61

                                                                   01900     32-bit word
                                                                   0197E
                                                A3      012        019FF
‫انتقال ثبات‬
    ‫و‬
‫ريزعمل ها‬
‫انتقال ثبات و ريزعمل ها‬

                       ‫زبان انتقال ثبات‬
                            ‫انتقال ثبات‬
                ‫انتقال حافظه و گذرگاه‬
                   ‫ريزعمل هاي حسابي‬
                      ‫ريزعملهاي منطقي‬
                   ‫ريزعمل هاي شيفت‬
                    ‫واحد شيفت حسابي‬
                        ‫سيستم ديجيتالي ساده‬
‫مدارات ترتيبي و ترکيبي مي تواند براي ساختن سيستم هاي ديجيتالي ساده استفاده شود‬



          ‫• سيستمهاي ديجيتالي ساده معموال با يکي از موارد زير شناخته مي شوند:‬
                                         ‫– ثباتهاي ي که در سيستم موجود است.‬
                                           ‫– عملياتي که سيستم انجام مي دهد.‬


                                        ‫• براي شناساي ي يک سيستم بايد بدانيم:‬
                                       ‫– چه عملياتي روي داده ها انجام مي شود.‬
                                       ‫– چه اطالعاتي بين ثباتها منتقل مي شود.‬
                    ‫ريزعمل ها(1)‬

‫• عملياتي که روي داده ها در ثباتها انجام مي شود ريز عمل ناميده مي شود.‬

               ‫• عمليات داخلي ثباتها نمونه هاي ي از ريزعمل ها هستند.‬
                                            ‫شيفت ‪Shift‬‬         ‫–‬
                                          ‫بار کردن ‪Load‬‬        ‫–‬
                                         ‫پاک کردن ‪Clear‬‬        ‫–‬
                                    ‫اضافه کردن ‪Increment‬‬       ‫–‬
                                                       ‫...‬     ‫–‬
                                  ‫ريزعمل ها(2)‬
‫يک عمليات پايه که روي داد هاي ذخيره شده در يک يا چند ثبات در طي يک‬
                                     ‫پالس انجام مي شود ريزعمل نام دارد.‬




                       ‫‪Registers‬‬                    ‫‪ALU‬‬              ‫يک سيکل ساعت‬
                          ‫)‪(R‬‬                        ‫)‪(f‬‬




‫)‪R  f(R, R‬‬
                  ‫‪ f‬مي تواند ‪،subtract ،add ،increment ،clear ،load ،shift‬‬
                                       ‫‪ xor ،and ، complement‬يا ... باشد.‬
‫سازمان کامپيوتر‬
         ‫•تعريف سازمان(‪ )organization‬داخلي کامپيوتر‬



                                        ‫-مجموعه ثباتها‬

                                    ‫-مجموعه ريزعمل ها‬

‫-سيگنال هاي کنترلي که ترتيب ريزعمل ها را مشخص مي کنند.‬
                      ‫سطح انتقال ثبات‬

‫• بررسي کاميوتر از اين منظر سطح انتقال ثبات( ‪register transfer‬‬
                                   ‫‪ )level‬ناميده مي شود.‬
                          ‫• در اين سطح تمرکز بر موارد زير است‬

                                                   ‫– ثباتهاي سيستم‬
                                        ‫– تبديل داده ها درون ثباتها‬
                                         ‫– انتالل داده ها بين ثباتها‬
                                  ‫زبان انتقال ثبات‬

   ‫• به جاي مشخص کردن يک سيستم با کلمات، ان را با يک نوتيشن خاص که زبان انتقال‬
                                                  ‫ثبات ناميده مي شود نشان ميدهند.‬

‫• زبان انتقال ثبات مي تواند براي نشان دادن هر ترتيب از ريزعمل ها مورد استفاده قرار گيرد.‬
                                                                      ‫• زبان انتقال ثبات:‬
                                                               ‫– يک زبان سمبوليک است.‬
                          ‫– يک ابزار اسان براي شرح سازمان داخلي کامپيوترهاي ديجيتال است.‬
                                      ‫– فرايند طراحي سيستم هاي ديجيتال را تسهيل مي کند.‬
                                 ‫نامگذاري ثباتها‬

‫• ثباتها معموال با حروف بزرگ نامگذاري مي شوند. گاهي اوقات پس از اسم انها اعداد قرار مي‬
                                                          ‫گيرد.)‪(A, R13, IR‬‬
                          ‫• اغلب نامها نشان دهنده کاري است که ثبات انجام مي شود مثال:‬
   ‫‪– MAR‬‬          ‫‪- memory address register‬‬
   ‫‪– PC‬‬           ‫‪- program counter‬‬
   ‫‪– IR‬‬           ‫‪- instruction register‬‬

              ‫• ثباتها و محتواي انها به طور نمادين مي تواند به صورت هاي زير انجام شود‬
                                   ‫‪MAR‬‬

                                                     ‫– به صورت يک موجوديت واحد:‬
                         ‫بلوک دياگرام‬
                                                 ‫•روش هاي معمول رسم بلوک دياگرام ثباتها‬


Register                                Showing individual bits
                R1                           7     6    5    4     3   2    1    0

 15                            0        15                   8 7                  0
                    R2                            PC(H)                 PC(L)
Numbering of bits                       Subfields
                    ‫انتقال ثبات‬

          ‫• کپ ي شدن اطالعات يک ثبات به ثبات ديگر انتقال ثبات نام دارد.‬

                       ‫• يک انتقال ثبات به شکل زير نشان داده مي شود:‬
‫1‪R2  R‬‬

          ‫– در اين حالت محتواي ثبات 1‪ R‬به 2‪ R‬منتقل مي شود.‬
                            ‫– انتقال در يک پالس انجام مي شود.‬
                                ‫– محتواي 1‪ R‬تغييير نمي کند.‬
          ‫انتقال ثبات‬

                                    ‫• يک انتقال ثبات مثل زير:‬

‫5‪R3  R‬‬

                        ‫موارد زير را در سيستم ايجاب مي کند:‬

                       ‫– خطوط انتقال از 3‪ R‬به 5‪R‬‬
                             ‫– بار شدن موازي در 3‪R‬‬
                  ‫– خطوط کنترل الزم براي انجام عمليات‬
                              ‫توابع كنترلي‬
       ‫اغلب اوقات عمليات ها فقط زماني که يک شرط خاص برقرار باشد بايد اجرا شوند.‬       ‫•‬
                                    ‫اين مساله شبيه ‪ if‬در زبان هاي برنامه نويسي است.‬   ‫•‬
‫در سيستم هاي ريجيتال شرط با يک سيگنال کنترلي (‪ )control signal‬يا تابع‬                 ‫•‬
                                   ‫کنترلي (‪ )control function‬انجام مي شود‬
                                          ‫تابع کنترلي به شکل زير نشان داده مي شود:‬    ‫•‬

 ‫1‪P: R2  R‬‬

             ‫بدين معني که اگر ‪ P‬برابر 1 بود انتقال از 1‪ R‬به 2‪ R‬انجام شود. يا:‬
 ‫)1‪if (P = 1) then (R2  R‬‬
                    ‫پياده سازي سخت افزاري انتقاالت کنترلي‬

‫1‪P: R2  R‬‬



                                   ‫‪Control‬‬         ‫‪P‬‬       ‫‪Load‬‬
     ‫بلوک دياگرام‬                  ‫‪Circuit‬‬
                                                                           ‫2‪R‬‬       ‫‪Clock‬‬
                                                                                ‫‪n‬‬
                                                                           ‫1‪R‬‬


                                                       ‫‪t‬‬          ‫1+‪t‬‬
                           ‫‪Clock‬‬
‫دياگرام زمان بندي‬
                           ‫‪Load‬‬
                                 ‫‪Transfer occurs here‬‬


                           ‫فرض مي شود است که ثبات ها حساس به لبه مثبت هستند•‬
                         ‫عمليات همزمان‬

‫• اگر تعداد دو يا بيشتر عمليات همزمان انجام شود انها را با کاما (،) از هم‬
                                                          ‫جدا مي کنيم.‬


 ‫‪P: R3  R5, MAR  IR‬‬

    ‫• در اينجا اگر 1=‪ P‬باشد، به طور همزمان 5‪ R‬به 3‪ R‬و ‪ IR‬به‬
                                    ‫‪ MAR‬منتقل مي شود.‬
                    ‫عالئم اوليه‬



‫مثال‬                      ‫شرح‬                                    ‫سمبل‬
         ‫2‪MAR, R‬‬                 ‫نشان دهنده يک ثبات‬             ‫حروف بزرگ‬
       ‫)‪R2(0-7), R2(L‬‬           ‫نشان دهنده قسمتي از يک ثبات‬               ‫پرانتز ()‬
          ‫1‪R2  R‬‬               ‫نشان دهنده انتقال اطالعات‬              ‫پيکان ‪‬‬
                 ‫:‪P‬‬              ‫نشان دهنده پايان تابع کنترلي‬           ‫دو نقطه :‬
       ‫‪A  B, B  A‬‬                     ‫جدا کننده دو ريز عمل‬                ‫کاما ،‬
                    ‫ارتباط بين ثبات ها‬

   ‫• در يک سيستم ديجيتال با ثباتهاي فراوان، اتصال مستقيم هر ثبات با‬
                                      ‫ثالت ديگر امکان پذير نيست.‬
  ‫• براي اتصال ‪ n‬ثبات به يکديگر به )1-‪n(n‬خط ارتباطي نياز است.‬
                                                   ‫• هزينه: )2‪O(n‬‬
                      ‫– براي سيستم هاي با تعداد ثبات زياد عملي نيست‬


   ‫• به جاي اين کار از يک مجموعه مدار متمرکز به نام گذرگاه ‪ bus‬براي‬
                                    ‫انتقال اطالعات استفاده مي شود.‬
‫• همچنين مدارهاي کنترلي براي اينکه تعيين کنيم کدام ثبات، ثبات منبع و‬
                                              ‫کدام ثبات مقصد است.‬
                                                        ‫گذرگاه‬
.‫گذرگاه يک مسير(متشکل يک از گروه از سيم ها) که اطالعات روي ان منتقل مي شود. انتقال مي تواند از منابع مختلف به مقاصد مختلف باشد‬

                                                                                          BUS  R :‫از يک ثبات به گذرگاه‬

                                       Register A       Register B           Register C       Register D



                                        Bus lines



                                   Register A       Register B         Register C         Register D
                                   1 2 3 4          1 2 3 4            1 2 3 4            1 2 3 4


                                        B1 C1 D 1        B2 C2 D 2           B3 C3 D 3        B4 C4 D 4

                                   0                0                  0                  0
                                        4 x1             4 x1                4 x1             4 x1
                                        MUX              MUX                 MUX              MUX

                          x
                         select
                          y


                                                                4-line bus
                                     ‫انتقال از گذرگاه به يک ثبات‬
                          ‫خطوط گذرگاه‬

                                                                                   Load
                           Reg. R0           Reg. R1     Reg. R2      Reg. R3



                                                  D 0 D1 D2 D 3
                                         z                            E (enable)
                                  Select               2x4
                                         w
                                                      Decoder

‫بافر سه حالته‬
                Normal input A                                     Output Y=A if C=1
                                                                   High-impedence if C=0
                Control input C


‫گذرگاه با بافر سه حالته‬
                                                                   Bus line for bit 0
                                                   A0
                                                   B0
                                                   C0
                                                   D0

                                             S0          0
                                Select                   1
                                             S1          2
                                Enable                   3
          ‫نشان دادن انتقال گذرگاه در ‪RTL‬‬

 ‫• انتقال ثبات از طريق گذرگاه مي تواند به يکي از دو شکل زير نشان داده شود.‬

      ‫1‪R2  R‬‬

                                                                        ‫يا‬
      ‫‪BUS  R1, R2  BUS‬‬




‫• در اولي گذرگاه به ضمني وجود دارد درحاليکه در دومي به طور صريح بيان شده‬
                                                                ‫است.‬
                                     ‫حافظه )‪(RAM‬‬
      ‫حافظه )‪ (RAM‬مداري است ترکيبي که شامل تعدادي ثبات است.‬                    ‫•‬
                           ‫هر ثبات يک کلمه (‪ )word‬را تشکيل مي دهد.‬             ‫•‬
                                      ‫هر ثبات با يک ادرس مشخص مي شود.‬          ‫•‬
                              ‫براي ‪ r‬ثبات ادرس دهي از 0 تا 1-‪ r‬مي باشد.‬        ‫•‬
                               ‫هر ثبات (کلمه) مي تواند ‪ n‬بيت را ذخيرا کند.‬
                ‫‪data input lines‬‬                                               ‫•‬
   ‫يک ‪ RAM‬با ‪ r = 2k‬کلمه را در نظر بگيريد‪ .n‬اين ‪ RAM‬به موارد‬                   ‫•‬
‫‪address lines‬‬
              ‫‪k‬‬
                                                              ‫زير نياز دارد:‬
                      ‫‪RAM‬‬
                                                      ‫– ‪ n‬خط داده ورودي‬
 ‫‪Read‬‬
                      ‫‪unit‬‬
 ‫‪Write‬‬
                          ‫‪n‬‬                          ‫– ‪ n‬خط داده خروجي‬
                                                           ‫– ‪ k‬خط ادرس‬
                 ‫‪data output lines‬‬


                                                   ‫– يک خط کنترل خواندن‬
                                  ‫انتقال حافظه‬
   ‫• در سطح انتقال ثبات يک حافظه به صورت يک نماد ‪ M‬نشان داده مي‬
                                                         ‫شود.‬
  ‫• چون يک حافظه شامل چندين ادرس مختلف است، بايد جاي مورد نظر‬
                                         ‫در حافظه مشخص شود.‬
      ‫• در سيستم هاي کامپيوتريبراي دستيابي به حافظه، ادرس دلخواه در يک ثبات‬
                                                  ‫مشخص قرار داده مي شود.‬
  ‫• اين ثبات ‪ MAR( Memory Address Register‬يا ‪)AR‬‬
                                                   ‫ناميده مي شود. ‪Memory‬‬‫‪Read‬‬
                            ‫‪AR‬‬
                                                     ‫‪unit‬‬               ‫‪Write‬‬
‫• وقتي حافظه دستيابي مي شود، محتواي ‪ MAR‬به عنوان ادرس روي خطوط ادرس‬
                                                 ‫د ‪ out Data‬مي‬
                                           ‫حافظه مور‪ in‬استفاده قرار‪Data‬گيرد.‬
                                                     ‫‪M‬‬
                    ‫خواندن از حافظه‬


‫• براي خواندن از يک کلمه حافظه زبان انتقال ثبات به شکلي شبيه زير‬
                                                ‫نوشته مي شود:‬
            ‫]‪R1  M[MAR‬‬




                    ‫• براي انجام مثال فوق اعمال زير انجام مي پذيرد:‬
               ‫– محتواي ‪ MAR‬روي خطوط ادرس فرستاده مي شود.‬
       ‫– سيگنال )1 =( ‪ Read‬به واحد حافظه فرستاده مي شود.‬
           ‫– محتواي ادرس مشخص شده روي خطوط داده قرار مي گيرد.‬
                    ‫– اين مقدار از گذرگاه به ثبات 1‪ R‬منتقل مي شود.‬
                    ‫نوشتن در حافظه‬


‫• براي خواندن از يک کلمه حافظه زبان انتقال ثبات به شکلي شبيه زير‬
                                                ‫نوشته مي شود:‬
            ‫1‪M[MAR]  R‬‬




                   ‫• براي انجام مثال فوق اعمال زير انجام مي پذيرد:‬
               ‫– محتواي ‪ MAR‬روي خطوط ادرس فرستاده مي شود.‬
        ‫– سيگنال )1 =( ‪ write‬به واحد حافظه فرستاده مي شود.‬
                      ‫– اين مقدار ثبات 1‪ R‬به گذرگاه منتقل مي شود.‬
                ‫– مقدار به محل مشخص شده در حافظه منتقل مي شود.‬
                   ‫مروري بر ريز عمل هاي انتقال ثبات‬

‫‪A B‬‬
‫)‪AR  DR(AD‬‬                                                  ‫انتقال از ثبات ‪ A‬به ثبات ‪B‬‬
                                         ‫انتقال قسمت ‪ AD‬از ثبات ‪ DR‬به ثبات ‪AR‬‬
‫‪A  constant‬‬
                                                           ‫انتقال مقدار ثابت باينري به ‪A‬‬
‫‪ABUS‬‬   ‫‪ R1, R2  ABUS‬‬                  ‫انتقال همزمان از 1‪ R‬به گذرگاه و از گذرگاه به 2‪R‬‬
‫‪AR‬‬                                                                           ‫ثبات ادرس‬
‫‪DR‬‬                                                                            ‫ثبات داده‬
‫]‪M[R‬‬                                                 ‫کلمه حاقظه مشخص شده با ثبات ‪R‬‬
‫‪M‬‬                                         ‫گاهي اوقات به جاي ]‪ M[AR‬به کار مي رود.‬
                                        ‫انتقال از کلمه مشخص شده با ‪ AR‬به ثبات ‪DR‬‬
‫‪DR  M‬‬
                                        ‫انتقال از ثبات ‪ DR‬به کلمه مشخص شده با ‪AR‬‬
‫‪M  DR‬‬
                       ‫انواع ريزعمل ها‬


‫• ريزعمل ها در سيستم کامپيوتري به چهار دسته مختلف تقسيم مي شوند:‬

                                                            ‫ريزعمل هاي انتقال ثبات‬
                                                                   ‫ريزعمل هاي حسابي‬
                                                                   ‫ريزعمل هاي منطقي‬
                                                                   ‫ريزعمل هاي شيفت‬
                                ‫ريزعمل هاي حسابي‬
                                                  ‫• ريزعمل هاي حسابي پايه عبارت اند:‬
                                                                                ‫– جمع‬
                                                                               ‫– تفريق‬
                                                                       ‫– افزايش يک واحد‬
                                                                       ‫– کاهش يک واحد‬

                                                    ‫ريزعمل هاي معمول حسابي‬
‫‪R3 ‬‬   ‫2‪R1 + R‬‬                         ‫جمع‬
‫‪R3 ‬‬   ‫2‪R1 - R‬‬       ‫تفريق‬
‫‪R2 ‬‬   ‫’2‪R‬‬           ‫مکمل يک 2‪R‬‬
‫‪R2 ‬‬   ‫1 +’2‪R‬‬        ‫مکمل دو2‪R‬‬
‫‪R3 ‬‬   ‫1 +’2‪R1 + R‬‬                     ‫تفريق‬
‫‪R1 ‬‬   ‫1 + 1‪R‬‬         ‫افزايش يک واحد‬
‫‪R1 ‬‬   ‫1 - 1‪R‬‬                             ‫کاهش يک واحد‬
                             ‫افزايشگر، جمع کننده و تفريق کننده دودوي ي‬
                                  B3            A3        B2         A2        B1        A1        B0        A0
    Binary Adder
                                                     C3                   C2                  C1                      C0
     ‫جمع کننده دودوي ي‬                 FA                      FA                   FA                  FA


                           C4              S3                   S2                  S1                  S0

Binary Adder-Subtractor
   ‫ جمع کننده-تفريق کننده دودوي ي‬B3    A3             B2    A2             B1       A1         B0       A0

                                                                                                                       M




                                  FA            C3        FA         C2        FA        C1        FA        C0



                      C4              S3                   S2                   S1                  S0

     Binary Incrementer               A3                   A2                   A1                      A0        1
          ‫افزايشگر دودوي ي‬
                                      x         y           x        y              x     y              x        y
                                       HA                      HA                    HA                  HA
                                      C     S               C        S              C    S               C    S



                                      C4    S3                       S2                  S1                   S0
                              ‫مدار عمليات حسابي‬
          Cin
          S1
          S0
          A0                                        X0          C0
                                         S1                                 D0
                                         S0               FA
          B0                             0 4x1      Y0          C1
                                         1 MUX
                                         2
                                         3
          A1                                        X1          C1
                                         S1               FA                D1
                                         S0
          B1                             0 4x1      Y1          C2
                                         1 MUX
                                         2
                                         3
          A2                                        X2          C2
                                         S1               FA                D2
                                         S0
          B2                             0 4x1      Y2          C3
                                         1 MUX
                                         2
                                         3
          A3                                        X3          C3
                                         S1               FA                D3
                                         S0
          B3                             0 4x1      Y3          C4
                                         1 MUX
                                         2
                                         3                                  Cout
                0              1



S1   S0   Cin       Y    Output                          ‫ريزعمل ها‬
0     0   0         B    D=A+B                                ‫جمع‬     Add
0     0   1         B    D=A+B+1                  ‫جمع با بيت انتقال‬   Add with carry
0    1    0         B’   D = A + B’               ‫تفريق با بيت قرضي‬   Subtract with borrow
0     1   1         B’   D = A + B’+ 1                       ‫تفريق‬    Subtract
1     0   0         0    D=A                              A ‫انتقال‬    Transfer A
1     0   1         0    D=A+1                           A ‫افزايش‬     Increment A
1     1   0         1    D=A-1                            A ‫کاهش‬      Decrement A
1     1   1         1    D=A                              A ‫انتقال‬    Transfer A
                              ‫ريز عمل هاي منطقي‬
‫• ريز عمل هاي منطقي ريزعمل هاي ي هستند که عمليات دودوي ي را روي رشته اي از بيت‬
                                                      ‫هاي ثبات انجام مي دهند.‬
‫– عمليات منطقي روي يک بيت داده کار مي کنند به همين دليل به انها ‪ bit-wise‬مي گويند.‬
‫مثال در يک ثبات هشت بيتي وقتي عمل ‪ not‬انجام مي شود روي هر بيت به طور مستقل انجام‬
                                                                         ‫مي شود.‬
 ‫– از عمليات منطقي مي 51‪ F‬براي دستکار … 2‪)bit manipulations (F‬داده به کار‬
                       ‫تواند 41‪ F13 F‬ي بيتي 1‪A B F0 F‬‬
                       ‫1 1 1 … 0 0 0 0 0‬                                     ‫رود.‬
                     ‫1 1 1 … 0 0 0 1 0‬
    ‫به طور کلي 61 عمليات متفاوت منطقي …تواند ر0ي دو متغير دودوي ي انجام شود.‬
                     ‫1 1 0 مي 1 و 0 0 1‬                                              ‫•‬
                     ‫1 0 1 … 0 1 0 1 1‬
                   ‫ليست ريزعمل هاي منطقي‬
                                                                 ‫• ليست ريزعمل هاي منطقي‬
                                                                ‫-61 عمل منطقي مختلف روي 2 متغير‬
                                                                       n
                                                                  22
                                                       .‫عمل منطقي تعريف کرد‬   ‫ متغير مي توان‬n ‫با‬

                                                         ‫• جدول ارزش براي دو متغير دودوي ي‬
x 0011   Boolean           Micro-
                                             Name
y 0101   Function          Operations
  0000     F0 = 0          F0                Clear
  0001     F1 = xy         FAB              AND
  0010     F2 = xy'        F  A  B’
  0011     F3 = x          FA              Transfer A
  0100     F4 = x'y        F  A’ B
  0101     F5 = y          FB              Transfer B
  0110     F6 = x  y      FAB          Exclusive-OR
  0111     F7 = x + y      FAB              OR
  1000     F8 = (x + y)'   F  A  B)’       NOR
  1001     F9 = (x  y)'    F  (A  B)’ Exclusive-NOR
  1010     F10 = y'        F  B’        Complement B
  1011     F11 = x + y'    FAB
  1100     F12 = x'         F  A’       Complement A
  1101     F13 = x' + y     F  A’ B
  1110     F14 = (xy)'      F  (A  B)’    NAND
  1111     F15 = 1          F  all 1's    Set to all 1's
          ‫پياده سازي سخت افزاري عمليات منطقي‬
          Ai
                                0
          Bi

                                1
                                    4X1    Fi
                                    MUX
                                2

                                3 Select

          S1
          S0




               ‫جدول توابع‬
S1   S0    Output             -operation
0    0    F=AB               AND
0    1    F=AB               OR
1    0    F=AB               XOR
1    1    F = A’            Complement
                          ‫کاربردهاي ريزعملهاي منطقي‬
 ‫• ريزعمل هاي منطقي مي توانند براي دستکاري بيتي مورد استفاده قرار گيرند. يعني براي‬
                                     ‫تغيير بيت هاي يک قسمت دلخواه از يک ثبات.‬

‫• فرض کنيد داده ها در ثبات ‪ A‬هستند. ثبات ‪ B‬مي تواند براي تغيير محتويات ‪ A‬به کار‬
                                                       ‫يک کردن انتخابي‬    ‫رود.‬
                                                       ‫مکمل کردن انتخابي‬
                                                        ‫پاک کردن انتخابي‬

   ‫‪– Selective-set‬‬             ‫‪  A‬ماسک )حذف)‬
                                        ‫‪A‬‬
                                  ‫پاک کردن‬
     ‫‪+B‬‬                           ‫درج کردن‬
   ‫‪– Selective-complement A  A  B‬‬  ‫مقايسه‬

   ‫‪– Selective-clear‬‬      ‫’‪A  A • B‬‬
   ‫)‪– Mask (Delete‬‬             ‫‪AA•B‬‬
   ‫‪– Clear‬‬                ‫‪AAB‬‬
                           ‫يک کردن انتخابي‬


‫• در يک کردن انتخابي ‪ B‬براي تعيين بيت هاي ي از ‪ A‬که قرار است يک شوند‬
                                           ‫مورد استفاده قرار مي گيرد.‬
               ‫0011‬             ‫‪At‬‬
               ‫0101‬             ‫‪B‬‬
               ‫0111‬             ‫)‪At+1 (A  A + B‬‬

  ‫• به ازاي بيت هاي ي که در ‪ B‬مقدار يک دارند، بيت هاي معادل انها در ‪A‬‬
                   ‫يک مي شود. بقيه بيت هاي ‪ A‬بدون تغيير مي مانند.‬
                        ‫مکمل کردن انتخابي‬


‫• در مکمل کردن انتخابي ‪ B‬براي تعيين بيت هاي ي از ‪ A‬که قرار است يک‬
                                   ‫شوند مورد استفاده قرار مي گيرد.‬

             ‫0011‬            ‫‪At‬‬
             ‫0101‬            ‫‪B‬‬
             ‫0110‬            ‫)‪At+1 (A  A  B‬‬
‫• به ازاي بيت هاي ي که در ‪ B‬مقدار يک دارند، بيت هاي معادل انها در ‪A‬‬
     ‫مکمل(‪ )NOT‬مي شود. بقيه بيت هاي ‪ A‬بدون تغيير مي مانند.‬
                               ‫پاک کردن انتخابي‬


 ‫• در مکمل کردن انتخابي ‪ B‬براي تعيين بيت هاي ي از ‪ A‬که قرار است پاک(صفر) شوند‬
                                                     ‫مورد استفاده قرار مي گيرد.‬

                 ‫0011‬               ‫‪At‬‬
                 ‫0101‬               ‫‪B‬‬
                 ‫0010‬               ‫1+‪At‬‬       ‫(’‪(A  A  B‬‬

‫• به ازاي بيت هاي ي که در ‪ B‬مقدار يک دارند، بيت هاي معادل انها در ‪ A‬صفر مي شود.‬
                                          ‫بقيه بيت هاي ‪ A‬بدون تغيير مي مانند.‬
                              ‫عمليات ماسک کردن‬


   ‫• در عمل ماسک کردن ‪ B‬براي تعيين بيت هاي ي از ‪ A‬که قرار است پاک(صفر) شوند‬
                                                     ‫مورد استفاده قرار مي گيرد.‬



                  ‫0011‬               ‫‪At‬‬
                  ‫0101‬               ‫‪B‬‬
                  ‫0001‬               ‫1+‪At‬‬      ‫)‪(A  A  B‬‬

‫• به ازاي بيت هاي ي که در ‪ B‬مقدار صفر دارند، بيت هاي معادل انها در ‪ A‬صفر مي شود.‬
                                          ‫بقيه بيت هاي ‪ A‬بدون تغيير مي مانند.‬
                             ‫عمليات پاک کردن‬


‫• در عمل پاک کردن اگر بيت هاي ‪ A‬و ‪ B‬مشابه بود، بيت معادل در ‪ A‬صفر مي شود،‬
                                       ‫در غير اين صورت بدون تغيير مي ماند.‬

                ‫0011‬              ‫‪At‬‬
                ‫0101‬              ‫‪B‬‬
                ‫0110‬              ‫1+‪At‬‬      ‫)‪(A  A  B‬‬
                                  ‫عمليات درج‬
  ‫• عمليات درج براي وارد کردن رشته بيت مورد نظر به درون ثبات مورد استفاده قرار مي‬
                                                                           ‫گيرد.‬
                                                           ‫• روش انجام عمل درج:‬
        ‫– ابتدا يک عمل ماسک براي پاک کردن بيت هاي مورد نظر انجام مي شود.‬
‫– سپس يک عمل ‪ OR‬براي قرار دادن بيت هاي جديد مورد استفاده قرار مي گيرد.‬
                                                                      ‫– مثال:‬
           ‫• فرض کنيد مي خواهيم 0101 را به قسمت کم ارزش ثبات ‪ A‬وارد کنيم.‬
       ‫•‬         ‫1000 1101 0001 1011‬     ‫)‪A (Original‬‬
                                   ‫0101 1101 0001 1011‬
                 ‫)‪A (Desired‬‬

       ‫1000 1101 0001 1011 •‬                                        ‫‪A‬‬
         ‫)‪(Original‬‬
                     ‫ريز عمل شيفت‬
         ‫• در سيستم هاي ديجيتال سه نوع شيفت مختلف وجود دارد:‬
                                           ‫– شيفت منطقي‬
                                          ‫– شيفت چرخشي‬
                                           ‫– شيفت حسابي‬
                ‫• تفاوت اين شيفت ها در بيت ورودي سريال است.‬
                                                  ‫•عمليات شيفت به راست:‬
‫‪Serial‬‬
‫‪input‬‬




                                                                   ‫‪Serial‬‬
                       ‫‪• A left shift operation‬‬                    ‫‪input‬‬
                         ‫شيفت منطقي‬
                            ‫• در شيفت منطقي بيت ورودي صفر است.‬
        ‫0‬                                ‫• شيفت منطقي به راست:‬


                                                                          ‫0‬
                                              ‫• شيفت منطقي به چپ:‬




                     ‫• در زبان انتقال ثبات از عالئم زير استفاده مي شود:‬
‫‪– shl‬‬       ‫شيفت منطقي به چپ‬
‫‪– shr‬‬       ‫شيفت منطقي به راست‬
                         ‫شيفت چرخشي‬
   ‫• در شيفت چرخشي بيت ورودي سريال، بيت خروجي از سمت ديگر ثبات است.‬

                                               ‫• شيفت چرخشي به راست:‬




                                                 ‫• شيفت چرخشي به چپ:‬




                         ‫• در زبان انتقال ثبات از عالئم زير استفاده مي شود:‬
‫‪– cil‬‬       ‫شيفت چرخشي به چپ‬
                            ‫شيفت حسابي‬
                    ‫شيفت حسابي براي اعداد عالمت دار معني دار است.‬     ‫•‬
             ‫شيفت حسابي به چپ عدد درون ثبات را در 2 ضرب مي کند.‬       ‫•‬
           ‫شيفت حسابي به راست عدد درون ثبات را بر 2 تقسيم مي کند.‬     ‫•‬
‫مهمترين ويژگي شيفت حسابي ان است که به هنگام شيفت (ضرب و تقسيم)‬        ‫•‬
                                          ‫عالمت ثبات را حفظ مي کند.‬
              ‫‪sign‬‬
               ‫‪bit‬‬

                                             ‫• شيفت حسابي به راست:‬

                                                                      ‫0‬
              ‫‪sign‬‬
               ‫‪bit‬‬



                                              ‫• شيفت حسابي به چپ:‬
                               ‫شيفت حسابي‬
                  ‫• در شيفت به چپ بايد مساله سرريز(‪ )overflow‬چک شود.‬
                                                                                   ‫0‬
         ‫‪sign‬‬
          ‫‪bit‬‬




                                     ‫‪V‬‬          ‫اگر قبل از شيفت مقدار دو بيت اخر‬
                                               ‫متفاوت باشد، سرريز رخ داده است.‬



                        ‫• در زبان انتقال ثبات از عالئم زير استفاده مي شود:‬
‫‪– ashl‬‬          ‫شيفت حسابي به چپ‬
‫‪– ashr‬‬          ‫شيفت حسابي به راست‬
                                                                         ‫– مثال:‬
                                               ‫• 2‪R2  ashr R‬‬
                                               ‫• 3‪R3  ashl R‬‬
                  ‫پياده سازي سخت افزاري شيفت ها‬
                             )‫0شيفت به راست(پايين‬
     Serial         Select      )‫1شيفت به چپ(باال‬
     input (IR)


                             S
                                  MUX               H0
                             0
                             1
A0

A1                           S
                                  MUX               H1
                             0
A2                           1

A3
                             S
                                  MUX               H2
                             0
                             1


                             S
                                  MUX               H3
                             0
                             1

     Serial
     input (IL)
                   ‫واحد عمليات شيفت، منطقي، حسابي‬
          S3
          S2              Ci
          S1
          S0
                          ‫واحد‬     Di
                         ‫حسابي‬
                                                  Select
                                                  0 4x1           Fi
                          Ci+1                    1 ‫مالتي پلکسر‬
                                                  2
                                                  3
                                    Ei
                         ‫واحد‬
          Bi
          Ai             ‫منطقي‬
          Ai-1                       shr
          Ai+1                       shl


S3   S2    S1 S0   Cin           ‫عمليات‬           ‫توضيح‬
0     0    0  0    0             F=A             Transfer A
0     0    0  0    1             F=A+1           Increment A
0     0    0  1    0             F=A+B           Addition
0     0    0  1    1             F=A+B+1         Add with carry
0     0    1  0    0             F = A + B’      Subtract with borrow
0     0    1  0    1             F = A + B’+ 1   Subtraction
0     0    1  1    0             F=A-1           Decrement A
0     0    1  1    1             F=A             TransferA
0     1    0  0    X             F=AB           AND
0     1    0  1    X             F=A B          OR
0     1    1  0    X             F=AB           XOR
0     1    1  1    X             F = A’          Complement A
1     0    X  X    X             F = shr A       Shift right A into F
1     1    X   X   X             F = shl A       Shift left A into F
‫سازمان و طراحي‬
 ‫کامپيوتر پايه‬
‫سازمان و طراحي کامپيوتر پايه‬
                                ‫•کدهاي دستورالعمل‬

                                 ‫•ثبات هاي کامپيوتر‬

                                 ‫•دستورات کامپيوتر‬

                                 ‫•زمان بندي و کنترل‬

                                 ‫•چرخه دستورالعمل‬

                        ‫•دستورات مراجعه به حافظه‬

                            ‫•وقفه و ورودي-خروجي‬

                               ‫•تشريح کامل کامپيوتر‬

                                ‫•طراحي کامپيوتر پايه‬

                                 ‫•طراحي واحد انباره‬
                                  ‫مقدمه‬
‫• هر پردازنده طراحي خاص خود(ثبات ها، گذرگاه ها، ريزعمل ها، دستورالعمل‬
                                               ‫هاي ماشين و ... ) را دارد.‬
                              ‫• کامپيوترهاي مدرن ساختار پيچيده اي دارند.‬
                                             ‫• انها شامل موارد زير هستند:‬
                                                            ‫– ثبات هاي فراوان‬
         ‫– چندين واحدهاي محاسباتي هم براي اعداد صحيح هم براي اعداد مميزدار‬
       ‫– استفاده از چندين واحد خط لوله تا به اين ترتيب سرعت اجرا افزايش يابد.‬
                                                                ‫– و موارد ديگر‬


 ‫• در ادامه براي فهم اينکه کامپيوتر چگونه کار مي کند از يک مدل ساده شده‬
 ‫استفاده شده است. اين مدل را اقاي مانو(‪ )Mano‬معرفي کرده و نام انرا‬
‫کامپيوتر پايه گزارده است. اين مدل شبيه کامپيوترهاي ي است که 03 سال پيش‬
                   ‫کامپيوتر پايه‬

‫• کامپيوتر پايه دو جز (‪ )component‬اصلي دارد، پردازنده و حافظه.‬
                                     ‫• حافظه 6904 کلمه دارد.‬
                 ‫– 212 = 6904، يعني به 21 خط ادرس نياز داريم.‬
                                         ‫– هر کلمه 61 بيت طول دارد.‬
                                   ‫‪CPU‬‬                ‫‪RAM‬‬
                                                            ‫0‬




                                                 ‫51‬     ‫0‬



                                                            ‫5904‬
                                     ‫دستورالعمل ها‬
                                                                                    ‫• برنامه‬
                                                          ‫– يک دنباله از دستورالعمل ها‬
                                                                             ‫• دستورالعمل‬

         ‫– يک گروه از بيت ها که به کامپيوتر اعالم مي کنند که يک عمل خاص را انجام دهند.‬
                                                                 ‫(يک دنباله از ريزعمل ها)‬
‫دستورالعمل هاي يک کامپيوتر به همراه همه داده هاي الزم در حافظه ذخيره شده اند.‬               ‫•‬
                                       ‫‪ CPU‬دستور بعدي را از حافظه مي خواند.‬                 ‫•‬
                                ‫اين دستور در يک ثبات به نام ‪ IR‬ذخيره شده است.‬               ‫•‬
          ‫دستورالعمل به دنباله اي از ريزعمل ها تبديل مي شود تا با انجام ريزعمل ها‬           ‫•‬
                                                  ‫دستورالعمل مورد نظر اجرا شود.‬
                              ‫فرمت دستوالعمل ها‬
                            ‫• يک دستورالعمل اغلب از دو بخش تشکيل شده است.‬
     ‫– کد عمليات( ‪ :)opcode‬عملي را که دستورالعمل بايد انجام دهد مشخص مي کند.‬
‫– ادرس( ‪ :)address‬ثبات يا جاي ي از حافظه را که دستورالعمل بايد عمل کند مشخص مي‬
                                                                         ‫کند.‬


         ‫• همانطور که گ فتيم در کامپيوتر پايه 21 بيت براي ادرس دهي حافظه داريم.‬
        ‫• در کامپيوتر پايه بيت 51 دستورالعمل مود ادرس دهي( ‪addressing‬‬
                                               ‫‪ )mode‬را مشخص مي کند.‬
                          ‫– صفر: ادرس دهي مستقيم (‪)direct addressing‬‬
                     ‫– يک: ادرس دهي غير مستقيم(‪.)indirect addressing‬‬
                    ‫‪Instruction Format‬‬

 ‫• چون کلمه هاي حافظه و بنابراين دستورالعمل ها 61 بيتي هستند، 3 بيت باقي مانده‬
               ‫41 51‬  ‫11 21‬               ‫0‬
                ‫‪I Opcode‬‬    ‫‪Address‬‬

               ‫‪Addressing‬‬         ‫براي کد دستورالعمل مورد استفاده قرار مي گيرد.‬
                  ‫‪mode‬‬
  ‫مود ادرس دهي)‪)Addressing Mode‬‬
‫• ناحيه ادرس يک دستورالعمل مي تواند به يکي از دو شکل زير تفسير شود:‬
                ‫– ادرس دهي مستقيم: ادرس داده مورد نظر در حافظه (عملوند)‬
      ‫– ادرس دهي غير مستقيم: ادرس ادرس داده مورد نظر در حافظه (عملوند)‬
                  ‫آدرس دهي مستقيم‬                   ‫آدرس دهي غير مستقيم‬

            ‫22‬   ‫‪0 ADD‬‬          ‫754‬          ‫53‬    ‫‪1 ADD‬‬          ‫003‬


                                            ‫003‬            ‫0531‬

           ‫754‬        ‫‪Operand‬‬
                                            ‫0531‬        ‫‪Operand‬‬




                          ‫+‬                                  ‫+‬
                         ‫‪AC‬‬                                 ‫‪AC‬‬
                                   ‫ثبات هاي پردازنده‬
‫• يک پردازنده تعداد زيادي ثبات براي نگهداري دستورالعمل ها ادرس ها و داده ها و ... دارد.‬
‫• پردازنده يک ثبات به نام شمارنده برنامه ‪ (PC) Program Counter‬دارد که‬
                                         ‫ادرس دستوري را که بايد اجرا شود، نگه مي دارد.‬
                      ‫– چون حافظه در کامپيوتر پايه 6904 کلمه دارد پس ‪ 12 PC‬بيتي است.‬
  ‫• در ادرس دهي مستقيم يا غير مستقيم پردازنده براي انکه ادرس عملوند را نگه دارد از يک‬
       ‫ثبات به نام ثبات ادرس ‪ )AR( Address register‬استفاده مي کند.‬
                      ‫– چون حافظه در کامپيوتر پايه 6904 کلمه دارد پس ‪ 12 AR‬بيتي است.‬
‫• پس انکه عملوند در حافظه پيدا شد، در ادرس دهي مستقيم يا غير مستقيم، عملوند به يک‬
             ‫ثبات به نام ثبات داده ‪ )DR( Data Register‬منتقل مي شود.‬
‫• کامپيوتر پايه يک ثبات همه منظوره به نام انباره ‪ )AC( Accumulator‬نيز دارد.‬
                                ‫ثبات هاي پردازنده‬
     ‫• اهميت ثبات همه منظوره ان است که مي توان در دستورات به ان ارجاع داد.‬
‫– مثال مي توان ‪ AC‬را به يک مکان خاص از حافظه منتقل کرد يا مکان خاص از حافظه را‬
                                                            ‫به ‪ AC‬منتقل کرد.‬
 ‫• در کامپيوتر پايه از يک ثبات براي نگهداري داده هاي مياني يا موقتي استفاده شده‬
         ‫است به اين ثبات، ثبات موقتي ‪Temporary Register‬‬
                                                           ‫(‪)TR‬ميگويند.‬
                        ‫• کامپيوتر پايه يک مدل بسيار ساده ورودي/خروجي دارد.‬
                    ‫– دستگاه هاي ورودي کاراک ترهاي 8 بيتي را به پردازنده مي فرستند.‬
                    ‫– پردازنده کاراک ترهاي 8 بيتي را به دستگاه هاي خروجي مي فرستد.‬
‫• ثبات ورودي ‪ )INPR( Input Register‬داده 8 بيتي را که از دستگاه‬
                                        ‫ورودي رسيده است نگه ميدارد.‬
                                              ‫ثبات هاي کامپيوتر پايه‬
‫ثبات ها در کامپيوتر پايه‬

                 ‫11‬                       ‫0‬
                               ‫‪PC‬‬
                                                                 ‫‪Memory‬‬
                 ‫11‬                       ‫0‬
                                                                 ‫61 ‪4096 x‬‬
                               ‫‪AR‬‬
          ‫51‬                              ‫0‬
                      ‫‪IR‬‬                                                                   ‫‪CPU‬‬
          ‫51‬                              ‫0‬           ‫51‬                               ‫0‬
                      ‫‪TR‬‬                                             ‫‪DR‬‬
          ‫7‬           ‫0‬    ‫7‬              ‫0‬           ‫51‬                               ‫0‬
               ‫‪OUTR‬‬            ‫‪INPR‬‬                                  ‫‪AC‬‬


                                    ‫‪List of BC Registers‬‬
          ‫‪DR‬‬          ‫61‬       ‫‪Data Register‬‬          ‫مقدار عملوند را نگه مي دارد‬
          ‫‪AR‬‬          ‫21‬       ‫‪Address Register‬‬       ‫ادرس عملوند را نگه مي دارد‬
          ‫‪AC‬‬          ‫61‬       ‫‪Accumulator‬‬            ‫ثبات همه منظوره‬
          ‫‪IR‬‬          ‫61‬       ‫کد عمليات را نگه مي دارد ‪Instruction Register‬‬
          ‫‪PC‬‬          ‫21‬       ‫‪Program Counter‬‬        ‫ادرس دستورالعمل را نگه مي دارد‬
          ‫‪TR‬‬          ‫61‬       ‫داده هاي موقتي را نگه مي دارد ‪Temporary Register‬‬
          ‫‪INPR‬‬         ‫8‬        ‫‪Input Register‬‬        ‫کاراک تر ورودي را نگه مي دارد‬
          ‫‪OUTR‬‬         ‫8‬       ‫‪Output Register‬‬        ‫کاراک تر خروجي را نگه مي دارد‬
                             ‫سيستم گذرگاه عمومي‬


              ‫• ثبات ها در کامپيوتر پايه با استفاده از گذرگاه به هم متصل شده اند‬
‫• استفاده از گذرگاه نسبت به اتصال مستقيم ثبات ها به هم در سيمبندي صرفه جوي ي‬
                                                                       ‫مي کند.‬
           ‫سيستم گذرگاه عمومي‬     S2
                                  S1        Bus
                                  S0
               Memory unit                   7
                4096 x 16
                               Address
           Write        Read
                    AR                       1

            LD INR CLR
                    PC                       2
            LD INR CLR

                   DR                        3

           LD INR CLR
      E
ALU                AC                        4
          LD INR CLR

            INPR
                   IR                        5
          LD
                   TR                        6
           LD INR CLR
            OUTR
                                    Clock
            LD
      16-bit common bus
                                      ‫سيستم گذرگاه عمومي‬
             Read
                                                                       INPR
 Memory      Write
4096 x 16
            Address                               E         ALU



                                                            AC

                                                   L I   C

                                    L I   C                             L

                         L I   C              DR                  IR           L I   C

                               PC                                             TR

              AR                                                                         OUTR      LD

                   L I    C

   7           1               2              3              4    5           6

                                     ‫گذرگاه عمومي 61 بيتي‬

                                                                                                S0 S1 S2
                              ‫سيستم گذرگاه عمومي‬
‫• سه خط کنترل 0‪ s1 ،s‬و 2‪ s‬کنترل مي کنند که کدام ثبات به عنوان‬
         ‫‪S S S‬‬
         ‫2‬   ‫1‬   ‫0‬‫‪Register‬‬               ‫ثبات ورودي انتخاب شود.‬
        ‫0‬    ‫0‬   ‫0‬   ‫‪x‬‬
        ‫0‬    ‫0‬   ‫1‬   ‫‪AR‬‬
        ‫0‬    ‫1‬   ‫0‬   ‫‪PC‬‬
        ‫0‬    ‫1‬   ‫1‬   ‫‪DR‬‬
        ‫1‬    ‫0‬   ‫0‬   ‫‪AC‬‬
        ‫1‬    ‫0‬   ‫1‬   ‫‪IR‬‬
        ‫1‬    ‫1‬   ‫0‬   ‫‪TR‬‬
        ‫1‬    ‫1‬   ‫1‬   ‫‪Memory‬‬




                                                      ‫• براي خروجي‬
                       ‫– ‪ read‬حافظه يا ‪ load‬ثبات ها فعال مي شود.‬
                         ‫دستوالعمل هاي کامپيوتر پايه‬

                                                ‫•فرمت دستوالعمل هاي کامپيوتر پايه‬


‫51‬     ‫41‬   ‫11 21‬                           ‫0‬               ‫دستورالعمل هاي مراجعه به حافظه‬
 ‫‪I‬‬      ‫‪Opcode‬‬                ‫‪Address‬‬                   ‫)011 ~ 000 = ‪(OP-code‬‬


‫51‬            ‫11 21‬                         ‫0‬
                    ‫‪Register operation‬‬
                                                             ‫دستورالعمل هاي مراجعه به ثبات‬
 ‫0‬   ‫1‬   ‫1‬   ‫1‬
                                                         ‫)0 = ‪(OP-code = 111, I‬‬


‫51‬               ‫11 21‬                      ‫0‬                   ‫دستورالعمل هاي ورودي خروجي‬
 ‫1 1‬     ‫1‬   ‫1‬              ‫‪I/O operation‬‬                   ‫)1 = ‪(OP-code =111, I‬‬
                        ‫دستوالعمل هاي کامپيوتر پايه‬
           Hex Code
 ‫سمبل‬   I=0     I=1               ‫توضيح‬
AND      0xxx 8xxx       AND memory word to AC
ADD      1xxx 9xxx       Add memory word to AC
LDA      2xxx Axxx       Load AC from memory
STA      3xxx Bxxx       Store content of AC into memory
BUN      4xxx Cxxx       Branch unconditionally
BSA      5xxx    Dxxx    Branch and save return address
ISZ      6xxx    Exxx    Increment and skip if zero

CLA         7800         Clear AC
CLE         7400         Clear E
CMA         7200         Complement AC
CME         7100         Complement E
CIR         7080         Circulate right AC and E
CIL         7040         Circulate left AC and E
INC         7020         Increment AC
SPA         7010         Skip next instr. if AC is positive
SNA         7008         Skip next instr. if AC is negative
SZA         7004         Skip next instr. if AC is zero
SZE         7002         Skip next instr. if E is zero
HLT         7001         Halt computer

INP         F800          Input character to AC
OUT         F400          Output character from AC
SKI         F200          Skip on input flag
SKO         F100          Skip on output flag
ION         F080          Interrupt on
IOF         F040          Interrupt off
                        ‫كامل بودن مجموعة دستورالعملها‬
‫هر كامپيوتر بايد مجموعهاي از دستورالعملها را داشته باشد كه كاربر بتواند براي محاسبه هر تابعي كه محاسبه پذير بودن ان محرز است،‬
                                                                                               ‫برنامهاي به زبان ماشين بنويسد.‬

                                                                                         ‫•نوع دستورالعملها‬
                                                                  ‫دستورالعملهاي عملياتي‬
                                                           ‫• حسابي، منطقي و جابجاي ي‬
                           ‫-‪ADD, CMA, INC, CIR, CIL, AND, CLA‬‬
                                                                       ‫•تبادل اطالعات‬
                                       ‫- تبادل اطالعا ت با حافظه وثباتهاي كامپيوتر‬
                                                                 ‫-‪LDA, STA‬‬
                                                                ‫•دستورالعملهاي كنترلي‬
                                        ‫-دستورالعملهاي كنترل برنامه و وارسي شرايط‬
                                                       ‫-‪BUN, BSA, ISZ‬‬
                                                        ‫•دستورالعملهاي ورودي خروجي‬
                                                                  ‫- ورودي خروجي‬
                                                                ‫- ‪INP, OUT‬‬
                               ‫واحد كنترل‬
    ‫• واحد كنترل همة پروسسورها دستورالعملهاي ماشين را به سيگنالهاي كنترلي تبديل‬
                    ‫ميكند. اين سيگنالهاي كنترلي براي كنترل ريزعملها بكار ميروند.‬


                                ‫• واحد كنترل بدو طريق قابل ساخت ميباشد:‬
                                                      ‫• كنترل سختافزاري‬
   ‫– واحد كنترل از مدارهاي تركيبي و ترتيبي ساختهشده است كه كار انها‬
                                     ‫توليد سيگنالهاي كنترلي است.‬
                                                    ‫• كنترل ريزبرنامهنويسي شده‬
‫– يك حافظة كنترلي درپروسسور وجود دارد كه شامل ريزعملهاي ي است كه‬
                              ‫سيگنالهاي كنترلي الزم را توليد ميكند.‬
                        ‫زمانبندي و كنترل‬
                                                         ‫واحد كنترل در كامپيوتر پايه‬
       ‫)‪Instruction register (IR‬‬
‫51‬    ‫21 31 41‬             ‫0 - 11‬             ‫وروديهاي ديگر‬



          ‫8‪3x‬‬
        ‫ديكدر‬
     ‫012 3456 7‬
                             ‫0‪D‬‬
‫‪I‬‬                                              ‫گيتهاي مدار‬
                             ‫7‪D‬‬                                                 ‫خروجيهاي‬
                                                  ‫كنترل‬                           ‫كنترل‬
                             ‫51‪T‬‬
                             ‫0‪T‬‬

     ‫0 1 2 . . . . 41 51‬
         ‫61 ‪4 x‬‬
         ‫ديكدر‬

          ‫‪4-bit‬‬                     ‫)‪Increment (INR‬‬
        ‫‪sequence‬‬                    ‫)‪Clear (CLR‬‬
         ‫‪counter‬‬
          ‫)‪(SC‬‬                      ‫‪Clock‬‬
               ‫سيگنالهاي زمانبندي‬
                                      ‫-بوسيلة دنباله شمار 4 يتي و ديكدر 61*4 توليد ميشود.‬
                                                    ‫-‪ SC‬ميتواند افزايش يافته يا پاك شود.‬
                               ‫بعنوان مثال: . . . ,1‪T0, T1, T2, T3, T4, T0, T‬‬
                     ‫-فرض: در زمان 4‪ SC ، T‬پاك ميشود اگر خروجي ديكدر 3‪ D‬فعال باشد.‬

             ‫‪D3T4: SC ‬‬
        ‫0‪T‬‬   ‫0‬   ‫1‪T‬‬       ‫2‪T‬‬          ‫3‪T‬‬           ‫4‪T‬‬            ‫0‪T‬‬
‫‪Clock‬‬


‫0‪T‬‬


‫1‪T‬‬


‫2‪T‬‬


‫3‪T‬‬


‫4‪T‬‬


‫3‪D‬‬


‫‪CLR‬‬
‫‪SC‬‬
                             ‫واكشي وكدگشاي ي‬
• Fetch and Decode   T0: AR  PC (S0S1S2=010, T0=1)
                     T1: IR  M [AR], PC  PC + 1 (S0S1S2=111, T1=1)
                     T2: D0, . . . , D7  Decode IR(12-14), AR  IR(0-11), I  IR(15)

            T1                                       S2

            T0                                       S1 Bus

                                                     S0
                            Memory
                                                          7
                             unit
                                           Address
                                    Read


                                 AR                       1

                              LD
                                 PC                       2

                                 INR

                               IR                         5

                            LD                  Clock
                           Common bus
                                       ‫تعيين نوع دستورالعمل‬
                                         Start
                                         SC  0

                                                      T0
                                      AR  PC
                                                                 T1
                              IR  M[AR], PC  PC + 1
                                                                   T2
                          Decode Opcode in IR(12-14),
                           AR  IR(0-11), I  IR(15)


              (Register or I/O) = 1                 = 0 (Memory-reference)
                                          D7

             (I/O) = 1             = 0 (register)          (indirect) = 1        = 0 (direct)
                              I                                             I

                         T3                          T3               T3               T3
              Execute                   Execute               AR  M[AR]        Nothing
           input-output           register-reference
            instruction               instruction
             SC  0                    SC  0                           Execute           T4
                                                                   memory-reference
                                                                      instruction
                                                                       SC  0


D'7IT3:      AR  M[AR]
D'7I'T3:     Nothing
D7I'T3:      Execute a register-reference instr.
D7IT3:       Execute an input-output instr.
                   ‫دستورالعملهاي حافظهاي‬
BSA:
       D5T4: M[AR]  PC, AR  AR + 1
       D5T5: PC  AR, SC  0

ISZ: Increment and Skip-if-Zero
        D6T4: DR  M[AR]
        D6T5: DR  DR + 1
        D6T4: M[AR]  DR, if (DR = 0) then (PC  PC + 1), SC  0
                            ‫ليست كلي ريزعملياتها‬
Fetch             RT0:           AR  PC
                  RT1:           IR  M[AR], PC  PC + 1
Decode            RT2:           D0, ..., D7  Decode IR(12 ~ 14),
                                             AR  IR(0 ~ 11), I  IR(15)
Indirect            D7IT3:       AR  M[AR]
Interrupt
     T0T1T2(IEN)(FGI + FGO):   R1
                    RT0:          AR  0, TR  PC
                    RT1:          M[AR]  TR, PC  0
                    RT2:          PC  PC + 1, IEN  0, R  0, SC  0
Memory-Reference
   AND              D0T4:         DR  M[AR]
                    D0T5:         AC  AC  DR, SC  0
   ADD              D1T4:         DR  M[AR]
                    D1T5:         AC  AC + DR, E  Cout, SC  0
   LDA              D2T4:         DR  M[AR]
                    D2T5:         AC  DR, SC  0
   STA              D3T4:         M[AR]  AC, SC  0
   BUN              D4T4:         PC  AR, SC  0
   BSA              D5T4:         M[AR]  PC, AR  AR + 1
                    D5T5:         PC  AR, SC  0
   ISZ              D6T4:         DR  M[AR]
                    D6T5:         DR  DR + 1
                    D6T6:         M[AR]  DR, if(DR=0) then (PC  PC + 1),
                                  SC  0
                              ‫ليست كلي ريزعملياتها‬
Register-Reference
                D7IT3 = r      (Common to all register-reference instr)
                IR(i) = Bi      (i = 0,1,2, ..., 11)
                 r:             SC  0
  CLA            rB11:          AC  0
  CLE            rB10:          E0
  CMA            rB9:           AC  AC
  CME            rB8:           E  E
  CIR            rB7:           AC  shr AC, AC(15)  E, E  AC(0)
  CIL            rB6:           AC  shl AC, AC(0)  E, E  AC(15)
  INC            rB5:           AC  AC + 1
  SPA            rB4:           If(AC(15) =0) then (PC  PC + 1)
  SNA            rB3:           If(AC(15) =1) then (PC  PC + 1)
  SZA            rB2:           If(AC = 0) then (PC  PC + 1)
  SZE            rB1:           If(E=0) then (PC  PC + 1)
  HLT            rB0:           S0

Input-Output     D7IT3 = p      (Common to all input-output instructions)
                 IR(i) = Bi     (i = 6,7,8,9,10,11)
                  p:            SC  0
  INP             pB11:         AC(0-7)  INPR, FGI  0
  OUT             pB10:         OUTR  AC(0-7), FGO  0
  SKI             pB9:          If(FGI=1) then (PC  PC + 1)
  SKO             pB8:          If(FGO=1) then (PC  PC + 1)
  ION             pB7:          IEN  1
  IOF             pB6:          IEN  0

								
To top