0% found this document useful (0 votes)
12 views22 pages

Arch1 2 (Stack)

ff

Uploaded by

nsh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views22 pages

Arch1 2 (Stack)

ff

Uploaded by

nsh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

Session2-2

Stacks….
‫ﺍﺻﻞ ﺷﻤﺎﺭﻩ ‪:3‬‬

‫ﻣﻮﺍﺭﺩ ﻣﺸﺘﺮﻙ ﺭﺍ ﺗﺴﺮﻳﻊ ﻛﻨﻴﺪ‪.‬‬

‫ﻋﻤﻠﻮﻧﺪﻫﺎﻱ ﺛﺎﺑﺖ ﻣﺮﺗﺒﺎ ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﻗﺮﺍﺭ ﻣﻲ ﮔﻴﺮﻧﺪ ﻭ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ‬


‫ﻫﺎﻱ ﺣﺴﺎﺑﻲ ﺷﺎﻣﻞ ﺁﻧﻬﺎ ﺳﺮﻳﻌﺘﺮ ﺍﺯ ﺩﺳﺘﻮﺭﺍﺕ ﺧﺎﻟﻲ ﻛﻪ ﻣﻲ ﺧﻮﺍﻫﻨﺪ‬
‫ﻋﻤﻠﻮﻧﺪﻫﺎ ﺭﺍ ﺍﺯ ﺣﺎﻓﻈﻪ ﺑﺮﺩﺍﺭﻧﺪ ﺍﺟﺮﺍ ﻣﻲ ﺷﻮﺩ‪.‬‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪2‬‬
‫‪Science & Research Branch‬‬
‫ﻣﺸﮑﻼﺕ ﺩﺭ ﻣﻌﻤﺎﺭی ﺣﺎﻓﻈﻪ ﺑﻪ ﺣﺎﻓﻈﻪ‬
‫• ﺣﺎﻓﻈﻪ ﺍﺻﻠﯽ ﺧﻴﻠﯽ ﮐﻨﺪﺗﺮ ﺍﺯ ﻣﺪﺍﺭﺍﺕ ﻣﺤﺎﺳﺒﺎﺗﯽ ﺍﺳﺖ‬
‫‪ -‬ﺧﺎﻧﻪ ﻫﺎی ﺯﻳﺎﺩی ﺑﺮﺍی ﻣﺸﺨﺺ ﻧﻤﻮﺩﻥ ﺁﺩﺭﺳﻬﺎی ﺣﺎﻓﻈﻪ‬
‫ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫• ﻣﻌﻤﻮﻻ ﻧﺘﺎﻳﺞ ﻳﮏ ﻳﺎ ﺩﻭ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﺑﻌﺪ ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﻗﺮﺍﺭ ﻣﯽ‬
‫ﮔﻴﺮﻧﺪ‪.‬‬

‫ﺑﻪ ﺧﺎﻃﺮ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﺪ‪ :‬ﺑﺨﺸﻬﺎی ﺍﺷﺘﺮﺍﮐﯽ ﺭﺍ ﺳﺮﻳﻌﺘﺮ ﻧﻤﺎﺋﻴﺪ!‬


‫ﺭﺍﻩ ﺣﻞ‪ :‬ﻧﺘﺎﻳﺞ ﻣﻴﺎﻧﯽ ﻳﺎ ﻣﻮﻗﺘﯽ ﺭﺍ ﺩﺭ ﺣﺎﻓﻈﻪ ﻫﺎی ﺳﺮﻳﻊ ﻭ ﻧﺰﺩﻳﮏ ﺑﻪ ﻭﺍﺣﺪ‬
‫ﻣﺤﺎﺳﺒﻪ ﺫﺧﻴﺮﻩ ﻧﻤﺎﺋﻴﺪ‪.‬‬
‫‪Advanced Computer Architecture & Design‬‬
‫‪3‬‬
‫‪Science & Research Branch‬‬
‫• ﻋﻤﻠﻴﺎﺕ ﺭﻳﺎﺿﻲ ﻣﻌﻤﻮﻻً ﺑﻪ ﺻﻮﺭﺕ ﮔﺎﻡ ﺑﻪ ﮔﺎﻡ ﺍﻧﺠﺎﻡ ﻣﻲﺷﻮﻧﺪ‪ ،‬ﻭ ﺍﺯ ﻧﺘﺎﻳﺞ ﻫﺮ‬
‫ﻣﺮﺣﻠﻪ ﺩﺭ ﻣﺮﺣﻠﻪ ﻱ ﺑﻌﺪ ﺑﻪ ﺻﻮﺭﺕ ﻭﺭﻭﺩﻱ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﺷﻮﺩ‪.‬‬

‫• ﺩﺭ ﺭﺍﻳﺎﻧﻪﻫﺎﻱ ﺍﺑﺘﺪﺍﻳﻲ ﻧﺘﺎﻳﺞ ﻫﺮ ﻣﺮﺣﻠﻪ ﺩﺭﻭﻥ ﺣﺎﻓﻈﻪﻱ ﻣﻐﻨﺎﻃﻴﺴﻲ ﺫﺧﻴﺮﻩ‬


