CA(for Print)
April 5, 2018 | Author: Anonymous |
Category:
Documents
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.