Arch1 2 (Stack)
Arch1 2 (Stack)
Stacks….
ﺍﺻﻞ ﺷﻤﺎﺭﻩ :3
• ﺍﺯ ﻃﺮﻑ ﺩﻳﮕﺮ ﺩﺭ ﻋﻤﻠﻴﺎﺕ ﺑﻌﺪﻱ ﻣﻌﻤﻮﻻً ﻧﻴﺎﺯ ﺑﻮﺩ ﻛﻪ ﻫﻤﺎﻥ ﺩﺍﺩﻩﺍﻱ ﻛﻪ ﺩﺭ
ﻣﺮﺣﻠﻪﻱ ﻗﺒﻠﻲ ﺩﺭﻭﻥ ﺣﺎﻓﻈﻪ ﻣﻐﻨﺎﻃﻴﺴﻲ ﻧﻮﺷﺘﻪ ﺷﺪﻩ ﺑﻮﺩ ﺍﺯ ﺭﻭﻱ ﻫﻤﺎﻥ
ﺣﺎﻓﻈﻪ ﺧﻮﺍﻧﺪﻩ ﺷﻮﺩ ،ﺍﺯ ﺁﻥ ﺟﺎ ﻛﻪ ﻋﻤﻠﻴﺎﺕ ﺧﻮﺍﻧﺪﻥ ﺍﺯ ﺣﺎﻓﻈﻪ ﻣﻐﻨﺎﻃﻴﺴﻲ ﻧﻴﺰ
ﻋﻤﻠﻴﺎﺗﻲ ﻛﻨﺪ ﺑﻮﺩﻧﺪ ﺑﺎﻋﺚ ﻣﻲﺷﺪ ﻛﻪ ﻛﻨﺪﻱ ﺩﺭ ﻛﺎﺭ ﺩﻭ ﭼﻨﺪﺍﻥ ﺷﻮﺩ.
ﺩﺳﺘﺮﺳﯽ ﺑﻪ ﺣﺎﻓﻈﻪ ﺍﺻﻠﯽ ﺑﺴﻴﺎﺭ ﮐﻨﺪﺗﺮ ﺍﺯ ﺩﺳﺘﺮﺳﯽ ﺑﻪ ﺭﺟﻴﺴﺘﺮ ﺍﺳﺖ ﻭ ﺍﻳﻦ ﺑﻪ ﻋﻠﺖ ﻓﻨﺎﻭﺭی ﺍﺳﺘﻔﺎﺩﻩ ﺷﺪﻩ ﺩﺭ •
ﺳﺎﺧﺖ ﺁﻥ ﻫﺎﺳﺖ ،ﺣﺎﻓﻈﻪ ﺍﺻﻠﯽ ﮔﻨﺠﺎﻳﺶ ﺑﻴﺸﺘﺮی ﺩﺍﺭﺩ ﻭ ﺩﺭ ﻋﻮﺽ ﮐﻨﺪﺗﺮ ﺍﺯ ﺭﺟﻴﺴﺘﺮ ﻫﺎﺳﺖ.
ﮐﺎﻣﭙﻴﻮﺗﺮﻫﺎی ﺍﺑﺘﺪﺍﻳﯽ ﺑﻪ ﺩﻭ ﺩﺳﺘﻪ ﺗﻘﺴﻴﻢ ﻣﯽ ﺷﺪﻧﺪ ،ﺁﻥﻫﺎﻳﯽ ﮐﻪ ﺭﺟﻴﺴﺘﺮ ﺍﻧﺒﺎﺷﺘﮕﺮ ﺩﺍﺷﺘﻨﺪ ﻭ ﺁﻥﻫﺎﻳﯽ ﮐﻪ ﭼﻨﻴﻦ •
ﻗﺎﺑﻠﻴﺘﯽ ﻧﺪﺍﺷﺘﻨﺪ.
ﺩﺭ ﺻﻮﺭﺗﯽ ﮐﻪ ﺭﺟﻴﺴﺘﺮ ﺑﺮﺍی ﺫﺧﻴﺮﻩ ﺳﺎﺯی ﺩﺍﺩﻩﻫﺎی ﻣﻴﺎﻧﯽ ﻭﺟﻮﺩ ﻧﺪﺍﺷﺘﻪ ﺑﺎﺷﺪ ،ﻻﺯﻡ ﺧﻮﺍﻫﺪ ﺑﻮﺩ ﮐﻪ ﺍﻳﻦ •
ﺍﻃﻼﻋﺎﺕ ﺑﻌﺪ ﺍﺯ ﻫﺮ ﻣﺤﺎﺳﺒﻪ ﺩﺭﻭﻥ ﺣﺎﻓﻈﻪ ﺍﺻﻠﯽ ﻧﻮﺷﺘﻪ ﺷﻮﺩ ،ﻭ ﺍﺣﺘﻤﺎﻝ ﺩﺍﺭﺩ ﮐﻪ ﻫﻤﺎﻥ ﺩﺍﺩﻩ ﺩﻭﺑﺎﺭﻩ ﺍﺯ ﺣﺎﻓﻈﻪ
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
ﺿﻌﻒ ﻣﺎﺷﻴﻨﻬﺎی ﻣﺒﺘﻨﯽ ﺑﺮ ﺍﻧﺒﺎﺷﺘﮕﺮ
• ﻫﻨﻮﺯ ﻧﻴﺎﺯﻣﻨﺪ ﺫﺧﻴﺮﻩ ﺳﺎﺯی ﺑﺴﻴﺎﺭی ﻣﻘﺎﺩﻳﺮ ﻣﻮﻗﺘﯽ ﻭ ﻣﻴﺎﻧﯽ
ﺩﺭ ﺣﺎﻓﻈﻪ ﻣﯽ ﺑﺎﺷﻴﻢ
ﺍﻳﺪﻩ :ﻳﮏ ﺳﺘﻮﻥ ﺍﺯ ﻣﮑﺎﻧﻬﺎی ﺫﺧﻴﺮﻩ ﺳﺎﺯی ﺳﺮﻳﻊ ﺩﺍﺭﺍی ﻳﮏ ﺑﺎﻻ) (topﻭ ﻳﮏ ﭘﺎﻳﻴﻦ )(bottom
ﺣﺴﺎﺑﯽ :ﺧﺎﺭﺝ ﮐﺮﺩﻥ ﻳﮏ ﻳﺎ ﺩﻭ ﻣﻘﺪﺍﺭ ﺍﺯ ﭘﺸﺘﻪ؛ ﻗﺮﺍﺭ ﺩﺍﺩﻥ ﻧﺘﻴﺠﻪ ﺭﻭی ﭘﺸﺘﻪ
ﺩﻭﻧﺴﺨﻪ ﺍی ) :(Dupﮔﺮﻓﺘﻦ ﻣﻘﺪﺍﺭ ﺍﺯ ﺑﺎﻻی ﭘﺸﺘﻪ ﺑﺪﻭﻥ ﺣﺬﻑ ﺁﻥ؛ ﻗﺮﺍﺭ ﺩﺍﺩﻥ ﻳﮏ ﮐﭙﯽ ﺟﺪﻳﺪ ﺍﺯ ﺁﻥ ﺩﺭ
ﺭﻭی ﭘﺸﺘﻪ
(D)
XXX LOAD M[20] (B)
(D+E)
XXX LOAD M[48]
(E)
(D) (continued next slide)
XXX LOAD M[32]
(C) ((B+C)*(D+E))
(B) XXX MULT
(D+E)
XXX LOAD M[76]
(B+C)
(D+E)
XXX ADD
ﺭﺟﻴﺴﺘﺮ ﻫﺎ ﻧﺎﻡ /ﺷﻤﺎﺭﻩ ﻫﺎی ﻣﺸﺨﺼﯽ ﺩﺍﺭﻧﺪ ﮐﻪ ﻣﯽ ﺗﻮﺍﻧﻨﺪ ﺑﻪ ﺟﺎی ﺣﺎﻓﻈﻪ ﺍﺳﺘﻔﺎﺩﻩ ﺷﻮﻧﺪ •
ﻭﺗﻌﺪﺍﺩ ﺑﻴﺘﻬﺎی ﮐﻤﺘﺮ ﺑﺮﺍی ﻧﺎﻡ ﮔﺬﺍﺭی ﺁﻧﻬﺎ ﺁﺩﺭﺱ ﻫﺎی ﮐﻮﭼﮑﺘﺮ ﺭﺟﻴﺴﺘﺮ ﻫﺎی ﮐﻤﺘﺮ