‫ﻣﻲﺷﺪ‪ .‬ﻋﻤﻠﻴﺎﺕ ﻧﻮﺷﺘﻦ ﺩﺭﻭﻥ ﺣﺎﻓﻈﻪﻱ ﻣﻐﻨﺎﻃﻴﺴﻲ ﻣﺪﺕ ﺯﻣﺎﻥ ﺑﺴﻴﺎﺭ ﺯﻳﺎﺩﻱ‬
‫ﻃﻮﻝ ﻣﻲﻛﺸﻴﺪ ﻭ ﺑﺎﻋﺚ ﻛﻨﺪ ﺷﺪﻥ ﺳﻴﺴﺘﻢ ﻣﻲﺷﺪ‪.‬‬

‫• ﺍﺯ ﻃﺮﻑ ﺩﻳﮕﺮ ﺩﺭ ﻋﻤﻠﻴﺎﺕ ﺑﻌﺪﻱ ﻣﻌﻤﻮﻻً ﻧﻴﺎﺯ ﺑﻮﺩ ﻛﻪ ﻫﻤﺎﻥ ﺩﺍﺩﻩﺍﻱ ﻛﻪ ﺩﺭ‬
‫ﻣﺮﺣﻠﻪﻱ ﻗﺒﻠﻲ ﺩﺭﻭﻥ ﺣﺎﻓﻈﻪ ﻣﻐﻨﺎﻃﻴﺴﻲ ﻧﻮﺷﺘﻪ ﺷﺪﻩ ﺑﻮﺩ ﺍﺯ ﺭﻭﻱ ﻫﻤﺎﻥ‬
‫ﺣﺎﻓﻈﻪ ﺧﻮﺍﻧﺪﻩ ﺷﻮﺩ‪ ،‬ﺍﺯ ﺁﻥ ﺟﺎ ﻛﻪ ﻋﻤﻠﻴﺎﺕ ﺧﻮﺍﻧﺪﻥ ﺍﺯ ﺣﺎﻓﻈﻪ ﻣﻐﻨﺎﻃﻴﺴﻲ ﻧﻴﺰ‬
‫ﻋﻤﻠﻴﺎﺗﻲ ﻛﻨﺪ ﺑﻮﺩﻧﺪ ﺑﺎﻋﺚ ﻣﻲﺷﺪ ﻛﻪ ﻛﻨﺪﻱ ﺩﺭ ﻛﺎﺭ ﺩﻭ ﭼﻨﺪﺍﻥ ﺷﻮﺩ‪.‬‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪4‬‬
‫‪Science & Research Branch‬‬
‫ﺍﻧﺒﺎﺷﺘﮕﺮﻫﺎ ﺑﺎ ﻓﺮﺍﻫﻢ ﺳﺎﺧﺘﻦ ﻳﻚ ﺣﺎﻓﻈﻪﻱِ ﭼﺮﻛﻨﻮﻳﺲ ﻛﻪ ﺍﻳﻦ‬
‫ﻗﺎﺑﻠﻴﺖ ﺭﺍ ﺩﺍﺭﺩ ﻛﻪ ﻧﺘﺎﻳﺞ ﻫﺮ ﻣﺮﺣﻠﻪ ﺭﺍ ﺑﺪﻭﻥ ﻛﻨﺪ ﻛﺮﺩﻥ ﺳﻴﺴﺘﻢ ﺑﻪ‬
‫ﻣﺮﺣﻠﻪﻱ ﺑﻌﺪ ﺍﻧﺘﻘﺎﻝ ﺩﻫﺪ‪ ،‬ﺑﺎﺯﺩﻫﻲ ﺭﺍ ﺑﻪ ﺷﺪﺕ ﺑﻬﺒﻮﺩ ﻣﻲ ﺑﺨﺸﻨﺪ‪.‬‬

‫ﺑﺎ ﺍﻳﻦ ﻛﺎﺭ ﺩﺭ ﻫﺮ ﻣﺮﺣﻠﻪ ﻳﻚ ﻋﻤﻠﻴﺎﺕ ﺧﻮﺍﻧﺪﻥ ﻭ ﻧﻮﺷﺘﻦ ﺣﺎﻓﻈﻪﻱ‬


‫ﻣﻐﻨﺎﻃﻴﺴﻲ ﺻﺮﻓﻪ ﺟﻮﻳﻲ ﻣﻲﺷﻮﺩ ﻛﻪ ﺁﻥ ﻋﻤﻠﻴﺎﺕ ﺩﻩﻫﺎ ﻭ ﺻﺪﻫﺎ ﺑﺮﺍﺑﺮ‬
‫ﻛﻨﺪﺗﺮ ﺍﺯ ﻋﻤﻠﻴﺎﺕ ﺭﻳﺎﺿﻲ ﻫﺴﺘﻨﺪ‪.‬‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪5‬‬
‫‪Science & Research Branch‬‬
‫‪Accumulator‬‬
‫ﺩﺭ ﭘﺮﺩﺍﺯﻧﺪﻩ ﻣﺮﮐﺰی ﻳﮏ ﮐﺎﻣﭙﻴﻮﺗﺮ‪ ،‬ﺍﻧﺒﺎﺷﺘﮕﺮ ﺭﺟﻴﺴﺘﺮی ﺍﺳﺖ ﮐﻪ ﺩﺭ ﺁﻥ ﺩﺍﺩﻩﻫﺎی ﻣﻴﺎﻧﯽ ﮐﻪ ﺗﻮﺳﻂ ﻭﺍﺣﺪ‬ ‫•‬

