CA(for Print)

April 5, 2018 | Author: Anonymous | Category: Documents
Report this link


Description

‫داﻧﺸﮑﺪه ﻓﻨﺎوري اﻃﻼﻋﺎت و ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫دﮐﺘﺮ ﺣﻤﯿﺪ ﺣﺴﻦ ﭘﻮر‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﻫﻮاﻟﻠﻄﯿﻒ‬ ‫ﻓﻬﺮﺳﺖ‬ ‫‪ -2‬آﺷﻨﺎﯾﯽ ﺑﺎ ﺳﻄﻮح ﻃﺮاﺣﯽ و ادوات ﻣﻮرد اﺳﺘﻔﺎده در رﺟﯿﺴﺘﺮﻫﺎ‬ ‫‪ : 1-2‬ﺳﻄﻮح ﻃﺮاﺣﯽ در ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ : 2-2‬ﻣﺎﻟﺘﯽ ﭘﻠﮑﺴﺮ)‪(Multi plexer‬‬ ‫‪ : 3-2‬ﮐﺪﮔﺸﺎ )‪(Decoder‬‬ ‫‪ : 4-2‬ﮐﺪﮔﺬار )‪(encoder‬‬ ‫‪ : 5-2‬آراﯾﻪ ﻣﻨﻄﻘﯽ )‪(Logic Array‬‬ ‫‪ : 6-2‬ﮔﺬرﮔﺎه )‪(BUS‬‬ ‫‪ BUS -1‬اﺧﺘﺼﺎﺻﯽ )‪(dedicated Bus‬‬ ‫‪ BUS -2‬ﻣﺸﺘﺮك ) ‪(Common BUS‬‬ ‫‪ -3‬ﻃﺮاﺣﯽ ﭘﺮدازﻧﺪه‬ ‫‪ : 1- 3‬وﻇﯿﻔﻪ اﺻﻠﯽ ‪CPU‬‬ ‫‪ : 2-3‬وﻇﯿﻔﻪ ﻓﺮﻋﯽ ‪Cpu‬‬ ‫‪ : 3-3‬ارﺗﺒﺎط ‪ CPU‬ﺑﺎ ‪ I/O‬وﺣﺎﻓﻈﻪ اﺻﻠﯽ‬ ‫‪Memory Mapped I/O : 1-3-3‬‬ ‫‪I/O Mapped I/O : 2-3-3‬‬ ‫‪ : 4-3‬ﻣﺎﺷﯿﻦ وان ﻧﯿﻮﻣﻦ )‪(Von Neuman‬‬ ‫‪٢‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ : 1-4-3‬دﺳﺘﻮراﻟﻌﻤﻠﻬﺎي ﻣﺎﺷﯿﻦ وان ﻧﯿﻮﻣﻦ‬ ‫‪ :2-4-3‬روﺷﻬﺎي ﮔﺴﺘﺮش ﻣﺎﺷﯿﻦ وان ﻧﯿﻮﻣﻦ‬ ‫‪ : 5-3‬ﭘﺮدازش ﻣﻮازي )‪(Parallel Processing‬‬ ‫ﻓﺼﻞ دوم‪ -‬ﻃﺮاﺣﯽ واﺣﺪ ﻣﺤﺎﺳﺒﻪ و ﻣﻨﻄﻖ‬ ‫‪ -1‬ﻧﺤﻮه ﻧﻤﺎﯾﺶ داده در ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ : 1-1‬اﻋﺪاد ﺑﯽ ﺳﯽ دي )‪(BCD‬‬ ‫‪ : 2-1‬اﻋﺪاد اﻓﺰاﯾﺶ ﺳﻪ ﺗﺎﯾﯽ )‪(EX - 3‬‬ ‫‪ : 3-1‬ﮐﺪ ﮔﺮي )‪(Gray‬‬ ‫‪ : 4-1‬ﮐﺪ ﮔﺮي ‪ -‬اﻓﺰاﯾﺶ ﺳﻪ ﺗﺎﯾﯽ )‪(EX-3 Gray‬‬ ‫‪ : 5-1‬اﻋﺪاد ﻣﻤﯿﺰ ﺷﻨﺎور )‪(Floating Point‬‬ ‫‪ -2‬ﻣﺪارات ﺟﻤﻊ ﮐﻨﻨﺪه‬ ‫‪ : 1-2‬ﻃﺮاﺣﯽ ﺟﻤﻊ ﮐﻨﻨﺪه ﮐﺎﻣﻞ )‪(Full Adder‬‬ ‫‪ : 2-2‬ﻃﺮاﺣﯽ ﺟﻤﻊ ﮐﻨﻨﺪه ﺳﺮﯾﺎل )‪(Serial Adder‬‬ ‫‪ : 3-2‬ﻃﺮاﺣﯽ ﺟﻤﻊ ﮐﻨﻨﺪه ﺑﺎ رﻗﻢ ﻧﻘﻠﯽ ﭘﻠﻪاي )‪(Ripple Carry Adder‬‬ ‫‪ : 4-2‬ﻃﺮاﺣﯽ ﺟﻤﻊ ﮐﻨﻨﺪه ﺑﺎ ﭘﯿﺶ ﺑﯿﻨﯽ رﻗﻢ ﻧﻘﻠﯽ )‪(Carry Lookahead Adder‬‬ ‫‪ -3‬ﻣﺪارات ﺿﺮب ﮐﻨﻨﺪه‬ ‫‪ : 1-3‬ﺿﺮب ﮐﻨﻨﺪه ﺑﺮاي دو ﻋﺪد ﻗﺪر ﻣﻄﻠﻖ ﻋﻼﻣﺖ‬ ‫‪٣‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ : 2-3‬ﺿﺮب دو ﻋﺪدﻣﺘﻤﻢ ‪ 2‬ﯾﺎ ‪2’s‬‬ ‫‪ :1-3-3‬روش ﺿﺮب ‪Booth‬‬ ‫‪ : 3-3‬روﺷﻬﺎي ﺳﺮﯾﻊ ﺿﺮب‬ ‫‪ : 2-3-3‬ﺿﺮب ﺑﻪ ﮐﻤﮏ ﻣﺪارات ﺗﺮﮐﯿﺒﯽ )ﺿﺮب آراﯾﻪاي(‬ ‫‪ -4‬ﻣﺪارات ﺗﻘﺴﯿﻢ ﮐﻨﻨﺪه‬ ‫‪ : 1-4‬ﺗﻘﺴﯿﻢ ﺑﻪ روش ﻣﻘﺎﯾﺴﻪاي‬ ‫‪ : 2-4‬ﺗﻘﺴﯿﻢ ﺑﻪ روش ‪Restoring‬‬ ‫‪ : 3-4‬ﺗﻘﺴﯿﻢ ﺑﻪ روش ‪Non Restoring‬‬ ‫‪ -5‬اﻋﻤﺎل اﺻﻠﯽ دراﻋﺪاد ﻣﻤﯿﺰ ﺷﻨﺎور‬ ‫‪ : 1-5‬ﻋﻤﻞ ﺟﻤﻊ دراﻋﺪاد ﻣﻤﯿﺰ ﺷﻨﺎور‬ ‫‪ : 2-5‬ﻋﻤﻞ ﺿﺮب در ﻋﺪد ﻣﻤﯿﺰ ﺷﻨﺎور‬ ‫‪ : 3-5‬ﻣﺪار ﺟﻤﻊ وﺗﻔﺮﯾﻖ دو ﻋﺪد ﻣﻤﯿﺰ ﺷﻨﺎور‬ ‫ﻓﺼﻞ ﺳﻮم ‪ -‬ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل وﺣﺎﻓﻈﻪ‬ ‫‪ -1‬ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل‬ ‫‪ : 1-1‬روش ﺳﯿﻢ ﺑﻨﺪي ﺷﺪه‬ ‫‪State Table Method : 1-1-1‬‬ ‫‪Delay Element Method : 2-1-1‬‬ ‫‪Seqence Counter Method : 3-1-1‬‬ ‫‪ : 2-1‬روش رﯾﺰ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي‬ ‫‪٤‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ : 3-1‬ﻃﺮاﺣﯽ واﺣﺪﮐﻨﺘﺮل ﺑﻪ روش رﯾﺰﺑﺮﻧﺎﻣﻪ ﺳﺎزي )‪(Micro Programmed‬‬ ‫‪ -2‬ﺳﺎزﻣﺎن ﺣﺎﻓﻈﻪ )‪(Memory Organization‬‬ ‫‪ : 1-2‬ﺟﻨﺲ ﺣﺎﻓﻈﻪ‬ ‫‪ : 1-1-2‬ﺣﺎﻓﻈﻪ ﻧﯿﻤﻪ رﺳﺎﻧﺎ )‪(Semiconductor‬‬ ‫‪ : 2-1-2‬ﺣﺎﻓﻈﻪ ﺣﻠﻘﻪ ﻫﺎي ﻣﻐﻨﺎﻃﯿﺴﯽ)‪(Magnetic Core‬‬ ‫‪ : 2-2‬ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺐ ذﺧﯿﺮه ﺳﺎزي اﻃﻼﻋﺎت‬ ‫‪ : 3 -2‬اﻧﻮاع ‪Cache‬‬ ‫‪Direct Mapping -1 -3 -2‬‬ ‫‪Set – Associative – 2 -3 -2‬‬ ‫‪Associative mapping - 3-3-2‬‬ ‫‪: 4-2‬ﺣﺎﻓﻈﻪ اﻧﺠﻤﻨﯽ‬ ‫‪-3‬روﺷﻬﺎي ﻣﺘﻔﺎوت اﻧﺘﻘﺎل اﻃﻼﻋﺎت ﺑﯿﻦ ﮐﺎﻣﭙﯿﻮﺗﺮ ودﺳﺘﮕﺎﻫﻬﺎي ﺟﺎﻧﺒﯽ‬ ‫ورودي ‪ /‬ﺧﺮوﺟﯽ )‪(programed I/O‬‬ ‫‪: 1-3‬ﺑﺮﻧﺎﻣﻪ رﯾﺰي‬ ‫‪ : 2-3‬وﻗﻔﻪ)‪( Intrupt‬‬ ‫‪ : 3-3‬دﺳﺘﺮﺳﯽ ﻣﺴﺘﻘﯿﻢ ﺑﻪ ﺣﺎﻓﻈﻪ )‪((Direct Memory Access) DMA‬‬ ‫‪٥‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ -2‬آﺷﻨﺎﯾﯽ ﺑﺎ ﺳﻄﻮح ﻃﺮاﺣﯽ و ادوات ﻣﻮرد اﺳﺘﻔﺎده در رﺟﯿﺴﺘﺮﻫﺎ‬ ‫‪ : 1-2‬ﺳﻄﻮح ﻃﺮاﺣﯽ در ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﻣﯽ داﻧﯿﺪ ﻃﺮاﺣﯽ در ﮐﺎﻣﭙﯿﻮﺗﺮ در ﺳﻪ ﺳﻄﺢ اﻧﺠﺎم ﻣﯽ ﺷﻮد‪.‬‬ ‫‪ (1‬ﺳﻄﺢ ﮔﯿﺖ )‪(Gate Level‬‬ ‫‪ (2‬ﺳﻄﺢ ﺛﺒﺎت )‪(Register Level‬‬ ‫‪ (3‬ﺳﻄﺢ ﭘﺮدازﻧﺪه )‪(Processor Level‬‬ ‫ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﻃﺮاﺣﯽ ﯾﮏ ﺳﺎﻋﺖ دﯾﺠﯿﺘﺎل رادر ﻧﻈﺮ ﻣﯽ ﮔﯿﺮﯾﻢ ‪.‬‬ ‫‪ -1-1-2‬درﺳﻄﺢ ﮔﯿﺖ‬ ‫ﯾﮏ ﻣﺪار ﻣﺠﺘﻤﻊ ) ‪ ( IC‬را در ﻧﻈﺮ ﺑﮕﯿﺮﯾﺪ ﮐﻪ زﻣﺎن راﻣﯽ ﺷﻤﺎرد وﺑﻪ ﺻﻮرت ‪Seven Segment‬‬ ‫ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ ‪.‬‬ ‫‪IC‬‬ ‫‪timer‬‬ ‫)ﺷﮑﻞ ‪(1-2‬‬ ‫‪ -2-1-2‬درﺳﻄﺢ ﺛﺒﺎت‬ ‫‪٦‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫در اﯾﻨﺠﺎ ﺑﻪ ﮐﻤﮏ ﮔﯿﺘﻬﺎي ﻣﻮﺟﻮد ﻃﺮاﺣﯽ را اﻧﺠﺎم ﻣﯽ دﻫﯿﻢ وﺛﺒﺎﺗﻬـﺎﯾﯽ ﮐـﻪ ﮐﺎرﻫـﺎي ﺑﺨﺼﻮﺻـﯽ را‬ ‫اﻧﺠﺎم ﻣﯽ دﻫﻨﺪ ﺑﺎ ﯾﮑﺪﯾﮕﺮ ارﺗﺒﺎط دارﻧﺪ ‪.‬‬ ‫‪ -3-1-2‬در ﺳﻄﺢ ﭘﺮدازﻧﺪه‬ ‫در اﯾﻦ ﺳﻄﺢ واﺣﺪ ﭘﺮدازﻧﺪه ﺳﯿﺴﺘﻢ ﻃﺮاﺣﯽ ﻣﯽ ﺷﻮد‪ ،‬ﮐﻪ اﯾﻦ ﺑﺤﺚ ﻣﺮﺑﻮط ﺑﻪ درس رﯾﺰﭘﺮدازﻧﺪه ﻫﺎ‬ ‫ﻣﯽ ﺑﺎﺷﺪ ‪ .‬در درس ﻣﻌﻤﺎري ﻃﺮاﺣﯽ رﺟﯿﺴﺘﺮﻫﺎ ﻣﻮرد ﺑﺤﺚ اﺳﺖ وﺑﯿﺸﺘﺮ ﻣﻄﺎﻟﺐ ﻣﺮﺑﻮط ﺑـﻪ ﻃﺮاﺣـﯽ‬ ‫ﭘﯿﺎده ﺳﺎزي اﯾﻦ ﻗﺴﻤﺖ از ﮐﺎﻣﭙﯿﻮﺗﺮاﺳﺖ‪.‬‬ ‫‪ : 2-2‬ﻣﺎﻟﺘﯽ ﭘﻠﮑﺴﺮ)‪(Multi plexer‬‬ ‫ﻣﺎﻟﺘﯽ ﭘﻠﮑﺴﺮ ﯾﮏ ﻣﺪار ﺗﺮﮐﯿﺒﯽ اﺳﺖ ﮐﻪ ﺑﻪ ﮐﻤﮏ آن ﻣﯽ ﺗﻮان اﻃﻼﻋﺎت واﻗﻊ در ﭼﻨﺪ ﻣﺴﯿﺮ را ﺑﻪ ﯾﮏ‬ ‫‪n‬‬ ‫ﻣﺴﯿﺮ ﻫﺪاﯾﺖ ﻧﻤﻮد ‪ .‬اﮔﺮ در ﻣﺎﻟﺘﯽ ﭘﻠﮑﺴﺮﻫﺎ ‪ 2‬ﻣﺴﯿﺮ ورودي وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ؛ ‪ n‬ﺧﻂ اﻧﺘﺨﺎب‬ ‫ﺑﺮاي اﯾﻦ ﻣﺴﯿﺮﻫﺎ وﺟﻮد دارد ﮐﻪ ﺑﻪ ﮐﻤﮏ آن ﻣﯽ ﺗﻮان اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ﯾﮏ ﻣﺴﯿﺮ ورودي را ﺑﻪ‬ ‫ﺧﺮوﺟﯽ ﻣﻨﺘﻘﻞ ﻧﻤﻮد‪.‬‬ ‫در ﻣﺎﻟﺘﯽ ﭘﻠﮑﺴﺮ )‪ m ،MUX( m ×n‬ﺗﻌﺪاد ﻣﺴﯿﺮﻫﺎي ورودي و‪ n‬ﺗﻌﺪاد ﺑﯿﺘﻬﺎي ﯾﮏ ﻣﺴﯿﺮ ﻣﯽ ﺑﺎﺷﺪ ‪.‬‬ ‫در ﺷﮑﻞ زﯾﺮ ﯾﮏ ﻣﺎﻟﺘﯽ ﭘﻠﮑﺴﺮ ‪ 4 × 1‬رادارﯾﻢ ‪.‬‬ ‫)ﺷﮑﻞ ‪(2-2‬‬ ‫ﻧﮑﺘﻪ‪ :‬ﻣﺴﯿﺮ ﻫﺮﭼﻨﺪ ﺑﯿﺘﯽ ﺑﺎﺷﺪ ﺧﻂ اﻧﺘﺨﺎب ﻫﻤﯿﺸﻪ ﯾﮏ ﺑﯿﺘﯽ اﺳﺖ وﺑﺎﯾﺪ ﻫﻤﻮاره ارزش آن ﻣﻌﻠﻮم‬ ‫ﺷﻮد‪ .‬ﺧﺮوﺟﯽ ﻧﯿﺰ ﯾﮏ ﻣﺴﯿﺮ ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ ﻫﺮ ﭼﻨﺪ ﺑﯿﺘﯽ ﺑﺎﺷﺪ‪.‬‬ ‫‪٧‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫روﺷﻬﺎﯾﯽ وﺟﻮد دارد ﮐﻪ ﺑﺘﻮان ﻣﺎﻟﺘﯽ ﭘﻠﮑﺴﺮﻫﺎ را ﺑﻪ ﮔﻮﻧﻪاي ﺑﻪ ﻫﻢ ﻣﺮﺗﺒﻂ ﻧﻤﻮد ﺗﺎ ﺗﻌﺪاد ﻣﺴﯿﺮﻫﺎي‬ ‫ورودي وﯾﺎ ﺗﻌﺪاد ﺑﯿﺘﻬﺎي ﺧﺮوﺟﯽ را اﻓﺰاﯾﺶ داد‪.‬‬ ‫اﻓﺰاﯾﺶ ﺗﻌﺪاد ورودي را ﻣﯽ ﺗﻮان ﺑﺮاﺳﺎس اﺗﺼﺎل درﺧﺘﯽ ﻣﺎﻟﺘﯽ ﭘﻠﮑﺴﺮﻫﺎ وﻋﻤﻞ اﻓﺰاﯾﺶ ﺗﻌﺪاد‬ ‫ﺑﯿﺘﻬﺎي ﺧﺮوﺟﯽ را ﻣﯽ ﺗﻮان ﺑﺎ اﺗﺼﺎل ﻣﻮازي ﻣﺎﻟﺘﯽ ﭘﻠﮑﺴﺮﻫﺎ اﻧﺠﺎم داد‪.‬‬ ‫ﻣﺜﺎل ‪ :‬ﺑﺎ اﺳﺘﻔﺎده از )‪ Mux (2 × 2) ، Mux (2 × 1‬را ﻃﺮاﺣﯽ ﮐﻨﯿﺪ ‪.‬‬ ‫)ﺷﮑﻞ ‪(3-2‬‬ ‫ﻣﺜﺎل ‪ :‬ﻣﯽ ﺧﻮاﻫﯿﻢ ﺑﺎ اﺳﺘﻔﺎده از) ‪ ،Mux ( 2 ´ 1‬ﯾﮏ ) ‪ Mux ( 4 × 1‬ﺑﺴﺎزﯾﻢ ‪.‬‬ ‫‪٨‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫)ﺷﮑﻞ ‪(4-2‬‬ ‫‪ -1-2-2‬ﮐﺎرﺑﺮدﻫﺎي ﻣﺎﻟﺘﯽ ﭘﻠﮑﺴﺮ‬ ‫‪ -1‬ﺑﺮاي ﻫﺪاﯾﺖ اﻃﻼﻋﺎت از ﺑﯿﻦ ﭼﻨﺪﯾﻦ ﻣﻨﺒﻊ ورودي‪ ،‬ﺑﻪ ﯾﮏ ﻣﻘﺼﺪ ﺧﺮوﺟﯽ ﻣﺸﺘﺮك ‪.‬‬ ‫‪ -2‬ﺑﺮاي ﭘﯿﺎده ﺳﺎزي ﺗﻮاﺑﻊ ﺑﻮﻟﯽ وﺗﺮﮐﯿﺒﯽ‪.‬‬ ‫‪ -3‬ﺑﺮاي ﻃﺮاﺣﯽ ﺳﯿﺴﺘﻢ ﺑﺎس ﯾﺎ ﮔﺬرﮔﺎه )‪.(BUS‬‬ ‫‪ -2-1-2-2‬ﮐﺎرﺑﺮد ‪ Mux‬در ﻃﺮاﺣﯽ ﺗﻮاﺑﻊ‬ ‫ﻫﺮ ﺗﺎﺑﻊ ‪ n‬ﻣﺘﻐﯿﺮه را ﻣﯽ ﺗﻮان ﺑﻪ ﮐﻤﮏ )‪ MUX( 2 n × 1‬ﭘﯿﺎده ﺳﺎزي ﻧﻤﻮد ‪.‬در اﯾﻦ ﭘﯿﺎده ﺳﺎزي‬ ‫ﻣﺘﻐﯿﺮﻫﺎي ﺗﺎﺑﻊ ﺑﻪ ﺧﻄﻮط اﻧﺘﺨﺎب ﻣﺘﺼﻞ ﺷﺪه وﺑﺴﺘﻪ ﺑﻪ آﻧﮑﻪ اﯾﻦ ﺗﺎﺑﻊ ﺣﺎوي ﭼﻪ ﻣﯿﻨﺘﺮﻣﻬﺎﯾﯽ ﺑﺎﺷﺪ در‬ ‫ورودي ﺑﺮاي ﺷﻤﺎره ﻫﺎي ﻣﺮﺑﻮﻃﻪ ﯾﮏ ﻗﺮار ﻣﯽ دﻫﯿﻢ‪.‬‬ ‫‪٩‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ‪ :‬ﺗﺎﺑﻊ )‪ F(A,B,C) = S (1,2,3,5‬را ﺑﻪ ﮐﻤﮏ )‪ Mux (8 ×1‬ﭘﯿﺎده ﺳﺎزي ﻧﻤﺎﯾﯿﺪ‪.‬‬ ‫ﺳﭙﺲ ﻫﻤﯿﻦ ﺗﺎﺑﻊ را ﺑﺎ اﺳﺘﻔﺎده از )‪ Mux (4 × 1‬ﻃﺮاﺣﯽ ﮐﻨﯿﺪ‪.‬‬ ‫)ﺷﮑﻞ ‪(5-2‬‬ ‫)ﺷﮑﻞ ‪(6-2‬‬ ‫‪١٠‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ : 3-2‬ﮐﺪﮔﺸﺎ )‪(Decoder‬‬ ‫‪n‬‬ ‫ﻣﺪاري ﺗﺮﮐﯿﺒﯽ اﺳﺖ ﺑﺎ ‪ n‬ورودي و ‪ 2‬ﺧﺮوﺟﯽ ﮐﻪ ﺑﺎ اﻋﻤﺎل ﯾﮏ ﮐﺪ ﺑـﻪ ورودي آن ﺗﻨﻬـﺎ‬ ‫ﯾﮏ‬ ‫ﺧﻂ از ﺧﺮوﺟﯽ ﻓﻌﺎل ﻣﯽ ﺷﻮد‪.‬‬ ‫)ﺷﮑﻞ ‪(7-2‬‬ ‫‪ -1-3-2‬ﮐﺎرﺑﺮدﻫﺎي ﮐﺪ ﮔﺸﺎ‬ ‫‪ -1‬ﻧﻤﺎﯾﺶ اﻋﺪاد ﺑﯽ ﺳﯽ دي ﺑﺮ روي ‪Seven Segment‬‬ ‫‪ -2‬آدرس دﻫﯽ ﺧﻄﻮط ﺣﺎﻓﻈﻪ‬ ‫‪ -3‬ﭘﯿﺎده ﺳﺎزي ﺗﻮاﺑﻊ ﺗﺮﮐﯿﺒﯽ‬ ‫ﮐﺎرﺑﺮد اول ‪ -‬ﻧﻤﺎﯾﺶ اﻋﺪاد ﺑﯽ ﺳﯽ دي ﺑﺮ روي ‪“7seg” Seven Segment‬‬ ‫‪١١‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫)ﺷﮑﻞ ‪(8-2‬‬ ‫ﺑﺮاي ﻣﺜﺎل ‪ ، Segment d‬ﻫﻢ در‪ 0‬ﻫﻢ در ‪ 9‬وﺟﻮد دارد‪ .‬ﭘﺲ اﯾﻦ دو ﺳﯿﻢ راﺑﻮﺳﯿﻠﻪ ﮔﺮه ﺑﻪ ﻫﻢ‬ ‫وﺻﻠﯽ ﻧﻤﯽ ﮐﻨﯿﻢ ‪ ،‬ﭼﻮن ‪ IC‬ﻣﯽ ﺳﻮزد‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺎﯾﺪ از ﯾﮏ ﮔﯿﺖ ‪ OR‬ﺑﺮاي اﯾﻦ ﻣﻨﻈﻮر اﺳﺘﻔﺎده ﺷﻮد‪.‬‬ ‫ﮐﺎرﺑﺮد دوم ‪ -‬آدرس دﻫﯽ ﺧﻄﻮط ﺣﺎﻓﻈﻪ‬ ‫ﻣﺜﺎﻟﯽ از ﯾﮏ آدرس دﻫﯽ ﮐﻪ ﺗﻮﺳﻂ ﮐﺪﮔﺸﺎ اﻧﺠﺎم ﻣﯽ ﮔﯿﺮد‪ ،‬ﺛﺒﺎت آدرس ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ آدرس ﻣﺤﻠﯽ‬ ‫ازﺣﺎﻓﻈﻪ را ﺑﻪ ﺻﻮرت ﮐﺪ ﻧﮕﺎه ﻣﯽ دارد ﮐﻪ اﯾﻦ ﮐﺪ ﺑﻮﺳﯿﻠﻪ ﮐﺪ ﮔﺸﺎ رﻣﺰ ﮔﺸﺎﯾﯽ ﻣﯽ ﺷﻮد‪.‬‬ ‫)ﺷﮑﻞ ‪(9-2‬‬ ‫ﮐﺎرﺑﺮد ﺳﻮم ‪ -‬ﭘﯿﺎده ﺳﺎزي ﺗﻮاﺑﻊ ﺗﺮﮐﯿﺒﯽ‬ ‫و ‪ m‬ﻋﺪد ﮔﯿﺖ ‪OR‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪n‬‬ ‫ﻫﺮ ﺗﺎﺑﻊ ﺑﺎ ‪ n‬ورودي و ‪ m‬ﺧﺮوﺟﯽ را ﻣﯽ ﺗﻮان ﺑﻪ ﮐﻤﮏ ﯾﮏ ﮐﺪﮔﺸﺎ‬ ‫ﭘﯿﺎده‬ ‫ﺳﺎزي ﻧﻤﻮد‪.‬‬ ‫‪١٢‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﻣﺜﺎل ‪ :‬ﺑﺎ اﺳﺘﻔﺎده از ﮐﺪ ﮔﺸﺎ وﮔﯿﺘﻬﺎي ﻣﻮرد ﻧﯿﺎز ﯾﮏ ﺟﻤﻊ ﮐﻨﻨﺪه ﮐﺎﻣﻞ )‪ (Full adder‬ﺑﺴﺎزﯾﺪ ‪.‬‬ ‫‪x‬‬ ‫‪y‬‬ ‫‪C‬‬ ‫‪Z‬‬ ‫‪in‬‬ ‫‪C out‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫)ﺷﮑﻞ ‪(10-2‬‬ ‫‪١٣‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ : 4-2‬ﮐﺪﮔﺬار )‪(encoder‬‬ ‫‪n‬‬ ‫ﯾﮏ ﻣﺪار ﺗﺮﮐﯿﺒﯽ ﺑﺎ ‪ 2‬ورودي و ‪ n‬ﺧﺮوﺟـﯽ ﻣـﯽ ﺑﺎﺷـﺪ‪ .‬در ﮐـﺪ ﮔـﺬار در ﺻـﻮرﺗﯿﮑﻪ ﭘﺎﯾـﻪاي از‬ ‫ورودي را ﻓﻌﺎل ﮐﻨﯿﻢ در ﺧﺮوﺟﯽ ﺷﻤﺎره آن ﭘﺎﯾﻪ در اﺧﺘﯿﺎر ﻗﺮار ﻣﯽ ﮔﯿﺮد ود رواﻗﻊ ﻋﮑﺲ ﻋﻤـﻞ ﮐـﺪ‬ ‫ﮔﺸﺎ را اﻧﺠﺎم ﻣﯽ دﻫﻨﺪ‪.‬‬ ‫ﺷﮑﻠﯽ از ﯾﮏ ﮐﺪ ﮔﺬار ﺑﺎ ‪ 4‬ورودي و‪ 2‬ﺧﺮوﺟﯽ‬ ‫)ﺷﮑﻞ‪(11-2‬‬ ‫از ﮐﺎرﺑﺮدﻫﺎي آن ﻣﯽ ﺗﻮان درﯾﺎﻓﺘﻦ آدرس وﻗﻔﻪ ﻫﺎي ﻣﺨﺘﻠﻔﯽ ﮐﻪ ﺑﻪ ﭘﺮدازﻧﺪه اي ﻓﺮﺳﺘﺎده ﻣﯽ ﺷﻮد‬ ‫اﺷﺎره ﮐﺮد‪.‬‬ ‫)ﺷﮑﻞ ‪(12-2‬‬ ‫دﯾﮕﺮ ﻧﯿﺎز ﻧﯿﺴﺖ ﮐﻪ ﺑﺮاي ﻫﺮ وﺳﯿﻠﻪ ﮐﻪ وﻗﻔﻪ ﻧﯿﺎز دارد ‪ ،‬ﺧﻄﻮط ﺟﺪاﮔﺎﻧﻪاي ﺑﺮاي آدرس اﯾﺠـﺎد ﮐـﺮد‬ ‫وﺑﺎ ﯾﮏ ﮐﺪ ﮔﺬار ﻣﯽ ﺗﻮان ‪ 2 n‬وﺳﯿﻠﻪ را ﺑﺎ ‪ n‬ﺧﻂ ‪ ،‬آدرس دﻫﯽ ﻧﻤﻮد‪.‬‬ ‫‪١٤‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫در اﯾﻨﺠﺎ ﻣﺎ ﺑﻪ دو ﻣﺸﮑﻞ ﺑﺮﻣﯽ ﺧﻮرﯾﻢ ‪:‬‬ ‫اﺷﮑﺎل ‪ : (1‬اﮔـﺮ ﺑﻄـﻮر ﻫﻤﺰﻣـﺎن در ورودي ﺑـﯿﺶ از ﯾـﮏ ﺧـﻂ ﻓﻌـﺎل ﺑﺎﺷـﺪ ‪ ،‬ﮐﺪﻧﺎﻣﺸﺨﺼـﯽ رادر‬ ‫ﺧﺮوﺟﯽ ﻣﯽ دﻫﺪ ﮐﻪ اﯾﻦ ﻋﯿﺐ ﮐﺪﮔﺬار اﺳﺖ ﻟﺬا ﮐﺪﮔﺬار ﻫﺎ را ﺑﺎ رﻋﺎﯾﺖ ﺣﻖ ﺗﻘﺪم ﻣﯽ ﺳﺎزﻧﺪ‪ .‬ﺑـﺪﯾﻦ‬ ‫ﺗﺮﺗﯿﺐ ﮐﻪ در ﺻﻮرت ﻓﻌﺎل ﺷﺪن ﺑﯿﺶ از ﯾـﮏ ورودي ﺑـﻪ ﻃـﻮر ﻫﻤﺰﻣـﺎن ‪ ،‬ورودي ﮐـﻪ ﺣـﻖ ﺗﻘـﺪم‬ ‫ﺑﯿﺸﺘﺮداﺷﺘﻪ ﺑﺎﺷﺪ ﻓﻌﺎل ﻣﯽ ﺷﻮد ﮐﻪ ﺑﻪ اﯾﻦ ﮐﺪﮔﺬار ﻫﺎ ‪ Periority encoder‬ﯾﻌﻨﯽ ﮐﺪﮔـﺬار ﺑـﺎ رﻋﺎﯾـﺖ‬ ‫ﺣﻖ ﺗﻘﺪم ﻣﯽ ﮔﻮﯾﻨﺪ‪.‬‬ ‫اﺷﮑﺎل )‪ :(2‬ﻋﯿﺐ دﯾﮕﺮ ﮐﺪﮔﺬار اﯾﻦ اﺳﺖ ﮐﻪ اﮔﺮ ورودي‪ 0001‬وﯾﺎ ‪0000‬ﺑﺎﺷﺪ ‪ ،‬ﺧﺮوﺟـﯽ ‪ 00‬ﻣـﯽ‬ ‫ﺷﻮد ‪ .‬ﺑﻨﺎﺑﺮ اﯾﻦ ﺑـﺎﯾﺪﺧﻄﯽ ﺑـﻪ ﮐـــﺪ ﮔــﺬاراﺿـــﺎﻓﻪ ﺷـﻮد ﮐـﻪ آن را ‪ input Avtive‬ﻣـﯽ ﻧﺎﻣﻨـﺪ‪ .‬در‬ ‫ﺻﻮرﺗﯿﮑﻪ ﻫﺮ ﯾﮏ از ورودﯾﻬﺎ ﻓﻌﺎل ﺑﺎﺷﺪ اﯾﻦ ﺧﻂ ﻓﻌﺎل ﻣﯽ ﺷـﻮد واﮔـﺮ ﻫﯿﺌﮑـﺪام از ورودﯾﻬـﺎ ﻓﻌـﺎل‬ ‫ﻧﺒﺎﺷﺪ ﺧﻂ ‪ input Active‬ﻧﯿﺰ ﻓﻌﺎل ﻧﻤﯽ ﺷﻮد‪.‬ﺑﺪﯾﻨﻮﺳﯿﻠﻪ اﯾﻦ ﻣﺸﮑﻞ ﻧﯿﺰ ﺣﻞ ﻣﯽ ﺷﻮد‪.‬‬ ‫‪ : 5-2‬آراﯾﻪ ﻣﻨﻄﻘﯽ )‪(Logic Array‬‬ ‫ﯾﮏ ﻣﺪار ﺗﺮﮐﯿﺒﯽ اﺳﺖ ﮐﻪ ﺑﻪ ﺻﻮرت آراﯾﻪ ﻫﺎي از دﯾﻮدﻫﺎ ﻣـﯽ ﺑﺎﺷـﺪ ‪ .‬ﮐـﻪ در آن آراﯾـﻪ ﺑـﻪ ﮐﻤـﮏ‬ ‫دﯾﻮدﻫﺎ ﻣﯽ ﺗﻮان ﺻﻔﺮﻫﺎ وﯾﮏ ﻫﺎ را داﺷﺘﻪ ﺑﺎﺷﯿﻢ ‪ .‬ﺑﻪ ﮐﻤﮏ دﯾﻮدﻫﺎ ودر ﻧﺘﯿﺠﻪ آراﯾﻪ ﻣﻨﻄﻘﯽ ﻣﯽ ﺗـﻮان‬ ‫ﮔﯿﺘﻬﺎي ‪ AND‬وﯾﺎ ‪ OR‬را ﺳﺎﺧﺖ ‪ .‬از آﻧﺠﺎﯾﯿﮑﻪ ﻫﺮ ﺗﺎﺑﻊ ﺗﺮﮐﯿﺒﯽ را ﻣـﯽ ﺗـﻮان ﺑـﻪ ﮐﻤـﮏ اﯾـﻦ ﮔﯿﺘﻬـﺎ‬ ‫ﺳﺎﺧﺖ‪،‬ﺑﻨﺎﺑﺮ اﯾﻦ از آراﯾﻪ ﻫﺎي ﻣﻨﻄﻘﯽ ﻣﯽ ﺗﻮان ﺑﺮاي ﺛﯿﺎده ﺳﺎزي ﻫﺮ ﻧﻮع ﺗﺎﺑﻌﯽ اﺳﺘﻔﺎده ﻧﻤـﻮد‪ .‬اﻏﻠـﺐ‬ ‫در ﻣﻮاﻗﻌﯽ ﮐﻪ ﺗﺎﺑﻊ ﺷﻠﻮغ ﺑﺎﺷﺪ اﺳﺘﻔﺎده از آراﯾﻪ ﻣﻨﻄﻘﯽ ﺑﺴﯿﺎر ﻣﻨﺎﺳﺐ ﺧﻮاﻫﺪ ﺑﻮد‪ .‬ﺑﯿﺸـﺘﺮ در ﻃﺮاﺣـﯽ‬ ‫ﻣﯽ ﺷﻮد ‪ .‬ازاﻧﻮاع آراﯾﻪ ﻣﻨﻄﻘﯽ ‪ ،‬ﻣـﯽ ﺗـﻮان ﺑـﻪ‬ ‫واﺣﺪ ﮐﻨﺘﺮل ﮐﺎﻣﭙﯿﻮﺗﺮ از آراﯾﻪ ﻫﺎي ﻣﻨﻄﻘﯽ اﺳﺘﻔﺎده‬ ‫‪ PLA‬و‪ ROM‬اﺷﺎره ﻧﻤﻮد‪.‬‬ ‫‪١٥‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ PLA‬ﻣﺨﻔﻒ ‪ Pragramaing Lagic array‬ﻣﯽ ﺑﺎﺷﺪ‪،‬ﮐﻪ ﺑﻪ آن آراﯾﻪ ﻣﻨﻄﻘﯽ ﻗﺎﺑﻞ ﺑﺮﻧﺎﻣـﻪ رﯾـﺰي ﻣـﯽ‬ ‫ﮔﻮﯾﻨﺪ‪.‬‬ ‫‪ -1-5-2‬آراﯾﻪ ﻣﻨﻄﻘﯽ ﺑﺮﻧﺎﻣﻪ رﯾﺰي )‪(PLA‬‬ ‫ﺑﻪ ﮐﻤﮏ ‪ PLA‬ﻣﯽ ﺗﻮان ﻣﺠﻤﻮﻋﻪ ﺗﻮاﺑﻊ ﺗﺮﮐﯿﺒﯽ را ﺑﻪ ﺻﻮرت ﯾﮏ ﻣﺪار دو ﺳﻄﺤﯽ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻣﺠﻤﻮع‬ ‫ﺣﺎﺻﻠﻀﺮﺑﻬﺎ ﺗﻮﻟﯿﺪ ﻧﻤﻮد‪ .‬از ﮐﺎرﺑﺮدﻫﺎي اﺻﻠﯽ ‪ ، PLA‬ﻣﯽ ﺗـﻮان ﺑـﻪ ﻃﺮاﺣـﯽ ﺗﻮاﺑـﻊ ﺗﺮﮐﯿﺒـﯽ ﻣﻮﺟـﻮد‬ ‫درواﺣﺪ ﮐﻨﺘﺮل اﺷﺎره ﻧﻤﻮد ‪ .‬ﻫﺮ ﺳﻄﺮ از ‪ PLA‬ﯾﮏ ﮔﯿﺖ ‪ AND‬وﻫﺮ ﺳﺘﻮن ﯾﮏ ﮔﯿﺖ ‪ OR‬ﻣﯽ ﺑﺎﺷﺪ‪.‬‬ ‫در زﯾﺮ ﺳﺎﺧﺘﻤﺎن داﺧﻠﯽ ﯾﮏ ‪ PLA‬ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪:‬‬ ‫)ﺷﮑﻞ ‪(13-2‬‬ ‫ﻧﮑﺘﻪ ‪ :‬ﺧﻄﻬﺎي ﻣﻮﺟﻮد ﺑﯿﻦ ﺳﻄﺮﻫﺎ ﻧﺸﺎﻧﮕﺮ ﻓﯿﻮز ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ ﻫﻤﺎن دﯾﻮداﺳﺖ‪.‬‬ ‫ﻧﮑﺘﻪ ‪ :‬در) ‪ p ، PLA ( p × q‬ﺗﻌﺪاد ﺳﻄﺮ و ‪ q‬ﺗﻌﺪاد ﺳﺘﻮن ﻣﯽ ﺑﺎﺷﺪ‪.‬‬ ‫ﻣﺜﺎل ‪ :‬ﺑﻪ ﮐﻤﮏ ‪PLA‬ﺗﻮاﺑﻊ زﯾﺮ را ﺛﯿﺎده ﺳﺎزي ﮐﻨﯿﺪ ‪.‬‬ ‫‪١٦‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪F1 = x1 x2 + x2 x3 + x1 x3‬‬ ‫‪F 2 = x1 x2 + x1 x2 x3‬‬ ‫ﺣﻞ ‪ :‬اﺑﺘﺪا ﺑﺎﯾﺪ ﺗﻌﺪاد ﺳﻄﺮﻫﺎ وﺳﺘﻮﻧﻬﺎي ﻣﻮرد ﻧﯿﺎز ﺑﺮاي ﭘﯿﺎده ﺳﺎزي را ﻣﺸـﺨﺺ ﮐﻨـﯿﻢ ‪.‬ﭼـﻮن ‪PLA‬‬ ‫راﺑﺎﺳﻄﺮ وﺳﺘﻮﻧﺶ ﻣﯽ ﺷﻨﺎﺳﻨﺪ ‪.‬ﺑﺮاي ﭘﯿﺎده ﺳﺎزي ﺗﻮاﺑﻊ ﺑﺎﯾﺪ دﯾﺪ ﮐﻪ ﭼﻪ ﻣﻘـﺪار ﮔﯿـﺖ ‪ AND‬ﻣﺴـﺘﻘﻞ‪،‬‬ ‫ﻣﻮرد ﻧﯿﺎز اﺳﺖ ﮐﻪ ﺗﻌﺪاد اﯾﻦ ﮔﯿﺘﻬﺎي ‪ AND‬ﻣﺴﺘﻘﻞ ﺑﺮاﺑﺮ ﺑﺎ ﺗﻌﺪاد ﺳﻄﺮ ﻣﻮرد ﻧﯿﺎز در ‪ PLA‬ﻣﯽ ﺑﺎﺷـﺪ‬ ‫در اﯾﻦ ﻣﺜﺎل‪4 ،‬ﮔﯿﺖ ‪ AND‬ﻣﺴﺘﻘﻞ وﺟﻮد دارد ‪ .‬ﺑﺮاي ﺑﺪﺳﺖ آوردن ﺳﺘﻮﻧﻬﺎ ﺑﺎﯾـﺪ ﻣﻘـﺪار ﻣﺘﻐﯿـﺮ را در‬ ‫دو ﺿﺮب ﮐﺮده وآﻧﺮا ﺑﺎ ﺗﻌﺪاد ﺗﻮاﺑﻊ ﺟﻤﻊ ﮐﻨﯿﻢ‪.‬‬ ‫‪ not‬آﻧﻬﺎ ‪ +‬ﻣﺘﻐﯿﺮﻫﺎ ‪ +‬ﺗﻌﺪاد ﺗﻮاﺑﻊ = ﺗﻌﺪاد ﺳﺘﻮﻧﻬﺎ = ‪q‬‬ ‫ﯾﺎ‬ ‫ﺗﻌﺪاد ﺗﻮاﺑﻊ‬ ‫‪q = m+ 2× n‬‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫)ﺷﮑﻞ ‪(14-2‬‬ ‫‪١٧‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ : 6-2‬ﮔﺬرﮔﺎه )‪(BUS‬‬ ‫ﻣﺠﻤﻮﻋﻪاي از ﺳﯿﻤﻬﺎي راﺑﻂ ﺑﺮاي اﻧﺘﻘﺎل ﯾﮏ ﮐﻠﻤﻪ ‪ N‬ﺑﯿﺘﯽ از ﯾﮏ ﻣﺒﺪاء ﺑﻪ ﯾﮏ ﻣﻘﺼﺪ ﮐﻪ‬ ‫ﻣﻌﻤﻮﻻًﻣﺒﺪاء ﻫﺎ وﻣﻘﺼﺪﻫﺎ ﺛﺒﺎﺗﻬﺎي ﮐﺎﻣﭙﯿﻮﺗﺮ ﻣﯽ ﺑﺎﺷﻨﺪ ‪ .‬در واﻗﻊ ﻣﺴﯿﺮي ﮐﻪ ﺑﺮاي اﻧﺘﻘﺎل‬ ‫اﻃﻼﻋﺎت وﺟﻮد دارد را ‪ BUS‬ﻣﯽ ﮔﻮﯾﯿﻢ ‪.‬‬ ‫)ﺷﮑﻞ ‪(15-2‬‬ ‫ﺑﺎس )‪ (BUS‬ﺑﺮدو ﻧﻮع اﺳﺖ ‪:‬‬ ‫‪ -1‬ﺑﺎس اﺧﺘﺼﺎﺻﯽ‬ ‫‪ -2‬ﺑﺎس ﻣﺸﺘﺮك‬ ‫‪ BUS -1-6-2‬اﺧﺘﺼﺎﺻﯽ )‪(dedicated Bus‬‬ ‫‪١٨‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺑﺪﯾﻦ ﻣﻌﻨﯽ ﮐﻪ ﺑﯿﻦ ﻫﺮ دو ﺛﺒﺎت دﻟﺨﻮاه ‪ BUS‬اﺧﺘﺼﺎﺻﯽ ﻃﺮاﺣﯽ ﻣﯽ ﮔﺮدد‪ .‬اﻟﺒﺘﻪ ﻣﯽ داﻧﯿﻢ در اﯾﻦ‬ ‫ﻃﺮاﺣﯽ ﺗﻌﺪاد ‪ BUS‬ﻫﺎ ودر ﻧﺘﯿﺠﻪ ﺗﻌﺪاد ﺳﯿﻤﻬﺎ ﺑﺎﻻ ﺑﻮده واﻣﮑﺎن ‪ Noise‬ﺑﯿﺸﺘﺮ ﻣﯽ ﮔﺮدد‪ .‬از اﯾﻦ‬ ‫ﺟﻬﺖ در ﺳﯿﺴﺘﻤﻬﺎي ﮐﺎﻣﭙﯿﻮﺗﺮي اﯾﻦ ﺷﯿﻮه ﻣﻄﻠﻮب ﻧﯿﺴﺖ‪.‬‬ ‫ﻣﺜﺎﻟﯽ از ‪ BUS‬اﺧﺘﺼﺎﺻﯽ‬ ‫)ﺷﮑﻞ ‪(16-2‬‬ ‫ﻧﮑﺘﻪ ‪ :‬ﺑﻪ ﻃﻮر ﮐﻠﯽ ﺑﺮاي ‪ n‬ﺛﺒﺎت ‪ n(n-1) ،‬ﻣﺴﯿﺮ ﻣﻮرد ﻧﯿﺎز اﺳﺖ ‪.‬‬ ‫‪ BUS -2-6-2‬ﻣﺸﺘﺮك ) ‪(Common BUS‬‬ ‫در اﯾﻦ ﺷﯿﻮه ﻃﺮاﺣﯽ ﻫﺮ ﺗﻌﺪاد ﺛﺒﺎت ﮐﻪ در ﯾﮏ ﺳﯿﺴﺘﻢ ﻣﻮﺟﻮد ﺑﺎﺷﺪ‪ ،‬ﺗﻨﻬﺎ از ﯾﮏ ‪ BUS‬اﺳﺘﻔﺎده ﻣﯽ‬ ‫ﮐﻨﺪ‪ .‬ﯾﮏ ﮐﺎﻣﭙﯿﻮﺗﺮ رﻗﻤﯽ ﻧﻮﻋﺎً ﺛﺒﺎﺗﻬﺎي زﯾﺎدي دارد وﺑﺎﯾﺪ ﻣﺴﯿﺮﻫﺎﯾﯽ ﺑﺮاي اﻧﺘﻘﺎل اﻃﻼﻋﺎت از ﯾﮏ‬ ‫ﺛﺒﺎت ﺑﻪ ﺛﺒﺎت دﯾﮕﺮ در آن ﻓﺮاﻫﻢ ﺷﻮد ‪ .‬اﮔﺮ ﺧﻄﻮط ﺟﺪاﮔﺎﻧﻪاي ﺑﯿﻦ ﻫﺮ ﺛﺒﺎت وﺛﺒﺎﺗﻬﺎي دﯾﮕﺮ ﺳﯿﺴﺘﻢ‬ ‫ﺑﮑﺎر رود‪ ،‬ﺗﻌﺪاد ﺳﯿﻤﻬﺎ ﺑﯿﺶ از ﺣﺪ ﺧﻮاﻫﺪ ﺷﺪ‪ .‬روش ﮐﺎراﺗﺮ ﺑﺮاي اﻧﺘﻘﺎل اﻃﻼﻋﺎت ﺑﯿﻦ ﺛﺒﺎﺗﻬﺎدر ﭘﯿﮑﺮ‬ ‫ﺑﻨﺪي ﺑﺎ ﺛﺒﺎﺗﻬﺎي ﻣﺘﻌﺪد‪ ،‬ﻫﻤﯿﻦ روش ﺳﯿﺴﺘﻢ ﮔﺬرﮔﺎه ﻣﺸﺘﺮك اﺳﺖ‪.‬‬ ‫ﻣﺜﺎﻟﯽ از ‪ BUS‬ﻣﺸﺘﺮك‬ ‫‪١٩‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫)ﺷﮑﻞ ‪(17-2‬‬ ‫ﻧﮑﺘﻪ ‪ :‬ﻧﻤﯽ ﺗﻮان ﺧﺮوﺟﯽ دو ﮔﯿﺖ ﯾﺎ ﻓﯿﻠﯿﭗ ﻓﻼپ راﺑﻪ ﻫﻢ وﺻﻞ ﮐﺮد ﭼﻮن ﻣﻤﮑﻦ اﺳﺖ ﯾﮑﯽ ‪High‬‬ ‫)ﺑﺎﻻ ‪ (5V‬و دﯾﮕﺮي ‪) low‬ﭘﺎﯾﯿﻦ ‪ (0V‬ﺑﺎﺷﺪ در ﻧﺘﯿﺠﻪ ‪ IC‬ﻣﺎ ﻣﯽ ﺳﻮزﻧﺪ‪.‬‬ ‫)ﺷﮑﻞ ‪(18-2‬‬ ‫‪ -3-6-2‬ﺑﺎﻓﺮ ﯾﺎ دراﯾﻮ ﯾﺎ ﺑﺎﻓﺮ دراﯾﻮ‬ ‫ﺑﺎﻓﺮ دراﯾﻮ را ﺑﻪ ﺻﻮرت زﯾﺮ ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﻨﺪ ‪:‬‬ ‫‪٢٠‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫اﯾﻦدراﯾﻮ داراي ﯾﮏ ﺳﻮﯾﯿﭻ )‪ (E‬اﺳﺖ ﮐﻪ اﮔﺮ ﺻﻔــﺮ ﺑﺎﺷﺪ‪ ،‬ﻣﺪار ﻗﻄﻊ واﮔﺮ ﯾﮏ ﺑﺎﺷﺪ ﻣﺪارﻣﺘﺼﻞ‬ ‫اﺳﺖ و وﻟﺘﺎژ ورودي و ﺧﺮوﺟﯽ ﺑﺎ ﻫﻢ ﺑﺮاﺑﺮﻧﺪ و ﺟﺮﯾﺎن را ﺗﻘﻮﯾﺖ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﺑﻪ آن ‪3-State‬‬ ‫‪ Buffer‬ﯾﺎ ﺑﺎﻓﺮ ﺳﻪ ﺣﺎﻟﺘﻪ ﻣﯽ ﮔﻮﯾﻨﺪ‪.‬‬ ‫ﻣﺜﺎل ‪ :‬ﻧﺤﻮه اﻧﺘﻘﺎل داده ﺑﯿﻦ ﺛﺒﺎت ‪ A‬و ﺛﺒﺎت ‪B‬‬ ‫)ﺷﮑﻞ ‪(19-2‬‬ ‫‪FF1------> FF2‬‬ ‫‪ -1‬ﺑﺎﯾﺪ ﺛﺒﺎت ‪ A‬ﻓﻌﺎل ﺑﺎﺷﺪ ﺗﺎ اﻃﻼﻋﺎت از آن ﺑﻪ ﺛﺒﺎت ‪ B‬ﺑﺮود‪.‬‬ ‫)‪1‬‬ ‫‪OE1=1‬‬ ‫‪,‬‬ ‫‪OE2=0‬‬ ‫‪ -2‬ﺿﻤﻦ اﯾﻨﮑﻪ ﺛﺒﺎت ‪ A‬ﻓﻌﺎل اﺳﺖ ﺑﻪ ﺛﺒﺎت ‪ B‬دﺳﺘﻮر ذﺧﯿﺮه ﮐﺮدن را ﻣﯽ دﻫﯿﻢ ‪.‬‬ ‫)‪2‬‬ ‫‪OE1=1‬‬ ‫‪,‬‬ ‫‪OE2=0‬‬ ‫‪, Clk2=1‬‬ ‫ﺣﺎل اﮔﺮ ﺑﺨﻮاﻫﯿﻢ اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ﺛﺒﺎت ‪ B‬را ﺑﻪ ‪ A‬ﻣﻨﺘﻘﻞ ﮐﻨﯿﻢ ﺑﺪﯾﻦ ﺻﻮرت ﻋﻤﻞ ﻣﯽ ﻧﻤﺎﯾﯿﻢ‪.‬‬ ‫‪FF2 -------> FF1‬‬ ‫‪ -1‬ﺑﺎﯾﺪ ﺛﺒﺎت ‪ B‬ﻓﻌﺎل ﺑﺎﺷﺪ ﺗﺎ اﻃﻼﻋﺎت از آن ﺑﻪ ﺛﺒﺎت ‪ A‬ﺑﺮود‪.‬‬ ‫)‪1‬‬ ‫‪OE2=1‬‬ ‫‪,‬‬ ‫‪OE1=0‬‬ ‫‪٢١‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ -2‬ﺿﻤﻦ اﯾﻨﮑﻪ ﺛﺒﺎت ‪ B‬ﻓﻌﺎل اﺳﺖ ﺑﻪ ﺛﺒﺎت ‪ A‬دﺳﺘﻮر ذﺧﯿﺮه ﮐﺮدن را ﻣﯽ دﻫﯿﻢ‪.‬‬ ‫)‪2‬‬ ‫‪OE2=1‬‬ ‫‪,‬‬ ‫‪OE1=0‬‬ ‫‪,‬‬ ‫‪Clk1=1‬‬ ‫‪ -4-6-2‬ﻃﺮاﺣﯽ دو ﻧﻮع ‪ BUS‬ﻣﺸﺘﺮك‬ ‫‪ -1-4-6-2‬ﻃﺮاﺣﯽ ﯾﮏ ‪ BUS‬ﻣﺸﺘﺮك ﺑﯿﻦ ﭼﻬﺎر ﺛﺒﺎت ﮐﻪ ﺧﺮوﺟﯽ آﻧﻬﺎ از ﻧﻮع ‪ 3-State‬ﻣﯽ ﺑﺎﺷﺪ‪.‬‬ ‫)ﺷﮑﻞ ‪(20-2‬‬ ‫ﻣﺜﺎل‪ :‬اﮔﺮ ﺑﺨﻮاﻫﯿﻢ اﻃﻼﻋﺎت ‪ R1‬راﺑﻪ ‪ R3‬ﻣﻨﺘﻘﻞ ﮐﻨﯿﻢ‪.‬‬ ‫‪R1 -------> R3‬‬ ‫)‪1‬‬ ‫)‪2‬‬ ‫‪S1 S0 = 0 0‬‬ ‫‪, enable = 0 , D1 D0 = 10‬‬ ‫‪, enable = 1 , D1 D0 = 10‬‬ ‫‪SS‬‬ ‫‪1 0 = 00‬‬ ‫ﺑﺮاي اﯾﻨﮑﻪ ﺑﺨﻮاﻫﯿﻢ ﻫﺮﺑﺎر ﯾﮏ ﺛﺒﺎت اﻧﺘﺨﺎب ﺷﻮد از ﮐﺪﮔﺸﺎ اﺳﺘﻔﺎده ﮐﺮده اﯾﻢ ﮐﻪ در ﺣﻘﯿﻘﺖ‬ ‫ﮐﺪﮔﺸﺎﻫﺎ در اﯾﻨﺠﺎ اﻧﺘﺨﺎﺑﮕﺮ ﻣﺒﺪأ و ﻣﻘﺼﺪ ﻣﯽ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ -2-4-6-2‬ﻃﺮاﺣﯽ ﯾﮏ ﺑﺎس ﻣﺸﺘﺮك ﺑﯿﻦ ﭼﻬﺎر ﺛﺒﺎت ﮐﻪ ﺧﺮوﺟﯽ آﻧﻬﺎ از ﻧﻮع ‪ 3-State‬ﻧﯿﺴﺖ‪.‬‬ ‫‪٢٢‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫)ﺷﮑﻞ ‪(21-2‬‬ ‫ﻣﺜﺎل‪ :‬اﮔﺮ ﺑﺨﻮاﻫﯿﻢ ﻣﺤﺘﻮاي ‪ R2‬را در ‪ R4‬ﺑﺮﯾﺰﯾﻢ دارﯾﻢ ‪.‬‬ ‫‪R2 -------> R4‬‬ ‫)‪1‬‬ ‫)‪2‬‬ ‫‪SS‬‬ ‫‪1 0 = 01‬‬ ‫‪, D1 D0 = 11 ,‬‬ ‫‪, D1 D0 = 11 ,‬‬ ‫‪enable = 0‬‬ ‫‪enable = 1‬‬ ‫‪SS‬‬ ‫‪1 0 = 01‬‬ ‫‪٢٣‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺗﻤﺮﯾﻨﺎت‬ ‫‪ -1‬ﻋﺒﺎرت ﺑﻮﻟﯽ ) ‪ Mux ( 4 × 1‬زﯾﺮ را ﺑﻨﻮﯾﺴﯿﺪ؟‬ ‫‪ -2‬ﺑﺎ اﺳﺘﻔﺎده از ﻫﺮ ﺗﻌﺪاد ) ‪ Mux (2 × 1‬ﯾﮏ )‪ Mux ( 4 × 2‬ﻃﺮاﺣﯽ ﮐﻨﯿﺪ؟‬ ‫‪ -3‬ﺗﺎﺑﻊ ) ‪ f ( A, B, C ) = S ( 0,2 ,6,7‬رادرﺳﻪﺣﺎﻟﺖﻣﺨﺘﻠﻒﺑﺎ) ‪Mux (4 × 1‬ﻃﺮاﺣﯽﮐﻨﯿﺪ؟‬ ‫‪ -4‬ﺑﺎ اﺳﺘﻔﺎده از دوﻣﺎﻟﺘﯽ ﭘﻠﮑﺴﺮ در ﺗﻮاﺑﻊ ﻣﻮﺟﻮد ﯾﮏ ﻣﺪار ﺗﻔﺮﯾﻖ ﮐﻨﻨﺪه ﮐﺎﻣﻞ‬ ‫)‪ (Full-Subtractor‬را ﭘﯿﺎده ﺳﺎزي ﻧﻤﺎﯾﯿﺪ؟‬ ‫‪-5‬ﺑﺎ اﺳﺘﻔﺎده از ﮐﺪﮔﺸﺎ )‪ (Decoder‬و ﮔﯿﺘﻬﺎي ‪ OR‬ﻻزم ﯾﮏ ﺿﺮب ﮐﻨﻨﺪه دو ﺑﯿﺘﯽ ﻃﺮاﺣﯽ ﮐﻨﯿﺪ‪.‬‬ ‫‪ -6‬ﺑﻪ ﮐﻤﮏ ﮐﺪﮔﺸﺎ )‪ (Decoder‬و ﮔﯿﺘﻬﺎي ‪ OR‬ﻻزم ﯾﮏ ﻣﺪار ‪Full adder- Full Subtractor‬‬ ‫ﻃﺮاﺣﯽ ﻧﻤﺎﯾﯿﺪ‪.‬‬ ‫‪ -7‬ﻣﺪاري ﻃﺮاﺣﯽ ﮐﻨﯿﺪ ﮐﻪ ﯾﮏ ﻋﺪ د دو ﺑﯿﺘﯽ را در ﯾﺎﻓﺖ وآن را ﺑﻪ ﺗﺎﺑﻌﯽ ﮐﻪ درزﯾﺮ آﻣﺪه اﺳﺖ‬ ‫اﻋﻤﺎل ﻧﻤﻮده وﻧﺘﯿﺠﻪ راﺑﺮ روي ‪ 7Seg‬ﻧﻤﺎﯾﺶ دﻫﺪ ‪) .‬ﺑﻪ ﮐﻤﮏ ﮐﺪﮔﺸﺎ(‬ ‫‪٢٤‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪x £ 2‬‬ ‫‪x > 2‬‬ ‫‪ìx2 + 1‬‬ ‫‪f ( x) = í‬‬ ‫‪îF‬‬ ‫‪ -8‬ﺑﻪ ﮐﻤﮏ ﮐﺪﮔﺸﺎ )‪ (Decoder‬و ﮔﯿﺘﻬﺎي ﻣﻮرد ﻧﯿﺎز ﯾﮏ ﻣﻘﺎﯾﺴﻪ ﮔﺮ دو ﺑﯿﺘﯽ ﻃﺮاﺣﯽ ﻧﻤﺎﯾﯿﺪ‪.‬‬ ‫‪ -9‬ﯾﮏ ﮐﺪﮔﺬار )‪ (Encoder‬ﺑﺎ رﻋﺎﯾﺖ ﺣﻖ ﺗﻘﺪم ‪ 4‬ﺑﯿﺘﯽ ﺑﺎ اﺳﺘﻔﺎده از ﮔﯿﺘﻬﺎي ‪ AND‬و ‪ OR‬ﻃﺮاﺣﯽ‬ ‫ﻧﻤﺎﯾﯿﺪ‪.‬‬ ‫‪ -10‬ﻣﺪاري ﻃﺮاﺣﯽ ﮐﻨﯿﺪ ﮐﻪ ﺑﺘﻮاﻧﺪ ‪ 4‬ﺛﺒﺎت ‪ 8‬ﺑﯿﺘﯽ را ﺑﻪ ﻧﺤﻮ ﺧﻮاﺳﺘﻪ ﺷﺪه ﺑﺎ ﻫﻢ ﺟﻤﻊ ﻧﻤﺎﯾﺪ و‬ ‫ﺣﺎﺻﻞ را در ﺛﺒﺎت دﯾﮕﺮ ﻣﻮرد ﻧﻈﺮ ﻗﺮار دﻫﺪ در اﯾﻦ ﻃﺮاﺣﯽ ﺛﺒﺎﺗﻬﺎ را از ﻧﻮع ‪ 3-State‬ﺑﮕﯿﺮﯾﺪ و ﺟﻤﻊ‬ ‫ﮐﻨﻨﺪه را ﺑﻪ ﺻﻮرت ﯾﮏ واﺣﺪ ‪ 4‬ﺑﯿﺘﯽ‪.‬‬ ‫‪ -11‬ﯾﮏ ﻣﺪار ﺗﺮﺗﯿﺒﯽ ﻃﺮاﺣﯽ ﮐﻨﯿﺪ ﮐﻪ ﻋﺪد ﺑﺎﯾﻨﺮي ﺑﺪون ﻋﻼﻣﺖ و ﺑﺎ ﻃﻮل ‪ n‬را در ‪ 3‬ﺿﺮب ﻧﻤﺎﯾﺪ‪.‬‬ ‫ﻋﺪد ‪ n‬ﺑﺼﻮرت ﺳﺮﯾﺎل از ﺑﯿﺖ ﮐﻢ ارزﺷﺘﺮ ﺑﻪ ﻣﺪار وارد و ﺣﺎﺻﻞ ﯾﻌﻨﯽ ‪ 3×n‬ﺑﻪ ﺻﻮرت ﺳﺮﯾﺎل در‬ ‫ﻃﺮف دﯾﮕﺮ ﺧﺎرج ﻣﯽ ﮔﺮدد‪.‬‬ ‫‪ -12‬ﯾﮑﯽ از ﺑﺨﺸﻬﺎي ‪ CPU‬ﻣﺪار ﺷﯿﻔﺖ دﻫﻨﺪه ﺑﻪ ﻧﺎم ‪ Buffer Shift‬ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ ﺗﻮﺳﻂ آن ﻣﯽ‬ ‫ﺗﻮاﻧﺪ ﺷﯿﻔﺘﻬﺎي ﺳﺮﯾﻊ ﺑﻪ ﺗﻌﺪاد ﺑﯿﺘﻬﺎي ﺧﻮاﺳﺘﻪ ﺷﺪه ﺑﻪ ﺳﻤﺖ ﭼﭗ ﯾﺎ راﺳﺖ اﻋﻤﺎل ﻧﻤﻮد‪ .‬ﯾﮏ‬ ‫‪ Buuffer Shift‬ﭼﻬﺎر ﺑﯿﺘﯽ ﻃﺮاﺣﯽ ﮐﻨﯿﺪ ﮐﻪ ﺗﻮﺳﻂ آن ﺑﺘﻮان ﺗﺎ ‪ 4‬ﺑﯿﺖ اﻧﺘﻘﺎل ﺑﻪ ﭼﭗ ﯾﺎ راﺳﺖ اﻧﺠﺎم‬ ‫داد ‪).‬ﺛﺒﺎت را در اﯾﻦ ﻣﺴﺄﻟﻪ ﭼﻬﺎرﺑﯿﺘﯽ ﺑﮕﯿﺮﯾﺪ‪( .‬‬ ‫‪ -13‬ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮان ﺑﻪ ﮐﻤﮏ ﺳﻠﻮل زﯾﺮ ﯾﮏ ﺿﺮب ﮐﻨﻨﺪه ‪ 3‬ﺑﯿﺘﯽ ﻃﺮاﺣﯽ ﮐﺮد ‪.‬‬ ‫‪٢٥‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪٢٦‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ -3‬ﻃﺮاﺣﯽ ﭘﺮدازﻧﺪه‬ ‫‪ : 1- 3‬وﻇﯿﻔﻪ اﺻﻠﯽ ‪CPU‬‬ ‫ﭘﺮدازﻧﺪه ﻗﺴﻤﺘﯽ از ﯾﮏ ﮐﺎﻣﭙﯿﻮﺗﺮ ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ وﻇﯿﻔﻪ اﺻﻠﯽ آن اﺟﺮاي دﻧﺒﺎﻟﻪاي از دﺳﺘﻮراﻟﻌﻤﻠﻬﺎي‬ ‫ﻣﻮﺟﻮد در ﺣﺎﻓﻈﻪ اﺻﻠﯽ ﻣﯽ ﺑﺎﺷﺪ‪ .‬ﺑﺮاي اﯾﻦ ﮐﺎر ﻫﺮ دﺳﺘﻮراﻟﻌﻤﻞ ﻗﺒﻞ از اﺟﺮاﺷﺪن ﺑﺎﯾﺴﺘﯽ از ﺣﺎﻓﻈﻪ‬ ‫اﺻﻠﯽ ﺧﻮاﻧﺪه ﺷﻮد )‪ (Fetch‬و ﺳﭙﺲ دﺳﺘﻮراﻟﻌﻤﻞ رﻣﺰﮔﺸﺎﯾﯽ ﺷﻮد )‪ (Decoding‬آﻧﮕﺎه ﺑﻪ داﺧﻞ‬ ‫ﭘﺮدازﻧﺪه ﻣﻨﺘﻘﻞ ﺷﺪه وﺳﭙﺲ دﺳﺘﻮراﻟﻌﻤﻞ اﺟﺮاﻣﯽ ﺷﻮد)‪.(Execute‬‬ ‫ﻣﺠﻤﻮﻋﻪ زﯾﺮ دﺳﺘﻮراﺗﯽ ﮐﻪ ‪ ،‬ﺑﺮاي اﺟﺮاي ﮐﺎﻣﻞ ﯾﮏ دﺳﺘﻮر ﻻزم اﺳﺖ ﭼﺮﺧﻪ دﺳﺘﻮراﻟﻌﻤﻞ ﯾﺎ‬ ‫‪ Inst.Cycle‬ﮔﻔﺘﻪ ﻣﯽ ﺷﻮد‪.‬‬ ‫ﭼﺮﺧﻪ دﺳﺘﻮراﻟﻌﻤﻞ ﺑﻪ دو ﮔﺮوه ﺗﻘﺴﯿﻢ ﻣﯽ ﺷﻮد‪:‬‬ ‫‪: Fetchh.Cycle -1‬واﮐﺸﯽ دﺳﺘﻮر از ﺣﺎﻓﻈﻪ ‪.‬‬ ‫‪ decode :Execute Cycle -2‬ﮐﺮدن ﯾﺎ رﻣﺰ ﮔﺸﺎﯾﯽ دﺳﺘﻮر و اﺟﺮاي زﯾﺮ دﺳﺘﻮرات ﻻزم ‪.‬‬ ‫ﻣﺮاﺣﻞ اﺟﺮاي ﯾﮏ دﺳﺘﻮراﻟﻌﻤﻞ‪:‬‬ ‫واﮐﺸﯽ دﺳﺘﻮراﻟﻌﻤﻞ‪ :‬ﺑﺮداﺷﺖ دﺳﺘﻮراﻟﻌﻤﻞ ﺑﻌﺪي از ﺣﺎﻓﻈﻪ‬ ‫ﮐﺪﺑﺮداري از دﺳﺘﻮراﻟﻌﻤﻞ‪ :‬ﺑﺮرﺳﯽ دﺳﺘﻮراﻟﻌﻤﻞ ﺑﺮاي ﻣﺸﺨﺺ ﺷﺪن اﯾﻨﮑﻪ‪:‬‬ ‫ﭼﻪ ﻋﻤﻠﯽ ﺑﺎﯾﺪ ﺗﻮﺳﻂ دﺳﺘﻮراﻟﻌﻤﻞ اﻧﺠﺎم ﮔﯿﺮد )ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﺟﻤﻊ(‬ ‫ﭼﻪ ﻋﻤﻠﻮﻧﺪﻫﺎﯾﯽ ﻣﻮرد ﻧﯿﺎزﻧﺪ‪ ،‬و ﻧﺘﺎﯾﺞ ﺑﺎﯾﺪ ﮐﺠﺎ ﻗﺮار ﮔﯿﺮﻧﺪ‪.‬‬ ‫واﮐﺸﯽ ﻋﻤﻠﻮﻧﺪﻫﺎ‪ :‬ﻋﻤﻠﻮﻧﺪﻫﺎ ﺑﺮداﺷﺖ ﻣﯽ ﺷﻮﻧﺪ‪.‬‬ ‫‪٢٧‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫اﺟﺮا‪ :‬اﺟﺮاي ﻋﻤﻠﯿﺎت ﺑﺮ روي ﻋﻤﻠﻮﻧﺪﻫﺎ‬ ‫ﺑﺎزﻧﻮﯾﺴﯽ ﻧﺘﯿﺠﻪ‪ :‬ﻧﻮﺷﺘﻦ ﻧﺘﯿﺠﻪ در ﻣﺤﻞ ﻣﺨﺼﻮص‬ ‫دﺳﺘﻮراﻟﻌﻤﻞ ﺑﻌﺪي‪ :‬ﺗﻌﯿﯿﻦ اﯾﻨﮑﻪ دﺳﺘﻮراﻟﻌﻤﻞ ﺑﻌﺪي از ﮐﺠﺎ ﮔﺮﻓﺘﻪ ﺷﻮد‪.‬‬ ‫ﭼﻪ ﭼﯿﺰي در ﯾﮏ ‪) ISA‬ﻣﻌﻤﺎري ﻣﺠﻤﻮﻋﻪ دﺳﺘﻮر اﻟﻌﻤﻞ( ﻣﺸﺨﺺ ﻣﯽ ﺷﻮد؟‬ ‫‪ISA: Instruction Set Architecture‬‬ ‫ﮐﺪﺑﺮداري از دﺳﺘﻮراﻟﻌﻤﻞ‪ :‬اﻋﻤﺎل و ﻋﻤﻠﻮﻧﺪﻫﺎ ﭼﮕﻮﻧﻪ ﺗﻌﯿﯿﻦ ﻣﯽ ﮔﺮدﻧﺪ؟‬ ‫واﮐﺸﯽ ﻋﻤﻠﻮﻧﺪﻫﺎ‪ :‬ﻋﻤﻠﻮﻧﺪﻫﺎ ﻣﻤﮑﻦ اﺳﺖ ﮐﺠﺎ ﺑﺎﺷﻨﺪ؟ ﭼﻪ ﺗﻌﺪاد؟‬ ‫اﺟﺮا‪ :‬ﭼﻪ اﻋﻤﺎﻟﯽ ﻣﯽ ﺗﻮاﻧﺪ اﻧﺠﺎم ﮔﯿﺮد؟ ﭼﻪ ﻧﻮع داده و ﭼﻪ اﻧﺪازه ﻫﺎﯾﯽ؟‬ ‫ﺑﺎزﻧﻮﯾﺴﯽ ﻧﺘﺎﯾﺞ‪ :‬ﻧﺘﺎﯾﺞ ﮐﺠﺎ ﻧﻮﺷﺘﻪ ﻣﯽ ﺷﻮﻧﺪ؟ ﭼﻪ ﺗﻌﺪاد؟‬ ‫دﺳﺘﻮراﻟﻌﻤﻞ ﺑﻌﺪي‪ :‬دﺳﺘﻮراﻟﻌﻤﻞ ﺑﻌﺪي را ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮان اﻧﺘﺨﺎب ﻧﻤﻮد؟‬ ‫)ﺷﮑﻞ ‪(1-3‬‬ ‫رﯾﺰﻋﻤﻞ‪:‬‬ ‫اﻧﺠﺎم ﮐﺎرﻫﺎي ﺟﺰﯾﯽ ﺑﺮاي رﺳﯿﺪن ﺑﻪ ﻫﺪف اﺻﻠﯽ را رﯾﺰ ﻋﻤﻞ ﮔﻮﯾﻨﺪ‪.‬‬ ‫‪٢٨‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪: Cpu Clock time‬‬ ‫ﻣﺪت زﻣﺎن ﻻزم ﺑﺮاي اﺟﺮاي ﯾﮏ رﯾﺰدﺳﺘﻮراﻟﻌﻤﻞ )‪ (Micro Inst‬را ‪Cpu Clock time‬‬ ‫ﻣﯽ ﻧﺎﻣﻨﺪ‪.‬‬ ‫) ‪(t cpu‬‬ ‫‪: Cpu Clock Rate‬‬ ‫ﺗﻌﺪاد رﯾﺰﻋﻤﻠﻬﺎﯾﯽ ﮐﻪ در واﺣﺪ زﻣﺎن اﻧﺠﺎم ﻣﯽ ﺷﻮد را ﺑﻪ ﻋﻨﻮان ‪ Cpu Clock Rate‬ﮔﻮﯾﻨﺪ‪ .‬ﮐﻪ‬ ‫ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﻨﺪ ‪ ،‬ﮐﻪ ﻣﻼك‬ ‫ﻣﻌﻤﻮﻻًﺑﺎ واﺣﺪ ﻫﺮﺗﺰ )ﻣﮕﺎ ﻫﺮﺗﺰ( ﺑﯿﺎن ﻣﯽ ﺷﻮد وآن را ﺑﺼﻮرت ‪t cpu‬‬ ‫اﻧﺪازه ﮔﯿﺮي ﺳﺮﻋﺖ ﭘﺮدازﻧﺪه ﻫﺎﺳﺖ ‪.‬‬ ‫‪1‬‬ ‫ﺑﺮاي ﻣﺜﺎل اﮔﺮ ﺳﺮﻋﺖ ‪ Cpu‬ﮐﺎﻣﭙﯿﻮﺗﺮي ‪ 100 MHZ‬ﺑﺎﺷﺪ ﯾﻌﻨﯽ ‪ 100 ´ 2 20‬رﯾﺰ ﻋﻤﻞ رادر ﯾﮏ ﺛﺎﻧﯿﻪ‬ ‫اﻧﺠﺎم ﻣﯽ دﻫﺪ‪.‬‬ ‫‪ : 2-3‬وﻇﯿﻔﻪ ﻓﺮﻋﯽ ‪Cpu‬‬ ‫‪ Cpu‬ﻋﻼوه ﺑﺮ اﺟﺮاي دﺳﺘﻮراﻟﻌﻤﻞ ‪ ،‬ﺑﺮ واﺣﺪﻫﺎي دﯾﮕﺮ ﮐﺎﻣﭙﯿﻮﺗﺮ ﻧﯿﺰ ﻧﻈﺎرت دارد ﻣﺎﻧﻨﺪ ﻧﻈﺎرت ﺑﺮ‬ ‫ﻧﻘﻞ و اﻧﺘﻘﺎل اﻃﻼﻋﺎت از ﺣﺎﻓﻈﻪ ﺑﻪ دﺳﺘﮕﺎﻫﻬﺎي ورودي و ﺧﺮوﺟﯽ )‪ (I/o device‬و ﯾﺎ ﻧﻈﺎرت ﺑﺮ‬ ‫ﮐﺎرﻫﺎي ‪ . I/o‬اﻣﺎ اﯾﻨﮕﻮﻧﻪ ﮐﺎرﻫﺎ ﺑﻪ ﻧﺪرت اﻧﺠﺎم ﻣﯽ ﮔﯿﺮد‪ .‬از اﯾﻦ ﺟﻬﺖ ﺗﺎ ﻟﺤﻈﻪ درﯾﺎﻓﺖ ﺗﻘﺎﺿﺎ از‬ ‫دﺳﺘﮕﺎﻫﻬﺎي ﺟﺎﻧﺒﯽ ‪ CPU‬ﺗﻮﺟﻬﯽ ﺑﻪ آﻧﻬﺎ ﻧﻤﯽ ﮐﻨﺪ‪ .‬در ﺻﻮرﺗﯽ ﮐﻪ دﺳﺘﮕﺎه ‪ I/o‬ﺗﻘﺎﺿﺎي ﺳﺮوﯾﺲ‬ ‫داﺷﺘﻪ ﺑﺎﺷﺪ ﺗﻘﺎﺿﺎ را ﺑﺎ ﻓﺮﺳﺘﺎدن ﺳﯿﮕﻨﺎل ‪ Intrupt‬ﯾﺎ وﻗﻔﻪ ﺑﻪ ‪ Cpu‬اﻋﻼم ﻣﯽ ﮐﻨﺪ‪.‬‬ ‫ﺳﻮ‪‬ال ‪ :‬ﭼﺮا ﭘﺮدازﻧﺪه در ﭘﺎﯾﺎن اﺟﺮاي دﺳﺘﻮراﻟﻌﻤﻞ ﺟﺎري ﺑﻪ وﻗﻔﻪ ﺗﻮﺟﻪ ﻣﯽ ﮐﻨﺪ؟‬ ‫ﺑﺮاي ﺟﻮاب دادن ﺑﻪ اﯾﻦ ﺳﻮ‪‬ال ﺑﻪ ﻣﺜﺎل زﯾﺮ ﺗﻮﺟﻪ ﮐﻨﯿﺪ‪.‬‬ ‫ﻣﺜﺎل ‪ :‬اﮔﺮ ﮐﺎﻣﭙﯿﻮﺗﺮ در ﺣﺎل اﺟﺮاي ﺑﺮﻧﺎﻣﻪاي ﮐﻪ ﺣﺎوي دﺳﺘﻮراﻟﻌﻤﻠﻬﺎي زﯾﺮ‪ ،‬ﺑﻪ زﺑﺎن ﻣﺎﺷﯿﻦ ﺑﺎﺷﺪ ‪.‬‬ ‫‪٢٩‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ADD‬‬ ‫‪I NC‬‬ ‫‪Ax, Num‬‬ ‫‪Bx‬‬ ‫اﮔﺮ دﺳﺘﻮراﻟﻌﻤﻞ اول را درﯾﺎﻓﺖ ﮐﺮده و ﺳﭙﺲ وﻗﻔﻪ ﻓﺮارﺳﺪ اﺑﺘﺪا دﺳـﺘﻮراﻟﻌﻤﻞ اول را اﺟـﺮا ﮐـﺮده و‬ ‫ﺑﻌﺪ وﻗﻔﻪ را اﺟﺮا ﻣﯽ ﻧﻤﺎﯾﺪ و ﺑﻌﺪ از ﭘﺎﺳﺦ ﺑﻪ وﻗﻔﻪ ﺑﻪ ﺳﺮاغ اﺟﺮاي دﺳﺘﻮراﻟﻌﻤﻞ دوم ﻣﯽ رود ‪ .‬زﯾـﺮا‬ ‫اﮔﺮ در ﺣﯿﻦ اﺟﺮاي دﺳﺘﻮراﻟﻌﻤﻞ اول ﺑﻪ وﻗﻔﻪ ﺗﻮﺟﻪ ﮐﻨﺪ‪ ،‬ﻧﺘﯿﺠﻪ و ﯾـﺎ ﻣﺤﺘـﻮاي ﺛﺒـﺎﺗﯽﮐـﻪ ﺑـﺮروي آن‬ ‫ﮐﺎراﻧﺠﺎم ﮔﺮﻓﺘﻪ اﺳﺖ دﺳﺖ ﻧﺨﻮرده ﺑﺎﻗﯽ ﻣﯽ ﻣﺎﻧﺪ ﯾﻌﻨﯽ ﻣﺎﻧﻨﺪ اﯾﻦ اﺳﺖ ﮐﻪ دﺳﺘــﻮراﻟﻌﻤﻞ اول وﺟﻮد‬ ‫ﻧــﺪاﺷﺘﻪ اﺳـﺖ و ﭼﻮن )‪ PC (Program Counter‬ﻣﺎ ﯾﮏ واﺣﺪ اﺿﺎﻓﻪ ﺷﺪه اﺳـﺖ ﺑﻨـﺎﺑﺮاﯾﻦ اﻣﮑـﺎن‬ ‫دﺳﺘﺮﺳﯽ ﻣﺠﺪد ﺑﻪ دﺳﺘﻮراﻟﻌﻤﻞ اول را ﻧﺨﻮاﻫﯿﻢ داﺷﺖ ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺮﻧﺎﻣﻪ ﻣﺎ ﺑﻪ اﺷﺘﺒﺎه اﺟﺮا ﻣﯽ ﺷﻮد‪.‬‬ ‫ﻫﻤﯿﺸﻪ در ﻃﺮاﺣﯽ ‪ CPU‬ﺳﻌﯽ ﺑﺮ آن اﺳﺖ ﮐﻪ ﺣﺪاﻗﻞ ﻫﺰﯾﻨﻪ و ﺣﺪاﮐﺜﺮ ﺳﺮﻋﺖ را داﺷﺘﻪ ﺑﺎﺷـﯿﻢ‪ .‬ﺑـﻪ‬ ‫اﯾﻦ ﺧﺎﻃﺮ در ﻃﺮاﺣﯽ ﻣﺪارات ﮐﺎﻣﭙﯿﻮﺗﺮ اﮔﺮ ﭼﻪ ﻫﻤﻪ ﮐﺎرﻫﺎي آن ﺑﮑﻤﮏ ﻋﻤﻠﯿﺎﺗﯽ ﭼﻮن ﺟﻤﻊ ‪ ،‬ﺿﺮب‬ ‫و ﺗﻔﺮﯾﻖ و ﺗﻘﺴﯿﻢ اﻧﺠﺎم ﻣﯽ ﺷﻮد ‪ ،‬اﻣﺎ از ﻟﺤﺎظ ﺳﺨﺖ اﻓﺰاري ﺗﻨﻬﺎ ﯾﮏ ﻣﺪار ﺟﻤﻊ ﮐﻨﻨﺪه وﺟـﻮد دارد‬ ‫ﮐﻪ ﻫﻤﻪ اﯾﻦ ﮐﺎرﻫﺎ را اﻧﺠﺎم ﻣﯽ دﻫﺪ‪.‬‬ ‫اﮔﺮ ﻗﺮار ﺑﺎﺷﺪ ﯾﮏ ﭘﺮدازﻧﺪه ﺑﺎ ﺳﺮﻋﺖ ﺑﺎﻻ ﻋﻤﻞ ﮐﻨﺪ ‪ ،‬ﺑﺎﯾﺴـﺘﯽ ادواﺗـﯽ ﮐـﻪ ﺑـﺎ آن درﮔﯿـﺮي ﻣﺴـﺘﻘﯿﻢ‬ ‫دارﻧﺪ ﻧﯿﺰ‪ ،‬ﻫﻢ ﺳﺮﻋﺖ ﺑﺎ آن ﺑﺎﺷﻨﺪ‪) .‬زﯾﺮا در ﻏﯿﺮ اﯾﻨﺼﻮرت ﺳﺮﻋﺖ ﻧﻬﺎﯾﯽ ﭘـﺎﯾﯿﻦ ﻣـﯽ آﯾـﺪ( از ﺟﻤﻠـﻪ‬ ‫ادواﺗﯽ ﮐﻪ ﺑﺎ ‪ Cpu‬راﺑﻄﻪ ﻣﺴﺘﻘﯿﻢ دارد‪ ،‬ﺣﺎﻓﻈﻪ اﺻﻠﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ اﺳﺖ‪.‬‬ ‫اﻣﺮوزه ﻣﯽ داﻧﯿﻢ ﺑﺮاي اﺟﺮاي ﺑﺮﻧﺎﻣﻪﻫﺎ ﻇﺮﻓﯿﺖ زﯾﺎدي از ﺣﺎﻓﻈﻪ ﻣﻮرد ﻧﯿﺎز اﺳﺖ‪ .‬اﮔﺮ ﻗـﺮار ﺑﺎﺷـﺪ ﮐـﻪ‬ ‫اﯾﻦ ﺣﺎﻓﻈﻪ ﺑﺎ ﺣﺠﻢ زﯾﺎد ﺧﻮد ﻫﻢ ﺳﺮﻋﺖ ﭘﺮدازﻧﺪه ﺑﺎﺷﺪ‪ ،‬ﺑﻪ ﻋﺒﺎرﺗﯽ از ﺗﮑﻨﻮﻟﻮژي ﺳـﺎﺧﺖ ﭘﺮدازﻧـﺪه‬ ‫اﺳﺘﻔﺎده ﮐﻨﺪ‪ ،‬ﻗﯿﻤﺖ ﺣﺎﻓﻈﻪ و در ﻧﺘﯿﺠﻪ ﻗﯿﻤﺖ ﮐﺎﻣﭙﯿﻮﺗﺮ ﺑﻪ ﻣﺮاﺗﺐ ﺑـﺎﻻ ﻣـﯽ رود‪ .‬از اﯾـﻦ ﺟﻬـﺖ ﺑـﺮاي‬ ‫ﮐﺎﻫﺶ ﻗﯿﻤﺖ ﻣﻌﻤﻮﻻً ﺣﺎﻓﻈﻪ ﻫﺎ را ﺑﺎ ﺳﺮﻋﺘﯽ ﺣﺘﯽ ﺗﺎ ﯾﮏ دﻫﻢ ﺳﺮﻋﺖ ﭘﺮدازﻧـﺪه در اﺧﺘﯿـﺎر آن ﻗـﺮار‬ ‫ﻣﯽ دﻫﻨﺪ‪) .‬اﻟﺒﺘﻪ در ‪ PC‬ﻫﺎ اﯾﻨﻄﻮر ﻧﯿﺴﺖ ﺑﻠﮑﻪ ﺿﺮﯾﺐ ﺳﺮﻋﺖ ﺑﯿﻦ ﺣﺎﻓﻈﻪ و ﭘﺮدازﻧﺪه ﺑﯿﻦ ‪ 4‬ﺗـﺎ ‪6‬ﻣـﯽ‬ ‫ﺑﺎﺷﺪ( ﺑﺪﯾﻦ ﺗﺮﺗﯿﺐ ﻗﯿﻤﺖ ﺣﺎﻓﻈﻪ و ﻫﻤﭽﻨﯿﻦ ﻗﯿﻤﺖ ﮐﺎﻣﭙﯿﻮﺗﺮ در ﮐﻞ ﻣﻄﻠﻮب ﺧﻮاﻫﺪ ﺑﻮد‪ .‬اﻣـﺎ ﻣﺸـﮑﻞ‬ ‫اﺧﺘﻼف ﺳﺮﻋﺖ ﺑﯿﻦ ﺣﺎﻓﻈﻪ ﺑﺎ ﻇﺮﻓﯿﺖ ﺑﺎﻻ و ﭘﺮدازﻧﺪه را ﺑﻪ ﮐﻤﮏ ﺣﺎﻓﻈﻪ دﯾﮕﺮي ﮐﻪ از ﻧﻈﺮ ﺳﺮﻋﺖ و‬ ‫ﺗﮑﻨﻮﻟﻮژي ﻫﻤﺴﺎن ﺑﺎ ﭘﺮدازﻧﺪه اﺳﺖ )ﮐﻪ اﯾﻦ ﺣﺎﻓﻈـﻪ را اﺻـﻄﻼﺣﺎً ‪ Cache‬ﻣـﯽ ﻧﺎﻣﻨـﺪ( ﺑﺮﻃـﺮف ﻣـﯽ‬ ‫ﺳﺎزﻧﺪ‪.‬‬ ‫‪٣٠‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺳﺮﻋﺖ ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪت زﻣﺎن ﻻزم ﺑﺮاي اﻧﺠﺎم دو ‪ read‬ﯾﺎ دو ‪ Write‬ﻣﺘﻮاﻟﯽ را ﺳﺮﻋﺖ ﺣﺎﻓﻈـﻪ ﮔﻮﯾﻨـﺪ‪ .‬ﮐـﻪ ﻣﻌﻤـﻮﻻً ﺑـﺎ‬ ‫‪t mem‬‬ ‫ﻣﻘﺎﯾﺴﻪ ﻣﯽ ﺷﻮد‪ ).‬ﻣﻘﺪار آن ﺑﯿﻦ ‪1‬ﺗـﺎ ‪ 10‬ﻣـﯽ ﺑﺎﺷـﺪ(اﮔـﺮ ﺳـﺮﻋﺖ‬ ‫ﺳﺮﻋﺖ ‪ Cpu‬ﺑﻪ ﺻﻮرت ‪t cpu‬‬ ‫‪t mem‬‬ ‫ﺑﺮاﺑﺮ ﯾﮏ ﻣﯽ ﺷﻮد‪ .‬در اﯾـﻦ ﺻـﻮرت ﻓﻀـﺎي ﺣﺎﻓﻈـﻪ اﺻـﻠﯽ ﺑـﻪ‬ ‫ﺣﺎﻓﻈﻪ ﺑﺮاﺑﺮ ﺑﺎ ‪ Cpu‬ﺑﺎﺷﺪ ‪t cpu ،‬‬ ‫ﺻﻮرت ﯾﮏ ﺛﺒﺎت)‪ (Register‬ﺗﻠﻘﯽ ﺧﻮاﻫﺪ ﺷﺪ )ﮐﺎراﯾﯽ ﯾﮏ ﮐﺎﻣﭙﯿﻮﺗﺮ ﻧﯿﺰ ﺑﺎ اﯾﻦ ﻧﺴﺒﺖ ﺳﻨﺠﯿﺪه ﻣـﯽ‬ ‫ﺷﻮد‪(.‬‬ ‫‪ : 3-3‬ارﺗﺒﺎط ‪ CPU‬ﺑﺎ ‪ I/O‬وﺣﺎﻓﻈﻪ اﺻﻠﯽ‬ ‫ﻣﯽ داﻧﯿﻢ ﮐﻪ ﭘﺮدازﻧﺪه ﻋﻼوه ﺑﺮ ﺣﺎﻓﻈﻪ اﺻﻠﯽ ‪ ،‬دﺳﺘﮕﺎﻫﻬﺎي ﻣﺨﺘﻠﻒ ‪ I/O‬رادارا ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ‬ ‫ﺑﺎﯾﺴﺘﯽ ﺑﺘﻮاﻧﺪ آﻧﻬﺎ را آدرس دﻫﯽ ﻧﻤﺎﯾﺪ ‪ .‬ﻧﺤﻮى آدرس دﻫﯽ ﺣﺎﻓﻈﻪ اﺻﻠﯽ ودﺳﺘﮕﺎه ‪ I/O‬در ﺳﯿﺴﭙﺘﻢ‬ ‫ﻫﺎي ﮐﺎﻣﭙﯿﻮﺗﺮي ﺑﻪ ﻃﻮر ﻋﻤﺪه ﺑﻪ دو دﺳﺘﻪ ﺗﻘﺴﯿﻢ ﻣﯽ ﺷﻮد ‪:‬‬ ‫دﺳﺘﻪ اول ‪Memory Mapped I/O :‬‬ ‫دﺳﺘﻪ دوم ‪I/O Mapped I/O :‬‬ ‫‪Memory Mapped I/O : 1-3-3‬‬ ‫در اﯾﻦ روش از ﮐﻞ ﻓﻀﺎي آدرس دﻫﯽ ﺣﺎﻓﻈﻪ اﺻﻠﯽ ‪ ،‬ﺑﺨﺸﯽ از آن ﺑﻪ ‪ I/O‬ﻫﺎي ﻣﺨﺘﻠﻒ‬ ‫ﺗﻌﻠﻖ دارد وﺑﻘﯿﻪ ﻓﻀﺎي ﺑﺎﻗﯿﻤﺎﻧﺪه ﺑﻪ ﺣﺎﻓﻈﻪ اﺻﻠﯽ اﺧﺘﺼﺎص ﻣﯽ ﯾﺎﺑﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﻓﻀﺎي آدرس دﻫﯽ‬ ‫‪ I/O‬ﺑﺎﯾﺪ در ﻓﻀﺎي آدرس دﻫﯽ ﺣﺎﻓﻈﻪ ‪ Mapped ،‬ﺷﻮد‪.‬‬ ‫‪٣١‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫)ﺷﮑﻞ ‪(2-3‬‬ ‫در اﯾﻨﺠﺎ ﻓﺮض ﺷﺪه ﮐﻪ ‪ CPU‬ﻫﯿﭻ وﺳﯿﻠﻪ ﺟﺎﻧﺒﯽ ﻧﺪارد وﻓﻘﻂ ﭼﻬﺎر ﺧﻂ آدرس دارد‪.‬‬ ‫ﻧﮑﺘﻪ ‪ :‬ﺗﺎ زﻣﺎﻧﯽ ﮐﻪ ﺑﺎ ارزش ﺗﺮﯾﻦ ﺑﯿﺖ داراي ارزش ﺻﻔﺮ اﺳﺖ ‪ I/O ،‬آدرس دﻫﯽ ﻣﯽ ﺷﻮد و وﻗﺘﯽ‬ ‫داراي ارزش ﯾﮏ ﺑﺎﺷﺪ ﺣﺎﻓﻈﻪ اﺻﻠﯽ آدرس دﻫﯽ ﻣﯽ ﺷﻮد ‪.‬‬ ‫ﺑﺎ اﯾﻦ آدرﺳﻬﺎ ‪ I/O‬ﻓﻌﺎل ﻣﯽ ﺷﻮد‪.‬‬ ‫‪0000‬‬ ‫‪0001‬‬ ‫|‬ ‫|‬ ‫|‬ ‫‪0111‬‬ ‫ﺑﺎ اﯾﻦ آدرﺳﻬﺎ ﺣﺎﻓﻈﻪ اﺻﻠﯽ ﻓﻌﺎل ﻣﯽ ﺷﻮد‪.‬‬ ‫‪1000‬‬ ‫‪1001‬‬ ‫|‬ ‫|‬ ‫|‬ ‫‪1111‬‬ ‫زﻣﺎﻧﯽ از اﯾﻦ روش اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ﮐﻪ ﺳﺮﻋﺖ ‪ I/O‬وﺳﺮﻋﺖ ﺣﺎﻓﻈﻪ ﺑﺎ ﻫﻢ ﺑﺮاﺑﺮ ﺑﺎﺷﺪ ‪ .‬وﻗﺘﯽ‬ ‫ﺳﺮﻋﺘﻬﺎ ﺑﺮاﺑﺮ ﻧﯿﺴﺖ ﺑﺎﯾﺪ وﻗﻔﻪ ﻧﺮم اﻓﺰاري اﯾﺠﺎد ﻧﻤﺎﯾﯿﻢ‪.‬‬ ‫‪LDA‬‬ ‫‪Delay‬‬ ‫‪2‬‬ ‫ﻣﺜﺎل ‪:‬‬ ‫ﺗﻮﻗﻒ زﻣﺎن‬ ‫‪٣٢‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ADA‬‬ ‫‪5‬‬ ‫ﻣﯽ‬ ‫در ﻣﺜﺎل ﻓﻮق در دﺳﺘﻮر ‪ LDA 2‬از ﯾﮑﯽ از وﺳﺎﯾﻞ ﺟﺎﻧﺒﯽ ‪ I/O‬ﺑﺎآدرس ‪ ، 2‬ﻣﻘﺪاري را ‪Load‬‬ ‫ﮐﻨﺪ ‪ .‬ﯾﻌﻨﯽ ﺑﺪﯾﻦ ﺻﻮرت از اﺑﺰارﻫﺎي ﺟﺎﻧﺒﯽ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ وﭼﻮن ﺳﺮﻋﺖ ‪ I/O‬ﺑﺎ ﺳﺮﻋﺖ ﺣﺎﻓﻈﻪ‬ ‫اﺻﻠﯽ ﺑﺮاﺑﺮ ﻧﯿﺴﺖ ﺑﺼﻮرت ﻧﺮم اﻓﺰاري ﯾﮏ ﺗﻮﻗﻒ اﯾﺠﺎد ﻣﯽ ﻧﻤﺎ ﯾﯿﻢ ‪ .‬ﻣﺜﻼً ﺑﺎدﺳﺘﻮر ‪ Delay‬اﯾﻦ ﻋﻤﻞ‬ ‫را اﻧﺠﺎم ﻣﯽ دﻫﯿﻢ ‪ ،‬ﺗﺎﮐﻤﯽ ﺗﻮﻗﻒ زﻣﺎﻧﯽ اﯾﺠﺎد ﺷﻮد ﺗﺎ ﻋﻤﻞ ‪ I/O‬ﻗﺒﻠﯽ ﭘﺎﯾﺎن ﯾﺎﺑﺪ وﺳﭙﺲ ﻋﻤﻞ ﺑﻌﺪي‬ ‫ﮐﻪ اﺳﺘﻔﺎده از وﺳﺎﯾﻞ ﺟﺎﻧﺒﯽ ﻣﯽ ﺑﺎﺷﺪ ‪ ،‬ﺻﻮرت ﮔﯿﺮد ‪.‬‬ ‫‪I/O Mapped I/O : 2-3-3‬‬ ‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺣﺎﻓﻈﻪ و‪ I/O‬ﻫﻢ ﺳﺮﻋﺖ ﻧﺒﺎﺷﺪ دﺳﺘﻮراﻟﻌﻤﻠﻬﺎي ﻣﺨﺘﻠﻔﯽ ﺑﺮاي ‪ I/O‬وﺣﺎﻓﻈﻪ وﺟﻮد‬ ‫دارد وﻧﯿﺰ ﻓﻀﺎي آدرس دﻫﯽ ﺣﺎﻓﻈﻪ ‪ ،‬از ﻓﻀﺎي آدرس دﻫﯽ ‪ I/O‬ﻣﺠﺰا اﺳﺖ وﺣﺘﯽ دو دﺳﺘﻪ‬ ‫دﺳﺘﻮراﻟﻌﻤﻞ ﻣﺠﺰا ﺑﺮاي ﮐﺎرﮐﺮدن ﺑﺎ ﺣﺎﻓﻈﻪ و ‪ I/O‬وﺟﻮد دارد‪.‬‬ ‫)ﺷﮑﻞ ‪(3-3‬‬ ‫ﺑﺮاي ﻣﺜﺎل دﺳﺘﻮرات ‪ I/O‬ﺑﺎ ‪ in‬و‪ out‬ﻫﻤﺮاه ﻫﺴﺘﻨﺪ وﻟﯽ دﺳﺘﻮرات ﺣﺎﻓﻈﻪ ﺑﺎ ‪ MOV‬ﻫﻤﺮاه ﻫﺴﺘﻨﺪ‬ ‫‪.‬‬ ‫‪٣٣‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﻧﮑﺘﻪ ‪ :‬ﻣﻌﻤﻮﻻً ﺑﻄﻮرواﻗﻌﯽ در ﺳﯿﺴﺘﻤﻬﺎي ﮐﺎﻣﭙﯿﻮﺗﺮ ﻣﺸﺎﻫﺪه ﻣﯽ ﺷﻮد ﮐﻪ ﺧﻄﻮط آدرس دﻫﯽ ﺑﻪ‬ ‫ﺣﺎﻓﻈﻪ ﺑﻄﻮر ﮐﺎﻣﻞ ﻣﯽ ﺑﺎﺷﺪ وﻟﯽ ﻫﻤﻰ اﯾﻦ ﺧﻄﻮط ﺑﻪ ‪ I/O‬ﺑﺮاي آدرس دﻫﯽ ﻣﺘﺼﻞ ﻧﻤﯽ ﺑﺎﺷﺪ زﯾﺮا‬ ‫ﺗﻌﺪاد ‪ I/O‬ﺑﻪ اﻧﺪازى ﺗﻌﺪاد آدرﺳﻬﺎي ﺣﺎﻓﻈﻪ ﻧﯿﺴﺖ‪.‬‬ ‫‪ : 4-3‬ﻣﺎﺷﯿﻦ وان ﻧﯿﻮﻣﻦ )‪(Von Neuman‬‬ ‫وان ﻧﯿﻮﻣﻦ ﺑﻪ ﻫﻤﺮاه ﻫﻤﮑﺎراﻧﺶ ﯾﮏ ﮐﺎﻣﭙﯿﻮﺗﺮ ﺑﻪ ﻧﺎم ‪ IAS‬ﺳﺎﺧﺖ ﮐﻪ ﭘﺎﯾﻪ واﺳﺎس ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎي‬ ‫اﻣﺮوزي ﻣﯽ ﺑﺎﺷﺪ وﮐﺎﻣﭙﯿﻮﺗﺮ اﯾﺸﺎن ﯾﮏ ﮐﺎﻣﭙﯿﻮﺗﺮ ﺗﮏ آدرﺳﻪ ﺑﻮد ‪.‬‬ ‫)ﺷﮑﻞ ‪(4-3‬‬ ‫‪ : 1-4-3‬دﺳﺘﻮراﻟﻌﻤﻠﻬﺎي ﻣﺎﺷﯿﻦ وان ﻧﯿﻮﻣﻦ ‪:‬‬ ‫وﻗﺘﯽ ﺑﺨﻮاﻫﯿﻢ ﯾﮏ ﭘﺮدازﻧﺪه ﻃﺮاﺣﯽ ﮐﻨﯿﻢ ﺑﺎﯾﺪ اول ﺑﺪاﻧﯿﻢ ﭼﻪ ﺳﺨﺖ اﻓﺰارﻫﺎﯾﯽ را ﻧﯿﺎز دارﯾﻢ‬ ‫واﯾﻦ اﻧﺘﺨﺎب ﺳﺨﺖ اﻓﺰارﻫﺎ ﺑﺴﺘﻪ ﺑﻪ دﺳﺘﻮراﺗﯽ اﺳﺖ ﮐﻪ رﯾﺰ ﭘﺮدازﻧﺪه ﻧﯿﺎز دارد‪.‬‬ ‫‪٣٤‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫)ﺷﮑﻞ ‪(5-3‬‬ ‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ دﺳﺘﻮرات ﺑﺎﻻ ﻣﺜﻼ اﮔﺮ ﺑﺨﻮاﻫﯿﻢ ﻣﺤﺘﻮاي ‪ AC‬را ﺑﺎ ﺳﻄﺮ ‪ 100‬ﺣﺎﻓﻈﻪ ﺟﻤﻊ ﮐﻨﯿﻢ ) ‪ADA‬‬ ‫‪ ، ( 100‬اﺑﺘﺪا ﭘﺮدازﺷﮕﺮ ﺑﻪ ﺳﻄﺮي از ﺣﺎﻓﻈﻪ ﮐﻪ اﯾﻦ دﺳﺘﻮر درون آن ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ رﻓﺘﻪ و اﯾﻦ‬ ‫دﺳﺘﻮر را درون ‪ DR‬ﻗﺮار ﻣﯽ دﻫﺪ و ‪ Decode‬ﺷﺪه و ﻗﺴﻤﺖ ﻫﺎي آن ﻣﺠﺰا ﻣﯽ ﺷﻮﻧﺪ و ﺑﺨﺶ‬ ‫آدرس آن ﮐﻪ ‪ 100‬اﺳﺖ ‪ ،‬درون ‪ AR‬ﻗﺮار ﻣﯽ ﮔﯿﺮد ‪ .‬ﺳﭙﺲ ﺑﻪ ﺧﺎﻧﻪ ‪ 100‬ﺣﺎﻓﻈﻪ ﻣﺮاﺟﻌﻪ ﺷﺪه و‬ ‫اﻃﻼﻋﺎت آن درون ‪ DR‬ﻗﺮار ﻣﯽ ﮔﯿﺮد ‪ .‬ﺣﺎل ﺑﻪ راﺣﺘﯽ ﻣﯽ ﺗﻮان ﻣﺤﺘﻮاي ﺛﺒﺎت ﻫﺎي ‪ AC‬و ‪ DR‬را‬ ‫ﺑﺎﻫﻢ ﺟﻤﻊ ﻧﻤﻮد ‪.‬‬ ‫ﻣﺮاﺣﻞ دﺳﺘﻮر ﻫﺎي ﺑﺎﻻ ﺑﺎﯾﺪ ﮔﻔﺖ ﮐﻪ اﯾﻦ دﺳﺘﻮرات را ﺑﺎﯾﺪ ﻃﻮري ادﻏﺎم ﮐﻨﯿﻢ ﮐﻪ ﻫﻤﺰﻣﺎن اﺟﺮا ﺷﺪن‬ ‫آن ﺗﺎﺛﯿﺮي روي ﻫﻢ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ و ﺑﺎﻋﺚ ﺑﺎﻻﺗﺮ رﻓﺘﻦ ﺳﺮﻋﺖ ﺑﺮﻧﺎﻣﻪ ﻣﯽ ﺷﻮد ‪ .‬اﻟﺒﺘﻪ دﺳﺘﻮر ‪ PC++‬در‬ ‫ﻣﺮﺣﻠﻪ دوم ﻫﻢ ﻣﯽ ﺗﻮاﻧﺴﺖ ﻗﺮار داﺷﺘﻪ ﺑﺎﺷﺪ ‪ .‬زﯾﺮا ﺧﻠﻠﯽ در اﺟﺮاي ﺑﺮﻧﺎﻣﻪ ﻧﺨﻮاﻫﺪ داﺷﺖ ‪ .‬اﻧﺠﺎم‬ ‫‪٣٥‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫اﯾﻦ ﻣﺮاﺣﻞ ﺑﻪ ﺗﺮﺗﯿﺐ اﺳﺖ ﯾﻌﻨﯽ اﮔﺮ ﻣﺮﺣﻠﻪ اول رخ ﻧﺪﻫﺪ ‪ ،‬ﻣﺮﺣﻠﻪ دوم ﻫﻢ ﻧﻤﯿﺘﻮاﻧﺪ اﺗﻔﺎق ﺑﯿﻔﺘﺪ ﮐﻪ‬ ‫اﯾﻦ ﻣﺴﺌﻠﻪ ﻣﺮﺑﻮط ﺑﻪ ﭘﺮدازش ﻣﻮازي اﺳﺖ ﮐﻪ ﺑﻌﺪا ﺑﺤﺚ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬ ‫* آﯾﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﻮﺳﯿﻠﻪ رﯾﺰ ﭘﺮدازﻧﺪهاي ﮐﻪ دراﺧﺘﯿﺎر دارﯾﺪ ﯾﮏ دﺳﺘﻮراﻟﻌﻤﻞ ﺷﺮﻃﯽ ﺑﮑﺎر ﺑﺮﯾﺪ ؟‬ ‫ﺧﯿﺮ ‪ ،‬ﭼﻮن در اﯾﻦ ﻣﺎﺷﯿﻦ ﻣﺎ داراي ﻓﻼﮔﻬﺎي ﺧﺎﺻﯽ ﻧﯿﺴﺘﯿﻢ ‪ ،‬ﮐﻪ ﺑﺮ اﺳﺎس آن دﺳﺘﻮرات ﺷﺮﻃﯽ را‬ ‫اﻋﻤﺎل ﮐﻨﯿﻢ ‪.‬‬ ‫* آﯾﺎ اﯾﻦ ﻣﺎﺷﯿﻦ ﻣﯽ ﺗﻮاﻧﺪ دﺳﺘﻮر ‪ LDA M 100‬را اﺟﺮا ﮐﻨﺪ ؟ ﺑﻠﻪ‬ ‫)‪AC 10000 - 00001‬‬ ‫ﻋﻠﺖ اﯾﻦ ﮐﺎر‪ ،‬اﯾﻦ اﺳﺖ ﮐﻪ در روﺷﻬﺎي ﻗﺒﻠﯽ ﺑﻪ ازاي ﻫﺮ ﺑﯿﺖ ‪ ،‬ﺑﺎﯾﺪ ﻫﻢ ﻋﻤﻞ ﺟﻤﻊ وﻫﻢ ﻋﻤﻞ‬ ‫ﺷﯿﻔﺖ را اﻧﺠﺎم دﻫﯿﻢ ‪ .‬وﻟﯽ در اﯾﻦ روش ﻣﺎ ﻓﻘﻂ ﯾﮏ ﺑﺎر ﻋﻤﻞ ﺟﻤﻊ و ﯾﮏ ﺑﺎر ﻋﻤﻞ ﺗﻔﺮﯾﻖ رااﻧﺠﺎم‬ ‫ﻣﯽدﻫﯿﻢ وﺑﻪ ازاي ﺑﯿﺘﻬﺎي ﯾﮏ ﻓﻘﻂ ﻋﻤﻞ ﺷﯿﻔﺖ ﺑﻪ راﺳﺖ را اﻧﺠﺎم ﻣﯽ دﻫﯿﻢ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﻋﻤﻞ ﺿﺮب‬ ‫ﺳﺮﯾﻌﺘﺮ از روﺷﻬﺎي ﻗﺒﻞ اﻧﺠﺎم ﻣﯽ ﺷﻮد ‪.‬‬ ‫‪ :1-3-3‬روش ﺿﺮب ‪Booth‬‬ ‫ﺑﺮاي ﺗﺸﺨﯿﺺ دﻧﺒﺎﻟﻪاي از ﯾﮑﻬﺎ ﺑﺎﯾﺪ اﺑﺘﺪا ﻫﻤﻪ ﺑﯿﺘﻬﺎ را ﭼﮏ ﮐﻨﯿﻢ ﺗـﺎ دﻧﺒﺎﻟـﻪاي از ﯾﮑﻬـﺎ را ﻣﺸـﺨﺺ‬ ‫ﻧﻤﺎﯾﯿﻢ اﯾﻦ ﻋﻤﻞ ‪ ،‬ﻋﻤﻞ ﭘﯿﭽﯿﺪهاي اﺳﺖ ‪ .‬ﻟﺬا ﺷﺨﺼﯽ ﺑﻨﺎم ‪ Booth‬اﻟﮕﻮرﯾﺘﻤﯽ ﺳﺨﺖ اﻓﺰاري را اراﺋﻪ‬ ‫ﻧﻤﻮد ﮐﻪ ﺑﻪ راﺣﺘﯽ ﻣﯽ ﺗﻮاﻧﺴﺖ اﯾﻦ ﻣﺸﮑﻞ را ﺣﻞ ﻧﻤﺎﯾﺪ‪.‬‬ ‫در اﯾﻦ روش در ﻫﺮ ﻟﺤﻈﻪ ﺑﻪ ﺑﯿﺖ ﺟﺎري )ﺑﯿﺖ ﺑﺎ ارزش ﮐﻤﺘﺮ ( و ﺑﯿﺖ ﻣﺎﻗﺒﻞ آن ﺗﻮﺟﻪ ﻣﯽ ﺷﻮد ‪.‬اﯾﻦ‬ ‫دو ﺑﯿﺖ ‪ 4‬وﺿﻌﯿﺖ ﻧﺴﺒﺖ ﺑﻪ ﯾﮑﺪﯾﮕﺮ دارﻧﺪ ﮐﻪ در ﺑﺮﺧﻮرد ﺑﺎ ﻫﺮ ﯾﮏ ﻣﻄﺎﺑﻖ اﻟﮕﻮي زﯾﺮ ﻋﻤﻞ ﻣﯽ‬ ‫ﺷﻮد ‪:‬‬ ‫ﺑﯿﺖ ﺟﺎري‬ ‫‪0‬‬ ‫‪0‬‬ ‫ﺑﯿﺖ ﻣﺎﻗﺒﻞ‬ ‫‪0‬‬ ‫‪ -1‬در ﺣﺎﻟﺖ اول اﻧﺘﻘﺎل ﺑﻪ راﺳﺖ‬ ‫‪ -2‬در ﺣﺎﻟﺖ دوم ﻋﻤﻞ ﺗﻔﺮﯾﻖ‬ ‫‪1‬‬ ‫‪٨٥‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪1‬‬ ‫‪ -3‬در ﺣﺎﻟﺖ ﺳﻮم ﻋﻤﻞ ﺟﻤﻊ‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪ -4‬در ﺣﺎﻟﺖ ﭼﻬﺎرم اﻧﺘﻘﺎل ﺑﻪ راﺳﺖ‬ ‫‪1‬‬ ‫ﭼﻮن در ﻫﺮ ﻟﺤﻈﻪ ﺑﻪ ﺑﯿﺖ ﻣﺎﻗﺒﻞ ﻧﯿﺎز ﻣـﯽ ﺑﺎﺷـﺪ ‪ ،‬ﭘـﺲ ﯾـﮏ ‪ F/F‬دارﯾـﻢ ﮐـﻪ ﺑﯿـﺖ ﻣﺎﻗﺒـﻞ را در آن‬ ‫ﻧﮕﻬﺪاري ﻣﯽ ﮐﻨﯿﻢ‪ .‬ﺑﯿﺘﯽ ﮐﻪ ﺷﯿﻔﺖ ﺑﻪ راﺳﺖ داده ﻣﯽ ﺷﻮد ﺑﻪ ‪ F/F‬ﻣﻨﺘﻘﻞ ﻣﯽ ﺷﻮد )از ﺛﺒﺎت ‪ (B‬وﻫـﺮ‬ ‫ﺑﺎر ﺑﻪ ﺑﯿﺖ ﮐﻢ ارزش ﺛﺒﺎت ‪) B‬ﺑﯿﺖ ﺟﺎري ( وﻣﺤﺘﻮاي ‪ F/F‬ﮐﻪ ﺑﯿﺎﻧﮕﺮ ﺑﯿـﺖ ﻗﺒﻠـﯽ اﺳـﺖ ﻧﮕـﺎه ﻣـﯽ‬ ‫ﮐﻨﯿﻢ‪.‬‬ ‫ﻧﮑﺘﻪ ‪ :‬در ﺷﺮوع ﮐﺎر ﻣﺤﺘﻮاي ‪ F/F‬ﺑﺮاﺑﺮ ﺑﺎ ﺻﻔﺮ ﻣﯽ ﺑﺎﺷﺪ ‪.‬‬ ‫ﻣﺜﺎل ‪ :‬ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ﻋﺪد ‪ (00111100) 2‬داﺧﻞ ﺛﺒﺎﺗﻬﺎي ‪ A‬و ‪ B‬ﻗﺮار داﺷﺘﻪ ﺑﺎﺷﺪ ‪ .‬ﺑﺎ اﺳﺘﻔﺎده از‬ ‫اﻟﮕﻮرﯾﺘﻢ ‪ Booth‬آن را ﺗﺤﻠﯿﻞ ﮐﻨﯿﺪ ؟‬ ‫ﺑﯿﺖ ﺟﺎري‬ ‫‪F/F‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫در اﺑﺘﺪادردﻧﺒﺎﻟﻪايازﺻﻔﺮﻫﺎﻫﺴﺘﯿﻢ ﭘﺲاﻧﺘﻘﺎلﺑﻪراﺳﺖاﻧﺠﺎمﻣﯽﺷﻮد‪.‬‬ ‫درآﻏﺎزدﻧﺒﺎﻟﻪاﯾﯽ از ﯾﮑﻬﺎﻫﺴﺘﯿﻢ ﭘﺲ ﻋﻤﻞ ﺗﻔﺮﯾﻖ اﻧﺠﺎم ﻣﯽ ﺷﻮد‪.‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫دردﻧﺒﺎﻟﻪاﯾﯽ ازﯾﮑﻬﺎﻫﺴﺘﯿﻢ ﭘﺲ اﻧﺘﻘﺎل ﺑﻪ راﺳﺖ اﻧﺠﺎم ﻣﯽ ﺷﻮد‪.‬‬ ‫دردﻧﺒﺎﻟﻪاﯾﯽ ازﯾﮑﻬﺎﻫﺴﺘﯿﻢ ﭘﺲ اﻧﺘﻘﺎل ﺑﻪ راﺳﺖ اﻧﺠﺎم ﻣﯽ ﺷﻮد‪.‬‬ ‫دردﻧﺒﺎﻟﻪاﯾﯽ ازﯾﮑﻬﺎﻫﺴﺘﯿﻢ ﭘﺲ اﻧﺘﻘﺎل ﺑﻪ راﺳﺖ اﻧﺠﺎم ﻣﯽ ﺷﻮد‪.‬‬ ‫دﻧﺒﺎﻟﻪاﯾﯽ از ﯾﮑﻬﺎ ﭘﺎﯾﺎن ﯾﺎﻓﺖ ﭘﺲ ﻋﻤﻞ ﺟﻤﻊ اﻧﺠﺎم ﻣﯽ ﺷﻮد‪.‬‬ ‫‪٨٦‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪0‬‬ ‫‪0‬‬ ‫دردﻧﺒﺎﻟﻪاﯾﯽ از ﺻﻔﺮﻫﺎﻫﺴﺘﯿﻢ ﭘﺲ اﻧﺘﻘﺎل ﺑﻪ راﺳﺖ اﻧﺠﺎم ﻣﯽ ﺷﻮد‪.‬‬ ‫× ‪ -3‬را ﺑﻪ روش اﻟﮕﻮرﯾﺘﻢ ‪ Booth‬اﻧﺠﺎم دﻫﯿﺪ‪:‬‬ ‫‪-2‬‬ ‫ﻣﺜﺎل ‪:‬‬ ‫در ﺣﻞ اﯾﻦ ﻣﺜﺎل ﺑﻪ روش اﻟﮕﻮرﯾﺘﻢ ‪ Booth‬ﭼﻮن دو ﻋﺪد ‪ 4‬ﺑﯿﺘﯽ اﺳﺖ ‪ ،‬ﭘﺲ ‪ 4‬ﻋﻤﻞ ‪Shift‬‬ ‫‪ Right‬وﻓﻘﻂ ﯾﮏ ﻋﻤﻞ ﺗﻔﺮﯾﻖ ﺻﻮرت ﻣﯽ ﮔﯿﺮد وﻟﯽ ﺑﺎ روش ﻗﺒﻠﯽ ‪ 2‬ﺑﺎر ﻋﻤﻞ ﺟﻤﻊ‪ ،‬ﯾﮑﺒﺎر ﻋﻤﻞ‬ ‫ﺗﻔﺮﯾﻖ وﭼﻬﺎر ﻣﺮﺗﺒﻪ ﻋﻤﻞ ‪ ShR‬ﺻﻮرت ﻣﯽ ﮔﯿﺮد ‪.‬‬ ‫× ‪ -5‬ﺑﻪ روش ‪ Booth‬ﻋﻤﻞ ﮐﻨﯿﺪ‪.‬‬ ‫‪+5‬‬ ‫ﻣﺜﺎل ‪:‬‬ ‫‪٨٧‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫* ﻋﯿﺐ اﯾﻦ روش اﯾﻦ اﺳﺖ ﮐﻪ اﮔﺮ ﯾﮏ ﻫﺎ وﺻﻔﺮﻫﺎ ﺑﺼﻮرت ﯾﮏ در ﻣﯿﺎن در ﺛﺒﺎت ‪ B‬ﻗﺮار ﮔﯿﺮﻧﺪ‬ ‫ﻣﺎﻧﻨﺪ ﻣﺜﺎل ﻓﻮق ﺑﺪﺗﺮﯾﻦ ﺣﺎﻟﺖ را دارﯾﻢ ‪ .‬ﯾﻌﻨﯽ ﻣﯽ ﺑﺎﯾﺴﺖ ﺑﻪ ازاي ﯾﮏ ﻫﺎ ﻋﻤﻞ ﺗﻔﺮﯾﻖ وﺑﻪ ازاء‬ ‫ﺻﻔﺮﻫﺎ ﻋﻤﻞ ﺟﻤﻊ را اﻧﺠﺎم دﻫﯿﻢ ‪.‬‬ ‫* روﺷﻬﺎي ﺿﺮب ﺳﺮﯾﻊ دﯾﮕﺮي ﻧﯿﺰ وﺟﻮد دارد ﮐﻪ ﺳﺮﻋﺖ اﻧﺠﺎم ﮐﺎر آﻧﻬﺎ ﺑﯿﺸﺘﺮ اﺳﺖ وﺑﺮاي ﻣﺜﺎل‬ ‫اﮔﺮ ‪ n‬ﺻﻔﺮ ﻣﺘﻮاﻟﯽ ﻣﺸﺎﻫﺪ ه ﺷﻮد ﺑﺎﯾﺪ آﻧﺎً ‪ n‬ﺷﯿﻔﺖ ﺻﻮرت ﮔﯿﺮد ‪ ،‬ﭘﺲ اﯾﻦ روش ﺳﺮﻋﺖ ﺑﯿﺸﺘﺮي‬ ‫دارد ‪.‬ﺑﺮاي ﭘﯿﺎدهﺳﺎزي اﯾﻦ ﻣﺪارات ﺿﺮب ﮐﻨﻨﺪه ﻧﯿﺎز ﺑﻪ واﺣﺪ ﮐﻨﺘﺮل ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ اﯾﻦ از ﻧﻈﺮ ﻫﺰﯾﻨﻪ‬ ‫ﺑﻪ ﺻﺮﻓﻪ ﻧﯿﺴﺖ‪.‬‬ ‫‪٨٨‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ : 2-3-3‬ﺿﺮب ﺑﻪ ﮐﻤﮏ ﻣﺪارات ﺗﺮﮐﯿﺒﯽ )ﺿﺮب آراﯾﻪاي(‬ ‫ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﻢ دو ﻋﺪ ‪ 3‬ﺑﯿﺘﯽ را در ﻫﻢ ﺿﺮب ﮐﻨﯿﻢ ﺑﻨﺎﺑﺮاﯾﻦ دارﯾﻢ ‪:‬‬ ‫)ﺷﮑﻞ ‪(2-3‬‬ ‫ﻧﮑﺘﻪ ‪ :‬ﺑﻄﻮر ﮐﻠﯽ اﮔﺮ ﺑﺨﻮاﻫﯿﻢ در ﺿﺮب آراﯾﻪاﯾﯽ دو ﻋﺪ ‪ n‬ﺑﯿﺘﯽ را در ﻫﻢ ﺿﺮب ﮐﻨﯿﻢ ‪ ،‬ﺑﻪ ‪n‬‬ ‫‪ n‬ﻋﺪد ‪ F.A‬ﻧﯿﺎز ﺧﻮاﻫﯿﻢ داﺷﺖ ‪.‬‬ ‫‪2‬‬ ‫‪- 2 n‬‬ ‫ﻋﺪد ‪ H.A‬و‬ ‫‪٨٩‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺗﻤﺮﯾﻨﺎت‬ ‫‪ -1‬دو ﻋﺪد ‪ -13‬و‪ 15‬را ﺑﻪ روش ﻗﺪر ﻣﻄﻠﻖ ﻋﻼﻣﺖ در ﻫﻢ ﺿﺮب ﻧﻤﺎﯾﯿﺪ وﮐﻠﯿﻪ ﻣﺮاﺣﻞ راﻧﺸﺎن‬ ‫دﻫﯿﺪ؟‬ ‫‪ -2‬دو ﻋﺪد ‪ -13‬و ‪ -5‬را ﺑﻪ روش ﻣﺘﻤﻢ ‪ 2‬را در ﻫﻢ ﺿﺮب ﻧﻤﺎﯾﯿﺪ وﮐﻠﯿﻪ ﻣﺮاﺣﻞ را ﻧﺸﺎن دﻫﯿﺪ؟‬ ‫‪ -3‬دو ﻋﺪد ‪ -7‬و ‪ 3‬را در ‪ 4‬ﺑﯿﺖ ﺑﻪ ﻓﺮم ﻣﺘﻤﻢ ‪ 2‬ﻧﻤﺎﯾﺶ دﻫﯿﺪ وﺳﭙﺲ ﺑﺮاﺳﺎس روش ‪ Booth‬ﺑﺎ ﻫﻢ‬ ‫ﺿﺮب ﻧﻤﺎﯾﯿﺪ ‪ .‬ﮐﻠﯿﻪ ﻣﺮاﺣﻞ را ﻃﯽ ﻋﻤﻞ ﺿﺮب ﻧﺸﺎن دﻫﯿﺪ؟‬ ‫‪ -4‬در ﻧﻈﺮ ﺑﮕﯿﺮﯾﺪ ﮐﻪ دو ﻋﺪد ‪ A = +6‬و ‪ B = -7‬را ﺑﺨﻮاﻫﯿﻢ ﺑﻪ روش ‪ Booth‬را در ﻫﻢ ﺿﺮب‬ ‫ﻧﻤﺎﯾﯿﻢ ‪ ،‬در ﻫﺮ ﯾﮏ از ‪ 2‬ﻣﺮﺣﻠﻪ زﯾﺮ ﻓﻘﻂ ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﭼﻪ ﺗﻌﺪاد ﻋﻤﻞ ﺟﻤﻊ وﭼﻪ ﺗﻌﺪاد ﻋﻤﻞ ﺗﻔﺮﯾﻖ‬ ‫ﻻزم اﺳﺖ ؟ )ﺛﺒﺎﺗﻬﺎ را ‪ 4‬ﺑﯿﺘﯽ در ﻧﻈﺮ ﺑﮕﯿﺮﯾﺪ(‬ ‫)‪ A‬ﺿﺮب ﺷﻮﻧﺪه و ‪ B‬ﺿﺮب ﮐﻨﻨﺪه ﻣﯽ ﺑﺎﺷﺪ‪(.‬‬ ‫اﻟﻒ( ‪A × B‬‬ ‫ب( ‪ B) B × A‬ﺿﺮب ﺷﻮﻧﺪه و ‪ A‬ﺿﺮب ﮐﻨﻨﺪه ﻣﯽ ﺑﺎﺷﺪ‪(.‬‬ ‫‪ -5‬ﯾﮏ ﺿﺮب ﮐﻨﻨﺪى آراﯾﻪاي ﻃﺮاﺣﯽ ﮐﻨﯿﺪ ﮐﻪ دو ﻋﺪد ‪ 4‬ﺑﯿﺘﯽ را ﺿﺮب ﮐﻨﺪ ‪ .‬از ﮔﯿﺘﻬﺎي ‪ AND‬و‬ ‫ﺟﻤﻊ ﮐﻨﻨﺪه ﻫﺎي دو دوﯾﯽ اﺳﺘﻔﺎده ﮐﻨﯿﺪ ؟‬ ‫‪ -6‬اﻟﮕﻮرﯾﺘﻤﯽ را ﺑﻪ ﺷﮑﻞ ﻓﻠﻮﭼﺎرت ﺑﺮاي ﻋﻤﻞ ﺿﺮب ﺑﻪ روش ‪ Booth‬رﺳﻢ ﻧﻤﺎﯾﯿﺪ؟‬ ‫‪ -7‬درﺳﺘﯽ ﯾﺎ ﻧﺎدرﺳﺘﯽ ﻋﺒﺎرات زﯾﺮ را ﻣﺸﺨﺺ ﻧﻤﺎﯾﯿﺪ؟‬ ‫ ﭘﯿﭽﯿﺪﮔﯽ ﺿﺮب دو ﻋﺪد ‪ ،‬ﺑﻪ اﻧﺘﺨﺎب ﮐﺪ ﺟﻬﺖ ﻧﻤﺎﯾﺶ آﻧﻬﺎ ﺑﺴﺘﮕﯽ دارد‪.‬‬‫ در ﯾﮏ ﮐﺎﻣﭙﯿﻮﺗﺮ ﮐﻪ ﮐﻠﯿﻪ ى ﺛﺒﺎﺗﻬﺎي آن ‪ n‬ﺑﯿﺘﯽ ﻫﺴﺘﻨﺪ ‪ ،‬در ﻣﺤﺎﺳﺒﻪ ى دو ﻋﺒﺎرت زﯾﺮ ﻧﻤﯽ ﺗﻮان‬‫ﮔﻔﺖ ﮐﻪ ﺳﺮﻋﺖ ﻣﺤﺎﺳﺒﻪ ى ﻋﺒﺎرت دوم ﺑﯿﺸﺘﺮ از ﺳﺮﻋﺖ ﻣﺤﺎﺳﺒﻪ ى ﻋﺒﺎرت اول اﺳﺖ‪.‬‬ ‫)‪(N < M‬‬ ‫‪N × K (2‬‬ ‫‪M × K (1‬‬ ‫‪٩٠‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ در ﮐﻠﯿﻪ روﺷﻬﺎي ﺿﺮب ‪ ،‬ﻋﻤﻞ ﺿﺮب ‪ Shift ، n‬وﺣﺎﺻﻞ ‪ 2n‬ﺑﯿﺖ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬‫‪ -‬در ﺿﺮب دو ﻋﺪد ﻣﺘﻤﻢ ‪ ، 2‬ﻋﻼﻣﺖ دو ﻋﺪد ﻧﯿﺰ ﻣﺎﻧﻨﺪ ﺳﺎﯾﺮ ﺑﯿﺘﻬﺎ ﭘﺮدازش ﻣﯽ ﺷﻮد‪.‬‬ ‫‪ -4‬ﻣﺪارات ﺗﻘﺴﯿﻢ ﮐﻨﻨﺪه‬ ‫ﻋﻤﻞ ﺗﻘﺴﯿﻢ ﻫﻢ ﻣﺎﻧﻨﺪ ﻋﻤﻞ ﺿﺮب اﻟﻬﺎم ﮔﺮﻓﺘﻪ از روش ﺗﻘﺴﯿﻢ دﺳﺘﯽ اﺳﺖ ‪.‬در ﻋﻤﻞ ﺗﻘﺴﯿﻢ ﻣﻘﺴﻮم‬ ‫ازﻟﺤﺎظ ﺗﻌﺪادارﻗﺎم ﻣﻌﻤﻮﻻً ازﻣﻘﺴﻮم ﻋﻠﯿﻪ ﺑﺰرﮔﺘﺮاﺳﺖ‪.‬ﺑﺮايﮐﻢ ﮐﺮدن ﻫﺰﯾﻨﻪ ﻫﺎ ﺑﻬﺘﺮ اﺳﺖ ﻣﺪار‬ ‫ﺑﺼﻮرت ﯾﮑﺜﺎرﭼﻪ ﺑﺎﺷﺪ ‪ .‬ﺑﻄﻮرﯾﮑﻪ اﮔﺮﻣﻘﺴﻮم ﻋﻠﯿﻪ ﻣﺎ ‪ n‬ﺑﯿﺘﯽ ﺑﺎﺷﺪ ‪ ،‬ﺑﺎﯾﺪ ﻣﻘﺴﻮم ﻣﺎ در ﺛﺒﺎت ‪2n‬‬ ‫ﺑﯿﺘﯽ ذﺧﯿﺮه ﮔﺮدد ‪ .‬ﭘﺲ ﺗﺎ اﯾﻨﺠﺎ ﺑﻪ ‪ 3‬ﺛﺒﺎت ‪ n‬ﺑﯿﺘﯽ ﻧﯿﺎزﻣﻨﺪﯾﻢ ‪.‬ﻫﻤﭽﻨﯿﻦ ﺛﺒﺎت ﻣﺎ ﺑﺎﯾﺪ ﻗﺎﺑﻠﯿﺖ ﺷﯿﻔﺖ ﺑﻪ‬ ‫ﭼﭗ )‪ (ShL‬را داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬ﭼﻮن ﻣﺎ ﺧﻮدﻣﺎن در ﻋﻤﻞ ﺗﻘﺴﯿﻢ دﺳﺘﯽ ﻫﺮﻟﺤﻈﻪ ﯾﮏ ﺑﯿﺖ ﺑﻪ ﺟﻠﻮ ﻣﯽ‬ ‫روﯾﻢ وﻟﯽ در ﺛﺒﺎت ﺑﺎﯾﺪ ﯾﮏ ﺷﯿﻔﺖ ﺑﻪ ﺳﻤﺖ ﭼﭗ داﺷﺘﻪ ﺑﺎﺷﯿﻢ وﻧﯿﺰ ﺑﻪ ﯾﮏ ﺗﻔﺮﯾﻖ ﮐﻨﻨﺪه در ﻣﺪار‬ ‫ﻧﯿﺎز دارﯾﻢ ﺗﺎ ﻋﻤﻞ ﺗﻔﺮﯾﻖ را اﻧﺠﺎم دﻫﺪ‪ .‬ﻫﻤﭽﻨﯿﻦ ﻗﺒﻞ از ﻋﻤﻞ ﺗﻘﺴﯿﻢ ﺑﺎﯾﺪ ﯾﮏ ﻣﻘﺎﯾﺴﻪ ﮐﻨﻨﺪه وﺟﻮد‬ ‫داﺷﺘﻪﺑﺎﺷﺪﺗﺎ ﻣﺸﺨﺺ ﻧﻤﺎﯾﺪ ﮐﻪ ﻣﻘﺴﻮمﮐﻮﭼﮑﺘﺮازﻣﻘﺴﻮمﻋﻠﯿﻪاﺳﺖ ﯾﺎ ﺧﯿﺮ‪.‬‬ ‫‪٩١‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ : 1-4‬ﺗﻘﺴﯿﻢ ﺑﻪ روش ﻣﻘﺎﯾﺴﻪاي‬ ‫ﺑﺮاي ﻋﻤﻞ ﺗﻘﺴﯿﻢ ﺑﻪ روش ﻣﻘﺎﯾﺴﻪاي ﺑﻪ ﻣﻮارد زﯾﺮ ﻧﯿﺎزﻣﻨﺪﯾﻢ ‪:‬‬ ‫‪ -2‬ﺛﺒﺎﺗﻬﺎ ﻗﺎﺑﻠﯿﺖ ﺷﯿﻔﺖ ﺑﻪ ﭼﭗ داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬ ‫‪ -4‬ﻣﺪار ﻣﻘﺎﯾﺴﻪ ﮐﻨﻨﺪه‬ ‫‪ -1‬ﺑﻪ ‪ 3‬ﺛﺒﺎت ‪ n‬ﺑﯿﺘﯽ‬ ‫‪ -3‬ﻣﺪار ﺗﻔﺮﯾﻖ ﮐﻨﻨﺪه‬ ‫)ﺷﮑﻞ ‪(1-4‬‬ ‫در اﯾﻦ روش ﻣﻘﺴﻮم در زوج ﺛﺒﺎت ‪C‬و ‪ B‬ﻗﺮار ﻣﯽ ﮔﯿﺮد وﻣﻘﺴﻮم ﻋﻠﯿﻪ در ﺛﺒﺎت ‪ A‬ﻗﺮار دارد و‬ ‫ﻋﻤﻞ ﺗﻔﺮﯾﻖ از ﺳﻤﺖ ﺛﺒﺎت ‪ C‬ﺻﻮرت ﻣﯽ ﮔﯿﺮد وﺑﻌﺪ از ﻫﺮ ﺑﺎر ﻋﻤﻞ ﺗﻔﺮﯾﻖ ﻧﯿﺰ ﯾﮏ ﺷﯿﻔﺖ ﺑﻪ ﭼﭗ‬ ‫ﺻﻮرت ﻣﯽ ﮔﯿﺮد ‪ .‬اﻟﺒﺘﻪ ﻗﺒﻞ از ﻋﻤﻞ ﺗﻔﺮﯾﻖ ﻧﯿﺰ واﺣﺪ ﮐﻨﺘﺮل از ﻃﺮﯾﻖ ﻣﻘﺎﯾﺴﻪ ﮔﺮﻣﯽ ﻓﻬﻤﺪ ﮐﻪ ﻋﺪد‬ ‫ﮐﻮﭼﮑﺘﺮوﻗﺎﺑﻞ ﺗﻘﺴﯿﻢ اﺳﺖ ‪ ،‬ﯾﺎ ﻧﻪ وﯾﮏ ﭘﯿﻐﺎم ﺑﻪ واﺣﺪ ﮐﻨﺘﺮل ﻣﯽ دﻫﺪ و واﺣﺪ ﮐﻨﺘﺮل دﺳﺘﻮر ﻋﻤﻞ‬ ‫ﺗﻔﺮﯾﻖ را ﺻﺎدر ﻣﯽ ﮐﻨﺪ وﺧﺎرج ﻗﺴﻤﺖ ﺗﻘﺴﯿﻢ در ﺛﺒﺎت ‪ B‬و ﺑﺎﻗﯽ ﻣﺎﻧﺪه در ﺛﺒﺎت ‪ C‬ﻗﺮارﻣﯽ ﮔﯿﺮد‪.‬‬ ‫ﻣﺜﺎل ‪ :‬ﻋﻤﻞ ﺗﻘﺴﯿﻢ ‪ 27÷5‬را اﻧﺠﺎم دﻫﯿﺪ ؟ )ﺛﺒﺎﺗﻬﺎ ﻫﻤﮕﯽ ‪ 3‬ﺑﯿﺘﯽ ﻫﺴﺘﻨﺪ واﻋﺪاد ﻧﯿﺰ ﺑﺪون ﻋﻼﻣﺖ‬ ‫ﻫﺴﺘﻨﺪ‪(.‬‬ ‫‪٩٢‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﻧﮑﺘﻪ ‪ :‬ﭘﺲ در ﺗﻘﺴﯿﻢ ﺗﻌﺪاد ‪ ShL‬ﺑﺮاﺑﺮ ‪ n + 1‬ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ ‪ n‬ﺗﻌﺪاد ﺑﯿﺘﻬﺎ اﺳﺖ وﺑﻪ ازاء آﺧﺮﯾﻦ‬ ‫‪ ShL‬ﻓﻘﻂ ﺛﺒﺎت ‪ ShL ، B‬ﻣﯽ ﮔﺮدد وﺛﺒﺎت ‪ C‬را ‪ ShL‬ﻧﻤﯽ دﻫﯿﻢ ‪.‬‬ ‫ﻧﮑﺘﻪ ‪:‬اﮔﺮ در ﻋﻤﻞ ﺗﻘﺴﯿﻢ اوﻟﯿﻦ ﻣﻘﺎﯾﺴﻪ ﻣﺎ ﻣﻮﻓﻘﯿﺖ آﻣﯿﺰ ﺑﺎﺷﺪ ) ﯾﻌﻨﯽ ‪ C ³ A‬ﺑﺎﺷﺪ ( ﻧﺘﯿﺠﻪ ى‬ ‫ﺣﺎﺻﻞ ﺣﺘﻤﺎً ﺳﺮرﯾﺰ ﺧﻮاﻫﺪ ﺑﻮد ‪ .‬ﭼﻮن ﻫﻤﯿﺸﻪ از ﺗﻌﺪاد ﺑﯿﺘﻬﺎي ﺛﺒﺎت ﮐﻪ ‪ n‬ﻣﯽ ﺑﺎﺷﺪ ‪ ،‬ﻋﻤﻞ ‪ ShL‬ﻣﺎ‬ ‫ﯾﮑﯽ ﺑﯿﺸﺘﺮ اﺳﺖ ‪ ،‬ﯾﻌﻨﯽ ‪ ShL ، n+1‬ﺻﻮرت ﻣﯽ ﮔﯿﺮد ‪ .‬ﭘﺲ ﺳﺮرﯾﺰ رخ ﻣﯽ دﻫﺪ‪ .‬در ﭼﻨﯿﻦ ﻣﻮاﻗﻌﯽ‬ ‫راه ﺣﻠﯽ ﻧﯿﺴﺖ زﯾﺮا ﺟﻮاب ﻣﺎ از ﺛﺒﺎت ﻣﺎ ﯾﮏ ﺑﯿﺖ ﺑﯿﺸﺘﺮ اﺳﺖ و ﺛﺒﺎت ﻧﻤﯿﺘﻮاﻧﺪ آﻧﺮا ﻧﺸﺎن دﻫﺪ‪.‬‬ ‫ﻧﮑﺘﻪ ‪ :‬ﺑﻪ ﻋﻠﺖ وﺟﻮدﻣﻘﺎﯾﺴﻪ ﮔﺮ ﻫﺰﯾﻨﻪ ﻣﺪار زﯾﺎد ﻣﯽ ﺷﻮد وﻣﻌﻤﻮﻻً در ﻣﺪارات ﮐﺎﻣﭙﯿﻮﺗﺮ از اﯾﻦ ﺷﯿﻮه‬ ‫اﺳﺘﻔﺎده ﻧﻤﯽ ﺷﻮد ‪ .‬اﮔﺮ ‪ n‬زﯾﺎد ﺑﺎﺷﺪ ﻫﺰﯾﻨﻪ ﻣﻘﺎﯾﺴﻪ ﮔﺮ از ﻫﺰﯾﻨﻪ ﮐﻞ ﻣﺪار ﺑﯿﺸﺘﺮ اﺳﺖ‪.‬‬ ‫ﻧﮑﺘﻪ ‪ :‬ﺑﺮاي اﯾﻦ ﮐﻪ ﻣﻘﺎﯾﺴﻪ ﮐﻨﻨﺪه را از ﻣﺪار ﺧﺎرج ﮐﻨﯿﻢ ‪ ،‬از روش دﯾﮕﺮي اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ ﮐﻪ دو‬ ‫ﻣﯽ دﻫﯿﻢ‬ ‫ﻋﺪد را از ﻫﻢ ﮐﻢ ﮐﺮده وﺑﺎ وﺟﻮد رﻗﻢ ﻧﻘﻠﯽ ‪،‬ﺑﺰرﮔﺘﺮ ‪ ،‬ﮐﻮﭼﮑﺘﺮ وﻣﺴﺎوي را ﺗﺸﺨﯿﺺ‬ ‫ودر واﻗﻊ از ﻫﻤﺎن ﺗﻔﺮﯾﻖ ﮐﻨﻨﺪه ﺑﺮاي ﻋﻤﻞ ﻣﻘﺎﯾﺴﻪ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ‪.‬‬ ‫ﻧﮑﺘﻪ ‪ :‬در ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎ ﺑﺮاي اﯾﻨﮑﻪ ﻫﺰﯾﻨﻪ ى ﮐﻤﺘﺮي ﺻﺮف ﺷﻮد ‪ ،‬ﺑﺎﯾﺪ ﺛﺒﺎﺗﻬﺎ ﻗﺎﺑﻠﯿﺖ ‪ ShR‬و ‪ShL‬‬ ‫راداﺷﺘﻪ ﺑﺎﺷﻨﺪ وﻋﻤﻞ ﺟﻤﻊ وﺗﻔﺮﯾﻖ ﺗﻮﺳﻂ ﯾﮏ ﻣﺪار ﮐﻪ ﻫﻢ ﺟﻤﻊ ﮐﻨﻨﺪه وﻫﻢ ﺗﻔﺮﯾﻖ ﮐﻨﻨﺪه اﺳﺖ‬ ‫‪٩٣‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺻﻮرت ﮔﯿﺮد ‪ .‬در ﻧﺘﯿﺠﻪ ﻋﻤﻞ ﺿﺮب و ﺗﻘﺴﯿﻢ ﺗﻮﺳﻂ ﯾﮏ ﻣﺪار ﺻﻮرت ﮔﯿﺮد ودر ﻫﻨﮕﺎم ﺿﺮب‬ ‫‪،‬ﺑﺎﯾﺪ ﺟﻤﻊ ﮐﻨﻨﺪه و‪ ShR‬ودر ﻋﻤﻞ ﺗﻘﺴﯿﻢ ﺑﺎﯾﺪ ‪ ShL‬وﺗﻔﺮﯾﻖ ﮐﻨﻨﺪه داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪.‬‬ ‫‪ : 2-4‬ﺗﻘﺴﯿﻢ ﺑﻪ روش ‪Restoring‬‬ ‫دراﯾﻦ روش ﻣﻘﺎﯾﺴﻪ ﮔﺮ را از ﻣﺪار ﻗﺒﻠﯽ ﺑﺮداﺷﺘﻪ وﺑﺮاي ﻣﻘﺎﯾﺴﻪ از ﺗﻔﺮﯾﻖ ﮐﻨﻨﺪه اﺳﺘﻔﺎده ﻣﯽ ﻧﻤﺎﯾﯿﻢ‬ ‫وﺑﺪﯾﻦ ﺻﻮرت ﻋﻤﻞ ﻣﯽ ﮐﻨﯿﻢ ﮐﻪ ﻫﺮ ﺑﺎر ﺟﻬﺖ ﻣﻘﺎﯾﺴﻪ ‪ C - A‬ﻣﯽ ﮔﺮدد و ﺣﺎﺻﻞ ﺑﻪ داﺧﻞ ﺛﺒﺎت ‪C‬‬ ‫اﻧﺘﻘﺎل داده ﻣﯽ ﺷﻮد ودو وﺿﻌﯿﺖ ﭘﯿﺶ ﻣﯽ آﯾﺪ‪.‬‬ ‫اﻟﻒ ‪ -‬ﺣﺎﺻﻞ ﻣﻘﺪاري ﻏﯿﺮ ﻣﻨﻔﯽ ﯾﻌﻨﯽ ﺑﺰرﮔﺘﺮ ﯾﺎ ﻣﺴﺎوي ﺻﻔﺮ ﺑﺎﺷﺪ ‪.‬‬ ‫ب‪ -‬ﺣﺎﺻﻞ ﻣﻘﺪاري ﻣﻨﻔﯽ ﺑﺎﺷﺪ ﯾﻌﻨﯽ ﮐﻮﭼﮑﺘﺮ از ﺻﻔﺮ ﺑﺎﺷﺪ ‪.‬‬ ‫اﻟﻒ ‪ :‬ﺣﺎﺻﻞ ﻣﻘﺪاري ﻏﯿﺮﻣﻨﻔﯽ )ﯾﻌﻨﯽ ‪ ( C ³ A‬ﺑﺎﺷﺪ ‪.‬‬ ‫ﻟﺬا ﻣﯽ ﺑﺎﯾﺴﺖ ﻃﺒﻖ روش ﮔﺬﺷﺘﻪ ﻋﻤﻞ ‪ C - A‬در ﺛﺒﺎت ‪ C‬اﻧﺠﺎم ﮔﯿﺮد ﮐﻪ در اﯾﻨﺠﺎ اﻧﺠﺎم ﺷﺪ ‪ .‬ﭘﺲ‬ ‫از اﯾﻦ ﻣﺮﺣﻠﻪ ﮐﺎﻓﯽ اﺳﺖ ﮐﻪ ﻓﻘﻂ ﯾﮏ ﻋﻤﻞ اﻧﺘﻘﺎل ﺑﻪ ﭼﭗ )‪ (ShL‬داﺷﺘﻪ ﺑﺎﺷﯿﻢ وﯾﮏ را در ﺣﯿﻦ‬ ‫اﻧﺘﻘﺎل از ﺳﻤﺖ راﺳﺖ ‪ ،‬ﺑﻪ ﺛﺒﺎت ‪ B‬وارد ﮐﻨﯿﻢ‪.‬‬ ‫ب‪ :‬ﺣﺎﺻﻞ ﻣﻘﺪاري ﻣﻨﻔﯽ )‪ (C < A‬ﺑﺎﺷﺪ‪.‬‬ ‫اﮔﺮ ﻋﻤﻠﯿﺎت ﻣﻨﻔﯽ ﺑﺎﺷﺪ ‪ ،‬ﻧﺸﺎن دﻫﻨﺪى آن اﺳﺖ ﮐﻪ ‪ C < A‬ﺑﻮد ه ﻟﺬا ﻧﻤﯽ ﺑﺎﯾﺴﺖ ﻋﻤﻞ ﺗﻔﺮﯾﻖ را‬ ‫اﻧﺠﺎم دﻫﯿﻢ ‪ .‬در ﻧﺘﯿﺠﻪ ﻻزم اﺳﺖ ﻣﻘﺪار ﻗﺒﻠﯽ ﺛﺒﺎت ‪ C‬ﺑﺎزﯾﺎﺑﯽ )‪ (Restore‬ﺷﻮد ‪ .‬ﺑﺮاي اﻧﺠﺎم اﯾﻨﮑﺎر‬ ‫ﻻزم اﺳﺖ ﻣﺤﺘﻮاي ﺛﺒﺎت ‪ A‬ﺑﻪ ﺛﺒﺎت ‪ C‬اﺿﺎﻓﻪ ﮔﺮدد ‪ .‬ﺳﭙﺲ ﯾﮏ واﺣﺪ ‪ ،‬زوج ﺛﺒﺎت ‪ B‬و ‪ C‬را ﺑﻪ‬ ‫ﺳﻤﺖ ﭼﭗ اﻧﺘﻘﺎل ﻣﯽ دﻫﯿﻢ وﺻﻔﺮ را از ﺳﻤﺖ راﺳﺖ ﺛﺒﺎت ‪ B‬وارد ﻣﯽ ﮐﻨﯿﻢ‪.‬‬ ‫‪٩٤‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﻧﮑﺘﻪ‪ :‬در اﯾﻦ روش ﻫﺰﯾﻨﻪ ﮐﻤﺘﺮ وﻣﺪار ﺳﺎده ﺗﺮﺑﻮده اﻣﺎ ﺳﺮﻋﺖ آن از روش ﻗﺒﻠﯽ ﮐﻤﺘﺮ اﺳﺖ ‪ .‬ﯾﻌﻨﯽ‬ ‫ﺑﺎر ﻣﺤﺎﺳﺒﺎﺗﯽ ﺑﯿﺸﺘﺮي دارد وآن ﻫﻢ ﺑﻪ ﺧﺎﻃﺮ ﻋﻤﻞ ‪ Restore‬ﻣﯽ ﺑﺎﺷﺪ‪.‬‬ ‫ﻧﮑﺘﻪ ‪ :‬در اﯾﻦ روش در ﻫﻤﻪ ي ﻣﺮاﺣﻞ ﯾﮏ ﺗﻔﺮﯾﻖ داﺷﺘﻪ ودر ﺑﻌﻀﯽ ﻣﺮاﺣﻞ ﯾﮏ ﺟﻤﻊ دارﯾﻢ ﭘﺲ‬ ‫ﺑﺮاﺑﺮ ﺳﺮﻋﺖ روش ﻗﺒﻠﯽ ﻣﯽ ﺷﻮد ‪.‬‬ ‫‪1‬‬ ‫ﺳﺮﻋﺖ ﺗﻘﺮﯾﺒﺎً‬ ‫‪2‬‬ ‫‪ : 3-4‬ﺗﻘﺴﯿﻢ ﺑﻪ روش ‪Non Restoring‬‬ ‫وﻗﺘﯽ ﻋﻤﻞ ‪ C - A‬را اﻧﺠﺎم دﻫﯿﻢ ﺣﺎﺻﻞ ﺑﻪ ﺛﺒﺎت ‪ C‬ﻣﯽ رود‪ ،‬در اﯾﻦ ﺣﺎﻟﺖ اﮔﺮ ﺣﺎﺻﻞ ﻣﺜﺒﺖ ﺑﺎﺷﺪ‬ ‫ﻧﯿﺎز ﺑﻪ ﻋﻤﻞ ‪ Restore‬ﻧﺪارﯾﻢ وﻟﯽ وﻗﺘﯽ ﺣﺎﺻﻞ در ﺛﺒﺎت ‪ C‬ﻣﻨﻔﯽ ﺷﻮد ‪،‬ﻧﯿﺎز ﺑﻪ ﻋﻤﻞ ‪Restoring‬‬ ‫دارﯾﻢ ‪.‬‬ ‫‪.‬ﺣﺎل اﯾﻦ روش را ﺑﺮرﺳﯽ ﻣﯽ ﮐﻨﯿﻢ‪.‬‬ ‫‪C-A +A‬‬ ‫ﻋﻤﻞ ‪ Restoring‬وﻗﺘﯽ ﻣﻨﻔﯽ ﺷﻮد‬ ‫ﺳﭙﺲ ﯾﮏ اﻧﺘﻘﺎلﺑﻪﭼﭗ ﺑﺎﯾﺪﺑﺪﻫﯿﻢﮐﻪ ﻣﻌﺎدلدوﺑﺮاﺑﺮﮐﺮدنﺣﺎﺻﻞﻋﻤﻠﯿﺎتﻣﯽﺑﺎﺷﺪ‪.‬‬ ‫‪(C-A +A)*2‬‬ ‫ودر ﻣﺮﺣﻠﻪ ي ﺑﻌﺪ ﻧﯿﺰﺑﺎﯾﺪ ﻣﻘﺪار‪ A‬از اﯾﻦ ﻋﺒﺎرت ﮐﻢ ﮐﻨﯿﻢ ‪.‬‬ ‫‪( C-A+A)*2-A‬‬ ‫ﺗﺎ ﺑﺮاي ﻣﺮﺣﻠﻪ ﺑﻌﺪ ﻋﻤﻞ ‪ C ³ A‬را ﺑﺮرﺳﯽ ﻧﻤﺎﯾﯿﻢ‪.‬‬ ‫‪----> ( C-A+A)*2-A = 2C-A‬‬ ‫ﺑﺠﺎي اﻋﻤﺎل ﻗﺒﻠﯽ ﮐﻪ در اﯾﻦ روش ﮔﻔﺘﻪ ﺷﺪه ‪ ،‬روش ﻣﻌﺎدل زﯾﺮ را اﻧﺠﺎم دﻫﯿﻢ ‪.‬‬ ‫‪(C-A)*2+A=2C-A‬‬ ‫‪٩٥‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﯾﻌﻨﯽ اﮔﺮ ﺣﺎﺻﻞ ﻣﻨﻔﯽ ﺑﻮد ‪ ShL‬داده و در ﻣﺮﺣﻠﻰ ﺑﻌﺪ ﻋﻤﻞ ﺟﻤﻊ ‪ A‬ﺻﻮرت ﻣﯽ ﮔﯿﺮد ‪.‬ﭘﺲ دو‬ ‫راﺑﻄﻪ ‪ 1‬و ‪ 2‬ﻣﻌﺎدل ﻫﻢ ﻣﯽ ﺑﺎﺷﻨﺪ ‪.‬‬ ‫ﻣﺜﺎل ‪:‬ﺗﻘﺴﯿﻢ ‪ 27 ÷5‬را ﺑﻪ روش ‪ Restoring‬و ‪ Non - Restoring‬اﻧﺠﺎم دﻫﯿﺪ ‪.‬‬ ‫روش ‪: Restoring‬‬ ‫روش ‪:Non - Restoring‬‬ ‫‪٩٦‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺗﻤﺮﯾﻨﺎت‬ ‫‪ -1‬دو ﻋﺪد ‪ 17‬و ‪ 5‬را در ﭼﻬﺎر ﺑﯿﺖ ﺑﻪ ﻓﺮم ﺑﺪون ﻋﻼﻣﺖ ﻧﻤﺎﯾﺶ دﻫﯿﺪو ﺳﭙﺲ ﺑﻪ ﮐﻤﮏ روش‬ ‫ﻣﻘﺎﯾﺴﻪاي ﺑﺮ ﻫﻢ ﺗﻘﺴﯿﻢ وﮐﻠﯿﻪ ﻣﺮاﺣﻞ را ﻧﺸﺎن دﻫﯿﺪ؟‬ ‫‪ -2‬دو ﻋﺪد ‪ 13‬و ‪ 5‬را ﺑﻪ روش ‪ Restoring‬ﺑﺮ ﻫﻢ ﺗﻘﺴﯿﻢ ﻧﻤﺎﯾﯿﺪ ؟‬ ‫‪ -3‬دو ﻋﺪد ‪ 19‬و ‪ 5‬را ﺑﻪ روش ‪ Non Restoring‬ﺑﺮ ﻫﻢ ﺗﻘﺴﯿﻢ ﻧﻤﺎﯾﯿﺪ؟‬ ‫‪ -4‬اﻟﮕﻮرﯾﺘﻤﯽ را ﺑﻪ ﺷﮑﻞ ﻓﻠﻮﭼﺎرت ﺑﺮاي ﻋﻤﻞ ﺗﻘﺴﯿﻢ ﺑﻪ روش ‪ Restoring‬دو دوﯾﯽ ﻣﻤﯿﺰ ‪ -‬ﺛﺎﺑﺖ‬ ‫ﺑﻪ دﺳﺖ آورﯾﺪ؟‬ ‫‪ -5‬اﻟﮕﻮرﯾﺘﻤﯽ را ﺑﻪ ﺷﮑﻞ ﻓﻠﻮﭼﺎرت ﺑﺮاي ﻋﻤﻞ ﺗﻘﺴﯿﻢ ﺑﻪ روش ‪ Non Restoring‬دودوﯾﯽ ﻣﻤﯿﺰ‪-‬‬ ‫ﺛْﺎﺑﺖ ﺑﻪ دﺳﺖ آورﯾﺪ؟‬ ‫‪ -6‬آﯾﺎ ﻋﺒﺎرت زﯾﺮ درﺳﺖ اﺳﺖ ؟‬ ‫ در ﻋﻤﻞ ﺗﻘﺴﯿﻢ ﻗﺒﻞ از آﻧﮑﻪ ﻣﺤﺎﺳﺒﻪ ﺧﺎﺗﻤﻪ ﯾﺎﺑﺪ‪ ،‬ﺳﺮ رﯾﺰ ﻗﺎﺑﻞ ﺗﺸﺨﯿﺺ ﺑﻮده وﻧﯿﺎز ﺑﻪ اداﻣﻰ‬‫ﻋﻤﻠﯿﺎت ﻧﯿﺴﺖ‪.‬‬ ‫‪٩٧‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ -5‬اﻋﻤﺎل اﺻﻠﯽ دراﻋﺪاد ﻣﻤﯿﺰ ﺷﻨﺎور‬ ‫‪ : 1-5‬ﻋﻤﻞ ﺟﻤﻊ دراﻋﺪاد ﻣﻤﯿﺰ ﺷﻨﺎور‬ ‫دوﻋﺪد ﺻﺤﯿﺢ را ﺑﻪ راﺣﺘﯽ ﻣﯽ ﺗﻮان ﺑﺎ ﻫﻢ ﺟﻤﻊ ﮐﺮد ‪.‬وﻟﯽ دو ﻋﺪد ﺑﺎ ﻣﻤﯿﺰ ﺷﻨﺎور را ﺑﻪ ﺳﺎدﮔﯽ‬ ‫ﻧﻤﯿﺘﻮان ﯾﺎ ﻫﻢ ﺟﻤﻊ ﻧﻤﻮد وﻣﮑﺎن ﻗﺮار ﮔﺮﻓﺘﻦ اﻋﺪاد ﻣﻬﻢ اﺳﺖ ‪.‬‬ ‫ﻣﺜﺎل‪:‬‬ ‫‪102‬‬ ‫‪+ 7 =109‬‬ ‫‪102 ´ 102 + 7 ´ 10 -3‬‬ ‫‪---->10200/000‬‬ ‫‪00000/007 +‬‬ ‫‪10200/007‬‬ ‫ﺑﺼﻮرت ﮐﺎﻣﭙﯿﻮﺗﺮي ‪:‬‬ ‫در ﮐﺎﻣﭙﯿﻮﺗﺮ ‪ Base = 2‬در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮد وﻣﯽ ﺑﺎﯾﺴﺖ ﺗﻮان دو ﻋﺪد ﻣﻤﯿﺰ ﺷﻨﺎور ﺑﺎ ﻫﻢ ﺑﺮاﺑﺮ‬ ‫ﺷﻮﻧﺪ ﺑﺮاي اﯾﻦ ﻣﻨﻈﻮر دوراه ﻣﻮﺟﻮد اﺳﺖ ‪.‬‬ ‫‪٩٨‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﯾﮏ راه اﯾﻦ اﺳﺖ ﮐﻪ ﺗﻮان ﻋﺪد ﺑﺰرﮔﺘﺮ را ﺑﻪ ﻋﺪد ﮐﻮﭼﮑﺘﺮ ﺗﺒﺪﯾﻞ ﻧﻤﻮد ‪.‬‬ ‫‪E‬‬ ‫‪M‬‬ ‫‪N2 = 011‬‬ ‫‪. ´ 101 , N1 = 0101‬‬ ‫‪. ´ 23‬‬ ‫ﻣﺜﺎل ‪:‬‬ ‫‪011‬‬ ‫‪101‬‬ ‫‪N1‬‬ ‫‪N2‬‬ ‫‪001‬‬ ‫‪11‬‬ ‫ﺣﺎل ﺑﺮاي اﯾﻨﮑﻪ از ﺗﻮان ﻋﺪداول دو واﺣﺪ ﮐﻢ ﮐﻨﯿﻢ ﺗﺎ ﺑﺮاﺑﺮ ﺑﺎﺗﻮان ﻋﺪد دوم ﯾﻌﻨﯽ ﯾﮏ ﺷﻮد ‪،‬‬ ‫ﮐﺎﻓﯿﺴﺖ ﻣﺎﻧﺘﯿﺲ ﻋﺪد اول را دو ﺑﺎر ﺑﻪ ﺳﻤﺖ ﭼﭗ ﺷﯿﻔﺖ دﻫﯿﻢ ‪ ،‬ﻣﺸﺎﻫﺪه ﻣﯽ ﺷﻮد ﮐﻪ اﻧﺠﺎم اﯾﻦ‬ ‫ﻋﻤﻠﯿﺎت ﺑﺎﻋﺚ ﺗﻐﯿﯿﺮ در ﻣﻘﺪار ﻋﺪد اول ﻣﯽ ﺷﻮد ﭘﺲ اﯾﻦ روش ﻧﺎدرﺳﺖ اﺳﺖ ‪.‬راه ﺣﻞ ﻣﻨﻄﻘﯽ اﯾﻦ‬ ‫اﺳﺖ ﮐﻪ ﺗﻮان ﻋﺪد ﮐﻮﭼﮑﺘﺮرا ﺑﻪ ﺗﻮان ﻋﺪد ﺑﺰرﮔﺘﺮ ﺗﺒﺪﯾﻞ ﮐﻨﯿﻢ ‪.‬‬ ‫‪N1‬‬ ‫‪011‬‬ ‫‪1010‬‬ ‫‪N2‬‬ ‫‪011‬‬ ‫‪0011‬‬ ‫‪____________________+‬‬ ‫‪N1 + N 2‬‬ ‫‪011‬‬ ‫‪1101‬‬ ‫‪٩٩‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫در اﯾﻦ روش ﺑﻪ ازاي ﻫﺮ ﺑﺎر اﻓﺰاﯾﺶ ﺗﻮان ﯾﮏ ﺑﺎر ﻣﺤﺘﻮاي ﻣﺎﻧﺘﯿﺲ را ﺑﻪ ﺳﻤﺖ راﺳﺖ ﺷﯿﻔﺖ ﻣﯽ‬ ‫دﻫﯿﻢ ‪ .‬در واﻗﻊ ﺑﻪ اﻧﺪازه اﺧﺘﻼف دو ﺗﻮان اﻋﺪادي ﮐﻪ ﻣﯽ ﺧﻮاﻫﻨﺪ ﺑﺎ ﻫﻢ ﺟﻤﻊ ﺷﻮﻧﺪ ‪ ،‬ﻣﺎﻧﺘﯿﺲ ﻋﺪد‬ ‫ﮐﻮﭼﮑﺘﺮ ‪ ShR‬ﻣﯽ دﻫﯿﻢ وﺑﻪ ﻫﻤﯿﻦ اﻧﺪازه ﺑﻪ ﺗﻮان اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﯿﻢ ‪.‬‬ ‫‪001‬‬ ‫‪111111111‬‬ ‫ﻧﮑﺘﻪ ‪ :‬اﮔﺮ ﻋﺪد ﻣﺎ ﺑﻪ ﺻﻮرت زﯾﺮ ﺑﺎﺷﺪ وﻣﺎ ﺑﺨﻮاﻫﯿﻢ ﺑﺮاي رﺳﯿﺪن ﺑﻪ ﺗﻮان ﻋﺪد دﯾﮕﺮ ﻣﺎﻧﺘﯿﺲ آن را ﺑﻪ‬ ‫ﺳﻤﺖ راﺳﺖ ﺷﯿﻔﺖ ﺑﺪﻫﯿﻢ ‪ ،‬دراﯾﻨﺼﻮرت دوﻣﻘﺪار ﯾﮏ از ﺳﻤﺖ راﺳﺖ ﺣﺬف ﻣﯽ ﮔﺮدد در واﻗﻊ‬ ‫دﻗﺖ ﻋﻤﻞ ﮐﻢ ﻣﯽ ﺷﻮد وﻫﯿﭻ راﻫﯽ ﺑﺮاي ﺟﻠﻮﮔﯿﺮي از اﯾﻦ ﮐﺎرﻧﯿﺴﺖ‪.‬‬ ‫‪ : 2-5‬ﻋﻤﻞ ﺿﺮب در ﻋﺪد ﻣﻤﯿﺰ ﺷﻨﺎور‬ ‫از ﻟﺤﺎظ اﻟﮕﻮرﯾﺘﻤﯽ ‪ ،‬اﻟﮕﻮرﯾﺘﻢ ﺿﺮب آﺳﺎﻧﺘﺮ از ﺟﻤﻊ دو ﻋﺪد ﻣﻤﯿﺰ ﺷﻨﺎور اﺳﺖ ‪.‬‬ ‫‪1 0 2 * 1 0 2 * 7 * 1 0 -3 = 7 1 4 * 1 0 -1‬‬ ‫ﻣﺜﺎل ‪:‬‬ ‫در ﺿﺮب دوﻋﺪد ﻣﻤﯿﺰ ﺷﻨﺎور ﮐﺎﻓﯿﺴﺖ ﻣﺎﻧﺘﯿﺴﻬﺎ را در ﻫﻢ ﺿﺮب ﻧﻤﻮده وﺗﻮاﻧﻬﺎ را ﺑﺎﻫﻢ ﺟﻤﻊ ﮐﻨﯿﻢ‪.‬‬ ‫‪١٠٠‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ : 3-5‬ﻣﺪار ﺟﻤﻊ وﺗﻔﺮﯾﻖ دو ﻋﺪد ﻣﻤﯿﺰ ﺷﻨﺎور‬ ‫)ﺷﮑﻞ ‪(1-5‬‬ ‫در اﺑﺘﺪا ﺑﺎﯾﺪ ﺑﺒﯿﻨﯿﻢ ﮐﻪ ﮐﺪاﻣﯿﮏ از ﻣﻔﺴﺮﻫﺎ ﮐﻮﭼﮑﺘﺮ اﺳﺖ ﺗﺎ آﻧﺮا ﺑﻪ ﻣﻔﺴﺮ ﺑﺰرﮔﺘﺮ ﺗﺒﺪﯾﻞ ﮐﻨﯿﻢ ‪ .‬اﯾﻦ‬ ‫ﮐﺎر را ﺑﺎﺗﻔﺮﯾﻖ دو ﻣﻔﺴﺮ اﻧﺠﺎم ﻣﯽ دﻫﯿﻢ ) ‪ ( E 1 - E 2‬واﮔﺮ ﺣﺎﺻﻞ ﺗﻔﺮﯾﻖ ﻣﻨﻔﯽ ﺑﻮد‪ ،‬ﯾﻌﻨﯽ ‪E 1‬‬ ‫ﮐﻮﭼﮑﺘﺮ اﺳﺖ ‪.‬اﮔﺮ ﺣﺎﺻﻞ ﻣﺜﺒﺖ ﺑﻮد ‪ E 2‬ﮐﻮﭼﮑﺘﺮ اﺳﺖ ‪ .‬ﺣﺎل ﺣﺎﺻﻞ ‪ E 1 - E 2‬در ‪ E‬ﻗﺮار ﻣﯽ‬ ‫ﮔﯿﺮد ‪.‬‬ ‫ﺑﻪ اﻧﺪازه ﻗﺪر ﻣﻄﻠﻖ ‪) E‬ﯾﻌﻨﯽ | ‪ ( | E‬ﻣﺎﻧﺘﯿﺲ ﻋﺪد ﮐﻮﭼﮑﺘﺮ را ﺑﻪ ﺳﻤﺖ راﺳﺖ ﺷﯿﻔﺖ ﻣﯽ دﻫﺪ ‪.‬‬ ‫ﺳﭙﺲ دو ﻋﺪد ‪ M 2 , M1‬ﻧﻘﺎط اﻋﺸﺎرﺷﺎن زﯾﺮﻫﻢ ﻗﺮارﻣﯽ ﮔﯿﺮد و ﺑﺮاي ﻋﻤﻞ ﺟﻤﻊ ﯾﺎ ﺗﻔﺮﯾﻖ آﻣﺎده ﻣﯽ‬ ‫ﺑﺎﺷﺪ ‪ .‬اﻟﺒﺘﻪ ﺗﻮان ﻋﺪد ﺑﺰرﮔﺘﺮ ﺑﻪ ﻣﻨﻈﻮر ﺗﻮان ﻧﻬﺎﯾﯽ ﺣﺎﺻﻞ ﺟﻤﻊ ﯾﺎ ﺗﻔﺮﯾﻖ در ﻗﺴﻤﺖ ﺗﻮان ﺣﺎﺻﻞ‬ ‫ﻋﻤﻠﯿﺎت ﻗﺮار ﻣﯽ ﮔﯿﺮد ‪.‬‬ ‫ﻧﮑﺘﻪ ‪ :‬اﮔﺮ در ﻗﺴﻤﺖ ﺗﻮاﻧﻬﺎ ﻋﻤﻞ ﺟﻤﻊ ﯾﺎ ﺗﻔﺮﯾﻖ را اﻧﺠﺎم دﻫﯿﻢ وﺑﺮاي ﻗﺴﻤﺖ ﻣﺎﻧﺘﯿﺴﻬﺎ ‪ ،‬ﺑﺠﺎي ﻋﻤﻞ‬ ‫ﺟﻤﻊ وﺗﻔﺮﯾﻖ ﻋﻤﻞ ﺿﺮب وﺗﻘﺴﯿﻢ ﺻﻮرت ﮔﯿﺮد ‪ ،‬اﯾﻦ ﻣﺪار ﻣﯽ ﺗﻮاﻧﺪ اﻋﻤﺎل ﺟﻤﻊ وﺗﻔﺮﯾﻖ وﺿﺮب‬ ‫‪١٠١‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫وﺗﻘﺴﯿﻢ دو ﻋﺪد ﻣﻤﯿﺰ ﺷﻨﺎور را اﻧﺠﺎم دﻫﺪ‪ .‬اﻟﺒﺘﻪ ﺑﺎﯾﺪ ﺛﺒﺎﺗﻬﺎي ‪ C‬و ‪ B‬را ﺑﺎ ﻗﺎﺑﻠﯿﺖ ‪ ShL , ShR‬داﺷﺘﻪ‬ ‫ﺑﺎﺷﯿﻢ ‪.‬‬ ‫‪١٠٢‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺗﻤﺮﯾﻨﺎت‬ ‫‪ -1‬ﺗﻮﺿﯿﺢ دﻫﯿﺪ ﮐﻪ ﺑﺮاي ﺟﻤﻊ ﺑﺴﺘﻦ دوﻋﺪد ‪ Floating Point‬ﭼﻪ اﻗﺪاﻣﺎﺗﯽ ﻻزم اﺳﺖ ؟‬ ‫‪ -2‬ﺗﻮﺿﯿﺢ دﻫﯿﺪ ﮐﻪ ﺑﺮاي ﺗﻔﺮﯾﻖ دوﻋﺪد ‪ Floating Point‬ﭼﻪ اﻗﺪاﻣﺎﺗﯽ ﻻزم اﺳﺖ ؟‬ ‫‪ -3‬ﺗﻮﺿﯿﺢ دﻫﯿﺪ ﮐﻪ ﺑﺮاي ﺿﺮب دوﻋﺪد ‪ Floating Point‬ﭼﻪ اﻗﺪاﻣﺎﺗﯽ ﻻزم اﺳﺖ ؟‬ ‫‪ -4‬ﺗﻮﺿﯿﺢ دﻫﯿﺪ ﮐﻪ ﺑﺮاي ﺗﻘﺴﯿﻢ دوﻋﺪد ‪ Floating Point‬ﭼﻪ اﻗﺪاﻣﺎﺗﯽ ﻻزم اﺳﺖ ؟‬ ‫‪١٠٣‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﻓﺼﻞ ﺳﻮم ‪ -‬ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل وﺣﺎﻓﻈﻪ‬ ‫‪ -1‬ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل‬ ‫وﻇﯿﻔﻪ واﺣﺪ ﮐﻨﺘﺮل درﯾﺎﻓﺖ دﺳﺘﻮرات ازﺣﺎﻓﻈﻪ وﺗﻔﺴﯿﺮ آﻧﻬﺎ واﻧﺠﺎم دادن ﮐﺎرﻫﺎي ﻻزم‬ ‫)ﻓﺮﻣﺎﻧﻬﺎي ﻻزم ( ﺑﺮاي اﺟﺮاي آن دﺳﺘﻮرات ﻣﯽ ﺑﺎﺷﺪ ‪.‬‬ ‫)ﺷﮑﻞ ‪(1-1‬‬ ‫ﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ اﻧﻮاع ﻣﺨﺘﻠﻔﯽ دارﻧﺪ ‪:‬‬ ‫‪ -1‬ﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ ﮐﻪ از واﺣﺪ ﮐﻨﺘﺮل ﺑﻪ ‪ Alu‬ﻣﯽ رود ‪.‬‬ ‫ﺑﺮاي ﻣﺜﺎل ﻣﻤﮑﻦ اﺳﺖ دﺳﺘﻮر ‪ ShR‬در ﯾﮏ ﺛﺒﺎت و ﯾﺎ دﺳﺘﻮر ﺧﻮاﻧﺪن اﻃﻼﻋﺎت از ‪ Bus‬وﻫﺰاران‬ ‫دﺳﺘﻮر دﯾﮕﺮ ﺑﺎﺷﺪ‪.‬‬ ‫‪ -2‬ﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ ﮐﻪ از ﻃﺮف ‪ Alu‬ﺑﻪ واﺣﺪ ﮐﻨﺘﺮل ﻣﯽ آﯾﺪ‪.‬‬ ‫ﺑﺮاي ﻣﺜﺎل ﻣﻤﮑﻦ اﺳﺖ در ﺟﻤﻊ دو ﻋﺪد رﻗﻢ ﻧﻘﻠﯽ رخ دﻫﺪ ﮐﻪ دراﯾﻦ ﺻﻮرت واﺣﺪ ‪ Alu‬ﺑﻪ واﺣﺪ‬ ‫)‪ CU (Control Unit‬ﺳﯿﮕﻨﺎل ﻣﯽ ﻓﺮﺳﺘﺪ‪.‬‬ ‫‪١٠٤‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ -3‬ﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ ﮐﻪ از ﯾﮏ رﯾﺰﭘﺮدازﻧﺪه در ﮐﺎﻣﭙﯿﻮﺗﺮ دﯾﮕﺮ ﺑﻪ واﺣﺪ ﮐﻨﺘﺮل ﻣﯽ آﯾﻨﺪ ‪.‬‬ ‫ﺑﺮاي ﻣﺜﺎل ﻋﻤﻞ ‪ Resert‬ﮐﺮدن ﯾﺎ ﻋﻤﻞ ‪ Hold‬ﮐﺮدن ‪.‬‬ ‫‪ -4‬ﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ ﮐﻪ ﻣﻤﮑﻦ از واﺣﺪ ﮐﻨﺘﺮل ﺑﻪ ﯾﮏ ﺟﺎي دﯾﮕﺮ ﻏﯿﺮ از ‪ Alu‬ﻓﺮﺳﺘﺎده ﺷﻮد ‪.‬‬ ‫ﺑﺮاي ﻣﺜﺎل ﺑﻪ ﯾﮏ رﯾﺰ ﭘﺮدازﻧﺪه دﯾﮕﺮ ﺑﺮوﻧﺪ‪.‬‬ ‫اﻟﺒﺘﻪ ﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ دﯾﮕﺮي ﻧﯿﺰ وﺟﻮد دارﻧﺪ ﮐﻪ ﻫﺮ ﮐﺪام وﻇﯿﻔﻪ ﻣﺨﺼﻮص ﺑﻪ ﺧﻮد دارﻧﺪ‪.‬‬ ‫ﻧﮑﺘﻪ ‪ :‬در اﯾﻦ درس ﻫﺪف ﻣﻄﺎﻟﻌﻪ ﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ اﺳﺖ ﮐﻪ ﺑﯿﻦ ‪Alu‬و ‪ CU‬وﺟﻮد دارد ودر‬ ‫ﻣﻮرد ﺑﻘﯿﻪ ﺳﯿﮕﻨﺎﻟﻬﺎ ﺑﺤﺚ ﻧﻤﯽ ﺷﻮد ‪.‬‬ ‫ﺑﻄﻮر ﮐﻠﯽ ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل ﺑﻪ دو ﻃﺮﯾﻖ اﻧﺠﺎم ﻣﯽ ﮔﯿﺮد‪.‬‬ ‫‪ -1‬روش ﺳﯿﻢ ﺑﻨﺪي ﺷﺪه )‪(Hard Wired‬‬ ‫‪ -2‬روش رﯾﺰﺑﺮﻧﺎﻣﻪ ﺳﺎزي )‪(Micro Programmed‬‬ ‫‪ : 1-1‬روش ﺳﯿﻢ ﺑﻨﺪي ﺷﺪه‬ ‫در اﯾﻦ ﺣﺎﻟﺖ واﺣﺪﮐﻨﺘﺮل ﻫﻤﺎﻧﻨﺪ ﯾﮏ ﻣﺪار ﺗﺮﺗﯿﺒـﯽ اﺳـﺖ ﮐـﻪ ﺳـﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟـﯽ را ﯾﮑـﯽ ﭘـﺲ از‬ ‫دﯾﮕﺮي ﺗﻮﻟﯿﺪ ﻣﯽ ﮐﻨﺪ ‪ .‬اﯾﻦ روش ‪ ،‬ﺳﺮﯾﻌﺘﺮﯾﻦ روش و ﮐﻢ ﻫﺰﯾﻨﻪ ﺗﺮﯾﻦ روش اﺳـﺖ اﻣـﺎ ﻫﯿﭽﮕﻮﻧـﻪ‬ ‫اﻧﻌﻄﺎف ﭘﺬﯾﺮي ﻧﺪارد ‪ .‬ﯾﻌﻨﯽ اﮔﺮ ﺑﺨﻮاﻫﯿﻢ ﺗﻐﯿﯿﺮات ﺟﺰﯾﯽ در ﻣﺪار واﺣﺪ ﮐﻨﺘﺮل دﻫﯿﻢ ‪ ،‬ﻻزم اﺳﺖ ﮐﻪ‬ ‫ﻃﺮاﺣﯽ ﻣﻮرد ﻧﻈﺮ از ﻧﻮ اﻧﺠﺎم ﺷﻮد ‪.‬‬ ‫‪١٠٥‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫اﻣﻨﯿﺖ روش ‪ H.W‬در ﻣﻘﺎﺑﻞ ‪ Noise‬ﮐﻢ اﺳﺖ ﭼﺮاﮐﻪ ﺗﻌﺪاد زﯾﺎد ﺳـﯿﻢ در ﻓﺮﮐـﺎﻧﺲ ﻫـﺎي ﺑـﺎﻻ اﯾﺠـﺎد‬ ‫‪ Noise‬ﻣﯽ ﮐﻨﺪ‪.‬‬ ‫ﺑﻪ ﺳﻪ ﻃﺮﯾﻖ ﻣﯽ ﺗﻮان واﺣﺪ ﮐﻨﺘﺮل راﺑﺮاﺳﺎس روش ﺳﯿﻢ ﺑﻨﺪي ﺷﺪه ﻃﺮاﺣﯽ ﮐﺮد ‪.‬‬ ‫‪State Table Methed -1‬‬ ‫‪Delay Element Method -2‬‬ ‫‪Sequence Counter Method -3‬‬ ‫‪State Table Method : 1-1-1‬‬ ‫در اﯾﻦ روش از ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل ﺑﺤﺚ ﺑﺮ ﺳﺮ آن اﺳﺖ ﮐﻪ ﻃﺮاﺣﯽ ﻣﺪار ﺑﮕﻮﻧﻪاﯾﯽ ﺑﺎﺷﺪ ﮐﻪ‬ ‫ﺣﺪاﻗﻞ ﻓﯿﻠﯿﭗ ﻓﻼﭘﻬﺎ راداﺷﺘﻪ ﺑﺎﺷﺪ ‪ .‬ﺑﻪ ﻋﺒﺎرت دﯾﮕﺮ اﯾﻦ روش از ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل ﻧﺴﺒﺖ ﺑﻪ دو‬ ‫روش دﯾﮕﺮ داراي ﻫﺰﯾﻨﻪ ﮐﻤﺘﺮ واﻣﻨﯿﺖ ﺑﯿﺸﺘﺮي در ﻣﻘﺎﺑﻞ ‪ Noise‬ﻣﯽ ﺑﺎﺷﺪ ‪.‬‬ ‫اﻟﺒﺘﻪ ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل ﺑﺮاﺳﺎس اﯾﻦ روش ﻣﺸﮑﻞ اﺳﺖ و ﻧﯿﺎز ﺑﻪ ﺑﺤﺚ ﻣﺪارات ﻣﻨﻄﻘﯽ ﭘﯿﺸﺮﻓﺘﻪ‬ ‫ﻣﯽ ﺑﺎﺷﺪ ‪.‬از اﯾﻦ روش ﻫﻨﮕﺎﻣﯽ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ﮐﻪ واﺣﺪ ﮐﻨﺘﺮل ﮐﻮﭼﮏ ﺑﺎﺷﺪ ‪.‬‬ ‫‪Delay Element Method : 2-1-1‬‬ ‫ﺑﺮاي آﺷﻨﺎﯾﯽ ﺑﯿﺸﺘﺮ ﺑﺎ اﯾﻦ روش از ﻃﺮاﺣﯽ ﻣﺜﺎل زﯾﺮ را ﺑﺮرﺳﯽ ﻣﯽ ﻧﻤﺎﯾﯿﻢ ‪.‬‬ ‫ﻣﺜﺎل ‪ :‬ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل ﺑﺮاي ﺿﺮب دو ﻋﺪد ﺑﻪ روش ‪Booth‬‬ ‫ﺑﺮاي ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل ‪ ،‬اﺑﺘﺪا ﻣﺪار را ﻃﺮاﺣﯽ ﻣﯽ ﮐﻨﯿﻢ ‪ .‬ﺳﭙﺲ ﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ )‬ ‫ﺧﻄﻮط ﻧﻘﻄﻪ ﭼﯿﻦ ( را ﻣﺸﺨﺺ ﻧﻤﻮده و ﺑﺮاﺳﺎس اﻟﮕﻮرﯾﺘﻤﯽ ﭘﯿﺎده ﺳﺎزي ﻣﯽ ﻧﻤﺎﯾﯿﻢ ‪ .‬در اﯾﻦ‬ ‫‪١٠٦‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫اﻟﮕﻮرﯾﺘﻢ ‪ A‬ﺑﺎ ‪ B‬ﺿﺮب ﺷﺪه و ﺣﺎﺻﻞ در زوج ﺛﺒﺎت ‪ C : B‬ﻗﺮار ﻣﯽ ﮔﯿﺮد ‪ .‬ﭼﻮن ﺛﺒﺎت ﻫﺎي ‪ A‬و‬ ‫‪ B‬ﻫﺸﺖ ﺑﯿﺘﯽ ﻫﺴﺘﻨﺪ ‪ ،‬ﺑﺮاي واﺣﺪ ﮐﻨﺘﺮل ﺑﻪ ﺷﻤﺎرﻧﺪه اي ﺑﺎ ‪ 3‬ﺑﯿﺖ ﻧﯿﺎز دارﯾﻢ ‪.‬‬ ‫)ﺷﮑﻞ ‪(2-1‬‬ ‫اﻟﮕﻮرﯾﺘﻢ ﺿﺮب ﺑﻪ روش ‪Booth‬‬ ‫‪ -1‬اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ﮔﺬرﮔﺎه را در ورودي ﺛﺒﺎت ‪ A‬آﻣﺎده ﻣﯽ ﻧﻤﺎﯾﯿﻢ‪.‬‬ ‫‪ -2‬ﻣﻀﺮوب را وارد ﺛﺒﺎت ‪ ، A‬ﻓﯿﻠﯿﭗ ﻓﻼپ و ﺛﺒﺎت ‪ C‬را ‪ Clear‬ﻣﯽ ﻧﻤﺎﯾﯿﻢ‪.‬‬ ‫‪ -3‬اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ﮔﺬرﮔﺎه را در ورودي ﺛﺒﺎت ‪ B‬آﻣﺎده ﻣﯽ ﮐﻨﯿﻢ‪.‬‬ ‫‪ -4‬ﻣﻀﺮوب ﻣﺎ ﻓﯿﻪ را وارد ﺛﺒﺎت ‪ B‬وﺷﻤﺎرﻧﺪه واﺣﺪ ﮐﻨﺘﺮل را ‪ Clear‬ﻣﯽ ﻧﻤﺎﯾﯿﻢ‪.‬‬ ‫‪ -5‬ﺑﻪ ‪ B( 0 ) : FF‬ﺗﻮﺟﻪ ﺷﻮد‬ ‫‪C - A -----> C‬‬ ‫اﮔﺮ ﺑﺮاﺑﺮ ‪ 10‬ﺑﻮدﻧﺪ آﻧﮕﺎه‬ ‫‪١٠٧‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪C + A -----> C‬‬ ‫اﮔﺮ ﺑﺮاﺑﺮ ‪ 01‬ﺑﻮدﻧﺪ آﻧﮕﺎه‬ ‫‪ -6‬ﻣﺠﻤﻮﻋﻪ ‪ C : B : FF‬را ﯾﮏ ﺑﯿﺖ ﺑﻪ راﺳﺖ ‪ ،‬ﺑﻄﻮر ﺣﺴﺎﺑﯽ ﺗﻐﯿﯿﺮ ﻣﮑﺎن ﻣﯽ دﻫﯿﻢ و ﺑﻪ ﺷﻤﺎرﻧﺪه‬ ‫واﺣﺪ ﮐﻨﺘﺮل ﯾﮏ واﺣﺪ اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﯿﻢ‪.‬‬ ‫‪ -7‬اﮔﺮ ‪ C o u n t £ 7‬ﺑﻮد ‪ ،‬اداﻣﻪ ﮐﺎر از ﻣﺮﺣﻠﻪ ‪ 5‬اﻧﺠﺎم ﺷﻮد ‪.‬‬ ‫‪ -8‬ﭘﺎﯾﺎن‬ ‫* ﭼﻮن اﻃﻼﻋﺎت در ﺣﺎﻓﻈﻪ اﺳﺖ ‪ ،‬در ﯾﮏ ﻣﺮﺣﻠﻪ زﻣﺎﻧﯽ ﺑﺎﯾﺪ اﻃﻼﻋﺎت را ﺑﻪ داﺧﻞ ‪ BUS‬آورده‬ ‫ودر ﻣﺮﺣﻠﻪ دﯾﮕﺮ اﻃﻼﻋﺎت را ﺑﻪ داﺧﻞ ﺛﺒﺎت ‪ A‬ﺑﯿﺎورﯾﻢ و اﻧﺠﺎم اﯾﻦ دو ﻋﻤﻞ ﺑﻄﻮر ﻫﻤﺰﻣﺎن ﻣﻤﮑﻦ‬ ‫ﻧﯿﺴﺖ‪ .‬ﭼﻮن در اﯾﻦ ﺻﻮرت اﻃﻼﻋﺎت ﻧﺎدرﺳﺘﯽ در ‪ A‬ذﺧﯿﺮه ﺧﻮاﻫﺪ ﺷﺪ ‪.‬‬ ‫* ﻫﺮ ﭼﻪ ﺷﻤﺎره ﻫﺎ )ﻣﺮاﺣﻞ اﻟﮕﻮرﯾﺘﻢ ( ﺑﯿﺸﺘﺮ ﺑﺎﺷﺪ زﻣﺎن اﺟﺮاﯾﯽ ﺑﯿﺸﺘﺮ اﺳﺖ ‪ ،‬ﭼﻮن ﻫﺮ ﺷﻤﺎره زﻣﺎن‬ ‫ﺧﺎص ﺧﻮد را دارد و ﻫﺮ ﭼﻪ ﻣﺮاﺣﻞ ﮐﻤﺘﺮ ﺑﺎﺷﺪ زﻣﺎن ﮐﻤﺘﺮي ﻣﺼﺮف ﻣﯽ ﺷﻮد ‪ .‬ﭘﺲ ﻣﻄﻠﻮﺑﺘﺮ اﺳﺖ‬ ‫‪.‬‬ ‫* ﺛﺒﺎت ‪ C‬و‪ F/F‬ﻣﯽ ﺑﺎﯾﺴﺖ ‪ Clear‬ﮔﺮدﻧﺪ ‪،‬ﮐﻪ اﯾﻦ اﻋﻤﺎل ﻣﯽ ﺗﻮاﻧﻨﺪ ﻫﻢ زﻣﺎن اﺟﺮا ﮔﺮدﻧﺪ و اﮔﺮ آﻧﻬﺎ‬ ‫را در ﯾﮏ ﺳﻄﺮ دﯾﮕﺮ ﺟﺪاي از ﻣﺮﺣﻠﻪ دوم ﺑﻨﻮﯾﺴﯿﻢ زﻣﺎن ﺑﯿﺸﺘﺮي ﻣﺼﺮف ﻣﯽ ﺷﻮد ‪ .‬ﭼﻮن اﯾﻦ اﻋﻤﺎل‬ ‫ﺑﻪ ﻫﻢ رﺑﻄﯽ ﻧﺪارﻧﺪ ﭘﺲ ﻣﯽ ﺗﻮان آﻧﻬﺎ را در ﻣﺮﺣﻠﻪ دوم ﻗﺮار دﻫﯿﻢ ‪.‬‬ ‫* در ﻣﺮﺣﻠﻪ ‪ 3‬و ‪ 4‬ﻧﯿﺰ ﻋﺪد ﻣﻀﺮوب ﻓﯿﻪ را ﺑﻪ ﮔﺬرﮔﺎه آورده و در ﻣﺮﺣﻠﻪ ‪ 4‬وارد ﺛﺒﺎت ‪ B‬ﻣﯽ ﮐﻨﯿﻢ‪.‬‬ ‫ﭼﻮن ﺛﺒﺎﺗﻬﺎي ﻣﺎ‪ 8‬ﺑﯿﺘﯽ اﺳﺖ‪ ،‬ﭘﺲ ﻋﻤﻠﯿﺎت ﺑﺎﯾﺪ ‪ 8‬ﺑﺎر ﺗﮑﺮار ﺷﻮد ‪ .‬ﭘﺲ ﺷﻤﺎرﻧﺪه ﺑﺮاي ﺷﻤﺎرش آن‬ ‫ﻧﯿﺎز دارﯾﻢ ‪ .‬اﯾﻦ ﺷﻤﺎرﻧﺪى ‪ 3‬ﺑﯿﺘﯽ‪ ،‬ﮐﻪ ﺑﺮاي ﺷﻤﺎرش ‪ 8‬ﻋﺪد اﺳﺖ را در اﺑﺘﺪا ﺑﺎﯾﺪ ‪ Clear‬ﮐﻨﯿﻢ ‪.‬‬ ‫*در ﻣﺮﺣﻠﻪ ‪ 5‬ﭼﻮن در واﻗﻊ ﻋﻤﻞ ﻣﻘﺎﯾﺴﻪ ﺻﻮرت ﻣﯽ ﮔﯿﺮد ﭘﺲ ﺷﻤﺎره ﺑﻪ ﺧﻮد ﻧﻤﯽ ﮔﯿﺮد ‪.‬‬ ‫* در ﻣﺮﺣﻠﻪ ‪ 6‬ﻋﻤﻞ ‪ ShR‬ﺑﺼﻮرت ﺣﺴﺎﺑﯽ وﺑﻪ اﻧﺪازه ﯾﮏ ﺑﯿﺖ ﺻﻮرت ﻣﯽ ﮔﯿﺮد وﭼﻮن ﻋﻤﻞ اﺿﺎﻓﻪ‬ ‫ﮐﺮدن ﯾﮏ واﺣﺪ ﺑﻪ ﺷﻤﺎرﻧﺪه ‪ ،‬ﺑﻪ ‪ ShR‬رﺑﻄﯽ ﻧﺪارد ‪ .‬ﭘﺲ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺼﻮرﺗﯽ اﺷﺘﺮاﮐﯽ ﺑﺎ ‪ ShR‬در‬ ‫ﯾﮏ ﻣﺮﺣﻠﻪ ﺻﻮرت ﮔﯿﺮد‪.‬‬ ‫‪١٠٨‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫* درﻣﺮﺣﻠﻪ ‪ 7‬اﮔﺮ ﺷﻤﺎرﻧﺪه از ‪ 7‬ﮔﺬﺷﺘﻪ ﺑﺎﺷﺪ ‪ ،‬ﺑﻪ ﻣﺮﺣﻠﻪ ﭘﺎﯾﺎﻧﯽ ﻣﯽ رود و در ﻏﯿﺮ اﯾﻨﺼﻮرت از‬ ‫ﻣﺮﺣﻠﻪ ‪ ، 5‬ﻣﺮاﺣﻞ را اداﻣﻪ ﻣﯽ ﻫﺪ‪.‬‬ ‫از اﯾﻦ ﻟﺤﻈﻪ ﺑﻪ ﺑﻌﺪ ﺗﺼﻤﯿﻢ ﻣﯽ ﮔﯿﺮﯾﻢ ﮐﻪ ﺑﻪ روش ﺳﯿﻢ ﺑﻨﺪي ﺷﺪه اﻟﮕﻮرﯾﺘﻢ را ﻃﺮاﺣﯽ ﮐﻨﯿﻢ ﯾﺎ‬ ‫روش رﯾﺰ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي‪ ،‬واﮔﺮ از روش ﺳﯿﻢ ﺑﻨﺪي ﺷﺪه اﺳﺘﻔﺎده ﻣﯽ ﻧﻤﺎﯾﯿﻢ ﮐﺪاﻣﯿﮏ از ﺳﻪ روش‬ ‫ﻣﻮﺟﻮد در اﯾﻦ روش را اﻧﺘﺨﺎب ﻣﯽ ﮐﻨﯿﻢ‪.‬‬ ‫ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل اﻟﮕﻮرﯾﺘﻢ ‪ Booth‬ﺑﻪ روش ‪: Delay Element Method‬‬ ‫)ﺷﮑﻞ ‪(3-1‬‬ ‫ﺑﺮاي ﻃﯽ ﮐﺮدن ﯾﮏ ﺑﺎر ﻣﺪار ‪ ،‬اﮔﺮ از ﻣﺴﯿﺮ ﻣﺴﺘﻘﯿﻢ ﺑﺮوﯾﻢ ﺑﻪ ‪ 5‬ﭘﺎﻟﺲ و در ﻏﯿﯿﺮ اﯾﻦ ﺻﻮرت‬ ‫ﺑﻪ ‪ 7‬ﭘﺎﻟﺲ زﻣﺎﻧﯽ اﺣﺘﯿﺎج دارﯾﻢ ‪ .‬در ﮐﻨﺎر ﻫﺮ ‪ BOX‬ﻧﻮﺷﺘﻪ ﺷﺪه ﮐﻪ ﺑﺎ ﮐﺪاﻣﯿﮏ از ﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ‬ ‫ﻓﻌﺎل ﻣﯽ ﺷﻮد ‪ .‬ﭘﺲ از اﯾﻦ ﺑﻪ ﺑﻌﺪ ﻧﻮﺑﺖ ﺑﻪ ﻋﻤﻞ ﻃﺮاﺣﯽ رﺳﯿﺪه اﺳﺖ ‪ .‬ﻣﺎ ﺑﺎﯾﺪ وﺳﯿﻠﻪاﯾﯽ داﺷﺘﻪ‬ ‫‪١٠٩‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺑﺎﺷﯿﻢ ﮐﻪ اﯾﻦ ﺳﯿﮕﻨﺎﻟﻬﺎ ) ‪ ( C1 ...... C15‬را ﺑﻪ ﺗﺮﺗﯿﺐ و در ﻫﺮ ﻟﺤﻈﻪ ﯾﮑﯽ از آﻧﻬﺎ را ﻓﻌﺎل ﮐﻨﺪ واﮔﺮ اﯾﻦ‬ ‫ﮐﺎر را اﻧﺠﺎم دﻫﯿﻢ درواﻗﻊ واﺣﺪ ﮐﻨﺘﺮل را ﻃﺮاﺣﯽ ﮐﺮده اﯾﻢ ‪.‬ﺑﺮاي اﯾﻨﮑﺎر ‪ ،‬ﺗﻌﺪادي ﻓﯿﻠﯿﭗ ﻓﻼپ‬ ‫رادرﻧﻈﺮ ﻣﯽ ﮔﯿﺮﯾﻢ ‪ ،‬ﮐﻪ ﻫﻤﻪ آﻧﻬﺎ از ﻧﻮع ﻓﯿﻠﯿﭗ ﻓﻼپ ‪ D‬ﻣﯽ ﺑﺎﺷﻨﺪ و‪ Clock‬آﻧﻬﺎ ﺑﻪ ﻫﻢ ﻣﺘﺼﻞ ﻣﯽ‬ ‫ﺑﺎﺷﺪ ‪.‬‬ ‫)ﺷﮑﻞ ‪(4-1‬‬ ‫در ﻟﺤﻈﻪ اول ﻫﻤﻪ ﻓﯿﻠﯿﭗ ﻓﻼﭘﻬﺎ ﺻﻔﺮ ﻫﺴﺘﻨﺪ و در ﻟﺤﻈﻪ ﺑﻌﺪي ﯾﮏ راﺑﻪ ﻓﯿﻠﯿﭗ ﻓﻼپ اول‬ ‫ﻣﯽ دﻫﯿﻢ ‪ .‬ﻣﺸﺎﻫﺪه ﻣﯽ ﺷﻮد ﮐﻪ ﯾﮏ ‪ ،‬ﺑﺼﻮرت ﭼﺮﺧﺸﯽ ﺑﯿﻦ ﻓﯿﻠﯿﭗ ﻓﻼﭘﻬﺎ ﺑﻪ ﮔﺮدش در ﻣﯽ آﯾﺪ‬ ‫درواﻗﻊ اﯾﻦ ﻫﻤﺎن ‪ ، Ring Counter‬در درس ﻣﺪارات ﻣﻨﻄﻘﯽ ﻣﯽ ﺑﺎﺷﺪ ‪.‬در ﻟﺤﻈﻪ اول ﺑﺎﯾﺪ ﺳﯿﮕﻨﺎل‬ ‫‪ C1‬را ﻓﻌﺎل ﮐﻨﺪ ودر ﻟﺤﻈﻪ دوم ﺳﯿﮕﻨﺎل ‪ C1 , C7 , C13 , C5‬ﮐﻪ ﻣﺮﺑﻮط ﺑﻪ ‪ BOX‬دوم دراﻟﮕﻮرﯾﺘﻢ‬ ‫اﺳﺖ ﻓﻌﺎل ﺷﻮد و ﺑﻪ ﻫﻤﯿﻦ ﺻﻮرت اﻟﯽ آﺧﺮ ‪ .‬ﻋﻠﺖ اﯾﻨﮑﻪ اﯾﻦ روش را ‪ Delay Element‬ﻣﯽ ﻧﺎﻣﻨﺪ‬ ‫ﺑﻪ ﺧﺎﻃﺮ وﺟﻮد ﻓﯿﻠﯿﭗ ﻓﻼپ ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ اﯾﺠﺎد ﺗﺄﺧﯿﺮ ﻣﯽ ﻧﻤﺎﯾﺪ‪.‬‬ ‫ﺑﺮاي ﺗﺒﺪﯾﻞ ﻓﻠﻮرﭼﺎت ﺑﻪ ﻣﺪار اﻟﮑﺘﺮﯾﮑﯽ ﺑﻪ اﯾﻦ ﻧﮑﺎت ﺗﻮﺟﻪ ﮐﻨﯿﺪ ‪:‬‬ ‫‪-1‬ﺑﯿﻦﻫﺮدو‪ BOX‬ﯾﮏ‪ (D.E) Delay Element‬ﻗﺮاردادهوﺑﺠﺎيﻫﺮ‪ BOX‬ﯾﮏ ﺳﯿﻢﻣﯽﮔﺬارﯾﻢ ‪.‬‬ ‫‪ -2‬ﻫﻨﮕﺎﻣﯿﮑﻪ اﻃﻼﻋﺎت از ﭼﻨﺪ ﻣﺴﯿﺮ وارد ﯾﮏ ﻣﺴﯿﺮ ﻣﯽ ﺷﻮد ﺑﺎﯾﺪ ﮔﯿﺖ ‪ OR‬ﺑﮑﺎر ﺑﺒﺮﯾﻢ‪.‬‬ ‫‪ -3‬در ﻧﻘﺎط ﺗﺼﻤﯿﻢ ﮔﯿﺮي ﺑﺎﯾﺪ ﮔﯿﺖ ‪ AND‬ﺑﮕﺬارﯾﻢ ‪.‬‬ ‫‪١١٠‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺑﺎ رﻋﺎﯾﺖ اﯾﻦ ﺳﻪ ﻧﮑﺘﻪ ﻣﯽ ﺗﻮان ﭼﺎرت را ﺑﻪ ﺻﻮرت ﯾﮏ واﺣﺪ ﮐﻨﺘﺮل ﭘﯿﺎده ﺳﺎزي ﮐﺮد ‪.‬‬ ‫* ﻋﻤﻞ ﻣﻘﺎﯾﺴﻪ ﻧﯿﺰ ﻧﯿﺎز ﺑﻪ زﻣﺎن )‪ (D. E‬ﻧﺪارد‪.‬‬ ‫)ﺷﮑﻞ ‪(5-1‬‬ ‫ﺗﻮﺿﯿﺢ راﺟﻊ ﺑﻪ ﻧﺤﻮه ﻋﻤﻠﮑﺮد ﺷﻤﺎرﻧﺪه‬ ‫در ﺷﺮوع ﮐﺎر ﭘﺲ از رﺳﯿﺪن ﺑﻪ ﻣﺮﺣﻠﻪ ‪ 7‬ﻣﻘﺪار ‪ ، Count‬ﺑﺮاﺑﺮ ﯾﮏ ﻣﯽ ﺑﺎﺷﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ‬ ‫ﺧﺮوﺟﯽ ‪ OR‬ﮔﯿﺖ ﻣﺎ ﯾﮏ اﺳﺖ‪ ،‬ﭘﺲ ﺣﻠﻘﻪ اﺟﺮا ﻣﯽ ﺷﻮد و ﺑﺎﻋﺚ ﻗﻄﻊ ﺣﻠﻘﻪ ﻣﺎﻧﻤﯽ ﺷﻮد ‪ .‬وﻗﺘﯽ ﮐﻪ‬ ‫‪ Count‬ﺑﺮاﺑﺮ ‪ 8‬ﺷﺪ ‪ ،‬ﺧﺮوﺟﯽ ﮔﯿﺖ ‪ OR‬ﻣﺎ ﺑﺮاﺑﺮ ﺑﺎ ﺻﻔﺮ ﺷﺪه ﺑﻨﺎﺑﺮاﯾﻦ از ﺣﻠﻘﻪ ﺧﺎرج ﻣﯽ ﺷﻮد ‪.‬‬ ‫در اﯾﻨﺠﺎ ﻧﯿﺎزي ﻧﯿﺴﺖ ﮐﻪ ﺧﺮوﺟﯽ ﻫﺎي ‪ Count‬ﺑﻪ ﯾﮏ ‪ NOR‬ﮔﯿﺖ ﺑﺮود ‪ ،‬زﯾﺮا در ﻣﻄﺎﻟﺐ‬ ‫ﮐﻪ ﮔﯿﺖ‬ ‫ﺷﮑﻞ )‪ (5- 1‬را‬ ‫ﺑﻌﺪي ﻧﯿﺎز ﺑﻪ ﮔﯿﺖ ‪ NOR‬ﻣﯽ ﺑﺎﺷﺪ ‪ .‬ﭘﺲ ﺑﺮاي اﺻﻼح ﻋﻤﻠﯿﺎت ﮐﺎﻓﯽ اﺳﺖ وﻗﺘﯽ‬ ‫‪ OR‬را ﺑﺎﮔﯿﺖ ‪ NOR‬ﻋﻮض ﻣﯽ ﮐﻨﯿﻢ ورودﯾﻬﺎي ‪ Count‬در ‪ AND‬ﮔﯿﺘﻬﺎي ﭘﺎﯾﯿﻦ‬ ‫‪ Not‬ﻣﯽ ﮐﻨﯿﻢ ﺗﺎ ﺟﻮاب ﻣﻄﻠﻮب ﺣﺎﺻﻞ ﺷﻮد وﻟﯽ در اﯾﻦ روش ﺗﻌﺪاد ‪ FF‬ﻫﺎ زﯾﺎد اﺳﺖ ‪.‬‬ ‫‪١١١‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫)ﺷﮑﻞ ‪(6-1‬‬ ‫‪Seqence Counter Method : 3-1-1‬‬ ‫در اﯾﻦ روش ﺳﻌﯽ ﻣﯽ ﺷﻮد ﮐﻪ ﺗﻌﺪاد ﻓﯿﻠﯿﭗ ﻓﻼﭘﻬﺎ )‪ ( F/F‬ﺑﻪ ﻧﺤﻮي ﮐﺎﺳﺘﻪ ﺷﻮد‪ ،‬زﯾﺮا در‬ ‫روش ‪ Delay Element‬ﺗﻌﺪاد ﻓﯿﻠﯿﭗ ﻓﻼﭘﻬﺎ )‪ (F/F‬زﯾﺎد ﻣﯽ ﺑﺎﺷﺪ ‪ .‬در اﯾﻦ روش از ﯾﮏ ﺷﻤﺎرﻧﺪه‬ ‫ﻣﻌﻤﻮﻟﯽ و ﯾﮏ ﮐﺪﮔﺸﺎ )‪ (Decoder‬ﺑﺠﺎي ﺷﻤﺎرﻧﺪه ﺣﻠﻘﻮي ﮐﻪ در روش ‪ Delay Element‬ﺑﻮد ‪،‬‬ ‫اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ و در واﻗﻊ ﺷﻤﺎرﻧﺪه ﻋﻤﻞ ﺷﻤﺎرش وﮐﺪ ﮔﺸﺎ ﻧﯿﺰ ﻋﻤﻞ ﮐﺪﮔﺸﺎﯾﯽ را اﻧﺠﺎم ﻣﯽ دﻫﺪ‪.‬‬ ‫ﺑﻨﺎﺑﺮاﯾﻦ ﻫﺰﯾﻨﻪ ﺧﯿﻠﯽ ﭘﺎﯾﯿﻦ ﻣﯽ آﯾﺪ ‪ .‬ﺑﺎ اﺳﺘﻔﺎده از ‪ Decoder‬ﮐﻪ داﺋﻤﺎ از اﺑﺘﺪا ﺗﺎ اﻧﺘﻬﺎ ﺗﮑﺮار ﻣﯽ ﺷﻮد ‪،‬‬ ‫ﺣﻠﻘﻪ ﻫﺎي ﻣﺨﺘﻠﻔﯽ را ﻃﯽ ﻣﯽ ﮐﻨﯿﻢ ‪.‬‬ ‫)ﺷﮑﻞ ‪(7-1‬‬ ‫در اﻟﮕﻮرﯾﺘﻢ ﻗﺒﻠﯽ ﯾﮏ ﻋﻤﻞ ﭼﻨﺪﯾﻦ ﺑﺎر ﺗﮑﺮار ﻣﯽ ﺷﺪ ‪) ،‬در ﯾﮏ ﺣﻠﻘﻪ ﻗﺮار ﻣﯽ ﮔﺮﻓﺖ(‬ ‫واﯾﻦ ﻋﻤﻞ ﺑﺎﻋﺚ ﭘﯿﭽﯿﺪﮔﯽ ﻣﺪار در روش ‪ (Sequence Counter) S.C‬ﻣﯽ ﺷﻮد وﻫﺰﯾﻨﻪ اﯾﻦ ﻣﺪار‬ ‫‪١١٢‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﻧﯿﺰ از روش ‪ D.E‬ﺑﯿﺸﺘﺮ ﻣﯽ ﮔﺮدد ‪ .‬ﻟﺬا از اﻟﮕﻮرﯾﺘﻤﯽ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ ﮐﻪ ﻓﻘﻂ در دو ﻣﺮﺣﻠﻪ ﺑﺎ‬ ‫اﻟﮕﻮرﯾﺘﻢ ﻗﺒﻠﯽ ﺗﻔﺎوت دارد ‪.‬‬ ‫ﺑﺮاي درك ﺑﻬﺘﺮ روش ‪ Sequence Counter‬ﻣﺜﺎل زﯾﺮ را ﺑﺮرﺳﯽ ﻣﯽ ﻧﻤﺎﯾﯿﻢ‪.‬‬ ‫ﻣﺜﺎل ‪:‬ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل اﻟﮕﻮرﯾﺘﻢ ‪ Booth‬ﺑﻪ روش ‪Sequence Counter Method‬‬ ‫)ﺷﮑﻞ ‪(8-1‬‬ ‫اﮔﺮ ﺑﺨﻮاﻫﯿﻢ از روش ‪ D.E‬اﺳﺘﻔﺎده ﮐﻨﯿﻢ ﺑﺎﯾﺪ ﯾﮏ ﺷﻤﺎرﻧﺪه ﺣﻠﻘﻮي ‪ 9‬ﺑﯿﺘﯽ داﺷﺘﻪ ﺑﺎﺷﯿﻢ وﻟﯽ‬ ‫در روش ‪ S.C‬ﺑﺎﯾﺪ اﻟﮕﻮرﯾﺘﻢ ﺑﻪ ﺳﻪ ﻗﺴﻤﺖ ﺗﻘﺴﯿﻢ ﺷﻮد ‪ .‬ﻗﺴﻤﺖ اول ﻋﻤﻠﯿﺎت ‪¢‬‬ ‫‪ j ¢‬وﻗﺴﻤﺖ‬ ‫‪ j 1‬ﺗﺎ ‪4‬‬ ‫وﺳﻂ‪ ،‬از ‪¢‬‬ ‫‪ j ¢‬و ﻗﺴﻤﺖ آﺧﺮ ﻧﯿﺰ از ‪¢‬‬ ‫‪ j ¢‬را ﻣﯽ ﺷﻤﺎرد ‪ .‬در اﯾﻨﺠﺎ ﺣﺪاﮐﺜﺮ ﺑﺎﯾﺪ ﺗﺎ ‪4‬‬ ‫‪ j 1‬ﺗﺎ ‪2‬‬ ‫‪ j 1‬ﺗﺎ ‪3‬‬ ‫ﺷﻤﺎرش ﺷﻮد زﯾﺮا ﻣﺮﺣﻠﻪ دوم ﮐﻪ ﺑﯿﺸﺘﺮﯾﻦ زﯾﺮ ﻣﺮﺣﻠﻪ را دارد ‪ ،‬ﺷﺎﻣﻞ ‪ 4‬ﻗﺴﻤﺖ ﻣﯽ ﺑﺎﺷﺪ ‪.‬‬ ‫‪١١٣‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫)ﺷﮑﻞ ‪(9-1‬‬ ‫ﺣﺎل از ﯾﮏ ﺷﻤﺎرﻧﺪه اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ ﮐﻪ ﻫﻤﻪ ﻗﺴﻤﺖ ﻫﺎ را ﺑﺸﻤﺎرد وﺑﺮاي اﯾﻦ ﺷﻤﺎرش ‪،‬‬ ‫ازﺷﻤﺎرﻧﺪهاﯾﯽ ﺑﻪ ﭘﯿﻤﺎﻧﻪ ﭼﻬﺎر وﺳﻪ ﻓﯿﻠﯿﭗ ﻓﻼپ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ‪.‬‬ ‫ﺑﺮاي اﯾﻨﮑﻪ وﻗﺘﯽ ﺷﻤﺎرﻧﺪه ﻣﯽ ﺷﻤﺎرد ﻣﺘﻮﺟﻪ ﺷﻮﯾﻢ ‪ ،‬ﻋﻤﻞ ﺷﻤﺎرش ﺑﺮاي ﮐﺪام ﻗﺴﻤﺖ از‬ ‫ﻓﻠﻮرﭼﺎت در ﺣﺎل اﻧﺠﺎم ﻣﯽ ﺑﺎﺷﺪ ‪ ،‬از ﺳﻪ ﻓﯿﻠﯿﭗ ﻓﻼپ ﮐﻪ ﻫﺮ ﮐﺪام ﺑﺮاي ﯾﮏ ﻗﺴﻤﺖ ﻣﯽ ﺑﺎﺷﺪ‬ ‫اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ و ﻋﻤﻞ ﺷﻤﺎرش ﺑﺮاي ﻫﺮ ﻗﺴﻤﺘﯽ ﺑﺎﺷﺪ ﻓﯿﻠﯿﭗ ﻓﻼپ ﻣﺮﺑﻮط ﺑﻪ آن ‪) Set‬ﯾﻌﻨﯽ ﯾﮏ(‬ ‫ﻓﻌﺎل ﺷﺪ ‪ ،‬ﺷﻤﺎرش ﺗﻤﺎم اﺳﺖ و اﯾﻦ‬ ‫ﺷﺪه وﺑﻘﯿﻪ ﻓﯿﻠﯿﭗ ﻓﻼﭘﻬﺎ ﺻﻔﺮ ﻣﯽ ﺷﻮﻧﺪ‪ .‬ﻫﻨﮕﺎﻣﯽ ﮐﻪ‬ ‫ﯾﻌﻨﯽ ﻋﻤﻞ ﺿﺮب ﺑﻪ اﻧﺘﻬﺎي ﺧﻮدش رﺳﯿﺪه اﺳﺖ ‪.‬‬ ‫* وﻗﺘﯽ ‪ Clock‬ﺑﻪ ﺷﻤﺎرﻧﺪه داده ﻣﯽ ﺷﻮد ﻗﺴﻤﺖ ‪ Begin‬ﻧﯿﺰ ﮐﻪ ﺣﺎﻟﺖ ﺷﺮوع اﺳﺖ ‪ ،‬ﻓﻌﺎل ﺷﺪه‬ ‫وﯾﮏ ‪ Start‬از آن ﻧﯿﺰ ﺑﻪ ﺷﻤﺎرﻧﺪه ﻣﯽ رود‪.‬‬ ‫‪١١٤‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪ : 2-1‬روش رﯾﺰ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي‬ ‫اﯾﻦ روش ﮐﻪ اوﻟﯿﻦ ﺑﺎر در ﺳﺎل ‪ 1950‬ﺗﻮﺳﻂ وﯾﻠﮑﺲ )‪ (Wilkes‬ﭘﯿﺎده ﺳﺎزي ﺷﺪ ‪ ،‬روﺷﯽ اﺳﺖ‬ ‫ﮐﻪ داراي ﻫﺰﯾﻨﻪ ﺑﺎﻻ ‪ ،‬ﺳﺮﻋﺖ ﮐﻢ ‪،‬اﻣﺎ از اﻧﻌﻄﺎف ﭘﺬﯾﺮي ﺑﺎﻻﯾﯽ ﺑﺮﺧﻮردار اﺳﺖ ‪ .‬اﯾﻦ روش ﺑﺪﯾﻦ‬ ‫ﺻﻮرت اﻧﺠﺎم ﻣﯽ ﺷﻮد ﮐﻪ ﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ ﺧﻮاﻧﺪه ﻣﯽ ﺷﻮﻧﺪ وﺑﻪ ﻣﻘﺎﺻﺪ ﻣﺮﺑﻮﻃﻪ ﻫﺪاﯾﺖ ﻣﯽ‬ ‫ﮔﺮدﻧﺪ‪.‬‬ ‫ﺑﺮاي درك ﺑﻬﺘﺮ اﯾﻦ دو روش از ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل ﺑﻪ ﻣﺜﺎل زﯾﺮ ﺗﻮﺟﻪ ﮐﻨﯿﺪ ‪.‬‬ ‫ﻣﺜﺎل ‪ :‬ﻓﺮض ﮐﻨﯿﺪ ﻫﺮ ﺛﺒﺎت از ﺳﻪ ﻗﺴﻤﺖ ﺗﺸﮑﯿﻞ ﺷﺪه ﺑﺎﺷﺪ ‪ .‬ﻣﺜﻼً ﯾﮏ ﭘﺎﯾﻪ ‪ ShL‬وﯾﮏ ﭘﺎﯾﻪ ‪ShR‬‬ ‫وﯾﮏ ﭘﺎﯾﻪ ‪) Load‬ﺑﺎرﮐﺮدن( داﺷﺘﻪ ﺑﺎﺷﺪ ‪ ،‬ﮐﻪ اﮔﺮ ﻣﺤﺘﻮاي آﻧﻬﺎ ﯾﮏ ﺑﺎﺷﺪ ‪ ،‬ﻋﻤﻞ ﻣﻮرد ﻧﻈﺮ را اﻧﺠﺎم‬ ‫ﺷﻤﺎره ﮔﺬاري‬ ‫دﻫﺪ واﮔﺮ ﻣﺤﺘﻮاي آﻧﻬﺎ ﺻﻔﺮ ﺑﻮد اﯾﻦ اﻋﻤﺎل را اﻧﺠﺎم ﻧﺪﻫﺪ‪ .‬ﺣﺎل اﯾﻦ ﭘﺎﯾﻪ ﻫﺎ را‬ ‫ﻣﯽ ﮐﻨﯿﻢ و واﺣﺪ ﮐﻨﺘﺮل ﺷﻤﺎره آﻧﻬﺎ را ﻣﻌﯿﻦ ﻣﯽ ﮐﻨﺪ ‪ .‬ﺑﺮاي ﻣﺜﺎل اﮔﺮ ﺑﺨﻮاﻫﺪ ﻋﻤﻞ ‪ ShR‬را اﻧﺠﺎم‬ ‫دﻫﺪ‪ ،‬ﺷﻤﺎره ‪ 2‬را ﻓﻌﺎل ﻣﯽ ﮐﻨﺪ وﺑﻪ ﻫﻤﯿﻦ ﺻﻮرت ﺑﺮاي ﻫﺮ ﭘﺎﯾﻪ ﺷﻤﺎره آن را ﻣﯽ ﻓﺮﺳﺘﺪ‪.‬‬ ‫‪Register‬‬ ‫‪ShL‬‬ ‫‪ShR‬‬ ‫‪Load‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ﺑﺨﻮاﻫﯿﻢ اﻋﻤﺎﻟﯽ را ﻃﺒﻖ ﺷﻤﺎره ﻫﺎي ‪ 1,2,6,5,3‬اﻧﺠﺎم دﻫﯿﻢ‪ .‬ﺑﺮاي اﯾﻦ ﻣﻨﻈﻮر ﻣﯽ‬ ‫ﺗﻮاﻧﯿﻢ ﺷﻤﺎرﻧﺪهاﯾﯽ را ﻃﺮاﺣﯽ ﮐﻨﯿﻢ ﮐﻪ ﺑﻪ ﺗﺮﺗﯿﺐ اﻋﺪاد ‪ 1,2,6,5,3‬را ﺑﺸﻤﺎرد ‪.‬‬ ‫ﭼﻮن ﺑﺰرﮔﺘﺮﯾﻦ ﻋﺪد ﮐﻪ ﻫﻤﺎن ﻋﺪد ‪ 6‬ﻣﯽ ﺑﺎﺷﺪ ‪ ،‬در ‪ 3‬ﺑﯿﺖ ﺟﺎي ﻣﯽ ﺷﻮد ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﺳﻪ ﺧﺮوﺟﯽ از‬ ‫واﺣﺪ ﮐﻨﺘﺮل ﺧﺎرج ﻣﯽ ﺷﻮد ‪ .‬اﯾﻦ ﺳﻪ ﺧﺮوﺟﯽ را ﺑﻪ ﮐﺪﮔﺸﺎ وﺻﻞ ﻣﯽ ﮐﻨﯿﻢ ﺗﺎ وﻗﺘﯽ ﺷﻤﺎرﻧﺪى ﻣﺎ ﻣﯽ‬ ‫ﺷﻤﺎرد ‪ ،‬ﮐﺪﮔﺸﺎ ﺷﻤﺎره ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﺛﺒﺎت ﻣﻮرد ﻧﻈﺮ را ﻓﻌﺎل ﻧﻤﺎﯾﺪ ‪.‬‬ ‫‪١١٥‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫)ﺷﮑﻞ ‪(10-1‬‬ ‫ﺣﺎل اﮔﺮ اﺷﺘﺒﺎﻫﯽ در ﺗﺮﺗﯿﺐ ﺷﻤﺎرﻧﺪه ﺻﻮرت ﮔﺮﻓﺘﻪ ﺑﺎﺷﺪ ‪ ،‬ﺑﺮاي ﻣﺜﺎل ﺑﺠﺎي ﺷﻤﺎره ﻫﺎي‬ ‫‪ 1,2,6,5,3‬ﻣﯽ ﺑﺎﯾﺴﺖ ﺷﻤﺎره ﻫﺎي ‪ 1,3,6,5,2‬را وارد ﻣﯽ ﮐﺮدﯾﻢ ‪ ،‬در اﯾﻨﺼﻮرت ﺑﺎﯾﺪ ﯾﮏ واﺣﺪ‬ ‫ﺷﻤﺎرﻧﺪه ﻣﺠﺰا ﺑﺮاي آن ﻃﺮاﺣﯽ ﻧﻤﺎﯾﯿﻢ‪) .‬ﻫﻤﺎﻧﻄﻮر ﮐﻪ در ﻣﺪار ﻣﻨﻄﻘﯽ داﺷﺘﯿﻢ( ﭘﺲ ﻧﺘﯿﺠﻪ ﻣﯽ ﮔﯿﺮﯾﻢ‬ ‫ﮐﻪ روش ﺳﯿﻢ ﺑﻨﺪي ﺷﺪه اﻧﻌﻄﺎف ﭘﺬﯾﺮ ﻧﻤﯽ ﺑﺎﺷﺪ ‪.‬‬ ‫وﻟﯽ در روش رﯾﺰ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﯾﮏ ﺣﺎﻓﻈﻪ دارﯾﻢ ‪،‬ﮐﻪ اﻋﺪاد ﻣﻮرد ﻧﻈﺮ ﺑﻪ ﺗﺮﺗﯿﺒﯽ ﮐﻪ ﻣﯽ‬ ‫ﺧﻮاﻫﯿﻢ ﺷﻤﺎرش ﺷﻮﻧﺪ را در ﺳﻄﺮﻫﺎي ﺣﺎﻓﻈﻪ ﻗﺮار ﻣﯽ دﻫﯿﻢ ‪ .‬در اﯾﻦ ﺣﺎﻟﺖ اﮔﺮ ﺑﺨﻮاﻫﯿﻢ اﻋﺪاد‬ ‫ﻣﻮﺟﻮد در ﺳﻄﺮﻫﺎي ﺣﺎﻓﻈﻪ را ﻋﻮض ﮐﻨﯿﻢ ﺑﻪ راﺣﺘﯽ ﻣﯽ ﺗﻮان ﺟﺎي اﻋﺪاد را ﻋﻮض ﻧﻤﻮد‪ .‬ﭘﺲ اﯾﻦ‬ ‫روش ﺑﺴﯿﺎر اﻧﻌﻄﺎف ﭘﺬﯾﺮ اﺳﺖ‪.‬‬ ‫)ﺷﮑﻞ ‪(11-1‬‬ ‫‪١١٦‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﻧﮑﺘﻪ ‪ :‬ﻋﻤﻼً در ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎ ﻧﯿﺰ از روش رﯾﺰ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻨﺪ ﻫﺮ ﭼﻨﺪ ﮐﻪ ﭘﺮﻫﺰﯾﻨﻪ وﮐﻢ‬ ‫ﺳﺮﻋﺖ اﺳﺖ ‪.‬‬ ‫‪ : 3-1‬ﻃﺮاﺣﯽ واﺣﺪﮐﻨﺘﺮل ﺑﻪ روش رﯾﺰﺑﺮﻧﺎﻣﻪ ﺳﺎزي )‪(Micro Programmed‬‬ ‫ﺣﺎل ﺑﺒﯿﻨﯿﻢ واﺣﺪ ﮐﻨﺘﺮل ﺑﺮاﺳﺎس رﯾﺰ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﭼﻪ ﺳﺎﺧﺘﺎري دارد‪.‬‬ ‫)ﺷﮑﻞ ‪(12-1‬‬ ‫در ﻟﺤﻈﻪ اول ﮐﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ را روﺷﻦ ﻣﯽ ﮐﻨﯿﻢ از ﻃﺮف ‪ Pulse Genrator‬ﯾﮏ ﭘﺎﻟﺲ ﻓﺮﺳﺘﺎده‬ ‫ﻣﯽ ﺷﻮد ﺗﺎ ‪ m P CL , m P CH‬را ‪ Clear‬ﯾﺎ ‪ Reset‬ﮐﻨﺪ و ﺑﻪ اﺟﺒﺎر در ﺳﻄﺮ اول ﺣﺎﻓﻈﻪ ﻗﺮار‬ ‫ﺧﻮاﻫﺪ ﮔﺮﻓﺖ‪ ،‬و اوﻟﯿﻦ دﺳﺘﻮري ﮐﻪ در آن ذﺧﯿﺮه ﺷﺪه ‪ ،‬اﺟﺮا ﻣﯽ ﮔﺮدد ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺎﯾﺪ در اوﻟﯿﻦ ﺳﻄﺮ‬ ‫ﺣﺎﻓﻈﻪ ‪ ،‬ﺑﺮﻧﺎﻣﻪاي را ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﻢ دراﺑﺘﺪا اﺟﺮا ﺷﻮد ذﺧﯿﺮه ﻣﯽ ﮐﻨﯿﻢ ‪ .‬ﺳﭙﺲ در ﺳﻄﺮ اول ﺣﺎﻓﻈﻪ‬ ‫دﺳﺘﻮراﻟﻌﻤﻞ ﭘﺮش را ﻗﺮارﻣﯽ دﻫﯿﻢ ﮐﻪ ﺑﺮﻧﺎﻣﻪ ﺧﺎﺻﯽ در آدرس ﻣﺸﺨﺺ را در ﻟﺤﻈﻪ اول اﺟﺮا ﮐﻨﺪ‪،‬‬ ‫ﻣﺜﻼً ﺑﺮﻧﺎﻣﻪ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ را اﺟﺮا ﮐﻨﺪ‪.‬‬ ‫در ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل ﺑﺮاﺳﺎس رﯾﺰ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺣﺎﻓﻈﻪاي وﺟﻮد دارد ﮐﻪ ﺑﻪ آن ﺣﺎﻓﻈﻪ‬ ‫ﮐﻨﺘﺮﻟﯽ ﻣﯽ ﮔﻮﯾﯿﻢ وﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ درداﺧﻞ اﯾﻦ ﺣﺎﻓﻈﻪ ﻗﺮاردارد و ﺣﺎﻓﻈﻪ ﮐﻨﺘﺮﻟﯽ ﺑﻪ ‪ K‬ﻗﺴﻤﺖ‬ ‫‪١١٧‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﻣﺴﺎوي ﺗﻘﺴﯿﻢ ﻣﯽ ﺷﻮد )‪ K‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ﺗﻌﺪاد دﺳﺘﻮراﻟﻌﻤﻞ ﻫﺎي ﻣﺎﺷﯿﻦ( وﻫﺮ ﻗﺴﻤﺖ از اﯾﻦ ‪K‬‬ ‫ﻗﺴﻤﺖ رﯾﺰ دﺳﺘﻮرات ﯾﮏ دﺳﺘﻮر ﻣﺎﺷﯿﻦ را ﺷﺎﻣﻞ ﻣﯽ ﺷﻮد ‪ .‬ﺑﺎ اﯾﻦ ﻋﻤﻞ آدرس ﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﻫﺮ‬ ‫ﺳﻄﺮ از ﺣﺎﻓﻈﻪ ﮐﻨﺘﺮﻟﯽ را ﻣﯽ ﺗﻮان ﺑﻪ دو دﺳﺘﻪ ﺗﻘﺴﯿﻢ ﻧﻤﻮد‪ .‬ﯾﮏ آدرس ﺑﯿﺎﻧﮕﺮ ﻗﺴﻤﺖ ﻣﺮﺑﻮﻃﻪ از‬ ‫ﺣﺎﻓﻈﻪ ﮐﻨﺘﺮﻟﯽ اﺳﺖ )آدرس ﺑﺎ ارزﺷﺘﺮ ( و آدرس دﯾﮕﺮ ﻣﺮﺑﻮط ﺑﻪ ﺷﻤﺎره ﺳﻄﺮ از آن ﻗﺴﻤﺖ ﻣﯽ‬ ‫ﺑﺎﺷﺪ )آدرس ﮐﻢ ارزﺷﺘﺮ( ﮐﻪ اﻟﺒﺘﻪ در ﺷﮑﻞ) ‪ (13-1‬ﻣﺸﺨﺺ اﺳﺖ ‪.‬‬ ‫)ﺷﮑﻞ ‪(13-1‬‬ ‫آدرس ﺑﺨﺶ ﺑﺎ ارزﺷﺘﺮ در واﻗﻊ ﺑﯿﺎﻧﮕﺮ ‪ Opcode‬دﺳﺘﻮراﻟﻌﻤﻞ ﻣﯽ ﺑﺎﺷﺪ ‪ .‬ﺑﺮاي اﺟﺮاي‬ ‫ﺑﻪ داﺧﻞ ‪mPCH‬‬ ‫ﯾﮏ دﺳﺘﻮراﻟﻌﻤﻞ از زﺑﺎن ﻣﺎﺷﯿﻦ ‪ Opcode‬آن دﺳﺘﻮر اﻟﻌﻤﻞ ﻣﻮﺟﻮد در ‪IR‬‬ ‫ﻣﻨﺘﻘﻞﻣﯽﺷﻮدودر ﻫﻤﺎن ﻟﺤﻈﻪ ‪ Clear ، mP CL‬ﻣﯽ ﺷﻮد اﯾﻦ ﻋﻤﻞ ﺗﻮﺳﻂ ﺧﻂ‪ Load Opcode‬اﻧﺠﺎم‬ ‫ﻣﯽ ﮔﯿﺮد ‪.‬ﺑﺎ اﯾﻦ ﮐﺎر ﺑﻪ اﺑﺘﺪاي ﻗﺴﻤﺖ ﻣﺮﺑﻮط ﺑﻪ ﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ اﯾﻦ دﺳﺘﻮر از ﻣﺎﺷﯿﻦ واﻗﻊ در‬ ‫ﺣﺎﻓﻈﻪ ﮐﻨﺘﺮﻟﯽ ﻣﺮﺗﺒﻂ ﻣﯽ ﺷﻮﯾﻢ ‪ ،‬و از آن ﺟﺎ ﺳﯿﮕﻨﺎﻟﻬﺎ ﯾﮑﯽ ﭘﺲ ازدﯾﮕﺮي ﻓﻌﺎل ﻣﯽ ﮔﺮدﻧﺪ ‪.‬‬ ‫درﻧﻮﺷﺘﻦ رﯾﺰ ﺑﺮﻧﺎﻣﻪ ﻗﻄﻌﺎً ﻧﯿﺎز ﺑﻪ ﭘﺮش )از ﻧﻮع ﺷﺮﻃﯽ ﯾﺎ ﻏﯿﺮ ﺷﺮﻃﯽ( ﺑﻪ ﯾﮏ ﻣﺤﻞ ﺧﺎص از ﺣﺎﻓﻈﻪ‬ ‫ﮐﻨﺘﺮﻟﯽ ﺧﻮاﻫﯿﻢ داﺷﺖ ‪ .‬اﯾﻦ ﻋﻤﻞ ﺑﺎ اﻧﺘﺨﺎب ﺷﺮط ﻣﺮﺑﻮﻃﻪ از ‪ Mux‬وﻣﻬﯿﺎ ﮐﺮدن آدرس ﻣﺤﻞ ﭘﺮش‬ ‫در ورودي ‪ mPCL‬ﺗﻐﯿﯿﺮ ﻣﯽ ﯾﺎﺑﺪ ‪ .‬در اﯾﻦ ﺣﺎﻟﺖ در ﺻﻮرﺗﯽ ﮐﻪ ﺷﺮط ﻣﺮﺑﻮﻃﻪ ﺑﺮﻗﺮار ﺑﺎﺷﺪ‬ ‫ﺧﺮوﺟﯽ ‪ Mux‬ﯾﮏ وﻋﻤﻞ ‪ Load‬آدرس ﺟﺪﯾﺪ ﺑﻪ داﺧﻞ ‪ mPCL‬اﻧﺠﺎم ﻣﯽ ﮔﯿﺮد در ﻏﯿﺮ اﯾﻦ‬ ‫ﺻﻮرت ﻋﻤﻞ ﭘﺮش اﻧﺠﺎم ﻧﺸﺪه وﺑﻪ ‪ mPCL‬ﯾﮏ واﺣﺪ اﺿﺎﻓﻪ ﻣﯽ ﮔﺮدد‪.‬‬ ‫‪١١٨‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ورودﯾﻬﺎي ﺻﻔﺮوﯾﮏ در ‪ Mux‬ﺑﺮاي ﻧﯿﻞ ﺑﻪ اﻫﺪاف زﯾﺮاﺳﺖ ‪.‬‬ ‫اﮔﺮ ﺑﺨﻮاﻫﯿﻢ ﺑﺪون ﻫﯿﭻ ﺷﺮﻃﯽ ﭘﺮش اﻧﺠﺎم ﺷﻮد ﯾﮏ را اﻧﺘﺨﺎب ﻣﯽ ﮐﻨﯿﻢ واﮔﺮ ﺑﺨﻮاﻫﯿﻢ اﺻﻼً‬ ‫ﭘﺮش ﻧﺪاﺷﺘﻪ ﺑﺎﺷﯿﻢ ﺻﻔﺮ را اﻧﺘﺨﺎب ﻣﯽ ﮐﻨﯿﻢ ودر ﺻﻮرت ﺷﺮﻃﯽ ﺑﻮدن ﭘﺮش‪ ،‬ﯾﮑﯽ از ﺷﺮﻃﻬﺎي ﻗﺮار‬ ‫داده در ورودي ‪ Mux‬را اﻧﺘﺨﺎب ﻣﯽ ﮐﻨﯿﻢ ‪.‬‬ ‫ﻋﻠﺖاﯾﻨﮑﻪازﮔﯿﺖ‪ OR‬اﺳﺘﻔﺎدهﻣﯽﮐﻨﯿﻢاﯾﻦاﺳﺖﮐﻪ ‪ mPCL‬دردوﻣﺮﺣﻠﻪﻧﯿﺎزﺑﻪ‪ Reset‬ﺷﺪندارد‪.‬‬ ‫‪ -2‬ﺑﻌﺪ از ‪ Load‬ﺷﺪن ﻫﺮ دﺳﺘﻮر‬ ‫‪ -1‬در ﻣﺮﺣﻠﻪ ﺷﺮوع‬ ‫ﺣﺎﻓﻈﻪ ﮐﻨﺘﺮﻟﯽ ﺑﻪ ﻫﺮ ﺳﻄﺮي ﮐﻪ اﺷﺎره ﻣﯽ ﮐﻨﺪ رﯾﺰ دﺳﺘﻮرات ﻣﺮﺑﻮط ﺑﻪ ﺣﺎﻓﻈﻪ ﮐﻨﺘﺮﻟﯽ ﺑﻪ‬ ‫‪ mIR‬ﻣﻨﺘﻘﻞ ﻣﯽ ﺷﻮد‪ m P C L , m P C H .‬داراي دو ‪ Clk‬ﻫﺴﺘﻨﺪ ‪.‬ﻫﺮ ﭘﺎﻟﺲ ﮐﻪ ﻣﯽ آﯾﺪ ﺑﻪ‬ ‫‪ mPCL‬ﯾﮏ واﺣﺪ اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﺪ و ‪ m I R‬ﻣﻘﺪاري ﮐﻪ ﺣﺎﻓﻈﻪ ﮐﻨﺘﺮﻟﯽ ﺑﻪ ﺑﯿﺮون ﻣﯽ ﻓﺮﺳﺘﺪ را‬ ‫در ﺧﻮد ذﺧﯿﺮه ﻣﯽ ﻧﻤﺎﯾﺪ ‪.‬‬ ‫ﺳﻮ‪‬ال ‪ :‬دﻟﯿﻞ اﯾﻨﮑﻪ ‪ mPCL‬ﺑﺎ ﻟﺒﻪ ﺑﺎﻻ روﻧﺪه )ﻣﺜﺒﺖ( ﻓﻌﺎل ﻣﯽ ﺷﻮد وﻟﯽ ‪ m I R‬ﺑﺎ ﻟﺒﻪ ﭘﺎﯾﯿﻦ‬ ‫روﻧﺪه )ﻣﻨﻔﯽ( ﻓﻌﺎل ﻣﯽ ﺷﻮد ﭼﯿﺴﺖ؟‬ ‫ﺑﻪ اﯾﻦ دﻟﯿﻞ ﮐﻪ ﻟﺤﻈﻪاي ﮐﻪ ‪ m P C‬ﻣﻘﺪاري ﺑﻪ ﺧﻮد ﻣﯽ ﮔﯿﺮد ‪ ،‬ﺳﻄﺮ ﻣﺮﺑﻮﻃﻪ از ﺣﺎﻓﻈﻪ‬ ‫ﮐﻨﺘﺮﻟﯽ در ﻫﻤﺎن ﻟﺤﻈﻪ اﻃﻼﻋﺎت آﻣﺎده ﺷﺪه را در ﺧﺮوﺟﯽ ﻓﺮاﻫﻢ ﻧﻤﯽ ﺳﺎزد ‪.‬‬ ‫ﭼﻮن ﻣﻘﺪار ‪ m P C‬ﺑﺎ ﯾﮏ ﺗﺄﺧﯿﺮ ‪ Increment‬ﻣﯽ ﺷﻮد ‪ ،‬ﭘﺲ ﺑﺎﯾﺪ ﻣﻘﺪاري ﺗﺄﺧﯿﺮ در ﻓﺮﺳﺘﺎدن ‪Clk‬‬ ‫ﺑﻪ ‪ m P C‬ﺑﺎﺷﺪ ﮐﻪ اﯾﻦ ﺗﺄﺧﯿﺮ را ﺑﺎ اﻋﻤﺎل ‪ Clk‬ﺑﺎﻟﺒﻪ ﻣﻨﻔﯽ ﺗﺼﺤﯿﺢ ﻣﯽ ﮐﻨﯿﻢ ﺗﺎ ‪ m P C L‬ﻣﺎ ﺑﻪ‬ ‫ﺣﺎﻟﺖ ﭘﺎﯾﺪار از ﻧﻈﺮ وﺿﻌﯿﺘﯽ ﺑﺮﺳﺪ‪.‬‬ ‫ﻇﺮﻓﯿﺖ ‪ m P C H‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ﺗﻌﺪاد ﺑﯿﺘﻬﺎي ‪ Opcode‬وﻇﺮﻓﯿﺖ ‪ m P C L‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‬ ‫ﻃﻮﻻﻧﯽ ﺗﺮﯾﻦ رﯾﺰ دﺳﺘﻮرات ﺑﺮاي اﻧﺠﺎم ﯾﮏ دﺳﺘﻮر ‪ ) .‬ﯾﻌﻨﯽ ﯾﮏ رﯾﺰ ﺑﺮﻧﺎﻣﻪ ﺣﺪاﮐﺜﺮ ﺑﻪ ﭼﻪ ﺗﻌﺪاد‬ ‫دﺳﺘﻮر اﻟﻌﻤﻞ ﻧﯿﺎز دارد(‬ ‫‪١١٩‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ وﯾﮋﮔﯿﻬﺎي ﻣﺪار ‪ ،‬ﺣﺎﻓﻈﻪ ﮐﻨﺘﺮﻟﯽ ﺑﺼﻮرت ‪ 512*40‬ﻣﯽ ﺑﺎﺷﺪ ‪ .‬ﺑﺎﻓﺮض اﯾﻨﮑﻪ‬ ‫ﺳﺨﺖ اﻓﺰاري ﮐﻪ در اﺧﺘﯿﺎر دارﯾﻢ ﺑﻪ ‪ 32‬ﺳﯿﮕﻨﺎل ﮐﻨﺘﺮﻟﯽ ﻧﯿﺎز داﺷﺘﻪ ﺑﺎﺷﺪ و ﺳﻪ ﺑﯿﺖ ﻫﻢ ﺟﻬﺖ‬ ‫اﻧﺘﺨﺎب وﺿﻌﯿﺖ )‪ (Select Condition‬وﯾﮏ ﺑﯿﺖ ﻫﻢ ﺟﻬﺖ ‪ Load‬وﭼﻬﺎر ﺑﯿﺖ ﻫﻢ ﺑﺮاي ﺧﻄﯽ ﮐﻪ‬ ‫از ‪ m I R‬ﻣﯽ رود ﮐﻪ در اﯾﻦ ﺻﻮرت دارﯾﻢ ‪:‬‬ ‫‪ = 32 + 3 + 1 + 4 = 40‬ﺗﻌﺪاد ﺳﺘﻮﻧﻬﺎ‬ ‫ﺗﻌﺪاد ﺳﻄﺮﻫﺎي ﺣﺎﻓﻈﻪ ﮐﻨﺘﺮﻟﯽ ﺑﺮاﺑﺮ ﺑﺎ ﺗﻌﺪاد ﺧﻄﻮط رﯾﺰ ﺑﺮﻧﺎﻣﻪ ﻧﻮﺷﺘﻪ ﺷﺪه ﺑﺮاي آن ﺳﺨﺖ اﻓﺰار‬ ‫ﻣﻮرد ﻧﻈﺮ ﻣﯽ ﺑﺎﺷﺪ ‪ ).‬ﮐﻪ در اﯾﻨﺠﺎ ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ‪( 512‬‬ ‫ﻣﺜﺎل ‪ :‬ﻧﺤﻮه ﺳﺎﺧﺘﻦ واﺣﺪ ﮐﻨﺘﺮل ﺑﺮاي اﻟﮕﻮرﯾﺘﻢ ﺿﺮب ‪: Booth‬‬ ‫ﭼﻮن در اﯾﻨﺠﺎ واﺣﺪ ﮐﻨﺘﺮل را ﻓﻘﻂ ﺑﺮاي ﯾﮏ دﺳﺘﻮراﻟﻌﻤﻞ ﻃﺮاﺣﯽ ﻣﯽ ﮐﻨﯿﻢ ‪ ،‬ﺑﻨﺎﺑﺮاﯾﻦ از ﯾﮏ‬ ‫ﺛﺒﺎت اﺳﺘﻔﺎده ﻣﯽ ﻧﻤﺎﯾﯿﻢ ‪ ،‬ﭘﺲ ‪ PC‬ﻣﺎ ﺑﻪ ﯾﮏ ﻗﺴﻤﺖ ‪ m P C‬ﺗﺒﺪﯾﻞ ﻣﯽ ﺷﻮد وﺑﻪ ﻋﻨﻮان ﻧﻤﻮﻧﻪ داراي‬ ‫ﺑﺨﺶ ‪ m P C H‬ﻧﻤﯽ ﺑﺎﺷﺪ‪ .‬وﻟﯽ اﮔﺮ ﺑﺨﻮاﻫﯿﻢ ﺑﺮاي ﮐﺎﻣﭙﯿﻮﺗﺮ ﭘﯿﺎده ﺳﺎزي ﮐﻨﯿﻢ ﺑﺎﯾﺪ ‪ PC‬داراي دو‬ ‫ﻗﺴﻤﺖ ﺑﺎﺷﺪ ‪.‬‬ ‫ﻣﺪار ﻻزم ﺑﺼﻮرت ﺑﻠﻮك دﯾﺎﮔﺮام در ز ﯾﺮ آﻣﺪه اﺳﺖ ‪:‬‬ ‫‪١٢٠‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫)ﺷﮑﻞ ‪(14-1‬‬ ‫در اﺑﺘﺪا ﺑﺮاي ﺗﻌﯿﯿﻦ ﺗﻌﺪاد ﺳﻄﺮﻫﺎي ﺣﺎﻓﻈﻪ ﮐﻨﺘﺮﻟﯽ ﻣﯽ ﺑﺎﯾﺴﺖ ﺗﻌﺪاد ﺳﻄﺮﻫﺎي رﯾﺰ ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻪ ﺷﺪه راﺑﺪﺳﺖ آورﯾﻢ ‪ .‬ﮐﻪ در اﻟﮕﻮرﯾﺘﻢ ‪ Booth‬از ﺳﻄﺮ ‪ 0‬ﺗﺎ ﺳﻄﺮ ‪ 12‬ﻣﯽ ﺑﺎﺷﺪ ﮐﻪ ﺟﻤﻌﺎً ‪13‬‬ ‫ﺳﻄﺮ ﻣﯽ ﺷﻮد‪ ،‬وﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﺗﻌﺪاد ﺳﺘﻮﻧﻬﺎ ي ﺣﺎﻓﻈﻪ ﮐﻨﺘﺮﻟﯽ دارﯾﻢ ‪:‬‬ ‫ﺗﻌﺪاد ﺧﻄﻮﻃﯽﮐﻪ از ‪ mIR‬ﺑﻪ ‪ mPC‬ﻣﯽ رود ‪ +‬اﻧﺘﺨﺎب ﺣﺎﻟﺖ ‪ +‬ﺗﻌﺪادﺳﯿﮕﻨﺎﻟﻬﺎيﮐﻨﺘﺮﻟﯽ=ﺗﻌﺪادﺳﺘﻮﻧﻬﺎ‬ ‫‪ = 15 + 3 + 4 = 22‬ﺗﻌﺪاد‬ ‫ﺳﺘﻮﻧﻬﺎ‬ ‫ﭘﺲ ﻇﺮﻓﯿﺖ ﺣﺎﻓﻈﻪ ﮐﻨﺘﺮﻟﯽ در روش ‪ Booth‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ )‪.( 13*22‬‬ ‫ﺑﺮاي )‪ B(0‬و ‪ FF‬ﺳﻪ ﺣﺎﻟﺖ ﻣﺨﺘﻠﻒ دارﯾﻢ و ﻫﻨﮕﺎﻣﯽ ﮐﻪ ‪ count‬ﺑﻪ ‪ 8‬ﺑﺮﺳﺪ ﺷﺮط ﺗﻮﻗﻒ ﻓﺮاﺧﻮاﻧﺪه‬ ‫ﻣﯽ ﺷﻮد ‪.‬‬ ‫ﻣﺠﻤﻮﻋﻪ ﺳﯿﮕﻨﺎﻟﻬﺎي ﮐﻨﺘﺮﻟﯽ ‪:‬‬ ‫‪١٢١‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ {c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15} Condition Branch C.M. Select c12 c13 c14 c15 Address c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 000 0000 0001 0010 000 000 0000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 1 0 0 000 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0011 000 000 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0100 010 100 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0101 100 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0110 000 000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0111 101 101 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1000 000 000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1001 000 000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 ١٢٢ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫‪0‬‬ ‫‪1010‬‬ ‫‪001‬‬ ‫‪010‬‬ ‫‪0‬‬ ‫‪1011‬‬ ‫‪000‬‬ ‫‪000‬‬ ‫‪0‬‬ ‫‪1100‬‬ ‫‪000‬‬ ‫‪000‬‬ ‫‪0‬‬ ‫‪0 0 0 1 0‬‬ ‫‪0 0 0 0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0 0 1 0 0‬‬ ‫‪0 0 0 0 0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0 0 0 0 0‬‬ ‫‪0 0 1 0 0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪١٢٣‬‬ ‫ﻣﻌﻤﺎري ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺗﻤﺮﯾﻨﺎت‬ ‫‪ -1‬ﻣﺪار ﻻزم ﺑﺮاي ﺿﺮب دو ﻋﺪد ﻋﻼﻣﺘﺪار ﺑﻪ روش ‪ Booth‬را رﺳﻢ ﻧﻤﺎﯾﯿﺪ ودر ﻣﻮرد اﯾﻦ روش‬ ‫ﺗﻮﺿﯿﺢ دﻫﯿﺪ‪ .‬ﻣﺮاﺣﻞ اﺟﺮاي زﯾﺮ ﻋﻤﻞ ﺑﺮاي ﺿﺮب دو ﻋﺪد را ﺑﺼﻮرت اﻟﮕﻮرﯾﺘﻤﯽ ﺑﯿﺎن ﻧﻤﺎﯾﯿﺪ؟‬ ‫‪ -2‬ﻣﯽ ﺧﻮاﻫﯿﻢ در ﻣﺪار ﺳﻮ‪‬ال ﯾﮏ اﯾﻦ اﻣﮑﺎن را ﺑﻮﺟﻮد آورﯾﻢ ﮐﻪ در ﺿﺮب دو ﻋﺪد ‪ A × K‬و‪A×K‬‬ ‫ﭘﺲ از وارد ﮐﺮدن ‪ A,K‬وﺑﻪ دﺳﺖ آوردن ﻧﺘﯿﺠﻪ ‪ ،‬ﺟﻬﺖ ﺿﺮب دو ﻋﺪد ‪ B , K‬ﻧﯿﺎز ﺑﻪ وارد ﮐﺮدن‬ ‫ﻣﺠﺪد ﻋﺪد ‪ K‬ﻧﺒﺎﺷﺪ ؟‬ ‫‪ -3‬آﯾﺎ ﻋﺒﺎرت زﯾﺮ درﺳﺖ اﺳﺖ ؟‬ ‫ در ﻃﺮاﺣﯽ واﺣﺪ ﮐﻨﺘﺮل ﺑﺮاﺳﺎس روش ‪ Delay element‬و ‪ Sequence Counter‬ﻫﺮ دو اﺳﺎس‬‫ﻃﺮاﺣﯽ ﯾﮑﺴﺎﻧﯽ دارﻧﺪ اﻣﺎ روش دوم ﺑﻪ ﮔﻮﻧﻪاي اﺳﺖ ﮐﻪ ﻫﺰﻧﻰ ﻃﺮاﺣﯽ ﮐﻤﺘﺮي دارد ‪.‬‬ ‫‪ -4‬ﺑﻪ دو ﻃﺮﯾﻖ ﻣﯽ ﺗﻮان واﺣﺪ ﮐﻨﺘﺮل را ﻃﺮاﺣﯽ ﻧﻤﻮد ‪:‬‬ ‫‪..................... -2 .................. -1‬‬ ‫روش ‪ ...................‬ﺳﺮﯾﻌﺘﺮ وروش ‪ .....................‬اﻧﻌﻄﺎف ﭘﺬﯾﺮ ﺗﺮ اﺳﺖ ‪.‬‬ ‫‪ -5‬اﻟﻒ( ‪ ALU‬ﻃﺮاﺣﯽ ﮐﻨﯿﺪ ﮐﻪ ﺑﺘﻮاﻧﺪ دﺳﺘﻮرات ﺟﻤﻊ ‪ ،‬ﺗﻔﺮﯾﻖ ‪ ،‬ﺿﺮب و ﻓﺎﮐﺘﻮرﯾﻞ را ﺑﺮاي اﻋﺪاد‬ ‫‪ 8‬ﺑﯿﺘﯽ اﻧﺠﺎم دﻫﯿﺪ؟ )ﻃﺮاﺣﯽ ﺑﺮاﺳﺎس روش ﺟﻤﻊ ﻫﺎي ﻣﺘﻮاﻟﯽ (‬ ‫ب( ﺑﺮاي ‪ ALU‬ﻃﺮاﺣﯽ ﺷﺪه ‪ ،‬واﺣﺪ ﮐﻨﺘﺮل ﺑﺮاﺳﺎس روش رﯾﺰ ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﻃﺮاﺣﯽ ﻧﻤﺎﯾﯿﺪ‬ ‫ورﯾﺰﺑﺮﻧﺎﻣﻰ ﻻزم ﺑﺮاي ﻋﻤﻞ ﻓﺎﮐﺘﻮرﯾﻞ را ﺑﻨﻮﯾﺴﯿﺪ؟‬ ‫‪ -6‬ﻣﻄﻠﻮب اﺳﺖ ﻃﺮاﺣﯽ ﯾﮏ ﮐﺎﻣﭙﯿﻮﺗﺮ ﺑﺎ ‪ 5‬دﺳﺘﻮراﻟﻌﻤﻞ زﯾﺮ ‪ ،‬ﺑﺮاﺳﺎس روش رﯾﺰﺑﺮﻧﺎﻣﻪ ﺳﺎزي ‪ .‬اﯾﻦ‬ ‫ﮐﺎﻣﭙﯿﻮﺗﺮ داراي ﺣﺎﻓﻈﻰ ‪ RAM‬ﺑﻪ ﻇﺮﻓﯿﺖ ‪ 32‬ﮐﻠﻤﻪ ‪4‬ﺑﯿﺘﯽ و ‪ AC‬و ‪ 8 Insruction Register‬ﺑﯿﻨﯽ‬ ‫اﺳﺖ ‪.‬‬ ‫‪AC


Comments

Copyright © 2025 UPDOCS Inc.