‫ﻣﺤﺎﺳﺒﺎﺕ ﻭ ﻣﻨﻄﻖ ﺗﻮﻟﻴﺪ ﻣﯽﺷﻮﻧﺪ‪ ،‬ﺫﺧﻴﺮﻩ ﻣﯽﺷﻮﺩ‪.‬‬

‫ﺩﺳﺘﺮﺳﯽ ﺑﻪ ﺣﺎﻓﻈﻪ ﺍﺻﻠﯽ ﺑﺴﻴﺎﺭ ﮐﻨﺪﺗﺮ ﺍﺯ ﺩﺳﺘﺮﺳﯽ ﺑﻪ ﺭﺟﻴﺴﺘﺮ ﺍﺳﺖ ﻭ ﺍﻳﻦ ﺑﻪ ﻋﻠﺖ ﻓﻨﺎﻭﺭی ﺍﺳﺘﻔﺎﺩﻩ ﺷﺪﻩ ﺩﺭ‬ ‫•‬

‫ﺳﺎﺧﺖ ﺁﻥ ﻫﺎﺳﺖ‪ ،‬ﺣﺎﻓﻈﻪ ﺍﺻﻠﯽ ﮔﻨﺠﺎﻳﺶ ﺑﻴﺸﺘﺮی ﺩﺍﺭﺩ ﻭ ﺩﺭ ﻋﻮﺽ ﮐﻨﺪﺗﺮ ﺍﺯ ﺭﺟﻴﺴﺘﺮ ﻫﺎﺳﺖ‪.‬‬

‫ﮐﺎﻣﭙﻴﻮﺗﺮﻫﺎی ﺍﺑﺘﺪﺍﻳﯽ ﺑﻪ ﺩﻭ ﺩﺳﺘﻪ ﺗﻘﺴﻴﻢ ﻣﯽ ﺷﺪﻧﺪ‪ ،‬ﺁﻥﻫﺎﻳﯽ ﮐﻪ ﺭﺟﻴﺴﺘﺮ ﺍﻧﺒﺎﺷﺘﮕﺮ ﺩﺍﺷﺘﻨﺪ ﻭ ﺁﻥﻫﺎﻳﯽ ﮐﻪ ﭼﻨﻴﻦ‬ ‫•‬

‫ﻗﺎﺑﻠﻴﺘﯽ ﻧﺪﺍﺷﺘﻨﺪ‪.‬‬

‫ﺩﺭ ﺻﻮﺭﺗﯽ ﮐﻪ ﺭﺟﻴﺴﺘﺮ ﺑﺮﺍی ﺫﺧﻴﺮﻩ ﺳﺎﺯی ﺩﺍﺩﻩﻫﺎی ﻣﻴﺎﻧﯽ ﻭﺟﻮﺩ ﻧﺪﺍﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬ﻻﺯﻡ ﺧﻮﺍﻫﺪ ﺑﻮﺩ ﮐﻪ ﺍﻳﻦ‬ ‫•‬

‫ﺍﻃﻼﻋﺎﺕ ﺑﻌﺪ ﺍﺯ ﻫﺮ ﻣﺤﺎﺳﺒﻪ ﺩﺭﻭﻥ ﺣﺎﻓﻈﻪ ﺍﺻﻠﯽ ﻧﻮﺷﺘﻪ ﺷﻮﺩ‪ ،‬ﻭ ﺍﺣﺘﻤﺎﻝ ﺩﺍﺭﺩ ﮐﻪ ﻫﻤﺎﻥ ﺩﺍﺩﻩ ﺩﻭﺑﺎﺭﻩ ﺍﺯ ﺣﺎﻓﻈﻪ‬

‫ﺍﺻﻠﯽ ﺧﻮﺍﻧﺪﻩ ﺷﻮﺩ ﻭ ﺩﺭ ﻋﻤﻠﻴﺎﺕ ﺑﻌﺪی ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﻗﺮﺍﺭ ﮔﻴﺮﺩ‪.‬‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪6‬‬
‫‪Science & Research Branch‬‬
‫ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎﻱ ﺍﻣﺮﻭﺯﻱ ﻣﻌﻤﻮﻻً ﺷﺎﻣﻞ ﭼﻨﺪ ﺭﺟﻴﺴﺘﺮ ﻣﺨﺘﻠﻒ ﻭ‬
‫ﭼﻨﺪ ﻣﻨﻈﻮﺭﻩ ﻫﺴﺘﻨﺪ ﻛﻪ ﻣﻲ ﺗﻮﺍﻧﻨﺪ ﻧﻘﺶ ﺭﺟﻴﺴﺘﺮ ﺍﻧﺒﺎﺷﺘﮕﺮ ﺭﺍ ﻫﻢ‬
‫ﺍﻳﻔﺎ ﻛﻨﻨﺪ‪ ،‬ﺍﺯ ﺍﻳﻦ ﺭﻭ ﻭﺍژﻩ "ﺍﻧﺒﺎﺷﺘﮕﺮ" ﺍﻣﺮﻭﺯﻩ ﺑﻪ ﻣﺎﻧﻨﺪ ﮔﺬﺷﺘﻪ ﺭﺍﻳﺞ‬
‫ﻧﻴﺴﺖ‪.‬‬
‫ﺑﺎ ﺍﻳﻦ ﺣﺎﻝ ﺍﻣﺮﻭﺯﻩ ﻧﻴﺰ ﭘﺮﺩﺍﺯﻧﺪﻩﻫﺎﻱ ﺧﺎﺹ ﻣﻨﻈﻮﺭﻩﺍﻱ ﻭﺟﻮﺩ ﺩﺍﺭﻧﺪ‬
‫ﻛﻪ ﺑﺮﺍﻱ ﺭﻋﺎﻳﺖ ﺳﺎﺩﮔﻲ ﺩﺭ ﻃﺮﺍﺣﻴﺸﺎﻥ ﺍﺯ ﺗﻨﻬﺎ ﻳﻚ ﺭﺟﻴﺴﺘﺮ‬
‫ﺍﻧﺒﺎﺷﺘﮕﺮ ﺑﺮﺍﻱ ﻛﺎﺭﻫﺎﻳﺸﺎﻥ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲ ﻛﻨﻨﺪ‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪7‬‬
‫‪Science & Research Branch‬‬
‫ﻣﺎﺷﻴﻨﻬﺎی ﻣﺒﺘﻨﯽ ﺑﺮ ﺍﻧﺒﺎﺷﺘﮕﺮ‬
‫‪Accumulator‬‬
‫‪ ‬ﻳﮏ ﻣﺎﺷﻴﻦ ﺍﻧﺒﺎﺷﺘﮕﺮ‪ ،‬ﻳﮏ ﺑﺎﻓﺮ ﭘﺮﺳﺮﻋﺖ ﻭﺍﺣﺪ ﺭﺍ ﻧﺰﺩﻳﮏ ﻭﺍﺣﺪ ﻣﺤﺎﺳﺒﻪ ﻣﻨﻄﻖ‬
‫ﻧﮕﻬﺪﺍﺭی ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪ ‬ﻣﺎﻧﻨﺪ ﻳﮏ ﻣﺠﻤﻮﻋﻪ ﺍﺯ ‪D latch‬ﻫﺎ ﻳﺎ ﻓﻠﻴﭗ ﻓﻼﭘﻬﺎ ‪ ،‬ﻫﺮ ﮐﺪﺍﻡ ﺑﺎ ﻳﮏ ﺑﻴﺖ ﺩﺍﺩﻩ‬
‫‪ ‬ﻭﻳﮋﮔﯽ ﮐﻪ ﺭﺟﻴﺴﺘﺮ ﺍﻧﺒﺎﺷﺘﮕﺮ ﺭﺍ ﺑﺎ ﺩﻳﮕﺮ ﺍﻧﻮﺍﻉ ﺭﺟﻴﺴﺘﺮﻫﺎ ﻣﺘﻤﺎﻳﺰ ﻣﯽﮐﻨﺪ )ﺍﮔﺮ‬
‫ﻣﻌﻤﺎﺭی ﺩﺍﺭﺍی ﺭﺟﻴﺴﺘﺮ ﺍﻧﺒﺎﺷﺘﮕﺮ ﺑﺎﺷﺪ(‪ ،‬ﺍﻳﻦ ﺍﺳﺖ ﮐﻪ ﺍﻳﻦ ﺭﺟﻴﺴﺘﺮ ﺑﻪ‬
‫ﻃﻮﺭ ﺿﻤﻨﯽ ﺑﻪ ﻋﻨﻮﺍﻥ ﻋﻤﻠﻮﻧﺪ ﺩﺭ ﺩﺳﺘﻮﺭﻫﺎی ﺣﺴﺎﺑﯽ ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽﺷﻮﺩ‪.‬‬
‫ﺩﺭ ﺳﺎﺩﻩ ﺗﺮﻳﻦ ﺣﺎﻟﺖ‪ ،‬ﻓﻘﻂ ﻳﮏ ﻋﻤﻠﻮﻧﺪ ﻣﯽ ﺗﻮﺍﻧﺪ ﻣﺸﺨﺺ ﮔﺮﺩﺩ; ﺍﻧﺒﺎﺷﺘﮕﺮ ﺑﻪ ﺻﻮﺭﺕ‬
‫ﻣﺠﺎﺯی ﺑﻪ ﻣﻔﻬﻮﻡ “‪ ”OP Operand‬ﻣﯽ ﺑﺎﺷﺪ ﻳﻌﻨﯽ‪:‬‬
‫‪acc. = acc. OP operand‬‬

‫‪Example:‬‬
‫‪# Load B into acc.‬‬ ‫]‪LOAD M[48‬‬
‫)‪# Add C to acc. (now has B+C‬‬ ‫]‪ADD M[76‬‬
‫‪# Write acc. To A‬‬ ‫]‪STORE M[100‬‬
‫‪8‬‬
‫ﺿﻌﻒ ﻣﺎﺷﻴﻨﻬﺎی ﻣﺒﺘﻨﯽ ﺑﺮ ﺍﻧﺒﺎﺷﺘﮕﺮ‬
‫• ﻫﻨﻮﺯ ﻧﻴﺎﺯﻣﻨﺪ ﺫﺧﻴﺮﻩ ﺳﺎﺯی ﺑﺴﻴﺎﺭی ﻣﻘﺎﺩﻳﺮ ﻣﻮﻗﺘﯽ ﻭ ﻣﻴﺎﻧﯽ‬
‫ﺩﺭ ﺣﺎﻓﻈﻪ ﻣﯽ ﺑﺎﺷﻴﻢ‬

‫• ﺩﺭ ﻭﺍﻗﻊ ﺍﻧﺒﺎﺷﺘﮕﺮ ﻓﻘﻂ ﺑﺮﺍی ﻳﮏ ﺗﺮﺗﻴﺐ ﺍﺯ ﻣﺤﺎﺳﺒﺎﺕ ﮐﻪ ﺩﺭ‬


‫ﺁﻥ ﻧﺘﻴﺠﻪ ﻳﮑﯽ‪ ،‬ﻭﺭﻭﺩی ﺑﺮﺍی ﺑﻌﺪی ﺍﺳﺖ‪ ،‬ﻣﻔﻴﺪ ﻣﯽ ﺑﺎﺷﺪ‪.‬‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪10‬‬
‫‪Science & Research Branch‬‬
‫ﭘﻴﺸﻨﻬﺎﺩﺍﺕ ﺑﺮﺍی ﻣﺎﺷﻴﻨﻬﺎی ﻣﺒﺘﻨﯽ ﺑﺮ ﺍﻧﺒﺎﺷﺘﮕﺮ‬

‫• ﺍﮔﺮ ﻣﻨﺎﺑﻊ ﺳﺨﺖ ﺍﻓﺰﺍﺭی ﺑﻴﺸﺘﺮی ﺩﺭ ﺩﺳﺘﺮﺱ ﺍﺳﺖ‪ ،‬ﻣﮑﺎﻧﻬﺎی‬


‫ﺫﺧﻴﺮﻩ ﺳﺎﺯی ﺳﺮﻳﻊ ﺭﺍ ﺩﺭ ﮐﻨﺎﺭ ﺍﻧﺒﺎﺷﺘﮕﺮ ﻗﺮﺍﺭ ﺩﻫﻴﺪ‪:‬‬
‫• ﻣﺎﺷﻴﻨﻬﺎی ﻣﺒﺘﻨﯽ ﺑﺮ ﭘﺸﺘﻪ‬
‫• ﻣﺎﺷﻴﻨﻬﺎی ﻣﺒﺘﻨﯽ ﺑﺮ ﺭﺟﻴﺴﺘﺮ‬
‫‪ -‬ﺧﺎﺹ ﻣﻨﻈﻮﺭﻩ‬
‫‪ -‬ﻋﺎﻡ ﻣﻨﻈﻮﺭﻩ‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪11‬‬
‫‪Science & Research Branch‬‬
‫ﻣﺎﺷﻴﻨﻬﺎی ﻣﺒﺘﻨﯽ ﺑﺮ ﭘﺸﺘﻪ‬

‫ﺍﻳﺪﻩ‪ :‬ﻳﮏ ﺳﺘﻮﻥ ﺍﺯ ﻣﮑﺎﻧﻬﺎی ﺫﺧﻴﺮﻩ ﺳﺎﺯی ﺳﺮﻳﻊ ﺩﺍﺭﺍی ﻳﮏ ﺑﺎﻻ)‪ (top‬ﻭ ﻳﮏ ﭘﺎﻳﻴﻦ )‪(bottom‬‬

‫ﻳﮏ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﻓﻘﻂ ﺍﺯ ﻣﻘﺪﺍﺭ ﺑﺎﻻی ﭘﺸﺘﻪ)‪ (top‬ﻗﺎﺑﻠﻴﺖ‬


‫‪Address‬‬ ‫‪Contents‬‬ ‫ﺑﺮﺩﺍﺷﺖ ﺩﺍﺭﺩ‪ ،‬ﻳﺎ ﺷﺎﻳﺪ ﺩﻭ ﻳﺎ ﺳﻪ ﻣﻘﺪﺍﺭ ﺑﻪ ﻋﻨﻮﺍﻥ ﺑﺎﻻی‬
‫‪top‬‬ ‫‪14‬‬ ‫ﭘﺸﺘﻪ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﻮﻧﺪ‪.‬‬
‫‪2nd from top‬‬ ‫‪3‬‬
‫‪3rd from top‬‬ ‫‪99‬‬
‫ﻣﯽ ﺗﻮﺍﻧﻴﻢ ﻣﻘﺎﺩﻳﺮ ﺟﺪﻳﺪ ﺭﺍ ﺩﺭ ﺑﺎﻻی ﭘﺸﺘﻪ ﻗﺮﺍﺭ ﺩﻫﻴﻢ‬
‫‪.‬‬ ‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫)“‪ (”push‬ﻳﺎ ﺍﺯ ﺑﺎﻻی ﭘﺸﺘﻪ ﺑﺮﺩﺍﺭﻳﻢ )“‪(”pop‬‬
‫‪bottom‬‬ ‫‪0‬‬
‫ﻧﻤﯽ ﺗﻮﺍﻧﻴﻢ ﺑﻪ ﻣﮑﺎﻧﻬﺎﻳﯽ ﺩﺭ ﺯﻳﺮ ﭘﺸﺘﻪ ﺩﺳﺘﺮﺳﯽ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﻢ‬
‫ﻣﮕﺮ ﺍﻳﻨﮑﻪ ﻫﺮ ﭼﻴﺰ ﺑﺎﻻی ﺁﻥ ﺭﺍ ﺧﺎﺭﺝ ﮐﻨﻴﻢ‪.‬‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪12‬‬
‫‪Science & Research Branch‬‬
‫ﻣﻌﻤﺎﺭی ﻣﺠﻤﻮﻋﻪ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﻣﺎﺷﻴﻨﻬﺎی ﻣﺒﺘﻨﯽ ﺑﺮ‬
‫ﭘﺸﺘﻪ‬
‫ﺍﻋﻤﺎﻝ ﺍﺻﻠﯽ ﺷﺎﻣﻞ‪:‬‬

‫ﺑﺎﺭﮔﺬﺍﺭی‪ :‬ﺑﺮﺩﺍﺷﺖ ﻣﻘﺪﺍﺭ ﺍﺯ ﺣﺎﻓﻈﻪ ﻭ ﻗﺮﺍﺭ ﺩﺍﺩﻥ ﺁﻥ ﺑﺮ ﺭﻭی ﭘﺸﺘﻪ‬

‫ﺫﺧﻴﺮﻩ ﺳﺎﺯی‪ :‬ﺑﺮﺩﺍﺷﺖ ﻣﻘﺪﺍﺭ ﺍﺯ ﭘﺸﺘﻪ ﻭ ﺫﺧﻴﺮﻩ ﺁﻥ ﺩﺭ ﺣﺎﻓﻈﻪ‬

‫ﺣﺴﺎﺑﯽ‪ :‬ﺧﺎﺭﺝ ﮐﺮﺩﻥ ﻳﮏ ﻳﺎ ﺩﻭ ﻣﻘﺪﺍﺭ ﺍﺯ ﭘﺸﺘﻪ؛ ﻗﺮﺍﺭ ﺩﺍﺩﻥ ﻧﺘﻴﺠﻪ ﺭﻭی ﭘﺸﺘﻪ‬

‫ﺩﻭﻧﺴﺨﻪ ﺍی )‪ :(Dup‬ﮔﺮﻓﺘﻦ ﻣﻘﺪﺍﺭ ﺍﺯ ﺑﺎﻻی ﭘﺸﺘﻪ ﺑﺪﻭﻥ ﺣﺬﻑ ﺁﻥ؛ ﻗﺮﺍﺭ ﺩﺍﺩﻥ ﻳﮏ ﮐﭙﯽ ﺟﺪﻳﺪ ﺍﺯ ﺁﻥ ﺩﺭ‬
‫ﺭﻭی ﭘﺸﺘﻪ‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪13‬‬
‫‪Science & Research Branch‬‬
‫ﺭﺍ ﺍﻧﺠﺎﻡ ﻣﯽ‬ A=(B+C)*(D+E) ‫ﻣﺎﺷﻴﻦ ﻣﺒﺘﻨﯽ ﺑﺮ ﭘﺸﺘﻪ ﮐﻪ‬
‫ﺩﻫﺪ‬

XXX (stack top at start) (D+E)


XXX ADD

(D)
XXX LOAD M[20] (B)
(D+E)
XXX LOAD M[48]
(E)
(D) (continued next slide)
XXX LOAD M[32]

Advanced Computer\ Architecture & Design 14


Science & Research Branch
‫ﻣﺎﺷﻴﻦ ﻣﺒﺘﻨﯽ ﺑﺮ ﭘﺸﺘﻪ‬

(C) ((B+C)*(D+E))
(B) XXX MULT
(D+E)
XXX LOAD M[76]

XXX STORE M[100]

(B+C)
(D+E)
XXX ADD

.‫ﺩﻗﺖ ﮐﻨﻴﺪ ﮐﻪ ﺍﮐﻨﻮﻥ ﭘﺸﺘﻪ ﻣﺸﺎﺑﻪ ﺯﻣﺎﻧﯽ ﺍﺳﺖ ﮐﻪ ﺷﺮﻭﻉ ﻧﻤﻮﺩﻳﻢ‬


Advanced Computer Architecture & Design
15
Science & Research Branch
‫ﮐﺎﺭﺑﺮﺩ ﻣﺎﺷﻴﻨﻬﺎی ﻣﺒﺘﻨﯽ ﺑﺮﭘﺸﺘﻪ‬

‫• ﺑﺴﻴﺎﺭی ﺍﺯ ﮐﺎﻣﭙﻴﻮﺗﺮﻫﺎی ﺍﻭﻟﻴﻪ‬

‫• ﻭﺍﺣﺪ ﻣﻤﻴﺰ ﺷﻨﺎﻭﺭ ﺩﺭ ‪) 8086‬ﺗﻘﺮﻳﺒﺎ(‬

‫• ﻣﺎﺷﻴﻦ ﻣﺠﺎﺯی ﺟﺎﻭﺍ‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪16‬‬
‫‪Science & Research Branch‬‬
‫ﻣﺎﺷﻴﻨﻬﺎی ﻣﺒﺘﻨﯽ ﺑﺮ ﺭﺟﻴﺴﺘﺮ‬
‫ﺍﻳﺪﻩ‪ :‬ﺑﻪ ﮐﺎﺭ ﺑﺮﺩﻥ ﻣﮑﺎﻧﻬﺎی ﺫﺧﻴﺮﻩ ﺳﺎﺯی ﺯﻳﺎﺩ ﺭﺟﻴﺴﺘﺮﻫﺎ ﻧﺰﺩﻳﮏ ﺍﻧﺒﺎﺷﺘﮕﺮ‬

‫ﺭﺟﻴﺴﺘﺮ ﻫﺎ ﻧﺎﻡ ‪ /‬ﺷﻤﺎﺭﻩ ﻫﺎی ﻣﺸﺨﺼﯽ ﺩﺍﺭﻧﺪ ﮐﻪ ﻣﯽ ﺗﻮﺍﻧﻨﺪ ﺑﻪ ﺟﺎی ﺣﺎﻓﻈﻪ ﺍﺳﺘﻔﺎﺩﻩ ﺷﻮﻧﺪ‬ ‫•‬

‫ﺩﺳﺘﻴﺎﺑﯽ ﻧﺴﺒﺖ ﺑﻪ ﺣﺎﻓﻈﻪ ﺍﺻﻠﯽ ﺧﻴﻠﯽ ﺳﺮﻳﻌﺘﺮ ﺍﺳﺖ‬ ‫•‬

‫ﺭﺟﻴﺴﺘﺮ ﻫﺎ ﻧﺴﺒﺖ ﺑﻪ ﻣﮑﺎﻥ ﻫﺎی ﺣﺎﻓﻈﻪ ﺧﻴﻠﯽ ﻧﺰﺩﻳﮏ ﺗﺮﻧﺪ‬ ‫•‬

‫‪ 32 MIPS ‬ﺗﺎ ﺛﺒﺎﺕ ‪ 32‬ﺑﻴﺘﯽ ﺩﺍﺭﺩ‬

‫ﻭﺗﻌﺪﺍﺩ ﺑﻴﺘﻬﺎی ﮐﻤﺘﺮ ﺑﺮﺍی ﻧﺎﻡ ﮔﺬﺍﺭی ﺁﻧﻬﺎ‬ ‫ﺁﺩﺭﺱ ﻫﺎی ﮐﻮﭼﮑﺘﺮ‬ ‫‪ ‬ﺭﺟﻴﺴﺘﺮ ﻫﺎی ﮐﻤﺘﺮ‬

‫‪ ‬ﻣﻨﺎﺑﻊ ﺍﺳﺘﻔﺎﺩﻩ ﮐﻤﺘﺮ ﺍﺳﺖ ﻭ ﺑﺎﻳﺪ ﺑﺎ ﺩﻗﺖ ﺍﺯ ﺁﻧﻬﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺷﻮﺩ‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪17‬‬
‫‪Science & Research Branch‬‬
‫ﺭﺟﻴﺴﺘﺮﻫﺎی ﻋﺎﻡ ﻣﻨﻈﻮﺭﻩ‪/‬ﺧﺎﺹ ﻣﻨﻈﻮﺭﻩ‬
‫• ﻳﮏ ﺭﺟﻴﺴﺘﺮ ﺧﺎﺹ ﻣﻨﻈﻮﺭﻩ ﺑﺮﺍی ﺍﻫﺪﺍﻑ ﻣﺸﺨﺺ ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽ ﺷﻮﺩ‬
‫ﻭ ﻣﻤﮑﻦ ﺍﺳﺖ ﻋﻤﻠﻴﺎﺗﯽ ﺭﺍ ﮐﻪ ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽ ﺷﻮﺩ ﺭﺍ ﻣﺤﺪﻭﺩﮐﻨﺪ‬
‫‪‬ﻃﺮﺍﺣﯽ ﺁﺳﺎﻧﺘﺮ ﺳﺨﺖ ﺍﻓﺰﺍﺭ‪ :‬ﺛﺒﺎﺕ ﺭﺍ ﺩﺭ ﺟﺎﻳﯽ ﮐﻪ ﺩﻗﻴﻘﺎ ﻧﻴﺎﺯﺍﺳﺖ‬
‫ﻗﺮﺍﺭ ﺑﺪﻩ‬
‫• ﻳﮏ ﺭﺟﻴﺴﺘﺮﻋﺎﻡ ﻣﻨﻈﻮﺭﻩ ﻣﯽ ﺗﻮﺍﻧﺪ ﺩﺭﺑﻴﺸﺘﺮ ﻣﺴﻴﺮﻫﺎی ﻋﻤﻠﻴﺎﺗﯽ‬
‫ﺍﺳﺘﻔﺎﺩﻩ ﺷﻮﺩ ‪.‬‬
‫‪ ‬ﺑﻨﺎﺑﺮﺍﻳﻦ ﻣﺴﻴﺮﻳﺎﺑﯽ ﺑﺮ ﺍﺳﺎﺱ ﮐﺎﺭﺑﺮﺩ ﻣﯽ ﺗﻮﺍﻧﺪ ﻣﺸﮑﻞ ﺑﺎﺷﺪ‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪18‬‬
‫‪Science & Research Branch‬‬
‫ﻣﻌﻤﺎﺭی‬MIPS‫ﺑﻴﺎﻥ ﺷﺪﻩ‬
‫ﻋﻤﻠﻮﻧﺪﻫﺎی‬MIPS

Name Example Comments


$s0-$s7, $t0-$t9, Fast locations for data. In MIPS, data must be in registers to perform
32 registers $zero, $a0-$a3, $v0- arithmetic. MIPS register $zero always equals 0. $gp (28) is the global
$v1, $gp, $fp, $sp, $ra pointer, $sp(29) is the stack pointer, $fp (30) is the frame pointer, and $ra
(31) is the return address.
Memory [0], Accessed only by data transfer instructions. MIPS uses byte addresses, so
30
2 memory words Memory [4],…, sequential words differ by 4. Memory holds data structures, such as arrays,
Memory[42949672920 and spilled register, such as those saved on procedure calls.

MIPS ‫ﺯﺑﺎﻥ ﺍﺳﻤﺒﻠﯽ‬

Advanced Computer Architecture & Design


19
Science & Research Branch
‫ﻧﻤﺎﻳﺶ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﻫﺎ ﺩﺭ ﮐﺎﻣﭙﻴﻮﺗﺮ‬
‫‪ ‬ﺩﺭ ﺯﺑﺎﻥ ﺍﺳﻤﺒﻠﯽ ‪: MIPS‬‬
‫ﺭﺟﻴﺴﺘﺮﻫﺎی ‪ $s7 - $s0‬ﺑﻪ ﺭﺟﻴﺴﺘﺮﻫﺎی ‪ 16‬ﺗﺎ ‪23‬‬
‫ﻭ‬
‫ﺭﺟﻴﺴﺘﺮﻫﺎی ‪ $t7 - $t0‬ﺑﻪ ﺭﺟﻴﺴﺘﺮﻫﺎی ‪ 8‬ﺗﺎ ‪ 15‬ﻧﮕﺎﺷﺖ ﻣﯽ‬
‫ﺷﻮﻧﺪ‪.‬‬
‫‪ ‬ﻫﺮﮐﺪﺍﻡ ﺍﺯ ﺑﺨﺶ ﻫﺎی ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﻳﮏ ﻣﻴﺪﺍﻥ ﻳﺎ ‪field‬‬
‫ﻧﺎﻣﻴﺪﻩ ﻣﯽ ﺷﻮﺩ‪.‬‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪20‬‬
‫‪Science & Research Branch‬‬
‫‪ ‬ﺑﺮﺍی ﺗﻤﺎﻳﺰ ﺑﺎ ﺯﺑﺎﻥ ﺍﺳﻤﺒﻠﺮ‪،‬ﻧﻮﻉ ﻋﺪﺩی ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﺭﺍ ﺯﺑﺎﻥ‬
‫ﻣﺎﺷﻴﻦ ﻭ ﺗﺮﺗﻴﺒﯽ ﺍﺯ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﻫﺎ ﺭﺍ ﮐﺪ ﻣﺎﺷﻴﻦ ﻣﯽ ﻧﺎﻣﻴﻢ‪.‬‬

‫‪ ‬ﺍﻳﻦ ﺗﺮﮐﻴﺐ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ‪ ،‬ﻗﺎﻟﺐ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﻧﺎﻡ ﺩﺍﺭﺩ‪.‬‬

‫‪ ‬ﺍﺻﻞ ﺷﻤﺎﺭﻩ ‪:4‬‬


‫ﻃﺮﺍﺣﯽ ﺧﻮﺏ ﺑﻪ ﺍﻧﻄﺒﺎﻕ ﻭ ﺳﺎﺯﺵ ﻧﻴﺎﺯ ﺩﺍﺭﺩ‪.‬‬

‫‪Advanced Computer Architecture & Design‬‬


‫‪21‬‬
‫‪Science & Research Branch‬‬
Advanced Computer Architecture & Design
22
Science & Research Branch
Advanced Computer Architecture23
& Design
Science & Research Branch

You might also like